@krelborn/stylesui 0.0.0-stage → 0.8.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 (359) hide show
  1. package/LICENSE +74 -0
  2. package/README.md +129 -2
  3. package/dist/accessibility/RequiredAccessibleName.d.ts +26 -0
  4. package/dist/accessibility/idSegment.d.ts +7 -0
  5. package/dist/accessibility/idSegment.js +6 -0
  6. package/dist/accessibility/index.d.ts +2 -0
  7. package/dist/collections/index.d.ts +4 -0
  8. package/dist/collections/targetIndexForKey.d.ts +45 -0
  9. package/dist/collections/targetIndexForKey.js +17 -0
  10. package/dist/collections/typeAhead.d.ts +43 -0
  11. package/dist/collections/typeAhead.js +19 -0
  12. package/dist/components/Alert/Alert.css +1 -0
  13. package/dist/components/Alert/Alert.d.ts +47 -0
  14. package/dist/components/Alert/Alert.js +28 -0
  15. package/dist/components/Alert/Alert.module.js +9 -0
  16. package/dist/components/Alert/AlertIcon.d.ts +14 -0
  17. package/dist/components/Alert/AlertIcon.js +43 -0
  18. package/dist/components/Alert/index.d.ts +2 -0
  19. package/dist/components/Avatar/Avatar.css +1 -0
  20. package/dist/components/Avatar/Avatar.d.ts +33 -0
  21. package/dist/components/Avatar/Avatar.js +27 -0
  22. package/dist/components/Avatar/Avatar.module.js +7 -0
  23. package/dist/components/Avatar/index.d.ts +2 -0
  24. package/dist/components/Avatar/initialsOf.d.ts +9 -0
  25. package/dist/components/Avatar/initialsOf.js +10 -0
  26. package/dist/components/AvatarGroup/AvatarGroup.css +1 -0
  27. package/dist/components/AvatarGroup/AvatarGroup.d.ts +30 -0
  28. package/dist/components/AvatarGroup/AvatarGroup.js +34 -0
  29. package/dist/components/AvatarGroup/AvatarGroup.module.js +7 -0
  30. package/dist/components/AvatarGroup/index.d.ts +2 -0
  31. package/dist/components/Badge/Badge.css +1 -0
  32. package/dist/components/Badge/Badge.d.ts +36 -0
  33. package/dist/components/Badge/Badge.js +16 -0
  34. package/dist/components/Badge/Badge.module.js +4 -0
  35. package/dist/components/Badge/index.d.ts +2 -0
  36. package/dist/components/Box/Box.css +1 -0
  37. package/dist/components/Box/Box.d.ts +31 -0
  38. package/dist/components/Box/Box.js +18 -0
  39. package/dist/components/Box/Box.module.js +4 -0
  40. package/dist/components/Box/index.d.ts +2 -0
  41. package/dist/components/Button/Button.css +1 -0
  42. package/dist/components/Button/Button.d.ts +42 -0
  43. package/dist/components/Button/Button.js +29 -0
  44. package/dist/components/Button/Button.module.js +7 -0
  45. package/dist/components/Button/index.d.ts +2 -0
  46. package/dist/components/Card/Card.css +1 -0
  47. package/dist/components/Card/Card.d.ts +24 -0
  48. package/dist/components/Card/Card.js +15 -0
  49. package/dist/components/Card/Card.module.js +4 -0
  50. package/dist/components/Card/index.d.ts +2 -0
  51. package/dist/components/Center/Center.css +1 -0
  52. package/dist/components/Center/Center.d.ts +34 -0
  53. package/dist/components/Center/Center.js +20 -0
  54. package/dist/components/Center/Center.module.js +4 -0
  55. package/dist/components/Center/index.d.ts +2 -0
  56. package/dist/components/Checkbox/Checkbox.d.ts +23 -0
  57. package/dist/components/Checkbox/Checkbox.js +13 -0
  58. package/dist/components/Checkbox/index.d.ts +2 -0
  59. package/dist/components/ChoiceControl/ChoiceControl.css +1 -0
  60. package/dist/components/ChoiceControl/ChoiceControl.d.ts +21 -0
  61. package/dist/components/ChoiceControl/ChoiceControl.js +40 -0
  62. package/dist/components/ChoiceControl/ChoiceControl.module.js +9 -0
  63. package/dist/components/ChoiceControl/index.d.ts +1 -0
  64. package/dist/components/Cluster/Cluster.d.ts +29 -0
  65. package/dist/components/Cluster/Cluster.js +14 -0
  66. package/dist/components/Cluster/index.d.ts +2 -0
  67. package/dist/components/Code/Code.css +1 -0
  68. package/dist/components/Code/Code.d.ts +13 -0
  69. package/dist/components/Code/Code.js +20 -0
  70. package/dist/components/Code/Code.module.js +4 -0
  71. package/dist/components/Code/index.d.ts +2 -0
  72. package/dist/components/Counter/Counter.css +1 -0
  73. package/dist/components/Counter/Counter.d.ts +39 -0
  74. package/dist/components/Counter/Counter.js +19 -0
  75. package/dist/components/Counter/Counter.module.js +4 -0
  76. package/dist/components/Counter/index.d.ts +2 -0
  77. package/dist/components/Cover/Cover.css +1 -0
  78. package/dist/components/Cover/Cover.d.ts +40 -0
  79. package/dist/components/Cover/Cover.js +30 -0
  80. package/dist/components/Cover/Cover.module.js +7 -0
  81. package/dist/components/Cover/index.d.ts +2 -0
  82. package/dist/components/Divider/Divider.css +1 -0
  83. package/dist/components/Divider/Divider.d.ts +25 -0
  84. package/dist/components/Divider/Divider.js +16 -0
  85. package/dist/components/Divider/Divider.module.js +4 -0
  86. package/dist/components/Divider/index.d.ts +2 -0
  87. package/dist/components/Field/Field.css +1 -0
  88. package/dist/components/Field/Field.d.ts +49 -0
  89. package/dist/components/Field/Field.js +48 -0
  90. package/dist/components/Field/Field.module.js +9 -0
  91. package/dist/components/Field/index.d.ts +2 -0
  92. package/dist/components/Fieldset/Fieldset.css +1 -0
  93. package/dist/components/Fieldset/Fieldset.d.ts +35 -0
  94. package/dist/components/Fieldset/Fieldset.js +65 -0
  95. package/dist/components/Fieldset/Fieldset.module.js +9 -0
  96. package/dist/components/Fieldset/index.d.ts +2 -0
  97. package/dist/components/Frame/Frame.css +1 -0
  98. package/dist/components/Frame/Frame.d.ts +23 -0
  99. package/dist/components/Frame/Frame.js +17 -0
  100. package/dist/components/Frame/Frame.module.js +4 -0
  101. package/dist/components/Frame/index.d.ts +2 -0
  102. package/dist/components/Grid/Grid.css +1 -0
  103. package/dist/components/Grid/Grid.d.ts +25 -0
  104. package/dist/components/Grid/Grid.js +23 -0
  105. package/dist/components/Grid/Grid.module.js +4 -0
  106. package/dist/components/Grid/index.d.ts +2 -0
  107. package/dist/components/Heading/Heading.css +1 -0
  108. package/dist/components/Heading/Heading.d.ts +39 -0
  109. package/dist/components/Heading/Heading.js +24 -0
  110. package/dist/components/Heading/Heading.module.js +4 -0
  111. package/dist/components/Heading/index.d.ts +2 -0
  112. package/dist/components/HorizontalFlow/HorizontalFlow.css +1 -0
  113. package/dist/components/HorizontalFlow/HorizontalFlow.d.ts +30 -0
  114. package/dist/components/HorizontalFlow/HorizontalFlow.js +31 -0
  115. package/dist/components/HorizontalFlow/HorizontalFlow.module.js +4 -0
  116. package/dist/components/HorizontalFlow/index.d.ts +2 -0
  117. package/dist/components/Icon/AddIcon.d.ts +11 -0
  118. package/dist/components/Icon/AddIcon.js +22 -0
  119. package/dist/components/Icon/ChevronDownIcon.d.ts +11 -0
  120. package/dist/components/Icon/ChevronDownIcon.js +19 -0
  121. package/dist/components/Icon/CloseIcon.d.ts +12 -0
  122. package/dist/components/Icon/CloseIcon.js +22 -0
  123. package/dist/components/Icon/ColorModeIcon.d.ts +12 -0
  124. package/dist/components/Icon/ColorModeIcon.js +37 -0
  125. package/dist/components/Icon/DeleteIcon.d.ts +11 -0
  126. package/dist/components/Icon/DeleteIcon.js +37 -0
  127. package/dist/components/Icon/Icon.css +1 -0
  128. package/dist/components/Icon/Icon.d.ts +40 -0
  129. package/dist/components/Icon/Icon.js +28 -0
  130. package/dist/components/Icon/Icon.module.js +7 -0
  131. package/dist/components/Icon/InfoIcon.d.ts +11 -0
  132. package/dist/components/Icon/InfoIcon.js +31 -0
  133. package/dist/components/Icon/MoreHorizontalIcon.d.ts +11 -0
  134. package/dist/components/Icon/MoreHorizontalIcon.js +35 -0
  135. package/dist/components/Icon/MoreVerticalIcon.d.ts +11 -0
  136. package/dist/components/Icon/MoreVerticalIcon.js +35 -0
  137. package/dist/components/Icon/PaletteIcon.d.ts +12 -0
  138. package/dist/components/Icon/PaletteIcon.js +49 -0
  139. package/dist/components/Icon/RefreshIcon.d.ts +13 -0
  140. package/dist/components/Icon/RefreshIcon.js +33 -0
  141. package/dist/components/Icon/RemoveIcon.d.ts +11 -0
  142. package/dist/components/Icon/RemoveIcon.js +19 -0
  143. package/dist/components/Icon/SendIcon.d.ts +11 -0
  144. package/dist/components/Icon/SendIcon.js +23 -0
  145. package/dist/components/Icon/index.d.ts +13 -0
  146. package/dist/components/IconButton/IconButton.css +1 -0
  147. package/dist/components/IconButton/IconButton.d.ts +45 -0
  148. package/dist/components/IconButton/IconButton.js +41 -0
  149. package/dist/components/IconButton/IconButton.module.js +8 -0
  150. package/dist/components/IconButton/index.d.ts +2 -0
  151. package/dist/components/Kbd/Kbd.css +1 -0
  152. package/dist/components/Kbd/Kbd.d.ts +13 -0
  153. package/dist/components/Kbd/Kbd.js +20 -0
  154. package/dist/components/Kbd/Kbd.module.js +4 -0
  155. package/dist/components/Kbd/index.d.ts +2 -0
  156. package/dist/components/Link/Link.css +1 -0
  157. package/dist/components/Link/Link.d.ts +52 -0
  158. package/dist/components/Link/Link.js +27 -0
  159. package/dist/components/Link/Link.module.js +4 -0
  160. package/dist/components/Link/index.d.ts +2 -0
  161. package/dist/components/Listbox/Listbox.css +1 -0
  162. package/dist/components/Listbox/Listbox.d.ts +46 -0
  163. package/dist/components/Listbox/Listbox.js +56 -0
  164. package/dist/components/Listbox/Listbox.module.js +7 -0
  165. package/dist/components/Listbox/ListboxContext.d.ts +38 -0
  166. package/dist/components/Listbox/ListboxContext.js +5 -0
  167. package/dist/components/Listbox/ListboxOption.d.ts +31 -0
  168. package/dist/components/Listbox/ListboxOption.js +43 -0
  169. package/dist/components/Listbox/index.d.ts +4 -0
  170. package/dist/components/Listbox/optionId.d.ts +8 -0
  171. package/dist/components/Listbox/optionId.js +7 -0
  172. package/dist/components/Listbox/renderedOptions.d.ts +30 -0
  173. package/dist/components/Listbox/renderedOptions.js +15 -0
  174. package/dist/components/Listbox/useListbox.d.ts +54 -0
  175. package/dist/components/Listbox/useListbox.js +104 -0
  176. package/dist/components/Listbox/useListboxContext.d.ts +9 -0
  177. package/dist/components/Listbox/useListboxContext.js +11 -0
  178. package/dist/components/NavList/NavList.css +1 -0
  179. package/dist/components/NavList/NavList.d.ts +20 -0
  180. package/dist/components/NavList/NavList.js +28 -0
  181. package/dist/components/NavList/NavList.module.js +12 -0
  182. package/dist/components/NavList/NavListGroup.d.ts +25 -0
  183. package/dist/components/NavList/NavListGroup.js +40 -0
  184. package/dist/components/NavList/NavListItem.d.ts +53 -0
  185. package/dist/components/NavList/NavListItem.js +57 -0
  186. package/dist/components/NavList/index.d.ts +6 -0
  187. package/dist/components/Overlay/Overlay.css +1 -0
  188. package/dist/components/Overlay/Overlay.d.ts +33 -0
  189. package/dist/components/Overlay/Overlay.js +36 -0
  190. package/dist/components/Overlay/Overlay.module.js +4 -0
  191. package/dist/components/Overlay/index.d.ts +1 -0
  192. package/dist/components/PageLayout/PageLayout.css +1 -0
  193. package/dist/components/PageLayout/PageLayout.d.ts +26 -0
  194. package/dist/components/PageLayout/PageLayout.js +18 -0
  195. package/dist/components/PageLayout/PageLayout.module.js +4 -0
  196. package/dist/components/PageLayout/index.d.ts +2 -0
  197. package/dist/components/Popover/Popover.css +1 -0
  198. package/dist/components/Popover/Popover.d.ts +52 -0
  199. package/dist/components/Popover/Popover.js +21 -0
  200. package/dist/components/Popover/Popover.module.js +4 -0
  201. package/dist/components/Popover/index.d.ts +4 -0
  202. package/dist/components/Popover/usePopover.d.ts +96 -0
  203. package/dist/components/Popover/usePopover.js +66 -0
  204. package/dist/components/Prose/Prose.css +1 -0
  205. package/dist/components/Prose/Prose.d.ts +50 -0
  206. package/dist/components/Prose/Prose.js +16 -0
  207. package/dist/components/Prose/Prose.module.js +4 -0
  208. package/dist/components/Prose/index.d.ts +2 -0
  209. package/dist/components/Radio/Radio.d.ts +29 -0
  210. package/dist/components/Radio/Radio.js +24 -0
  211. package/dist/components/Radio/index.d.ts +2 -0
  212. package/dist/components/RadioGroup/RadioGroup.css +1 -0
  213. package/dist/components/RadioGroup/RadioGroup.d.ts +58 -0
  214. package/dist/components/RadioGroup/RadioGroup.js +37 -0
  215. package/dist/components/RadioGroup/RadioGroup.module.js +4 -0
  216. package/dist/components/RadioGroup/index.d.ts +2 -0
  217. package/dist/components/RequiredIndicator/RequiredIndicator.css +1 -0
  218. package/dist/components/RequiredIndicator/RequiredIndicator.d.ts +6 -0
  219. package/dist/components/RequiredIndicator/RequiredIndicator.js +16 -0
  220. package/dist/components/RequiredIndicator/RequiredIndicator.module.js +4 -0
  221. package/dist/components/RequiredIndicator/index.d.ts +1 -0
  222. package/dist/components/Row/Row.d.ts +29 -0
  223. package/dist/components/Row/Row.js +14 -0
  224. package/dist/components/Row/index.d.ts +2 -0
  225. package/dist/components/SegmentedControl/Segment.d.ts +24 -0
  226. package/dist/components/SegmentedControl/Segment.js +42 -0
  227. package/dist/components/SegmentedControl/SegmentedControl.css +1 -0
  228. package/dist/components/SegmentedControl/SegmentedControl.d.ts +25 -0
  229. package/dist/components/SegmentedControl/SegmentedControl.js +20 -0
  230. package/dist/components/SegmentedControl/SegmentedControl.module.js +10 -0
  231. package/dist/components/SegmentedControl/index.d.ts +4 -0
  232. package/dist/components/Select/Select.d.ts +27 -0
  233. package/dist/components/Select/Select.js +12 -0
  234. package/dist/components/Select/index.d.ts +2 -0
  235. package/dist/components/Sidebar/Sidebar.css +1 -0
  236. package/dist/components/Sidebar/Sidebar.d.ts +42 -0
  237. package/dist/components/Sidebar/Sidebar.js +24 -0
  238. package/dist/components/Sidebar/Sidebar.module.js +4 -0
  239. package/dist/components/Sidebar/index.d.ts +2 -0
  240. package/dist/components/SkipLink/SkipLink.css +1 -0
  241. package/dist/components/SkipLink/SkipLink.d.ts +20 -0
  242. package/dist/components/SkipLink/SkipLink.js +21 -0
  243. package/dist/components/SkipLink/SkipLink.module.js +4 -0
  244. package/dist/components/SkipLink/index.d.ts +2 -0
  245. package/dist/components/Spinner/Spinner.css +1 -0
  246. package/dist/components/Spinner/Spinner.d.ts +13 -0
  247. package/dist/components/Spinner/Spinner.js +33 -0
  248. package/dist/components/Spinner/Spinner.module.js +8 -0
  249. package/dist/components/Spinner/index.d.ts +1 -0
  250. package/dist/components/Stack/Stack.css +1 -0
  251. package/dist/components/Stack/Stack.d.ts +25 -0
  252. package/dist/components/Stack/Stack.js +21 -0
  253. package/dist/components/Stack/Stack.module.js +4 -0
  254. package/dist/components/Stack/index.d.ts +2 -0
  255. package/dist/components/StatusDot/StatusDot.css +1 -0
  256. package/dist/components/StatusDot/StatusDot.d.ts +57 -0
  257. package/dist/components/StatusDot/StatusDot.js +21 -0
  258. package/dist/components/StatusDot/StatusDot.module.js +4 -0
  259. package/dist/components/StatusDot/index.d.ts +2 -0
  260. package/dist/components/Switch/Switch.d.ts +24 -0
  261. package/dist/components/Switch/Switch.js +13 -0
  262. package/dist/components/Switch/index.d.ts +2 -0
  263. package/dist/components/Switcher/Switcher.css +1 -0
  264. package/dist/components/Switcher/Switcher.d.ts +27 -0
  265. package/dist/components/Switcher/Switcher.js +23 -0
  266. package/dist/components/Switcher/Switcher.module.js +4 -0
  267. package/dist/components/Switcher/index.d.ts +2 -0
  268. package/dist/components/Tabs/Tab.d.ts +26 -0
  269. package/dist/components/Tabs/Tab.js +61 -0
  270. package/dist/components/Tabs/TabList.d.ts +16 -0
  271. package/dist/components/Tabs/TabList.js +23 -0
  272. package/dist/components/Tabs/TabPanel.d.ts +24 -0
  273. package/dist/components/Tabs/TabPanel.js +22 -0
  274. package/dist/components/Tabs/Tabs.css +1 -0
  275. package/dist/components/Tabs/Tabs.d.ts +81 -0
  276. package/dist/components/Tabs/Tabs.js +31 -0
  277. package/dist/components/Tabs/Tabs.module.js +9 -0
  278. package/dist/components/Tabs/TabsContext.d.ts +39 -0
  279. package/dist/components/Tabs/TabsContext.js +5 -0
  280. package/dist/components/Tabs/index.d.ts +8 -0
  281. package/dist/components/Tabs/tabIds.d.ts +16 -0
  282. package/dist/components/Tabs/tabIds.js +10 -0
  283. package/dist/components/Tabs/useTabsContext.d.ts +9 -0
  284. package/dist/components/Tabs/useTabsContext.js +11 -0
  285. package/dist/components/Text/Text.css +1 -0
  286. package/dist/components/Text/Text.d.ts +40 -0
  287. package/dist/components/Text/Text.js +17 -0
  288. package/dist/components/Text/Text.module.js +4 -0
  289. package/dist/components/Text/index.d.ts +2 -0
  290. package/dist/components/TextControl/TextControl.css +1 -0
  291. package/dist/components/TextControl/TextControl.d.ts +22 -0
  292. package/dist/components/TextControl/TextControl.js +23 -0
  293. package/dist/components/TextControl/TextControl.module.js +4 -0
  294. package/dist/components/TextControl/index.d.ts +1 -0
  295. package/dist/components/TextInput/TextInput.d.ts +31 -0
  296. package/dist/components/TextInput/TextInput.js +13 -0
  297. package/dist/components/TextInput/index.d.ts +2 -0
  298. package/dist/components/Textarea/Textarea.d.ts +24 -0
  299. package/dist/components/Textarea/Textarea.js +12 -0
  300. package/dist/components/Textarea/index.d.ts +2 -0
  301. package/dist/components/Theme/Theme.d.ts +46 -0
  302. package/dist/components/Theme/Theme.js +18 -0
  303. package/dist/components/Theme/index.d.ts +2 -0
  304. package/dist/components/Tooltip/Tooltip.css +1 -0
  305. package/dist/components/Tooltip/Tooltip.d.ts +49 -0
  306. package/dist/components/Tooltip/Tooltip.js +22 -0
  307. package/dist/components/Tooltip/Tooltip.module.js +4 -0
  308. package/dist/components/Tooltip/index.d.ts +4 -0
  309. package/dist/components/Tooltip/tooltipCoordinator.d.ts +14 -0
  310. package/dist/components/Tooltip/tooltipCoordinator.js +17 -0
  311. package/dist/components/Tooltip/useTooltip.d.ts +119 -0
  312. package/dist/components/Tooltip/useTooltip.js +74 -0
  313. package/dist/components/VisuallyHidden/VisuallyHidden.css +1 -0
  314. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  315. package/dist/components/VisuallyHidden/VisuallyHidden.js +20 -0
  316. package/dist/components/VisuallyHidden/VisuallyHidden.module.js +4 -0
  317. package/dist/components/VisuallyHidden/index.d.ts +2 -0
  318. package/dist/errors/MissingContextError.d.ts +11 -0
  319. package/dist/errors/MissingContextError.js +9 -0
  320. package/dist/errors/PopoverRefusedError.d.ts +12 -0
  321. package/dist/errors/PopoverRefusedError.js +9 -0
  322. package/dist/errors/index.d.ts +2 -0
  323. package/dist/forms/ControlSize.d.ts +4 -0
  324. package/dist/forms/FieldContext.d.ts +29 -0
  325. package/dist/forms/FieldContext.js +5 -0
  326. package/dist/forms/RadioGroupContext.d.ts +34 -0
  327. package/dist/forms/RadioGroupContext.js +5 -0
  328. package/dist/forms/hasContent.d.ts +10 -0
  329. package/dist/forms/hasContent.js +7 -0
  330. package/dist/forms/index.d.ts +8 -0
  331. package/dist/forms/useFieldControl.d.ts +36 -0
  332. package/dist/forms/useFieldControl.js +29 -0
  333. package/dist/forms/useRadioGroupItem.d.ts +50 -0
  334. package/dist/forms/useRadioGroupItem.js +27 -0
  335. package/dist/index.d.ts +95 -0
  336. package/dist/index.js +67 -0
  337. package/dist/layout/Space.d.ts +4 -0
  338. package/dist/layout/alignment.d.ts +8 -0
  339. package/dist/layout/index.d.ts +5 -0
  340. package/dist/layout/listRole.d.ts +11 -0
  341. package/dist/layout/listRole.js +6 -0
  342. package/dist/layout/spaceValue.d.ts +8 -0
  343. package/dist/layout/spaceValue.js +6 -0
  344. package/dist/layout/withCustomProperties.d.ts +9 -0
  345. package/dist/layout/withCustomProperties.js +9 -0
  346. package/dist/overlays/OverlayDelay.d.ts +13 -0
  347. package/dist/overlays/OverlayPlacement.d.ts +6 -0
  348. package/dist/overlays/anchorNameFor.d.ts +7 -0
  349. package/dist/overlays/anchorNameFor.js +6 -0
  350. package/dist/overlays/index.d.ts +6 -0
  351. package/dist/overlays/mergeProps.d.ts +13 -0
  352. package/dist/overlays/mergeProps.js +30 -0
  353. package/dist/overlays/syncPopover.d.ts +11 -0
  354. package/dist/overlays/syncPopover.js +25 -0
  355. package/dist/overlays/useOverlay.d.ts +71 -0
  356. package/dist/overlays/useOverlay.js +56 -0
  357. package/dist/styles.css +1 -0
  358. package/fonts/playful.css +3 -0
  359. package/package.json +103 -3
