@krelborn/stylesui 0.0.0-stage → 0.9.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 (526) 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 +5 -0
  6. package/dist/accessibility/index.d.ts +2 -0
  7. package/dist/collections/index.d.ts +7 -0
  8. package/dist/collections/optionId.d.ts +8 -0
  9. package/dist/collections/optionId.js +6 -0
  10. package/dist/collections/renderedOptions.d.ts +37 -0
  11. package/dist/collections/renderedOptions.js +17 -0
  12. package/dist/collections/targetIndexForKey.d.ts +45 -0
  13. package/dist/collections/targetIndexForKey.js +16 -0
  14. package/dist/collections/typeAhead.d.ts +43 -0
  15. package/dist/collections/typeAhead.js +18 -0
  16. package/dist/components/Accordion/Accordion.css +1 -0
  17. package/dist/components/Accordion/Accordion.d.ts +90 -0
  18. package/dist/components/Accordion/Accordion.js +47 -0
  19. package/dist/components/Accordion/Accordion.module.js +19 -0
  20. package/dist/components/Accordion/AccordionContext.d.ts +40 -0
  21. package/dist/components/Accordion/AccordionContext.js +4 -0
  22. package/dist/components/Accordion/AccordionItem.d.ts +51 -0
  23. package/dist/components/Accordion/AccordionItem.js +69 -0
  24. package/dist/components/Accordion/AccordionToggleContent.d.ts +30 -0
  25. package/dist/components/Accordion/AccordionToggleContent.js +44 -0
  26. package/dist/components/Accordion/accordionIds.d.ts +24 -0
  27. package/dist/components/Accordion/accordionIds.js +12 -0
  28. package/dist/components/Accordion/index.d.ts +4 -0
  29. package/dist/components/Accordion/useAccordionContext.d.ts +9 -0
  30. package/dist/components/Accordion/useAccordionContext.js +10 -0
  31. package/dist/components/Accordion/useFindablePanel.d.ts +25 -0
  32. package/dist/components/Accordion/useFindablePanel.js +36 -0
  33. package/dist/components/Accordion/useFragmentTargetReveal.d.ts +27 -0
  34. package/dist/components/Accordion/useFragmentTargetReveal.js +36 -0
  35. package/dist/components/Accordion/useHasOpened.d.ts +7 -0
  36. package/dist/components/Accordion/useHasOpened.js +7 -0
  37. package/dist/components/Alert/Alert.css +1 -0
  38. package/dist/components/Alert/Alert.d.ts +47 -0
  39. package/dist/components/Alert/Alert.js +27 -0
  40. package/dist/components/Alert/Alert.module.js +8 -0
  41. package/dist/components/Alert/AlertIcon.d.ts +14 -0
  42. package/dist/components/Alert/AlertIcon.js +42 -0
  43. package/dist/components/Alert/index.d.ts +2 -0
  44. package/dist/components/Avatar/Avatar.css +1 -0
  45. package/dist/components/Avatar/Avatar.d.ts +33 -0
  46. package/dist/components/Avatar/Avatar.js +26 -0
  47. package/dist/components/Avatar/Avatar.module.js +6 -0
  48. package/dist/components/Avatar/index.d.ts +2 -0
  49. package/dist/components/Avatar/initialsOf.d.ts +9 -0
  50. package/dist/components/Avatar/initialsOf.js +9 -0
  51. package/dist/components/AvatarGroup/AvatarGroup.css +1 -0
  52. package/dist/components/AvatarGroup/AvatarGroup.d.ts +30 -0
  53. package/dist/components/AvatarGroup/AvatarGroup.js +33 -0
  54. package/dist/components/AvatarGroup/AvatarGroup.module.js +6 -0
  55. package/dist/components/AvatarGroup/index.d.ts +2 -0
  56. package/dist/components/Badge/Badge.css +1 -0
  57. package/dist/components/Badge/Badge.d.ts +36 -0
  58. package/dist/components/Badge/Badge.js +15 -0
  59. package/dist/components/Badge/Badge.module.js +3 -0
  60. package/dist/components/Badge/index.d.ts +2 -0
  61. package/dist/components/Box/Box.css +1 -0
  62. package/dist/components/Box/Box.d.ts +31 -0
  63. package/dist/components/Box/Box.js +17 -0
  64. package/dist/components/Box/Box.module.js +3 -0
  65. package/dist/components/Box/index.d.ts +2 -0
  66. package/dist/components/Button/Button.css +1 -0
  67. package/dist/components/Button/Button.d.ts +42 -0
  68. package/dist/components/Button/Button.js +24 -0
  69. package/dist/components/Button/Button.module.js +6 -0
  70. package/dist/components/Button/index.d.ts +2 -0
  71. package/dist/components/Card/Card.css +1 -0
  72. package/dist/components/Card/Card.d.ts +24 -0
  73. package/dist/components/Card/Card.js +14 -0
  74. package/dist/components/Card/Card.module.js +3 -0
  75. package/dist/components/Card/index.d.ts +2 -0
  76. package/dist/components/Center/Center.css +1 -0
  77. package/dist/components/Center/Center.d.ts +34 -0
  78. package/dist/components/Center/Center.js +19 -0
  79. package/dist/components/Center/Center.module.js +3 -0
  80. package/dist/components/Center/index.d.ts +2 -0
  81. package/dist/components/Checkbox/Checkbox.d.ts +23 -0
  82. package/dist/components/Checkbox/Checkbox.js +12 -0
  83. package/dist/components/Checkbox/index.d.ts +2 -0
  84. package/dist/components/ChoiceControl/ChoiceControl.css +1 -0
  85. package/dist/components/ChoiceControl/ChoiceControl.d.ts +21 -0
  86. package/dist/components/ChoiceControl/ChoiceControl.js +39 -0
  87. package/dist/components/ChoiceControl/ChoiceControl.module.js +8 -0
  88. package/dist/components/ChoiceControl/index.d.ts +1 -0
  89. package/dist/components/Cluster/Cluster.d.ts +29 -0
  90. package/dist/components/Cluster/Cluster.js +13 -0
  91. package/dist/components/Cluster/index.d.ts +2 -0
  92. package/dist/components/Code/Code.css +1 -0
  93. package/dist/components/Code/Code.d.ts +13 -0
  94. package/dist/components/Code/Code.js +19 -0
  95. package/dist/components/Code/Code.module.js +3 -0
  96. package/dist/components/Code/index.d.ts +2 -0
  97. package/dist/components/Combobox/Autocomplete.d.ts +83 -0
  98. package/dist/components/Combobox/Autocomplete.js +102 -0
  99. package/dist/components/Combobox/Combobox.css +1 -0
  100. package/dist/components/Combobox/Combobox.d.ts +59 -0
  101. package/dist/components/Combobox/Combobox.js +82 -0
  102. package/dist/components/Combobox/Combobox.module.js +17 -0
  103. package/dist/components/Combobox/ComboboxContext.d.ts +88 -0
  104. package/dist/components/Combobox/ComboboxContext.js +4 -0
  105. package/dist/components/Combobox/ComboboxFieldValue.d.ts +17 -0
  106. package/dist/components/Combobox/ComboboxFieldValue.js +33 -0
  107. package/dist/components/Combobox/ComboboxOption.d.ts +51 -0
  108. package/dist/components/Combobox/ComboboxOption.js +74 -0
  109. package/dist/components/Combobox/ComboboxOptionContent.d.ts +32 -0
  110. package/dist/components/Combobox/ComboboxOptionContent.js +51 -0
  111. package/dist/components/Combobox/ComboboxPopup.d.ts +50 -0
  112. package/dist/components/Combobox/ComboboxPopup.js +59 -0
  113. package/dist/components/Combobox/autocompleteKeys.d.ts +31 -0
  114. package/dist/components/Combobox/autocompleteKeys.js +25 -0
  115. package/dist/components/Combobox/comboboxKeys.d.ts +10 -0
  116. package/dist/components/Combobox/comboboxKeys.js +22 -0
  117. package/dist/components/Combobox/containsText.d.ts +9 -0
  118. package/dist/components/Combobox/containsText.js +8 -0
  119. package/dist/components/Combobox/index.d.ts +6 -0
  120. package/dist/components/Combobox/isAltArrow.d.ts +9 -0
  121. package/dist/components/Combobox/isAltArrow.js +5 -0
  122. package/dist/components/Combobox/isOptionShown.d.ts +10 -0
  123. package/dist/components/Combobox/isOptionShown.js +5 -0
  124. package/dist/components/Combobox/useAutocompleteText.d.ts +56 -0
  125. package/dist/components/Combobox/useAutocompleteText.js +27 -0
  126. package/dist/components/Combobox/useComboboxContext.d.ts +9 -0
  127. package/dist/components/Combobox/useComboboxContext.js +10 -0
  128. package/dist/components/Combobox/useComboboxList.d.ts +129 -0
  129. package/dist/components/Combobox/useComboboxList.js +138 -0
  130. package/dist/components/Combobox/useComboboxOption.d.ts +35 -0
  131. package/dist/components/Combobox/useComboboxOption.js +46 -0
  132. package/dist/components/Combobox/useComboboxSelection.d.ts +45 -0
  133. package/dist/components/Combobox/useComboboxSelection.js +17 -0
  134. package/dist/components/Combobox/useResultsAnnouncement.d.ts +23 -0
  135. package/dist/components/Combobox/useResultsAnnouncement.js +24 -0
  136. package/dist/components/ContextMenu/index.d.ts +2 -0
  137. package/dist/components/ContextMenu/useContextMenu.d.ts +112 -0
  138. package/dist/components/ContextMenu/useContextMenu.js +202 -0
  139. package/dist/components/ContextMenu/watchLongPress.d.ts +35 -0
  140. package/dist/components/ContextMenu/watchLongPress.js +38 -0
  141. package/dist/components/Counter/Counter.css +1 -0
  142. package/dist/components/Counter/Counter.d.ts +39 -0
  143. package/dist/components/Counter/Counter.js +18 -0
  144. package/dist/components/Counter/Counter.module.js +3 -0
  145. package/dist/components/Counter/index.d.ts +2 -0
  146. package/dist/components/Cover/Cover.css +1 -0
  147. package/dist/components/Cover/Cover.d.ts +40 -0
  148. package/dist/components/Cover/Cover.js +29 -0
  149. package/dist/components/Cover/Cover.module.js +6 -0
  150. package/dist/components/Cover/index.d.ts +2 -0
  151. package/dist/components/Divider/Divider.css +1 -0
  152. package/dist/components/Divider/Divider.d.ts +25 -0
  153. package/dist/components/Divider/Divider.js +15 -0
  154. package/dist/components/Divider/Divider.module.js +3 -0
  155. package/dist/components/Divider/index.d.ts +2 -0
  156. package/dist/components/Field/Field.css +1 -0
  157. package/dist/components/Field/Field.d.ts +49 -0
  158. package/dist/components/Field/Field.js +49 -0
  159. package/dist/components/Field/Field.module.js +8 -0
  160. package/dist/components/Field/index.d.ts +2 -0
  161. package/dist/components/Fieldset/Fieldset.css +1 -0
  162. package/dist/components/Fieldset/Fieldset.d.ts +35 -0
  163. package/dist/components/Fieldset/Fieldset.js +64 -0
  164. package/dist/components/Fieldset/Fieldset.module.js +8 -0
  165. package/dist/components/Fieldset/index.d.ts +2 -0
  166. package/dist/components/Frame/Frame.css +1 -0
  167. package/dist/components/Frame/Frame.d.ts +23 -0
  168. package/dist/components/Frame/Frame.js +16 -0
  169. package/dist/components/Frame/Frame.module.js +3 -0
  170. package/dist/components/Frame/index.d.ts +2 -0
  171. package/dist/components/Grid/Grid.css +1 -0
  172. package/dist/components/Grid/Grid.d.ts +25 -0
  173. package/dist/components/Grid/Grid.js +22 -0
  174. package/dist/components/Grid/Grid.module.js +3 -0
  175. package/dist/components/Grid/index.d.ts +2 -0
  176. package/dist/components/Heading/Heading.css +1 -0
  177. package/dist/components/Heading/Heading.d.ts +39 -0
  178. package/dist/components/Heading/Heading.js +23 -0
  179. package/dist/components/Heading/Heading.module.js +3 -0
  180. package/dist/components/Heading/index.d.ts +2 -0
  181. package/dist/components/HorizontalFlow/HorizontalFlow.css +1 -0
  182. package/dist/components/HorizontalFlow/HorizontalFlow.d.ts +30 -0
  183. package/dist/components/HorizontalFlow/HorizontalFlow.js +30 -0
  184. package/dist/components/HorizontalFlow/HorizontalFlow.module.js +3 -0
  185. package/dist/components/HorizontalFlow/index.d.ts +2 -0
  186. package/dist/components/Icon/AddIcon.d.ts +11 -0
  187. package/dist/components/Icon/AddIcon.js +21 -0
  188. package/dist/components/Icon/CheckIcon.d.ts +11 -0
  189. package/dist/components/Icon/CheckIcon.js +18 -0
  190. package/dist/components/Icon/ChevronDownIcon.d.ts +11 -0
  191. package/dist/components/Icon/ChevronDownIcon.js +18 -0
  192. package/dist/components/Icon/ChevronRightIcon.d.ts +11 -0
  193. package/dist/components/Icon/ChevronRightIcon.js +19 -0
  194. package/dist/components/Icon/CloseIcon.d.ts +12 -0
  195. package/dist/components/Icon/CloseIcon.js +21 -0
  196. package/dist/components/Icon/ColorModeIcon.d.ts +12 -0
  197. package/dist/components/Icon/ColorModeIcon.js +36 -0
  198. package/dist/components/Icon/DeleteIcon.d.ts +11 -0
  199. package/dist/components/Icon/DeleteIcon.js +36 -0
  200. package/dist/components/Icon/Icon.css +1 -0
  201. package/dist/components/Icon/Icon.d.ts +40 -0
  202. package/dist/components/Icon/Icon.js +27 -0
  203. package/dist/components/Icon/Icon.module.js +6 -0
  204. package/dist/components/Icon/InfoIcon.d.ts +11 -0
  205. package/dist/components/Icon/InfoIcon.js +30 -0
  206. package/dist/components/Icon/MenuIcon.d.ts +12 -0
  207. package/dist/components/Icon/MenuIcon.js +28 -0
  208. package/dist/components/Icon/MoreHorizontalIcon.d.ts +11 -0
  209. package/dist/components/Icon/MoreHorizontalIcon.js +34 -0
  210. package/dist/components/Icon/MoreVerticalIcon.d.ts +11 -0
  211. package/dist/components/Icon/MoreVerticalIcon.js +34 -0
  212. package/dist/components/Icon/PaletteIcon.d.ts +12 -0
  213. package/dist/components/Icon/PaletteIcon.js +48 -0
  214. package/dist/components/Icon/RefreshIcon.d.ts +13 -0
  215. package/dist/components/Icon/RefreshIcon.js +32 -0
  216. package/dist/components/Icon/RemoveIcon.d.ts +11 -0
  217. package/dist/components/Icon/RemoveIcon.js +18 -0
  218. package/dist/components/Icon/SendIcon.d.ts +11 -0
  219. package/dist/components/Icon/SendIcon.js +22 -0
  220. package/dist/components/Icon/index.d.ts +16 -0
  221. package/dist/components/IconButton/IconButton.css +1 -0
  222. package/dist/components/IconButton/IconButton.d.ts +45 -0
  223. package/dist/components/IconButton/IconButton.js +40 -0
  224. package/dist/components/IconButton/IconButton.module.js +7 -0
  225. package/dist/components/IconButton/index.d.ts +2 -0
  226. package/dist/components/Kbd/Kbd.css +1 -0
  227. package/dist/components/Kbd/Kbd.d.ts +13 -0
  228. package/dist/components/Kbd/Kbd.js +19 -0
  229. package/dist/components/Kbd/Kbd.module.js +3 -0
  230. package/dist/components/Kbd/index.d.ts +2 -0
  231. package/dist/components/Link/Link.css +1 -0
  232. package/dist/components/Link/Link.d.ts +52 -0
  233. package/dist/components/Link/Link.js +26 -0
  234. package/dist/components/Link/Link.module.js +3 -0
  235. package/dist/components/Link/index.d.ts +2 -0
  236. package/dist/components/Listbox/Listbox.css +1 -0
  237. package/dist/components/Listbox/Listbox.d.ts +46 -0
  238. package/dist/components/Listbox/Listbox.js +55 -0
  239. package/dist/components/Listbox/Listbox.module.js +6 -0
  240. package/dist/components/Listbox/ListboxContext.d.ts +38 -0
  241. package/dist/components/Listbox/ListboxContext.js +4 -0
  242. package/dist/components/Listbox/ListboxOption.d.ts +31 -0
  243. package/dist/components/Listbox/ListboxOption.js +42 -0
  244. package/dist/components/Listbox/index.d.ts +4 -0
  245. package/dist/components/Listbox/useListbox.d.ts +54 -0
  246. package/dist/components/Listbox/useListbox.js +103 -0
  247. package/dist/components/Listbox/useListboxContext.d.ts +9 -0
  248. package/dist/components/Listbox/useListboxContext.js +10 -0
  249. package/dist/components/Menu/Menu.d.ts +70 -0
  250. package/dist/components/Menu/Menu.js +76 -0
  251. package/dist/components/Menu/MenuContext.d.ts +29 -0
  252. package/dist/components/Menu/MenuContext.js +4 -0
  253. package/dist/components/Menu/MenuGroup.d.ts +22 -0
  254. package/dist/components/Menu/MenuGroup.js +32 -0
  255. package/dist/components/Menu/MenuItem.d.ts +77 -0
  256. package/dist/components/Menu/MenuItem.js +54 -0
  257. package/dist/components/Menu/MenuItemCheckbox.d.ts +61 -0
  258. package/dist/components/Menu/MenuItemCheckbox.js +37 -0
  259. package/dist/components/Menu/MenuItemRadio.d.ts +47 -0
  260. package/dist/components/Menu/MenuItemRadio.js +39 -0
  261. package/dist/components/Menu/MenuRadioGroup.d.ts +34 -0
  262. package/dist/components/Menu/MenuRadioGroup.js +27 -0
  263. package/dist/components/Menu/MenuRadioGroupContext.d.ts +17 -0
  264. package/dist/components/Menu/MenuRadioGroupContext.js +4 -0
  265. package/dist/components/Menu/MenuSeparator.d.ts +16 -0
  266. package/dist/components/Menu/MenuSeparator.js +20 -0
  267. package/dist/components/Menu/Submenu.d.ts +36 -0
  268. package/dist/components/Menu/Submenu.js +122 -0
  269. package/dist/components/Menu/index.d.ts +18 -0
  270. package/dist/components/Menu/useMenu.d.ts +18 -0
  271. package/dist/components/Menu/useMenu.js +20 -0
  272. package/dist/components/Menu/useMenuButton.d.ts +124 -0
  273. package/dist/components/Menu/useMenuButton.js +92 -0
  274. package/dist/components/Menu/useMenuContext.d.ts +9 -0
  275. package/dist/components/Menu/useMenuContext.js +10 -0
  276. package/dist/components/Menu/useMenuItemContent.d.ts +55 -0
  277. package/dist/components/Menu/useMenuItemContent.js +66 -0
  278. package/dist/components/Menu/useMenuPointer.d.ts +27 -0
  279. package/dist/components/Menu/useMenuPointer.js +56 -0
  280. package/dist/components/Menu/useMenuRadioGroupContext.d.ts +9 -0
  281. package/dist/components/Menu/useMenuRadioGroupContext.js +10 -0
  282. package/dist/components/MenuSurface/MenuSurface.css +1 -0
  283. package/dist/components/MenuSurface/MenuSurface.module.js +16 -0
  284. package/dist/components/Menubar/Menubar.css +1 -0
  285. package/dist/components/Menubar/Menubar.d.ts +23 -0
  286. package/dist/components/Menubar/Menubar.js +67 -0
  287. package/dist/components/Menubar/Menubar.module.js +7 -0
  288. package/dist/components/Menubar/MenubarContext.d.ts +29 -0
  289. package/dist/components/Menubar/MenubarContext.js +4 -0
  290. package/dist/components/Menubar/MenubarMenu.d.ts +26 -0
  291. package/dist/components/Menubar/MenubarMenu.js +88 -0
  292. package/dist/components/Menubar/findOpenMenubarItem.d.ts +7 -0
  293. package/dist/components/Menubar/findOpenMenubarItem.js +6 -0
  294. package/dist/components/Menubar/index.d.ts +4 -0
  295. package/dist/components/Menubar/menubarItems.d.ts +7 -0
  296. package/dist/components/Menubar/menubarItems.js +5 -0
  297. package/dist/components/Menubar/useMenubarContext.d.ts +9 -0
  298. package/dist/components/Menubar/useMenubarContext.js +10 -0
  299. package/dist/components/NavBar/NavBar.css +1 -0
  300. package/dist/components/NavBar/NavBar.d.ts +53 -0
  301. package/dist/components/NavBar/NavBar.js +97 -0
  302. package/dist/components/NavBar/NavBar.module.js +22 -0
  303. package/dist/components/NavBar/NavBarContext.d.ts +21 -0
  304. package/dist/components/NavBar/NavBarContext.js +4 -0
  305. package/dist/components/NavBar/NavBarItem.d.ts +32 -0
  306. package/dist/components/NavBar/NavBarItem.js +18 -0
  307. package/dist/components/NavBar/NavBarMenu.d.ts +32 -0
  308. package/dist/components/NavBar/NavBarMenu.js +84 -0
  309. package/dist/components/NavBar/NavBarMenuGroup.d.ts +25 -0
  310. package/dist/components/NavBar/NavBarMenuGroup.js +40 -0
  311. package/dist/components/NavBar/NavBarMenuItem.d.ts +36 -0
  312. package/dist/components/NavBar/NavBarMenuItem.js +49 -0
  313. package/dist/components/NavBar/index.d.ts +10 -0
  314. package/dist/components/NavBar/isNavBarCollapsed.d.ts +8 -0
  315. package/dist/components/NavBar/isNavBarCollapsed.js +5 -0
  316. package/dist/components/NavBar/leavesPageInPlace.d.ts +12 -0
  317. package/dist/components/NavBar/leavesPageInPlace.js +29 -0
  318. package/dist/components/NavBar/renderNavBarLink.d.ts +12 -0
  319. package/dist/components/NavBar/renderNavBarLink.js +16 -0
  320. package/dist/components/NavBar/useLayoutSwitch.d.ts +26 -0
  321. package/dist/components/NavBar/useLayoutSwitch.js +25 -0
  322. package/dist/components/NavBar/useNavBarContext.d.ts +9 -0
  323. package/dist/components/NavBar/useNavBarContext.js +10 -0
  324. package/dist/components/NavList/NavList.css +1 -0
  325. package/dist/components/NavList/NavList.d.ts +20 -0
  326. package/dist/components/NavList/NavList.js +27 -0
  327. package/dist/components/NavList/NavList.module.js +11 -0
  328. package/dist/components/NavList/NavListGroup.d.ts +25 -0
  329. package/dist/components/NavList/NavListGroup.js +39 -0
  330. package/dist/components/NavList/NavListItem.d.ts +49 -0
  331. package/dist/components/NavList/NavListItem.js +56 -0
  332. package/dist/components/NavList/index.d.ts +6 -0
  333. package/dist/components/Overlay/Overlay.css +1 -0
  334. package/dist/components/Overlay/Overlay.d.ts +33 -0
  335. package/dist/components/Overlay/Overlay.js +35 -0
  336. package/dist/components/Overlay/Overlay.module.js +3 -0
  337. package/dist/components/Overlay/index.d.ts +1 -0
  338. package/dist/components/PageLayout/PageLayout.css +1 -0
  339. package/dist/components/PageLayout/PageLayout.d.ts +26 -0
  340. package/dist/components/PageLayout/PageLayout.js +17 -0
  341. package/dist/components/PageLayout/PageLayout.module.js +3 -0
  342. package/dist/components/PageLayout/index.d.ts +2 -0
  343. package/dist/components/Popover/Popover.css +1 -0
  344. package/dist/components/Popover/Popover.d.ts +52 -0
  345. package/dist/components/Popover/Popover.js +20 -0
  346. package/dist/components/Popover/Popover.module.js +3 -0
  347. package/dist/components/Popover/index.d.ts +4 -0
  348. package/dist/components/Popover/usePopover.d.ts +96 -0
  349. package/dist/components/Popover/usePopover.js +71 -0
  350. package/dist/components/Prose/Prose.css +1 -0
  351. package/dist/components/Prose/Prose.d.ts +50 -0
  352. package/dist/components/Prose/Prose.js +15 -0
  353. package/dist/components/Prose/Prose.module.js +3 -0
  354. package/dist/components/Prose/index.d.ts +2 -0
  355. package/dist/components/Radio/Radio.d.ts +29 -0
  356. package/dist/components/Radio/Radio.js +23 -0
  357. package/dist/components/Radio/index.d.ts +2 -0
  358. package/dist/components/RadioGroup/RadioGroup.css +1 -0
  359. package/dist/components/RadioGroup/RadioGroup.d.ts +58 -0
  360. package/dist/components/RadioGroup/RadioGroup.js +36 -0
  361. package/dist/components/RadioGroup/RadioGroup.module.js +3 -0
  362. package/dist/components/RadioGroup/index.d.ts +2 -0
  363. package/dist/components/RequiredIndicator/RequiredIndicator.css +1 -0
  364. package/dist/components/RequiredIndicator/RequiredIndicator.d.ts +6 -0
  365. package/dist/components/RequiredIndicator/RequiredIndicator.js +15 -0
  366. package/dist/components/RequiredIndicator/RequiredIndicator.module.js +3 -0
  367. package/dist/components/RequiredIndicator/index.d.ts +1 -0
  368. package/dist/components/Row/Row.d.ts +29 -0
  369. package/dist/components/Row/Row.js +13 -0
  370. package/dist/components/Row/index.d.ts +2 -0
  371. package/dist/components/SegmentedControl/Segment.d.ts +24 -0
  372. package/dist/components/SegmentedControl/Segment.js +41 -0
  373. package/dist/components/SegmentedControl/SegmentedControl.css +1 -0
  374. package/dist/components/SegmentedControl/SegmentedControl.d.ts +25 -0
  375. package/dist/components/SegmentedControl/SegmentedControl.js +19 -0
  376. package/dist/components/SegmentedControl/SegmentedControl.module.js +9 -0
  377. package/dist/components/SegmentedControl/index.d.ts +4 -0
  378. package/dist/components/Select/Select.d.ts +27 -0
  379. package/dist/components/Select/Select.js +11 -0
  380. package/dist/components/Select/index.d.ts +2 -0
  381. package/dist/components/Sidebar/Sidebar.css +1 -0
  382. package/dist/components/Sidebar/Sidebar.d.ts +42 -0
  383. package/dist/components/Sidebar/Sidebar.js +23 -0
  384. package/dist/components/Sidebar/Sidebar.module.js +3 -0
  385. package/dist/components/Sidebar/index.d.ts +2 -0
  386. package/dist/components/SkipLink/SkipLink.css +1 -0
  387. package/dist/components/SkipLink/SkipLink.d.ts +20 -0
  388. package/dist/components/SkipLink/SkipLink.js +20 -0
  389. package/dist/components/SkipLink/SkipLink.module.js +3 -0
  390. package/dist/components/SkipLink/index.d.ts +2 -0
  391. package/dist/components/Spinner/Spinner.css +1 -0
  392. package/dist/components/Spinner/Spinner.d.ts +13 -0
  393. package/dist/components/Spinner/Spinner.js +32 -0
  394. package/dist/components/Spinner/Spinner.module.js +7 -0
  395. package/dist/components/Spinner/index.d.ts +1 -0
  396. package/dist/components/Stack/Stack.css +1 -0
  397. package/dist/components/Stack/Stack.d.ts +25 -0
  398. package/dist/components/Stack/Stack.js +20 -0
  399. package/dist/components/Stack/Stack.module.js +3 -0
  400. package/dist/components/Stack/index.d.ts +2 -0
  401. package/dist/components/StatusDot/StatusDot.css +1 -0
  402. package/dist/components/StatusDot/StatusDot.d.ts +57 -0
  403. package/dist/components/StatusDot/StatusDot.js +20 -0
  404. package/dist/components/StatusDot/StatusDot.module.js +3 -0
  405. package/dist/components/StatusDot/index.d.ts +2 -0
  406. package/dist/components/Switch/Switch.d.ts +24 -0
  407. package/dist/components/Switch/Switch.js +12 -0
  408. package/dist/components/Switch/index.d.ts +2 -0
  409. package/dist/components/Switcher/Switcher.css +1 -0
  410. package/dist/components/Switcher/Switcher.d.ts +27 -0
  411. package/dist/components/Switcher/Switcher.js +22 -0
  412. package/dist/components/Switcher/Switcher.module.js +3 -0
  413. package/dist/components/Switcher/index.d.ts +2 -0
  414. package/dist/components/Tabs/Tab.d.ts +26 -0
  415. package/dist/components/Tabs/Tab.js +60 -0
  416. package/dist/components/Tabs/TabList.d.ts +16 -0
  417. package/dist/components/Tabs/TabList.js +22 -0
  418. package/dist/components/Tabs/TabPanel.d.ts +24 -0
  419. package/dist/components/Tabs/TabPanel.js +21 -0
  420. package/dist/components/Tabs/Tabs.css +1 -0
  421. package/dist/components/Tabs/Tabs.d.ts +81 -0
  422. package/dist/components/Tabs/Tabs.js +30 -0
  423. package/dist/components/Tabs/Tabs.module.js +8 -0
  424. package/dist/components/Tabs/TabsContext.d.ts +39 -0
  425. package/dist/components/Tabs/TabsContext.js +4 -0
  426. package/dist/components/Tabs/index.d.ts +8 -0
  427. package/dist/components/Tabs/tabIds.d.ts +16 -0
  428. package/dist/components/Tabs/tabIds.js +9 -0
  429. package/dist/components/Tabs/useTabsContext.d.ts +9 -0
  430. package/dist/components/Tabs/useTabsContext.js +10 -0
  431. package/dist/components/Text/Text.css +1 -0
  432. package/dist/components/Text/Text.d.ts +40 -0
  433. package/dist/components/Text/Text.js +16 -0
  434. package/dist/components/Text/Text.module.js +3 -0
  435. package/dist/components/Text/index.d.ts +2 -0
  436. package/dist/components/TextControl/TextControl.css +1 -0
  437. package/dist/components/TextControl/TextControl.d.ts +22 -0
  438. package/dist/components/TextControl/TextControl.js +27 -0
  439. package/dist/components/TextControl/TextControl.module.js +3 -0
  440. package/dist/components/TextControl/index.d.ts +1 -0
  441. package/dist/components/TextInput/TextInput.d.ts +31 -0
  442. package/dist/components/TextInput/TextInput.js +12 -0
  443. package/dist/components/TextInput/index.d.ts +2 -0
  444. package/dist/components/Textarea/Textarea.d.ts +24 -0
  445. package/dist/components/Textarea/Textarea.js +11 -0
  446. package/dist/components/Textarea/index.d.ts +2 -0
  447. package/dist/components/Theme/Theme.d.ts +46 -0
  448. package/dist/components/Theme/Theme.js +17 -0
  449. package/dist/components/Theme/index.d.ts +2 -0
  450. package/dist/components/Tooltip/Tooltip.css +1 -0
  451. package/dist/components/Tooltip/Tooltip.d.ts +49 -0
  452. package/dist/components/Tooltip/Tooltip.js +21 -0
  453. package/dist/components/Tooltip/Tooltip.module.js +3 -0
  454. package/dist/components/Tooltip/index.d.ts +4 -0
  455. package/dist/components/Tooltip/tooltipCoordinator.d.ts +14 -0
  456. package/dist/components/Tooltip/tooltipCoordinator.js +16 -0
  457. package/dist/components/Tooltip/useTooltip.d.ts +119 -0
  458. package/dist/components/Tooltip/useTooltip.js +73 -0
  459. package/dist/components/VisuallyHidden/VisuallyHidden.css +1 -0
  460. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
  461. package/dist/components/VisuallyHidden/VisuallyHidden.js +19 -0
  462. package/dist/components/VisuallyHidden/VisuallyHidden.module.js +3 -0
  463. package/dist/components/VisuallyHidden/index.d.ts +2 -0
  464. package/dist/errors/MissingContextError.d.ts +11 -0
  465. package/dist/errors/MissingContextError.js +8 -0
  466. package/dist/errors/PopoverRefusedError.d.ts +12 -0
  467. package/dist/errors/PopoverRefusedError.js +8 -0
  468. package/dist/errors/index.d.ts +2 -0
  469. package/dist/forms/ControlSize.d.ts +4 -0
  470. package/dist/forms/FieldContext.d.ts +34 -0
  471. package/dist/forms/FieldContext.js +4 -0
  472. package/dist/forms/RadioGroupContext.d.ts +34 -0
  473. package/dist/forms/RadioGroupContext.js +4 -0
  474. package/dist/forms/hasContent.d.ts +10 -0
  475. package/dist/forms/hasContent.js +6 -0
  476. package/dist/forms/index.d.ts +8 -0
  477. package/dist/forms/useFieldControl.d.ts +36 -0
  478. package/dist/forms/useFieldControl.js +28 -0
  479. package/dist/forms/useRadioGroupItem.d.ts +50 -0
  480. package/dist/forms/useRadioGroupItem.js +26 -0
  481. package/dist/index.d.ts +107 -0
  482. package/dist/index.js +92 -0
  483. package/dist/layout/Space.d.ts +4 -0
  484. package/dist/layout/alignment.d.ts +8 -0
  485. package/dist/layout/index.d.ts +5 -0
  486. package/dist/layout/listRole.d.ts +11 -0
  487. package/dist/layout/listRole.js +5 -0
  488. package/dist/layout/spaceValue.d.ts +8 -0
  489. package/dist/layout/spaceValue.js +5 -0
  490. package/dist/layout/withCustomProperties.d.ts +9 -0
  491. package/dist/layout/withCustomProperties.js +8 -0
  492. package/dist/links/LinkOrButtonProps.d.ts +17 -0
  493. package/dist/links/index.d.ts +1 -0
  494. package/dist/menus/closeWhenFocusLeaves.d.ts +9 -0
  495. package/dist/menus/closeWhenFocusLeaves.js +11 -0
  496. package/dist/menus/focusItem.d.ts +6 -0
  497. package/dist/menus/focusItem.js +9 -0
  498. package/dist/menus/focusOnOpening.d.ts +11 -0
  499. package/dist/menus/focusOnOpening.js +11 -0
  500. package/dist/menus/hasModifier.d.ts +7 -0
  501. package/dist/menus/hasModifier.js +5 -0
  502. package/dist/menus/index.d.ts +11 -0
  503. package/dist/menus/itemText.d.ts +8 -0
  504. package/dist/menus/itemText.js +6 -0
  505. package/dist/menus/leaveMenuOnTab.d.ts +9 -0
  506. package/dist/menus/leaveMenuOnTab.js +6 -0
  507. package/dist/menus/pointerIntent.d.ts +36 -0
  508. package/dist/menus/pointerIntent.js +68 -0
  509. package/dist/menus/renderedItems.d.ts +8 -0
  510. package/dist/menus/renderedItems.js +4 -0
  511. package/dist/menus/watchRemovals.d.ts +8 -0
  512. package/dist/menus/watchRemovals.js +23 -0
  513. package/dist/overlays/OverlayDelay.d.ts +13 -0
  514. package/dist/overlays/OverlayPlacement.d.ts +6 -0
  515. package/dist/overlays/anchorNameFor.d.ts +7 -0
  516. package/dist/overlays/anchorNameFor.js +5 -0
  517. package/dist/overlays/index.d.ts +6 -0
  518. package/dist/overlays/mergeProps.d.ts +13 -0
  519. package/dist/overlays/mergeProps.js +29 -0
  520. package/dist/overlays/syncPopover.d.ts +11 -0
  521. package/dist/overlays/syncPopover.js +24 -0
  522. package/dist/overlays/useOverlay.d.ts +71 -0
  523. package/dist/overlays/useOverlay.js +49 -0
  524. package/dist/styles.css +1 -0
  525. package/fonts/playful.css +3 -0
  526. package/package.json +103 -3
