@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
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ComponentPropsWithoutRef, ReactNode, ReactElement, RefObject, Ref, ButtonHTMLAttributes, MouseEvent, AnchorHTMLAttributes, SelectHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';
3
3
  import { TooltipSide } from './components/tooltip.js';
4
- import { d as DataTableColumn, f as DataTableLabels } from './data-table-labels-DUELeXpa.js';
4
+ import { d as DataTableColumn, f as DataTableLabels } from './data-table-labels-kpAAVi6g.js';
5
5
  import { MiniCalendarLabels, WeekDay } from './components/mini-calendar.js';
6
6
  import { CalendarHeatmapLabels } from './components/calendar-heatmap.js';
7
7
  import { PopoverLabels } from './components/popover.js';
@@ -63,6 +63,8 @@ import { AdminActionLogLabels } from './admin/admin-action-log.js';
63
63
  import { SettingsLabels } from './settings/settings-labels.js';
64
64
  import { LandingLabels } from './landing/landing-labels.js';
65
65
  import { DemoLabels } from './demo/demo-labels.js';
66
+ import { AppearanceLabels } from './components/appearance-labels.js';
67
+ import { TextSize } from './theme/text-size.js';
66
68
  import { ReauthDialogLabels } from './components/reauth-dialog.js';
67
69
  import { ServerWakeLabels } from './components/server-wake.js';
68
70
  import { TranslationReviewLabels } from './components/translation-review-labels.js';
@@ -72,7 +74,8 @@ import { IbanKind } from './lib/iban.js';
72
74
  import { PhoneCountry, PhoneCountryCode } from './lib/phone.js';
73
75
  import { SignChipLabels } from './components/sign-chip.js';
74
76
  import { ColumnMapperLabels } from './components/column-mapper.js';
75
- import './components/field-parts.js';
77
+ import { DisabledReasonDisplay } from './components/field-parts.js';
78
+ import './components/focus-ring.js';
76
79
 
77
80
  /**
78
81
  * A button that opens the file picker — the shape all three apps kept writing by hand
@@ -2920,11 +2923,28 @@ type FormActionsAlign = "start" | "center" | "end" | "between";
2920
2923
  * FullBleedDialog's `footer`), which already pads and rules it.
2921
2924
  */
2922
2925
  type FormActionsPlacement = "inline" | "sticky" | "dialog";
2926
+ /**
2927
+ * When the row's buttons STACK, one per line at the row's full width (0.32,
2928
+ * docs/text-size-harmonization.md §4 "FormActions stack full width on a phone layout"):
2929
+ *
2930
+ * - `"auto"` (default): on the phone layout (`usePhoneLayout()`, `max-md:` at the text
2931
+ * size in force) at Large and Extra large. There a phone is 312 or 260 px of text
2932
+ * wide, and Cancel and a "Save changes" side by side wrap into a ragged pair with
2933
+ * one 48 px target squeezed against the other. Normal keeps the row the apps tuned.
2934
+ * - `"phone"`: on the phone layout at every text size.
2935
+ * - `"never"`: always the row.
2936
+ *
2937
+ * Stacked, the order is the DOM's — the start group (the destructive action), the extra
2938
+ * actions, Cancel, then Save at the bottom, under the thumb — so the visual order and
2939
+ * the tab order stay one.
2940
+ */
2941
+ type FormActionsStack = "auto" | "phone" | "never";
2923
2942
  /**
2924
2943
  * A placement per breakpoint, mobile first — `{ base: "sticky", md: "inline" }` is a
2925
2944
  * Save row stuck to the bottom of a phone's long form and in the flow under the last
2926
- * field from 768px up, where the form fits. The breakpoints are Tailwind's (sm 640,
2927
- * md 768, lg 1024, xl 1280px), as `BulkActionBar`'s `variant` breakpoints are, and
2945
+ * field from 768px up, where the form fits. The breakpoints are the classes' (sm 640,
2946
+ * md 768, lg 1024, xl 1280px at Normal text size, and 1.25 / 1.5 times that at Large /
2947
+ * Extra large, as `md:` is since 0.32), as `BulkActionBar`'s `variant` breakpoints are, and
2928
2948
  * resolved the same way, in JS: the sticky row is positioned by inline style, which a
2929
2949
  * `md:` class cannot reach. keksdose switched `placement` on its own media query at
2930
2950
  * every long form for want of this. The breakpoints are the VIEWPORT's, not the
@@ -3122,6 +3142,9 @@ interface FormActionsProps extends Omit<ComponentPropsWithoutRef<"div">, "childr
3122
3142
  * `form.submitShortcut` label), dimmed. Hidden on a touch-only device, which has no
3123
3143
  * keyboard to press it on. Default `false`. */
3124
3144
  submitShortcutHint?: boolean;
3145
+ /** When the buttons stack full width — see {@link FormActionsStack}. Default `auto`:
3146
+ * on the phone layout at Large and Extra large. */
3147
+ stack?: FormActionsStack;
3125
3148
  /** Extra actions, placed before Cancel. */
3126
3149
  children?: ReactNode;
3127
3150
  }
@@ -3140,7 +3163,7 @@ interface FormActionsProps extends Omit<ComponentPropsWithoutRef<"div">, "childr
3140
3163
  * The spinner is the kit's {@link Spinner}, drawn inside the button with `label={null}`
3141
3164
  * so the button's name stays its text; `aria-busy` is what says it is working.
3142
3165
  */
3143
- declare function FormActions({ onCancel, onSubmit, submitLabel, cancelLabel, pendingLabel, submitIcon: SubmitIcon, submitProps, pending, submitDisabled, submitDisabledReason, commit, submitVariant, cancelVariant, size, destructive, start: startSlot, align, placement: placementProp, stickyWithin, bleed, form, submitShortcut, submitShortcutHint, children, className, style, ...rest }: FormActionsProps): react.JSX.Element;
3166
+ declare function FormActions({ onCancel, onSubmit, submitLabel, cancelLabel, pendingLabel, submitIcon: SubmitIcon, submitProps, pending, submitDisabled, submitDisabledReason, commit, submitVariant, cancelVariant, size, destructive, start: startSlot, align, placement: placementProp, stickyWithin, bleed, form, submitShortcut, submitShortcutHint, stack, children, className, style, ...rest }: FormActionsProps): react.JSX.Element;
3144
3167
 
3145
3168
  /**
3146
3169
  * The legal pages — Imprint, Privacy Policy, Terms — for every app.
@@ -3219,6 +3242,20 @@ interface LegalTextSectionLabels {
3219
3242
  title: string;
3220
3243
  body: string;
3221
3244
  }
3245
+ /**
3246
+ * 0.32.0: the imprint's disclaimer, with the body of its COMMERCIAL variant
3247
+ * (docs/billing-harmonization.md §8; legal decision 7). The title is the same in both:
3248
+ * liability for content and links is the subject either way.
3249
+ */
3250
+ interface LegalDisclaimerSectionLabels extends LegalTextSectionLabels {
3251
+ /**
3252
+ * The body for `<LegalKitSection section="disclaimer" variant="commercial">`: a paid
3253
+ * service sold through a Merchant of Record, which sells in its own name (§2.2), so the
3254
+ * "private, non-commercial … closed beta" of `body` would be untrue. OPTIONAL, as every
3255
+ * key added to a namespace an app may annotate: left out, the provider's, then English.
3256
+ */
3257
+ commercial?: string;
3258
+ }
3222
3259
  /** A kit section whose text names the operator (§4.3 `{name}`, `{email}`, …). */
