@eifi1/ui-kit 0.31.1 → 0.32.1

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 (565) hide show
  1. package/README.md +51 -28
  2. package/dist/account/delete-account-setting.d.ts +8 -3
  3. package/dist/admin/admin-action-confirm.d.ts +8 -3
  4. package/dist/admin/admin-action-log.d.ts +1 -1
  5. package/dist/admin/admin-action-log.js +4 -2
  6. package/dist/admin/admin-action-log.js.map +1 -1
  7. package/dist/admin/invitations-panel.d.ts +8 -3
  8. package/dist/admin/invitations-panel.js +29 -26
  9. package/dist/admin/invitations-panel.js.map +1 -1
  10. package/dist/admin/reviewer-scope-editor.d.ts +8 -3
  11. package/dist/admin/role-select.d.ts +10 -5
  12. package/dist/admin/transfer-ownership-dialog.d.ts +8 -3
  13. package/dist/admin/user-roster.d.ts +10 -5
  14. package/dist/admin/user-roster.js +8 -47
  15. package/dist/admin/user-roster.js.map +1 -1
  16. package/dist/auth/auth-errors.d.ts +43 -8
  17. package/dist/auth/auth-errors.js +24 -1
  18. package/dist/auth/auth-errors.js.map +1 -1
  19. package/dist/auth/register-form.d.ts +8 -3
  20. package/dist/billing/billing-banner.d.ts +184 -0
  21. package/dist/billing/billing-banner.js +98 -0
  22. package/dist/billing/billing-banner.js.map +1 -0
  23. package/dist/billing/billing-labels.d.ts +100 -0
  24. package/dist/billing/billing-labels.js +76 -0
  25. package/dist/billing/billing-labels.js.map +1 -0
  26. package/dist/billing/billing-lock.d.ts +158 -0
  27. package/dist/billing/billing-lock.js +17 -0
  28. package/dist/billing/billing-lock.js.map +1 -0
  29. package/dist/billing/billing-standing.d.ts +149 -0
  30. package/dist/billing/billing-standing.js +28 -0
  31. package/dist/billing/billing-standing.js.map +1 -0
  32. package/dist/billing/plan-card.d.ts +248 -0
  33. package/dist/billing/plan-card.js +248 -0
  34. package/dist/billing/plan-card.js.map +1 -0
  35. package/dist/billing/plan-limit-notice.d.ts +156 -0
  36. package/dist/billing/plan-limit-notice.js +76 -0
  37. package/dist/billing/plan-limit-notice.js.map +1 -0
  38. package/dist/billing/plan-limit.d.ts +34 -0
  39. package/dist/billing/plan-limit.js +20 -0
  40. package/dist/billing/plan-limit.js.map +1 -0
  41. package/dist/billing/plan-price.d.ts +61 -0
  42. package/dist/billing/plan-price.js +45 -0
  43. package/dist/billing/plan-price.js.map +1 -0
  44. package/dist/billing/subscription-actions.d.ts +133 -0
  45. package/dist/billing/subscription-actions.js +28 -0
  46. package/dist/billing/subscription-actions.js.map +1 -0
  47. package/dist/billing/subscription-status-chip.d.ts +149 -0
  48. package/dist/billing/subscription-status-chip.js +48 -0
  49. package/dist/billing/subscription-status-chip.js.map +1 -0
  50. package/dist/chart.d.ts +9 -3
  51. package/dist/chart.js.map +1 -1
  52. package/dist/components/account-chips.d.ts +16 -4
  53. package/dist/components/account-chips.js +21 -3
  54. package/dist/components/account-chips.js.map +1 -1
  55. package/dist/components/alert-banner.d.ts +6 -1
  56. package/dist/components/alert-banner.js +5 -4
  57. package/dist/components/alert-banner.js.map +1 -1
  58. package/dist/components/amount-input.d.ts +8 -3
  59. package/dist/components/amount-input.js +5 -5
  60. package/dist/components/amount-input.js.map +1 -1
  61. package/dist/components/appearance-labels.d.ts +38 -0
  62. package/dist/components/appearance-labels.js +19 -0
  63. package/dist/components/appearance-labels.js.map +1 -0
  64. package/dist/components/autocomplete.js +2 -2
  65. package/dist/components/autocomplete.js.map +1 -1
  66. package/dist/components/breadcrumbs.js +3 -2
  67. package/dist/components/breadcrumbs.js.map +1 -1
  68. package/dist/components/bulk-action-bar.d.ts +2 -2
  69. package/dist/components/bulk-action-bar.js +7 -12
  70. package/dist/components/bulk-action-bar.js.map +1 -1
  71. package/dist/components/button-group.d.ts +8 -3
  72. package/dist/components/button-group.js +7 -1
  73. package/dist/components/button-group.js.map +1 -1
  74. package/dist/components/calculator.d.ts +8 -3
  75. package/dist/components/calculator.js +4 -3
  76. package/dist/components/calculator.js.map +1 -1
  77. package/dist/components/calendar-heatmap.js +5 -5
  78. package/dist/components/calendar-heatmap.js.map +1 -1
  79. package/dist/components/chart-height.d.ts +23 -0
  80. package/dist/components/chart-height.js +15 -0
  81. package/dist/components/chart-height.js.map +1 -0
  82. package/dist/components/chart-zoom.js +6 -1
  83. package/dist/components/chart-zoom.js.map +1 -1
  84. package/dist/components/checkbox-group.js +2 -2
  85. package/dist/components/checkbox-group.js.map +1 -1
  86. package/dist/components/checkbox.d.ts +10 -0
  87. package/dist/components/checkbox.js +25 -10
  88. package/dist/components/checkbox.js.map +1 -1
  89. package/dist/components/chip.d.ts +19 -3
  90. package/dist/components/chip.js +54 -23
  91. package/dist/components/chip.js.map +1 -1
  92. package/dist/components/choice-card.d.ts +1 -1
  93. package/dist/components/choice-card.js +9 -8
  94. package/dist/components/choice-card.js.map +1 -1
  95. package/dist/components/column-mapper.js +1 -1
  96. package/dist/components/column-mapper.js.map +1 -1
  97. package/dist/components/combobox-core.js +8 -7
  98. package/dist/components/combobox-core.js.map +1 -1
  99. package/dist/components/combobox.js +8 -8
  100. package/dist/components/combobox.js.map +1 -1
  101. package/dist/components/confirm-dialog.d.ts +8 -3
  102. package/dist/components/copy-button.d.ts +10 -5
  103. package/dist/components/country-select.js +1 -1
  104. package/dist/components/country-select.js.map +1 -1
  105. package/dist/components/currency-select.js +3 -3
  106. package/dist/components/currency-select.js.map +1 -1
  107. package/dist/components/danger-confirm.d.ts +8 -3
  108. package/dist/components/data-table-cells.d.ts +1 -1
  109. package/dist/components/data-table-filter-popover.d.ts +1 -1
  110. package/dist/components/data-table-filter-popover.js +4 -1
  111. package/dist/components/data-table-filter-popover.js.map +1 -1
  112. package/dist/components/data-table-filters.d.ts +1 -1
  113. package/dist/components/data-table-labels.d.ts +1 -1
  114. package/dist/components/data-table-pagination.d.ts +3 -2
  115. package/dist/components/data-table-pagination.js +15 -6
  116. package/dist/components/data-table-pagination.js.map +1 -1
  117. package/dist/components/data-table.d.ts +1 -1
  118. package/dist/components/data-table.js +123 -52
  119. package/dist/components/data-table.js.map +1 -1
  120. package/dist/components/date-picker.d.ts +1 -1
  121. package/dist/components/date-picker.js +18 -6
  122. package/dist/components/date-picker.js.map +1 -1
  123. package/dist/components/description-list.js +2 -2
  124. package/dist/components/description-list.js.map +1 -1
  125. package/dist/components/dialog-frame.js +2 -1
  126. package/dist/components/dialog-frame.js.map +1 -1
  127. package/dist/components/disclosure.js +3 -2
  128. package/dist/components/disclosure.js.map +1 -1
  129. package/dist/components/dropdown.d.ts +1 -1
  130. package/dist/components/dropdown.js +7 -1
  131. package/dist/components/dropdown.js.map +1 -1
  132. package/dist/components/facing-pair.d.ts +19 -6
  133. package/dist/components/facing-pair.js +3 -2
  134. package/dist/components/facing-pair.js.map +1 -1
  135. package/dist/components/field-parts.d.ts +102 -6
  136. package/dist/components/field-parts.js +81 -6
  137. package/dist/components/field-parts.js.map +1 -1
  138. package/dist/components/field-sync.d.ts +4 -1
  139. package/dist/components/field-sync.js +12 -2
  140. package/dist/components/field-sync.js.map +1 -1
  141. package/dist/components/field.js +2 -2
  142. package/dist/components/field.js.map +1 -1
  143. package/dist/components/file-button.d.ts +8 -3
  144. package/dist/components/file-dropzone.d.ts +8 -3
  145. package/dist/components/floating-panel.js +7 -4
  146. package/dist/components/floating-panel.js.map +1 -1
  147. package/dist/components/focus-ring.d.ts +12 -0
  148. package/dist/components/focus-ring.js +8 -0
  149. package/dist/components/focus-ring.js.map +1 -0
  150. package/dist/components/form-actions.d.ts +8 -3
  151. package/dist/components/form-actions.js +33 -19
  152. package/dist/components/form-actions.js.map +1 -1
  153. package/dist/components/full-bleed-dialog.d.ts +11 -1
  154. package/dist/components/full-bleed-dialog.js +3 -1
  155. package/dist/components/full-bleed-dialog.js.map +1 -1
  156. package/dist/components/iban-input.d.ts +8 -3
  157. package/dist/components/image-grid.js +1 -1
  158. package/dist/components/image-grid.js.map +1 -1
  159. package/dist/components/inline-edit-field.js +10 -4
  160. package/dist/components/inline-edit-field.js.map +1 -1
  161. package/dist/components/language-select.d.ts +8 -3
  162. package/dist/components/legal-page.d.ts +26 -5
  163. package/dist/components/legal-page.js +3 -1
  164. package/dist/components/legal-page.js.map +1 -1
  165. package/dist/components/legal.d.ts +8 -3
  166. package/dist/components/legal.js +2 -1
  167. package/dist/components/legal.js.map +1 -1
  168. package/dist/components/lightbox.js +24 -2
  169. package/dist/components/lightbox.js.map +1 -1
  170. package/dist/components/line-items.js +2 -1
  171. package/dist/components/line-items.js.map +1 -1
  172. package/dist/components/list.d.ts +5 -0
  173. package/dist/components/list.js +13 -9
  174. package/dist/components/list.js.map +1 -1
  175. package/dist/components/measured-grid.d.ts +3 -1
  176. package/dist/components/measured-grid.js +38 -20
  177. package/dist/components/measured-grid.js.map +1 -1
  178. package/dist/components/menu-item.js +2 -1
  179. package/dist/components/menu-item.js.map +1 -1
  180. package/dist/components/mini-calendar.js +8 -4
  181. package/dist/components/mini-calendar.js.map +1 -1
  182. package/dist/components/money-field.d.ts +8 -3
  183. package/dist/components/month-picker.js +50 -39
  184. package/dist/components/month-picker.js.map +1 -1
  185. package/dist/components/nav-pills.js +1 -1
  186. package/dist/components/nav-pills.js.map +1 -1
  187. package/dist/components/number-field.d.ts +8 -3
  188. package/dist/components/number-input.d.ts +11 -4
  189. package/dist/components/number-input.js +8 -6
  190. package/dist/components/number-input.js.map +1 -1
  191. package/dist/components/numpad-sheet.d.ts +8 -3
  192. package/dist/components/numpad-sheet.js +2 -1
  193. package/dist/components/numpad-sheet.js.map +1 -1
  194. package/dist/components/one-time-code-input.js +2 -2
  195. package/dist/components/one-time-code-input.js.map +1 -1
  196. package/dist/components/page-contents.js +2 -2
  197. package/dist/components/page-contents.js.map +1 -1
  198. package/dist/components/phone-input.d.ts +8 -3
  199. package/dist/components/phone-input.js +4 -4
  200. package/dist/components/phone-input.js.map +1 -1
  201. package/dist/components/pie-chart.d.ts +8 -2
  202. package/dist/components/pie-chart.js +11 -7
  203. package/dist/components/pie-chart.js.map +1 -1
  204. package/dist/components/popover.d.ts +9 -1
  205. package/dist/components/popover.js +8 -4
  206. package/dist/components/popover.js.map +1 -1
  207. package/dist/components/row-actions.d.ts +100 -0
  208. package/dist/components/row-actions.js +231 -0
  209. package/dist/components/row-actions.js.map +1 -0
  210. package/dist/components/scroll-area.js +1 -1
  211. package/dist/components/scroll-area.js.map +1 -1
  212. package/dist/components/search-field.js +3 -2
  213. package/dist/components/search-field.js.map +1 -1
  214. package/dist/components/series-chart-budget.d.ts +30 -7
  215. package/dist/components/series-chart-budget.js +12 -4
  216. package/dist/components/series-chart-budget.js.map +1 -1
  217. package/dist/components/series-chart-ticks.d.ts +7 -1
  218. package/dist/components/series-chart-ticks.js +6 -0
  219. package/dist/components/series-chart-ticks.js.map +1 -1
  220. package/dist/components/series-chart.d.ts +58 -28
  221. package/dist/components/series-chart.js +42 -32
  222. package/dist/components/series-chart.js.map +1 -1
  223. package/dist/components/settings-fields.d.ts +57 -8
  224. package/dist/components/settings-fields.js +39 -1
  225. package/dist/components/settings-fields.js.map +1 -1
  226. package/dist/components/share-card.d.ts +11 -6
  227. package/dist/components/share-card.js +8 -2
  228. package/dist/components/share-card.js.map +1 -1
  229. package/dist/components/sign-chip.d.ts +4 -0
  230. package/dist/components/sign-chip.js +17 -4
  231. package/dist/components/sign-chip.js.map +1 -1
  232. package/dist/components/signature-pad.d.ts +3 -1
  233. package/dist/components/signature-pad.js +8 -5
  234. package/dist/components/signature-pad.js.map +1 -1
  235. package/dist/components/slider.js +7 -6
  236. package/dist/components/slider.js.map +1 -1
  237. package/dist/components/sparkline.d.ts +5 -1
  238. package/dist/components/sparkline.js +4 -2
  239. package/dist/components/sparkline.js.map +1 -1
  240. package/dist/components/stat-tile.d.ts +17 -1
  241. package/dist/components/stat-tile.js +48 -20
  242. package/dist/components/stat-tile.js.map +1 -1
  243. package/dist/components/status-dot.d.ts +4 -0
  244. package/dist/components/status-dot.js +9 -2
  245. package/dist/components/status-dot.js.map +1 -1
  246. package/dist/components/swipeable-row.js +10 -2
  247. package/dist/components/swipeable-row.js.map +1 -1
  248. package/dist/components/switch.d.ts +21 -7
  249. package/dist/components/switch.js +24 -11
  250. package/dist/components/switch.js.map +1 -1
  251. package/dist/components/table.js +2 -2
  252. package/dist/components/table.js.map +1 -1
  253. package/dist/components/text-link.d.ts +8 -3
  254. package/dist/components/text-link.js +1 -1
  255. package/dist/components/text-link.js.map +1 -1
  256. package/dist/components/text.d.ts +7 -2
  257. package/dist/components/text.js +5 -5
  258. package/dist/components/text.js.map +1 -1
  259. package/dist/components/tile-radio.js +2 -1
  260. package/dist/components/tile-radio.js.map +1 -1
  261. package/dist/components/time-input.d.ts +8 -3
  262. package/dist/components/toast.d.ts +18 -2
  263. package/dist/components/toast.js +8 -5
  264. package/dist/components/toast.js.map +1 -1
  265. package/dist/components/toggle-group.d.ts +25 -3
  266. package/dist/components/toggle-group.js +40 -11
  267. package/dist/components/toggle-group.js.map +1 -1
  268. package/dist/components/toggle-legend.d.ts +10 -1
  269. package/dist/components/toggle-legend.js +21 -7
  270. package/dist/components/toggle-legend.js.map +1 -1
  271. package/dist/components/translation-review-editor.js +1 -1
  272. package/dist/components/translation-review-editor.js.map +1 -1
  273. package/dist/components/translation-review-parts.d.ts +4 -0
  274. package/dist/components/translation-review.d.ts +4 -0
  275. package/dist/components/translation-review.js +3 -3
  276. package/dist/components/translation-review.js.map +1 -1
  277. package/dist/components/tree-view.js +3 -2
  278. package/dist/components/tree-view.js.map +1 -1
  279. package/dist/components/treemap.d.ts +5 -2
  280. package/dist/components/treemap.js +33 -16
  281. package/dist/components/treemap.js.map +1 -1
  282. package/dist/components/ui.d.ts +8 -3
  283. package/dist/components/ui.js +207 -119
  284. package/dist/components/ui.js.map +1 -1
  285. package/dist/components/use-table-state.d.ts +1 -1
  286. package/dist/components/user-avatar.d.ts +5 -1
  287. package/dist/components/user-avatar.js +1 -1
  288. package/dist/components/user-avatar.js.map +1 -1
  289. package/dist/components/wizard-stepper.js +20 -14
  290. package/dist/components/wizard-stepper.js.map +1 -1
  291. package/dist/{data-table-labels-DUELeXpa.d.ts → data-table-labels-kpAAVi6g.d.ts} +26 -2
  292. package/dist/data-table.d.ts +1 -1
  293. package/dist/{delete-account-setting-CpIhzxxZ.d.ts → delete-account-setting-FLyJf-kZ.d.ts} +642 -60
  294. package/dist/demo/demo-banner.js +1 -0
  295. package/dist/demo/demo-banner.js.map +1 -1
  296. package/dist/feedback/feedback-attachment.d.ts +8 -3
  297. package/dist/feedback/feedback-context.d.ts +8 -3
  298. package/dist/feedback/feedback-crash.d.ts +8 -3
  299. package/dist/feedback/feedback-dialog.d.ts +8 -3
  300. package/dist/feedback/feedback-dialog.js +3 -3
  301. package/dist/feedback/feedback-dialog.js.map +1 -1
  302. package/dist/feedback/feedback-inbox.d.ts +8 -3
  303. package/dist/feedback/feedback-inbox.js +2 -2
  304. package/dist/feedback/feedback-inbox.js.map +1 -1
  305. package/dist/feedback/feedback-labels.d.ts +8 -3
  306. package/dist/feedback/feedback-menu.d.ts +9 -4
  307. package/dist/feedback/feedback-record.d.ts +8 -3
  308. package/dist/feedback/feedback-row-detail.d.ts +8 -3
  309. package/dist/feedback/feedback-status-undo.d.ts +8 -3
  310. package/dist/feedback/feedback-submit.d.ts +8 -3
  311. package/dist/feedback/feedback-swipe.d.ts +8 -3
  312. package/dist/feedback/feedback-table.d.ts +8 -3
  313. package/dist/feedback/feedback-thread.d.ts +8 -3
  314. package/dist/feedback/feedback-thread.js +3 -3
  315. package/dist/feedback/feedback-thread.js.map +1 -1
  316. package/dist/feedback.d.ts +8 -3
  317. package/dist/hooks/use-anchored-panel.d.ts +32 -3
  318. package/dist/hooks/use-anchored-panel.js +21 -3
  319. package/dist/hooks/use-anchored-panel.js.map +1 -1
  320. package/dist/hooks/use-breakpoint.d.ts +88 -0
  321. package/dist/hooks/use-breakpoint.js +50 -0
  322. package/dist/hooks/use-breakpoint.js.map +1 -0
  323. package/dist/hooks/use-file-drop.d.ts +8 -3
  324. package/dist/hooks/use-large-text.d.ts +29 -0
  325. package/dist/hooks/use-large-text.js +20 -0
  326. package/dist/hooks/use-large-text.js.map +1 -0
  327. package/dist/hooks/use-windowed-rows.d.ts +52 -8
  328. package/dist/hooks/use-windowed-rows.js +94 -5
  329. package/dist/hooks/use-windowed-rows.js.map +1 -1
  330. package/dist/i18n/defaults.d.ts +8 -3
  331. package/dist/i18n/defaults.js +8 -0
  332. package/dist/i18n/defaults.js.map +1 -1
  333. package/dist/i18n/german.d.ts +8 -3
  334. package/dist/i18n/german.js +94 -3
  335. package/dist/i18n/german.js.map +1 -1
  336. package/dist/i18n/kit-labels.d.ts +8 -3
  337. package/dist/i18n/kit-labels.js.map +1 -1
  338. package/dist/i18n/languages.d.ts +10 -5
  339. package/dist/i18n/locales/de-CH.d.ts +8 -3
  340. package/dist/i18n/locales/en.d.ts +8 -3
  341. package/dist/i18n/locales/es.d.ts +8 -3
  342. package/dist/i18n/locales/es.js +89 -3
  343. package/dist/i18n/locales/es.js.map +1 -1
  344. package/dist/i18n/locales/fr.d.ts +8 -3
  345. package/dist/i18n/locales/fr.js +91 -3
  346. package/dist/i18n/locales/fr.js.map +1 -1
  347. package/dist/i18n/locales/hu.d.ts +8 -3
  348. package/dist/i18n/locales/hu.js +91 -3
  349. package/dist/i18n/locales/hu.js.map +1 -1
  350. package/dist/i18n/locales/it.d.ts +8 -3
  351. package/dist/i18n/locales/it.js +92 -3
  352. package/dist/i18n/locales/it.js.map +1 -1
  353. package/dist/i18n/locales/zh.d.ts +8 -3
  354. package/dist/i18n/locales/zh.js +89 -3
  355. package/dist/i18n/locales/zh.js.map +1 -1
  356. package/dist/i18n/review.d.ts +8 -3
  357. package/dist/i18n/review.js +15 -1
  358. package/dist/i18n/review.js.map +1 -1
  359. package/dist/index.d.ts +27 -11
  360. package/dist/index.js +77 -4
  361. package/dist/index.js.map +1 -1
  362. package/dist/landing/landing-actions.d.ts +8 -3
  363. package/dist/landing/landing-sections.d.ts +8 -3
  364. package/dist/landing/landing-sections.js +7 -3
  365. package/dist/landing/landing-sections.js.map +1 -1
  366. package/dist/landing/public-header.d.ts +9 -4
  367. package/dist/landing/public-header.js +3 -3
  368. package/dist/landing/public-header.js.map +1 -1
  369. package/dist/landing/routing.d.ts +8 -3
  370. package/dist/lib/cn.js +3 -2
  371. package/dist/lib/cn.js.map +1 -1
  372. package/dist/rhf/fields.d.ts +8 -3
  373. package/dist/rhf/fields.js +1 -1
  374. package/dist/rhf/fields.js.map +1 -1
  375. package/dist/rhf/form.d.ts +8 -3
  376. package/dist/rhf/form.js +2 -2
  377. package/dist/rhf/form.js.map +1 -1
  378. package/dist/rhf.d.ts +8 -3
  379. package/dist/search/command-palette.d.ts +1 -1
  380. package/dist/search/command-palette.js +9 -8
  381. package/dist/search/command-palette.js.map +1 -1
  382. package/dist/settings/settings-layout.js +2 -1
  383. package/dist/settings/settings-layout.js.map +1 -1
  384. package/dist/settings/settings-section.d.ts +8 -3
  385. package/dist/settings/use-account-appearance.d.ts +92 -0
  386. package/dist/settings/use-account-appearance.js +63 -0
  387. package/dist/settings/use-account-appearance.js.map +1 -0
  388. package/dist/settings/use-settings-route.d.ts +1 -1
  389. package/dist/settings/use-settings-route.js +2 -3
  390. package/dist/settings/use-settings-route.js.map +1 -1
  391. package/dist/shell/app-shell.d.ts +12 -171
  392. package/dist/shell/app-shell.js +144 -28
  393. package/dist/shell/app-shell.js.map +1 -1
  394. package/dist/shell/auth-layout.js +1 -1
  395. package/dist/shell/auth-layout.js.map +1 -1
  396. package/dist/shell/option-switcher-menu.js +1 -1
  397. package/dist/shell/option-switcher-menu.js.map +1 -1
  398. package/dist/shell/top-bar-brand.d.ts +8 -3
  399. package/dist/shell/top-bar-brand.js +3 -1
  400. package/dist/shell/top-bar-brand.js.map +1 -1
  401. package/dist/shell/topbar-action-menu.d.ts +4 -0
  402. package/dist/shell/topbar-action-menu.js +3 -3
  403. package/dist/shell/topbar-action-menu.js.map +1 -1
  404. package/dist/shell/topbar-controls.js +4 -4
  405. package/dist/shell/topbar-controls.js.map +1 -1
  406. package/dist/shell.d.ts +9 -5
  407. package/dist/theme/contrast-tokens.d.ts +41 -0
  408. package/dist/theme/contrast-tokens.js +59 -0
  409. package/dist/theme/contrast-tokens.js.map +1 -0
  410. package/dist/theme/contrast.d.ts +110 -0
  411. package/dist/theme/contrast.js +128 -0
  412. package/dist/theme/contrast.js.map +1 -0
  413. package/dist/theme/palette-presets.d.ts +12 -1
  414. package/dist/theme/palette-presets.js +9 -4
  415. package/dist/theme/palette-presets.js.map +1 -1
  416. package/dist/theme/palette-store.js.map +1 -1
  417. package/dist/theme/text-size.d.ts +173 -0
  418. package/dist/theme/text-size.js +121 -0
  419. package/dist/theme/text-size.js.map +1 -0
  420. package/dist/wizard/stepper-nav.d.ts +8 -3
  421. package/dist/wizard/wizard-summary.js +1 -1
  422. package/dist/wizard/wizard-summary.js.map +1 -1
  423. package/dist/wizard.d.ts +8 -3
  424. package/package.json +1 -1
  425. package/src/admin/admin-action-log.tsx +6 -1
  426. package/src/admin/invitations-panel.tsx +36 -29
  427. package/src/admin/user-roster.tsx +17 -72
  428. package/src/auth/auth-errors.ts +68 -7
  429. package/src/billing/billing-banner.tsx +205 -0
  430. package/src/billing/billing-labels.ts +240 -0
  431. package/src/billing/billing-lock.ts +75 -0
  432. package/src/billing/billing-standing.ts +72 -0
  433. package/src/billing/plan-card.tsx +458 -0
  434. package/src/billing/plan-limit-notice.tsx +145 -0
  435. package/src/billing/plan-limit.ts +53 -0
  436. package/src/billing/plan-price.ts +101 -0
  437. package/src/billing/subscription-actions.tsx +76 -0
  438. package/src/billing/subscription-status-chip.tsx +95 -0
  439. package/src/chart.ts +2 -0
  440. package/src/components/account-chips.tsx +36 -10
  441. package/src/components/alert-banner.tsx +16 -7
  442. package/src/components/amount-input.tsx +5 -5
  443. package/src/components/appearance-labels.ts +47 -0
  444. package/src/components/autocomplete.tsx +2 -2
  445. package/src/components/breadcrumbs.tsx +3 -3
  446. package/src/components/bulk-action-bar.tsx +11 -14
  447. package/src/components/button-group.tsx +21 -0
  448. package/src/components/calculator.tsx +4 -3
  449. package/src/components/calendar-heatmap.tsx +5 -5
  450. package/src/components/chart-height.ts +30 -0
  451. package/src/components/chart-zoom.tsx +6 -1
  452. package/src/components/checkbox-group.tsx +2 -2
  453. package/src/components/checkbox.tsx +62 -20
  454. package/src/components/chip.tsx +139 -30
  455. package/src/components/choice-card.tsx +16 -11
  456. package/src/components/column-mapper.tsx +1 -1
  457. package/src/components/combobox-core.tsx +8 -7
  458. package/src/components/combobox.tsx +8 -8
  459. package/src/components/country-select.tsx +1 -1
  460. package/src/components/currency-select.tsx +3 -3
  461. package/src/components/data-table-filter-popover.tsx +7 -1
  462. package/src/components/data-table-pagination.tsx +60 -31
  463. package/src/components/data-table.tsx +164 -43
  464. package/src/components/date-picker.tsx +44 -10
  465. package/src/components/description-list.tsx +2 -2
  466. package/src/components/dialog-frame.tsx +2 -1
  467. package/src/components/disclosure.tsx +3 -2
  468. package/src/components/dropdown.tsx +10 -2
  469. package/src/components/facing-pair.ts +12 -5
  470. package/src/components/field-parts.tsx +190 -7
  471. package/src/components/field-sync.tsx +17 -3
  472. package/src/components/field.tsx +2 -2
  473. package/src/components/floating-panel.tsx +7 -4
  474. package/src/components/focus-ring.ts +12 -0
  475. package/src/components/form-actions.tsx +55 -18
  476. package/src/components/full-bleed-dialog.tsx +18 -4
  477. package/src/components/image-grid.tsx +1 -1
  478. package/src/components/inline-edit-field.tsx +26 -4
  479. package/src/components/legal-page.tsx +28 -2
  480. package/src/components/legal.tsx +19 -1
  481. package/src/components/lightbox.tsx +24 -2
  482. package/src/components/line-items.tsx +7 -1
  483. package/src/components/list.tsx +36 -10
  484. package/src/components/measured-grid.tsx +49 -24
  485. package/src/components/menu-item.tsx +2 -2
  486. package/src/components/mini-calendar.tsx +8 -4
  487. package/src/components/month-picker.tsx +15 -6
  488. package/src/components/nav-pills.tsx +1 -1
  489. package/src/components/number-input.tsx +14 -7
  490. package/src/components/numpad-sheet.tsx +2 -2
  491. package/src/components/one-time-code-input.tsx +2 -2
  492. package/src/components/page-contents.tsx +2 -2
  493. package/src/components/phone-input.tsx +9 -4
  494. package/src/components/pie-chart.tsx +19 -9
  495. package/src/components/popover.tsx +22 -5
  496. package/src/components/row-actions.tsx +450 -0
  497. package/src/components/scroll-area.tsx +1 -1
  498. package/src/components/search-field.tsx +4 -2
  499. package/src/components/series-chart-budget.ts +40 -8
  500. package/src/components/series-chart-ticks.ts +10 -0
  501. package/src/components/series-chart.tsx +123 -72
  502. package/src/components/settings-fields.tsx +89 -5
  503. package/src/components/share-card.tsx +31 -2
  504. package/src/components/sign-chip.tsx +28 -4
  505. package/src/components/signature-pad.tsx +13 -7
  506. package/src/components/slider.tsx +22 -9
  507. package/src/components/sparkline.tsx +11 -3
  508. package/src/components/stat-tile.tsx +70 -14
  509. package/src/components/status-dot.tsx +25 -2
  510. package/src/components/swipeable-row.tsx +10 -2
  511. package/src/components/switch.tsx +57 -23
  512. package/src/components/table.tsx +2 -2
  513. package/src/components/text-link.tsx +1 -1
  514. package/src/components/text.tsx +11 -6
  515. package/src/components/tile-radio.tsx +4 -1
  516. package/src/components/toast.tsx +27 -7
  517. package/src/components/toggle-group.tsx +115 -14
  518. package/src/components/toggle-legend.tsx +53 -8
  519. package/src/components/translation-review-editor.tsx +1 -1
  520. package/src/components/translation-review.tsx +11 -5
  521. package/src/components/tree-view.tsx +3 -2
  522. package/src/components/treemap.tsx +27 -10
  523. package/src/components/ui.tsx +353 -153
  524. package/src/components/user-avatar.tsx +1 -1
  525. package/src/components/wizard-stepper.tsx +5 -1
  526. package/src/demo/demo-banner.tsx +5 -0
  527. package/src/feedback/feedback-dialog.tsx +3 -3
  528. package/src/feedback/feedback-inbox.tsx +2 -2
  529. package/src/feedback/feedback-thread.tsx +3 -3
  530. package/src/hooks/use-anchored-panel.ts +67 -5
  531. package/src/hooks/use-breakpoint.ts +132 -0
  532. package/src/hooks/use-large-text.ts +41 -0
  533. package/src/hooks/use-windowed-rows.ts +168 -12
  534. package/src/i18n/defaults.ts +8 -0
  535. package/src/i18n/german.ts +107 -0
  536. package/src/i18n/kit-labels.tsx +12 -0
  537. package/src/i18n/locales/es.ts +98 -0
  538. package/src/i18n/locales/fr.ts +102 -0
  539. package/src/i18n/locales/hu.ts +100 -0
  540. package/src/i18n/locales/it.ts +103 -0
  541. package/src/i18n/locales/zh.ts +94 -0
  542. package/src/i18n/review.ts +14 -0
  543. package/src/index.ts +76 -6
  544. package/src/landing/landing-sections.tsx +7 -3
  545. package/src/landing/public-header.tsx +4 -4
  546. package/src/lib/cn.ts +13 -2
  547. package/src/rhf/fields.tsx +1 -1
  548. package/src/rhf/form.tsx +2 -2
  549. package/src/search/command-palette.tsx +10 -9
  550. package/src/settings/settings-layout.tsx +2 -1
  551. package/src/settings/use-account-appearance.ts +148 -0
  552. package/src/settings/use-settings-route.ts +3 -4
  553. package/src/shell/app-shell.tsx +278 -54
  554. package/src/shell/auth-layout.tsx +1 -1
  555. package/src/shell/option-switcher-menu.tsx +1 -1
  556. package/src/shell/top-bar-brand.tsx +3 -1
  557. package/src/shell/topbar-action-menu.tsx +3 -3
  558. package/src/shell/topbar-controls.tsx +4 -4
  559. package/src/theme/contrast-tokens.ts +112 -0
  560. package/src/theme/contrast.ts +225 -0
  561. package/src/theme/palette-presets.ts +24 -4
  562. package/src/theme/palette-store.ts +6 -1
  563. package/src/theme/text-size.ts +283 -0
  564. package/src/wizard/wizard-summary.tsx +4 -2
  565. package/tokens.css +158 -8
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/use-breakpoint.ts"],"sourcesContent":["import { useMediaQuery } from \"./use-media-query\";\nimport { useTextSize } from \"../theme/text-size\";\n\n/**\n * Breakpoints that follow the text size, in JS (docs/text-size-harmonization.md §3.3,\n * §10.4).\n *\n * A media query's rem resolves against the browser's default font size, not `<html>`'s,\n * so Tailwind's `md:` would stay at 48rem when the root grows. tokens.css therefore\n * redefines every breakpoint variant per text size — `md:` is 48rem at Normal, 60rem at\n * Large, 72rem at Extra large — and these hooks ask the same question with the same\n * numbers, so the CSS and the JS answer always agree: AppShell's `md:hidden` and its\n * `isMdUp`, DataTable's cards and its full-screen dialog, an app's sticky footer\n * (keksdose's must be the SAME `usePhoneLayout()` the dialog uses, §10.4).\n *\n * Width queries only. Pointer and display-mode queries stay `useMediaQuery` (§10.4).\n */\n\n/** The breakpoints at Normal, in rem: Tailwind's five, and `3xl` (keksdose's\n * `min-[2400px]`, §10.4). tokens.css multiplies each by the text size. */\nexport const BREAKPOINT_REM = { sm: 40, md: 48, lg: 64, xl: 80, \"2xl\": 96, \"3xl\": 150 } as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINT_REM;\n\n/** A breakpoint variant, spelled as in a class: `\"md\"` is `md:` (at least md), `\"max-md\"`\n * is `max-md:` (below md). */\nexport type BreakpointVariant = Breakpoint | `max-${Breakpoint}`;\n\n/**\n * The browser's own default font size in px — what a media query's rem means (the\n * initial `font-size: medium`, never `<html>`'s). 16 unless the person changed it, and 16\n * outside a browser. Read once: changing it takes a browser setting, after which the\n * page is reloaded in practice.\n */\nlet browserRemPx: number | null = null;\nfunction readBrowserRemPx(): number {\n if (browserRemPx !== null) return browserRemPx;\n // Outside a browser (SSR): 16, uncached, so the client's first real read still counts.\n if (typeof document === \"undefined\" || !document.body) return 16;\n const probe = document.createElement(\"div\");\n probe.style.cssText = \"position:absolute;visibility:hidden;font-size:medium\";\n document.body.appendChild(probe);\n const px = Number.parseFloat(getComputedStyle(probe).fontSize);\n probe.remove();\n // jsdom computes no font size (\"medium\" or nothing): the default it stands for.\n browserRemPx = px > 0 ? px : 16;\n return browserRemPx;\n}\n\n/**\n * How many CSS px one `rem` is at `scale` (`TEXT_SCALE` of the size in force): the\n * browser's own default font size times the text size — what `<html>`'s computed font\n * size is, by tokens.css. For the few lengths JS has to do arithmetic with: a popover's\n * width against the viewport edge, a chart constant (§3.1, §3.2). 16 × `scale` outside a\n * browser and in jsdom, which computes no default font size.\n */\nexport function remPx(scale = 1): number {\n return readBrowserRemPx() * scale;\n}\n\n/** {@link remPx} at the text size in force, re-rendering when it changes. */\nexport function useRemPx(): number {\n const { scale } = useTextSize();\n return remPx(scale);\n}\n\n/** A length in rem as the kit spells one in JS — `\"18rem\"` — where a prop also takes px\n * as a plain number. */\nexport type RemLength = `${number}rem`;\n\n/**\n * A `number | RemLength` in CSS px now: a number is px as given, `\"18rem\"` is 18 ×\n * `rootRemPx` (see {@link remPx}). `undefined` stays `undefined`.\n */\nexport function lengthPx(length: number | RemLength, rootRemPx: number): number;\nexport function lengthPx(length: number | RemLength | undefined, rootRemPx: number): number | undefined;\nexport function lengthPx(length: number | RemLength | undefined, rootRemPx: number): number | undefined {\n if (length === undefined) return undefined;\n return typeof length === \"number\" ? length : Number.parseFloat(length) * rootRemPx;\n}\n\n/**\n * The media query a breakpoint variant means at `scale` (`TEXT_SCALE` of the size in\n * force). `\"md\"` → `(min-width: 768px)` at Normal, `(min-width: 960px)` at Large;\n * `\"max-md\"` → `(width < 768px)` at Normal. In px, scaled by the browser's own default\n * font size as well, so a person who set 20 px in the browser gets 960 px for `md` at\n * Normal — as the CSS does.\n *\n * `max-*` is written in range syntax, `(width < N)`, against the same `N` its `min-*`\n * twin starts at, so the two are exact complements at EVERY width: exactly one of\n * `md` and `max-md` matches, as with tokens.css's `width >= 48rem` / `width < 48rem`\n * (and Tailwind's own `max-*`). Until 0.32.1 it was `(max-width: 767px)`, which left a\n * gap: on a fractional viewport width (767.5 px under zoom or at some Android\n * device-pixel ratios) neither query matched, so DataTable, asking `!md`, said phone\n * while `usePhoneLayout()`, asking `max-md`, said not (0.32.1, keksdose's 0.32 report;\n * docs/text-size-harmonization.md §3.3: \"the CSS and JS answers always agree\").\n *\n * Range syntax in media queries is Chrome / Edge 104, Firefox 63, Safari 16.4. That is\n * inside the floor the kit already sets: tokens.css's breakpoint variants are written in\n * it, and Tailwind v4 itself needs Safari 16.4, Chrome 111 and Firefox 128.\n *\n * A test's `matchMedia` stub that keyed on the old string (`\"max-width: 767px\"`, the\n * deprecated `PHONE_QUERY`) has to answer `(width < 768px)` now. `min-*` is unchanged,\n * character for character.\n */\nexport function breakpointQuery(variant: BreakpointVariant, scale = 1, remPx: number = readBrowserRemPx()): string {\n const max = variant.startsWith(\"max-\");\n const name = (max ? variant.slice(4) : variant) as Breakpoint;\n const px = Math.round(BREAKPOINT_REM[name] * remPx * scale);\n return max ? `(width < ${px}px)` : `(min-width: ${px}px)`;\n}\n\n/**\n * Whether the viewport matches a breakpoint variant at the text size in force — the JS\n * twin of the class: `useBreakpoint(\"md\")` is true exactly where `md:` applies,\n * `useBreakpoint(\"max-sm\")` where `max-sm:` does. `fallback` answers where there is no\n * `matchMedia` (SSR, jsdom).\n */\nexport function useBreakpoint(variant: BreakpointVariant, fallback = false): boolean {\n const { scale } = useTextSize();\n return useMediaQuery(breakpointQuery(variant, scale), fallback);\n}\n\n/**\n * The phone layout: below `md` at the text size in force — `max-md:` in CSS. The single\n * answer for \"is this the phone layout\" (§10.4): the kit's own sheets and cards use it,\n * and an app's phone checks must too, so a tablet at 150 % gets every phone treatment\n * at once or none of them. Replaces `useMediaQuery(PHONE_QUERY)`.\n */\nexport function usePhoneLayout(fallback = false): boolean {\n return useBreakpoint(\"max-md\", fallback);\n}\n"],"mappings":";AAAA,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAmBrB,MAAM,iBAAiB,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,OAAO,IAAI;AActF,IAAI,eAA8B;AAClC,SAAS,mBAA2B;AAClC,MAAI,iBAAiB,KAAM,QAAO;AAElC,MAAI,OAAO,aAAa,eAAe,CAAC,SAAS,KAAM,QAAO;AAC9D,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,MAAM,UAAU;AACtB,WAAS,KAAK,YAAY,KAAK;AAC/B,QAAM,KAAK,OAAO,WAAW,iBAAiB,KAAK,EAAE,QAAQ;AAC7D,QAAM,OAAO;AAEb,iBAAe,KAAK,IAAI,KAAK;AAC7B,SAAO;AACT;AASO,SAAS,MAAM,QAAQ,GAAW;AACvC,SAAO,iBAAiB,IAAI;AAC9B;AAGO,SAAS,WAAmB;AACjC,QAAM,EAAE,MAAM,IAAI,YAAY;AAC9B,SAAO,MAAM,KAAK;AACpB;AAYO,SAAS,SAAS,QAAwC,WAAuC;AACtG,MAAI,WAAW,OAAW,QAAO;AACjC,SAAO,OAAO,WAAW,WAAW,SAAS,OAAO,WAAW,MAAM,IAAI;AAC3E;AA0BO,SAAS,gBAAgB,SAA4B,QAAQ,GAAGA,SAAgB,iBAAiB,GAAW;AACjH,QAAM,MAAM,QAAQ,WAAW,MAAM;AACrC,QAAM,OAAQ,MAAM,QAAQ,MAAM,CAAC,IAAI;AACvC,QAAM,KAAK,KAAK,MAAM,eAAe,IAAI,IAAIA,SAAQ,KAAK;AAC1D,SAAO,MAAM,YAAY,EAAE,QAAQ,eAAe,EAAE;AACtD;AAQO,SAAS,cAAc,SAA4B,WAAW,OAAgB;AACnF,QAAM,EAAE,MAAM,IAAI,YAAY;AAC9B,SAAO,cAAc,gBAAgB,SAAS,KAAK,GAAG,QAAQ;AAChE;AAQO,SAAS,eAAe,WAAW,OAAgB;AACxD,SAAO,cAAc,UAAU,QAAQ;AACzC;","names":["remPx"]}
@@ -1,16 +1,18 @@
1
1
  import { DragEvent, ReactElement } from 'react';
