@igne-agency/react-web-ui 0.0.0-stage → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +239 -2
  3. package/dist/assets/spinner.js +28 -0
  4. package/dist/base.css +171 -0
  5. package/dist/components/accordion/accordion.css +93 -0
  6. package/dist/components/accordion/accordion.d.ts +46 -0
  7. package/dist/components/accordion/accordion.js +184 -0
  8. package/dist/components/accordion/accordion.module.js +16 -0
  9. package/dist/components/accordion/index.d.ts +1 -0
  10. package/dist/components/accordion/index.js +1 -0
  11. package/dist/components/active-filters/active-filter-describers.d.ts +62 -0
  12. package/dist/components/active-filters/active-filter-describers.js +48 -0
  13. package/dist/components/active-filters/active-filters.d.ts +27 -0
  14. package/dist/components/active-filters/active-filters.js +96 -0
  15. package/dist/components/active-filters/index.d.ts +2 -0
  16. package/dist/components/active-filters/index.js +3 -0
  17. package/dist/components/attachment-tile/attachment-preview.d.ts +33 -0
  18. package/dist/components/attachment-tile/attachment-preview.js +181 -0
  19. package/dist/components/attachment-tile/attachment-tile.css +92 -0
  20. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -0
  21. package/dist/components/attachment-tile/attachment-tile.js +126 -0
  22. package/dist/components/attachment-tile/attachment-tile.module.js +20 -0
  23. package/dist/components/attachment-tile/index.d.ts +2 -0
  24. package/dist/components/attachment-tile/index.js +3 -0
  25. package/dist/components/avatar/avatar.css +48 -0
  26. package/dist/components/avatar/avatar.d.ts +19 -0
  27. package/dist/components/avatar/avatar.js +98 -0
  28. package/dist/components/avatar/avatar.module.js +10 -0
  29. package/dist/components/avatar/index.d.ts +1 -0
  30. package/dist/components/avatar/index.js +1 -0
  31. package/dist/components/avatar-group/avatar-group-context.d.ts +15 -0
  32. package/dist/components/avatar-group/avatar-group-context.js +14 -0
  33. package/dist/components/avatar-group/avatar-group.css +62 -0
  34. package/dist/components/avatar-group/avatar-group.d.ts +96 -0
  35. package/dist/components/avatar-group/avatar-group.js +519 -0
  36. package/dist/components/avatar-group/avatar-group.module.js +20 -0
  37. package/dist/components/avatar-group/index.d.ts +1 -0
  38. package/dist/components/avatar-group/index.js +1 -0
  39. package/dist/components/badge/badge.css +101 -0
  40. package/dist/components/badge/badge.d.ts +17 -0
  41. package/dist/components/badge/badge.js +61 -0
  42. package/dist/components/badge/badge.module.js +4 -0
  43. package/dist/components/badge/index.d.ts +1 -0
  44. package/dist/components/badge/index.js +1 -0
  45. package/dist/components/breadcrumbs/breadcrumbs.css +57 -0
  46. package/dist/components/breadcrumbs/breadcrumbs.d.ts +105 -0
  47. package/dist/components/breadcrumbs/breadcrumbs.js +710 -0
  48. package/dist/components/breadcrumbs/breadcrumbs.module.js +20 -0
  49. package/dist/components/breadcrumbs/index.d.ts +2 -0
  50. package/dist/components/breadcrumbs/index.js +3 -0
  51. package/dist/components/breadcrumbs/use-fold.d.ts +34 -0
  52. package/dist/components/breadcrumbs/use-fold.js +73 -0
  53. package/dist/components/button/button-attributes.d.ts +23 -0
  54. package/dist/components/button/button-attributes.js +17 -0
  55. package/dist/components/button/button.css +111 -0
  56. package/dist/components/button/button.d.ts +47 -0
  57. package/dist/components/button/button.js +210 -0
  58. package/dist/components/button/button.module.js +4 -0
  59. package/dist/components/button/close-button.d.ts +14 -0
  60. package/dist/components/button/close-button.js +30 -0
  61. package/dist/components/button/index.d.ts +1 -0
  62. package/dist/components/button/index.js +1 -0
  63. package/dist/components/checkbox-field/checkbox-field.d.ts +21 -0
  64. package/dist/components/checkbox-field/checkbox-field.js +181 -0
  65. package/dist/components/checkbox-field/checkbox-glyph.d.ts +12 -0
  66. package/dist/components/checkbox-field/checkbox-glyph.js +38 -0
  67. package/dist/components/checkbox-field/checkbox.css +128 -0
  68. package/dist/components/checkbox-field/checkbox.d.ts +14 -0
  69. package/dist/components/checkbox-field/checkbox.js +91 -0
  70. package/dist/components/checkbox-field/checkbox.module.js +14 -0
  71. package/dist/components/checkbox-field/index.d.ts +4 -0
  72. package/dist/components/checkbox-field/index.js +5 -0
  73. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +14 -0
  74. package/dist/components/checkbox-field/tsf-checkbox-field.js +40 -0
  75. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +33 -0
  76. package/dist/components/checkbox-group-field/checkbox-group-field.js +128 -0
  77. package/dist/components/checkbox-group-field/checkbox-group.css +31 -0
  78. package/dist/components/checkbox-group-field/checkbox-group.d.ts +38 -0
  79. package/dist/components/checkbox-group-field/checkbox-group.js +102 -0
  80. package/dist/components/checkbox-group-field/checkbox-group.module.js +8 -0
  81. package/dist/components/checkbox-group-field/index.d.ts +3 -0
  82. package/dist/components/checkbox-group-field/index.js +4 -0
  83. package/dist/components/checkbox-group-field/tsf-checkbox-group-field.d.ts +15 -0
  84. package/dist/components/checkbox-group-field/tsf-checkbox-group-field.js +41 -0
  85. package/dist/components/collapsible/collapsible.css +88 -0
  86. package/dist/components/collapsible/collapsible.d.ts +33 -0
  87. package/dist/components/collapsible/collapsible.js +146 -0
  88. package/dist/components/collapsible/collapsible.module.js +14 -0
  89. package/dist/components/collapsible/index.d.ts +1 -0
  90. package/dist/components/collapsible/index.js +1 -0
  91. package/dist/components/combobox-field/combobox-field.d.ts +66 -0
  92. package/dist/components/combobox-field/combobox-field.js +527 -0
  93. package/dist/components/combobox-field/combobox-items.d.ts +80 -0
  94. package/dist/components/combobox-field/combobox-items.js +27 -0
  95. package/dist/components/combobox-field/combobox-popup-body.d.ts +34 -0
  96. package/dist/components/combobox-field/combobox-popup-body.js +142 -0
  97. package/dist/components/combobox-field/combobox.css +535 -0
  98. package/dist/components/combobox-field/combobox.d.ts +105 -0
  99. package/dist/components/combobox-field/combobox.js +642 -0
  100. package/dist/components/combobox-field/combobox.module.js +46 -0
  101. package/dist/components/combobox-field/index.d.ts +7 -0
  102. package/dist/components/combobox-field/index.js +4 -0
  103. package/dist/components/combobox-field/item-lookups.d.ts +18 -0
  104. package/dist/components/combobox-field/item-lookups.js +8 -0
  105. package/dist/components/combobox-field/react-query.d.ts +15 -0
  106. package/dist/components/combobox-field/react-query.js +78 -0
  107. package/dist/components/combobox-field/selection.d.ts +50 -0
  108. package/dist/components/combobox-field/selection.js +38 -0
  109. package/dist/components/combobox-field/tsf-combobox-field.d.ts +33 -0
  110. package/dist/components/combobox-field/tsf-combobox-field.js +88 -0
  111. package/dist/components/combobox-field/value-state-view.css +21 -0
  112. package/dist/components/combobox-field/value-state-view.d.ts +35 -0
  113. package/dist/components/combobox-field/value-state-view.js +107 -0
  114. package/dist/components/combobox-field/value-state-view.module.js +10 -0
  115. package/dist/components/combobox-field/value-state.d.ts +49 -0
  116. package/dist/components/combobox-field/value-state.js +38 -0
  117. package/dist/components/composer/composer-attachments.d.ts +31 -0
  118. package/dist/components/composer/composer-attachments.js +158 -0
  119. package/dist/components/composer/composer-editor.css +104 -0
  120. package/dist/components/composer/composer-editor.d.ts +15 -0
  121. package/dist/components/composer/composer-editor.js +165 -0
  122. package/dist/components/composer/composer-editor.module.js +14 -0
  123. package/dist/components/composer/composer-mentions.d.ts +10 -0
  124. package/dist/components/composer/composer-mentions.js +294 -0
  125. package/dist/components/composer/composer.context.d.ts +56 -0
  126. package/dist/components/composer/composer.context.js +14 -0
  127. package/dist/components/composer/composer.css +81 -0
  128. package/dist/components/composer/composer.d.ts +77 -0
  129. package/dist/components/composer/composer.handle.d.ts +31 -0
  130. package/dist/components/composer/composer.handle.js +41 -0
  131. package/dist/components/composer/composer.js +428 -0
  132. package/dist/components/composer/composer.module.js +14 -0
  133. package/dist/components/composer/editor-behavior.d.ts +2 -0
  134. package/dist/components/composer/editor-behavior.js +99 -0
  135. package/dist/components/composer/index.d.ts +8 -0
  136. package/dist/components/composer/index.js +3 -0
  137. package/dist/components/composer/mention-node.d.ts +44 -0
  138. package/dist/components/composer/mention-node.js +71 -0
  139. package/dist/components/composer/mention-sources.d.ts +14 -0
  140. package/dist/components/composer/mention-text.css +14 -0
  141. package/dist/components/composer/mention-text.d.ts +66 -0
  142. package/dist/components/composer/mention-text.js +95 -0
  143. package/dist/components/composer/mention-text.module.js +4 -0
  144. package/dist/components/confirm-dialog/confirm-dialog.css +68 -0
  145. package/dist/components/confirm-dialog/confirm-dialog.d.ts +75 -0
  146. package/dist/components/confirm-dialog/confirm-dialog.js +399 -0
  147. package/dist/components/confirm-dialog/confirm-dialog.module.js +14 -0
  148. package/dist/components/confirm-dialog/index.d.ts +1 -0
  149. package/dist/components/confirm-dialog/index.js +1 -0
  150. package/dist/components/conversation/conversation.context.d.ts +9 -0
  151. package/dist/components/conversation/conversation.context.js +4 -0
  152. package/dist/components/conversation/conversation.css +143 -0
  153. package/dist/components/conversation/conversation.d.ts +126 -0
  154. package/dist/components/conversation/conversation.js +761 -0
  155. package/dist/components/conversation/conversation.module.js +34 -0
  156. package/dist/components/conversation/group-messages.d.ts +34 -0
  157. package/dist/components/conversation/group-messages.js +64 -0
  158. package/dist/components/conversation/index.d.ts +4 -0
  159. package/dist/components/conversation/index.js +3 -0
  160. package/dist/components/conversation/moment.d.ts +11 -0
  161. package/dist/components/conversation/moment.js +15 -0
  162. package/dist/components/date-field/date-field.d.ts +45 -0
  163. package/dist/components/date-field/date-field.js +162 -0
  164. package/dist/components/date-field/date-input.d.ts +46 -0
  165. package/dist/components/date-field/date-input.js +109 -0
  166. package/dist/components/date-field/index.d.ts +4 -0
  167. package/dist/components/date-field/index.js +4 -0
  168. package/dist/components/date-field/tsf-date-field.d.ts +14 -0
  169. package/dist/components/date-field/tsf-date-field.js +40 -0
  170. package/dist/components/date-range-field/date-range-field.d.ts +53 -0
  171. package/dist/components/date-range-field/date-range-field.js +167 -0
  172. package/dist/components/date-range-field/date-range-input.d.ts +51 -0
  173. package/dist/components/date-range-field/date-range-input.js +109 -0
  174. package/dist/components/date-range-field/index.d.ts +4 -0
  175. package/dist/components/date-range-field/index.js +5 -0
  176. package/dist/components/date-range-field/tsf-date-range-field.d.ts +15 -0
  177. package/dist/components/date-range-field/tsf-date-range-field.js +58 -0
  178. package/dist/components/detail-list/detail-list.css +32 -0
  179. package/dist/components/detail-list/detail-list.d.ts +41 -0
  180. package/dist/components/detail-list/detail-list.js +163 -0
  181. package/dist/components/detail-list/detail-list.module.js +14 -0
  182. package/dist/components/detail-list/index.d.ts +1 -0
  183. package/dist/components/detail-list/index.js +1 -0
  184. package/dist/components/dialog/dialog.css +78 -0
  185. package/dist/components/dialog/dialog.d.ts +59 -0
  186. package/dist/components/dialog/dialog.js +245 -0
  187. package/dist/components/dialog/dialog.module.js +16 -0
  188. package/dist/components/dialog/index.d.ts +1 -0
  189. package/dist/components/dialog/index.js +1 -0
  190. package/dist/components/divider/divider.css +16 -0
  191. package/dist/components/divider/divider.d.ts +13 -0
  192. package/dist/components/divider/divider.js +47 -0
  193. package/dist/components/divider/divider.module.js +10 -0
  194. package/dist/components/divider/index.d.ts +1 -0
  195. package/dist/components/divider/index.js +1 -0
  196. package/dist/components/drawer/drawer.css +168 -0
  197. package/dist/components/drawer/drawer.d.ts +65 -0
  198. package/dist/components/drawer/drawer.js +219 -0
  199. package/dist/components/drawer/drawer.module.js +16 -0
  200. package/dist/components/drawer/index.d.ts +1 -0
  201. package/dist/components/drawer/index.js +1 -0
  202. package/dist/components/email-field/email-field.d.ts +11 -0
  203. package/dist/components/email-field/email-field.js +45 -0
  204. package/dist/components/email-field/index.d.ts +2 -0
  205. package/dist/components/email-field/index.js +3 -0
  206. package/dist/components/email-field/tsf-email-field.d.ts +13 -0
  207. package/dist/components/email-field/tsf-email-field.js +14 -0
  208. package/dist/components/empty-message/empty-message.d.ts +16 -0
  209. package/dist/components/empty-message/empty-message.js +31 -0
  210. package/dist/components/empty-message/index.d.ts +1 -0
  211. package/dist/components/empty-message/index.js +1 -0
  212. package/dist/components/error-boundary/error-boundary.d.ts +43 -0
  213. package/dist/components/error-boundary/error-boundary.js +60 -0
  214. package/dist/components/error-boundary/index.d.ts +1 -0
  215. package/dist/components/error-boundary/index.js +1 -0
  216. package/dist/components/error-message/error-message.d.ts +15 -0
  217. package/dist/components/error-message/error-message.js +30 -0
  218. package/dist/components/error-message/index.d.ts +1 -0
  219. package/dist/components/error-message/index.js +1 -0
  220. package/dist/components/error-text/error-cascade.d.ts +32 -0
  221. package/dist/components/error-text/error-cascade.js +49 -0
  222. package/dist/components/error-text/error-text.css +27 -0
  223. package/dist/components/error-text/error-text.d.ts +22 -0
  224. package/dist/components/error-text/error-text.js +139 -0
  225. package/dist/components/error-text/error-text.module.js +11 -0
  226. package/dist/components/error-text/index.d.ts +1 -0
  227. package/dist/components/error-text/index.js +1 -0
  228. package/dist/components/field/choice-option.d.ts +11 -0
  229. package/dist/components/field/field-group-context.d.ts +21 -0
  230. package/dist/components/field/field-group-context.js +38 -0
  231. package/dist/components/field/field-state.d.ts +51 -0
  232. package/dist/components/field/field-state.js +28 -0
  233. package/dist/components/field/field.css +69 -0
  234. package/dist/components/field/field.d.ts +186 -0
  235. package/dist/components/field/field.js +477 -0
  236. package/dist/components/field/field.module.js +22 -0
  237. package/dist/components/field/hidden-input.d.ts +8 -0
  238. package/dist/components/field/hidden-input.js +12 -0
  239. package/dist/components/field/index.d.ts +6 -0
  240. package/dist/components/field/index.js +6 -0
  241. package/dist/components/field/input-parts.d.ts +49 -0
  242. package/dist/components/field/input-parts.js +94 -0
  243. package/dist/components/field/options-load.d.ts +54 -0
  244. package/dist/components/field/options-load.js +38 -0
  245. package/dist/components/field/rim-focus.d.ts +10 -0
  246. package/dist/components/field/rim-focus.js +23 -0
  247. package/dist/components/field/use-field-focus.d.ts +37 -0
  248. package/dist/components/field/use-field-focus.js +71 -0
  249. package/dist/components/field/use-field-state.d.ts +32 -0
  250. package/dist/components/field/use-field-state.js +77 -0
  251. package/dist/components/field-placeholder/field-placeholder.css +22 -0
  252. package/dist/components/field-placeholder/field-placeholder.d.ts +10 -0
  253. package/dist/components/field-placeholder/field-placeholder.js +54 -0
  254. package/dist/components/field-placeholder/field-placeholder.module.js +12 -0
  255. package/dist/components/field-placeholder/index.d.ts +1 -0
  256. package/dist/components/field-placeholder/index.js +1 -0
  257. package/dist/components/fieldset/field-group.d.ts +31 -0
  258. package/dist/components/fieldset/field-group.js +102 -0
  259. package/dist/components/fieldset/fieldset-root.d.ts +60 -0
  260. package/dist/components/fieldset/fieldset-root.js +285 -0
  261. package/dist/components/fieldset/fieldset.css +21 -0
  262. package/dist/components/fieldset/fieldset.d.ts +37 -0
  263. package/dist/components/fieldset/fieldset.js +127 -0
  264. package/dist/components/fieldset/fieldset.module.js +8 -0
  265. package/dist/components/fieldset/index.d.ts +4 -0
  266. package/dist/components/fieldset/index.js +4 -0
  267. package/dist/components/fieldset/tsf-field-group.d.ts +21 -0
  268. package/dist/components/fieldset/tsf-field-group.js +58 -0
  269. package/dist/components/file-field/file-field.css +101 -0
  270. package/dist/components/file-field/file-field.d.ts +59 -0
  271. package/dist/components/file-field/file-field.js +296 -0
  272. package/dist/components/file-field/file-field.module.js +10 -0
  273. package/dist/components/file-field/file-input.d.ts +85 -0
  274. package/dist/components/file-field/file-input.js +334 -0
  275. package/dist/components/file-field/file-size.d.ts +21 -0
  276. package/dist/components/file-field/file-size.js +18 -0
  277. package/dist/components/file-field/file-type.d.ts +21 -0
  278. package/dist/components/file-field/file-type.js +28 -0
  279. package/dist/components/file-field/index.d.ts +3 -0
  280. package/dist/components/file-field/index.js +4 -0
  281. package/dist/components/file-field/tsf-file-field.d.ts +14 -0
  282. package/dist/components/file-field/tsf-file-field.js +48 -0
  283. package/dist/components/filter-bar/filter-bar.css +34 -0
  284. package/dist/components/filter-bar/filter-bar.d.ts +87 -0
  285. package/dist/components/filter-bar/filter-bar.js +311 -0
  286. package/dist/components/filter-bar/filter-bar.module.js +14 -0
  287. package/dist/components/filter-bar/index.d.ts +2 -0
  288. package/dist/components/filter-bar/index.js +3 -0
  289. package/dist/components/filter-bar/use-filter-view.d.ts +86 -0
  290. package/dist/components/filter-bar/use-filter-view.js +219 -0
  291. package/dist/components/form/first-invalid.d.ts +10 -0
  292. package/dist/components/form/first-invalid.js +31 -0
  293. package/dist/components/form/form-context.d.ts +23 -0
  294. package/dist/components/form/form-context.js +28 -0
  295. package/dist/components/form/form.css +14 -0
  296. package/dist/components/form/form.d.ts +68 -0
  297. package/dist/components/form/form.js +317 -0
  298. package/dist/components/form/form.module.js +8 -0
  299. package/dist/components/form/index.d.ts +2 -0
  300. package/dist/components/form/index.js +3 -0
  301. package/dist/components/icon/icon.css +9 -0
  302. package/dist/components/icon/icon.d.ts +31 -0
  303. package/dist/components/icon/icon.js +61 -0
  304. package/dist/components/icon/icon.module.js +4 -0
  305. package/dist/components/icon/index.d.ts +1 -0
  306. package/dist/components/icon/index.js +1 -0
  307. package/dist/components/link/index.d.ts +1 -0
  308. package/dist/components/link/index.js +1 -0
  309. package/dist/components/link/link.css +18 -0
  310. package/dist/components/link/link.d.ts +11 -0
  311. package/dist/components/link/link.js +45 -0
  312. package/dist/components/link/link.module.js +4 -0
  313. package/dist/components/link-button/index.d.ts +1 -0
  314. package/dist/components/link-button/index.js +1 -0
  315. package/dist/components/link-button/link-button.d.ts +23 -0
  316. package/dist/components/link-button/link-button.js +80 -0
  317. package/dist/components/loading-message/index.d.ts +1 -0
  318. package/dist/components/loading-message/index.js +1 -0
  319. package/dist/components/loading-message/loading-message.d.ts +22 -0
  320. package/dist/components/loading-message/loading-message.js +55 -0
  321. package/dist/components/locale-provider/index.d.ts +1 -0
  322. package/dist/components/locale-provider/index.js +1 -0
  323. package/dist/components/locale-provider/locale-provider.d.ts +22 -0
  324. package/dist/components/locale-provider/locale-provider.js +50 -0
  325. package/dist/components/menu/index.d.ts +1 -0
  326. package/dist/components/menu/index.js +1 -0
  327. package/dist/components/menu/menu.css +122 -0
  328. package/dist/components/menu/menu.d.ts +78 -0
  329. package/dist/components/menu/menu.js +382 -0
  330. package/dist/components/menu/menu.module.js +20 -0
  331. package/dist/components/nav/index.d.ts +3 -0
  332. package/dist/components/nav/index.js +3 -0
  333. package/dist/components/nav/nav-context.d.ts +17 -0
  334. package/dist/components/nav/nav-context.js +5 -0
  335. package/dist/components/nav/nav-item-view.d.ts +63 -0
  336. package/dist/components/nav/nav-item-view.js +243 -0
  337. package/dist/components/nav/nav.css +310 -0
  338. package/dist/components/nav/nav.d.ts +87 -0
  339. package/dist/components/nav/nav.js +481 -0
  340. package/dist/components/nav/nav.module.js +32 -0
  341. package/dist/components/number-field/index.d.ts +4 -0
  342. package/dist/components/number-field/index.js +5 -0
  343. package/dist/components/number-field/number-field-formats.d.ts +24 -0
  344. package/dist/components/number-field/number-field-formats.js +43 -0
  345. package/dist/components/number-field/number-field.css +116 -0
  346. package/dist/components/number-field/number-field.d.ts +34 -0
  347. package/dist/components/number-field/number-field.js +168 -0
  348. package/dist/components/number-field/number-field.module.js +16 -0
  349. package/dist/components/number-field/number-input.d.ts +76 -0
  350. package/dist/components/number-field/number-input.js +383 -0
  351. package/dist/components/number-field/tsf-number-field.d.ts +14 -0
  352. package/dist/components/number-field/tsf-number-field.js +34 -0
  353. package/dist/components/otp-field/index.d.ts +3 -0
  354. package/dist/components/otp-field/index.js +4 -0
  355. package/dist/components/otp-field/otp-field.css +97 -0
  356. package/dist/components/otp-field/otp-field.d.ts +22 -0
  357. package/dist/components/otp-field/otp-field.js +91 -0
  358. package/dist/components/otp-field/otp-field.module.js +12 -0
  359. package/dist/components/otp-field/otp-input-context.d.ts +27 -0
  360. package/dist/components/otp-field/otp-input-context.js +15 -0
  361. package/dist/components/otp-field/otp-input.d.ts +76 -0
  362. package/dist/components/otp-field/otp-input.js +341 -0
  363. package/dist/components/otp-field/tsf-otp-field.d.ts +14 -0
  364. package/dist/components/otp-field/tsf-otp-field.js +34 -0
  365. package/dist/components/pagination/index.d.ts +1 -0
  366. package/dist/components/pagination/index.js +1 -0
  367. package/dist/components/pagination/pagination-context.d.ts +23 -0
  368. package/dist/components/pagination/pagination-context.js +14 -0
  369. package/dist/components/pagination/pagination.css +24 -0
  370. package/dist/components/pagination/pagination.d.ts +60 -0
  371. package/dist/components/pagination/pagination.js +341 -0
  372. package/dist/components/pagination/pagination.module.js +12 -0
  373. package/dist/components/password-field/index.d.ts +4 -0
  374. package/dist/components/password-field/index.js +4 -0
  375. package/dist/components/password-field/password-field.css +66 -0
  376. package/dist/components/password-field/password-field.d.ts +44 -0
  377. package/dist/components/password-field/password-field.js +227 -0
  378. package/dist/components/password-field/password-field.module.js +20 -0
  379. package/dist/components/password-field/password-strength.d.ts +27 -0
  380. package/dist/components/password-field/password-strength.js +124 -0
  381. package/dist/components/password-field/tsf-password-field.d.ts +14 -0
  382. package/dist/components/password-field/tsf-password-field.js +34 -0
  383. package/dist/components/phone-field/index.d.ts +2 -0
  384. package/dist/components/phone-field/index.js +3 -0
  385. package/dist/components/phone-field/phone-field.d.ts +14 -0
  386. package/dist/components/phone-field/phone-field.js +29 -0
  387. package/dist/components/phone-field/tsf-phone-field.d.ts +14 -0
  388. package/dist/components/phone-field/tsf-phone-field.js +14 -0
  389. package/dist/components/photo-field/index.d.ts +3 -0
  390. package/dist/components/photo-field/index.js +4 -0
  391. package/dist/components/photo-field/photo-field.d.ts +29 -0
  392. package/dist/components/photo-field/photo-field.js +183 -0
  393. package/dist/components/photo-field/photo-input.css +113 -0
  394. package/dist/components/photo-field/photo-input.d.ts +63 -0
  395. package/dist/components/photo-field/photo-input.js +327 -0
  396. package/dist/components/photo-field/photo-input.module.js +18 -0
  397. package/dist/components/photo-field/tsf-photo-field.d.ts +19 -0
  398. package/dist/components/photo-field/tsf-photo-field.js +56 -0
  399. package/dist/components/popover/index.d.ts +1 -0
  400. package/dist/components/popover/index.js +1 -0
  401. package/dist/components/popover/popover.css +120 -0
  402. package/dist/components/popover/popover.d.ts +72 -0
  403. package/dist/components/popover/popover.js +434 -0
  404. package/dist/components/popover/popover.module.js +34 -0
  405. package/dist/components/radio-group-field/index.d.ts +3 -0
  406. package/dist/components/radio-group-field/index.js +4 -0
  407. package/dist/components/radio-group-field/radio-group-field.d.ts +26 -0
  408. package/dist/components/radio-group-field/radio-group-field.js +128 -0
  409. package/dist/components/radio-group-field/radio-group.css +116 -0
  410. package/dist/components/radio-group-field/radio-group.d.ts +38 -0
  411. package/dist/components/radio-group-field/radio-group.js +158 -0
  412. package/dist/components/radio-group-field/radio-group.module.js +12 -0
  413. package/dist/components/radio-group-field/tsf-radio-group-field.d.ts +15 -0
  414. package/dist/components/radio-group-field/tsf-radio-group-field.js +41 -0
  415. package/dist/components/search-field/index.d.ts +2 -0
  416. package/dist/components/search-field/index.js +3 -0
  417. package/dist/components/search-field/search-field.d.ts +17 -0
  418. package/dist/components/search-field/search-field.js +45 -0
  419. package/dist/components/search-field/tsf-search-field.d.ts +14 -0
  420. package/dist/components/search-field/tsf-search-field.js +14 -0
  421. package/dist/components/segmented-control-field/index.d.ts +3 -0
  422. package/dist/components/segmented-control-field/index.js +4 -0
  423. package/dist/components/segmented-control-field/segmented-control-field.d.ts +32 -0
  424. package/dist/components/segmented-control-field/segmented-control-field.js +166 -0
  425. package/dist/components/segmented-control-field/segmented-control.css +203 -0
  426. package/dist/components/segmented-control-field/segmented-control.d.ts +58 -0
  427. package/dist/components/segmented-control-field/segmented-control.js +209 -0
  428. package/dist/components/segmented-control-field/segmented-control.module.js +12 -0
  429. package/dist/components/segmented-control-field/tsf-segmented-control-field.d.ts +15 -0
  430. package/dist/components/segmented-control-field/tsf-segmented-control-field.js +41 -0
  431. package/dist/components/select-field/index.d.ts +3 -0
  432. package/dist/components/select-field/index.js +4 -0
  433. package/dist/components/select-field/select-context.d.ts +20 -0
  434. package/dist/components/select-field/select-context.js +15 -0
  435. package/dist/components/select-field/select-field.d.ts +32 -0
  436. package/dist/components/select-field/select-field.js +312 -0
  437. package/dist/components/select-field/select.css +233 -0
  438. package/dist/components/select-field/select.d.ts +78 -0
  439. package/dist/components/select-field/select.js +529 -0
  440. package/dist/components/select-field/select.module.js +30 -0
  441. package/dist/components/select-field/tsf-select-field.d.ts +15 -0
  442. package/dist/components/select-field/tsf-select-field.js +41 -0
  443. package/dist/components/skeleton/index.d.ts +1 -0
  444. package/dist/components/skeleton/index.js +1 -0
  445. package/dist/components/skeleton/skeleton.css +16 -0
  446. package/dist/components/skeleton/skeleton.d.ts +13 -0
  447. package/dist/components/skeleton/skeleton.js +34 -0
  448. package/dist/components/skeleton/skeleton.module.js +9 -0
  449. package/dist/components/spinner/index.d.ts +1 -0
  450. package/dist/components/spinner/index.js +1 -0
  451. package/dist/components/spinner/spinner.css +7 -0
  452. package/dist/components/spinner/spinner.d.ts +15 -0
  453. package/dist/components/spinner/spinner.js +50 -0
  454. package/dist/components/spinner/spinner.module.js +4 -0
  455. package/dist/components/stale/index.d.ts +1 -0
  456. package/dist/components/stale/index.js +1 -0
  457. package/dist/components/stale/stale.css +60 -0
  458. package/dist/components/stale/stale.d.ts +68 -0
  459. package/dist/components/stale/stale.js +231 -0
  460. package/dist/components/stale/stale.module.js +16 -0
  461. package/dist/components/status-message/index.d.ts +1 -0
  462. package/dist/components/status-message/index.js +1 -0
  463. package/dist/components/status-message/status-message.css +122 -0
  464. package/dist/components/status-message/status-message.d.ts +72 -0
  465. package/dist/components/status-message/status-message.js +182 -0
  466. package/dist/components/status-message/status-message.module.js +16 -0
  467. package/dist/components/status-message/status-preset.d.ts +26 -0
  468. package/dist/components/status-message/status-preset.js +64 -0
  469. package/dist/components/switch-field/index.d.ts +3 -0
  470. package/dist/components/switch-field/index.js +4 -0
  471. package/dist/components/switch-field/switch-field.d.ts +23 -0
  472. package/dist/components/switch-field/switch-field.js +142 -0
  473. package/dist/components/switch-field/switch.css +145 -0
  474. package/dist/components/switch-field/switch.d.ts +35 -0
  475. package/dist/components/switch-field/switch.js +207 -0
  476. package/dist/components/switch-field/switch.module.js +12 -0
  477. package/dist/components/switch-field/tsf-switch-field.d.ts +14 -0
  478. package/dist/components/switch-field/tsf-switch-field.js +40 -0
  479. package/dist/components/tabs/index.d.ts +1 -0
  480. package/dist/components/tabs/index.js +1 -0
  481. package/dist/components/tabs/tabs.css +122 -0
  482. package/dist/components/tabs/tabs.d.ts +57 -0
  483. package/dist/components/tabs/tabs.js +194 -0
  484. package/dist/components/tabs/tabs.module.js +18 -0
  485. package/dist/components/tag/index.d.ts +1 -0
  486. package/dist/components/tag/index.js +1 -0
  487. package/dist/components/tag/tag.css +120 -0
  488. package/dist/components/tag/tag.d.ts +36 -0
  489. package/dist/components/tag/tag.js +124 -0
  490. package/dist/components/tag/tag.module.js +10 -0
  491. package/dist/components/tag-group/index.d.ts +1 -0
  492. package/dist/components/tag-group/index.js +1 -0
  493. package/dist/components/tag-group/tag-group.css +155 -0
  494. package/dist/components/tag-group/tag-group.d.ts +53 -0
  495. package/dist/components/tag-group/tag-group.js +182 -0
  496. package/dist/components/tag-group/tag-group.module.js +12 -0
  497. package/dist/components/text-field/connect-text-preset.d.ts +13 -0
  498. package/dist/components/text-field/connect-text-preset.js +34 -0
  499. package/dist/components/text-field/index.d.ts +5 -0
  500. package/dist/components/text-field/index.js +5 -0
  501. package/dist/components/text-field/text-field.css +171 -0
  502. package/dist/components/text-field/text-field.d.ts +57 -0
  503. package/dist/components/text-field/text-field.js +247 -0
  504. package/dist/components/text-field/text-field.module.js +22 -0
  505. package/dist/components/text-field/text-input-context.d.ts +28 -0
  506. package/dist/components/text-field/text-input-context.js +16 -0
  507. package/dist/components/text-field/text-input.d.ts +79 -0
  508. package/dist/components/text-field/text-input.js +588 -0
  509. package/dist/components/text-field/text-preset.d.ts +7 -0
  510. package/dist/components/text-field/tsf-text-field.d.ts +14 -0
  511. package/dist/components/text-field/tsf-text-field.js +34 -0
  512. package/dist/components/textarea-field/index.d.ts +3 -0
  513. package/dist/components/textarea-field/index.js +4 -0
  514. package/dist/components/textarea-field/textarea-field.css +12 -0
  515. package/dist/components/textarea-field/textarea-field.d.ts +19 -0
  516. package/dist/components/textarea-field/textarea-field.js +168 -0
  517. package/dist/components/textarea-field/textarea-field.module.js +8 -0
  518. package/dist/components/textarea-field/textarea.d.ts +19 -0
  519. package/dist/components/textarea-field/textarea.js +108 -0
  520. package/dist/components/textarea-field/tsf-textarea-field.d.ts +14 -0
  521. package/dist/components/textarea-field/tsf-textarea-field.js +34 -0
  522. package/dist/components/textarea-field/use-autosize.d.ts +11 -0
  523. package/dist/components/textarea-field/use-autosize.js +65 -0
  524. package/dist/components/time-field/index.d.ts +3 -0
  525. package/dist/components/time-field/index.js +4 -0
  526. package/dist/components/time-field/time-field.d.ts +25 -0
  527. package/dist/components/time-field/time-field.js +115 -0
  528. package/dist/components/time-field/time-input.d.ts +30 -0
  529. package/dist/components/time-field/time-input.js +66 -0
  530. package/dist/components/time-field/tsf-time-field.d.ts +14 -0
  531. package/dist/components/time-field/tsf-time-field.js +40 -0
  532. package/dist/components/time-zone-provider/index.d.ts +1 -0
  533. package/dist/components/time-zone-provider/index.js +1 -0
  534. package/dist/components/time-zone-provider/time-zone-provider.d.ts +22 -0
  535. package/dist/components/time-zone-provider/time-zone-provider.js +39 -0
  536. package/dist/components/toast/index.d.ts +2 -0
  537. package/dist/components/toast/index.js +3 -0
  538. package/dist/components/toast/toast-provider.css +99 -0
  539. package/dist/components/toast/toast-provider.d.ts +18 -0
  540. package/dist/components/toast/toast-provider.js +203 -0
  541. package/dist/components/toast/toast-provider.module.js +24 -0
  542. package/dist/components/toast/toast.d.ts +79 -0
  543. package/dist/components/toast/toast.js +68 -0
  544. package/dist/components/toggle-group-field/index.d.ts +3 -0
  545. package/dist/components/toggle-group-field/index.js +4 -0
  546. package/dist/components/toggle-group-field/toggle-group-field.d.ts +32 -0
  547. package/dist/components/toggle-group-field/toggle-group-field.js +158 -0
  548. package/dist/components/toggle-group-field/toggle-group.css +148 -0
  549. package/dist/components/toggle-group-field/toggle-group.d.ts +44 -0
  550. package/dist/components/toggle-group-field/toggle-group.js +156 -0
  551. package/dist/components/toggle-group-field/toggle-group.module.js +8 -0
  552. package/dist/components/toggle-group-field/tsf-toggle-group-field.d.ts +15 -0
  553. package/dist/components/toggle-group-field/tsf-toggle-group-field.js +41 -0
  554. package/dist/components/tooltip/index.d.ts +1 -0
  555. package/dist/components/tooltip/index.js +1 -0
  556. package/dist/components/tooltip/tooltip.css +22 -0
  557. package/dist/components/tooltip/tooltip.d.ts +46 -0
  558. package/dist/components/tooltip/tooltip.js +175 -0
  559. package/dist/components/tooltip/tooltip.module.js +4 -0
  560. package/dist/data-table/data-table-content.d.ts +27 -0
  561. package/dist/data-table/data-table-content.js +311 -0
  562. package/dist/data-table/data-table-context.d.ts +33 -0
  563. package/dist/data-table/data-table-context.js +31 -0
  564. package/dist/data-table/data-table-selection.d.ts +42 -0
  565. package/dist/data-table/data-table-selection.js +299 -0
  566. package/dist/data-table/data-table.css +515 -0
  567. package/dist/data-table/data-table.d.ts +93 -0
  568. package/dist/data-table/data-table.js +215 -0
  569. package/dist/data-table/data-table.module.js +68 -0
  570. package/dist/data-table/index.d.ts +6 -0
  571. package/dist/data-table/index.js +5 -0
  572. package/dist/data-table/resolve-view.d.ts +31 -0
  573. package/dist/data-table/resolve-view.js +37 -0
  574. package/dist/data-table/table-features.d.ts +69 -0
  575. package/dist/data-table/table-features.js +41 -0
  576. package/dist/data-table/use-sticky-offsets.d.ts +21 -0
  577. package/dist/data-table/use-sticky-offsets.js +86 -0
  578. package/dist/data-view/index.d.ts +1 -0
  579. package/dist/data-view/index.js +1 -0
  580. package/dist/data-view/use-data-view.d.ts +83 -0
  581. package/dist/data-view/use-data-view.js +135 -0
  582. package/dist/index.d.ts +70 -0
  583. package/dist/index.js +136 -0
  584. package/dist/lib/calendar/calendar-navigation.d.ts +19 -0
  585. package/dist/lib/calendar/calendar-navigation.js +216 -0
  586. package/dist/lib/calendar/calendar-state.d.ts +19 -0
  587. package/dist/lib/calendar/calendar-state.js +33 -0
  588. package/dist/lib/calendar/calendar-year.d.ts +20 -0
  589. package/dist/lib/calendar/calendar-year.js +342 -0
  590. package/dist/lib/calendar/temporal-value.d.ts +84 -0
  591. package/dist/lib/calendar/temporal-value.js +105 -0
  592. package/dist/lib/calendar/temporal.css +596 -0
  593. package/dist/lib/calendar/temporal.d.ts +134 -0
  594. package/dist/lib/calendar/temporal.js +783 -0
  595. package/dist/lib/calendar/temporal.module.js +80 -0
  596. package/dist/lib/format-bytes.d.ts +10 -0
  597. package/dist/lib/format-bytes.js +22 -0
  598. package/dist/lib/forms/context.d.ts +32 -0
  599. package/dist/lib/forms/context.js +33 -0
  600. package/dist/lib/forms/create-app-form.d.ts +33 -0
  601. package/dist/lib/forms/create-app-form.js +45 -0
  602. package/dist/lib/forms/errors.d.ts +23 -0
  603. package/dist/lib/forms/errors.js +25 -0
  604. package/dist/lib/forms/failed-submit.d.ts +16 -0
  605. package/dist/lib/forms/failed-submit.js +44 -0
  606. package/dist/lib/forms/index.d.ts +4 -0
  607. package/dist/lib/forms/index.js +5 -0
  608. package/dist/lib/forms/use-connected-field.d.ts +30 -0
  609. package/dist/lib/forms/use-connected-field.js +74 -0
  610. package/dist/lib/hooks/index.d.ts +5 -0
  611. package/dist/lib/hooks/index.js +6 -0
  612. package/dist/lib/hooks/use-busy-phase.d.ts +31 -0
  613. package/dist/lib/hooks/use-busy-phase.js +75 -0
  614. package/dist/lib/hooks/use-media-query.d.ts +8 -0
  615. package/dist/lib/hooks/use-media-query.js +34 -0
  616. package/dist/lib/hooks/use-presence.d.ts +25 -0
  617. package/dist/lib/hooks/use-presence.js +155 -0
  618. package/dist/lib/hooks/use-row-selection.d.ts +65 -0
  619. package/dist/lib/hooks/use-row-selection.js +136 -0
  620. package/dist/lib/hooks/use-theme.d.ts +28 -0
  621. package/dist/lib/hooks/use-theme.js +88 -0
  622. package/dist/lib/iso-zoned.d.ts +9 -0
  623. package/dist/lib/iso-zoned.js +19 -0
  624. package/dist/lib/password-strength/password-strength.d.ts +38 -0
  625. package/dist/lib/password-strength/password-strength.js +72 -0
  626. package/dist/lib/popup-edge-padding.d.ts +20 -0
  627. package/dist/lib/popup-edge-padding.js +41 -0
  628. package/dist/lib/sliding-indicator/index.d.ts +1 -0
  629. package/dist/lib/sliding-indicator/use-sliding-indicator.d.ts +27 -0
  630. package/dist/lib/sliding-indicator/use-sliding-indicator.js +84 -0
  631. package/dist/lib/storage.d.ts +21 -0
  632. package/dist/lib/storage.js +0 -0
  633. package/dist/lib/table-storage.d.ts +43 -0
  634. package/dist/lib/table-storage.js +62 -0
  635. package/dist/lib/text-length.d.ts +10 -0
  636. package/dist/lib/text-length.js +15 -0
  637. package/dist/lib/tone.d.ts +14 -0
  638. package/dist/lib/tone.js +0 -0
  639. package/dist/lib/unsaved-changes/before-unload.d.ts +8 -0
  640. package/dist/lib/unsaved-changes/before-unload.js +37 -0
  641. package/dist/lib/unsaved-changes/index.d.ts +4 -0
  642. package/dist/lib/unsaved-changes/index.js +5 -0
  643. package/dist/lib/unsaved-changes/leave-guard.d.ts +80 -0
  644. package/dist/lib/unsaved-changes/leave-guard.js +170 -0
  645. package/dist/lib/unsaved-changes/policy.d.ts +24 -0
  646. package/dist/lib/unsaved-changes/policy.js +17 -0
  647. package/dist/lib/unsaved-changes/registry.d.ts +36 -0
  648. package/dist/lib/unsaved-changes/registry.js +78 -0
  649. package/dist/lib/unsaved-changes/tanstack-router.d.ts +12 -0
  650. package/dist/lib/unsaved-changes/tanstack-router.js +50 -0
  651. package/dist/lib/use-infinite-scroll.d.ts +31 -0
  652. package/dist/lib/use-infinite-scroll.js +78 -0
  653. package/dist/lib/use-intent.d.ts +17 -0
  654. package/dist/lib/use-intent.js +77 -0
  655. package/dist/lib/use-required-context.d.ts +9 -0
  656. package/dist/lib/use-required-context.js +15 -0
  657. package/dist/terrazzo/index.d.ts +39 -0
  658. package/dist/terrazzo/index.js +93 -0
  659. package/dist/tokens.css +1102 -0
  660. package/dist/vendor/@material-design-icons/svg/outlined/add.js +12 -0
  661. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +12 -0
  662. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +12 -0
  663. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +12 -0
  664. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +12 -0
  665. package/dist/vendor/@material-design-icons/svg/outlined/block.js +12 -0
  666. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +12 -0
  667. package/dist/vendor/@material-design-icons/svg/outlined/check.js +12 -0
  668. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +12 -0
  669. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +12 -0
  670. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +12 -0
  671. package/dist/vendor/@material-design-icons/svg/outlined/close.js +12 -0
  672. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +12 -0
  673. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +12 -0
  674. package/dist/vendor/@material-design-icons/svg/outlined/description.js +12 -0
  675. package/dist/vendor/@material-design-icons/svg/outlined/download.js +12 -0
  676. package/dist/vendor/@material-design-icons/svg/outlined/error.js +12 -0
  677. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +12 -0
  678. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +12 -0
  679. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +12 -0
  680. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +12 -0
  681. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +12 -0
  682. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +12 -0
  683. package/dist/vendor/@material-design-icons/svg/outlined/info.js +12 -0
  684. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +12 -0
  685. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +12 -0
  686. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +12 -0
  687. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +12 -0
  688. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +12 -0
  689. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +12 -0
  690. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +12 -0
  691. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +12 -0
  692. package/dist/vendor/@material-design-icons/svg/outlined/search.js +12 -0
  693. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +12 -0
  694. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +12 -0
  695. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +12 -0
  696. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +12 -0
  697. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +12 -0
  698. package/package.json +456 -5
  699. package/tokens/dark.tokens.json +329 -0
  700. package/tokens/kit.resolver.json +38 -0
  701. package/tokens/ref.tokens.json +1436 -0
  702. package/tokens/sys.tokens.json +1267 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * How far the options of a select or combobox have loaded. A failure that