3223
3260
  interface LegalOperatorSectionLabels {
3224
3261
  title: string;
@@ -3282,7 +3319,8 @@ interface LegalLabels {
3282
3319
  impressum: {
3283
3320
  operator: LegalOperatorSectionLabels;
3284
3321
  contact: LegalOperatorSectionLabels;
3285
- disclaimer: LegalTextSectionLabels;
3322
+ /** `body` is the default, non-commercial text; `commercial` the 0.32 variant. */
3323
+ disclaimer: LegalDisclaimerSectionLabels;
3286
3324
  };
3287
3325
  privacy: {
3288
3326
  controller: LegalOperatorSectionLabels;
@@ -3846,6 +3884,172 @@ interface RegisterFormProps extends Omit<ComponentPropsWithoutRef<"div">, "onSub
3846
3884
  */
3847
3885
  declare function RegisterForm({ onSubmit, emailTag, invitedEmail, defaultEmail, locale: localeProp, defaultLocale, onLocaleChange, languages, languageField, aboveForm, underEmail, appFields, afterFields, appFieldsComplete, termsHref, privacyHref, signInHref, describeError, labels: labelsProp, className, ...rest }: RegisterFormProps): react.JSX.Element;
3848
3886
 
3887
+ /**
3888
+ * A row's actions — inline icons at Normal, one "⋯" menu at Large and above
3889
+ * (docs/text-size-harmonization.md §10.8).
3890
+ *
3891
+ * At Large an IconButton shows its label as text (§4). In a dense row — a register's
3892
+ * action column, a list row's end — every label at once does not fit: Kurvenschmiede
3893
+ * has 44 IconButtons in rows, kastlan 119. So a row's actions collapse instead, into
3894
+ * the menu the user roster has used since 0.31 (`UserRowActions`, now built on this):
3895
+ * one "⋯" button, and a menu with each action's icon AND words, where a locked one stays
3896
+ * listed and says why.
3897
+ *
3898
+ * The data is the roster's `UserRowActionList`, generalised: entries, and `false` /
3899
+ * `null` for the ones a condition left out (`row.locked || {…}`).
3900
+ */
3901
+ /** One action of a row. */
3902
+ interface RowAction {
3903
+ /** React key. Default: the label. */
3904
+ key?: string;
3905
+ /** The action's name: the inline icon's name and tooltip, the menu entry's words. */
3906
+ label: string;
3907
+ /**
3908
+ * Runs it. The kit sends nothing — the app opens its confirmation or calls its API.
3909
+ * Optional only beside `href`; an action has one or the other (or both: `onSelect`
3910
+ * then runs as the link is followed).
3911
+ */
3912
+ onSelect?: () => void;
3913
+ /**
3914
+ * The action NAVIGATES — an edit page, a mail to compose (0.32.1, kastlan's 0.32
3915
+ * report): a real link inline and in the menu, so open in a new tab, a middle click
3916
+ * and the URL on hover work, which `onSelect` + `navigate` lost. The kit's link rule
3917
+ * applies ({@link Button}'s `href`): in-app through the provider's `linkComponent`, an
3918
+ * external or `#anchor` one a plain `<a>`, `mailto:` included.
3919
+ *
3920
+ * A link cannot carry a reason or a spinner, so an action with a `disabledReason`
3921
+ * (or under a write lock, with `commit`) or `pending` stays a button and says why.
3922
+ */
3923
+ href?: string;
3924
+ /** With `href`: leaves the app — a new tab, and a screen reader is told so. */
3925
+ external?: boolean;
3926
+ /**
3927
+ * The glyph: a Lucide icon (`Pencil`), or an element (`<Pencil />`, an app's own
3928
+ * svg) — DataTable's `rowActions` hand their `icon` node through. Inline, an action
3929
+ * without one is a small text button; in the menu it is the words alone.
3930
+ */
3931
+ icon?: LucideIcon | ReactElement;
3932
+ /** `danger` for delete, revoke, erase: the quiet red of IconButton's `tone="danger"`
3933
+ * inline, the danger text tone in the menu. */
3934
+ tone?: "default" | "danger";
3935
+ /** Why it is not available for this row. It stays listed, focusable, and says so — an
3936
+ * action that silently vanished would leave the reader looking for it. */
3937
+ disabledReason?: ReactNode;
3938
+ /**
3939
+ * This action COMMITS — it saves, sends, deletes: under a locked
3940
+ * {@link WriteLockProvider} it is refused with the lock's reason, as {@link Button}'s
3941
+ * `commit` is, inline and in the menu alike. No provider, or an unlocked one: no effect.
3942
+ */
3943
+ commit?: boolean;
3944
+ /**
3945
+ * In flight — the request it started has not answered. Inline, the icon turns into
3946
+ * IconButton's spinner (`pending`); collapsed, the "⋯" button does, since the menu
3947
+ * closed when the action was chosen. Either way nothing in the row can be pressed again
3948
+ * until it settles: the "⋯" opens no menu while busy.
3949
+ */
3950
+ pending?: boolean;
3951
+ /**
3952
+ * Not available for a moment, with nothing to explain — another action of the list
3953
+ * is in flight (an admin panel's `busy`). The plain `disabled`; a lasting refusal is a
3954
+ * `disabledReason`, which says why.
3955
+ */
3956
+ disabled?: boolean;
3957
+ /** Leave it out for this row. */
3958
+ hidden?: boolean;
3959
+ }
3960
+ /** What a row's actions may be: entries, and `false` / `null` / `undefined` for the ones
3961
+ * a condition left out. */
3962
+ type RowActionList = readonly (RowAction | false | null | undefined)[];
3963
+ interface RowActionsLabels {
3964
+ /** The menu button's name when the row has no name of its own; also the actions
3965
+ * column's (hidden) header in {@link rowActionsColumn}. */
3966
+ actions: string;
3967
+ /** The menu button's name, given the row's: "Actions for Ada Example". */
3968
+ actionsFor: (name: string) => string;
3969
+ }
3970
+ declare const DEFAULT_ROW_ACTIONS_LABELS: RowActionsLabels;
3971
+ /**
3972
+ * - `"auto"` (default): the icons inline at Normal; the "⋯" menu at Large and Extra
3973
+ * large once there are two or more (§10.8). A single action stays inline at every
3974
+ * size, with its label as text at Large — one label fits a row, and a menu of one is
3975
+ * a detour.
3976
+ * - `"menu"`: the menu at every size — the roster's choice, whose actions grow (§2.4
3977
+ * there) and do not fit a phone card as a strip.
3978
+ * - `"inline"`: the icons at every size — for a row the app knows has room; at Large
3979
+ * each then shows its label (IconButton's `labelVisible`).
3980
+ */
3981
+ type RowActionsCollapse = "auto" | "menu" | "inline";
3982
+ /** The sizes a row action comes in: IconButton's row steps. `2xs` is DataTable's
3983
+ * compact density. At Large every one is at least a 48 px target (IconButton). */
3984
+ type RowActionsSize = Extract<IconButtonSize, "md" | "sm" | "xs" | "2xs">;
3985
+ interface RowActionsProps {
3986
+ actions: RowActionList;
3987
+ /** The row's name, for the menu button's name — "Actions for Ada Example". Without it
3988
+ * (or `null`, as API fields often are) the button is "Actions". */
3989
+ name?: string | null;
3990
+ /** When the actions collapse into the menu — see {@link RowActionsCollapse}. */
3991
+ collapse?: RowActionsCollapse;
3992
+ /** The inline icons' and the "⋯" button's size. Default `xs`, a list row's action. */
3993
+ size?: RowActionsSize;
3994
+ /** The menu's width. Default `"15rem"`, in rem so it grows with the words (§3.2). */
3995
+ menuWidth?: `${number}rem`;
3996
+ /** On the wrapper: the inline strip, or the "⋯" button's box. */
3997
+ className?: string;
3998
+ labels?: Partial<RowActionsLabels>;
3999
+ }
4000
+ /**
4001
+ * A row's actions, inline or as a "⋯" menu — see {@link RowActionsCollapse}. Every
4002
+ * control stops its click (and the Enter/Space it stands for) from reaching the row, so
4003
+ * a clickable row or a DataTable `rowLink` does not open as well; in a DataTable column
4004
+ * also set `noRowLink: true`, as {@link rowActionsColumn} does.
4005
+ *
4006
+ * Inline, the icons sit in a {@link CompactControls} region at Normal: their labels
4007
+ * stay the names and the tooltips, and a locked one keeps its reason in the tooltip — a
4008
+ * line under one icon of a row would break the row. In the menu a locked action's
4009
+ * reason is a line under its words at Large and on touch (Button's
4010
+ * `disabledReasonDisplay`).
4011
+ *
4012
+ * The menu is portalled, so a table's scroller cannot clip it; Escape and an outside
4013
+ * press close it, and focus goes back to the "⋯" button, which is where a confirmation
4014
+ * dialog then returns it.
4015
+ */
4016
+ declare function RowActions({ actions, name, collapse, size, menuWidth, className, labels: labelsProp, }: RowActionsProps): react.JSX.Element | null;
4017
+ interface RowActionsColumnOptions<T> {
4018
+ /** The column's key. Default `"actions"`. */
4019
+ key?: string;
4020
+ /** The row's actions — `false` / `null` for the ones a condition leaves out. */
4021
+ actions: (row: T) => RowActionList;
4022
+ /** The row's name, for the "⋯" button's name ("Actions for Ada Example"). `null` and
4023
+ * `undefined` both mean "Actions". */
4024
+ name?: (row: T) => string | null | undefined;
4025
+ collapse?: RowActionsCollapse;
4026
+ /** Default `xs`. */
4027
+ size?: RowActionsSize;
4028
+ /**
4029
+ * The column's name as plain text — the column-settings checklist and the phone
4030
+ * card's label read it (`DataTableColumn.headerText`). Pass the app's own word; left
4031
+ * out, the header shows the provider's `rowActions.actions` to a screen reader and
4032
+ * the plain-text places fall back to the column's `key`.
4033
+ */
4034
+ headerText?: string;
4035
+ labels?: Partial<RowActionsLabels>;
4036
+ /** Anything else for the column (`mobileHidden`, `cellProps`…), merged last. */
4037
+ column?: Partial<DataTableColumn<T>>;
4038
+ }
4039
+ /**
4040
+ * A DataTable column of {@link RowActions} — an app's action column in one line
4041
+ * (§10.8): inline icons at Normal, the "⋯" menu at Large with two or more actions.
4042
+ *
4043
+ * columns={[...columns, rowActionsColumn({ actions: (r) => [...], name: (r) => r.name })]}
4044
+ *
4045
+ * The header is visually hidden (the icons say what the column is), the column hugs its
4046
+ * content at the row's end, and `noRowLink` keeps a `rowHref` anchor off it, so the
4047
+ * buttons keep their own clicks. On a phone it is a line of the card like any column;
4048
+ * set `column: { mobileHidden: true }` to drop it there (with `mobileDetailsInRow` it
4049
+ * then shows in the opened row instead).
4050
+ */
4051
+ declare function rowActionsColumn<T>({ key, actions, name, collapse, size, headerText, labels, column, }: RowActionsColumnOptions<T>): DataTableColumn<T>;
4052
+
3849
4053
  /**
3850
4054
  * The role of an account, chosen by an admin (docs/user-admin-harmonization.md §3.3,
3851
4055
  * §4.1, §7): {@link RoleSelect} for the apps where an account has ONE role (keksdose,
@@ -4102,26 +4306,12 @@ interface UserIdentityCellProps {
4102
4306
  * Both lines carry `data-private`, so keksdose's demo blur reaches them.
4103
4307
  */
4104
4308
  declare function UserIdentityCell({ person, name, email, avatar, badge, locale: localeProp, className, }: UserIdentityCellProps): react.JSX.Element;
4105
- /** One entry of a row's action menu (§4). */
4106
- interface UserRowAction {
4107
- /** React key. Default: the label. */
4108
- key?: string;
4109
- label: string;
4110
- /** Runs it — usually opens `AdminActionConfirm` with the level the server states. */
4111
- onSelect: () => void;
4112
- icon?: LucideIcon;
4113
- /** `danger` for deactivate, transfer, erase. */
4114
- tone?: "default" | "danger";
4115
- /** Why it is not available for this row ("You can’t deactivate yourself"). The entry
4116
- * stays in the menu, focusable, and says so — an action that silently vanished
4117
- * would leave the admin looking for it. */
4118
- disabledReason?: ReactNode;
4119
- /** Leave it out for this row. */
4120
- hidden?: boolean;
4121
- }
4309
+ /** One entry of a row's action menu (§4) — the kit's {@link RowAction} since 0.32,
4310
+ * which generalised it for every dense row (docs/text-size-harmonization.md §10.8). */
4311
+ type UserRowAction = RowAction;
4122
4312
  /** What `actions(row)` may return: entries, and `false` / `null` for the ones a
4123
4313
  * condition left out (`row.is_active && {…}`). */
4124
- type UserRowActionList = readonly (UserRowAction | false | null | undefined)[];
4314
+ type UserRowActionList = RowActionList;
4125
4315
  interface UserRowActionsProps {
4126
4316
  actions: UserRowActionList;
4127
4317
  /** The account's name, for the menu's name — "Actions for Ada Example". */
@@ -4134,8 +4324,11 @@ interface UserRowActionsProps {
4134
4324
  * a phone card, and both grow with every action §2.4 adds. The menu is portalled, so a
4135
4325
  * table's scroller cannot clip it; Escape and an outside press close it, and focus goes
4136
4326
  * back to the button, which is where a confirmation dialog then returns it.
4327
+ *
4328
+ * Since 0.32 this is {@link RowActions} with `collapse="menu"` — the menu at every size —
4329
+ * named by the roster's own `actionsFor`.
4137
4330
  */
4138
- declare function UserRowActions({ actions, name, labels: labelsProp }: UserRowActionsProps): react.JSX.Element | null;
4331
+ declare function UserRowActions({ actions, name, labels: labelsProp }: UserRowActionsProps): react.JSX.Element;
4139
4332
  /** How a row's role may be changed inline: `true`, or with reasons. */
4140
4333
  interface RoleEditing<R extends string> {
4141
4334
  /** Why the whole select is locked for this row — `"self"`, `"last_admin"`, or words. */
@@ -4654,6 +4847,350 @@ interface InvitationsPanelProps<R extends string = string> {
4654
4847
  }
4655
4848
  declare function InvitationsPanel<R extends string = string>({ invitations, roles, invitableRoles, defaultRole, scopes, scopeRequired, languages, defaultLocale, mailBackend, onInvite, onResend, onRevoke, loading, describeError, intro, listTitle, className, labels: labelsProp, }: InvitationsPanelProps<R>): react.JSX.Element;
4656
4849
 
4850
+ /**
4851
+ * The subscription's status vocabulary (docs/billing-harmonization.md §3.2) — server-kit's
4852
+ * `SubscriptionStatus`, value for value:
4853
+ *
4854
+ * - `trialing` — the 30-day trial without a card (§2.7), or a pure guest's row whose trial
4855
+ * has not started (§12.9, `trial_ends_at` empty);
4856
+ * - `active` — paid;
4857
+ * - `past_due` — a payment failed; in good standing during the provider's retries (§3.3);
4858
+ * - `canceled` — the payer cancelled; the American spelling is the wire's, the word shown
4859
+ * is "Cancelled";
4860
+ * - `expired` — a trial, a grant or a failed subscription ran out: read-only (§2.3);
4861
+ * - `comped` — free by the operator's grant or as a beta user (§3.2, `comped_until`).
4862
+ */
4863
+ type SubscriptionStatus = "trialing" | "active" | "past_due" | "canceled" | "expired" | "comped";
4864
+ /** Every status, in the order a lifecycle reads: trial, paid, trouble, ended, granted. */
4865
+ declare const SUBSCRIPTION_STATUSES: readonly SubscriptionStatus[];
4866
+ /**
4867
+ * The words of the subscription parts — the `billing` namespace of `<UiKitProvider labels>`
4868
+ * (docs/billing-harmonization.md §7, §10; ui-kit 0.32.0).
4869
+ *
4870
+ * WORDING (§12.24): the English group is "Subscription", never "Plan" — keksdose's "plan"
4871
+ * is the month's budget plan ("One plan per month"), and two meanings of one word on one
4872
+ * settings page is the clash the review found. "Plan" stays the word for WHAT is bought
4873
+ * (Free, Pro), "subscription" for the standing arrangement. German says "Tarif" for the
4874
+ * plan and "Abonnement" for the subscription (§10).
4875
+ *
4876
+ * Prices are GROSS (§12.17): Swiss consumer law (PBV) wants a consumer price with the
4877
+ * MWST in it, so the cards say so (`vatIncluded`).
4878
+ */
4879
+ interface BillingLabels {
4880
+ /** The settings group or admin section the parts live on (§7, §12.24): "Subscription". */
4881
+ group: string;
4882
+ /** The picker's name when it has no visible `legend`: "Plans". */
4883
+ plans: string;
4884
+ /** The name of the billing-period switch: "Billing period". */
4885
+ interval: string;
4886
+ /** The switch's two options — yearly first (§12.17). */
4887
+ yearly: string;
4888
+ monthly: string;
4889
+ /** The name of the currency switch: "Currency". */
4890
+ currency: string;
4891
+ /** After a price: "per year", "per month". */
4892
+ perYear: string;
4893
+ perMonth: string;
4894
+ /** Under a price (§12.17): "VAT included". German: "inkl. MWST". */
4895
+ vatIncluded: string;
4896
+ /** A plan with no price, or a price of 0: "Free". */
4897
+ free: string;
4898
+ /** A plan with prices, but none for this currency and period. */
4899
+ notOffered: string;
4900
+ /** A limit of `null` (§3.1): "Unlimited". */
4901
+ unlimited: string;
4902
+ /** The accessible names of a card's two lists. */
4903
+ limits: string;
4904
+ features: string;
4905
+ /** The chip on the payer's current plan. */
4906
+ current: string;
4907
+ /** The picker's button for `plan` (the plan's display name) with no current plan —
4908
+ * during a trial, or after a plan ended: "Choose Pro". */
4909
+ choose: (plan: string) => string;
4910
+ /** …for a plan after the current one in the catalogue's order: "Upgrade to Pro". */
4911
+ upgrade: (plan: string) => string;
4912
+ /** …for a plan before it: "Switch to Free". */
4913
+ downgrade: (plan: string) => string;
4914
+ /** Why the button is off while the current plan is the one picked. */
4915
+ isCurrent: string;
4916
+ /** Why it is off while nothing is picked. */
4917
+ pickFirst: string;
4918
+ /** One word per status. */
4919
+ status: Record<SubscriptionStatus, string>;
4920
+ /** A trial ends in `days` calendar days — 0 is today, 1 tomorrow. */
4921
+ trialEnding: (days: number) => string;
4922
+ /** A free grant (`comped_until`: a beta user's 12 months, an operator's grant) ends in
4923
+ * `days` calendar days. */
4924
+ grantEnding: (days: number) => string;
4925
+ /** The first failed payment (`past_due`), while the provider retries. */
4926
+ paymentFailed: string;
4927
+ /** Out of good standing: read-only, never locked (§2.3). */
4928
+ planEnded: string;
4929
+ /**
4930
+ * A guest in someone else's item that is read-only for billing (§12.6). It never says
4931
+ * WHY beyond "for now": the owner's payment status is the owner's personal data.
4932
+ * `item` is the item's own name ("Household 2026"), shown in quotes — or `undefined`.
4933
+ */
4934
+ guestReadOnly: (item?: string) => string;
4935
+ /** Back from checkout before the provider's webhook landed (§12.21). */
4936
+ processing: string;
4937
+ /** The action of the trial, grant and plan-ended banners, and of `PlanLimitNotice`'s
4938
+ * `upgrade` mode: "Choose a plan". */
4939
+ choosePlan: string;
4940
+ /** The payment-failed banner's action, to the provider's portal: "Update payment method". */
4941
+ updatePayment: string;
4942
+ /** The processing banner's action, when the app gives one: "Check again". */
4943
+ checkAgain: string;
4944
+ /** The `WriteLockProvider` reason for the payer (§3.3, verbatim). A guest's reason is
4945
+ * {@link guestReadOnly}. */
4946
+ lockReason: string;
4947
+ /** The notice's first line: "Plan limit reached". */
4948
+ limitReached: string;
4949
+ /** Mode `upgrade`: what the action does. */
4950
+ limitUpgrade: string;
4951
+ /** Mode `contact` (the operator grants plans by hand, keksdose's today). */
4952
+ limitContact: string;
4953
+ /** Mode `contact`'s action, a mail to support: "Ask for more". */
4954
+ askForMore: string;
4955
+ /** The meter's value: "3 of 3". Both figures are formatted already. */
4956
+ usage: (used: string, limit: string) => string;
4957
+ /** The subject of the `contact` mail; `dimension` is the app's name for it ("Budgets"). */
4958
+ contactSubject: (dimension: string) => string;
4959
+ /** The portal: payment method and invoices (§2.8, the provider hosts both). */
4960
+ manage: string;
4961
+ /**
4962
+ * The visible cancel link on the app's subscription page (§12.26). German: §312k BGB
4963
+ * wants the button that leads to the cancellation labelled "Verträge hier kündigen" or
4964
+ * as unambiguously — a translator should use exactly that.
4965
+ */
4966
+ cancel: string;
4967
+ /** Changes refused as `billing_read_only` inside a sync reply, kept queued and sent
4968
+ * after payment: "3 changes waiting for a plan". */
4969
+ waitingChanges: (count: number) => string;
4970
+ /** The sign-out guard's way out for someone who will not pay. */
4971
+ discardWaiting: string;
4972
+ /**
4973
+ * `billing_not_configured`: billing is on but the provider's settings are missing — the
4974
+ * operator's mistake, so the words ask the payer to wait, not to act. For the toast or
4975
+ * alert after "Choose a plan" or "Payment and invoices" (`isBillingError(err,
4976
+ * "billing_not_configured")`). `billing_read_only` and `plan_limit` need none: the
4977
+ * write lock, the banner and `PlanLimitNotice` say them.
4978
+ */
4979
+ notConfigured: string;
4980
+ /** `billing_disabled`: billing is switched off on this server (§2.9), for a page or a
4981
+ * link that reached it anyway. */
4982
+ disabled: string;
4983
+ }
4984
+ declare const DEFAULT_BILLING_LABELS: BillingLabels;
4985
+ /** The `billing` namespace, resolved: English, then the provider, then `labels` — which
4986
+ * may be partial at every depth (`{ status: { comped: "Beta" } }`). */
4987
+ declare function useBillingLabels(labels?: LabelOverride<BillingLabels>): BillingLabels;
4988
+
4989
+ interface AppShellSubItem {
4990
+ to: string;
4991
+ label: string;
4992
+ icon: LucideIcon;
4993
+ /** Passed to NavLink's `end` (exact match). Defaults to true. */
4994
+ end?: boolean;
4995
+ }
4996
+ interface AppShellNavItem {
4997
+ to: string;
4998
+ label: string;
4999
+ /** Optional shorter label for the MOBILE BOTTOM BAR only (the sidebar, its
5000
+ * tooltips and any palette built on this list keep `label`).
5001
+ *
5002
+ * The bar divides the viewport into `nav.length` equal cells, so a label's room
5003
+ * shrinks with every entry added — at six entries on a 406 px phone that is ~67 px,
5004
+ * and "Import & Export" wrapped to two lines and pushed the row taller than its
5005
+ * neighbours (keksdose feedback live #210). A per-item override is better than
5006
+ * shortening the real label, which the sidebar has ample room for and which is the
5007
+ * name the rest of the product uses. */
5008
+ shortLabel?: string;
5009
+ /** 0.31.0: leave this entry out of the MOBILE BOTTOM BAR; the sidebar keeps it.
5010
+ * For an entry a phone reaches another way — the brand link to the start page —
5011
+ * when one cell fewer is what keeps the others' labels whole (the bar divides its
5012
+ * width evenly, see `shortLabel`). Its group's sub-row still shows while one of its
5013
+ * pages is open. Named like `DataTable`'s column `mobileHidden`. */
5014
+ mobileHidden?: boolean;
5015
+ icon: LucideIcon;
5016
+ /** Passed to NavLink's `end` (exact match). Defaults to true. */
5017
+ end?: boolean;
5018
+ /** Optional `data-tour` value rendered on this item's link (both the desktop
5019
+ * sidebar and the mobile bottom bar), so a guided tour can spotlight ONE nav
5020
+ * entry precisely instead of matching by href (feedback #338). */
5021
+ dataTour?: string;
5022
+ /** Optional sub-items. When present, hovering (or focusing) the item opens a
5023
+ * flyout to the right of the sidebar with a header (this item's label) and the
5024
+ * sub-items as icon + title links. Works collapsed or expanded; the mobile
5025
+ * bottom bar ignores sub-items and links to `to`. */
5026
+ items?: AppShellSubItem[];
5027
+ }
5028
+ /**
5029
+ * One entry of the sidebar's bottom area ({@link AppShellProps.sidebarFooterItems}) —
5030
+ * the version link and the legal links kastlan hand-built in `sidebarFooter`.
5031
+ *
5032
+ * - `link` (default): one link. Expanded it shows `icon` + `text` (default `label`),
5033
+ * with `hint` as a tooltip if given; collapsed it is the icon alone, named and
5034
+ * tooltipped by `label`.
5035
+ * - `links`: a small group — the legal links. Expanded, a `<nav>` named `label` holding
5036
+ * the links as a wrapping row of small text; collapsed, ONE icon link to `to` (default
5037
+ * the first link's), named and tooltipped by `label`, since a column of icons for
5038
+ * "Imprint", "Privacy" and "Terms" would say nothing an icon can.
5039
+ */
5040
+ type AppShellSidebarFooterItem = {
5041
+ kind?: "link";
5042
+ key: string;
5043
+ to: string;
5044
+ icon: LucideIcon;
5045
+ /** The link's name, and the tooltip when collapsed ("What's new · v1.4.0"). */
5046
+ label: string;
5047
+ /** Visible text when expanded ("Kastlan v1.4.0"). Default `label`. */
5048
+ text?: ReactNode;
5049
+ /** A tooltip on the expanded link ("What's new"). */
5050
+ hint?: string;
5051
+ /** Leaves the app: a plain `<a target="_blank" rel="noopener noreferrer">`. */
5052
+ external?: boolean;
5053
+ } | {
5054
+ kind: "links";
5055
+ key: string;
5056
+ icon: LucideIcon;
5057
+ /** The group's name — its `<nav>` label, and the collapsed icon's name ("Legal"). */
5058
+ label: string;
5059
+ /** The collapsed icon's target. Default the first link's `to`. */
5060
+ to?: string;
5061
+ links: {
5062
+ to: string;
5063
+ label: string;
5064
+ external?: boolean;
5065
+ }[];
5066
+ };
5067
+ /**
5068
+ * The words of the phone bar's "More" cell and its sheet (0.32,
5069
+ * docs/text-size-harmonization.md §4 Navigation, §10.7) — the `appShellMore` namespace of
5070
+ * `<UiKitProvider labels>`, overridable per shell through `moreLabels`.
5071
+ */
5072
+ interface AppShellMoreLabels {
5073
+ /** The cell's visible label, under its icon — one short word. */
5074
+ more: string;
5075
+ /** The sheet's heading, and so its accessible name. */
5076
+ moreTitle: string;
5077
+ }
5078
+ declare const DEFAULT_APP_SHELL_MORE_LABELS: AppShellMoreLabels;
5079
+ /**
5080
+ * The most entries the phone bar shows before the rest go under "More", per text size
5081
+ * (§10.7): every entry at Normal, four at Large, three at Extra large. A fifth of a
5082
+ * 360 px phone at 150 % is 48 px of Normal-sized room, and the cells hold a word each.
5083
+ */
5084
+ declare const DEFAULT_MOBILE_BAR_MAX: Readonly<Record<TextSize, number>>;
5085
+ /**
5086
+ * Split the bar's entries into the cells shown and the ones under "More", in the app's
5087
+ * order (§10.7: the app puts its four most used first, or orders by role). One hidden
5088
+ * entry is no saving — the More cell would take its place — so the bar then shows them
5089
+ * all: the cell count is the same either way, and a real entry beats a detour.
5090
+ */
5091
+ declare function splitMobileBar<T>(entries: readonly T[], max: number): {
5092
+ shown: T[];
5093
+ hidden: T[];
5094
+ };
5095
+ /**
5096
+ * Exported and `<div>`-shaped. This is the outermost element of every consuming app, so
5097
+ * there is nothing above it to hang an id, a landmark label or a `data-tour` anchor on —
5098
+ * and nothing a consumer can wrap it in either, since the root owns the `h-dvh` and
5099
+ * `overflow-hidden` the whole layout is built on (audit §api-design).
5100
+ */
5101
+ interface AppShellProps extends ComponentPropsWithoutRef<"div"> {
5102
+ /** Navigation entries — shared by the desktop sidebar and mobile bottom bar. */
5103
+ nav: AppShellNavItem[];
5104
+ /** The composed top bar (e.g. the shared TopBar with app-owned actions). */
5105
+ topBar: ReactNode;
5106
+ /** Main content — typically the router `<Outlet />`. */
5107
+ children: ReactNode;
5108
+ /** Desktop-only footer rendered below the content (hidden on mobile). */
5109
+ footer?: ReactNode;
5110
+ /** Extra sidebar content above the collapse toggle (e.g. a version link).
5111
+ * Receives the collapsed state so it can render compact vs. full. */
5112
+ sidebarFooter?: (collapsed: boolean) => ReactNode;
5113
+ /** The sidebar's bottom area as data — a version link, the legal links — drawn full
5114
+ * when expanded and as icon + tooltip when collapsed. Rendered above
5115
+ * `sidebarFooter`, which stays for anything the data cannot describe. */
5116
+ sidebarFooterItems?: AppShellSidebarFooterItem[];
5117
+ /** The router link for `sidebarFooterItems`. Default: the provider's
5118
+ * `linkComponent`, else react-router's `Link`. */
5119
+ renderLink?: KitLinkComponent;
5120
+ /** localStorage key for the persisted collapse state. */
5121
+ collapseStorageKey?: string;
5122
+ /** Default: `appShell.collapse` from the {@link UiKitProvider}, else English. */
5123
+ collapseLabel?: string;
5124
+ /** Default: `appShell.expand` from the {@link UiKitProvider}, else English. */
5125
+ expandLabel?: string;
5126
+ /** How an entry's `items` are revealed in the EXPANDED desktop sidebar.
5127
+ *
5128
+ * - `"flyout"` (default) — a panel beside the sidebar on hover/focus. Compact: the
5129
+ * sidebar stays one row per group however many pages a group holds.
5130
+ * - `"inline"` — a disclosure under the entry, the pattern of MUI's nested List and
5131
+ * most documentation sites. Every page is visible at once, and the group holding
5132
+ * the current page opens on its own, so the reader can see where they are without
5133
+ * hovering anything.
5134
+ *
5135
+ * The icon-only (collapsed) sidebar always uses the flyout: an indented list has no
5136
+ * room there. The mobile bottom bar ignores `items` in both modes. */
5137
+ subNav?: "flyout" | "inline";
5138
+ /** Accessible name of the inline disclosure button, given the group's label.
5139
+ * Only used with `subNav="inline"`. Its expanded state is carried by
5140
+ * `aria-expanded`, so one wording serves both directions. Default:
5141
+ * `appShell.toggleGroup` from the {@link UiKitProvider}, else English. */
5142
+ toggleGroupLabel?: (groupLabel: string) => string;
5143
+ /** Below `md`: show the current group's `items` as a scrollable row above the
5144
+ * bottom bar — the phone's counterpart of the sidebar's second level. Default true;
5145
+ * `false` keeps the single bar, where a group entry only links to its own `to`. */
5146
+ mobileSubNav?: boolean;
5147
+ /**
5148
+ * How the phone sub-nav lays out a group with more pages than fit on one row.
5149
+ * `"wrap"` (default): every page in view, on as many rows as it takes — the bar
5150
+ * grows. `"scroll"`: one row that scrolls sideways, faded at a cut edge, with the
5151
+ * current page scrolled into view. A long group took four rows (~130px) of a 390px
5152
+ * screen above the bottom bar (showcase audit); scrolling gives that back at the
5153
+ * price of pages hidden past the edge, so it is the app's call, per shell.
5154
+ */
5155
+ mobileSubNavLayout?: "wrap" | "scroll";
5156
+ /**
5157
+ * The most entries the phone bar shows; the rest move into a "More" cell that opens a
5158
+ * sheet listing them, each group with its pages (0.32, docs/text-size-harmonization.md
5159
+ * §4, §10.7). The bar takes `nav` in the app's order — after `mobileHidden` — so the
5160
+ * app puts its most used entries first (or orders by role: kastlan's manager and
5161
+ * accountant see different firsts).
5162
+ *
5163
+ * Default {@link DEFAULT_MOBILE_BAR_MAX}: unlimited at Normal, 4 at Large, 3 at Extra
5164
+ * large, because the cells' words grow with the text and the phone does not. A number
5165
+ * replaces the default at every size; `{ large: 5 }` replaces it at one size only.
5166
+ * Never fewer than one entry; and one entry over the limit shows in full rather than
5167
+ * behind a More that would take the same cell.
5168
+ */
5169
+ mobileBarMax?: number | Partial<Record<TextSize, number>>;
5170
+ /** The More cell's words over the provider's `appShellMore`. */
5171
+ moreLabels?: Partial<AppShellMoreLabels>;
5172
+ /**
5173
+ * Lay the shell out inside its PARENT'S box instead of the viewport: `h-full` rather
5174
+ * than `h-dvh`, its own scroll container at every width, a bottom bar pinned to the
5175
+ * shell rather than the window, `--app-nav-h` published on the shell alone, and no
5176
+ * persisted collapse state unless `collapseStorageKey` is passed. For an app preview,
5177
+ * a device frame, a docs example.
5178
+ *
5179
+ * Implied for a shell rendered inside another AppShell, which is the case this
5180
+ * exists for: the inner one used to publish its own nav height on `<html>`, fight
5181
+ * the outer one over it, and remove it on unmount from under the outer app.
5182
+ */
5183
+ embedded?: boolean;
5184
+ }
5185
+ /**
5186
+ * The responsive application shell: a top bar, a collapsible desktop sidebar
5187
+ * (icon-only when collapsed, with tooltips), a mobile bottom nav bar, the main
5188
+ * content area, and an optional desktop footer. Router-aware via react-router
5189
+ * `NavLink`; domain-free — nav items, brand, footer and the top bar's actions
5190
+ * are all supplied by the app.
5191
+ */
5192
+ declare function AppShell({ nav, topBar, children, footer, sidebarFooter, sidebarFooterItems, renderLink, collapseStorageKey: collapseStorageKeyProp, collapseLabel, expandLabel, subNav, mobileSubNav, mobileSubNavLayout, mobileBarMax, moreLabels, toggleGroupLabel, embedded: embeddedProp, className, ...rest }: AppShellProps): react.JSX.Element;
5193
+
4657
5194
  /**
4658
5195
  * Who holds one record, and the owner's every way of changing that — Kurvenschmiede's
4659
5196
  * `features/sharing/share-dialog.tsx` and keksdose's `features/budgets/budget-share-card.tsx`,
@@ -5261,6 +5798,14 @@ interface UiKitLabels {
5261
5798
  landing: LandingLabels;
5262
5799
  /** 0.31.0: the demo's start, banner and end (§5). */
5263
5800
  demo: DemoLabels;
5801
+ /** 0.32.0: plans, standing, banners and the limit notice (docs/billing-harmonization.md §7). */
5802
+ billing: BillingLabels;
5803
+ /** 0.32.0: the text-size and contrast settings (docs/text-size-harmonization.md §6). */
5804
+ appearance: AppearanceLabels;
5805
+ /** 0.32.0: a row's actions folded into a "⋯" menu at Large (text size §10.8). */
5806
+ rowActions: RowActionsLabels;
5807
+ /** 0.32.0: the phone bar's "More" cell and sheet (text size §10.7). */
5808
+ appShellMore: AppShellMoreLabels;
5264
5809
  /** 0.22.0: the screen-reader words of `Input` / `Textarea`'s `showCount` counter. */
5265
5810
  characterCount: CharacterCountLabels;
5266
5811
  /** 0.22.0: `CountrySelect`. Its list's "no results" and counts are `combobox`'s. */
@@ -5471,6 +6016,14 @@ declare function useKitFileLabels(prop?: Partial<FileLabels>): FileLabels;
5471
6016
  declare function missingKitLabels(labels: UiKitLabelOverrides | undefined, reference: UiKitLabels): string[];
5472
6017
 
5473
6018
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "brand" | "link";
6019
+ /**
6020
+ * The touch target at Large and Extra large (docs/text-size-harmonization.md §4): at
6021
+ * least 48 px, the size a finger needs whatever the type. In px on purpose, like the
6022
+ * field floor ({@link FIELD_TOUCH_TEXT}): it is a physical threshold, not a size that
6023
+ * follows the text. Normal keeps the kit's own heights; a `large:` variant, so it costs
6024
+ * no render and is right on the first paint.
6025
+ */
6026
+ declare const TOUCH_TARGET_LARGE = "large:min-h-[48px] large:min-w-[48px]";
5474
6027
  type ButtonSize = "sm" | "md";
5475
6028
  /**
5476
6029
  * The text colour of a `link` or `ghost` button, over the variant's own.
@@ -5572,6 +6125,12 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5572
6125
  * DangerConfirm keeps its own.
5573
6126
  */
5574
6127
  disabledReason?: ReactNode;
6128
+ /**
6129
+ * Where `disabledReason` shows (0.32, §4 "No fact only in a tooltip"): by default a
6130
+ * line under the button at Large and on a touch screen, the tooltip otherwise. See
6131
+ * {@link DisabledReasonDisplay}.
6132
+ */
6133
+ disabledReasonDisplay?: DisabledReasonDisplay;
5575
6134
  /**
5576
6135
  * This button COMMITS — it saves, creates, deletes. Under a locked
5577
6136
  * {@link WriteLockProvider} it is disabled the `disabledReason` way, with the lock's
@@ -5653,8 +6212,10 @@ interface ButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>,
5653
6212
  pending?: never;
5654
6213
  pressed?: never;
5655
6214
  disabledReason?: never;
6215
+ disabledReasonDisplay?: never;
5656
6216
  commit?: never;
5657
6217
  }
6218
+
5658
6219
  declare function Button(props: ButtonLinkProps): ReactElement;
5659
6220
  declare function Button(props: ButtonProps): ReactElement;
5660
6221
  type IconButtonSize = "2xl" | "xl" | "lg" | "md" | "sm" | "xs" | "2xs";
@@ -5804,9 +6365,25 @@ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5804
6365
  * unless `tooltipPortal` says otherwise.
5805
6366
  */
5806
6367
  label?: string;
6368
+ /**
6369
+ * Show `label` as visible text beside the icon at Large and Extra large (0.32,
6370
+ * docs/text-size-harmonization.md §4, §10.8). A reader who asked for bigger type is
6371
+ * the one an unlabelled glyph fails, and on touch the tooltip never opens. Then there
6372
+ * is no tooltip: the words are on the button.
6373
+ *
6374
+ * Default `true` — except for `variant="overlay"` and `"shutter"`, which sit ON a
6375
+ * picture, and inside {@link CompactControls} (AppShell's top bar, `RowActions`'
6376
+ * inline icons). `false`: the icon alone at every size, for an icon on content — a
6377
+ * receipt overlay, a map's zoom, a viewfinder, a photo thumbnail. That must be rare;
6378
+ * a dense row's actions belong in `RowActions`, which collapses them into a "⋯" menu
6379
+ * at Large instead (§10.8). Normal never shows it. `tooltip={false}` (a universally
6380
+ * read glyph, a dialog's ✕) keeps the icon alone too.
6381
+ */
6382
+ labelVisible?: boolean;
5807
6383
  /** Show `label` as a tooltip. Default `true`; `false` keeps `label` as the
5808
6384
  * accessible name only — for a button whose glyph is universally read (a close ✕ in
5809
- * a dialog header) or that already sits under a tooltip of its own. */
6385
+ * a dialog header) or that already sits under a tooltip of its own. It also keeps the
6386
+ * label from showing as text at Large (see `labelVisible`). */
5810
6387
  tooltip?: boolean;
5811
6388
  /** Where the `label` tooltip opens. See {@link Tooltip}'s `side`. */
5812
6389
  tooltipSide?: TooltipSide;
@@ -5860,8 +6437,13 @@ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5860
6437
  * bubble shows the reason in place of the label, since the glyph already says what
5861
6438
  * the button is and the reason is the news. Shown even with `tooltip={false}`: a
5862
6439
  * reason nobody can see is not one. Wins over `disabled`, as on Button.
6440
+ *
6441
+ * 0.32: at Large and on a touch screen the reason is a line under the button rather
6442
+ * than a bubble — see `disabledReasonDisplay`.
5863
6443
  */
5864
6444
  disabledReason?: ReactNode;
6445
+ /** Where `disabledReason` shows — {@link Button}'s `disabledReasonDisplay`. */
6446
+ disabledReasonDisplay?: DisabledReasonDisplay;
5865
6447
  /** This action COMMITS — {@link Button}'s `commit`: under a locked
5866
6448
  * {@link WriteLockProvider} it takes the `disabledReason` path with the lock's
5867
6449
  * reason. No effect without a lock. */
@@ -5892,7 +6474,7 @@ interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5892
6474
  * `disabledStyle` are a button's and are typed out: a link is not a toggle, and a link
5893
6475
  * that explains why it cannot be followed is a job for a disabled BUTTON.
5894
6476
  */
5895
- interface IconButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type" | "href">, Pick<IconButtonProps, "variant" | "size" | "glyphSize" | "badge" | "stretch" | "shape" | "toneColor" | "tone" | "quiet" | "stopPropagation" | "label" | "tooltip" | "tooltipSide" | "tooltipPortal" | "tooltipLazy"> {
6477
+ interface IconButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type" | "href">, Pick<IconButtonProps, "variant" | "size" | "glyphSize" | "badge" | "stretch" | "shape" | "toneColor" | "tone" | "quiet" | "stopPropagation" | "label" | "labelVisible" | "tooltip" | "tooltipSide" | "tooltipPortal" | "tooltipLazy"> {
5896
6478
  href: string;
5897
6479
  /** See {@link ButtonLinkProps.renderLink}. */
5898
6480
  renderLink?: KitLinkComponent;
@@ -5909,6 +6491,7 @@ interface IconButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElemen
5909
6491
  form?: never;
5910
6492
  pressed?: never;
5911
6493
  disabledReason?: never;
6494
+ disabledReasonDisplay?: never;
5912
6495
  commit?: never;
5913
6496
  disabledStyle?: never;
5914
6497
  pending?: never;
@@ -5932,6 +6515,19 @@ declare function IconButton(props: IconButtonProps): ReactElement;
5932
6515
  declare namespace IconButton {
5933
6516
  var displayName: string;
5934
6517
  }
6518
+ /**
6519
+ * The 16 px floor on touch (docs/text-size-harmonization.md §10.1). iOS zooms the page
6520
+ * when a field under 16 px takes focus, and keksdose's `maximum-scale=1` — which stopped
6521
+ * it — goes so pinch zoom works again (WCAG 1.4.4). A zoomed page drops the keyboard
6522
+ * inset to 0 (§10.2), so the zoom would put a pinned editor footer behind the keyboard
6523
+ * (keksdose #154). So on a coarse pointer a field is at least 16 px, at every text size:
6524
+ * `max()` leaves Large and Extra large alone, where `text-sm` is already 17.5 / 21 px.
6525
+ *
6526
+ * In px on purpose: the threshold is the browser's, in CSS px, whatever the root size.
6527
+ * Font size only — the line height keeps `text-sm`'s ratio. Part of {@link FIELD_BASE};
6528
+ * add it to any other text-entry control whose type is below 16 px.
6529
+ */
6530
+ declare const FIELD_TOUCH_TEXT = "pointer-coarse:text-[length:max(0.875rem,16px)]";
5935
6531
  declare const FIELD_BASE: string;
5936
6532
  /** Cancels FIELD_BASE's read-only treatment for a field that is `readOnly` for a
5937
6533
  * reason other than "you may not edit this". Attribute-scoped for the same reason
@@ -5941,8 +6537,12 @@ declare const FIELD_WRITABLE_LOOK = "[&[readonly]]:bg-[var(--bg-surface)] [&[rea
5941
6537
  declare const FIELD_FLOATING_PAD = "pt-4 pb-1";
5942
6538
  declare const FIELD_INVALID = "border-[var(--danger-border-strong)] ring-1 ring-[var(--danger-border-strong)] focus:border-[var(--danger)] focus:ring-[var(--danger)]";
5943
6539
  declare const FLOATING_INPUT_CLASS: string;
5944
- /** The phone breakpoint the display treatment below keys off — the same one the
5945
- * numpad sheet uses, kept in one place so the two can't drift apart. */
6540
+ /** The phone breakpoint at Normal text size, as a media query.
6541
+ *
6542
+ * @deprecated since 0.32 — it does not follow the text size (§3.3): at Large the CSS
6543
+ * `max-md:` reaches 959 px and this still stops at 767. Use `usePhoneLayout()`, which
6544
+ * agrees with `max-md:` at every size, or `breakpointQuery("max-md", scale)` where a
6545
+ * query string is needed. Kept exported, unchanged, for the apps that import it. */
5946
6546
  declare const PHONE_QUERY = "(max-width: 767px)";
5947
6547
  /**
5948
6548
  * The PHONE display treatment (Keksdose feedback #176, carried across the entry
@@ -5950,8 +6550,9 @@ declare const PHONE_QUERY = "(max-width: 767px)";
5950
6550
  * about reads as the thing itself, not as another boxed row in a stack.
5951
6551
  *
5952
6552
  * Every control that takes `variant="display"` — {@link Input}, `NumberInput`,
5953
- * `AmountInput` — means exactly the same thing by it: the treatment applies below
5954
- * {@link PHONE_QUERY} and the field is untouched above it, so a caller never has
6553
+ * `AmountInput` — means exactly the same thing by it: the treatment applies in the
6554
+ * phone layout (`usePhoneLayout()`, `max-md:` at the text size in force) and the field
6555
+ * is untouched above it, so a caller never has
5955
6556
  * to ask the viewport, and a form can't end up half-treated across breakpoints.
5956
6557
  *
5957
6558
  * What stays, deliberately:
@@ -6017,31 +6618,6 @@ interface FloatingFieldProps extends ComponentPropsWithoutRef<"div"> {
6017
6618
  children: ReactNode;
6018
6619
  }
6019
6620
  declare function FloatingField({ className, htmlFor, label, staticLabel, srOnlyLabel, hint, children, ...rest }: FloatingFieldProps): react.JSX.Element;
6020
- /**
6021
- * The "?" that explains a field, on the field's own label line (dev#468).
6022
- *
6023
- * Pass it to a labelled {@link Select} / {@link Input} as `hint`. It exists as a
6024
- * component rather than as a snippet each form repeats because the previous
6025
- * version was exactly that snippet — an absolutely-positioned button whose
6026
- * `top-1.5` was one guess at where an 11px label sits — and the reporter's
6027
- * follow-up was *"question mark is not centered. Is it part of the hoc?
6028
- * positioning problems seem quite frequently."* It was not part of the HOC. Now
6029
- * it is, and there is one place left where the answer can be wrong.
6030
- *
6031
- * A `<button>` rather than a bare icon: hover alone puts the explanation out of
6032
- * reach of a keyboard and of every touch device, and the tooltip shows on focus
6033
- * too. The text is also its accessible name, so a screen reader gets it without
6034
- * the bubble ever opening.
6035
- */
6036
- interface FieldHintProps extends Omit<ComponentPropsWithoutRef<"button">, "children"> {
6037
- /** The explanation. It is both the tooltip's text and, by default, the button's
6038
- * accessible name, so a screen reader gets it without the bubble ever opening. */
6039
- label: string;
6040
- /** Default `"start"`: before the hint in the reading direction (the left in LTR, the
6041
- * right in RTL). `left` / `right` stay physical. */
6042
- side?: TooltipSide;
6043
- }
6044
- declare function FieldHint({ label, side, className, "aria-label": ariaLabel, ...rest }: FieldHintProps): react.JSX.Element;
6045
6621
  interface LabelProps extends ComponentPropsWithoutRef<"label"> {
6046
6622
  /** Draw the required mark after the text. The mark is `aria-hidden`: what a
6047
6623
  * screen reader hears is the control's own `required` / `aria-required`, which
@@ -6329,8 +6905,14 @@ interface CardHeaderProps extends ComponentPropsWithoutRef<"div"> {
6329
6905
  * description instead of beside them. For an action that is wider than an icon —
6330
6906
  * a "Set up two-factor" button, a checkbox and a filter — which, kept in the
6331
6907
  * top-end column on a 390px phone, squeezed the title into a ribbon two words wide
6332
- * (keksdose's settings cards). Off by default: an icon action (the wizard summary's
6333
- * pencil) is narrow enough to stay beside the title at every width.
6908
+ * (keksdose's settings cards). Off by default at Normal: an icon action (the wizard
6909
+ * summary's pencil) is narrow enough to stay beside the title at every width.
6910
+ *
6911
+ * Unset, it stacks at Large and Extra large only (0.32.1, the 360 px Extra-large
6912
+ * sweep; docs/text-size-harmonization.md §4): there an IconButton shows its label as
6913
+ * text, so the "icon" action is a word-wide pill, and "Refresh sessions" beside
6914
+ * "Sessions" ran 47 px past a 360 px phone. `false` keeps the action beside the title
6915
+ * at every size, for an action the caller knows stays narrow (`labelVisible={false}`).
6334
6916
  */
6335
6917
  stackAction?: boolean;
6336
6918
  }
@@ -6632,7 +7214,7 @@ interface TabsProps<T extends string> extends Omit<ComponentPropsWithoutRef<"div
6632
7214
  * `onRemove`, `onAdd` — means exactly what it means on the horizontal strip; the
6633
7215
  * badge moves to the row's end.
6634
7216
  *
6635
- * **On a phone ({@link PHONE_QUERY}) it becomes the horizontal strip**, `wrap` and
7217
+ * **On a phone (`usePhoneLayout()`) it becomes the horizontal strip**, `wrap` and
6636
7218
  * all, rather than staying a column. A side nav only works beside its content; on
6637
7219
  * a phone it has to go ABOVE it, and eight full-width rows there push the panel
6638
7220
  * the user picked below the fold on every visit — the two keksdose pages both
@@ -7227,4 +7809,4 @@ interface DeleteAccountSettingProps extends Omit<ComponentPropsWithoutRef<"div">
7227
7809
  */
7228
7810
  declare function DeleteAccountSetting({ email, mode, days, consequences, handOverCount, onRequest, describeError, labels: labelsProp, className, ...rest }: DeleteAccountSettingProps): react.JSX.Element;
7229
7811
 
7230
- export { type FeedbackContext as $, type FeedbackAttachmentError as A, type FeedbackAttachmentErrorInfo as B, ChatComposer as C, DEFAULT_ATTACHMENT_ACCEPT as D, FeedbackAttachmentField as E, FEEDBACK_ATTACHMENT_ACCEPT as F, type FeedbackAttachmentFieldLabels as G, type FeedbackAttachmentFieldMultipleProps as H, type FeedbackAttachmentFieldProps as I, type FeedbackAttachmentFieldRefsProps as J, type FeedbackAttachmentFieldSingleProps as K, type FeedbackAttachmentLabels as L, type FeedbackAttachmentRef as M, type FeedbackAttachmentRefsError as N, FeedbackAwaitingToggle as O, type FeedbackAwaitingToggleProps as P, type FeedbackCategory as Q, FeedbackCategoryBadge as R, type FeedbackCategoryLabels as S, type FeedbackCategoryOption as T, type FeedbackColumnsOptions as U, FeedbackComposer as V, type FeedbackComposerAttachment as W, type FeedbackComposerHandle as X, type FeedbackComposerLabels as Y, type FeedbackComposerProps as Z, type FeedbackComposerSlotContext as _, type ChatComposerHandle as a, feedbackAttachmentUrls as a$, FeedbackContextBox as a0, type FeedbackContextBoxProps as a1, type FeedbackContextInput as a2, type FeedbackContextLabels as a3, FeedbackDetail as a4, type FeedbackDetailLabels as a5, type FeedbackDetailPatch as a6, FeedbackDetailSection as a7, type FeedbackDetailUpdate as a8, FeedbackDialog as a9, FeedbackStatusBadge as aA, type FeedbackStatusChange as aB, type FeedbackStatusLabels as aC, type FeedbackStatusMutate as aD, type FeedbackStatusPatch as aE, type FeedbackStatusRow as aF, FeedbackStatusTransitions as aG, type FeedbackStatusUndoOptions as aH, FeedbackSubject as aI, type FeedbackSubjectProps as aJ, type FeedbackSubmission as aK, type FeedbackSubmitHint as aL, type FeedbackSubmitter as aM, type FeedbackTableRow as aN, FeedbackThread as aO, type FeedbackThreadAttachment as aP, type FeedbackThreadEvent as aQ, type FeedbackThreadItem as aR, type FeedbackThreadLabels as aS, type FeedbackThreadMessage as aT, type FeedbackThreadProps as aU, type FeedbackToastLabels as aV, type FeedbackUpload as aW, type UseFeedbackColumnsOptions as aX, appendRework as aY, attachmentName as aZ, feedbackAttachmentLine as a_, type FeedbackDialogLabels as aa, type FeedbackDialogMultipleProps as ab, type FeedbackDialogProps as ac, type FeedbackDialogSingleProps as ad, type FeedbackDialogTextLabels as ae, FeedbackEmptyState as af, type FeedbackEmptyStateProps as ag, type FeedbackEnvironment as ah, FeedbackMenu as ai, type FeedbackMenuLabels as aj, type FeedbackMenuProps as ak, FeedbackMobileCard as al, type FeedbackMobileCardProps as am, type FeedbackMultipleSubmission as an, type FeedbackNoteAttachment as ao, FeedbackNoteEditor as ap, type FeedbackPageLabels as aq, FeedbackProse as ar, type FeedbackRecord as as, type FeedbackRenderDate as at, FeedbackReworkSection as au, type FeedbackReworkSectionProps as av, type FeedbackRowAccess as aw, FeedbackRowDetail as ax, type FeedbackRowDetailProps as ay, type FeedbackStatus as az, type ChatComposerLabels as b, type ChartTooltipPlacement as b$, feedbackCategoryRank as b0, feedbackColumns as b1, feedbackContext as b2, feedbackEnvironment as b3, feedbackMobileGroupBy as b4, feedbackPageHref as b5, feedbackPagePath as b6, feedbackPageUrl as b7, feedbackRowAccess as b8, feedbackSubmitter as b9, type AppShellLabels as bA, Button as bB, type ButtonClassesOptions as bC, type ButtonLinkProps as bD, type ButtonProps as bE, type ButtonSize as bF, type ButtonTone as bG, type ButtonVariant as bH, type CalculatorLabels as bI, Card as bJ, CardAction as bK, type CardActionProps as bL, CardContent as bM, type CardContentProps as bN, type CardDensity as bO, CardDescription as bP, type CardDescriptionProps as bQ, CardFooter as bR, type CardFooterProps as bS, CardHeader as bT, type CardHeaderProps as bU, type CardProps as bV, CardTitle as bW, type CardTitleLevel as bX, type CardTitleProps as bY, type CardTone as bZ, type CharacterCountLabels as b_, feedbackSubmitterEmail as ba, isFeedbackAwaiting as bb, isImageAttachment as bc, nextFeedbackStatus as bd, pastedName as be, replaceDescription as bf, reworkCount as bg, selectableFeedbackStatuses as bh, splitBodyAttachments as bi, splitDescription as bj, useFeedbackCategoryLabels as bk, useFeedbackColumns as bl, useFeedbackDetailLabels as bm, useFeedbackPageLabels as bn, useFeedbackRenderDate as bo, useFeedbackStatusLabels as bp, useFeedbackStatusUndo as bq, useFeedbackToastLabels as br, visibleFeedbackStatuses as bs, AdminActionConfirm as bt, type AdminActionConfirmProps as bu, type AdminActionConfirmValues as bv, type AdminActionLabels as bw, type AdminActionTarget as bx, type AdminConfirmLevel as by, type AdminUserStateFields as bz, type ChatComposerProps as c, FIELD_INVALID as c$, type ComboboxLabels as c0, type CommonLabels as c1, type ConfirmDialogLabels as c2, type ConfirmFn as c3, type ConfirmOptions as c4, ConfirmProvider as c5, type ConfirmProviderProps as c6, type ConfirmTone as c7, CopyButton as c8, type CopyButtonLabels as c9, DEFAULT_PICKER_SHEET_LABELS as cA, DEFAULT_REGISTER_LABELS as cB, DEFAULT_REVIEWER_SCOPE_LABELS as cC, DEFAULT_ROLE_SELECT_LABELS as cD, DEFAULT_SHARE_CARD_LABELS as cE, DEFAULT_SWIPEABLE_ROW_LABELS as cF, DEFAULT_TABS_LABELS as cG, DEFAULT_TOP_BAR_LABELS as cH, DEFAULT_TRANSFER_OWNERSHIP_LABELS as cI, DEFAULT_USER_ROSTER_LABELS as cJ, DangerConfirm as cK, type DangerConfirmLabels as cL, type DangerConfirmProps as cM, type DangerConfirmValues as cN, type DangerConsequence as cO, type DatePickerLabels as cP, type DeleteAccountConsequence as cQ, type DeleteAccountLabels as cR, DeleteAccountSetting as cS, type DeleteAccountSettingProps as cT, type DeleteAccountValues as cU, type DeletionMode as cV, EmptyState as cW, type EmptyStateProps as cX, FIELD_BASE as cY, FIELD_DISPLAY as cZ, FIELD_FLOATING_PAD as c_, type CopyButtonProps as ca, type CurrencyLabels as cb, CurrentPasswordInput as cc, type CurrentPasswordInputLabels as cd, type CurrentPasswordInputProps as ce, DEFAULT_ADMIN_ACTION_LABELS as cf, DEFAULT_APP_SHELL_LABELS as cg, DEFAULT_CALCULATOR_LABELS as ch, DEFAULT_CHARACTER_COUNT_LABELS as ci, DEFAULT_COMBOBOX_LABELS as cj, DEFAULT_COMMON_LABELS as ck, DEFAULT_CONFIRM_DIALOG_LABELS as cl, DEFAULT_COPY_BUTTON_LABELS as cm, DEFAULT_CURRENCY_LABELS as cn, DEFAULT_DANGER_CONFIRM_LABELS as co, DEFAULT_DATE_PICKER_LABELS as cp, DEFAULT_DELETE_ACCOUNT_LABELS as cq, DEFAULT_FILE_LABELS as cr, DEFAULT_FILE_PICKER_LABELS as cs, DEFAULT_FORM_ACTIONS_LABELS as ct, DEFAULT_IBAN_INPUT_LABELS as cu, DEFAULT_INVITATIONS_LABELS as cv, DEFAULT_LEGAL_LABELS as cw, DEFAULT_MULTI_SELECT_LABELS as cx, DEFAULT_PASSWORD_REVEAL_LABELS as cy, DEFAULT_PHONE_INPUT_LABELS as cz, type ChatComposerSlotContext as d, LegalLayout as d$, FIELD_TRIGGER as d0, FIELD_WRITABLE_LOOK as d1, FLOATING_INPUT_CLASS as d2, FLOATING_LABEL_CLASS as d3, FieldChevron as d4, type FieldChevronProps as d5, FieldHint as d6, type FieldHintProps as d7, FileButton as d8, type FileButtonProps as d9, type IconButtonToneColor as dA, type IconButtonVariant as dB, Input as dC, type InputProps as dD, type InvitationDraft as dE, type InvitationRow as dF, type InvitationScope as dG, type InvitationSentAnswer as dH, type InvitationStatus as dI, type InvitationsLabels as dJ, InvitationsPanel as dK, type InvitationsPanelProps as dL, KIT_LANGUAGES as dM, type KitDateFormatContext as dN, type KitDateFormatter as dO, type KitLanguage as dP, type KitLanguageCode as dQ, type KitLinkComponent as dR, type KitLinkProps as dS, LEGAL_HREFS as dT, Label as dU, type LabelOverride as dV, type LabelProps as dW, LegalFooter as dX, type LegalFooterProps as dY, type LegalFramedSectionLabels as dZ, type LegalLabels as d_, type FileLabels as da, type FilePickerLabels as db, type FileRejection as dc, type FileRejectionReason as dd, type FileScreenOptions as de, FloatingField as df, type FloatingFieldProps as dg, FormActions as dh, type FormActionsAlign as di, type FormActionsDestructive as dj, type FormActionsLabels as dk, type FormActionsPlacement as dl, type FormActionsProps as dm, type FormActionsStickyWithin as dn, type FormActionsSubmitProps as dp, type FormActionsSubmitShortcut as dq, IbanInput as dr, type IbanInputLabels as ds, type IbanInputProps as dt, IconButton as du, type IconButtonGlyphSize as dv, type IconButtonLinkProps as dw, type IconButtonProps as dx, type IconButtonSize as dy, type IconButtonTone as dz, DEFAULT_FEEDBACK_ATTACHMENT_LABELS as e, TransferOwnershipDialog as e$, type LegalLayoutProps as e0, type LegalLink as e1, LegalLinks as e2, type LegalLinksProps as e3, type LegalOperator as e4, type LegalOperatorSectionLabels as e5, type LegalOperatorText as e6, type LegalPageKey as e7, LegalSection as e8, type LegalSectionProps as e9, type RolesEditorProps as eA, type RosterState as eB, Select as eC, type SelectProps as eD, type ShareAddRequest as eE, type ShareCandidate as eF, ShareCard as eG, type ShareCardLabels as eH, type ShareCardProps as eI, ShareDialog as eJ, type ShareDialogProps as eK, type ShareGrantee as eL, SharePanel as eM, type SharePanelProps as eN, type SharePendingGrant as eO, type ShareRole as eP, Spinner as eQ, type SpinnerProps as eR, type SwipeableRowLabels as eS, type TabItem as eT, Tabs as eU, type TabsLabels as eV, type TabsProps as eW, Textarea as eX, type TextareaProps as eY, type TopBarLabels as eZ, type TransferCandidate as e_, type LegalTextSectionLabels as ea, type MultiSelectLabels as eb, PHONE_QUERY as ec, type PasswordRevealLabels as ed, PhoneInput as ee, type PhoneInputLabels as ef, type PhoneInputProps as eg, type PickerSheetLabels as eh, RegisterForm as ei, type RegisterFormProps as ej, type RegisterLabels as ek, type RegisterValues as el, type ResponsiveFormActionsPlacement as em, type ReviewerScope as en, type ReviewerScopeArea as eo, ReviewerScopeEditor as ep, type ReviewerScopeEditorProps as eq, type ReviewerScopeLabels as er, type ReviewerScopeLanguage as es, type RoleEditing as et, type RoleLock as eu, type RoleLockCode as ev, RoleSelect as ew, type RoleSelectLabels as ex, type RoleSelectProps as ey, RolesEditor as ez, DEFAULT_FEEDBACK_CATEGORY_LABELS as f, LegalText as f$, type TransferOwnershipDialogProps as f0, type TransferOwnershipLabels as f1, type TransferUnavailable as f2, type TransferValues as f3, TypedConfirmField as f4, type TypedConfirmFieldLabels as f5, type TypedConfirmFieldProps as f6, type TypedMatch as f7, USER_ROSTER_SORT_KEYS as f8, type UiKitLabelOverrides as f9, resolvePasswordRevealLabels as fA, typedMatches as fB, useConfirm as fC, useFilePicker as fD, useKitChartTooltipPlacement as fE, useKitDateFormatter as fF, useKitFileLabels as fG, useKitLabelOverrides as fH, useKitLabels as fI, useKitLink as fJ, useKitLocale as fK, useKitWeekStart as fL, useLegalLabels as fM, useUiKitLabels as fN, useUserRosterColumns as fO, userRosterColumns as fP, userRosterSort as fQ, type FilePickHandler as fR, formatAccept as fS, judgePick as fT, screenFiles as fU, summariseRejections as fV, LegalPageContext as fW, type LegalPageContextValue as fX, type LegalRefTarget as fY, type LegalSectionSlot as fZ, LegalSlotContext as f_, type UiKitLabels as fa, UiKitProvider as fb, type UiKitProviderProps as fc, type UseFilePickerOptions as fd, type UseFilePickerReturn as fe, UserIdentityCell as ff, type UserIdentityCellProps as fg, type UserRosterColumnsOptions as fh, type UserRosterLabels as fi, type UserRosterRow as fj, type UserRosterSortKey as fk, type UserRowAction as fl, type UserRowActionList as fm, UserRowActions as fn, type UserRowActionsProps as fo, adminUserStates as fp, buttonClasses as fq, formatFileSize as fr, formatLocaleOf as fs, languageOptions as ft, legalOperatorText as fu, loadUiKitLabels as fv, matchesAccept as fw, missingKitLabels as fx, peekUiKitLabels as fy, resolveLanguage as fz, DEFAULT_FEEDBACK_COMPOSER_LABELS as g, baseLanguage as g0, resolveLegalRefs as g1, warnLegalOnce as g2, usePromisePending as g3, DEFAULT_FEEDBACK_CONTEXT_LABELS as h, DEFAULT_FEEDBACK_DETAIL_LABELS as i, DEFAULT_FEEDBACK_DIALOG_LABELS as j, DEFAULT_FEEDBACK_MENU_LABELS as k, DEFAULT_FEEDBACK_PAGE_LABELS as l, DEFAULT_FEEDBACK_STATUS_LABELS as m, DEFAULT_FEEDBACK_THREAD_LABELS as n, DEFAULT_FEEDBACK_TOAST_LABELS as o, DEFAULT_MAX_ATTACHMENTS as p, DEFAULT_MAX_ATTACHMENT_BYTES as q, FEEDBACK_AUTHOR_EDITABLE_STATUSES as r, FEEDBACK_AWAITING_STATUSES as s, FEEDBACK_CATEGORY_META as t, FEEDBACK_CATEGORY_ORDER as u, FEEDBACK_PICKABLE_CATEGORIES as v, FEEDBACK_REWORKABLE_STATUSES as w, FEEDBACK_STATUS_META as x, FEEDBACK_STATUS_ORDER as y, FEEDBACK_UNDO_DURATION as z };
7812
+ export { type FeedbackContext as $, type FeedbackAttachmentError as A, type FeedbackAttachmentErrorInfo as B, ChatComposer as C, DEFAULT_ATTACHMENT_ACCEPT as D, FeedbackAttachmentField as E, FEEDBACK_ATTACHMENT_ACCEPT as F, type FeedbackAttachmentFieldLabels as G, type FeedbackAttachmentFieldMultipleProps as H, type FeedbackAttachmentFieldProps as I, type FeedbackAttachmentFieldRefsProps as J, type FeedbackAttachmentFieldSingleProps as K, type FeedbackAttachmentLabels as L, type FeedbackAttachmentRef as M, type FeedbackAttachmentRefsError as N, FeedbackAwaitingToggle as O, type FeedbackAwaitingToggleProps as P, type FeedbackCategory as Q, FeedbackCategoryBadge as R, type FeedbackCategoryLabels as S, type FeedbackCategoryOption as T, type FeedbackColumnsOptions as U, FeedbackComposer as V, type FeedbackComposerAttachment as W, type FeedbackComposerHandle as X, type FeedbackComposerLabels as Y, type FeedbackComposerProps as Z, type FeedbackComposerSlotContext as _, type ChatComposerHandle as a, feedbackAttachmentUrls as a$, FeedbackContextBox as a0, type FeedbackContextBoxProps as a1, type FeedbackContextInput as a2, type FeedbackContextLabels as a3, FeedbackDetail as a4, type FeedbackDetailLabels as a5, type FeedbackDetailPatch as a6, FeedbackDetailSection as a7, type FeedbackDetailUpdate as a8, FeedbackDialog as a9, FeedbackStatusBadge as aA, type FeedbackStatusChange as aB, type FeedbackStatusLabels as aC, type FeedbackStatusMutate as aD, type FeedbackStatusPatch as aE, type FeedbackStatusRow as aF, FeedbackStatusTransitions as aG, type FeedbackStatusUndoOptions as aH, FeedbackSubject as aI, type FeedbackSubjectProps as aJ, type FeedbackSubmission as aK, type FeedbackSubmitHint as aL, type FeedbackSubmitter as aM, type FeedbackTableRow as aN, FeedbackThread as aO, type FeedbackThreadAttachment as aP, type FeedbackThreadEvent as aQ, type FeedbackThreadItem as aR, type FeedbackThreadLabels as aS, type FeedbackThreadMessage as aT, type FeedbackThreadProps as aU, type FeedbackToastLabels as aV, type FeedbackUpload as aW, type UseFeedbackColumnsOptions as aX, appendRework as aY, attachmentName as aZ, feedbackAttachmentLine as a_, type FeedbackDialogLabels as aa, type FeedbackDialogMultipleProps as ab, type FeedbackDialogProps as ac, type FeedbackDialogSingleProps as ad, type FeedbackDialogTextLabels as ae, FeedbackEmptyState as af, type FeedbackEmptyStateProps as ag, type FeedbackEnvironment as ah, FeedbackMenu as ai, type FeedbackMenuLabels as aj, type FeedbackMenuProps as ak, FeedbackMobileCard as al, type FeedbackMobileCardProps as am, type FeedbackMultipleSubmission as an, type FeedbackNoteAttachment as ao, FeedbackNoteEditor as ap, type FeedbackPageLabels as aq, FeedbackProse as ar, type FeedbackRecord as as, type FeedbackRenderDate as at, FeedbackReworkSection as au, type FeedbackReworkSectionProps as av, type FeedbackRowAccess as aw, FeedbackRowDetail as ax, type FeedbackRowDetailProps as ay, type FeedbackStatus as az, type ChatComposerLabels as b, type CardHeaderProps as b$, feedbackCategoryRank as b0, feedbackColumns as b1, feedbackContext as b2, feedbackEnvironment as b3, feedbackMobileGroupBy as b4, feedbackPageHref as b5, feedbackPagePath as b6, feedbackPageUrl as b7, feedbackRowAccess as b8, feedbackSubmitter as b9, AppShell as bA, type AppShellLabels as bB, type AppShellMoreLabels as bC, type AppShellNavItem as bD, type AppShellProps as bE, type AppShellSidebarFooterItem as bF, type AppShellSubItem as bG, type BillingLabels as bH, Button as bI, type ButtonClassesOptions as bJ, type ButtonLinkProps as bK, type ButtonProps as bL, type ButtonSize as bM, type ButtonTone as bN, type ButtonVariant as bO, type CalculatorLabels as bP, Card as bQ, CardAction as bR, type CardActionProps as bS, CardContent as bT, type CardContentProps as bU, type CardDensity as bV, CardDescription as bW, type CardDescriptionProps as bX, CardFooter as bY, type CardFooterProps as bZ, CardHeader as b_, feedbackSubmitterEmail as ba, isFeedbackAwaiting as bb, isImageAttachment as bc, nextFeedbackStatus as bd, pastedName as be, replaceDescription as bf, reworkCount as bg, selectableFeedbackStatuses as bh, splitBodyAttachments as bi, splitDescription as bj, useFeedbackCategoryLabels as bk, useFeedbackColumns as bl, useFeedbackDetailLabels as bm, useFeedbackPageLabels as bn, useFeedbackRenderDate as bo, useFeedbackStatusLabels as bp, useFeedbackStatusUndo as bq, useFeedbackToastLabels as br, visibleFeedbackStatuses as bs, AdminActionConfirm as bt, type AdminActionConfirmProps as bu, type AdminActionConfirmValues as bv, type AdminActionLabels as bw, type AdminActionTarget as bx, type AdminConfirmLevel as by, type AdminUserStateFields as bz, type ChatComposerProps as c, type DeleteAccountConsequence as c$, type CardProps as c0, CardTitle as c1, type CardTitleLevel as c2, type CardTitleProps as c3, type CardTone as c4, type CharacterCountLabels as c5, type ChartTooltipPlacement as c6, type ComboboxLabels as c7, type CommonLabels as c8, type ConfirmDialogLabels as c9, DEFAULT_FILE_LABELS as cA, DEFAULT_FILE_PICKER_LABELS as cB, DEFAULT_FORM_ACTIONS_LABELS as cC, DEFAULT_IBAN_INPUT_LABELS as cD, DEFAULT_INVITATIONS_LABELS as cE, DEFAULT_LEGAL_LABELS as cF, DEFAULT_MOBILE_BAR_MAX as cG, DEFAULT_MULTI_SELECT_LABELS as cH, DEFAULT_PASSWORD_REVEAL_LABELS as cI, DEFAULT_PHONE_INPUT_LABELS as cJ, DEFAULT_PICKER_SHEET_LABELS as cK, DEFAULT_REGISTER_LABELS as cL, DEFAULT_REVIEWER_SCOPE_LABELS as cM, DEFAULT_ROLE_SELECT_LABELS as cN, DEFAULT_ROW_ACTIONS_LABELS as cO, DEFAULT_SHARE_CARD_LABELS as cP, DEFAULT_SWIPEABLE_ROW_LABELS as cQ, DEFAULT_TABS_LABELS as cR, DEFAULT_TOP_BAR_LABELS as cS, DEFAULT_TRANSFER_OWNERSHIP_LABELS as cT, DEFAULT_USER_ROSTER_LABELS as cU, DangerConfirm as cV, type DangerConfirmLabels as cW, type DangerConfirmProps as cX, type DangerConfirmValues as cY, type DangerConsequence as cZ, type DatePickerLabels as c_, type ConfirmFn as ca, type ConfirmOptions as cb, ConfirmProvider as cc, type ConfirmProviderProps as cd, type ConfirmTone as ce, CopyButton as cf, type CopyButtonLabels as cg, type CopyButtonProps as ch, type CurrencyLabels as ci, CurrentPasswordInput as cj, type CurrentPasswordInputLabels as ck, type CurrentPasswordInputProps as cl, DEFAULT_ADMIN_ACTION_LABELS as cm, DEFAULT_APP_SHELL_LABELS as cn, DEFAULT_APP_SHELL_MORE_LABELS as co, DEFAULT_BILLING_LABELS as cp, DEFAULT_CALCULATOR_LABELS as cq, DEFAULT_CHARACTER_COUNT_LABELS as cr, DEFAULT_COMBOBOX_LABELS as cs, DEFAULT_COMMON_LABELS as ct, DEFAULT_CONFIRM_DIALOG_LABELS as cu, DEFAULT_COPY_BUTTON_LABELS as cv, DEFAULT_CURRENCY_LABELS as cw, DEFAULT_DANGER_CONFIRM_LABELS as cx, DEFAULT_DATE_PICKER_LABELS as cy, DEFAULT_DELETE_ACCOUNT_LABELS as cz, type ChatComposerSlotContext as d, type KitLanguageCode as d$, type DeleteAccountLabels as d0, DeleteAccountSetting as d1, type DeleteAccountSettingProps as d2, type DeleteAccountValues as d3, type DeletionMode as d4, EmptyState as d5, type EmptyStateProps as d6, FIELD_BASE as d7, FIELD_DISPLAY as d8, FIELD_FLOATING_PAD as d9, type FormActionsSubmitProps as dA, type FormActionsSubmitShortcut as dB, IbanInput as dC, type IbanInputLabels as dD, type IbanInputProps as dE, IconButton as dF, type IconButtonGlyphSize as dG, type IconButtonLinkProps as dH, type IconButtonProps as dI, type IconButtonSize as dJ, type IconButtonTone as dK, type IconButtonToneColor as dL, type IconButtonVariant as dM, Input as dN, type InputProps as dO, type InvitationDraft as dP, type InvitationRow as dQ, type InvitationScope as dR, type InvitationSentAnswer as dS, type InvitationStatus as dT, type InvitationsLabels as dU, InvitationsPanel as dV, type InvitationsPanelProps as dW, KIT_LANGUAGES as dX, type KitDateFormatContext as dY, type KitDateFormatter as dZ, type KitLanguage as d_, FIELD_INVALID as da, FIELD_TOUCH_TEXT as db, FIELD_TRIGGER as dc, FIELD_WRITABLE_LOOK as dd, FLOATING_INPUT_CLASS as de, FLOATING_LABEL_CLASS as df, FieldChevron as dg, type FieldChevronProps as dh, FileButton as di, type FileButtonProps as dj, type FileLabels as dk, type FilePickerLabels as dl, type FileRejection as dm, type FileRejectionReason as dn, type FileScreenOptions as dp, FloatingField as dq, type FloatingFieldProps as dr, FormActions as ds, type FormActionsAlign as dt, type FormActionsDestructive as du, type FormActionsLabels as dv, type FormActionsPlacement as dw, type FormActionsProps as dx, type FormActionsStack as dy, type FormActionsStickyWithin as dz, DEFAULT_FEEDBACK_ATTACHMENT_LABELS as e, ShareCard as e$, type KitLinkComponent as e0, type KitLinkProps as e1, LEGAL_HREFS as e2, Label as e3, type LabelOverride as e4, type LabelProps as e5, type LegalDisclaimerSectionLabels as e6, LegalFooter as e7, type LegalFooterProps as e8, type LegalFramedSectionLabels as e9, type ReviewerScopeArea as eA, ReviewerScopeEditor as eB, type ReviewerScopeEditorProps as eC, type ReviewerScopeLabels as eD, type ReviewerScopeLanguage as eE, type RoleEditing as eF, type RoleLock as eG, type RoleLockCode as eH, RoleSelect as eI, type RoleSelectLabels as eJ, type RoleSelectProps as eK, RolesEditor as eL, type RolesEditorProps as eM, type RosterState as eN, type RowAction as eO, type RowActionList as eP, RowActions as eQ, type RowActionsCollapse as eR, type RowActionsColumnOptions as eS, type RowActionsLabels as eT, type RowActionsProps as eU, type RowActionsSize as eV, SUBSCRIPTION_STATUSES as eW, Select as eX, type SelectProps as eY, type ShareAddRequest as eZ, type ShareCandidate as e_, type LegalLabels as ea, LegalLayout as eb, type LegalLayoutProps as ec, type LegalLink as ed, LegalLinks as ee, type LegalLinksProps as ef, type LegalOperator as eg, type LegalOperatorSectionLabels as eh, type LegalOperatorText as ei, type LegalPageKey as ej, LegalSection as ek, type LegalSectionProps as el, type LegalTextSectionLabels as em, type MultiSelectLabels as en, PHONE_QUERY as eo, type PasswordRevealLabels as ep, PhoneInput as eq, type PhoneInputLabels as er, type PhoneInputProps as es, type PickerSheetLabels as et, RegisterForm as eu, type RegisterFormProps as ev, type RegisterLabels as ew, type RegisterValues as ex, type ResponsiveFormActionsPlacement as ey, type ReviewerScope as ez, DEFAULT_FEEDBACK_CATEGORY_LABELS as f, useBillingLabels as f$, type ShareCardLabels as f0, type ShareCardProps as f1, ShareDialog as f2, type ShareDialogProps as f3, type ShareGrantee as f4, SharePanel as f5, type SharePanelProps as f6, type SharePendingGrant as f7, type ShareRole as f8, Spinner as f9, type UseFilePickerOptions as fA, type UseFilePickerReturn as fB, UserIdentityCell as fC, type UserIdentityCellProps as fD, type UserRosterColumnsOptions as fE, type UserRosterLabels as fF, type UserRosterRow as fG, type UserRosterSortKey as fH, type UserRowAction as fI, type UserRowActionList as fJ, UserRowActions as fK, type UserRowActionsProps as fL, adminUserStates as fM, buttonClasses as fN, formatFileSize as fO, formatLocaleOf as fP, languageOptions as fQ, legalOperatorText as fR, loadUiKitLabels as fS, matchesAccept as fT, missingKitLabels as fU, peekUiKitLabels as fV, resolveLanguage as fW, resolvePasswordRevealLabels as fX, rowActionsColumn as fY, splitMobileBar as fZ, typedMatches as f_, type SpinnerProps as fa, type SubscriptionStatus as fb, type SwipeableRowLabels as fc, TOUCH_TARGET_LARGE as fd, type TabItem as fe, Tabs as ff, type TabsLabels as fg, type TabsProps as fh, Textarea as fi, type TextareaProps as fj, type TopBarLabels as fk, type TransferCandidate as fl, TransferOwnershipDialog as fm, type TransferOwnershipDialogProps as fn, type TransferOwnershipLabels as fo, type TransferUnavailable as fp, type TransferValues as fq, TypedConfirmField as fr, type TypedConfirmFieldLabels as fs, type TypedConfirmFieldProps as ft, type TypedMatch as fu, USER_ROSTER_SORT_KEYS as fv, type UiKitLabelOverrides as fw, type UiKitLabels as fx, UiKitProvider as fy, type UiKitProviderProps as fz, DEFAULT_FEEDBACK_COMPOSER_LABELS as g, useConfirm as g0, useFilePicker as g1, useKitChartTooltipPlacement as g2, useKitDateFormatter as g3, useKitFileLabels as g4, useKitLabelOverrides as g5, useKitLabels as g6, useKitLink as g7, useKitLocale as g8, useKitWeekStart as g9, useLegalLabels as ga, useUiKitLabels as gb, useUserRosterColumns as gc, userRosterColumns as gd, userRosterSort as ge, type FilePickHandler as gf, formatAccept as gg, judgePick as gh, screenFiles as gi, summariseRejections as gj, LegalPageContext as gk, type LegalPageContextValue as gl, type LegalRefTarget as gm, type LegalSectionSlot as gn, LegalSlotContext as go, LegalText as gp, baseLanguage as gq, resolveLegalRefs as gr, warnLegalOnce as gs, usePromisePending as gt, DEFAULT_FEEDBACK_CONTEXT_LABELS as h, DEFAULT_FEEDBACK_DETAIL_LABELS as i, DEFAULT_FEEDBACK_DIALOG_LABELS as j, DEFAULT_FEEDBACK_MENU_LABELS as k, DEFAULT_FEEDBACK_PAGE_LABELS as l, DEFAULT_FEEDBACK_STATUS_LABELS as m, DEFAULT_FEEDBACK_THREAD_LABELS as n, DEFAULT_FEEDBACK_TOAST_LABELS as o, DEFAULT_MAX_ATTACHMENTS as p, DEFAULT_MAX_ATTACHMENT_BYTES as q, FEEDBACK_AUTHOR_EDITABLE_STATUSES as r, FEEDBACK_AWAITING_STATUSES as s, FEEDBACK_CATEGORY_META as t, FEEDBACK_CATEGORY_ORDER as u, FEEDBACK_PICKABLE_CATEGORIES as v, FEEDBACK_REWORKABLE_STATUSES as w, FEEDBACK_STATUS_META as x, FEEDBACK_STATUS_ORDER as y, FEEDBACK_UNDO_DURATION as z };