2
- import { fd as UseFilePickerOptions } from '../delete-account-setting-CpIhzxxZ.js';
2
+ import { fA as UseFilePickerOptions } from '../delete-account-setting-FLyJf-kZ.js';
3
3
  import '../components/tooltip.js';
4
4
  import './use-anchored-rect.js';
5
5
  import '../lib/clipping.js';
6
- import '../data-table-labels-DUELeXpa.js';
6
+ import '../data-table-labels-kpAAVi6g.js';
7
7
  import '../components/data-table-sort.js';
8
8
  import '../components/swipeable-row.js';
9
9
  import '../components/mini-calendar.js';
10
10
  import '../components/calendar-heatmap.js';
11
11
  import '../components/popover.js';
12
+ import './use-breakpoint.js';
12
13
  import '../components/chip.js';
13
14
  import 'lucide-react';
15
+ import '../components/field-parts.js';
14
16
  import '../components/field-sync.js';
15
17
  import '../wizard/types.js';
16
18
  import '../tour/tour.js';
@@ -79,6 +81,9 @@ import '../admin/admin-parts.js';
79
81
  import '../admin/admin-action-log.js';
80
82
  import '../settings/settings-labels.js';
81
83
  import '../demo/demo-labels.js';
84
+ import '../components/appearance-labels.js';
85
+ import '../theme/contrast.js';
86
+ import '../theme/text-size.js';
82
87
  import '../components/reauth-dialog.js';