3
+ * trying again can clear carries a `retry`.
4
+ */
5
+ export type OptionsLoad = Readonly<{
6
+ status: "pending" | "success";
7
+ }> | Readonly<{
8
+ status: "error";
9
+ retry?: () => void;
10
+ }>;
11
+ /** The copy a select's or combobox's popup shows about its options. */
12
+ export type OptionsLoadLabels = Readonly<{
13
+ /** Said while the options load, such as "Loading options…". */
14
+ loadingLabel: string;
15
+ /** Said when the options failed to load and a retry can help. */
16
+ loadFailedLabel: string;
17
+ /** Said when the options failed to load and trying again won't help. */
18
+ loadBrokenLabel: string;
19
+ /** The retry button's text, such as "Try again". */
20
+ retryLabel: string;
21
+ /** Said when there are no options at all. */
22
+ noOptionsLabel: string;
23
+ }>;
24
+ /**
25
+ * What a popup says about a load that is pending or failed; nothing once the
26
+ * options are there.
27
+ *
28
+ * @example
29
+ * optionsLoadMessage({ status: "pending" }, labels); // labels.loadingLabel
30
+ */
31
+ export declare const optionsLoadMessage: (load: OptionsLoad, labels: OptionsLoadLabels) => string | undefined;
32
+ /**
33
+ * The load of options that are all there from the start.
34
+ *
35
+ * @example
36
+ * const load = source ?? itemsLoad ?? OPTIONS_LOADED;
37
+ */
38
+ export declare const OPTIONS_LOADED: OptionsLoad;
39
+ /** The part of a query `optionsLoad` reads, such as a TanStack Query result. */
40
+ export type OptionsQuery = Readonly<{
41
+ data: unknown;
42
+ error: unknown;
43
+ isFetching: boolean;
44
+ refetch: () => Promise<unknown>;
45
+ }>;
46
+ /**
47
+ * The options load of a query: loaded once it holds data, pending while it
48
+ * fetches without any, failed otherwise. A failure offers a retry when
49
+ * `retryable` says trying again can help, which by default is always.
50
+ *
51
+ * @example
52
+ * <SelectField options={options} load={optionsLoad(query, isRetryable)} … />
53
+ */
54
+ export declare const optionsLoad: (query: OptionsQuery, retryable?: (error: unknown) => boolean) => OptionsLoad;
@@ -0,0 +1,38 @@
1
+ // src/components/field/options-load.ts
2
+ /**
3
+ * What a popup says about a load that is pending or failed; nothing once the
4
+ * options are there.
5
+ *
6
+ * @example
7
+ * optionsLoadMessage({ status: "pending" }, labels); // labels.loadingLabel
8
+ */
9
+ var optionsLoadMessage = (load, labels) => {
10
+ if (load.status === "pending") return labels.loadingLabel;
11
+ if (load.status === "error") return load.retry === void 0 ? labels.loadBrokenLabel : labels.loadFailedLabel;
12
+ };
13
+ /**
14
+ * The load of options that are all there from the start.
15
+ *
16
+ * @example
17
+ * const load = source ?? itemsLoad ?? OPTIONS_LOADED;
18
+ */
19
+ var OPTIONS_LOADED = { status: "success" };
20
+ /**
21
+ * The options load of a query: loaded once it holds data, pending while it
22
+ * fetches without any, failed otherwise. A failure offers a retry when
23
+ * `retryable` says trying again can help, which by default is always.
24
+ *
25
+ * @example
26
+ * <SelectField options={options} load={optionsLoad(query, isRetryable)} … />
27
+ */
28
+ var optionsLoad = (query, retryable = () => true) => {
29
+ if (query.data !== void 0) return { status: "success" };
30
+ if (query.isFetching || query.error === null) return { status: "pending" };
31
+ return retryable(query.error) ? {
32
+ status: "error",
33
+ retry: () => {
34
+ query.refetch();
35
+ }
36
+ } : { status: "error" };
37
+ };
38
+ export { OPTIONS_LOADED, optionsLoad, optionsLoadMessage };
@@ -0,0 +1,10 @@
1
+ import type { MouseEvent } from "react";
2
+ /**
3
+ * Focuses a field group's control when the press lands on the group's own box —
4
+ * its padding, or an inlay that takes no pointer events. Presses that reach the
5
+ * control, an `inlay-action` or any other interactive part are left alone.
6
+ *
7
+ * @example
8
+ * <div className={style.group} onMouseDown={focusControlOnRim} />
9
+ */
10
+ export declare const focusControlOnRim: (event: MouseEvent<HTMLElement>) => void;
@@ -0,0 +1,23 @@
1
+ // src/components/field/rim-focus.ts
2
+ var CONTROL_SELECTOR = [
3
+ "input:not([type=\"hidden\"])",
4
+ "textarea",
5
+ "[role=\"spinbutton\"]",
6
+ "[contenteditable=\"true\"]"
7
+ ].join(",");
8
+ /**
9
+ * Focuses a field group's control when the press lands on the group's own box —
10
+ * its padding, or an inlay that takes no pointer events. Presses that reach the
11
+ * control, an `inlay-action` or any other interactive part are left alone.
12
+ *
13
+ * @example
14
+ * <div className={style.group} onMouseDown={focusControlOnRim} />
15
+ */
16
+ var focusControlOnRim = (event) => {
17
+ if (event.target !== event.currentTarget) return;
18
+ const control = event.currentTarget.querySelector(CONTROL_SELECTOR);
19
+ if (control === null || control.matches(":disabled")) return;
20
+ event.preventDefault();
21
+ control.focus();
22
+ };
23
+ export { focusControlOnRim };
@@ -0,0 +1,37 @@
1
+ import { type FocusEvent } from "react";
2
+ import type { FieldState } from "./field-state.ts";
3
+ export type FieldFocusHandlers<TEvent extends FocusEvent<HTMLElement>> = Readonly<{
4
+ onFocus?: (event: TEvent) => void;
5
+ onBlur?: (event: TEvent) => void;
6
+ }>;
7
+ export type FieldFocus<TEvent extends FocusEvent<HTMLElement> = FocusEvent<HTMLElement>> = Readonly<{
8
+ /** Focus is on this element or inside it, however it got there. */
9
+ focused: boolean;
10
+ /** That focus is the keyboard's, so it has earned a ring. */
11
+ focusVisible: boolean;
12
+ /** Spread onto the element whose focus is being tracked, after its own props. */
13
+ props: Readonly<{
14
+ onFocus: (event: TEvent) => void;
15
+ onBlur: (event: TEvent) => void;
16
+ }>;
17
+ }>;
18
+ /**
19
+ * Live focus laid over a projected field state. A caller can add focus that
20
+ * lands elsewhere in the field, such as a popup this element does not contain;
21
+ * the ring stays the element's own.
22
+ *
23
+ * @example
24
+ * fieldStateAttributes(withFieldFocus(state, useFieldFocus(props)));
25
+ */
26
+ export declare const withFieldFocus: (state: FieldState, focus: Pick<FieldFocus, "focused" | "focusVisible">) => FieldState;
27
+ /**
28
+ * Tracks focus for a control that has to publish it as `data-focused` and
29
+ * `data-focus-visible` rather than leave it to a selector. React's focus events
30
+ * bubble, so this reads focus inside a group as well as on a bare control. The
31
+ * handlers passed in still run, so `props` is spread last.
32
+ *
33
+ * @example
34
+ * const focus = useFieldFocus(props);
35
+ * <div {...props} {...focus.props} />
36
+ */
37
+ export declare const useFieldFocus: <TEvent extends FocusEvent<HTMLElement> = FocusEvent<HTMLElement>>(handlers?: FieldFocusHandlers<TEvent>) => FieldFocus<TEvent>;
@@ -0,0 +1,71 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { useState } from "react";
3
+ // src/components/field/use-field-focus.ts
4
+ /**
5
+ * Live focus laid over a projected field state. A caller can add focus that
6
+ * lands elsewhere in the field, such as a popup this element does not contain;
7
+ * the ring stays the element's own.
8
+ *
9
+ * @example
10
+ * fieldStateAttributes(withFieldFocus(state, useFieldFocus(props)));
11
+ */
12
+ var withFieldFocus = (state, focus) => ({
13
+ ...state,
14
+ focused: state.focused === true || focus.focused,
15
+ focusVisible: focus.focusVisible
16
+ });
17
+ /**
18
+ * Tracks focus for a control that has to publish it as `data-focused` and
19
+ * `data-focus-visible` rather than leave it to a selector. React's focus events
20
+ * bubble, so this reads focus inside a group as well as on a bare control. The
21
+ * handlers passed in still run, so `props` is spread last.
22
+ *
23
+ * @example
24
+ * const focus = useFieldFocus(props);
25
+ * <div {...props} {...focus.props} />
26
+ */
27
+ var useFieldFocus = (handlers) => {
28
+ const $ = c(6);
29
+ let t0;
30
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
31
+ t0 = {
32
+ focused: false,
33
+ focusVisible: false
34
+ };
35
+ $[0] = t0;
36
+ } else t0 = $[0];
37
+ const [focus, setFocus] = useState(t0);
38
+ let t1;
39
+ if ($[1] !== handlers) {
40
+ t1 = {
41
+ onFocus: (event) => {
42
+ setFocus({
43
+ focused: true,
44
+ focusVisible: event.target.matches(":focus-visible")
45
+ });
46
+ handlers?.onFocus?.(event);
47
+ },
48
+ onBlur: (event_0) => {
49
+ if (!(event_0.relatedTarget instanceof Node && event_0.currentTarget.contains(event_0.relatedTarget))) setFocus({
50
+ focused: false,
51
+ focusVisible: false
52
+ });
53
+ handlers?.onBlur?.(event_0);
54
+ }
55
+ };
56
+ $[1] = handlers;
57
+ $[2] = t1;
58
+ } else t1 = $[2];
59
+ let t2;
60
+ if ($[3] !== focus || $[4] !== t1) {
61
+ t2 = {
62
+ ...focus,
63
+ props: t1
64
+ };
65
+ $[3] = focus;
66
+ $[4] = t1;
67
+ $[5] = t2;
68
+ } else t2 = $[5];
69
+ return t2;
70
+ };
71
+ export { useFieldFocus, withFieldFocus };
@@ -0,0 +1,32 @@
1
+ import { type BusyPhase } from "../../lib/hooks/use-busy-phase.ts";
2
+ import type { FieldProps } from "./field.tsx";
3
+ import type { FieldState } from "./field-state.ts";
4
+ /** What `useFieldState` reads a field's states from. */
5
+ export type FieldStateOptions = Pick<FieldProps, "errors" | "requiredness" | "dirty" | "touched" | "pending"> & Readonly<{
6
+ disabled?: boolean;
7
+ readOnly?: boolean;
8
+ /** The control holds a value. */
9
+ filled?: boolean;
10
+ /** States no option here owns, projected over the ones that do. */
11
+ state?: FieldState;
12
+ }>;
13
+ /** A field's states, read from their owners. */
14
+ export type FieldStateProjection = Readonly<{
15
+ /** Every state the field projects, for `fieldStateAttributes` and its parts. */
16
+ state: FieldState;
17
+ /** The field has an error to show. */
18
+ invalid: boolean;
19
+ /** Disabled by its own prop or by a busy `Form.Root`. */
20
+ disabled: boolean;
21
+ /** How long `pending` has lasted; a `Pending` part mounts once it leaves `fresh`. */
22
+ phase: BusyPhase;
23
+ }>;
24
+ /**
25
+ * A field's states, each from its owner: invalid from its errors, disabled
26
+ * by its own prop or a busy `Form.Root`, and pending once the wait has lasted
27
+ * long enough to show.
28
+ *
29
+ * @example
30
+ * const { state, invalid, disabled, phase } = useFieldState({ errors, pending, disabled, filled: value !== "" });
31
+ */
32
+ export declare const useFieldState: ({ errors, requiredness, dirty, touched, pending, disabled: ownDisabled, readOnly, filled, state, }: FieldStateOptions) => FieldStateProjection;
@@ -0,0 +1,77 @@
1
+ import { normalizeFieldErrors } from "../../lib/forms/errors.js";
2
+ import { useBusyPhase } from "../../lib/hooks/use-busy-phase.js";
3
+ import { useFormDisabled } from "../form/form-context.js";
4
+ import { c } from "react/compiler-runtime";
5
+ // src/components/field/use-field-state.ts
6
+ /**
7
+ * A field's states, each from its owner: invalid from its errors, disabled
8
+ * by its own prop or a busy `Form.Root`, and pending once the wait has lasted
9
+ * long enough to show.
10
+ *
11
+ * @example
12
+ * const { state, invalid, disabled, phase } = useFieldState({ errors, pending, disabled, filled: value !== "" });
13
+ */
14
+ var useFieldState = (t0) => {
15
+ const $ = c(19);
16
+ const { errors, requiredness, dirty, touched, pending: t1, disabled: t2, readOnly, filled, state } = t0;
17
+ const pending = t1 === void 0 ? false : t1;
18
+ const ownDisabled = t2 === void 0 ? false : t2;
19
+ const formDisabled = useFormDisabled();
20
+ let t3;
21
+ if ($[0] !== pending) {
22
+ t3 = { busy: pending };
23
+ $[0] = pending;
24
+ $[1] = t3;
25
+ } else t3 = $[1];
26
+ const phase = useBusyPhase(t3);
27
+ let t4;
28
+ if ($[2] !== errors) {
29
+ t4 = normalizeFieldErrors(errors);
30
+ $[2] = errors;
31
+ $[3] = t4;
32
+ } else t4 = $[3];
33
+ const invalid = t4.length > 0;
34
+ const disabled = ownDisabled || formDisabled;
35
+ const t5 = invalid ? "invalid" : void 0;
36
+ const t6 = phase !== "fresh";
37
+ let t7;
38
+ if ($[4] !== dirty || $[5] !== disabled || $[6] !== filled || $[7] !== readOnly || $[8] !== requiredness || $[9] !== state || $[10] !== t5 || $[11] !== t6 || $[12] !== touched) {
39
+ t7 = {
40
+ disabled,
41
+ readonly: readOnly,
42
+ requiredness,
43
+ validity: t5,
44
+ dirty,
45
+ touched,
46
+ filled,
47
+ pending: t6,
48
+ ...state
49
+ };
50
+ $[4] = dirty;
51
+ $[5] = disabled;
52
+ $[6] = filled;
53
+ $[7] = readOnly;
54
+ $[8] = requiredness;
55
+ $[9] = state;
56
+ $[10] = t5;
57
+ $[11] = t6;
58
+ $[12] = touched;
59
+ $[13] = t7;
60
+ } else t7 = $[13];
61
+ let t8;
62
+ if ($[14] !== disabled || $[15] !== invalid || $[16] !== phase || $[17] !== t7) {
63
+ t8 = {
64
+ state: t7,
65
+ invalid,
66
+ disabled,
67
+ phase
68
+ };
69
+ $[14] = disabled;
70
+ $[15] = invalid;
71
+ $[16] = phase;
72
+ $[17] = t7;
73
+ $[18] = t8;
74
+ } else t8 = $[18];
75
+ return t8;
76
+ };
77
+ export { useFieldState };
@@ -0,0 +1,22 @@
1
+ @layer kit.reset, kit.base, kit.components;
2
+ @layer kit.components {
3
+ ._placeholder_ayddm_3 {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--field-gap, var(--sys-unit-4));
7
+ inline-size: 100%;
8
+ }
9
+ ._label_ayddm_9 {
10
+ inline-size: var(--field-placeholder-label-size, var(--sys-unit-56));
11
+ block-size: 1lh;
12
+ }
13
+ ._controls_ayddm_13 {
14
+ display: flex;
15
+ gap: var(--sys-unit-4);
16
+ inline-size: 100%;
17
+ }
18
+ ._control_ayddm_13 {
19
+ flex: 1;
20
+ block-size: calc(1lh + 2 * var(--sys-unit-6) + 2 * 1px);
21
+ }
22
+ }
@@ -0,0 +1,10 @@
1
+ import { type ReactNode } from "react";
2
+ /**
3
+ * A field-shaped placeholder, standing in for a control whose code is still on
4
+ * its way. Holds the label and control heights so the form does not jump when
5
+ * the real field arrives.
6
+ *
7
+ * @example
8
+ * <Suspense fallback={<FieldPlaceholder />}>{field}</Suspense>
9
+ */
10
+ export declare const FieldPlaceholder: () => ReactNode;
@@ -0,0 +1,54 @@
1
+ import { Skeleton } from "../skeleton/skeleton.js";
2
+ import field_placeholder_module_default from "./field-placeholder.module.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ // src/components/field-placeholder/field-placeholder.tsx
7
+ var SHAPES = ["single", "split"];
8
+ var shapeIndex = (seed, count) => {
9
+ let hash = 0;
10
+ for (const character of seed) hash = (hash * 31 + character.charCodeAt(0)) % 1000003;
11
+ return hash % count;
12
+ };
13
+ /**
14
+ * A field-shaped placeholder, standing in for a control whose code is still on
15
+ * its way. Holds the label and control heights so the form does not jump when
16
+ * the real field arrives.
17
+ *
18
+ * @example
19
+ * <Suspense fallback={<FieldPlaceholder />}>{field}</Suspense>
20
+ */
21
+ var FieldPlaceholder = () => {
22
+ const $ = c(6);
23
+ const shape = SHAPES[shapeIndex(useId(), SHAPES.length)] ?? "single";
24
+ let t0;
25
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
26
+ t0 = /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.label });
27
+ $[0] = t0;
28
+ } else t0 = $[0];
29
+ let t1;
30
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
31
+ t1 = /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.control });
32
+ $[1] = t1;
33
+ } else t1 = $[1];
34
+ let t2;
35
+ if ($[2] !== shape) {
36
+ t2 = shape === "split" && /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.control });
37
+ $[2] = shape;
38
+ $[3] = t2;
39
+ } else t2 = $[3];
40
+ let t3;
41
+ if ($[4] !== t2) {
42
+ t3 = /* @__PURE__ */ jsxs("div", {
43
+ className: field_placeholder_module_default.placeholder,
44
+ children: [t0, /* @__PURE__ */ jsxs("div", {
45
+ className: field_placeholder_module_default.controls,
46
+ children: [t1, t2]
47
+ })]
48
+ });
49
+ $[4] = t2;
50
+ $[5] = t3;
51
+ } else t3 = $[5];
52
+ return t3;
53
+ };
54
+ export { FieldPlaceholder };
@@ -0,0 +1,12 @@
1
+ import './field-placeholder.css';// src/components/field-placeholder/field-placeholder.module.scss
2
+ var placeholder = "_placeholder_ayddm_3";
3
+ var label = "_label_ayddm_9";
4
+ var controls = "_controls_ayddm_13";
5
+ var control = "_control_ayddm_13";
6
+ var field_placeholder_module_default = {
7
+ placeholder,
8
+ label,
9
+ controls,
10
+ control
11
+ };
12
+ export { control, controls, field_placeholder_module_default as default, label, placeholder };
@@ -0,0 +1 @@
1
+ export * from "./field-placeholder.tsx";
@@ -0,0 +1 @@
1
+ export { FieldPlaceholder } from "./field-placeholder.js";
@@ -0,0 +1,31 @@
1
+ import { type ReactNode } from "react";
2
+ import type { FieldProps } from "../field/index.ts";
3
+ import type { FieldsetErrorFormat, FieldsetMember } from "./fieldset-root.tsx";
4
+ export type FieldGroupProps = Pick<FieldProps, "requiredness" | "optionalLabel"> & Readonly<{
5
+ /** The visible name of the group, such as "Address". */
6
+ legend: string;
7
+ /** Help about the group as a whole, under its legend. */
8
+ description?: ReactNode;
9
+ /** Errors about the group as a whole, such as a failed address lookup, in any shape `normalizeFieldErrors` accepts. */
10
+ errors?: unknown;
11
+ /** The fields whose errors the group shows in its own error instead of under each field. */
12
+ members?: readonly FieldsetMember[];
13
+ /** Turns a member's message into its line. Left out, the line is the message. */
14
+ formatError?: FieldsetErrorFormat;
15
+ className?: string;
16
+ /** The fields, laid out side by side. */
17
+ children: ReactNode;
18
+ }>;
19
+ /**
20
+ * Related fields side by side under one legend, with one error for all of
21
+ * them: the lines of its `members`, each tied to its field's control, then its
22
+ * own `errors`. Every field's label, control, description and error line up
23
+ * with its neighbours'. The `--field-group-columns` knob sets the columns.
24
+ *
25
+ * @example
26
+ * <FieldGroup legend="Address" optionalLabel="optional" members={members}>
27
+ * <TextField label="Postal code" … />
28
+ * <TextField label="House number" … />
29
+ * </FieldGroup>
30
+ */
31
+ export declare const FieldGroup: ({ legend, description, errors, requiredness, optionalLabel, members, formatError, className, children, }: FieldGroupProps) => ReactNode;
@@ -0,0 +1,102 @@
1
+ import { normalizeFieldErrors } from "../../lib/forms/errors.js";
2
+ import { Fieldset } from "./fieldset.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { useId } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ // src/components/fieldset/field-group.tsx
7
+ /**
8
+ * Related fields side by side under one legend, with one error for all of
9
+ * them: the lines of its `members`, each tied to its field's control, then its
10
+ * own `errors`. Every field's label, control, description and error line up
11
+ * with its neighbours'. The `--field-group-columns` knob sets the columns.
12
+ *
13
+ * @example
14
+ * <FieldGroup legend="Address" optionalLabel="optional" members={members}>
15
+ * <TextField label="Postal code" … />
16
+ * <TextField label="House number" … />
17
+ * </FieldGroup>
18
+ */
19
+ var FieldGroup = (t0) => {
20
+ const $ = c(27);
21
+ const { legend, description, errors, requiredness, optionalLabel, members, formatError, className, children } = t0;
22
+ const id = useId();
23
+ const descriptionId = `${id}description`;
24
+ const errorId = `${id}error`;
25
+ let t1;
26
+ if ($[0] !== description || $[1] !== descriptionId || $[2] !== errorId || $[3] !== errors) {
27
+ t1 = [description === void 0 ? "" : descriptionId, normalizeFieldErrors(errors).length === 0 ? "" : errorId].filter(_temp).join(" ") || void 0;
28
+ $[0] = description;
29
+ $[1] = descriptionId;
30
+ $[2] = errorId;
31
+ $[3] = errors;
32
+ $[4] = t1;
33
+ } else t1 = $[4];
34
+ const describedBy = t1;
35
+ let t2;
36
+ if ($[5] !== legend || $[6] !== optionalLabel || $[7] !== requiredness) {
37
+ t2 = /* @__PURE__ */ jsx(Fieldset.Legend, {
38
+ requiredness,
39
+ optionalLabel,
40
+ children: legend
41
+ });
42
+ $[5] = legend;
43
+ $[6] = optionalLabel;
44
+ $[7] = requiredness;
45
+ $[8] = t2;
46
+ } else t2 = $[8];
47
+ let t3;
48
+ if ($[9] !== description || $[10] !== descriptionId) {
49
+ t3 = /* @__PURE__ */ jsx(Fieldset.Description, {
50
+ id: descriptionId,
51
+ children: description
52
+ });
53
+ $[9] = description;
54
+ $[10] = descriptionId;
55
+ $[11] = t3;
56
+ } else t3 = $[11];
57
+ let t4;
58
+ if ($[12] !== children) {
59
+ t4 = /* @__PURE__ */ jsx(Fieldset.Fields, { children });
60
+ $[12] = children;
61
+ $[13] = t4;
62
+ } else t4 = $[13];
63
+ let t5;
64
+ if ($[14] !== errorId) {
65
+ t5 = /* @__PURE__ */ jsx(Fieldset.Error, { id: errorId });
66
+ $[14] = errorId;
67
+ $[15] = t5;
68
+ } else t5 = $[15];
69
+ let t6;
70
+ if ($[16] !== className || $[17] !== describedBy || $[18] !== errors || $[19] !== formatError || $[20] !== members || $[21] !== requiredness || $[22] !== t2 || $[23] !== t3 || $[24] !== t4 || $[25] !== t5) {
71
+ t6 = /* @__PURE__ */ jsxs(Fieldset.Root, {
72
+ errors,
73
+ requiredness,
74
+ members,
75
+ formatError,
76
+ "aria-describedby": describedBy,
77
+ className,
78
+ children: [
79
+ t2,
80
+ t3,
81
+ t4,
82
+ t5
83
+ ]
84
+ });
85
+ $[16] = className;
86
+ $[17] = describedBy;
87
+ $[18] = errors;
88
+ $[19] = formatError;
89
+ $[20] = members;
90
+ $[21] = requiredness;
91
+ $[22] = t2;
92
+ $[23] = t3;
93
+ $[24] = t4;
94
+ $[25] = t5;
95
+ $[26] = t6;
96
+ } else t6 = $[26];
97
+ return t6;
98
+ };
99
+ function _temp(part) {
100
+ return part !== "";
101
+ }
102
+ export { FieldGroup };
@@ -0,0 +1,60 @@
1
+ import { type ReactNode } from "react";
2
+ import { type FieldLabelProps, type FieldProps, type FieldRootProps } from "../field/field.tsx";
3
+ /** A field whose errors a fieldset collects, by the name of the TanStack Form field it renders in. */
4
+ export type FieldsetMember = Readonly<{
5
+ name: string;
6
+ /** Errors in any shape `normalizeFieldErrors` accepts. */
7
+ errors: unknown;
8
+ }>;
9
+ /** The field a collected line belongs to, as `formatError` receives it. */
10
+ export type FieldsetMemberField = Readonly<{
11
+ name: string;
12
+ /** The field's label, once the field has told the group. */
13
+ label: string | undefined;
14
+ }>;
15
+ /** Turns one of a member's messages into the line the group shows for it. */
16
+ export type FieldsetErrorFormat = (field: FieldsetMemberField, message: string) => ReactNode;
17
+ /** One line of a fieldset's error. */
18
+ export type FieldsetLine = Readonly<{
19
+ id: string;
20
+ /** The member the line belongs to, or `undefined` for a line about the group. */
21
+ name: string | undefined;
22
+ content: ReactNode;
23
+ }>;
24
+ /** What a fieldset's root hands its parts. */
25
+ export type FieldsetContextValue = Readonly<{
26
+ /** The members' lines in member order, then the group's own. */
27
+ lines: readonly FieldsetLine[];
28
+ }>;
29
+ /**
30
+ * The lines of the surrounding fieldset's error.
31
+ *
32
+ * @example
33
+ * const { lines } = useFieldsetContext();
34
+ */
35
+ export declare const useFieldsetContext: () => FieldsetContextValue;
36
+ /** What the root of a fieldset takes, for a group of choices or a group of fields. */
37
+ export type FieldsetRootProps = FieldRootProps & Pick<FieldProps, "errors" | "requiredness" | "dirty" | "touched" | "pending"> & Readonly<{
38
+ /** A choice is made. */
39
+ filled?: boolean;
40
+ readOnly?: boolean;
41
+ /** The fields whose errors the group shows in its own error instead of under each field. */
42
+ members?: readonly FieldsetMember[];
43
+ /** Turns a member's message into its line. Left out, the line is the message. */
44
+ formatError?: FieldsetErrorFormat;
45
+ }>;
46
+ /**
47
+ * A field rendered as a fieldset, named by its legend: a group of choices, or a
48
+ * group of fields that shows the errors of its `members` in one place.
49
+ *
50
+ * @example
51
+ * <FieldsetRoot filled={kind !== null}>…</FieldsetRoot>
52
+ */
53
+ export declare const FieldsetRoot: ({ errors, requiredness, dirty, touched, pending, filled, readOnly, disabled, members, formatError, children, ...props }: FieldsetRootProps) => ReactNode;
54
+ /**
55
+ * The legend that names a {@link FieldsetRoot}.
56
+ *
57
+ * @example
58
+ * <FieldsetLegend optionalLabel="optional">Kind</FieldsetLegend>
59
+ */
60
+ export declare const FieldsetLegend: (props: FieldLabelProps) => ReactNode;