@@ -0,0 +1,12 @@
1
+ import { TextControl as e } from "../TextControl/TextControl.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/Textarea/Textarea.tsx
4
+ function n({ size: n = "md", ...r }) {
5
+ return /* @__PURE__ */ t(e, {
6
+ ...r,
7
+ as: "textarea",
8
+ size: n
9
+ });
10
+ }
11
+ //#endregion
12
+ export { n as Textarea };
@@ -0,0 +1,2 @@
1
+ export { Textarea } from "./Textarea";
2
+ export type { TextareaProps } from "./Textarea";
@@ -0,0 +1,46 @@
1
+ import type { JSX } from "react";
2
+ import type { BoxElement, BoxProps } from "../Box";
3
+ /**
4
+ * Names of the themes shipped in `styles.css`
5
+ */
6
+ export type ThemeName = "default" | "playful";
7
+ /**
8
+ * Colour mode; `system` follows the operating system preference
9
+ */
10
+ export type ThemeMode = "dark" | "light" | "system";
11
+ /**
12
+ * Names of the colour palettes shipped in `styles.css`
13
+ */
14
+ export type PaletteName = "bright" | "dusk" | "mist" | "paper" | "pop";
15
+ interface ThemeOwnProps {
16
+ /**
17
+ * Colour mode for this subtree. Inherited from the nearest ancestor when omitted.
18
+ */
19
+ mode?: ThemeMode;
20
+ /**
21
+ * Colour palette for this subtree. Defaults to the theme's companion palette on an element that sets `theme`, and
22
+ * is inherited from the nearest ancestor otherwise.
23
+ */
24
+ palette?: PaletteName;
25
+ /**
26
+ * Theme for this subtree. Inherited from the nearest ancestor when omitted.
27
+ */
28
+ theme?: ThemeName;
29
+ }
30
+ /**
31
+ * Props for `Theme`: its own props plus every prop supported by the element given in `as`
32
+ */
33
+ export type ThemeProps<E extends BoxElement = "div"> = ThemeOwnProps & Omit<BoxProps<E>, keyof ThemeOwnProps>;
34
+ /**
35
+ * Sets the theme, palette and colour mode attributes for its subtree. `styles.css` paints the
36
+ * background, text colour and font of any element that carries these attributes, so this needs
37
+ * `@krelborn/stylesui/styles.css` imported once by the app.
38
+ *
39
+ * @example
40
+ * <Theme mode="dark" theme="playful">...</Theme>
41
+ *
42
+ * @example
43
+ * <Theme palette="pop" theme="default">...</Theme>
44
+ */
45
+ export declare function Theme<E extends BoxElement = "div">({ as, mode, palette, theme, ...rest }: ThemeProps<E>): JSX.Element;
46
+ export {};
@@ -0,0 +1,18 @@
1
+ import { Box as e } from "../Box/Box.js";
2
+ import { c as t } from "react/compiler-runtime";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/Theme/Theme.tsx
5
+ function r(r) {
6
+ let i = t(12), a, o, s, c, l;
7
+ i[0] === r ? (a = i[1], o = i[2], s = i[3], c = i[4], l = i[5]) : ({as: a, mode: o, palette: s, theme: l, ...c} = r, i[0] = r, i[1] = a, i[2] = o, i[3] = s, i[4] = c, i[5] = l);
8
+ let u = c, d = a, f;
9
+ return i[6] !== u || i[7] !== o || i[8] !== s || i[9] !== d || i[10] !== l ? (f = /* @__PURE__ */ n(e, {
10
+ ...u,
11
+ as: d,
12
+ "data-sui-mode": o,
13
+ "data-sui-palette": s,
14
+ "data-sui-theme": l
15
+ }), i[6] = u, i[7] = o, i[8] = s, i[9] = d, i[10] = l, i[11] = f) : f = i[11], f;
16
+ }
17
+ //#endregion
18
+ export { r as Theme };
@@ -0,0 +1,2 @@
1
+ export { Theme } from "./Theme";
2
+ export type { PaletteName, ThemeMode, ThemeName, ThemeProps } from "./Theme";
@@ -0,0 +1 @@
1
+ .sui-tooltip-UA7H9{max-inline-size:var(--sui-tooltip-max-width,20rem);padding:var(--sui-space-1,.25rem) var(--sui-space-2,.5rem);border-radius:var(--sui-radius-md,4px);background-color:var(--sui-color-tooltip,#111827);box-shadow:var(--sui-shadow-sm,0 1px 3px #0000001f);color:var(--sui-color-on-tooltip,#fff);font-family:var(--sui-font-body,system-ui, sans-serif);font-size:var(--sui-font-size-sm,.875rem);line-height:var(--sui-line-height-normal,1.5);transition:opacity .12s ease-out}@starting-style{.sui-tooltip-UA7H9{opacity:0}}@media (prefers-reduced-motion:reduce){.sui-tooltip-UA7H9{transition:none}}
@@ -0,0 +1,49 @@
1
+ import type { JSX, PointerEventHandler } from "react";
2
+ import type { OverlayPlacement } from "../../overlays";
3
+ import type { BoxProps } from "../Box";
4
+ /**
5
+ * Props `getOverlayProps` from `useTooltip` returns, which every `Tooltip` takes
6
+ */
7
+ export interface TooltipOverlayProps {
8
+ /**
9
+ * `anchor-name` of the trigger the tooltip is positioned against. From `getOverlayProps`.
10
+ */
11
+ anchorName: string;
12
+ /**
13
+ * The tooltip's id, which the trigger's `aria-describedby` or `aria-labelledby` points at. From `getOverlayProps`.
14
+ */
15
+ id: string;
16
+ /**
17
+ * Keeps the tooltip open while the pointer is over it. From `getOverlayProps`.
18
+ */
19
+ onPointerEnter?: PointerEventHandler<HTMLElement>;
20
+ /**
21
+ * Hides the tooltip after the hide delay once the pointer leaves it. From `getOverlayProps`.
22
+ */
23
+ onPointerLeave?: PointerEventHandler<HTMLElement>;
24
+ /**
25
+ * Whether the tooltip is shown. From `getOverlayProps`.
26
+ */
27
+ open: boolean;
28
+ /**
29
+ * Side of the trigger the tooltip opens on. From `getOverlayProps`.
30
+ */
31
+ placement: OverlayPlacement;
32
+ }
33
+ /**
34
+ * Props for `Tooltip`: the props `getOverlayProps` returns plus every `span` prop except `popover`, `ref` and `role`
35
+ */
36
+ export interface TooltipProps extends TooltipOverlayProps, Omit<BoxProps<"span">, "as" | "popover" | "ref" | "role" | keyof TooltipOverlayProps> {
37
+ }
38
+ /**
39
+ * Short text shown beside the element it belongs to while the pointer rests on that element or it has keyboard
40
+ * focus. `useTooltip` connects the two: spread `getTriggerProps()` on the element and `getOverlayProps()` on the
41
+ * tooltip, inside the same `Theme`. A tooltip holds text only, nothing interactive.
42
+ *
43
+ * @example
44
+ * const tooltip = useTooltip();
45
+ *
46
+ * <Button {...tooltip.getTriggerProps()}>Publish</Button>
47
+ * <Tooltip {...tooltip.getOverlayProps()}>Sends to all subscribers</Tooltip>
48
+ */
49
+ export declare function Tooltip({ className, ...rest }: TooltipProps): JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { Overlay as e } from "../Overlay/Overlay.js";
2
+ import t from "./Tooltip.module.js";
3
+ import { clsx as n } from "clsx";
4
+ import { c as r } from "react/compiler-runtime";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ //#region src/components/Tooltip/Tooltip.tsx
7
+ function a(a) {
8
+ let o = r(8), s, c;
9
+ o[0] === a ? (s = o[1], c = o[2]) : ({className: s, ...c} = a, o[0] = a, o[1] = s, o[2] = c);
10
+ let l;
11
+ o[3] === s ? l = o[4] : (l = n(t.tooltip, s), o[3] = s, o[4] = l);
12
+ let u;
13
+ return o[5] !== c || o[6] !== l ? (u = /* @__PURE__ */ i(e, {
14
+ ...c,
15
+ as: "span",
16
+ className: l,
17
+ popover: "manual",
18
+ role: "tooltip"
19
+ }), o[5] = c, o[6] = l, o[7] = u) : u = o[7], u;
20
+ }
21
+ //#endregion
22
+ export { a as Tooltip };
@@ -0,0 +1,4 @@
1
+ import './Tooltip.css';//#region src/components/Tooltip/Tooltip.module.css
2
+ var e = "sui-tooltip-UA7H9", t = { tooltip: e };
3
+ //#endregion
4
+ export { t as default, e as tooltip };
@@ -0,0 +1,4 @@
1
+ export { Tooltip } from "./Tooltip";
2
+ export type { TooltipProps } from "./Tooltip";
3
+ export { useTooltip } from "./useTooltip";
4
+ export type { TooltipRelationship, UseTooltipOptions, UseTooltipResult } from "./useTooltip";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Records a tooltip as the one open tooltip, hiding the tooltip that was open before it
3
+ *
4
+ * @param id the claiming tooltip's id
5
+ * @param hide hides the claiming tooltip when a later tooltip claims
6
+ * @returns releases the claim; call it when the tooltip closes or unmounts
7
+ */
8
+ export declare function claimTooltip(id: string, hide: () => void): () => void;
9
+ /**
10
+ * Whether a tooltip opening now should skip its show delay
11
+ *
12
+ * @returns true while a tooltip is open, and for 300ms after the last one closes
13
+ */
14
+ export declare function isTooltipWarm(): boolean;
@@ -0,0 +1,17 @@
1
+ //#region src/components/Tooltip/tooltipCoordinator.ts
2
+ var e = null, t = -Infinity;
3
+ function n(n, r) {
4
+ e !== null && e.id !== n && e.hide();
5
+ let i = {
6
+ hide: r,
7
+ id: n
8
+ };
9
+ return e = i, () => {
10
+ e === i && (e = null, t = Date.now());
11
+ };
12
+ }
13
+ function r() {
14
+ return e !== null || Date.now() - t < 300;
15
+ }
16
+ //#endregion
17
+ export { n as claimTooltip, r as isTooltipWarm };
@@ -0,0 +1,119 @@
1
+ import type { CSSProperties, FocusEventHandler, MouseEventHandler, PointerEventHandler } from "react";
2
+ import type { OverlayDelay, OverlayPlacement } from "../../overlays";
3
+ import type { TooltipOverlayProps } from "./Tooltip";
4
+ /**
5
+ * Whether a tooltip names its trigger or describes it
6
+ */
7
+ export type TooltipRelationship = "description" | "label";
8
+ /**
9
+ * Options for `useTooltip`
10
+ */
11
+ export interface UseTooltipOptions {
12
+ /**
13
+ * Whether the tooltip starts open when uncontrolled. Defaults to `false`.
14
+ */
15
+ defaultOpen?: boolean;
16
+ /**
17
+ * Show and hide delays. Defaults to 400ms to show and 150ms to hide; an omitted field keeps its default. A hide
18
+ * delay too short for the pointer to cross from the trigger to the tooltip hides the tooltip on the way.
19
+ */
20
+ delay?: OverlayDelay;
21
+ /**
22
+ * Called with the requested open state whenever the tooltip asks to open or close
23
+ */
24
+ onOpenChange?: (open: boolean) => void;
25
+ /**
26
+ * Controls whether the tooltip is open. The hook then only reports through `onOpenChange`.
27
+ */
28
+ open?: boolean;
29
+ /**
30
+ * Side of the trigger the tooltip opens on. It flips to the opposite side when there is no room. Defaults to `top`.
31
+ */
32
+ placement?: OverlayPlacement;
33
+ /**
34
+ * `label` makes the tooltip the trigger's accessible name, for a trigger with no text of its own, and
35
+ * `description` adds it as the trigger's description. Defaults to `description`.
36
+ */
37
+ relationship?: TooltipRelationship;
38
+ }
39
+ /**
40
+ * Props `getTriggerProps` sets on the trigger
41
+ */
42
+ interface TooltipTriggerProps {
43
+ /**
44
+ * The tooltip's id when it describes the trigger
45
+ */
46
+ "aria-describedby"?: string;
47
+ /**
48
+ * The tooltip's id when it names the trigger
49
+ */
50
+ "aria-labelledby"?: string;
51
+ /**
52
+ * Hides the tooltip
53
+ */
54
+ onBlur: FocusEventHandler<HTMLElement>;
55
+ /**
56
+ * Hides the tooltip when the keyboard presses the trigger
57
+ */
58
+ onClick: MouseEventHandler<HTMLElement>;
59
+ /**
60
+ * Shows the tooltip when focus arrives from the keyboard
61
+ */
62
+ onFocus: FocusEventHandler<HTMLElement>;
63
+ /**
64
+ * Hides the tooltip
65
+ */
66
+ onPointerDown: PointerEventHandler<HTMLElement>;
67
+ /**
68
+ * Shows the tooltip after the show delay, for a mouse or pen
69
+ */
70
+ onPointerEnter: PointerEventHandler<HTMLElement>;
71
+ /**
72
+ * Cancels a pending show and hides the tooltip after the hide delay, for a mouse or pen, unless keyboard focus
73
+ * opened the tooltip and it is still open
74
+ */
75
+ onPointerLeave: PointerEventHandler<HTMLElement>;
76
+ /**
77
+ * Names the trigger as the tooltip's anchor
78
+ */
79
+ style: CSSProperties;
80
+ }
81
+ /**
82
+ * Prop getters for a tooltip's trigger and the `Tooltip`, and whether the tooltip is open
83
+ */
84
+ export interface UseTooltipResult {
85
+ /**
86
+ * Returns the props to spread on the `Tooltip`, merged with any given
87
+ */
88
+ getOverlayProps: <Props extends object>(props?: Props & Partial<TooltipOverlayProps>) => Omit<Props, keyof TooltipOverlayProps> & TooltipOverlayProps;
89
+ /**
90
+ * Returns the props to spread on the trigger, merged with any given: where both set a handler, both run, the given
91
+ * one first; the tooltip's id comes before any given `aria-describedby` or `aria-labelledby` ids; and `style`
92
+ * objects merge
93
+ */
94
+ getTriggerProps: <Props extends object>(props?: Props & Partial<TooltipTriggerProps>) => Omit<Props, keyof TooltipTriggerProps> & TooltipTriggerProps;
95
+ /**
96
+ * Whether the tooltip is open
97
+ */
98
+ open: boolean;
99
+ }
100
+ /**
101
+ * Connects a `Tooltip` to the element it belongs to. Spread `getTriggerProps()` on that element and
102
+ * `getOverlayProps()` on the `Tooltip`. The tooltip opens after the show delay when a mouse or pen rests on the
103
+ * trigger and at once when the trigger takes keyboard focus, or once the popover has closed when closing a popover
104
+ * returns keyboard focus to the trigger. It stays open while the pointer is over the tooltip, and hides after the hide
105
+ * delay once the pointer leaves both, or at once on blur, on Escape and when the trigger is pressed. A tooltip that
106
+ * keyboard focus opened stays open when the pointer leaves, until blur or Escape. Only one tooltip is open at a time,
107
+ * and while one is open, or for 300ms after it closes, the next opens without its show delay.
108
+ *
109
+ * @param options open state, delays, placement and how the tooltip relates to its trigger
110
+ * @returns prop getters for the trigger and the `Tooltip`, and whether the tooltip is open
111
+ *
112
+ * @example
113
+ * const tooltip = useTooltip({ relationship: "label" });
114
+ *
115
+ * <Button {...tooltip.getTriggerProps()}><CopyIcon /></Button>
116
+ * <Tooltip {...tooltip.getOverlayProps()}>Copy link</Tooltip>
117
+ */
118
+ export declare function useTooltip({ defaultOpen, delay, onOpenChange, open: controlledOpen, placement, relationship, }?: UseTooltipOptions): UseTooltipResult;
119
+ export {};
@@ -0,0 +1,74 @@
1
+ import { mergeProps as e } from "../../overlays/mergeProps.js";
2
+ import { useOverlay as t } from "../../overlays/useOverlay.js";
3
+ import { claimTooltip as n, isTooltipWarm as r } from "./tooltipCoordinator.js";
4
+ import { useEffect as i, useEffectEvent as a, useRef as o } from "react";
5
+ //#region src/components/Tooltip/useTooltip.ts
6
+ var s = {
7
+ hide: 150,
8
+ show: 400
9
+ };
10
+ function c({ defaultOpen: c = !1, delay: u, onOpenChange: d, open: f, placement: p = "top", relationship: m = "description" } = {}) {
11
+ let h = t({
12
+ defaultOpen: c,
13
+ delay: {
14
+ hide: u?.hide ?? s.hide,
15
+ show: u?.show ?? s.show
16
+ },
17
+ onOpenChange: d,
18
+ open: f
19
+ }), g = o(!1), _ = a(() => h.hide()), { id: v, open: y } = h;
20
+ i(() => {
21
+ if (y) return n(v, () => _());
22
+ }, [v, y]), i(() => {
23
+ y || (g.current = !1);
24
+ }, [y]);
25
+ function b(e) {
26
+ e.pointerType !== "touch" && (r() ? h.show() : h.showAfterDelay());
27
+ }
28
+ function x(e) {
29
+ e.pointerType !== "touch" && !(g.current && y) && h.hideAfterDelay();
30
+ }
31
+ function S(e) {
32
+ g.current = e.currentTarget.matches(":focus-visible"), g.current && (l(e) ? h.showAfterTask() : h.show());
33
+ }
34
+ function C() {
35
+ g.current = !1, h.hide();
36
+ }
37
+ function w(e) {
38
+ e.detail === 0 && h.hide();
39
+ }
40
+ let T = {
41
+ anchorName: h.anchorName,
42
+ id: h.id,
43
+ onPointerEnter: h.cancelDelay,
44
+ onPointerLeave: x,
45
+ open: h.open,
46
+ placement: p
47
+ }, E = {
48
+ ...m === "label" ? { "aria-labelledby": h.id } : { "aria-describedby": h.id },
49
+ onBlur: C,
50
+ onClick: w,
51
+ onFocus: S,
52
+ onPointerDown: h.hide,
53
+ onPointerEnter: b,
54
+ onPointerLeave: x,
55
+ style: { anchorName: h.anchorName }
56
+ };
57
+ function D(t) {
58
+ return e(t, T);
59
+ }
60
+ function O(t) {
61
+ return e(t, E);
62
+ }
63
+ return {
64
+ getOverlayProps: D,
65
+ getTriggerProps: O,
66
+ open: h.open
67
+ };
68
+ }
69
+ function l(e) {
70
+ let t = e.relatedTarget instanceof Element ? e.relatedTarget.closest("[popover]") : null;
71
+ return t !== null && !t.matches(":popover-open");
72
+ }
73
+ //#endregion
74
+ export { c as useTooltip };
@@ -0,0 +1 @@
1
+ .sui-visuallyHidden-KiAzg{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
@@ -0,0 +1,14 @@
1
+ import type { JSX } from "react";
2
+ import type { BoxElement, BoxProps } from "../Box";
3
+ /**
4
+ * Props for `VisuallyHidden`: every prop supported by the element given in `as`
5
+ */
6
+ export type VisuallyHiddenProps<E extends BoxElement = "span"> = BoxProps<E>;
7
+ /**
8
+ * Hides its content from view while keeping it in the accessibility tree, for text that only
9
+ * assistive technology needs, such as the name of an icon-only button
10
+ *
11
+ * @example
12
+ * <Button><span aria-hidden={true}>×</span><VisuallyHidden>Close</VisuallyHidden></Button>
13
+ */
14
+ export declare function VisuallyHidden<E extends BoxElement = "span">({ as, className, ...rest }: VisuallyHiddenProps<E>): JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { Box as e } from "../Box/Box.js";
2
+ import t from "./VisuallyHidden.module.js";
3
+ import { clsx as n } from "clsx";
4
+ import { c as r } from "react/compiler-runtime";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ //#region src/components/VisuallyHidden/VisuallyHidden.tsx
7
+ function a(a) {
8
+ let o = r(10), s, c, l;
9
+ o[0] === a ? (s = o[1], c = o[2], l = o[3]) : ({as: s, className: c, ...l} = a, o[0] = a, o[1] = s, o[2] = c, o[3] = l);
10
+ let u = l, d = s ?? "span", f;
11
+ o[4] === c ? f = o[5] : (f = n(t.visuallyHidden, c), o[4] = c, o[5] = f);
12
+ let p;
13
+ return o[6] !== u || o[7] !== d || o[8] !== f ? (p = /* @__PURE__ */ i(e, {
14
+ ...u,
15
+ as: d,
16
+ className: f
17
+ }), o[6] = u, o[7] = d, o[8] = f, o[9] = p) : p = o[9], p;
18
+ }
19
+ //#endregion
20
+ export { a as VisuallyHidden };
@@ -0,0 +1,4 @@
1
+ import './VisuallyHidden.css';//#region src/components/VisuallyHidden/VisuallyHidden.module.css
2
+ var e = "sui-visuallyHidden-KiAzg", t = { visuallyHidden: e };
3
+ //#endregion
4
+ export { t as default, e as visuallyHidden };
@@ -0,0 +1,2 @@
1
+ export { VisuallyHidden } from "./VisuallyHidden";
2
+ export type { VisuallyHiddenProps } from "./VisuallyHidden";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Thrown when a part of a compound component renders outside the component that provides its state
3
+ */
4
+ export declare class MissingContextError extends Error {
5
+ readonly name = "MissingContextError";
6
+ /**
7
+ * @param part the part that rendered, such as `Tab`
8
+ * @param provider the component it must render inside, such as `Tabs`
9
+ */
10
+ constructor(part: string, provider: string);
11
+ }
@@ -0,0 +1,9 @@
1
+ //#region src/errors/MissingContextError.ts
2
+ var e = class extends Error {
3
+ name = "MissingContextError";
4
+ constructor(e, t) {
5
+ super(`${e} must be rendered inside ${t}`);
6
+ }
7
+ };
8
+ //#endregion
9
+ export { e as MissingContextError };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Thrown when the browser refuses to show or hide a popover, even once it has finished showing or hiding another
3
+ */
4
+ export declare class PopoverRefusedError extends Error {
5
+ readonly name = "PopoverRefusedError";
6
+ /**
7
+ * @param popover the popover the browser refused
8
+ * @param open whether the browser was asked to show the popover rather than hide it
9
+ * @param cause the browser's refusal
10
+ */
11
+ constructor(popover: HTMLElement, open: boolean, cause: DOMException);
12
+ }
@@ -0,0 +1,9 @@
1
+ //#region src/errors/PopoverRefusedError.ts
2
+ var e = class extends Error {
3
+ name = "PopoverRefusedError";
4
+ constructor(e, t, n) {
5
+ super(`The browser refused to ${t ? "show" : "hide"} the popover with id "${e.id}"`, { cause: n });
6
+ }
7
+ };
8
+ //#endregion
9
+ export { e as PopoverRefusedError };
@@ -0,0 +1,2 @@
1
+ export { MissingContextError } from "./MissingContextError";
2
+ export { PopoverRefusedError } from "./PopoverRefusedError";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Height of a form control, matching the `Button` sizes
3
+ */
4
+ export type ControlSize = "sm" | "md" | "lg";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * State a `Field` shares with the control it holds
3
+ */
4
+ export interface FieldContextValue {
5
+ /**
6
+ * The `id` the control must render, so the label points at it
7
+ */
8
+ controlId: string;
9
+ /**
10
+ * Space-separated ids of the description and error, or undefined when the field renders neither
11
+ */
12
+ describedBy: string | undefined;
13
+ /**
14
+ * Whether the field disables its control
15
+ */
16
+ disabled: boolean;
17
+ /**
18
+ * Whether the field shows an error for its control
19
+ */
20
+ invalid: boolean;
21
+ /**
22
+ * Whether the control must be filled in
23
+ */
24
+ required: boolean;
25
+ }
26
+ /**
27
+ * Carries a `Field`'s state to its control; null when the control is not inside a `Field`
28
+ */
29
+ export declare const FieldContext: import("react").Context<FieldContextValue | null>;
@@ -0,0 +1,5 @@
1
+ import { createContext as e } from "react";
2
+ //#region src/forms/FieldContext.ts
3
+ var t = e(null);
4
+ //#endregion
5
+ export { t as FieldContext };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * State a `RadioGroup` shares with the radios it holds
3
+ */
4
+ interface RadioGroupContextValue {
5
+ /**
6
+ * The value selected at first when the group is uncontrolled, or undefined when the group sets none
7
+ */
8
+ defaultValue: string | undefined;
9
+ /**
10
+ * Whether the group shows an error, which each radio draws on its own box
11
+ */
12
+ invalid: boolean;
13
+ /**
14
+ * The `name` every radio renders, so the browser lets only one of them be selected
15
+ */
16
+ name: string;
17
+ /**
18
+ * Called with the value of the radio the user selects, after that radio's own `onChange`
19
+ */
20
+ onValueChange: ((value: string) => void) | undefined;
21
+ /**
22
+ * Whether one radio must be selected, which each radio renders as the native `required`
23
+ */
24
+ required: boolean;
25
+ /**
26
+ * The value selected when the group is controlled, or undefined when the group is uncontrolled
27
+ */
28
+ value: string | undefined;
29
+ }
30
+ /**
31
+ * Carries a `RadioGroup`'s state to its radios; null when a radio is not inside a `RadioGroup`
32
+ */
33
+ export declare const RadioGroupContext: import("react").Context<RadioGroupContextValue | null>;
34
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createContext as e } from "react";
2
+ //#region src/forms/RadioGroupContext.ts
3
+ var t = e(null);
4
+ //#endregion
5
+ export { t as RadioGroupContext };
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ /**
3
+ * Tells whether a node holds a value other than an empty one, so an empty `description` or `error` slot can be
4
+ * skipped
5
+ *
6
+ * @param node the node to check
7
+ * @returns false for `undefined`, `null`, a boolean, an empty string, and an array or fragment holding only those;
8
+ * otherwise true, including for a component that renders nothing
9
+ */
10
+ export declare function hasContent(node: ReactNode): boolean;
@@ -0,0 +1,7 @@
1
+ import { Fragment as e, isValidElement as t } from "react";
2
+ //#region src/forms/hasContent.ts
3
+ function n(r) {
4
+ return Array.isArray(r) ? r.some(n) : t(r) && r.type === e ? n(r.props.children) : r != null && typeof r != "boolean" && r !== "";
5
+ }
6
+ //#endregion
7
+ export { n as hasContent };
@@ -0,0 +1,8 @@
1
+ export type { ControlSize } from "./ControlSize";
2
+ export { FieldContext } from "./FieldContext";
3
+ export type { FieldContextValue } from "./FieldContext";
4
+ export { hasContent } from "./hasContent";
5
+ export { RadioGroupContext } from "./RadioGroupContext";
6
+ export { useFieldControl } from "./useFieldControl";
7
+ export type { FieldControlProps } from "./useFieldControl";
8
+ export { useRadioGroupItem } from "./useRadioGroupItem";
@@ -0,0 +1,36 @@
1
+ import type { AriaAttributes } from "react";
2
+ /**
3
+ * The props a form control passes to `useFieldControl` and renders from what it returns
4
+ */
5
+ export interface FieldControlProps {
6
+ /**
7
+ * Ids of the elements that describe the control, separated by spaces
8
+ */
9
+ "aria-describedby"?: AriaAttributes["aria-describedby"];
10
+ /**
11
+ * Whether the control's value fails validation
12
+ */
13
+ "aria-invalid"?: AriaAttributes["aria-invalid"];
14
+ /**
15
+ * Whether the control is disabled
16
+ */
17
+ disabled?: boolean;
18
+ /**
19
+ * The control's `id`, which a label points at
20
+ */
21
+ id?: string;
22
+ /**
23
+ * Whether the control must be filled in
24
+ */
25
+ required?: boolean;
26
+ }
27
+ /**
28
+ * Merges the state of the surrounding `Field` into a form control's own props
29
+ *
30
+ * @param props the control's own `aria-describedby`, `aria-invalid`, `disabled`, `id` and `required`
31
+ * @returns the props to render on the control. Outside a `Field` they are the given props. Inside one, the
32
+ * field's control id replaces the control's own `id`, the field's description and error ids come before the
33
+ * control's own `aria-describedby`, and the control's own `aria-invalid`, `disabled` and `required` win over
34
+ * the field's, which are left absent rather than false.
35
+ */
36
+ export declare function useFieldControl({ "aria-describedby": ownDescribedBy, "aria-invalid": ownInvalid, disabled: ownDisabled, id: ownId, required: ownRequired, }: FieldControlProps): FieldControlProps;