83
88
  import '../components/server-wake.js';
84
89
  import '../lib/server-wake.js';
@@ -92,7 +97,7 @@ import '../components/sign-chip.js';
92
97
  import '../components/column-mapper.js';
93
98
  import '../lib/column-mapping.js';
94
99
  import '../lib/table-text.js';
95
- import '../components/field-parts.js';
100
+ import '../components/focus-ring.js';
96
101
 
97
102
  /**
98
103
  * Turn ANY element into a file drop target — kastlan's ask, for the document list of
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The two questions the kit's 0.32 behaviours ask (docs/text-size-harmonization.md §4,
3
+ * §10.7–10.9), answered in one place so every part draws the line where the others do.
4
+ *
5
+ * Prefer CSS where it can: a class that differs at Large is a `large:` variant
6
+ * (tokens.css), and a layout switch is a breakpoint, which already scales. These hooks
7
+ * are for what CSS cannot decide — whether a tooltip is rendered at all, whether a label
8
+ * becomes text, whether a row's actions collapse into a menu.
9
+ */
10
+ /** Large or Extra large is in force (`<html data-text-size>`) — the JS twin of the
11
+ * `large:` variant. */
12
+ declare function useLargeText(): boolean;
13
+ /**
14
+ * The primary pointer is a finger (`pointer: coarse`): a hover never happens, so a
15
+ * tooltip opens only on the taps that do nothing else. A pointer query, so it stays
16
+ * `useMediaQuery` (§10.4). `false` without `matchMedia` (SSR, jsdom).
17
+ */
18
+ declare function useCoarsePointer(): boolean;
19
+ /**
20
+ * Whether a fact may NOT live only in a tooltip here (§4 "No fact only in a tooltip"):
21
+ * at Large and Extra large, where the reader is the one who asked for bigger type, and
22
+ * on a touch screen at every size, where a tooltip cannot be hovered open. Where this
23
+ * is true the kit draws the fact in the layout — a `disabledReason` as a line under its
24
+ * control, a FieldHint as the field's caption, a StatTile hint as text — and keeps the
25
+ * bubble only where there is no room (a top bar, a dense row's inline actions).
26
+ */
27
+ declare function useInlineFacts(): boolean;
28
+
29
+ export { useCoarsePointer, useInlineFacts, useLargeText };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { useTextSize } from "../theme/text-size.js";
3
+ import { useMediaQuery } from "./use-media-query.js";
4
+ function useLargeText() {
5
+ return useTextSize().size !== "normal";
6
+ }
7
+ function useCoarsePointer() {
8
+ return useMediaQuery("(pointer: coarse)", false);
9
+ }
10
+ function useInlineFacts() {
11
+ const large = useLargeText();
12
+ const coarse = useCoarsePointer();
13
+ return large || coarse;
14
+ }
15
+ export {
16
+ useCoarsePointer,
17
+ useInlineFacts,
18
+ useLargeText
19
+ };
20
+ //# sourceMappingURL=use-large-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/use-large-text.ts"],"sourcesContent":["import { useTextSize } from \"../theme/text-size\";\nimport { useMediaQuery } from \"./use-media-query\";\n\n/**\n * The two questions the kit's 0.32 behaviours ask (docs/text-size-harmonization.md §4,\n * §10.7–10.9), answered in one place so every part draws the line where the others do.\n *\n * Prefer CSS where it can: a class that differs at Large is a `large:` variant\n * (tokens.css), and a layout switch is a breakpoint, which already scales. These hooks\n * are for what CSS cannot decide — whether a tooltip is rendered at all, whether a label\n * becomes text, whether a row's actions collapse into a menu.\n */\n\n/** Large or Extra large is in force (`<html data-text-size>`) — the JS twin of the\n * `large:` variant. */\nexport function useLargeText(): boolean {\n return useTextSize().size !== \"normal\";\n}\n\n/**\n * The primary pointer is a finger (`pointer: coarse`): a hover never happens, so a\n * tooltip opens only on the taps that do nothing else. A pointer query, so it stays\n * `useMediaQuery` (§10.4). `false` without `matchMedia` (SSR, jsdom).\n */\nexport function useCoarsePointer(): boolean {\n return useMediaQuery(\"(pointer: coarse)\", false);\n}\n\n/**\n * Whether a fact may NOT live only in a tooltip here (§4 \"No fact only in a tooltip\"):\n * at Large and Extra large, where the reader is the one who asked for bigger type, and\n * on a touch screen at every size, where a tooltip cannot be hovered open. Where this\n * is true the kit draws the fact in the layout — a `disabledReason` as a line under its\n * control, a FieldHint as the field's caption, a StatTile hint as text — and keeps the\n * bubble only where there is no room (a top bar, a dense row's inline actions).\n */\nexport function useInlineFacts(): boolean {\n const large = useLargeText();\n const coarse = useCoarsePointer();\n return large || coarse;\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAcvB,SAAS,eAAwB;AACtC,SAAO,YAAY,EAAE,SAAS;AAChC;AAOO,SAAS,mBAA4B;AAC1C,SAAO,cAAc,qBAAqB,KAAK;AACjD;AAUO,SAAS,iBAA0B;AACxC,QAAM,QAAQ,aAAa;AAC3B,QAAM,SAAS,iBAAiB;AAChC,SAAO,SAAS;AAClB;","names":[]}
@@ -1,21 +1,65 @@
1
1
  import { RefObject } from 'react';