@@ -0,0 +1,29 @@
1
+ import type { JSX } from "react";
2
+ import type { Alignment, Justification, Space } from "../../layout";
3
+ import type { BoxElement, BoxProps } from "../Box";
4
+ interface ClusterOwnProps {
5
+ /**
6
+ * Cross-axis placement of children. Defaults to `center`.
7
+ */
8
+ align?: Alignment;
9
+ /**
10
+ * Space between children and between wrapped lines. Defaults to `2`.
11
+ */
12
+ gap?: Space;
13
+ /**
14
+ * Main-axis distribution of children. Defaults to `start`.
15
+ */
16
+ justify?: Justification;
17
+ }
18
+ /**
19
+ * Props for `Cluster`: its own props plus every prop supported by the element given in `as`
20
+ */
21
+ export type ClusterProps<E extends BoxElement = "div"> = ClusterOwnProps & Omit<BoxProps<E>, keyof ClusterOwnProps>;
22
+ /**
23
+ * Horizontal flow that wraps its children onto new lines when they run out of room
24
+ *
25
+ * @example
26
+ * <Cluster as="ul" aria-label="Tags">...</Cluster>
27
+ */
28
+ export declare function Cluster<E extends BoxElement = "div">({ align, gap, justify, ...rest }: ClusterProps<E>): JSX.Element;
29
+ export {};
@@ -0,0 +1,13 @@
1
+ import { HorizontalFlow as e } from "../HorizontalFlow/HorizontalFlow.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ // src/components/Cluster/Cluster.tsx
4
+ function n({ align: n = "center", gap: r = 2, justify: i = "start", ...a }) {
5
+ return /* @__PURE__ */ t(e, {
6
+ ...a,
7
+ align: n,
8
+ gap: r,
9
+ justify: i,
10
+ wrap: !0
11
+ });
12
+ }
13
+ export { n as Cluster };
@@ -0,0 +1,2 @@
1
+ export { Cluster } from "./Cluster";
2
+ export type { ClusterProps } from "./Cluster";
@@ -0,0 +1 @@
1
+ .sui-code-arLxg{padding:0 var(--sui-space-1,.25rem);border-radius:var(--sui-radius-sm,2px);background-color:var(--sui-color-sunken,#f3f4f6);color:var(--sui-color-text,#111827);font-family:var(--sui-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);overflow-wrap:anywhere;font-size:.875em}
@@ -0,0 +1,13 @@
1
+ import type { JSX } from "react";
2
+ import type { BoxProps } from "../Box";
3
+ /**
4
+ * Props for `Code`: every native `code` prop
5
+ */
6
+ export type CodeProps = Omit<BoxProps<"code">, "as">;
7
+ /**
8
+ * Inline code, such as a command, a file name or a value, in the theme's monospace font on the sunken colour
9
+ *
10
+ * @example
11
+ * <Text as="p">Run <Code>pnpm install</Code> first.</Text>
12
+ */
13
+ export declare function Code({ className, ...rest }: CodeProps): JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { Box as e } from "../Box/Box.js";
2
+ import t from "./Code.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
+ // src/components/Code/Code.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.code, 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: "code",
16
+ className: l
17
+ }), o[5] = c, o[6] = l, o[7] = u) : u = o[7], u;
18
+ }
19
+ export { a as Code };
@@ -0,0 +1,3 @@
1
+ import './Code.css';// src/components/Code/Code.module.css
2
+ var e = "sui-code-arLxg", t = { code: e };
3
+ export { e as code, t as default };
@@ -0,0 +1,2 @@
1
+ export { Code } from "./Code";
2
+ export type { CodeProps } from "./Code";
@@ -0,0 +1,83 @@
1
+ import type { JSX, ReactNode } from "react";
2
+ import type { ControlSize } from "../../forms";
3
+ import type { BoxProps } from "../Box";
4
+ import type { ComboboxFilter } from "./ComboboxContext";
5
+ import type { ComboboxPlacement } from "./ComboboxPopup";
6
+ interface AutocompleteOwnProps {
7
+ /**
8
+ * The `ComboboxOption`s
9
+ */
10
+ children?: ReactNode;
11
+ /**
12
+ * The text the input starts with when `inputValue` is not given. Defaults to the selected option's text.
13
+ */
14
+ defaultInputValue?: string;
15
+ /**
16
+ * The option selected at first, which leaves the selection uncontrolled. Defaults to none.
17
+ */
18
+ defaultValue?: string | null;
19
+ /**
20
+ * Whether an option shows for the typed text. Defaults to the option's text containing it, ignoring case and
21
+ * accents. Null shows every option rendered, for a list filtered elsewhere, such as on a server; typing then makes no
22
+ * option active, since the options for the text are still to come.
23
+ */
24
+ filter?: ComboboxFilter | null;
25
+ /**
26
+ * The text in the input, which makes it controlled: update it from `onInputValueChange`
27
+ */
28
+ inputValue?: string;
29
+ /**
30
+ * Adds a hidden input that submits the selected value with a form under this name
31
+ */
32
+ name?: string;
33
+ /**
34
+ * Called with the text as the user types, with an option's text when they commit it, and with the selected
35
+ * option's text, or none, when focus leaves
36
+ */
37
+ onInputValueChange?: (inputValue: string) => void;
38
+ /**
39
+ * Called with the value of the option the user commits, or null when they clear the input with Escape
40
+ */
41
+ onValueChange?: (value: string | null) => void;
42
+ /**
43
+ * Where the list opens. It flips to the other side when there is no room. Defaults to `bottom-start`.
44
+ */
45
+ placement?: ComboboxPlacement;
46
+ /**
47
+ * What the live region says, and the empty list shows, for a number of matching options. Defaults to English:
48
+ * "No results", "1 result", "12 results".
49
+ */
50
+ resultsLabel?: (count: number) => string;
51
+ /**
52
+ * Height of the input, matching the `Button` sizes. Takes the place of the native `size` attribute. Defaults to
53
+ * `md`.
54
+ */
55
+ size?: ControlSize;
56
+ /**
57
+ * The selected option, or null for none, which makes the selection controlled: update it from `onValueChange`
58
+ */
59
+ value?: string | null;
60
+ }
61
+ /**
62
+ * Props for `Autocomplete`: its own props plus every `input` prop except those the combobox pattern sets
63
+ */
64
+ export interface AutocompleteProps extends AutocompleteOwnProps, Omit<BoxProps<"input">, "aria-activedescendant" | "aria-autocomplete" | "aria-controls" | "aria-expanded" | "as" | "children" | "dangerouslySetInnerHTML" | "defaultValue" | "role" | "size" | "type" | "value" | keyof AutocompleteOwnProps> {
65
+ }
66
+ /**
67
+ * A text input that filters a list of options as the user types, following the WAI-ARIA combobox pattern with list
68
+ * autocomplete, to choose one of many options by typing part of its name. Typing opens the list and makes the first
69
+ * match active; the arrow keys move through it; Enter or a click chooses an option, putting its text in the input;
70
+ * Escape closes the list, and then clears the input. Only an option can be the value: when focus leaves, the input shows
71
+ * the selected option's text again. The number of matches is announced once typing pauses. Inside a `Field` it takes
72
+ * its label, description, error, and required and disabled state from the field; outside one, give it an `aria-label`.
73
+ *
74
+ * @example
75
+ * <Field label="Country">
76
+ * <Autocomplete name="country" onValueChange={setCountry} value={country}>
77
+ * <ComboboxOption value="fr">France</ComboboxOption>
78
+ * <ComboboxOption value="jp">Japan</ComboboxOption>
79
+ * </Autocomplete>
80
+ * </Field>
81
+ */
82
+ export declare function Autocomplete({ children, className, defaultInputValue, defaultValue, filter, inputValue, name, onInputValueChange, onValueChange, placement, resultsLabel, size, value, ...rest }: AutocompleteProps): JSX.Element;
83
+ export {};
@@ -0,0 +1,102 @@
1
+ import { useFieldControl as e } from "../../forms/useFieldControl.js";
2
+ import { anchorNameFor as t } from "../../overlays/anchorNameFor.js";
3
+ import { mergeProps as n } from "../../overlays/mergeProps.js";
4
+ import { Box as r } from "../Box/Box.js";
5
+ import { ChevronDownIcon as i } from "../Icon/ChevronDownIcon.js";
6
+ import { TextControl as a } from "../TextControl/TextControl.js";
7
+ import { VisuallyHidden as o } from "../VisuallyHidden/VisuallyHidden.js";
8
+ import s from "./Combobox.module.js";
9
+ import { ComboboxPopup as c } from "./ComboboxPopup.js";
10
+ import { handleAutocompleteKey as l } from "./autocompleteKeys.js";
11
+ import { containsText as u } from "./containsText.js";
12
+ import { useAutocompleteText as d } from "./useAutocompleteText.js";
13
+ import { useComboboxList as f } from "./useComboboxList.js";
14
+ import { useComboboxSelection as p } from "./useComboboxSelection.js";
15
+ import { useResultsAnnouncement as m } from "./useResultsAnnouncement.js";
16
+ import { clsx as h } from "clsx";
17
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
18
+ // src/components/Combobox/Autocomplete.tsx
19
+ function y({ children: y, className: x, defaultInputValue: S, defaultValue: C = null, filter: w = u, inputValue: T, name: E, onInputValueChange: D, onValueChange: O, placement: k = "bottom-start", resultsLabel: A = b, size: j = "md", value: M, ...N }) {
20
+ let P = e(N), F = p({
21
+ defaultValue: C,
22
+ onValueChange: O,
23
+ value: M
24
+ }), I = d({
25
+ defaultInputValue: S,
26
+ inputValue: T,
27
+ onInputValueChange: D,
28
+ selectedText: F.selectedContent?.text
29
+ }), L = f({
30
+ controlId: P.id,
31
+ filter: w,
32
+ onCommit: I.commit,
33
+ query: I.query,
34
+ selection: F
35
+ }), { announceCount: R, announcement: z } = m(A, L.countShown, L.open), B = I.shown, V = { anchorName: t(L.listId) }, H = N.readOnly === !0;
36
+ function U(e) {
37
+ let t = e.currentTarget.value;
38
+ I.edit(t), L.openList("none", "keyboard"), L.matchFirst(), R();
39
+ }
40
+ function W(e) {
41
+ let t = {
42
+ commit: I.commit,
43
+ editing: I.editing,
44
+ shown: B
45
+ };
46
+ !e.defaultPrevented && !H && l(e, L, t) && e.preventDefault();
47
+ }
48
+ function G(e) {
49
+ e.defaultPrevented || H || L.open || L.openList("none", "pointer");
50
+ }
51
+ function K(e) {
52
+ L.close(), e.currentTarget.ownerDocument.hasFocus() && I.restore();
53
+ }
54
+ return /* @__PURE__ */ v(g, { children: [
55
+ /* @__PURE__ */ v(r, {
56
+ as: "span",
57
+ className: s.inputFrame,
58
+ "data-disabled": P.disabled === !0 ? "" : void 0,
59
+ "data-size": j,
60
+ children: [/* @__PURE__ */ _(a, {
61
+ autoComplete: "off",
62
+ ...n(N, {
63
+ onBlur: K,
64
+ onChange: U,
65
+ onClick: G,
66
+ onKeyDown: W,
67
+ style: V
68
+ }),
69
+ as: "input",
70
+ className: h(s.input, x),
71
+ id: L.controlId,
72
+ role: "combobox",
73
+ size: j,
74
+ type: "text",
75
+ value: B,
76
+ "aria-activedescendant": L.activeDescendant,
77
+ "aria-autocomplete": "list",
78
+ "aria-controls": L.listId,
79
+ "aria-expanded": L.open
80
+ }), /* @__PURE__ */ _(i, { className: s.chevron })]
81
+ }),
82
+ /* @__PURE__ */ _(c, {
83
+ "aria-label": N["aria-label"],
84
+ "aria-labelledby": N["aria-labelledby"],
85
+ disabled: P.disabled,
86
+ emptyMessage: A(0),
87
+ form: N.form,
88
+ list: L,
89
+ name: E,
90
+ placement: k,
91
+ children: y
92
+ }),
93
+ /* @__PURE__ */ _(o, {
94
+ "aria-live": "polite",
95
+ children: z
96
+ })
97
+ ] });
98
+ }
99
+ function b(e) {
100
+ return e === 0 ? "No results" : e === 1 ? "1 result" : `${e} results`;
101
+ }
102
+ export { y as Autocomplete };
@@ -0,0 +1 @@
1
+ .sui-field-BenH0{align-items:center;gap:var(--sui-space-2,.5rem);text-align:start;cursor:default;min-inline-size:0;display:inline-flex}.sui-placeholder-NQX-b,.sui-fieldLabel-zBN6l{text-overflow:ellipsis;white-space:nowrap;flex:1;min-inline-size:0;overflow:hidden}.sui-placeholder-NQX-b{color:var(--sui-color-text-muted,#4b5563)}.sui-fieldLeading-4y-j7{flex:none;align-items:center;block-size:1lh;display:flex}.sui-chevron-NVqyn{flex:none;transition:rotate .12s}[aria-expanded=true]+.sui-chevron-NVqyn,[aria-expanded=true]>.sui-chevron-NVqyn{rotate:180deg}.sui-inputFrame-mYx2Q{--_sui-combobox-chevron-inset:var(--sui-space-4,1rem);align-items:center;display:inline-grid}.sui-inputFrame-mYx2Q[data-size=sm]{--_sui-combobox-chevron-inset:var(--sui-space-3,.75rem)}.sui-inputFrame-mYx2Q[data-size=lg]{--_sui-combobox-chevron-inset:var(--sui-space-6,1.5rem)}.sui-inputFrame-mYx2Q>*{grid-area:1/1}.sui-inputFrame-mYx2Q .sui-input--HTv1{padding-inline-end:calc(var(--_sui-combobox-chevron-inset) + 1em + var(--sui-space-2,.5rem))}.sui-inputFrame-mYx2Q .sui-chevron-NVqyn{color:var(--sui-color-text,#111827);pointer-events:none;justify-self:end;margin-inline-end:var(--_sui-combobox-chevron-inset)}.sui-inputFrame-mYx2Q[data-disabled] .sui-chevron-NVqyn{opacity:.5}.sui-popup-rsvuH:popover-open{min-inline-size:max(12rem, anchor-size(width));max-inline-size:min(max(20rem, anchor-size(width)), 100vw - var(--sui-space-2,.5rem) * 2);overflow:hidden}.sui-listbox-2wSrg{--_sui-menu-leading-column:calc(1rem + var(--sui-space-2,.5rem));overscroll-behavior:contain;flex-direction:column;flex:auto;gap:1px;min-block-size:0;display:flex;overflow-y:auto}.sui-option-vhhn5[hidden]{display:none}.sui-option-vhhn5 .sui-check-9yQbP{color:var(--_sui-menu-ink)}.sui-optionLeading-kXakJ{opacity:var(--_sui-menu-part-opacity,1);flex:none;align-items:center;display:flex}.sui-empty-Ahw5K{min-block-size:2rem;padding:var(--sui-space-1,.25rem) var(--sui-space-2,.5rem);color:var(--sui-color-text-muted,#4b5563);align-items:center;display:none}.sui-listbox-2wSrg[data-empty]+.sui-empty-Ahw5K{display:flex}
@@ -0,0 +1,59 @@
1
+ import type { JSX, ReactNode } from "react";
2
+ import type { ControlSize } from "../../forms";
3
+ import type { BoxProps } from "../Box";
4
+ import type { ComboboxPlacement } from "./ComboboxPopup";
5
+ interface ComboboxOwnProps {
6
+ /**
7
+ * The `ComboboxOption`s
8
+ */
9
+ children?: ReactNode;
10
+ /**
11
+ * The option selected at first, which leaves the combobox uncontrolled. Defaults to none.
12
+ */
13
+ defaultValue?: string | null;
14
+ /**
15
+ * Adds a hidden input that submits the selected value with a form under this name
16
+ */
17
+ name?: string;
18
+ /**
19
+ * Called with the value of the option the user commits
20
+ */
21
+ onValueChange?: (value: string) => void;
22
+ /**
23
+ * Shown in the field while no option is selected
24
+ */
25
+ placeholder?: ReactNode;
26
+ /**
27
+ * Where the list opens. It flips to the other side when there is no room. Defaults to `bottom-start`.
28
+ */
29
+ placement?: ComboboxPlacement;
30
+ /**
31
+ * Height of the field, matching the `Button` sizes. Defaults to `md`.
32
+ */
33
+ size?: ControlSize;
34
+ /**
35
+ * The selected option, or null for none, which makes the combobox controlled: update it from `onValueChange`
36
+ */
37
+ value?: string | null;
38
+ }
39
+ /**
40
+ * Props for `Combobox`: its own props plus every `button` prop except those the combobox pattern sets
41
+ */
42
+ export interface ComboboxProps extends ComboboxOwnProps, Omit<BoxProps<"button">, "aria-activedescendant" | "aria-autocomplete" | "aria-controls" | "aria-expanded" | "aria-haspopup" | "as" | "defaultValue" | "role" | "type" | "value" | keyof ComboboxOwnProps> {
43
+ }
44
+ /**
45
+ * A field that opens a list of options to choose one from, following the WAI-ARIA select-only combobox pattern, for
46
+ * options a native `Select` cannot show, such as people with avatars. The field shows the selected option. Down Arrow,
47
+ * Enter, Space or a click opens the list; the arrow keys, Home, End and type-ahead move through it; Enter, Space or a
48
+ * click chooses an option; Escape and Tab close it without choosing. Focus stays on the field. Inside a `Field` it takes
49
+ * its label, description, error, and required and disabled state from the field; outside one, give it an `aria-label`.
50
+ *
51
+ * @example
52
+ * <Field label="Assignee">
53
+ * <Combobox onValueChange={setAssignee} placeholder="Unassigned" value={assignee}>
54
+ * <ComboboxOption leading={<Avatar name="Pat Lee" size="xs" />} value="pat">Pat Lee</ComboboxOption>
55
+ * </Combobox>
56
+ * </Field>
57
+ */
58
+ export declare function Combobox({ children, className, defaultValue, name, onValueChange, placeholder, placement, size, value, ...rest }: ComboboxProps): JSX.Element;
59
+ export {};
@@ -0,0 +1,82 @@
1
+ import { useFieldControl as e } from "../../forms/useFieldControl.js";
2
+ import { anchorNameFor as t } from "../../overlays/anchorNameFor.js";
3
+ import { mergeProps as n } from "../../overlays/mergeProps.js";
4
+ import { ChevronDownIcon as r } from "../Icon/ChevronDownIcon.js";
5
+ import { TextControl as i } from "../TextControl/TextControl.js";
6
+ import a from "./Combobox.module.js";
7
+ import { ComboboxFieldValue as o } from "./ComboboxFieldValue.js";
8
+ import { ComboboxPopup as s } from "./ComboboxPopup.js";
9
+ import { handleComboboxKey as c } from "./comboboxKeys.js";
10
+ import { useComboboxList as l } from "./useComboboxList.js";
11
+ import { useComboboxSelection as u } from "./useComboboxSelection.js";
12
+ import { clsx as d } from "clsx";
13
+ import { useState as f } from "react";
14
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
15
+ // src/components/Combobox/Combobox.tsx
16
+ function g({ children: g, className: v, defaultValue: y = null, name: b, onValueChange: x, placeholder: S, placement: C = "bottom-start", size: w = "md", value: T, ...E }) {
17
+ let D = e(E), [O, k] = f(null), A = u({
18
+ defaultValue: y,
19
+ onValueChange: _(x),
20
+ value: T
21
+ }), j = l({
22
+ controlId: D.id,
23
+ filter: null,
24
+ query: "",
25
+ selection: A
26
+ }), M = { anchorName: t(j.listId) };
27
+ function N(e) {
28
+ !e.defaultPrevented && c(e, j) && e.preventDefault();
29
+ }
30
+ function P(e) {
31
+ e.key === " " && e.preventDefault();
32
+ }
33
+ function F(e) {
34
+ k(j.open);
35
+ }
36
+ function I(e) {
37
+ let t = e.detail > 0, n = t ? O ?? j.open : j.open;
38
+ k(null), e.defaultPrevented || (e.currentTarget.focus(), j.toggleList(n, t ? "pointer" : "keyboard"));
39
+ }
40
+ function L(e) {
41
+ j.close();
42
+ }
43
+ return /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ h(i, {
44
+ ...n(E, {
45
+ onBlur: L,
46
+ onClick: I,
47
+ onKeyDown: N,
48
+ onKeyUp: P,
49
+ onPointerDown: F,
50
+ style: M
51
+ }),
52
+ as: "button",
53
+ className: d(a.field, v),
54
+ id: j.controlId,
55
+ role: "combobox",
56
+ size: w,
57
+ type: "button",
58
+ "aria-activedescendant": j.activeDescendant,
59
+ "aria-controls": j.listId,
60
+ "aria-expanded": j.open,
61
+ "aria-haspopup": "listbox",
62
+ children: [/* @__PURE__ */ m(o, {
63
+ placeholder: S,
64
+ selected: j.selectedContent
65
+ }), /* @__PURE__ */ m(r, { className: a.chevron })]
66
+ }), /* @__PURE__ */ m(s, {
67
+ "aria-label": E["aria-label"],
68
+ "aria-labelledby": E["aria-labelledby"],
69
+ disabled: D.disabled,
70
+ form: E.form,
71
+ list: j,
72
+ name: b,
73
+ placement: C,
74
+ children: g
75
+ })] });
76
+ }
77
+ function _(e) {
78
+ return (t) => {
79
+ t !== null && e?.(t);
80
+ };
81
+ }
82
+ export { g as Combobox };
@@ -0,0 +1,17 @@
1
+ import './Combobox.css';// src/components/Combobox/Combobox.module.css
2
+ var e = "sui-field-BenH0", t = "sui-placeholder-NQX-b", n = "sui-fieldLabel-zBN6l", r = "sui-fieldLeading-4y-j7", i = "sui-chevron-NVqyn", a = "sui-inputFrame-mYx2Q", o = "sui-input--HTv1", s = "sui-popup-rsvuH", c = "sui-listbox-2wSrg", l = "sui-option-vhhn5", u = "sui-check-9yQbP", d = "sui-optionLeading-kXakJ", f = "sui-empty-Ahw5K", p = {
3
+ field: e,
4
+ placeholder: t,
5
+ fieldLabel: n,
6
+ fieldLeading: r,
7
+ chevron: i,
8
+ inputFrame: a,
9
+ input: o,
10
+ popup: s,
11
+ listbox: c,
12
+ option: l,
13
+ check: u,
14
+ optionLeading: d,
15
+ empty: f
16
+ };
17
+ export { u as check, i as chevron, p as default, f as empty, e as field, n as fieldLabel, r as fieldLeading, o as input, a as inputFrame, c as listbox, l as option, d as optionLeading, t as placeholder, s as popup };
@@ -0,0 +1,88 @@
1
+ import type { Dispatch, ReactNode, SetStateAction } from "react";
2
+ /**
3
+ * What made an option active: a key, which shows the focus ring, or the pointer, which shows only the tint
4
+ */
5
+ export type ActiveSource = "keyboard" | "pointer";
6
+ /**
7
+ * The option the keys act on, which `aria-activedescendant` names
8
+ */
9
+ export interface ActiveOption {
10
+ /**
11
+ * What made it active
12
+ */
13
+ source: ActiveSource;
14
+ /**
15
+ * Its value
16
+ */
17
+ value: string;
18
+ }
19
+ /**
20
+ * What the selected option shows in the field
21
+ */
22
+ export interface SelectedContent {
23
+ /**
24
+ * The option's label
25
+ */
26
+ label: ReactNode;
27
+ /**
28
+ * The option's leading content, such as an avatar
29
+ */
30
+ leading: ReactNode;
31
+ /**
32
+ * The option's text, which an `Autocomplete`'s input shows
33
+ */
34
+ text: string;
35
+ /**
36
+ * The option's value
37
+ */
38
+ value: string;
39
+ }
40
+ /**
41
+ * Tests whether an option shows for the typed text
42
+ */
43
+ export type ComboboxFilter = (textValue: string, inputValue: string) => boolean;
44
+ /**
45
+ * State a combobox shares with its options
46
+ */
47
+ export interface ComboboxContextValue {
48
+ /**
49
+ * The option the keys act on, or null for none
50
+ */
51
+ active: ActiveOption | null;
52
+ /**
53
+ * Makes an option active under the pointer
54
+ */
55
+ activateFromPointer: (value: string) => void;
56
+ /**
57
+ * The generated id every option id starts with
58
+ */
59
+ baseId: string;
60
+ /**
61
+ * Commits an option's value and closes the list
62
+ */
63
+ commit: (value: string) => void;
64
+ /**
65
+ * Whether an option shows for the typed text, or null to show every option
66
+ */
67
+ filter: ComboboxFilter | null;
68
+ /**
69
+ * The text the options are filtered by; empty shows every option
70
+ */
71
+ query: string;
72
+ /**
73
+ * The selected option's value, or null for none
74
+ */
75
+ selectedValue: string | null;
76
+ /**
77
+ * Sets the option the keys act on
78
+ */
79
+ setActive: Dispatch<SetStateAction<ActiveOption | null>>;
80
+ /**
81
+ * Sets what the selected option shows in the field
82
+ */
83
+ setSelectedContent: Dispatch<SetStateAction<SelectedContent | null>>;
84
+ }
85
+ /**
86
+ * Carries a `Combobox`'s or `Autocomplete`'s state to its options; null outside one
87
+ */
88
+ export declare const ComboboxContext: import("react").Context<ComboboxContextValue | null>;
@@ -0,0 +1,4 @@
1
+ import { createContext as e } from "react";
2
+ // src/components/Combobox/ComboboxContext.ts
3
+ var t = e(null);
4
+ export { t as ComboboxContext };
@@ -0,0 +1,17 @@
1
+ import type { JSX, ReactNode } from "react";
2
+ import type { SelectedContent } from "./ComboboxContext";
3
+ interface ComboboxFieldValueProps {
4
+ /**
5
+ * Shown while no option is selected
6
+ */
7
+ placeholder: ReactNode;
8
+ /**
9
+ * What the selected option shows, or null for none
10
+ */
11
+ selected: SelectedContent | null;
12
+ }
13
+ /**
14
+ * What a `Combobox`'s field shows: the selected option's leading content and label, or the placeholder
15
+ */
16
+ export declare function ComboboxFieldValue({ placeholder, selected }: ComboboxFieldValueProps): JSX.Element;
17
+ export {};
@@ -0,0 +1,33 @@
1
+ import { hasContent as e } from "../../forms/hasContent.js";
2
+ import { Box as t } from "../Box/Box.js";
3
+ import n from "./Combobox.module.js";
4
+ import { c as r } from "react/compiler-runtime";
5
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ // src/components/Combobox/ComboboxFieldValue.tsx
7
+ function s(s) {
8
+ let c = r(9), { placeholder: l, selected: u } = s;
9
+ if (u === null) {
10
+ let e;
11
+ return c[0] === l ? e = c[1] : (e = /* @__PURE__ */ a(t, {
12
+ as: "span",
13
+ className: n.placeholder,
14
+ children: l
15
+ }), c[0] = l, c[1] = e), e;
16
+ }
17
+ let d;
18
+ c[2] === u.leading ? d = c[3] : (d = e(u.leading) && /* @__PURE__ */ a(t, {
19
+ as: "span",
20
+ className: n.fieldLeading,
21
+ "aria-hidden": !0,
22
+ children: u.leading
23
+ }), c[2] = u.leading, c[3] = d);
24
+ let f;
25
+ c[4] === u.label ? f = c[5] : (f = /* @__PURE__ */ a(t, {
26
+ as: "span",
27
+ className: n.fieldLabel,
28
+ children: u.label
29
+ }), c[4] = u.label, c[5] = f);
30
+ let p;
31
+ return c[6] !== d || c[7] !== f ? (p = /* @__PURE__ */ o(i, { children: [d, f] }), c[6] = d, c[7] = f, c[8] = p) : p = c[8], p;
32
+ }
33
+ export { s as ComboboxFieldValue };
@@ -0,0 +1,51 @@
1
+ import type { JSX, ReactNode } from "react";
2
+ import type { BoxProps } from "../Box";
3
+ /**
4
+ * Props for `ComboboxOption`: its own props plus every `div` prop except those the combobox pattern sets and the name
5
+ * its label gives it
6
+ */
7
+ export interface ComboboxOptionProps extends Omit<BoxProps<"div">, "aria-disabled" | "aria-label" | "aria-labelledby" | "aria-selected" | "as" | "children" | "dangerouslySetInnerHTML" | "hidden" | "id" | "role" | "tabIndex"> {
8
+ /**
9
+ * Not accepted: the label names the option
10
+ */
11
+ "aria-label"?: never;
12
+ /**
13
+ * Not accepted: the label names the option
14
+ */
15
+ "aria-labelledby"?: never;
16
+ /**
17
+ * The label, which names the option
18
+ */
19
+ children: ReactNode;
20
+ /**
21
+ * A line of muted text below the label, which describes the option
22
+ */
23
+ description?: ReactNode;
24
+ /**
25
+ * Whether the option can be reached with the keys but not chosen. Defaults to `false`.
26
+ */
27
+ disabled?: boolean;
28
+ /**
29
+ * Content before the label, such as an `Avatar` or an icon, which a `Combobox` shows in its field too while the
30
+ * option is selected
31
+ */
32
+ leading?: ReactNode;
33
+ /**
34
+ * The text filtering, type-ahead and an `Autocomplete`'s input use. Defaults to the label's text.
35
+ */
36
+ textValue?: string;
37
+ /**
38
+ * The value this option stands for
39
+ */
40
+ value: string;
41
+ }
42
+ /**
43
+ * One option in a `Combobox` or `Autocomplete`. The selected option shows a check. To leave an option out, do not
44
+ * render it; an `Autocomplete` hides the options its filter rejects itself.
45
+ *
46
+ * @example
47
+ * <ComboboxOption description="Design" leading={<Avatar name="Pat Lee" size="xs" />} value="pat">
48
+ * Pat Lee
49
+ * </ComboboxOption>
50
+ */
51
+ export declare function ComboboxOption({ "aria-describedby": describedBy, children, className, description, disabled, leading, onClick, onPointerMove, ref, textValue, value, ...rest }: ComboboxOptionProps): JSX.Element;