2
2
 
3
+ /** The attribute a measured row carries so {@link WindowedRows.measureRef} knows which
4
+ * row it is looking at: `data-row-index={index}`. */
5
+ declare const WINDOWED_ROW_INDEX = "data-row-index";
3
6
  /** What {@link useWindowedRows} answers: render rows `first` up to (not including)
4
7
  * `last`, inside a scroll body `totalHeight` pixels tall. */
5
8
  interface WindowedRows {
6
9
  first: number;
7
10
  last: number;
8
11
  totalHeight: number;
12
+ /**
13
+ * The top of row `index`, in px from the top of the list: the rows above it at their
14
+ * MEASURED heights where they have been rendered, at {@link estimate} where not.
15
+ * Position each row at this (`style={{ top: offsetOf(index) }}`) rather than at
16
+ * `index × rowHeight`, which is right only while every row is the estimate.
17
+ */
18
+ offsetOf: (index: number) => number;
19
+ /** The height of row `index`: measured, else {@link estimate}. */
20
+ heightOf: (index: number) => number;
21
+ /**
22
+ * The height assumed for a row not measured yet: `rowHeight × scale`, the text
23
+ * size's factor (`useTextSize`). Give a row this as its `minHeight`, not its
24
+ * `height`: a row that wraps must be allowed to grow, and is then measured.
25
+ */
26
+ estimate: number;
27
+ /**
28
+ * Put on every rendered row, with `data-row-index={index}` beside it: the row is
29
+ * observed while it is mounted, and its height replaces the estimate. Stable for the
30
+ * life of the list. A row without it keeps the estimate, which is the pre-0.32
31
+ * fixed-height list exactly.
32
+ */
33
+ measureRef: (element: HTMLElement | null) => (() => void) | undefined;
9
34
  }
10
35
  /**
11
- * Which rows of a fixed-height list are worth rendering.
36
+ * Which rows of a long list are worth rendering — and, since 0.32, where each one goes.
12
37
  *
13
- * Hand-rolled rather than pulled from a virtualization library, for two reasons. With
14
- * a fixed row height the whole problem is two divisions — a library earns its keep on
15
- * measured, variable-height rows, and there are none here. And the obvious library for
16
- * it (`@tanstack/react-virtual`) returns functions that cannot be memoized safely, so
17
- * the React Compiler skips optimising any component that calls it: a list that exists
18
- * to stay fast would opt out of the consumer's main source of speed.
38
+ * Hand-rolled rather than pulled from a virtualization library: the obvious one
39
+ * (`@tanstack/react-virtual`) returns functions that cannot be memoized safely, so the
40
+ * React Compiler skips optimising any component that calls it — a list that exists to
41
+ * stay fast would opt out of the consumer's main source of speed.
42
+ *
43
+ * **Measured rows (docs/text-size-harmonization.md §10.9).** Until 0.32 every row was
44
+ * `rowHeight` px and the window was two divisions. "Nothing truncates" at Large and
45
+ * Extra large needs rows that grow with their text — Kurvenschmiede's segment list
46
+ * wraps a long name at 150 %, and a fixed 68 px row cut it off. So the rows are
47
+ * measured: put {@link WindowedRows.measureRef} and `data-row-index` on each rendered
48
+ * row, and one `ResizeObserver` watches every row while it is mounted (one observer for
49
+ * all of them, which the browser batches into one callback per frame). A measured
50
+ * height replaces the estimate; a row never rendered keeps `rowHeight × scale`, the
51
+ * text size's factor, so the scroll body is about right before anything is measured
52
+ * and exactly right for everything that has been. Offsets are a prefix sum over both,
53
+ * rebuilt only when a height changes — scrolling is a binary search.
54
+ *
55
+ * Measurements are dropped when the text size changes (every row is a different height
56
+ * then, and the rendered ones measure again at once) and ignored past `count` (a row
57
+ * removed at the end). Removing a row in the MIDDLE shifts the indices below it; they
58
+ * keep the old row's height until they are rendered again, which costs a few pixels of
59
+ * scrollbar, never a row out of place on screen.
60
+ *
61
+ * Without a `ResizeObserver` (jsdom, an old webview) the estimate holds for every row,
62
+ * which is the fixed-height list of before.
19
63
  *
20
64
  * `scrollRef` is the element that scrolls. The rows are assumed to start at its top;
21
65
  * a sticky header above them costs a row or two of the overscan, not correctness.
@@ -26,4 +70,4 @@ interface WindowedRows {
26
70
  */
27
71
  declare function useWindowedRows(count: number, rowHeight: number, scrollRef: RefObject<HTMLElement | null>): WindowedRows;
28
72
 
29
- export { type WindowedRows, useWindowedRows };
73
+ export { WINDOWED_ROW_INDEX, type WindowedRows, useWindowedRows };
@@ -1,9 +1,41 @@
1
1
  "use client";
2
- import { useEffect, useState } from "react";
2
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
3
+ import { useTextSize } from "../theme/text-size.js";
3
4
  const OVERSCAN = 6;
5
+ const WINDOWED_ROW_INDEX = "data-row-index";
6
+ const NO_HEIGHTS = /* @__PURE__ */ new Map();
7
+ function rowHeightOf(entry) {
8
+ const box = entry.borderBoxSize?.[0];
9
+ if (box && box.blockSize > 0) return box.blockSize;
10
+ return entry.target.getBoundingClientRect().height;
11
+ }
12
+ function indexOf(element) {
13
+ const raw = element.getAttribute(WINDOWED_ROW_INDEX);
14
+ if (raw === null) return null;
15
+ const index = Number(raw);
16
+ return Number.isInteger(index) && index >= 0 ? index : null;
17
+ }
18
+ function rowAt(offsets, count, y) {
19
+ let lo = 0;
20
+ let hi = count;
21
+ while (lo < hi) {
22
+ const mid = lo + hi + 1 >> 1;
23
+ if (offsets[mid] <= y) lo = mid;
24
+ else hi = mid - 1;
25
+ }
26
+ return Math.min(lo, Math.max(0, count - 1));
27
+ }
4
28
  function useWindowedRows(count, rowHeight, scrollRef) {
29
+ const { scale } = useTextSize();
30
+ const estimate = rowHeight * scale;
5
31
  const [scrollTop, setScrollTop] = useState(0);
6
32
  const [viewport, setViewport] = useState(0);
33
+ const [measured, setMeasured] = useState({ scale, heights: NO_HEIGHTS });
34
+ const heights = measured.scale === scale ? measured.heights : NO_HEIGHTS;
35
+ const scaleRef = useRef(scale);
36
+ useLayoutEffect(() => {
37
+ scaleRef.current = scale;
38
+ }, [scale]);
7
39
  useEffect(() => {
8
40
  const element = scrollRef.current;
9
41
  if (!element) return;
@@ -20,12 +52,69 @@ function useWindowedRows(count, rowHeight, scrollRef) {
20
52
  observer?.disconnect();
21
53
  };
22
54
  }, [scrollRef]);
23
- const first = Math.max(0, Math.floor(scrollTop / rowHeight) - OVERSCAN);
24
- const visible = Math.ceil((viewport || 600) / rowHeight) + OVERSCAN * 2;
25
- const last = Math.min(count, first + visible);
26
- return { first, last, totalHeight: count * rowHeight };
55
+ const rowObserver = useRef(null);
56
+ useEffect(
57
+ () => () => {
58
+ rowObserver.current?.disconnect();
59
+ rowObserver.current = null;
60
+ },
61
+ []
62
+ );
63
+ const measureRef = useCallback((element) => {
64
+ if (!element || typeof ResizeObserver === "undefined") return void 0;
65
+ if (!rowObserver.current) {
66
+ rowObserver.current = new ResizeObserver((entries) => {
67
+ const updates = [];
68
+ for (const entry of entries) {
69
+ const index = indexOf(entry.target);
70
+ const height = rowHeightOf(entry);
71
+ if (index !== null && height > 0) updates.push([index, height]);
72
+ }
73
+ if (!updates.length) return;
74
+ const at = scaleRef.current;
75
+ setMeasured((previous) => {
76
+ const base = previous.scale === at ? previous.heights : NO_HEIGHTS;
77
+ if (updates.every(([index, height]) => base.get(index) === height)) {
78
+ return previous.scale === at ? previous : { scale: at, heights: base };
79
+ }
80
+ const next = new Map(base);
81
+ for (const [index, height] of updates) next.set(index, height);
82
+ return { scale: at, heights: next };
83
+ });
84
+ });
85
+ }
86
+ const observer = rowObserver.current;
87
+ observer.observe(element);
88
+ return () => observer.unobserve(element);
89
+ }, []);
90
+ const offsets = useMemo(() => {
91
+ if (heights.size === 0) return null;
92
+ const table = new Float64Array(count + 1);
93
+ for (let index = 0; index < count; index += 1) {
94
+ table[index + 1] = table[index] + (heights.get(index) ?? estimate);
95
+ }
96
+ return table;
97
+ }, [count, estimate, heights]);
98
+ const offsetOf = useCallback(
99
+ (index) => offsets ? offsets[Math.max(0, Math.min(index, count))] : index * estimate,
100
+ [offsets, count, estimate]
101
+ );
102
+ const heightOf = useCallback((index) => heights.get(index) ?? estimate, [heights, estimate]);
103
+ const room = viewport || 600;
104
+ let first;
105
+ let last;
106
+ if (offsets) {
107
+ first = Math.max(0, rowAt(offsets, count, scrollTop) - OVERSCAN);
108
+ last = Math.min(count, rowAt(offsets, count, scrollTop + room) + 1 + OVERSCAN);
109
+ } else {
110
+ first = Math.max(0, Math.floor(scrollTop / estimate) - OVERSCAN);
111
+ last = Math.min(count, first + Math.ceil(room / estimate) + OVERSCAN * 2);
112
+ }
113
+ const totalHeight = offsets ? offsets[count] : count * estimate;
114
+ return { first, last, totalHeight, offsetOf, heightOf, estimate, measureRef };
27
115
  }
28
116
  export {
117
+ WINDOWED_ROW_INDEX,
29
118
  useWindowedRows
30
119
  };
31
120
  //# sourceMappingURL=use-windowed-rows.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-windowed-rows.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { RefObject } from \"react\";\n\n/** Rows kept mounted beyond each edge, so a flick-scroll has something to show\n * before the next render lands. */\nconst OVERSCAN = 6;\n\n/** What {@link useWindowedRows} answers: render rows `first` up to (not including)\n * `last`, inside a scroll body `totalHeight` pixels tall. */\nexport interface WindowedRows {\n first: number;\n last: number;\n totalHeight: number;\n}\n\n/**\n * Which rows of a fixed-height list are worth rendering.\n *\n * Hand-rolled rather than pulled from a virtualization library, for two reasons. With\n * a fixed row height the whole problem is two divisions — a library earns its keep on\n * measured, variable-height rows, and there are none here. And the obvious library for\n * it (`@tanstack/react-virtual`) returns functions that cannot be memoized safely, so\n * the React Compiler skips optimising any component that calls it: a list that exists\n * to stay fast would opt out of the consumer's main source of speed.\n *\n * `scrollRef` is the element that scrolls. The rows are assumed to start at its top;\n * a sticky header above them costs a row or two of the overscan, not correctness.\n *\n * Moved from Lenkbank, where `MeasuredGrid` and a segment list window the same way over\n * rows of different heights — two copies of this would be two places to fix the day\n * the overscan turns out to be wrong.\n */\nexport function useWindowedRows(\n count: number,\n rowHeight: number,\n scrollRef: RefObject<HTMLElement | null>,\n): WindowedRows {\n const [scrollTop, setScrollTop] = useState(0);\n const [viewport, setViewport] = useState(0);\n\n useEffect(() => {\n const element = scrollRef.current;\n if (!element) return;\n const measure = () => {\n setScrollTop(element.scrollTop);\n setViewport(element.clientHeight);\n };\n measure();\n element.addEventListener(\"scroll\", measure, { passive: true });\n // The pane usually sits in a responsive layout, so its height changes without the\n // window's — a resize listener alone would miss every one of those. Guarded:\n // jsdom and older embedded webviews have no ResizeObserver, and the list still\n // has to render there.\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(measure);\n observer?.observe(element);\n return () => {\n element.removeEventListener(\"scroll\", measure);\n observer?.disconnect();\n };\n }, [scrollRef]);\n\n const first = Math.max(0, Math.floor(scrollTop / rowHeight) - OVERSCAN);\n // A viewport of 0 is the first render, before the pane has been laid out (and every\n // render under jsdom). Rendering nothing then would leave the list blank until\n // something scrolled it, so fall back to a screenful.\n const visible = Math.ceil((viewport || 600) / rowHeight) + OVERSCAN * 2;\n const last = Math.min(count, first + visible);\n return { first, last, totalHeight: count * rowHeight };\n}\n"],"mappings":";AAAA,SAAS,WAAW,gBAAgB;AAKpC,MAAM,WAAW;AA2BV,SAAS,gBACd,OACA,WACA,WACc;AACd,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,CAAC;AAC5C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,CAAC;AAE1C,YAAU,MAAM;AACd,UAAM,UAAU,UAAU;AAC1B,QAAI,CAAC,QAAS;AACd,UAAM,UAAU,MAAM;AACpB,mBAAa,QAAQ,SAAS;AAC9B,kBAAY,QAAQ,YAAY;AAAA,IAClC;AACA,YAAQ;AACR,YAAQ,iBAAiB,UAAU,SAAS,EAAE,SAAS,KAAK,CAAC;AAK7D,UAAM,WAAW,OAAO,mBAAmB,cAAc,OAAO,IAAI,eAAe,OAAO;AAC1F,cAAU,QAAQ,OAAO;AACzB,WAAO,MAAM;AACX,cAAQ,oBAAoB,UAAU,OAAO;AAC7C,gBAAU,WAAW;AAAA,IACvB;AAAA,EACF,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,YAAY,SAAS,IAAI,QAAQ;AAItE,QAAM,UAAU,KAAK,MAAM,YAAY,OAAO,SAAS,IAAI,WAAW;AACtE,QAAM,OAAO,KAAK,IAAI,OAAO,QAAQ,OAAO;AAC5C,SAAO,EAAE,OAAO,MAAM,aAAa,QAAQ,UAAU;AACvD;","names":[]}
1
+ {"version":3,"sources":["../../src/hooks/use-windowed-rows.ts"],"sourcesContent":["import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\nimport type { RefObject } from \"react\";\nimport { useTextSize } from \"../theme/text-size\";\n\n/** Rows kept mounted beyond each edge, so a flick-scroll has something to show\n * before the next render lands. */\nconst OVERSCAN = 6;\n\n/** The attribute a measured row carries so {@link WindowedRows.measureRef} knows which\n * row it is looking at: `data-row-index={index}`. */\nexport const WINDOWED_ROW_INDEX = \"data-row-index\";\n\n/** What {@link useWindowedRows} answers: render rows `first` up to (not including)\n * `last`, inside a scroll body `totalHeight` pixels tall. */\nexport interface WindowedRows {\n first: number;\n last: number;\n totalHeight: number;\n /**\n * The top of row `index`, in px from the top of the list: the rows above it at their\n * MEASURED heights where they have been rendered, at {@link estimate} where not.\n * Position each row at this (`style={{ top: offsetOf(index) }}`) rather than at\n * `index × rowHeight`, which is right only while every row is the estimate.\n */\n offsetOf: (index: number) => number;\n /** The height of row `index`: measured, else {@link estimate}. */\n heightOf: (index: number) => number;\n /**\n * The height assumed for a row not measured yet: `rowHeight × scale`, the text\n * size's factor (`useTextSize`). Give a row this as its `minHeight`, not its\n * `height`: a row that wraps must be allowed to grow, and is then measured.\n */\n estimate: number;\n /**\n * Put on every rendered row, with `data-row-index={index}` beside it: the row is\n * observed while it is mounted, and its height replaces the estimate. Stable for the\n * life of the list. A row without it keeps the estimate, which is the pre-0.32\n * fixed-height list exactly.\n */\n measureRef: (element: HTMLElement | null) => (() => void) | undefined;\n}\n\ntype Heights = ReadonlyMap<number, number>;\nconst NO_HEIGHTS: Heights = new Map();\n\n/** The box height of an observed row: the border box where the browser reports one,\n * else its laid-out rectangle. `0` means \"not laid out\" (hidden, jsdom) and is ignored. */\nfunction rowHeightOf(entry: ResizeObserverEntry): number {\n const box = entry.borderBoxSize?.[0];\n if (box && box.blockSize > 0) return box.blockSize;\n return entry.target.getBoundingClientRect().height;\n}\n\n/** The row index an element was given with {@link WINDOWED_ROW_INDEX}, or `null`. */\nfunction indexOf(element: Element): number | null {\n const raw = element.getAttribute(WINDOWED_ROW_INDEX);\n if (raw === null) return null;\n const index = Number(raw);\n return Number.isInteger(index) && index >= 0 ? index : null;\n}\n\n/** The last index `i` with `offsets[i] <= y` (0 when none): the row whose box holds `y`. */\nfunction rowAt(offsets: Float64Array, count: number, y: number): number {\n let lo = 0;\n let hi = count;\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1;\n if (offsets[mid] <= y) lo = mid;\n else hi = mid - 1;\n }\n return Math.min(lo, Math.max(0, count - 1));\n}\n\n/**\n * Which rows of a long list are worth rendering — and, since 0.32, where each one goes.\n *\n * Hand-rolled rather than pulled from a virtualization library: the obvious one\n * (`@tanstack/react-virtual`) returns functions that cannot be memoized safely, so the\n * React Compiler skips optimising any component that calls it — a list that exists to\n * stay fast would opt out of the consumer's main source of speed.\n *\n * **Measured rows (docs/text-size-harmonization.md §10.9).** Until 0.32 every row was\n * `rowHeight` px and the window was two divisions. \"Nothing truncates\" at Large and\n * Extra large needs rows that grow with their text — Kurvenschmiede's segment list\n * wraps a long name at 150 %, and a fixed 68 px row cut it off. So the rows are\n * measured: put {@link WindowedRows.measureRef} and `data-row-index` on each rendered\n * row, and one `ResizeObserver` watches every row while it is mounted (one observer for\n * all of them, which the browser batches into one callback per frame). A measured\n * height replaces the estimate; a row never rendered keeps `rowHeight × scale`, the\n * text size's factor, so the scroll body is about right before anything is measured\n * and exactly right for everything that has been. Offsets are a prefix sum over both,\n * rebuilt only when a height changes — scrolling is a binary search.\n *\n * Measurements are dropped when the text size changes (every row is a different height\n * then, and the rendered ones measure again at once) and ignored past `count` (a row\n * removed at the end). Removing a row in the MIDDLE shifts the indices below it; they\n * keep the old row's height until they are rendered again, which costs a few pixels of\n * scrollbar, never a row out of place on screen.\n *\n * Without a `ResizeObserver` (jsdom, an old webview) the estimate holds for every row,\n * which is the fixed-height list of before.\n *\n * `scrollRef` is the element that scrolls. The rows are assumed to start at its top;\n * a sticky header above them costs a row or two of the overscan, not correctness.\n *\n * Moved from Lenkbank, where `MeasuredGrid` and a segment list window the same way over\n * rows of different heights — two copies of this would be two places to fix the day\n * the overscan turns out to be wrong.\n */\nexport function useWindowedRows(\n count: number,\n rowHeight: number,\n scrollRef: RefObject<HTMLElement | null>,\n): WindowedRows {\n const { scale } = useTextSize();\n const estimate = rowHeight * scale;\n const [scrollTop, setScrollTop] = useState(0);\n const [viewport, setViewport] = useState(0);\n // The heights are keyed to the scale they were measured at: a text size switch makes\n // every one of them stale at once, and the derivation below drops them on read.\n const [measured, setMeasured] = useState<{ scale: number; heights: Heights }>({ scale, heights: NO_HEIGHTS });\n const heights = measured.scale === scale ? measured.heights : NO_HEIGHTS;\n // The observer's callback runs outside render and needs the scale in force then. A\n // LAYOUT effect: the rows' new heights after a size switch are reported before the\n // browser paints, which can be before a passive effect has run.\n const scaleRef = useRef(scale);\n useLayoutEffect(() => {\n scaleRef.current = scale;\n }, [scale]);\n\n useEffect(() => {\n const element = scrollRef.current;\n if (!element) return;\n const measure = () => {\n setScrollTop(element.scrollTop);\n setViewport(element.clientHeight);\n };\n measure();\n element.addEventListener(\"scroll\", measure, { passive: true });\n // The pane usually sits in a responsive layout, so its height changes without the\n // window's — a resize listener alone would miss every one of those. Guarded:\n // jsdom and older embedded webviews have no ResizeObserver, and the list still\n // has to render there.\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(measure);\n observer?.observe(element);\n return () => {\n element.removeEventListener(\"scroll\", measure);\n observer?.disconnect();\n };\n }, [scrollRef]);\n\n // ONE observer for every row, made on the first row that asks for it.\n const rowObserver = useRef<ResizeObserver | null>(null);\n useEffect(\n () => () => {\n rowObserver.current?.disconnect();\n rowObserver.current = null;\n },\n [],\n );\n\n const measureRef = useCallback((element: HTMLElement | null) => {\n if (!element || typeof ResizeObserver === \"undefined\") return undefined;\n if (!rowObserver.current) {\n rowObserver.current = new ResizeObserver((entries) => {\n const updates: [number, number][] = [];\n for (const entry of entries) {\n const index = indexOf(entry.target);\n const height = rowHeightOf(entry);\n if (index !== null && height > 0) updates.push([index, height]);\n }\n if (!updates.length) return;\n const at = scaleRef.current;\n setMeasured((previous) => {\n const base = previous.scale === at ? previous.heights : NO_HEIGHTS;\n // Unchanged heights are the common case (a row re-observed after a re-render):\n // the same map back means no render.\n if (updates.every(([index, height]) => base.get(index) === height)) {\n return previous.scale === at ? previous : { scale: at, heights: base };\n }\n const next = new Map(base);\n for (const [index, height] of updates) next.set(index, height);\n return { scale: at, heights: next };\n });\n });\n }\n const observer = rowObserver.current;\n observer.observe(element);\n // React 19 calls this when the row unmounts (or the ref moves to another element).\n return () => observer.unobserve(element);\n }, []);\n\n // The prefix sum: offsets[i] is the top of row i, offsets[count] the whole height.\n // Skipped while nothing is measured, when the arithmetic is exact without it.\n const offsets = useMemo(() => {\n if (heights.size === 0) return null;\n const table = new Float64Array(count + 1);\n for (let index = 0; index < count; index += 1) {\n table[index + 1] = table[index] + (heights.get(index) ?? estimate);\n }\n return table;\n }, [count, estimate, heights]);\n\n const offsetOf = useCallback(\n (index: number) => (offsets ? offsets[Math.max(0, Math.min(index, count))] : index * estimate),\n [offsets, count, estimate],\n );\n const heightOf = useCallback((index: number) => heights.get(index) ?? estimate, [heights, estimate]);\n\n // A viewport of 0 is the first render, before the pane has been laid out (and every\n // render under jsdom). Rendering nothing then would leave the list blank until\n // something scrolled it, so fall back to a screenful.\n const room = viewport || 600;\n let first: number;\n let last: number;\n if (offsets) {\n first = Math.max(0, rowAt(offsets, count, scrollTop) - OVERSCAN);\n last = Math.min(count, rowAt(offsets, count, scrollTop + room) + 1 + OVERSCAN);\n } else {\n first = Math.max(0, Math.floor(scrollTop / estimate) - OVERSCAN);\n last = Math.min(count, first + Math.ceil(room / estimate) + OVERSCAN * 2);\n }\n const totalHeight = offsets ? offsets[count] : count * estimate;\n return { first, last, totalHeight, offsetOf, heightOf, estimate, measureRef };\n}\n"],"mappings":"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","names":[]}
@@ -1,16 +1,18 @@
1
- import { fa as UiKitLabels } from '../delete-account-setting-CpIhzxxZ.js';
1
+ import { fx as UiKitLabels } from '../delete-account-setting-FLyJf-kZ.js';
2
2
  import 'react';
3
3
  import '../components/tooltip.js';
4
4
  import '../hooks/use-anchored-rect.js';
5
5
  import '../lib/clipping.js';
6
- import '../data-table-labels-DUELeXpa.js';
6
+ import '../data-table-labels-kpAAVi6g.js';
7
7
  import '../components/data-table-sort.js';
8
8
  import '../components/swipeable-row.js';
9
9
  import '../components/mini-calendar.js';
10
10
  import '../components/calendar-heatmap.js';
11
11
  import '../components/popover.js';
12
+ import '../hooks/use-breakpoint.js';
12
13
  import '../components/chip.js';
13
14
  import 'lucide-react';
15
+ import '../components/field-parts.js';
14
16
  import '../components/field-sync.js';
15
17
  import '../wizard/types.js';
16
18
  import '../tour/tour.js';
@@ -79,6 +81,9 @@ import '../admin/admin-parts.js';
79
81
  import '../admin/admin-action-log.js';
80
82
  import '../settings/settings-labels.js';
81
83
  import '../demo/demo-labels.js';
84
+ import '../components/appearance-labels.js';
85
+ import '../theme/contrast.js';
86
+ import '../theme/text-size.js';
82
87
  import '../components/reauth-dialog.js';
83
88
  import '../components/server-wake.js';
84
89
  import '../lib/server-wake.js';
@@ -92,7 +97,7 @@ import '../components/sign-chip.js';
92
97
  import '../components/column-mapper.js';
93
98
  import '../lib/column-mapping.js';
94
99
  import '../lib/table-text.js';
95
- import '../components/field-parts.js';
100
+ import '../components/focus-ring.js';
96
101
 
97
102
  /**
98
103
  * The whole English tree in one object: what a translation is written against, and
@@ -85,6 +85,10 @@ import { DEFAULT_INVITATIONS_LABELS } from "../admin/invitations-panel.js";
85
85
  import { DEFAULT_SETTINGS_LABELS } from "../settings/settings-labels.js";
86
86
  import { DEFAULT_LANDING_LABELS } from "../landing/landing-labels.js";
87
87
  import { DEFAULT_DEMO_LABELS } from "../demo/demo-labels.js";
88
+ import { DEFAULT_BILLING_LABELS } from "../billing/billing-labels.js";
89
+ import { DEFAULT_APPEARANCE_LABELS } from "../components/appearance-labels.js";
90
+ import { DEFAULT_ROW_ACTIONS_LABELS } from "../components/row-actions.js";
91
+ import { DEFAULT_APP_SHELL_MORE_LABELS } from "../shell/app-shell.js";
88
92
  import { DEFAULT_ACCOUNT_STATE_LABELS } from "../components/account-chips.js";
89
93
  import { DEFAULT_SHARE_CARD_LABELS } from "../components/share-card.js";
90
94
  import { DEFAULT_REAUTH_DIALOG_LABELS } from "../components/reauth-dialog.js";
@@ -205,6 +209,10 @@ const DEFAULT_UI_KIT_LABELS = {
205
209
  settings: DEFAULT_SETTINGS_LABELS,
206
210
  landing: DEFAULT_LANDING_LABELS,
207
211
  demo: DEFAULT_DEMO_LABELS,
212
+ billing: DEFAULT_BILLING_LABELS,
213
+ appearance: DEFAULT_APPEARANCE_LABELS,
214
+ rowActions: DEFAULT_ROW_ACTIONS_LABELS,
215
+ appShellMore: DEFAULT_APP_SHELL_MORE_LABELS,
208
216
  characterCount: DEFAULT_CHARACTER_COUNT_LABELS,
209
217
  countrySelect: DEFAULT_COUNTRY_SELECT_LABELS,
210
218
  inlineEdit: DEFAULT_INLINE_EDIT_LABELS,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i18n/defaults.ts"],"sourcesContent":["import { DEFAULT_DATA_TABLE_LABELS } from \"../components/data-table-labels\";\nimport { DEFAULT_MINI_CALENDAR_LABELS } from \"../components/mini-calendar\";\nimport { DEFAULT_CALENDAR_HEATMAP_LABELS } from \"../components/calendar-heatmap\";\nimport { DEFAULT_MONTH_PICKER_LABELS } from \"../components/month-picker\";\nimport { DEFAULT_PAGE_CONTENTS_LABELS } from \"../components/page-contents\";\nimport { DEFAULT_POPOVER_LABELS } from \"../components/popover\";\nimport { DEFAULT_CHIP_INPUT_LABELS } from \"../components/chip\";\nimport { DEFAULT_FIELD_SYNC_LABELS } from \"../components/field-sync\";\nimport {\n DEFAULT_CHARACTER_COUNT_LABELS,\n DEFAULT_PASSWORD_REVEAL_LABELS,\n DEFAULT_TABS_LABELS,\n} from \"../components/ui\";\nimport { DEFAULT_WIZARD_LABELS } from \"../wizard/types\";\nimport { DEFAULT_TOUR_LABELS } from \"../tour/tour\";\nimport { DEFAULT_COMMAND_PALETTE_LABELS } from \"../search/command-palette\";\nimport { DEFAULT_GLOBAL_SEARCH_LABELS } from \"../search/global-search\";\nimport { DEFAULT_SERIES_CHART_LABELS } from \"../components/series-chart-labels\";\nimport { DEFAULT_PIE_CHART_LABELS } from \"../components/pie-chart-labels\";\nimport { DEFAULT_SPARKLINE_LABELS } from \"../components/sparkline\";\nimport { DEFAULT_STAT_TILE_LABELS } from \"../components/stat-tile\";\nimport { DEFAULT_SIGNATURE_PAD_LABELS } from \"../components/signature-pad\";\nimport { DEFAULT_PASSWORD_STRENGTH_LABELS } from \"../components/password-strength\";\nimport { DEFAULT_DANGER_CONFIRM_LABELS } from \"../components/danger-confirm\";\nimport { DEFAULT_SWATCH_PICKER_LABELS } from \"../components/swatch-picker\";\nimport { DEFAULT_ICON_PICKER_LABELS } from \"../components/icon-picker\";\nimport { DEFAULT_DIALOG_FRAME_LABELS } from \"../components/dialog-frame\";\nimport { DEFAULT_FILE_PICKER_LABELS } from \"../components/file-button\";\nimport { DEFAULT_MEASURED_GRID_LABELS } from \"../components/measured-grid\";\nimport { DEFAULT_CONFIRM_DIALOG_LABELS } from \"../components/confirm-dialog\";\nimport { DEFAULT_FLOATING_PANEL_LABELS } from \"../components/floating-panel\";\nimport { DEFAULT_FEEDBACK_ATTACHMENT_LABELS } from \"../feedback/feedback-attachment\";\nimport { DEFAULT_FEEDBACK_DIALOG_LABELS } from \"../feedback/feedback-dialog\";\nimport {\n DEFAULT_FEEDBACK_COMPOSER_LABELS,\n DEFAULT_FEEDBACK_THREAD_LABELS,\n} from \"../feedback/feedback-thread\";\nimport {\n DEFAULT_FEEDBACK_CATEGORY_LABELS,\n DEFAULT_FEEDBACK_STATUS_LABELS,\n DEFAULT_FEEDBACK_TOAST_LABELS,\n} from \"../feedback/feedback-labels\";\nimport { DEFAULT_FEEDBACK_MENU_LABELS } from \"../feedback/feedback-menu\";\nimport { DEFAULT_FEEDBACK_CONTEXT_LABELS } from \"../feedback/feedback-context\";\nimport { DEFAULT_FEEDBACK_PAGE_LABELS } from \"../feedback/feedback-table\";\nimport { DEFAULT_FEEDBACK_DETAIL_LABELS } from \"../feedback/feedback-row-detail\";\nimport { DEFAULT_ACCOUNT_SETTINGS_LABELS } from \"../components/account-settings-labels\";\nimport { DEFAULT_COPY_BUTTON_LABELS } from \"../components/copy-button\";\nimport { DEFAULT_BULK_ACTION_BAR_LABELS } from \"../components/bulk-action-bar\";\nimport { DEFAULT_LIST_LABELS } from \"../components/list\";\nimport { DEFAULT_BREADCRUMBS_LABELS } from \"../components/breadcrumbs\";\nimport { DEFAULT_TOAST_LABELS } from \"../components/toast\";\nimport { DEFAULT_FORM_ACTIONS_LABELS } from \"../components/form-actions\";\nimport { DEFAULT_DESCRIPTION_LIST_LABELS } from \"../components/description-list\";\nimport { DEFAULT_LINE_ITEMS_LABELS } from \"../components/line-items\";\nimport { DEFAULT_PROGRESS_BAR_LABELS } from \"../components/progress-bar\";\nimport { DEFAULT_SIGNED_AMOUNT_LABELS } from \"../components/signed-amount\";\nimport { DEFAULT_ERROR_BOUNDARY_LABELS } from \"../components/error-boundary\";\nimport { DEFAULT_AUTHED_IMAGE_LABELS } from \"../components/authed-image\";\nimport { DEFAULT_IMAGE_GRID_LABELS } from \"../components/image-grid\";\nimport { DEFAULT_LIGHTBOX_LABELS } from \"../components/lightbox\";\nimport { DEFAULT_WRITE_LOCK_LABELS } from \"../components/write-lock\";\nimport { DEFAULT_LEGAL_LABELS } from \"../components/legal\";\nimport { DEFAULT_SIGN_IN_LABELS } from \"../auth/sign-in-form\";\nimport { DEFAULT_REGISTER_LABELS } from \"../auth/register-form\";\nimport { DEFAULT_COMPLETE_NAME_LABELS } from \"../auth/complete-name-dialog\";\nimport { DEFAULT_FORGOT_PASSWORD_LABELS } from \"../auth/forgot-password-form\";\nimport { DEFAULT_RESET_PASSWORD_LABELS } from \"../auth/reset-password-form\";\nimport { DEFAULT_VERIFY_EMAIL_LABELS } from \"../auth/verify-email\";\nimport { DEFAULT_NOT_FOUND_LABELS } from \"../auth/not-found-page\";\nimport { DEFAULT_ACCEPT_INVITATION_LABELS } from \"../auth/accept-invitation\";\nimport { DEFAULT_COMPANY_SWITCHER_LABELS } from \"../shell/company-switcher\";\nimport { DEFAULT_EMAIL_CHANGE_LABELS } from \"../account/email-change-setting\";\nimport { DEFAULT_SESSIONS_LABELS } from \"../account/sessions-setting\";\nimport { DEFAULT_DELETE_ACCOUNT_LABELS } from \"../account/delete-account-setting\";\nimport { DEFAULT_DATA_EXPORT_LABELS } from \"../account/data-export-setting\";\nimport { DEFAULT_USER_ROSTER_LABELS } from \"../admin/user-roster\";\nimport { DEFAULT_ROLE_SELECT_LABELS } from \"../admin/role-select\";\nimport { DEFAULT_REVIEWER_SCOPE_LABELS } from \"../admin/reviewer-scope-editor\";\nimport { DEFAULT_ADMIN_ACTION_LABELS } from \"../admin/admin-action-confirm\";\nimport { DEFAULT_ADMIN_ACTION_LOG_LABELS } from \"../admin/admin-action-log\";\nimport { DEFAULT_TRANSFER_OWNERSHIP_LABELS } from \"../admin/transfer-ownership-dialog\";\nimport { DEFAULT_INVITATIONS_LABELS } from \"../admin/invitations-panel\";\nimport { DEFAULT_SETTINGS_LABELS } from \"../settings/settings-labels\";\nimport { DEFAULT_LANDING_LABELS } from \"../landing/landing-labels\";\nimport { DEFAULT_DEMO_LABELS } from \"../demo/demo-labels\";\nimport { DEFAULT_ACCOUNT_STATE_LABELS } from \"../components/account-chips\";\nimport { DEFAULT_SHARE_CARD_LABELS } from \"../components/share-card\";\nimport { DEFAULT_REAUTH_DIALOG_LABELS } from \"../components/reauth-dialog\";\nimport { DEFAULT_SERVER_WAKE_LABELS } from \"../components/server-wake\";\nimport { DEFAULT_TRANSLATION_REVIEW_LABELS } from \"../components/translation-review-labels\";\nimport { DEFAULT_COUNTRY_SELECT_LABELS } from \"../components/country-select\";\nimport { DEFAULT_INLINE_EDIT_LABELS } from \"../components/inline-edit-field\";\nimport { DEFAULT_IBAN_INPUT_LABELS } from \"../components/iban-input\";\nimport { DEFAULT_PHONE_INPUT_LABELS } from \"../components/phone-input\";\nimport { DEFAULT_SIGN_CHIP_LABELS } from \"../components/sign-chip\";\nimport { DEFAULT_COLUMN_MAPPER_LABELS } from \"../components/column-mapper\";\nimport {\n DEFAULT_APP_SHELL_LABELS,\n DEFAULT_CALCULATOR_LABELS,\n DEFAULT_COMBOBOX_LABELS,\n DEFAULT_COMMON_LABELS,\n DEFAULT_CURRENCY_LABELS,\n DEFAULT_DATE_PICKER_LABELS,\n DEFAULT_FILE_LABELS,\n DEFAULT_MULTI_SELECT_LABELS,\n DEFAULT_PICKER_SHEET_LABELS,\n DEFAULT_SWIPEABLE_ROW_LABELS,\n DEFAULT_TOP_BAR_LABELS,\n} from \"./kit-labels\";\nimport type { UiKitLabels } from \"./kit-labels\";\n\n/**\n * The whole English tree in one object: what a translation is written against, and\n * the `reference` for {@link missingKitLabels}.\n *\n * A separate module from the provider on purpose. Components import the provider's\n * hooks; this file imports the components' defaults. Kept together they would be an\n * import cycle through every component in the kit.\n */\nexport const DEFAULT_UI_KIT_LABELS: UiKitLabels = {\n common: DEFAULT_COMMON_LABELS,\n dataTable: DEFAULT_DATA_TABLE_LABELS,\n miniCalendar: DEFAULT_MINI_CALENDAR_LABELS,\n calendarHeatmap: DEFAULT_CALENDAR_HEATMAP_LABELS,\n datePicker: DEFAULT_DATE_PICKER_LABELS,\n monthPicker: DEFAULT_MONTH_PICKER_LABELS,\n popover: DEFAULT_POPOVER_LABELS,\n combobox: DEFAULT_COMBOBOX_LABELS,\n multiSelect: DEFAULT_MULTI_SELECT_LABELS,\n calculator: DEFAULT_CALCULATOR_LABELS,\n currency: DEFAULT_CURRENCY_LABELS,\n chipInput: DEFAULT_CHIP_INPUT_LABELS,\n fieldSync: DEFAULT_FIELD_SYNC_LABELS,\n passwordReveal: DEFAULT_PASSWORD_REVEAL_LABELS,\n tabs: DEFAULT_TABS_LABELS,\n appShell: DEFAULT_APP_SHELL_LABELS,\n pageContents: DEFAULT_PAGE_CONTENTS_LABELS,\n topBar: DEFAULT_TOP_BAR_LABELS,\n pickerSheet: DEFAULT_PICKER_SHEET_LABELS,\n swipeableRow: DEFAULT_SWIPEABLE_ROW_LABELS,\n file: DEFAULT_FILE_LABELS,\n wizard: DEFAULT_WIZARD_LABELS,\n tour: DEFAULT_TOUR_LABELS,\n commandPalette: DEFAULT_COMMAND_PALETTE_LABELS,\n globalSearch: DEFAULT_GLOBAL_SEARCH_LABELS,\n seriesChart: DEFAULT_SERIES_CHART_LABELS,\n pieChart: DEFAULT_PIE_CHART_LABELS,\n sparkline: DEFAULT_SPARKLINE_LABELS,\n statTile: DEFAULT_STAT_TILE_LABELS,\n signaturePad: DEFAULT_SIGNATURE_PAD_LABELS,\n passwordStrength: DEFAULT_PASSWORD_STRENGTH_LABELS,\n dangerConfirm: DEFAULT_DANGER_CONFIRM_LABELS,\n swatchPicker: DEFAULT_SWATCH_PICKER_LABELS,\n iconPicker: DEFAULT_ICON_PICKER_LABELS,\n dialogFrame: DEFAULT_DIALOG_FRAME_LABELS,\n filePicker: DEFAULT_FILE_PICKER_LABELS,\n measuredGrid: DEFAULT_MEASURED_GRID_LABELS,\n feedbackAttachment: DEFAULT_FEEDBACK_ATTACHMENT_LABELS,\n feedbackDialog: DEFAULT_FEEDBACK_DIALOG_LABELS,\n feedbackThread: DEFAULT_FEEDBACK_THREAD_LABELS,\n feedbackComposer: DEFAULT_FEEDBACK_COMPOSER_LABELS,\n feedbackStatus: DEFAULT_FEEDBACK_STATUS_LABELS,\n feedbackCategory: DEFAULT_FEEDBACK_CATEGORY_LABELS,\n feedbackToast: DEFAULT_FEEDBACK_TOAST_LABELS,\n feedbackMenu: DEFAULT_FEEDBACK_MENU_LABELS,\n feedbackContext: DEFAULT_FEEDBACK_CONTEXT_LABELS,\n feedbackPage: DEFAULT_FEEDBACK_PAGE_LABELS,\n feedbackDetail: DEFAULT_FEEDBACK_DETAIL_LABELS,\n accountSettings: DEFAULT_ACCOUNT_SETTINGS_LABELS,\n confirmDialog: DEFAULT_CONFIRM_DIALOG_LABELS,\n floatingPanel: DEFAULT_FLOATING_PANEL_LABELS,\n copyButton: DEFAULT_COPY_BUTTON_LABELS,\n bulkActionBar: DEFAULT_BULK_ACTION_BAR_LABELS,\n list: DEFAULT_LIST_LABELS,\n breadcrumbs: DEFAULT_BREADCRUMBS_LABELS,\n toast: DEFAULT_TOAST_LABELS,\n form: DEFAULT_FORM_ACTIONS_LABELS,\n descriptionList: DEFAULT_DESCRIPTION_LIST_LABELS,\n lineItems: DEFAULT_LINE_ITEMS_LABELS,\n progressBar: DEFAULT_PROGRESS_BAR_LABELS,\n signedAmount: DEFAULT_SIGNED_AMOUNT_LABELS,\n errorBoundary: DEFAULT_ERROR_BOUNDARY_LABELS,\n authedImage: DEFAULT_AUTHED_IMAGE_LABELS,\n imageGrid: DEFAULT_IMAGE_GRID_LABELS,\n lightbox: DEFAULT_LIGHTBOX_LABELS,\n writeLock: DEFAULT_WRITE_LOCK_LABELS,\n accountState: DEFAULT_ACCOUNT_STATE_LABELS,\n shareCard: DEFAULT_SHARE_CARD_LABELS,\n reauthDialog: DEFAULT_REAUTH_DIALOG_LABELS,\n serverWake: DEFAULT_SERVER_WAKE_LABELS,\n translationReview: DEFAULT_TRANSLATION_REVIEW_LABELS,\n legal: DEFAULT_LEGAL_LABELS,\n signIn: DEFAULT_SIGN_IN_LABELS,\n register: DEFAULT_REGISTER_LABELS,\n completeName: DEFAULT_COMPLETE_NAME_LABELS,\n forgotPassword: DEFAULT_FORGOT_PASSWORD_LABELS,\n resetPassword: DEFAULT_RESET_PASSWORD_LABELS,\n verifyEmail: DEFAULT_VERIFY_EMAIL_LABELS,\n notFound: DEFAULT_NOT_FOUND_LABELS,\n acceptInvitation: DEFAULT_ACCEPT_INVITATION_LABELS,\n companySwitcher: DEFAULT_COMPANY_SWITCHER_LABELS,\n emailChange: DEFAULT_EMAIL_CHANGE_LABELS,\n sessions: DEFAULT_SESSIONS_LABELS,\n deleteAccount: DEFAULT_DELETE_ACCOUNT_LABELS,\n dataExport: DEFAULT_DATA_EXPORT_LABELS,\n userRoster: DEFAULT_USER_ROSTER_LABELS,\n roleSelect: DEFAULT_ROLE_SELECT_LABELS,\n reviewerScope: DEFAULT_REVIEWER_SCOPE_LABELS,\n adminAction: DEFAULT_ADMIN_ACTION_LABELS,\n adminActionLog: DEFAULT_ADMIN_ACTION_LOG_LABELS,\n transferOwnership: DEFAULT_TRANSFER_OWNERSHIP_LABELS,\n invitations: DEFAULT_INVITATIONS_LABELS,\n settings: DEFAULT_SETTINGS_LABELS,\n landing: DEFAULT_LANDING_LABELS,\n demo: DEFAULT_DEMO_LABELS,\n characterCount: DEFAULT_CHARACTER_COUNT_LABELS,\n countrySelect: DEFAULT_COUNTRY_SELECT_LABELS,\n inlineEdit: DEFAULT_INLINE_EDIT_LABELS,\n ibanInput: DEFAULT_IBAN_INPUT_LABELS,\n phoneInput: DEFAULT_PHONE_INPUT_LABELS,\n signChip: DEFAULT_SIGN_CHIP_LABELS,\n columnMapper: DEFAULT_COLUMN_MAPPER_LABELS,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/i18n/defaults.ts"],"sourcesContent":["import { DEFAULT_DATA_TABLE_LABELS } from \"../components/data-table-labels\";\nimport { DEFAULT_MINI_CALENDAR_LABELS } from \"../components/mini-calendar\";\nimport { DEFAULT_CALENDAR_HEATMAP_LABELS } from \"../components/calendar-heatmap\";\nimport { DEFAULT_MONTH_PICKER_LABELS } from \"../components/month-picker\";\nimport { DEFAULT_PAGE_CONTENTS_LABELS } from \"../components/page-contents\";\nimport { DEFAULT_POPOVER_LABELS } from \"../components/popover\";\nimport { DEFAULT_CHIP_INPUT_LABELS } from \"../components/chip\";\nimport { DEFAULT_FIELD_SYNC_LABELS } from \"../components/field-sync\";\nimport {\n DEFAULT_CHARACTER_COUNT_LABELS,\n DEFAULT_PASSWORD_REVEAL_LABELS,\n DEFAULT_TABS_LABELS,\n} from \"../components/ui\";\nimport { DEFAULT_WIZARD_LABELS } from \"../wizard/types\";\nimport { DEFAULT_TOUR_LABELS } from \"../tour/tour\";\nimport { DEFAULT_COMMAND_PALETTE_LABELS } from \"../search/command-palette\";\nimport { DEFAULT_GLOBAL_SEARCH_LABELS } from \"../search/global-search\";\nimport { DEFAULT_SERIES_CHART_LABELS } from \"../components/series-chart-labels\";\nimport { DEFAULT_PIE_CHART_LABELS } from \"../components/pie-chart-labels\";\nimport { DEFAULT_SPARKLINE_LABELS } from \"../components/sparkline\";\nimport { DEFAULT_STAT_TILE_LABELS } from \"../components/stat-tile\";\nimport { DEFAULT_SIGNATURE_PAD_LABELS } from \"../components/signature-pad\";\nimport { DEFAULT_PASSWORD_STRENGTH_LABELS } from \"../components/password-strength\";\nimport { DEFAULT_DANGER_CONFIRM_LABELS } from \"../components/danger-confirm\";\nimport { DEFAULT_SWATCH_PICKER_LABELS } from \"../components/swatch-picker\";\nimport { DEFAULT_ICON_PICKER_LABELS } from \"../components/icon-picker\";\nimport { DEFAULT_DIALOG_FRAME_LABELS } from \"../components/dialog-frame\";\nimport { DEFAULT_FILE_PICKER_LABELS } from \"../components/file-button\";\nimport { DEFAULT_MEASURED_GRID_LABELS } from \"../components/measured-grid\";\nimport { DEFAULT_CONFIRM_DIALOG_LABELS } from \"../components/confirm-dialog\";\nimport { DEFAULT_FLOATING_PANEL_LABELS } from \"../components/floating-panel\";\nimport { DEFAULT_FEEDBACK_ATTACHMENT_LABELS } from \"../feedback/feedback-attachment\";\nimport { DEFAULT_FEEDBACK_DIALOG_LABELS } from \"../feedback/feedback-dialog\";\nimport {\n DEFAULT_FEEDBACK_COMPOSER_LABELS,\n DEFAULT_FEEDBACK_THREAD_LABELS,\n} from \"../feedback/feedback-thread\";\nimport {\n DEFAULT_FEEDBACK_CATEGORY_LABELS,\n DEFAULT_FEEDBACK_STATUS_LABELS,\n DEFAULT_FEEDBACK_TOAST_LABELS,\n} from \"../feedback/feedback-labels\";\nimport { DEFAULT_FEEDBACK_MENU_LABELS } from \"../feedback/feedback-menu\";\nimport { DEFAULT_FEEDBACK_CONTEXT_LABELS } from \"../feedback/feedback-context\";\nimport { DEFAULT_FEEDBACK_PAGE_LABELS } from \"../feedback/feedback-table\";\nimport { DEFAULT_FEEDBACK_DETAIL_LABELS } from \"../feedback/feedback-row-detail\";\nimport { DEFAULT_ACCOUNT_SETTINGS_LABELS } from \"../components/account-settings-labels\";\nimport { DEFAULT_COPY_BUTTON_LABELS } from \"../components/copy-button\";\nimport { DEFAULT_BULK_ACTION_BAR_LABELS } from \"../components/bulk-action-bar\";\nimport { DEFAULT_LIST_LABELS } from \"../components/list\";\nimport { DEFAULT_BREADCRUMBS_LABELS } from \"../components/breadcrumbs\";\nimport { DEFAULT_TOAST_LABELS } from \"../components/toast\";\nimport { DEFAULT_FORM_ACTIONS_LABELS } from \"../components/form-actions\";\nimport { DEFAULT_DESCRIPTION_LIST_LABELS } from \"../components/description-list\";\nimport { DEFAULT_LINE_ITEMS_LABELS } from \"../components/line-items\";\nimport { DEFAULT_PROGRESS_BAR_LABELS } from \"../components/progress-bar\";\nimport { DEFAULT_SIGNED_AMOUNT_LABELS } from \"../components/signed-amount\";\nimport { DEFAULT_ERROR_BOUNDARY_LABELS } from \"../components/error-boundary\";\nimport { DEFAULT_AUTHED_IMAGE_LABELS } from \"../components/authed-image\";\nimport { DEFAULT_IMAGE_GRID_LABELS } from \"../components/image-grid\";\nimport { DEFAULT_LIGHTBOX_LABELS } from \"../components/lightbox\";\nimport { DEFAULT_WRITE_LOCK_LABELS } from \"../components/write-lock\";\nimport { DEFAULT_LEGAL_LABELS } from \"../components/legal\";\nimport { DEFAULT_SIGN_IN_LABELS } from \"../auth/sign-in-form\";\nimport { DEFAULT_REGISTER_LABELS } from \"../auth/register-form\";\nimport { DEFAULT_COMPLETE_NAME_LABELS } from \"../auth/complete-name-dialog\";\nimport { DEFAULT_FORGOT_PASSWORD_LABELS } from \"../auth/forgot-password-form\";\nimport { DEFAULT_RESET_PASSWORD_LABELS } from \"../auth/reset-password-form\";\nimport { DEFAULT_VERIFY_EMAIL_LABELS } from \"../auth/verify-email\";\nimport { DEFAULT_NOT_FOUND_LABELS } from \"../auth/not-found-page\";\nimport { DEFAULT_ACCEPT_INVITATION_LABELS } from \"../auth/accept-invitation\";\nimport { DEFAULT_COMPANY_SWITCHER_LABELS } from \"../shell/company-switcher\";\nimport { DEFAULT_EMAIL_CHANGE_LABELS } from \"../account/email-change-setting\";\nimport { DEFAULT_SESSIONS_LABELS } from \"../account/sessions-setting\";\nimport { DEFAULT_DELETE_ACCOUNT_LABELS } from \"../account/delete-account-setting\";\nimport { DEFAULT_DATA_EXPORT_LABELS } from \"../account/data-export-setting\";\nimport { DEFAULT_USER_ROSTER_LABELS } from \"../admin/user-roster\";\nimport { DEFAULT_ROLE_SELECT_LABELS } from \"../admin/role-select\";\nimport { DEFAULT_REVIEWER_SCOPE_LABELS } from \"../admin/reviewer-scope-editor\";\nimport { DEFAULT_ADMIN_ACTION_LABELS } from \"../admin/admin-action-confirm\";\nimport { DEFAULT_ADMIN_ACTION_LOG_LABELS } from \"../admin/admin-action-log\";\nimport { DEFAULT_TRANSFER_OWNERSHIP_LABELS } from \"../admin/transfer-ownership-dialog\";\nimport { DEFAULT_INVITATIONS_LABELS } from \"../admin/invitations-panel\";\nimport { DEFAULT_SETTINGS_LABELS } from \"../settings/settings-labels\";\nimport { DEFAULT_LANDING_LABELS } from \"../landing/landing-labels\";\nimport { DEFAULT_DEMO_LABELS } from \"../demo/demo-labels\";\nimport { DEFAULT_BILLING_LABELS } from \"../billing/billing-labels\";\nimport { DEFAULT_APPEARANCE_LABELS } from \"../components/appearance-labels\";\nimport { DEFAULT_ROW_ACTIONS_LABELS } from \"../components/row-actions\";\nimport { DEFAULT_APP_SHELL_MORE_LABELS } from \"../shell/app-shell\";\nimport { DEFAULT_ACCOUNT_STATE_LABELS } from \"../components/account-chips\";\nimport { DEFAULT_SHARE_CARD_LABELS } from \"../components/share-card\";\nimport { DEFAULT_REAUTH_DIALOG_LABELS } from \"../components/reauth-dialog\";\nimport { DEFAULT_SERVER_WAKE_LABELS } from \"../components/server-wake\";\nimport { DEFAULT_TRANSLATION_REVIEW_LABELS } from \"../components/translation-review-labels\";\nimport { DEFAULT_COUNTRY_SELECT_LABELS } from \"../components/country-select\";\nimport { DEFAULT_INLINE_EDIT_LABELS } from \"../components/inline-edit-field\";\nimport { DEFAULT_IBAN_INPUT_LABELS } from \"../components/iban-input\";\nimport { DEFAULT_PHONE_INPUT_LABELS } from \"../components/phone-input\";\nimport { DEFAULT_SIGN_CHIP_LABELS } from \"../components/sign-chip\";\nimport { DEFAULT_COLUMN_MAPPER_LABELS } from \"../components/column-mapper\";\nimport {\n DEFAULT_APP_SHELL_LABELS,\n DEFAULT_CALCULATOR_LABELS,\n DEFAULT_COMBOBOX_LABELS,\n DEFAULT_COMMON_LABELS,\n DEFAULT_CURRENCY_LABELS,\n DEFAULT_DATE_PICKER_LABELS,\n DEFAULT_FILE_LABELS,\n DEFAULT_MULTI_SELECT_LABELS,\n DEFAULT_PICKER_SHEET_LABELS,\n DEFAULT_SWIPEABLE_ROW_LABELS,\n DEFAULT_TOP_BAR_LABELS,\n} from \"./kit-labels\";\nimport type { UiKitLabels } from \"./kit-labels\";\n\n/**\n * The whole English tree in one object: what a translation is written against, and\n * the `reference` for {@link missingKitLabels}.\n *\n * A separate module from the provider on purpose. Components import the provider's\n * hooks; this file imports the components' defaults. Kept together they would be an\n * import cycle through every component in the kit.\n */\nexport const DEFAULT_UI_KIT_LABELS: UiKitLabels = {\n common: DEFAULT_COMMON_LABELS,\n dataTable: DEFAULT_DATA_TABLE_LABELS,\n miniCalendar: DEFAULT_MINI_CALENDAR_LABELS,\n calendarHeatmap: DEFAULT_CALENDAR_HEATMAP_LABELS,\n datePicker: DEFAULT_DATE_PICKER_LABELS,\n monthPicker: DEFAULT_MONTH_PICKER_LABELS,\n popover: DEFAULT_POPOVER_LABELS,\n combobox: DEFAULT_COMBOBOX_LABELS,\n multiSelect: DEFAULT_MULTI_SELECT_LABELS,\n calculator: DEFAULT_CALCULATOR_LABELS,\n currency: DEFAULT_CURRENCY_LABELS,\n chipInput: DEFAULT_CHIP_INPUT_LABELS,\n fieldSync: DEFAULT_FIELD_SYNC_LABELS,\n passwordReveal: DEFAULT_PASSWORD_REVEAL_LABELS,\n tabs: DEFAULT_TABS_LABELS,\n appShell: DEFAULT_APP_SHELL_LABELS,\n pageContents: DEFAULT_PAGE_CONTENTS_LABELS,\n topBar: DEFAULT_TOP_BAR_LABELS,\n pickerSheet: DEFAULT_PICKER_SHEET_LABELS,\n swipeableRow: DEFAULT_SWIPEABLE_ROW_LABELS,\n file: DEFAULT_FILE_LABELS,\n wizard: DEFAULT_WIZARD_LABELS,\n tour: DEFAULT_TOUR_LABELS,\n commandPalette: DEFAULT_COMMAND_PALETTE_LABELS,\n globalSearch: DEFAULT_GLOBAL_SEARCH_LABELS,\n seriesChart: DEFAULT_SERIES_CHART_LABELS,\n pieChart: DEFAULT_PIE_CHART_LABELS,\n sparkline: DEFAULT_SPARKLINE_LABELS,\n statTile: DEFAULT_STAT_TILE_LABELS,\n signaturePad: DEFAULT_SIGNATURE_PAD_LABELS,\n passwordStrength: DEFAULT_PASSWORD_STRENGTH_LABELS,\n dangerConfirm: DEFAULT_DANGER_CONFIRM_LABELS,\n swatchPicker: DEFAULT_SWATCH_PICKER_LABELS,\n iconPicker: DEFAULT_ICON_PICKER_LABELS,\n dialogFrame: DEFAULT_DIALOG_FRAME_LABELS,\n filePicker: DEFAULT_FILE_PICKER_LABELS,\n measuredGrid: DEFAULT_MEASURED_GRID_LABELS,\n feedbackAttachment: DEFAULT_FEEDBACK_ATTACHMENT_LABELS,\n feedbackDialog: DEFAULT_FEEDBACK_DIALOG_LABELS,\n feedbackThread: DEFAULT_FEEDBACK_THREAD_LABELS,\n feedbackComposer: DEFAULT_FEEDBACK_COMPOSER_LABELS,\n feedbackStatus: DEFAULT_FEEDBACK_STATUS_LABELS,\n feedbackCategory: DEFAULT_FEEDBACK_CATEGORY_LABELS,\n feedbackToast: DEFAULT_FEEDBACK_TOAST_LABELS,\n feedbackMenu: DEFAULT_FEEDBACK_MENU_LABELS,\n feedbackContext: DEFAULT_FEEDBACK_CONTEXT_LABELS,\n feedbackPage: DEFAULT_FEEDBACK_PAGE_LABELS,\n feedbackDetail: DEFAULT_FEEDBACK_DETAIL_LABELS,\n accountSettings: DEFAULT_ACCOUNT_SETTINGS_LABELS,\n confirmDialog: DEFAULT_CONFIRM_DIALOG_LABELS,\n floatingPanel: DEFAULT_FLOATING_PANEL_LABELS,\n copyButton: DEFAULT_COPY_BUTTON_LABELS,\n bulkActionBar: DEFAULT_BULK_ACTION_BAR_LABELS,\n list: DEFAULT_LIST_LABELS,\n breadcrumbs: DEFAULT_BREADCRUMBS_LABELS,\n toast: DEFAULT_TOAST_LABELS,\n form: DEFAULT_FORM_ACTIONS_LABELS,\n descriptionList: DEFAULT_DESCRIPTION_LIST_LABELS,\n lineItems: DEFAULT_LINE_ITEMS_LABELS,\n progressBar: DEFAULT_PROGRESS_BAR_LABELS,\n signedAmount: DEFAULT_SIGNED_AMOUNT_LABELS,\n errorBoundary: DEFAULT_ERROR_BOUNDARY_LABELS,\n authedImage: DEFAULT_AUTHED_IMAGE_LABELS,\n imageGrid: DEFAULT_IMAGE_GRID_LABELS,\n lightbox: DEFAULT_LIGHTBOX_LABELS,\n writeLock: DEFAULT_WRITE_LOCK_LABELS,\n accountState: DEFAULT_ACCOUNT_STATE_LABELS,\n shareCard: DEFAULT_SHARE_CARD_LABELS,\n reauthDialog: DEFAULT_REAUTH_DIALOG_LABELS,\n serverWake: DEFAULT_SERVER_WAKE_LABELS,\n translationReview: DEFAULT_TRANSLATION_REVIEW_LABELS,\n legal: DEFAULT_LEGAL_LABELS,\n signIn: DEFAULT_SIGN_IN_LABELS,\n register: DEFAULT_REGISTER_LABELS,\n completeName: DEFAULT_COMPLETE_NAME_LABELS,\n forgotPassword: DEFAULT_FORGOT_PASSWORD_LABELS,\n resetPassword: DEFAULT_RESET_PASSWORD_LABELS,\n verifyEmail: DEFAULT_VERIFY_EMAIL_LABELS,\n notFound: DEFAULT_NOT_FOUND_LABELS,\n acceptInvitation: DEFAULT_ACCEPT_INVITATION_LABELS,\n companySwitcher: DEFAULT_COMPANY_SWITCHER_LABELS,\n emailChange: DEFAULT_EMAIL_CHANGE_LABELS,\n sessions: DEFAULT_SESSIONS_LABELS,\n deleteAccount: DEFAULT_DELETE_ACCOUNT_LABELS,\n dataExport: DEFAULT_DATA_EXPORT_LABELS,\n userRoster: DEFAULT_USER_ROSTER_LABELS,\n roleSelect: DEFAULT_ROLE_SELECT_LABELS,\n reviewerScope: DEFAULT_REVIEWER_SCOPE_LABELS,\n adminAction: DEFAULT_ADMIN_ACTION_LABELS,\n adminActionLog: DEFAULT_ADMIN_ACTION_LOG_LABELS,\n transferOwnership: DEFAULT_TRANSFER_OWNERSHIP_LABELS,\n invitations: DEFAULT_INVITATIONS_LABELS,\n settings: DEFAULT_SETTINGS_LABELS,\n landing: DEFAULT_LANDING_LABELS,\n demo: DEFAULT_DEMO_LABELS,\n billing: DEFAULT_BILLING_LABELS,\n appearance: DEFAULT_APPEARANCE_LABELS,\n rowActions: DEFAULT_ROW_ACTIONS_LABELS,\n appShellMore: DEFAULT_APP_SHELL_MORE_LABELS,\n characterCount: DEFAULT_CHARACTER_COUNT_LABELS,\n countrySelect: DEFAULT_COUNTRY_SELECT_LABELS,\n inlineEdit: DEFAULT_INLINE_EDIT_LABELS,\n ibanInput: DEFAULT_IBAN_INPUT_LABELS,\n phoneInput: DEFAULT_PHONE_INPUT_LABELS,\n signChip: DEFAULT_SIGN_CHIP_LABELS,\n columnMapper: DEFAULT_COLUMN_MAPPER_LABELS,\n};\n"],"mappings":";AAAA,SAAS,iCAAiC;AAC1C,SAAS,oCAAoC;AAC7C,SAAS,uCAAuC;AAChD,SAAS,mCAAmC;AAC5C,SAAS,oCAAoC;AAC7C,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,iCAAiC;AAC1C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,sCAAsC;AAC/C,SAAS,oCAAoC;AAC7C,SAAS,mCAAmC;AAC5C,SAAS,gCAAgC;AACzC,SAAS,gCAAgC;AACzC,SAAS,gCAAgC;AACzC,SAAS,oCAAoC;AAC7C,SAAS,wCAAwC;AACjD,SAAS,qCAAqC;AAC9C,SAAS,oCAAoC;AAC7C,SAAS,kCAAkC;AAC3C,SAAS,mCAAmC;AAC5C,SAAS,kCAAkC;AAC3C,SAAS,oCAAoC;AAC7C,SAAS,qCAAqC;AAC9C,SAAS,qCAAqC;AAC9C,SAAS,0CAA0C;AACnD,SAAS,sCAAsC;AAC/C;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oCAAoC;AAC7C,SAAS,uCAAuC;AAChD,SAAS,oCAAoC;AAC7C,SAAS,sCAAsC;AAC/C,SAAS,uCAAuC;AAChD,SAAS,kCAAkC;AAC3C,SAAS,sCAAsC;AAC/C,SAAS,2BAA2B;AACpC,SAAS,kCAAkC;AAC3C,SAAS,4BAA4B;AACrC,SAAS,mCAAmC;AAC5C,SAAS,uCAAuC;AAChD,SAAS,iCAAiC;AAC1C,SAAS,mCAAmC;AAC5C,SAAS,oCAAoC;AAC7C,SAAS,qCAAqC;AAC9C,SAAS,mCAAmC;AAC5C,SAAS,iCAAiC;AAC1C,SAAS,+BAA+B;AACxC,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AACrC,SAAS,8BAA8B;AACvC,SAAS,+BAA+B;AACxC,SAAS,oCAAoC;AAC7C,SAAS,sCAAsC;AAC/C,SAAS,qCAAqC;AAC9C,SAAS,mCAAmC;AAC5C,SAAS,gCAAgC;AACzC,SAAS,wCAAwC;AACjD,SAAS,uCAAuC;AAChD,SAAS,mCAAmC;AAC5C,SAAS,+BAA+B;AACxC,SAAS,qCAAqC;AAC9C,SAAS,kCAAkC;AAC3C,SAAS,kCAAkC;AAC3C,SAAS,kCAAkC;AAC3C,SAAS,qCAAqC;AAC9C,SAAS,mCAAmC;AAC5C,SAAS,uCAAuC;AAChD,SAAS,yCAAyC;AAClD,SAAS,kCAAkC;AAC3C,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAC3C,SAAS,qCAAqC;AAC9C,SAAS,oCAAoC;AAC7C,SAAS,iCAAiC;AAC1C,SAAS,oCAAoC;AAC7C,SAAS,kCAAkC;AAC3C,SAAS,yCAAyC;AAClD,SAAS,qCAAqC;AAC9C,SAAS,kCAAkC;AAC3C,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAC3C,SAAS,gCAAgC;AACzC,SAAS,oCAAoC;AAC7C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,MAAM,wBAAqC;AAAA,EAChD,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,SAAS;AAAA,EACT,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,cAAc;AAAA,EACd,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,MAAM;AAAA,EACN,aAAa;AAAA,EACb,OAAO;AAAA,EACP,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,cAAc;AAChB;","names":[]}
@@ -1,16 +1,18 @@
1
- import { fa as UiKitLabels } from '../delete-account-setting-CpIhzxxZ.js';
1
+ import { fx as UiKitLabels } from '../delete-account-setting-FLyJf-kZ.js';
2
2
  import 'react';
3
3
  import '../components/tooltip.js';
4
4
  import '../hooks/use-anchored-rect.js';
5
5
  import '../lib/clipping.js';
6
- import '../data-table-labels-DUELeXpa.js';
6
+ import '../data-table-labels-kpAAVi6g.js';
7
7
  import '../components/data-table-sort.js';
8
8
  import '../components/swipeable-row.js';
9
9
  import '../components/mini-calendar.js';
10
10
  import '../components/calendar-heatmap.js';
11
11
  import '../components/popover.js';
12
+ import '../hooks/use-breakpoint.js';
12
13
  import '../components/chip.js';
13
14
  import 'lucide-react';
15
+ import '../components/field-parts.js';
14
16
  import '../components/field-sync.js';
15
17
  import '../wizard/types.js';
16
18
  import '../tour/tour.js';
@@ -79,6 +81,9 @@ import '../admin/admin-parts.js';
79
81
  import '../admin/admin-action-log.js';
80
82
  import '../settings/settings-labels.js';
81
83
  import '../demo/demo-labels.js';
84
+ import '../components/appearance-labels.js';
85
+ import '../theme/contrast.js';
86
+ import '../theme/text-size.js';
82
87
  import '../components/reauth-dialog.js';
83
88
  import '../components/server-wake.js';
84
89
  import '../lib/server-wake.js';
@@ -92,7 +97,7 @@ import '../components/sign-chip.js';
92
97
  import '../components/column-mapper.js';
93
98
  import '../lib/column-mapping.js';
94
99
  import '../lib/table-text.js';
95
- import '../components/field-parts.js';
100
+ import '../components/focus-ring.js';
96
101
 
97
102
  /**
98
103
  * The kit's German, formal ("Sie"), written in standard spelling with "ß" — the SOURCE