@primer/components 31.2.1-rc.f73a0f8c → 32.0.1-rc.44e3df9b

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 (734) hide show
  1. package/.github/workflows/ci.yml +2 -5
  2. package/.github/workflows/release.yml +0 -1
  3. package/.github/workflows/release_canary.yml +0 -1
  4. package/CHANGELOG.md +74 -4
  5. package/dist/browser.esm.js +299 -361
  6. package/dist/browser.esm.js.map +1 -1
  7. package/dist/browser.umd.js +294 -356
  8. package/dist/browser.umd.js.map +1 -1
  9. package/docs/content/ActionList2.mdx +8 -7
  10. package/docs/content/Breadcrumbs.md +11 -16
  11. package/docs/content/Buttons.md +7 -17
  12. package/docs/content/CircleBadge.md +0 -10
  13. package/docs/content/CounterLabel.md +0 -10
  14. package/docs/content/Dialog.md +15 -18
  15. package/docs/content/Dialog2.mdx +1 -0
  16. package/docs/content/Dropdown.md +11 -18
  17. package/docs/content/FilterList.md +10 -17
  18. package/docs/content/FilteredSearch.md +4 -11
  19. package/docs/content/Flash.md +5 -14
  20. package/docs/content/FormGroup.md +9 -17
  21. package/docs/content/Header.md +14 -16
  22. package/docs/content/Label.md +32 -25
  23. package/docs/content/LabelGroup.md +4 -14
  24. package/docs/content/Link.md +8 -17
  25. package/docs/content/Overlay.mdx +1 -10
  26. package/docs/content/Pagehead.md +4 -13
  27. package/docs/content/Pagination.md +10 -19
  28. package/docs/content/Popover.md +11 -19
  29. package/docs/content/SelectMenu.md +50 -114
  30. package/docs/content/SideNav.md +15 -23
  31. package/docs/content/StateLabel.md +5 -14
  32. package/docs/content/StyledOcticon.md +7 -16
  33. package/docs/content/SubNav.md +19 -21
  34. package/docs/content/TabNav.md +10 -18
  35. package/docs/content/Timeline.md +34 -24
  36. package/docs/content/Tooltip.md +8 -17
  37. package/docs/content/Truncate.md +7 -16
  38. package/docs/content/UnderlineNav.md +13 -21
  39. package/docs/package-lock.json +269 -158
  40. package/docs/package.json +1 -1
  41. package/lib/ActionList/index.js +23 -12
  42. package/lib/ActionList2/Group.d.ts +28 -2
  43. package/lib/ActionList2/Group.js +55 -6
  44. package/lib/ActionList2/List.d.ts +1 -1
  45. package/lib/ActionList2/index.js +41 -23
  46. package/lib/AnchoredOverlay/index.js +12 -4
  47. package/lib/Autocomplete/Autocomplete.d.ts +3 -3
  48. package/lib/Autocomplete/AutocompleteInput.d.ts +3 -3
  49. package/lib/Autocomplete/index.js +14 -7
  50. package/lib/Breadcrumbs.d.ts +8 -7
  51. package/lib/Breadcrumbs.js +7 -12
  52. package/lib/Button/Button.d.ts +2 -3
  53. package/lib/Button/Button.js +2 -6
  54. package/lib/Button/ButtonBase.d.ts +5 -8
  55. package/lib/Button/ButtonBase.js +1 -5
  56. package/lib/Button/ButtonClose.d.ts +3 -46
  57. package/lib/Button/ButtonClose.js +1 -1
  58. package/lib/Button/ButtonDanger.d.ts +2 -3
  59. package/lib/Button/ButtonDanger.js +2 -6
  60. package/lib/Button/ButtonInvisible.d.ts +2 -3
  61. package/lib/Button/ButtonInvisible.js +2 -6
  62. package/lib/Button/ButtonOutline.d.ts +2 -3
  63. package/lib/Button/ButtonOutline.js +2 -6
  64. package/lib/Button/ButtonPrimary.d.ts +2 -3
  65. package/lib/Button/ButtonPrimary.js +2 -6
  66. package/lib/Button/ButtonTableList.d.ts +1 -2
  67. package/lib/Button/ButtonTableList.js +1 -1
  68. package/lib/Button/index.js +70 -21
  69. package/lib/CircleBadge.d.ts +4 -5
  70. package/lib/CircleBadge.js +1 -1
  71. package/lib/CircleOcticon.d.ts +1 -1
  72. package/lib/CounterLabel.d.ts +1 -2
  73. package/lib/CounterLabel.js +1 -1
  74. package/lib/Dialog/Dialog.d.ts +5 -9
  75. package/lib/Dialog/Dialog.js +17 -11
  76. package/lib/Dialog.d.ts +4 -5
  77. package/lib/Dialog.js +1 -1
  78. package/lib/Dropdown.d.ts +10 -99
  79. package/lib/Dropdown.js +3 -3
  80. package/lib/DropdownMenu/DropdownButton.d.ts +3 -47
  81. package/lib/DropdownMenu/DropdownButton.js +3 -1
  82. package/lib/DropdownMenu/index.js +20 -6
  83. package/lib/DropdownStyles.js +26 -18
  84. package/lib/FilterList.d.ts +264 -303
  85. package/lib/FilterList.js +2 -6
  86. package/lib/FilteredActionList/index.js +12 -4
  87. package/lib/FilteredSearch.d.ts +1 -2
  88. package/lib/FilteredSearch.js +1 -1
  89. package/lib/Flash.d.ts +1 -2
  90. package/lib/Flash.js +1 -1
  91. package/lib/FormGroup.d.ts +4 -5
  92. package/lib/FormGroup.js +2 -2
  93. package/lib/Header.d.ts +6 -7
  94. package/lib/Header.js +4 -4
  95. package/lib/Label.d.ts +1 -2
  96. package/lib/Label.js +2 -3
  97. package/lib/LabelGroup.d.ts +1 -2
  98. package/lib/LabelGroup.js +1 -1
  99. package/lib/Link.d.ts +1 -2
  100. package/lib/Link.js +1 -1
  101. package/lib/NewButton/button.js +34 -42
  102. package/lib/NewButton/index.js +12 -5
  103. package/lib/NewButton/types.js +1 -2
  104. package/lib/Overlay.d.ts +11 -10
  105. package/lib/Overlay.js +3 -4
  106. package/lib/Pagehead.d.ts +1 -2
  107. package/lib/Pagehead.js +1 -1
  108. package/lib/Pagination/Pagination.js +1 -1
  109. package/lib/Pagination/index.js +12 -6
  110. package/lib/Popover.d.ts +4 -5
  111. package/lib/Popover.js +4 -5
  112. package/lib/Portal/index.js +16 -5
  113. package/lib/Position.d.ts +4 -4
  114. package/lib/SelectMenu/SelectMenu.d.ts +21 -189
  115. package/lib/SelectMenu/SelectMenu.js +1 -3
  116. package/lib/SelectMenu/SelectMenuDivider.d.ts +1 -2
  117. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  118. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  119. package/lib/SelectMenu/SelectMenuFooter.d.ts +1 -2
  120. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  121. package/lib/SelectMenu/SelectMenuHeader.d.ts +1 -2
  122. package/lib/SelectMenu/SelectMenuHeader.js +1 -1
  123. package/lib/SelectMenu/SelectMenuItem.d.ts +2 -3
  124. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  125. package/lib/SelectMenu/SelectMenuList.d.ts +1 -2
  126. package/lib/SelectMenu/SelectMenuList.js +1 -1
  127. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  128. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +3 -1
  129. package/lib/SelectMenu/SelectMenuModal.d.ts +2 -3
  130. package/lib/SelectMenu/SelectMenuModal.js +1 -1
  131. package/lib/SelectMenu/SelectMenuTab.d.ts +1 -2
  132. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  133. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +1 -2
  134. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  135. package/lib/SelectMenu/SelectMenuTabs.d.ts +1 -2
  136. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  137. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  138. package/lib/SelectMenu/index.js +14 -7
  139. package/lib/SelectPanel/index.js +12 -4
  140. package/lib/SideNav.d.ts +11 -8
  141. package/lib/SideNav.js +8 -15
  142. package/lib/StateLabel.d.ts +1 -2
  143. package/lib/StateLabel.js +6 -5
  144. package/lib/StyledOcticon.d.ts +1 -2
  145. package/lib/StyledOcticon.js +1 -3
  146. package/lib/SubNav.d.ts +5 -11
  147. package/lib/SubNav.js +7 -12
  148. package/lib/TabNav.d.ts +3 -4
  149. package/lib/TabNav.js +2 -2
  150. package/lib/TextInputWithTokens.d.ts +3 -3
  151. package/lib/Timeline.d.ts +19 -393
  152. package/lib/Timeline.js +16 -13
  153. package/lib/Token/Token.d.ts +1 -1
  154. package/lib/Token/index.js +30 -11
  155. package/lib/Tooltip.d.ts +1 -2
  156. package/lib/Tooltip.js +1 -1
  157. package/lib/Truncate.d.ts +1 -2
  158. package/lib/Truncate.js +1 -3
  159. package/lib/UnderlineNav.d.ts +2 -3
  160. package/lib/UnderlineNav.js +2 -2
  161. package/lib/__tests__/Breadcrumbs.test.js +4 -1
  162. package/lib/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  163. package/lib/__tests__/Breadcrumbs.types.test.js +25 -0
  164. package/lib/__tests__/Button.test.js +6 -2
  165. package/lib/__tests__/CircleBadge.types.test.d.ts +3 -0
  166. package/lib/__tests__/CircleBadge.types.test.js +28 -0
  167. package/lib/__tests__/CounterLabel.types.test.d.ts +3 -0
  168. package/lib/__tests__/CounterLabel.types.test.js +28 -0
  169. package/lib/__tests__/Dialog.types.test.d.ts +3 -0
  170. package/lib/__tests__/Dialog.types.test.js +28 -0
  171. package/lib/__tests__/Dialog2.types.test.d.ts +3 -0
  172. package/lib/__tests__/Dialog2.types.test.js +31 -0
  173. package/lib/__tests__/Dropdown.types.test.d.ts +3 -0
  174. package/lib/__tests__/Dropdown.types.test.js +31 -0
  175. package/lib/__tests__/FilterList.types.test.d.ts +3 -0
  176. package/lib/__tests__/FilterList.types.test.js +27 -0
  177. package/lib/__tests__/FilteredSearch.types.test.d.ts +3 -0
  178. package/lib/__tests__/FilteredSearch.types.test.js +28 -0
  179. package/lib/__tests__/Flash.types.test.d.ts +3 -0
  180. package/lib/__tests__/Flash.types.test.js +28 -0
  181. package/lib/__tests__/FormGroup.types.test.d.ts +3 -0
  182. package/lib/__tests__/FormGroup.types.test.js +28 -0
  183. package/lib/__tests__/Header.types.test.d.ts +3 -0
  184. package/lib/__tests__/Header.types.test.js +29 -0
  185. package/lib/__tests__/KeyPaths.types.test.js +8 -5
  186. package/lib/__tests__/Label.types.test.d.ts +3 -0
  187. package/lib/__tests__/Label.types.test.js +28 -0
  188. package/lib/__tests__/LabelGroup.types.test.d.ts +3 -0
  189. package/lib/__tests__/LabelGroup.types.test.js +28 -0
  190. package/lib/__tests__/Link.test.js +11 -5
  191. package/lib/__tests__/Link.types.test.d.ts +3 -0
  192. package/lib/__tests__/Link.types.test.js +28 -0
  193. package/lib/__tests__/Merge.types.test.js +19 -13
  194. package/lib/__tests__/Overlay.types.test.d.ts +3 -0
  195. package/lib/__tests__/Overlay.types.test.js +35 -0
  196. package/lib/__tests__/Pagehead.types.test.d.ts +3 -0
  197. package/lib/__tests__/Pagehead.types.test.js +28 -0
  198. package/lib/__tests__/Pagination.types.test.d.ts +3 -0
  199. package/lib/__tests__/Pagination.types.test.js +33 -0
  200. package/lib/__tests__/Popover.types.test.d.ts +3 -0
  201. package/lib/__tests__/Popover.types.test.js +27 -0
  202. package/lib/__tests__/SelectMenu.types.test.d.ts +3 -0
  203. package/lib/__tests__/SelectMenu.types.test.js +47 -0
  204. package/lib/__tests__/SideNav.types.test.d.ts +3 -0
  205. package/lib/__tests__/SideNav.types.test.js +28 -0
  206. package/lib/__tests__/StateLabel.types.test.d.ts +3 -0
  207. package/lib/__tests__/StateLabel.types.test.js +28 -0
  208. package/lib/__tests__/StyledOcticon.types.test.d.ts +3 -0
  209. package/lib/__tests__/StyledOcticon.types.test.js +32 -0
  210. package/lib/__tests__/SubNav.types.test.d.ts +3 -0
  211. package/lib/__tests__/SubNav.types.test.js +27 -0
  212. package/lib/__tests__/TabNav.types.test.d.ts +3 -0
  213. package/lib/__tests__/TabNav.types.test.js +25 -0
  214. package/lib/__tests__/Timeline.types.test.d.ts +3 -0
  215. package/lib/__tests__/Timeline.types.test.js +31 -0
  216. package/lib/__tests__/Tooltip.types.test.d.ts +3 -0
  217. package/lib/__tests__/Tooltip.types.test.js +28 -0
  218. package/lib/__tests__/Truncate.types.test.d.ts +3 -0
  219. package/lib/__tests__/Truncate.types.test.js +31 -0
  220. package/lib/__tests__/UnderlineNav.types.test.d.ts +3 -0
  221. package/lib/__tests__/UnderlineNav.types.test.js +25 -0
  222. package/lib/__tests__/behaviors/anchoredPosition.test.js +376 -229
  223. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +216 -145
  224. package/lib/__tests__/filterObject.test.js +27 -48
  225. package/lib/__tests__/theme.test.js +34 -33
  226. package/lib/__tests__/themeGet.test.js +23 -12
  227. package/lib/behaviors/anchoredPosition.js +234 -205
  228. package/lib/behaviors/focusTrap.js +157 -121
  229. package/lib/behaviors/focusZone.js +509 -434
  230. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  231. package/lib/constants.js +43 -39
  232. package/lib/drafts.js +30 -20
  233. package/lib/hooks/index.js +60 -16
  234. package/lib/hooks/useAnchoredPosition.js +40 -32
  235. package/lib/hooks/useCombinedRefs.js +36 -32
  236. package/lib/hooks/useDialog.js +96 -72
  237. package/lib/hooks/useFocusTrap.js +60 -43
  238. package/lib/hooks/useFocusZone.js +50 -54
  239. package/lib/hooks/useOnEscapePress.js +36 -25
  240. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  241. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  242. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  243. package/lib/hooks/useRenderForcingRef.js +17 -13
  244. package/lib/hooks/useResizeObserver.js +18 -15
  245. package/lib/hooks/useSafeTimeout.js +30 -22
  246. package/lib/hooks/useScrollFlash.js +23 -16
  247. package/lib/index.js +644 -163
  248. package/lib/polyfills/eventListenerSignal.js +45 -37
  249. package/lib/stories/ActionList2.stories.js +4 -3
  250. package/lib/stories/ActionMenu.stories.js +1 -3
  251. package/lib/stories/ConfirmationDialog.stories.js +16 -8
  252. package/lib/stories/Dialog.stories.js +6 -2
  253. package/lib/stories/useFocusTrap.stories.js +6 -2
  254. package/lib/stories/useFocusZone.stories.js +13 -5
  255. package/lib/sx.js +22 -10
  256. package/lib/theme-preval.js +3169 -64
  257. package/lib/theme.js +12 -3
  258. package/lib/utils/iterateFocusableElements.js +85 -63
  259. package/lib/utils/testing.d.ts +1 -1
  260. package/lib/utils/theme.js +47 -33
  261. package/lib/utils/types/AriaRole.js +1 -2
  262. package/lib/utils/types/ComponentProps.js +1 -2
  263. package/lib/utils/types/Flatten.js +1 -2
  264. package/lib/utils/types/KeyPaths.js +1 -2
  265. package/lib/utils/types/MandateProps.js +1 -16
  266. package/lib/utils/types/Merge.js +1 -2
  267. package/lib/utils/types/index.js +69 -16
  268. package/lib/utils/uniqueId.js +8 -5
  269. package/lib/utils/use-force-update.js +14 -8
  270. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  271. package/lib/utils/userAgent.js +12 -8
  272. package/lib-esm/ActionList2/Group.d.ts +28 -2
  273. package/lib-esm/ActionList2/Group.js +52 -5
  274. package/lib-esm/ActionList2/List.d.ts +1 -1
  275. package/lib-esm/Autocomplete/Autocomplete.d.ts +3 -3
  276. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +3 -3
  277. package/lib-esm/Breadcrumbs.d.ts +8 -7
  278. package/lib-esm/Breadcrumbs.js +8 -13
  279. package/lib-esm/Button/Button.d.ts +2 -3
  280. package/lib-esm/Button/Button.js +2 -2
  281. package/lib-esm/Button/ButtonBase.d.ts +5 -8
  282. package/lib-esm/Button/ButtonBase.js +1 -3
  283. package/lib-esm/Button/ButtonClose.d.ts +3 -46
  284. package/lib-esm/Button/ButtonClose.js +2 -2
  285. package/lib-esm/Button/ButtonDanger.d.ts +2 -3
  286. package/lib-esm/Button/ButtonDanger.js +2 -2
  287. package/lib-esm/Button/ButtonInvisible.d.ts +2 -3
  288. package/lib-esm/Button/ButtonInvisible.js +2 -2
  289. package/lib-esm/Button/ButtonOutline.d.ts +2 -3
  290. package/lib-esm/Button/ButtonOutline.js +2 -2
  291. package/lib-esm/Button/ButtonPrimary.d.ts +2 -3
  292. package/lib-esm/Button/ButtonPrimary.js +2 -2
  293. package/lib-esm/Button/ButtonTableList.d.ts +1 -2
  294. package/lib-esm/Button/ButtonTableList.js +2 -2
  295. package/lib-esm/CircleBadge.d.ts +4 -5
  296. package/lib-esm/CircleBadge.js +2 -2
  297. package/lib-esm/CircleOcticon.d.ts +1 -1
  298. package/lib-esm/CounterLabel.d.ts +1 -2
  299. package/lib-esm/CounterLabel.js +2 -2
  300. package/lib-esm/Dialog/Dialog.d.ts +5 -9
  301. package/lib-esm/Dialog/Dialog.js +12 -12
  302. package/lib-esm/Dialog.d.ts +4 -5
  303. package/lib-esm/Dialog.js +2 -2
  304. package/lib-esm/Dropdown.d.ts +10 -99
  305. package/lib-esm/Dropdown.js +4 -4
  306. package/lib-esm/DropdownMenu/DropdownButton.d.ts +3 -47
  307. package/lib-esm/DropdownMenu/DropdownButton.js +3 -1
  308. package/lib-esm/FilterList.d.ts +264 -303
  309. package/lib-esm/FilterList.js +3 -7
  310. package/lib-esm/FilteredSearch.d.ts +1 -2
  311. package/lib-esm/FilteredSearch.js +2 -2
  312. package/lib-esm/Flash.d.ts +1 -2
  313. package/lib-esm/Flash.js +2 -2
  314. package/lib-esm/FormGroup.d.ts +4 -5
  315. package/lib-esm/FormGroup.js +3 -3
  316. package/lib-esm/Header.d.ts +6 -7
  317. package/lib-esm/Header.js +5 -5
  318. package/lib-esm/Label.d.ts +1 -2
  319. package/lib-esm/Label.js +3 -4
  320. package/lib-esm/LabelGroup.d.ts +1 -2
  321. package/lib-esm/LabelGroup.js +2 -2
  322. package/lib-esm/Link.d.ts +1 -2
  323. package/lib-esm/Link.js +2 -2
  324. package/lib-esm/NewButton/button.js +31 -42
  325. package/lib-esm/Overlay.d.ts +11 -10
  326. package/lib-esm/Overlay.js +2 -3
  327. package/lib-esm/Pagehead.d.ts +1 -2
  328. package/lib-esm/Pagehead.js +2 -2
  329. package/lib-esm/Pagination/Pagination.js +2 -2
  330. package/lib-esm/Popover.d.ts +4 -5
  331. package/lib-esm/Popover.js +4 -5
  332. package/lib-esm/Position.d.ts +4 -4
  333. package/lib-esm/SelectMenu/SelectMenu.d.ts +21 -189
  334. package/lib-esm/SelectMenu/SelectMenu.js +1 -2
  335. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +1 -2
  336. package/lib-esm/SelectMenu/SelectMenuDivider.js +2 -2
  337. package/lib-esm/SelectMenu/SelectMenuFilter.js +2 -2
  338. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +1 -2
  339. package/lib-esm/SelectMenu/SelectMenuFooter.js +2 -2
  340. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +1 -2
  341. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  342. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +2 -3
  343. package/lib-esm/SelectMenu/SelectMenuItem.js +2 -2
  344. package/lib-esm/SelectMenu/SelectMenuList.d.ts +1 -2
  345. package/lib-esm/SelectMenu/SelectMenuList.js +2 -2
  346. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  347. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +3 -2
  348. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +2 -3
  349. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  350. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +1 -2
  351. package/lib-esm/SelectMenu/SelectMenuTab.js +2 -2
  352. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +1 -2
  353. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +2 -2
  354. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +1 -2
  355. package/lib-esm/SelectMenu/SelectMenuTabs.js +2 -2
  356. package/lib-esm/SideNav.d.ts +11 -8
  357. package/lib-esm/SideNav.js +8 -16
  358. package/lib-esm/StateLabel.d.ts +1 -2
  359. package/lib-esm/StateLabel.js +7 -6
  360. package/lib-esm/StyledOcticon.d.ts +1 -2
  361. package/lib-esm/StyledOcticon.js +1 -2
  362. package/lib-esm/SubNav.d.ts +5 -11
  363. package/lib-esm/SubNav.js +8 -13
  364. package/lib-esm/TabNav.d.ts +3 -4
  365. package/lib-esm/TabNav.js +3 -3
  366. package/lib-esm/TextInputWithTokens.d.ts +3 -3
  367. package/lib-esm/Timeline.d.ts +19 -393
  368. package/lib-esm/Timeline.js +12 -13
  369. package/lib-esm/Token/Token.d.ts +1 -1
  370. package/lib-esm/Tooltip.d.ts +1 -2
  371. package/lib-esm/Tooltip.js +2 -2
  372. package/lib-esm/Truncate.d.ts +1 -2
  373. package/lib-esm/Truncate.js +1 -2
  374. package/lib-esm/UnderlineNav.d.ts +2 -3
  375. package/lib-esm/UnderlineNav.js +3 -3
  376. package/lib-esm/__tests__/Breadcrumbs.test.js +4 -1
  377. package/lib-esm/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  378. package/lib-esm/__tests__/Breadcrumbs.types.test.js +12 -0
  379. package/lib-esm/__tests__/Button.test.js +6 -2
  380. package/lib-esm/__tests__/CircleBadge.types.test.d.ts +3 -0
  381. package/lib-esm/__tests__/CircleBadge.types.test.js +13 -0
  382. package/lib-esm/__tests__/CounterLabel.types.test.d.ts +3 -0
  383. package/lib-esm/__tests__/CounterLabel.types.test.js +13 -0
  384. package/lib-esm/__tests__/Dialog.types.test.d.ts +3 -0
  385. package/lib-esm/__tests__/Dialog.types.test.js +13 -0
  386. package/lib-esm/__tests__/Dialog2.types.test.d.ts +3 -0
  387. package/lib-esm/__tests__/Dialog2.types.test.js +16 -0
  388. package/lib-esm/__tests__/Dropdown.types.test.d.ts +3 -0
  389. package/lib-esm/__tests__/Dropdown.types.test.js +17 -0
  390. package/lib-esm/__tests__/FilterList.types.test.d.ts +3 -0
  391. package/lib-esm/__tests__/FilterList.types.test.js +13 -0
  392. package/lib-esm/__tests__/FilteredSearch.types.test.d.ts +3 -0
  393. package/lib-esm/__tests__/FilteredSearch.types.test.js +13 -0
  394. package/lib-esm/__tests__/Flash.types.test.d.ts +3 -0
  395. package/lib-esm/__tests__/Flash.types.test.js +13 -0
  396. package/lib-esm/__tests__/FormGroup.types.test.d.ts +3 -0
  397. package/lib-esm/__tests__/FormGroup.types.test.js +13 -0
  398. package/lib-esm/__tests__/Header.types.test.d.ts +3 -0
  399. package/lib-esm/__tests__/Header.types.test.js +15 -0
  400. package/lib-esm/__tests__/Label.types.test.d.ts +3 -0
  401. package/lib-esm/__tests__/Label.types.test.js +13 -0
  402. package/lib-esm/__tests__/LabelGroup.types.test.d.ts +3 -0
  403. package/lib-esm/__tests__/LabelGroup.types.test.js +13 -0
  404. package/lib-esm/__tests__/Link.test.js +11 -5
  405. package/lib-esm/__tests__/Link.types.test.d.ts +3 -0
  406. package/lib-esm/__tests__/Link.types.test.js +13 -0
  407. package/lib-esm/__tests__/Overlay.types.test.d.ts +3 -0
  408. package/lib-esm/__tests__/Overlay.types.test.js +20 -0
  409. package/lib-esm/__tests__/Pagehead.types.test.d.ts +3 -0
  410. package/lib-esm/__tests__/Pagehead.types.test.js +13 -0
  411. package/lib-esm/__tests__/Pagination.types.test.d.ts +3 -0
  412. package/lib-esm/__tests__/Pagination.types.test.js +18 -0
  413. package/lib-esm/__tests__/Popover.types.test.d.ts +3 -0
  414. package/lib-esm/__tests__/Popover.types.test.js +13 -0
  415. package/lib-esm/__tests__/SelectMenu.types.test.d.ts +3 -0
  416. package/lib-esm/__tests__/SelectMenu.types.test.js +33 -0
  417. package/lib-esm/__tests__/SideNav.types.test.d.ts +3 -0
  418. package/lib-esm/__tests__/SideNav.types.test.js +13 -0
  419. package/lib-esm/__tests__/StateLabel.types.test.d.ts +3 -0
  420. package/lib-esm/__tests__/StateLabel.types.test.js +13 -0
  421. package/lib-esm/__tests__/StyledOcticon.types.test.d.ts +3 -0
  422. package/lib-esm/__tests__/StyledOcticon.types.test.js +16 -0
  423. package/lib-esm/__tests__/SubNav.types.test.d.ts +3 -0
  424. package/lib-esm/__tests__/SubNav.types.test.js +14 -0
  425. package/lib-esm/__tests__/TabNav.types.test.d.ts +3 -0
  426. package/lib-esm/__tests__/TabNav.types.test.js +12 -0
  427. package/lib-esm/__tests__/Timeline.types.test.d.ts +3 -0
  428. package/lib-esm/__tests__/Timeline.types.test.js +18 -0
  429. package/lib-esm/__tests__/Tooltip.types.test.d.ts +3 -0
  430. package/lib-esm/__tests__/Tooltip.types.test.js +13 -0
  431. package/lib-esm/__tests__/Truncate.types.test.d.ts +3 -0
  432. package/lib-esm/__tests__/Truncate.types.test.js +16 -0
  433. package/lib-esm/__tests__/UnderlineNav.types.test.d.ts +3 -0
  434. package/lib-esm/__tests__/UnderlineNav.types.test.js +12 -0
  435. package/lib-esm/stories/ActionList2.stories.js +4 -3
  436. package/lib-esm/stories/ActionMenu.stories.js +1 -3
  437. package/lib-esm/stories/ConfirmationDialog.stories.js +16 -8
  438. package/lib-esm/stories/Dialog.stories.js +6 -2
  439. package/lib-esm/stories/useFocusTrap.stories.js +6 -2
  440. package/lib-esm/stories/useFocusZone.stories.js +13 -5
  441. package/lib-esm/theme-preval.js +446 -0
  442. package/lib-esm/utils/testing.d.ts +1 -1
  443. package/package-lock.json +16 -16
  444. package/package.json +4 -5
  445. package/script/build +1 -1
  446. package/src/ActionList2/Group.tsx +76 -7
  447. package/src/ActionList2/List.tsx +1 -1
  448. package/src/Breadcrumbs.tsx +11 -11
  449. package/src/Button/Button.tsx +2 -3
  450. package/src/Button/ButtonBase.tsx +2 -6
  451. package/src/Button/ButtonClose.tsx +2 -6
  452. package/src/Button/ButtonDanger.tsx +2 -3
  453. package/src/Button/ButtonInvisible.tsx +2 -3
  454. package/src/Button/ButtonOutline.tsx +2 -3
  455. package/src/Button/ButtonPrimary.tsx +2 -3
  456. package/src/Button/ButtonTableList.tsx +2 -15
  457. package/src/CircleBadge.tsx +2 -4
  458. package/src/CounterLabel.tsx +2 -4
  459. package/src/Dialog/Dialog.tsx +22 -11
  460. package/src/Dialog.tsx +2 -6
  461. package/src/Dropdown.tsx +3 -7
  462. package/src/DropdownMenu/DropdownButton.tsx +1 -1
  463. package/src/FilterList.tsx +5 -11
  464. package/src/FilteredSearch.tsx +2 -3
  465. package/src/Flash.tsx +2 -4
  466. package/src/FormGroup.tsx +3 -6
  467. package/src/Header.tsx +4 -14
  468. package/src/Label.tsx +2 -5
  469. package/src/LabelGroup.tsx +2 -3
  470. package/src/Link.tsx +2 -6
  471. package/src/NewButton/button.tsx +82 -78
  472. package/src/Overlay.tsx +13 -11
  473. package/src/Pagehead.tsx +2 -3
  474. package/src/Pagination/Pagination.tsx +3 -5
  475. package/src/Popover.tsx +3 -14
  476. package/src/SelectMenu/SelectMenu.tsx +1 -3
  477. package/src/SelectMenu/SelectMenuDivider.tsx +2 -3
  478. package/src/SelectMenu/SelectMenuFilter.tsx +2 -3
  479. package/src/SelectMenu/SelectMenuFooter.tsx +2 -3
  480. package/src/SelectMenu/SelectMenuHeader.tsx +2 -4
  481. package/src/SelectMenu/SelectMenuItem.tsx +2 -3
  482. package/src/SelectMenu/SelectMenuList.tsx +2 -3
  483. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +4 -3
  484. package/src/SelectMenu/SelectMenuModal.tsx +2 -4
  485. package/src/SelectMenu/SelectMenuTab.tsx +2 -3
  486. package/src/SelectMenu/SelectMenuTabPanel.tsx +2 -3
  487. package/src/SelectMenu/SelectMenuTabs.tsx +2 -3
  488. package/src/SideNav.tsx +11 -13
  489. package/src/StateLabel.tsx +3 -5
  490. package/src/StyledOcticon.tsx +1 -3
  491. package/src/SubNav.tsx +8 -13
  492. package/src/TabNav.tsx +3 -7
  493. package/src/Timeline.tsx +11 -12
  494. package/src/Tooltip.tsx +3 -3
  495. package/src/Truncate.tsx +0 -5
  496. package/src/UnderlineNav.tsx +3 -6
  497. package/src/__tests__/Breadcrumbs.test.tsx +1 -1
  498. package/src/__tests__/Breadcrumbs.types.test.tsx +22 -0
  499. package/src/__tests__/Button.test.tsx +2 -2
  500. package/src/__tests__/CircleBadge.types.test.tsx +11 -0
  501. package/src/__tests__/CounterLabel.types.test.tsx +11 -0
  502. package/src/__tests__/Dialog.types.test.tsx +11 -0
  503. package/src/__tests__/Dialog2.types.test.tsx +11 -0
  504. package/src/__tests__/Dropdown.types.test.tsx +21 -0
  505. package/src/__tests__/FilterList.types.test.tsx +17 -0
  506. package/src/__tests__/FilteredSearch.types.test.tsx +11 -0
  507. package/src/__tests__/Flash.types.test.tsx +11 -0
  508. package/src/__tests__/FormGroup.types.test.tsx +11 -0
  509. package/src/__tests__/Header.types.test.tsx +19 -0
  510. package/src/__tests__/Label.types.test.tsx +11 -0
  511. package/src/__tests__/LabelGroup.types.test.tsx +11 -0
  512. package/src/__tests__/Link.test.tsx +5 -5
  513. package/src/__tests__/Link.types.test.tsx +11 -0
  514. package/src/__tests__/Overlay.types.test.tsx +18 -0
  515. package/src/__tests__/Pagehead.types.test.tsx +11 -0
  516. package/src/__tests__/Pagination.types.test.tsx +11 -0
  517. package/src/__tests__/Popover.types.test.tsx +17 -0
  518. package/src/__tests__/SelectMenu.types.test.tsx +37 -0
  519. package/src/__tests__/SideNav.types.test.tsx +11 -0
  520. package/src/__tests__/StateLabel.types.test.tsx +11 -0
  521. package/src/__tests__/StyledOcticon.types.test.tsx +12 -0
  522. package/src/__tests__/SubNav.types.test.tsx +25 -0
  523. package/src/__tests__/TabNav.types.test.tsx +22 -0
  524. package/src/__tests__/Timeline.types.test.tsx +31 -0
  525. package/src/__tests__/Tooltip.types.test.tsx +11 -0
  526. package/src/__tests__/Truncate.types.test.tsx +11 -0
  527. package/src/__tests__/UnderlineNav.types.test.tsx +22 -0
  528. package/src/__tests__/__snapshots__/Label.test.tsx.snap +3 -4
  529. package/src/__tests__/__snapshots__/Link.test.tsx.snap +1 -2
  530. package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +5 -0
  531. package/src/stories/ActionList2.stories.tsx +3 -3
  532. package/src/stories/ActionMenu.stories.tsx +1 -4
  533. package/src/stories/ConfirmationDialog.stories.tsx +4 -4
  534. package/src/stories/Dialog.stories.tsx +2 -2
  535. package/src/stories/useFocusTrap.stories.tsx +2 -2
  536. package/src/stories/useFocusZone.stories.tsx +4 -4
  537. package/stats.html +1 -1
  538. package/tsconfig.build.json +2 -2
  539. package/tsconfig.json +17 -4
  540. package/lib/ActionList/Divider.jsx +0 -29
  541. package/lib/ActionList/Group.jsx +0 -23
  542. package/lib/ActionList/Header.jsx +0 -66
  543. package/lib/ActionList/Item.jsx +0 -288
  544. package/lib/ActionList/List.jsx +0 -138
  545. package/lib/ActionList2/Description.jsx +0 -29
  546. package/lib/ActionList2/Divider.jsx +0 -22
  547. package/lib/ActionList2/Group.jsx +0 -25
  548. package/lib/ActionList2/Header.jsx +0 -36
  549. package/lib/ActionList2/Item.jsx +0 -174
  550. package/lib/ActionList2/LinkItem.jsx +0 -28
  551. package/lib/ActionList2/List.jsx +0 -41
  552. package/lib/ActionList2/Selection.jsx +0 -50
  553. package/lib/ActionList2/Visuals.jsx +0 -48
  554. package/lib/ActionMenu.jsx +0 -73
  555. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  556. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  557. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  558. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  559. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  560. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  561. package/lib/Avatar.jsx +0 -34
  562. package/lib/AvatarPair.jsx +0 -29
  563. package/lib/AvatarStack.jsx +0 -151
  564. package/lib/BaseStyles.jsx +0 -65
  565. package/lib/BorderBox.jsx +0 -18
  566. package/lib/Box.jsx +0 -10
  567. package/lib/BranchName.jsx +0 -20
  568. package/lib/Breadcrumbs.jsx +0 -74
  569. package/lib/Button/Button.jsx +0 -60
  570. package/lib/Button/ButtonBase.jsx +0 -36
  571. package/lib/Button/ButtonClose.jsx +0 -55
  572. package/lib/Button/ButtonDanger.jsx +0 -63
  573. package/lib/Button/ButtonGroup.jsx +0 -55
  574. package/lib/Button/ButtonInvisible.jsx +0 -52
  575. package/lib/Button/ButtonOutline.jsx +0 -63
  576. package/lib/Button/ButtonPrimary.jsx +0 -62
  577. package/lib/Button/ButtonStyles.jsx +0 -37
  578. package/lib/Button/ButtonTableList.jsx +0 -49
  579. package/lib/Caret.jsx +0 -93
  580. package/lib/CircleBadge.jsx +0 -43
  581. package/lib/CircleOcticon.jsx +0 -21
  582. package/lib/CounterLabel.jsx +0 -44
  583. package/lib/Details.jsx +0 -21
  584. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  585. package/lib/Dialog/Dialog.jsx +0 -273
  586. package/lib/Dialog.jsx +0 -131
  587. package/lib/Dropdown.jsx +0 -134
  588. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  589. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  590. package/lib/FilterList.jsx +0 -63
  591. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  592. package/lib/FilteredSearch.jsx +0 -29
  593. package/lib/Flash.jsx +0 -70
  594. package/lib/Flex.jsx +0 -15
  595. package/lib/FormGroup.jsx +0 -25
  596. package/lib/Grid.jsx +0 -15
  597. package/lib/Header.jsx +0 -90
  598. package/lib/Heading.jsx +0 -21
  599. package/lib/Label.jsx +0 -84
  600. package/lib/LabelGroup.jsx +0 -19
  601. package/lib/Link.jsx +0 -38
  602. package/lib/NewButton/button-counter.jsx +0 -14
  603. package/lib/NewButton/button.jsx +0 -278
  604. package/lib/Overlay.jsx +0 -156
  605. package/lib/Pagehead.jsx +0 -18
  606. package/lib/Pagination/Pagination.jsx +0 -163
  607. package/lib/Pagination/model.jsx +0 -174
  608. package/lib/PointerBox.jsx +0 -25
  609. package/lib/Popover.jsx +0 -210
  610. package/lib/Portal/Portal.jsx +0 -79
  611. package/lib/Position.jsx +0 -46
  612. package/lib/ProgressBar.jsx +0 -39
  613. package/lib/SelectMenu/SelectMenu.jsx +0 -114
  614. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  615. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -43
  616. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -59
  617. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -46
  618. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -44
  619. package/lib/SelectMenu/SelectMenuItem.jsx +0 -143
  620. package/lib/SelectMenu/SelectMenuList.jsx +0 -60
  621. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -21
  622. package/lib/SelectMenu/SelectMenuModal.jsx +0 -119
  623. package/lib/SelectMenu/SelectMenuTab.jsx +0 -93
  624. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -43
  625. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -58
  626. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  627. package/lib/SideNav.jsx +0 -177
  628. package/lib/Spinner.jsx +0 -35
  629. package/lib/StateLabel.jsx +0 -94
  630. package/lib/StyledOcticon.jsx +0 -20
  631. package/lib/SubNav.jsx +0 -104
  632. package/lib/TabNav.jsx +0 -60
  633. package/lib/Text.jsx +0 -14
  634. package/lib/TextInput.jsx +0 -23
  635. package/lib/TextInputWithTokens.jsx +0 -218
  636. package/lib/ThemeProvider.jsx +0 -130
  637. package/lib/Timeline.jsx +0 -124
  638. package/lib/Token/AvatarToken.jsx +0 -54
  639. package/lib/Token/IssueLabelToken.jsx +0 -125
  640. package/lib/Token/Token.jsx +0 -103
  641. package/lib/Token/TokenBase.jsx +0 -88
  642. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  643. package/lib/Token/_TokenTextContainer.jsx +0 -49
  644. package/lib/Tooltip.jsx +0 -246
  645. package/lib/Truncate.jsx +0 -27
  646. package/lib/UnderlineNav.jsx +0 -90
  647. package/lib/_TextInputWrapper.jsx +0 -120
  648. package/lib/_UnstyledTextInput.jsx +0 -22
  649. package/lib/__tests__/ActionList.test.jsx +0 -49
  650. package/lib/__tests__/ActionList.types.test.jsx +0 -45
  651. package/lib/__tests__/ActionList2.test.jsx +0 -46
  652. package/lib/__tests__/ActionMenu.test.jsx +0 -124
  653. package/lib/__tests__/AnchoredOverlay.test.jsx +0 -121
  654. package/lib/__tests__/Autocomplete.test.jsx +0 -299
  655. package/lib/__tests__/Avatar.test.jsx +0 -42
  656. package/lib/__tests__/AvatarStack.test.jsx +0 -43
  657. package/lib/__tests__/BorderBox.test.jsx +0 -36
  658. package/lib/__tests__/Box.test.jsx +0 -41
  659. package/lib/__tests__/BranchName.test.jsx +0 -27
  660. package/lib/__tests__/Breadcrumbs.test.jsx +0 -28
  661. package/lib/__tests__/BreadcrumbsItem.test.jsx +0 -31
  662. package/lib/__tests__/Button.test.jsx +0 -100
  663. package/lib/__tests__/Caret.test.jsx +0 -37
  664. package/lib/__tests__/CircleBadge.test.jsx +0 -55
  665. package/lib/__tests__/CircleOcticon.test.jsx +0 -45
  666. package/lib/__tests__/ConfirmationDialog.test.jsx +0 -119
  667. package/lib/__tests__/CounterLabel.test.jsx +0 -36
  668. package/lib/__tests__/Details.test.jsx +0 -85
  669. package/lib/__tests__/Dialog.test.jsx +0 -139
  670. package/lib/__tests__/Dropdown.test.jsx +0 -49
  671. package/lib/__tests__/DropdownMenu.test.jsx +0 -119
  672. package/lib/__tests__/FilterList.test.jsx +0 -27
  673. package/lib/__tests__/FilterListItem.test.jsx +0 -31
  674. package/lib/__tests__/FilteredSearch.test.jsx +0 -27
  675. package/lib/__tests__/Flash.test.jsx +0 -36
  676. package/lib/__tests__/Flex.test.jsx +0 -51
  677. package/lib/__tests__/FormGroup.test.jsx +0 -36
  678. package/lib/__tests__/Grid.test.jsx +0 -69
  679. package/lib/__tests__/Header.test.jsx +0 -45
  680. package/lib/__tests__/Heading.test.jsx +0 -71
  681. package/lib/__tests__/Label.test.jsx +0 -33
  682. package/lib/__tests__/LabelGroup.test.jsx +0 -29
  683. package/lib/__tests__/Link.test.jsx +0 -43
  684. package/lib/__tests__/NewButton.test.jsx +0 -61
  685. package/lib/__tests__/Overlay.test.jsx +0 -105
  686. package/lib/__tests__/Pagehead.test.jsx +0 -25
  687. package/lib/__tests__/Pagination/Pagination.test.jsx +0 -32
  688. package/lib/__tests__/Pagination/PaginationModel.test.jsx +0 -118
  689. package/lib/__tests__/PointerBox.test.jsx +0 -33
  690. package/lib/__tests__/Popover.test.jsx +0 -58
  691. package/lib/__tests__/Portal.test.jsx +0 -102
  692. package/lib/__tests__/Position.test.jsx +0 -96
  693. package/lib/__tests__/ProgressBar.test.jsx +0 -38
  694. package/lib/__tests__/SelectMenu.test.jsx +0 -120
  695. package/lib/__tests__/SelectPanel.test.jsx +0 -48
  696. package/lib/__tests__/SideNav.test.jsx +0 -55
  697. package/lib/__tests__/Spinner.test.jsx +0 -41
  698. package/lib/__tests__/StateLabel.test.jsx +0 -46
  699. package/lib/__tests__/StyledOcticon.test.jsx +0 -28
  700. package/lib/__tests__/SubNav.test.jsx +0 -47
  701. package/lib/__tests__/SubNavLink.test.jsx +0 -31
  702. package/lib/__tests__/TabNav.test.jsx +0 -32
  703. package/lib/__tests__/Text.test.jsx +0 -71
  704. package/lib/__tests__/TextInput.test.jsx +0 -45
  705. package/lib/__tests__/TextInputWithTokens.test.jsx +0 -302
  706. package/lib/__tests__/ThemeProvider.test.jsx +0 -314
  707. package/lib/__tests__/Timeline.test.jsx +0 -51
  708. package/lib/__tests__/Token.test.jsx +0 -93
  709. package/lib/__tests__/Tooltip.test.jsx +0 -46
  710. package/lib/__tests__/Truncate.test.jsx +0 -41
  711. package/lib/__tests__/UnderlineNav.test.jsx +0 -53
  712. package/lib/__tests__/UnderlineNavLink.test.jsx +0 -31
  713. package/lib/__tests__/behaviors/focusTrap.test.jsx +0 -184
  714. package/lib/__tests__/behaviors/focusZone.test.jsx +0 -406
  715. package/lib/__tests__/behaviors/iterateFocusableElements.test.jsx +0 -58
  716. package/lib/__tests__/hooks/useAnchoredPosition.test.jsx +0 -29
  717. package/lib/__tests__/hooks/useOnEscapePress.test.jsx +0 -19
  718. package/lib/__tests__/hooks/useOnOutsideClick.test.jsx +0 -63
  719. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.jsx +0 -61
  720. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.jsx +0 -56
  721. package/lib/__tests__/useSafeTimeout.test.jsx +0 -36
  722. package/lib/__tests__/utils/createSlots.test.jsx +0 -57
  723. package/lib/hooks/useDetails.jsx +0 -39
  724. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  725. package/lib/hooks/useOverlay.jsx +0 -15
  726. package/lib/utils/create-slots.jsx +0 -65
  727. package/lib/utils/deprecate.jsx +0 -59
  728. package/lib/utils/isNumeric.jsx +0 -7
  729. package/lib/utils/ssr.jsx +0 -6
  730. package/lib/utils/test-deprecations.jsx +0 -20
  731. package/lib/utils/test-helpers.jsx +0 -8
  732. package/lib/utils/test-matchers.jsx +0 -100
  733. package/lib/utils/testing.jsx +0 -206
  734. package/tsconfig.base.json +0 -20
package/lib/theme.js CHANGED
@@ -1,4 +1,13 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const theme_preval_1 = require("./theme-preval");
4
- exports.default = theme_preval_1.theme;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _themePreval = require("./theme-preval");
9
+
10
+ var _default = _themePreval.theme; // NOTE: for now, ThemeColors and ThemeShadows are handcrafted types. It would be nice if these
11
+ // were exports from primitives (or a different shape but derived from those exports).
12
+
13
+ exports.default = _default;
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTabbable = exports.isFocusable = exports.iterateFocusableElements = void 0;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.iterateFocusableElements = iterateFocusableElements;
7
+ exports.isFocusable = isFocusable;
8
+ exports.isTabbable = isTabbable;
9
+
10
+ /**
11
+ * Options to the focusable elements iterator
12
+ */
13
+
4
14
  /**
5
15
  * Returns an iterator over all of the focusable elements within `container`.
6
16
  * Note: If `container` is itself focusable it will be included in the results.
@@ -8,75 +18,86 @@ exports.isTabbable = exports.isFocusable = exports.iterateFocusableElements = vo
8
18
  * @param reverse If true, iterate backwards through focusable elements.
9
19
  */
10
20
  function* iterateFocusableElements(container, options = {}) {
11
- const strict = options.strict ?? false;
12
- const acceptFn = options.onlyTabbable ?? false ? isTabbable : isFocusable;
13
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
14
- acceptNode: node => node instanceof HTMLElement && acceptFn(node, strict) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
15
- });
16
- let nextNode = null;
17
- // Allow the container to participate
18
- if (!options.reverse && acceptFn(container, strict)) {
19
- yield container;
20
- }
21
- // If iterating in reverse, continue traversing down into the last child until we reach
22
- // a leaf DOM node
23
- if (options.reverse) {
24
- let lastChild = walker.lastChild();
25
- while (lastChild) {
26
- nextNode = lastChild;
27
- lastChild = walker.lastChild();
28
- }
29
- }
30
- else {
31
- nextNode = walker.firstChild();
32
- }
33
- while (nextNode instanceof HTMLElement) {
34
- yield nextNode;
35
- nextNode = options.reverse ? walker.previousNode() : walker.nextNode();
21
+ var _options$strict, _options$onlyTabbable;
22
+
23
+ const strict = (_options$strict = options.strict) !== null && _options$strict !== void 0 ? _options$strict : false;
24
+ const acceptFn = ((_options$onlyTabbable = options.onlyTabbable) !== null && _options$onlyTabbable !== void 0 ? _options$onlyTabbable : false) ? isTabbable : isFocusable;
25
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
26
+ acceptNode: node => node instanceof HTMLElement && acceptFn(node, strict) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
27
+ });
28
+ let nextNode = null; // Allow the container to participate
29
+
30
+ if (!options.reverse && acceptFn(container, strict)) {
31
+ yield container;
32
+ } // If iterating in reverse, continue traversing down into the last child until we reach
33
+ // a leaf DOM node
34
+
35
+
36
+ if (options.reverse) {
37
+ let lastChild = walker.lastChild();
38
+
39
+ while (lastChild) {
40
+ nextNode = lastChild;
41
+ lastChild = walker.lastChild();
36
42
  }
37
- // Allow the container to participate (in reverse)
38
- if (options.reverse && acceptFn(container, strict)) {
39
- yield container;
40
- }
41
- return undefined;
43
+ } else {
44
+ nextNode = walker.firstChild();
45
+ }
46
+
47
+ while (nextNode instanceof HTMLElement) {
48
+ yield nextNode;
49
+ nextNode = options.reverse ? walker.previousNode() : walker.nextNode();
50
+ } // Allow the container to participate (in reverse)
51
+
52
+
53
+ if (options.reverse && acceptFn(container, strict)) {
54
+ yield container;
55
+ }
56
+
57
+ return undefined;
42
58
  }
43
- exports.iterateFocusableElements = iterateFocusableElements;
44
59
  /**
45
60
  * Determines whether the given element is focusable. If `strict` is true, we may
46
61
  * perform additional checks that require a reflow (less performant).
47
62
  * @param elem
48
63
  * @param strict
49
64
  */
65
+
66
+
50
67
  function isFocusable(elem, strict = false) {
51
- // Certain conditions cause an element to never be focusable, even if they have tabindex="0"
52
- const disabledAttrInert = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'OPTGROUP', 'OPTION', 'FIELDSET'].includes(elem.tagName) &&
53
- elem.disabled;
54
- const hiddenInert = elem.hidden;
55
- const hiddenInputInert = elem instanceof HTMLInputElement && elem.type === 'hidden';
56
- if (disabledAttrInert || hiddenInert || hiddenInputInert) {
57
- return false;
58
- }
59
- // Each of the conditions checked below require a reflow, thus are gated by the `strict`
60
- // argument. If any are true, the element is not focusable, even if tabindex is set.
61
- if (strict) {
62
- const sizeInert = elem.offsetWidth === 0 || elem.offsetHeight === 0;
63
- const visibilityInert = ['hidden', 'collapse'].includes(getComputedStyle(elem).visibility);
64
- const clientRectsInert = elem.getClientRects().length === 0;
65
- if (sizeInert || visibilityInert || clientRectsInert) {
66
- return false;
67
- }
68
- }
69
- // Any element with `tabindex` explicitly set can be focusable, even if it's set to "-1"
70
- if (elem.getAttribute('tabindex') != null) {
71
- return true;
68
+ // Certain conditions cause an element to never be focusable, even if they have tabindex="0"
69
+ const disabledAttrInert = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'OPTGROUP', 'OPTION', 'FIELDSET'].includes(elem.tagName) && elem.disabled;
70
+ const hiddenInert = elem.hidden;
71
+ const hiddenInputInert = elem instanceof HTMLInputElement && elem.type === 'hidden';
72
+
73
+ if (disabledAttrInert || hiddenInert || hiddenInputInert) {
74
+ return false;
75
+ } // Each of the conditions checked below require a reflow, thus are gated by the `strict`
76
+ // argument. If any are true, the element is not focusable, even if tabindex is set.
77
+
78
+
79
+ if (strict) {
80
+ const sizeInert = elem.offsetWidth === 0 || elem.offsetHeight === 0;
81
+ const visibilityInert = ['hidden', 'collapse'].includes(getComputedStyle(elem).visibility);
82
+ const clientRectsInert = elem.getClientRects().length === 0;
83
+
84
+ if (sizeInert || visibilityInert || clientRectsInert) {
85
+ return false;
72
86
  }
73
- // One last way `elem.tabIndex` can be wrong.
74
- if (elem instanceof HTMLAnchorElement && elem.getAttribute('href') == null) {
75
- return false;
76
- }
77
- return elem.tabIndex !== -1;
87
+ } // Any element with `tabindex` explicitly set can be focusable, even if it's set to "-1"
88
+
89
+
90
+ if (elem.getAttribute('tabindex') != null) {
91
+ return true;
92
+ } // One last way `elem.tabIndex` can be wrong.
93
+
94
+
95
+ if (elem instanceof HTMLAnchorElement && elem.getAttribute('href') == null) {
96
+ return false;
97
+ }
98
+
99
+ return elem.tabIndex !== -1;
78
100
  }
79
- exports.isFocusable = isFocusable;
80
101
  /**
81
102
  * Determines whether the given element is tabbable. If `strict` is true, we may
82
103
  * perform additional checks that require a reflow (less performant). This check
@@ -85,7 +106,8 @@ exports.isFocusable = isFocusable;
85
106
  * @param elem
86
107
  * @param strict
87
108
  */
109
+
110
+
88
111
  function isTabbable(elem, strict = false) {
89
- return isFocusable(elem, strict) && elem.getAttribute('tabindex') !== '-1';
90
- }
91
- exports.isTabbable = isTabbable;
112
+ return isFocusable(elem, strict) && elem.getAttribute('tabindex') !== '-1';
113
+ }
@@ -53,7 +53,7 @@ export declare function render(component: React.ReactElement, theme?: {
53
53
  xlarge: string;
54
54
  };
55
55
  space: string[];
56
- colorSchemes: Record<"light" | "light_colorblind" | "dark" | "dark_dimmed" | "dark_high_contrast" | "dark_colorblind", Record<"colors" | "shadows", Partial<{
56
+ colorSchemes: Record<"light" | "light_high_contrast" | "light_colorblind" | "dark" | "dark_dimmed" | "dark_high_contrast" | "dark_colorblind", Record<"colors" | "shadows", Partial<{
57
57
  canvasDefaultTransparent: string;
58
58
  marketingIcon: {
59
59
  primary: string;
@@ -1,54 +1,68 @@
1
1
  "use strict";
2
+
2
3
  // Utility functions used in theme-preval.js
3
4
  // This file needs to be a JavaScript file using CommonJS to be compatiable with preval
4
5
  const isEmpty = require('lodash.isempty');
6
+
5
7
  const isObject = require('lodash.isobject');
8
+
6
9
  const chroma = require('chroma-js');
10
+
7
11
  function fontStack(fonts) {
8
- return fonts.map(font => (font.includes(' ') ? `"${font}"` : font)).join(', ');
9
- }
10
- // The following functions are a temporary measure for splitting shadow values out from the colors object.
12
+ return fonts.map(font => font.includes(' ') ? `"${font}"` : font).join(', ');
13
+ } // The following functions are a temporary measure for splitting shadow values out from the colors object.
11
14
  // Eventually, we will push these structural changes upstream to primer/primitives so this data manipulation
12
15
  // will not be needed.
16
+
17
+
13
18
  function isShadowValue(value) {
14
- return typeof value === 'string' && /(inset\s|)([0-9.]+(\w*)\s){1,4}(rgb[a]?\(.*\)|\w+)/.test(value);
19
+ return typeof value === 'string' && /(inset\s|)([0-9.]+(\w*)\s){1,4}(rgb[a]?\(.*\)|\w+)/.test(value);
15
20
  }
21
+
16
22
  function isColorValue(value) {
17
- return chroma.valid(value);
23
+ return chroma.valid(value);
18
24
  }
25
+
19
26
  function filterObject(obj, predicate) {
20
- if (Array.isArray(obj)) {
21
- return obj.filter(predicate);
27
+ if (Array.isArray(obj)) {
28
+ return obj.filter(predicate);
29
+ }
30
+
31
+ return Object.entries(obj).reduce((acc, [key, value]) => {
32
+ if (isObject(value)) {
33
+ const result = filterObject(value, predicate); // Don't include empty objects or arrays
34
+
35
+ if (!isEmpty(result)) {
36
+ acc[key] = result;
37
+ }
38
+ } else if (predicate(value)) {
39
+ acc[key] = value;
22
40
  }
23
- return Object.entries(obj).reduce((acc, [key, value]) => {
24
- if (isObject(value)) {
25
- const result = filterObject(value, predicate);
26
- // Don't include empty objects or arrays
27
- if (!isEmpty(result)) {
28
- acc[key] = result;
29
- }
30
- }
31
- else if (predicate(value)) {
32
- acc[key] = value;
33
- }
34
- return acc;
35
- }, {});
41
+
42
+ return acc;
43
+ }, {});
36
44
  }
45
+
37
46
  function partitionColors(colors) {
38
- return {
39
- colors: filterObject(colors, value => isColorValue(value)),
40
- shadows: filterObject(colors, value => isShadowValue(value))
41
- };
47
+ return {
48
+ colors: filterObject(colors, value => isColorValue(value)),
49
+ shadows: filterObject(colors, value => isShadowValue(value))
50
+ };
42
51
  }
52
+
43
53
  function omitScale(obj) {
44
- const { scale, ...rest } = obj;
45
- return rest;
54
+ const {
55
+ scale,
56
+ ...rest
57
+ } = obj;
58
+ return rest;
46
59
  }
60
+
47
61
  module.exports = {
48
- fontStack,
49
- isShadowValue,
50
- isColorValue,
51
- filterObject,
52
- partitionColors,
53
- omitScale
54
- };
62
+ fontStack,
63
+ isShadowValue,
64
+ isColorValue,
65
+ filterObject,
66
+ partitionColors,
67
+ omitScale
68
+ };
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,16 +1 @@
1
- "use strict";
2
- /*
3
- Used to convert a list of properties in a type from optional to required
4
-
5
- For example, we could make a new type from `Datum`
6
- where 'id' and 'label' required:
7
- type Datum = {
8
- description?: string
9
- id?: string
10
- label?: string
11
- value: string
12
- }
13
-
14
- type DatumWithRequiredIdAndLabel = MandateProps<Datum, 'id' | 'label'>
15
- */
16
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
@@ -1,17 +1,70 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./AriaRole"), exports);
14
- __exportStar(require("./ComponentProps"), exports);
15
- __exportStar(require("./Flatten"), exports);
16
- __exportStar(require("./Merge"), exports);
17
- __exportStar(require("./MandateProps"), exports);
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _AriaRole = require("./AriaRole");
8
+
9
+ Object.keys(_AriaRole).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _AriaRole[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _AriaRole[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _ComponentProps = require("./ComponentProps");
21
+
22
+ Object.keys(_ComponentProps).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _ComponentProps[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _ComponentProps[key];
29
+ }
30
+ });
31
+ });
32
+
33
+ var _Flatten = require("./Flatten");
34
+
35
+ Object.keys(_Flatten).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _Flatten[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _Flatten[key];
42
+ }
43
+ });
44
+ });
45
+
46
+ var _Merge = require("./Merge");
47
+
48
+ Object.keys(_Merge).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _Merge[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _Merge[key];
55
+ }
56
+ });
57
+ });
58
+
59
+ var _MandateProps = require("./MandateProps");
60
+
61
+ Object.keys(_MandateProps).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (key in exports && exports[key] === _MandateProps[key]) return;
64
+ Object.defineProperty(exports, key, {
65
+ enumerable: true,
66
+ get: function () {
67
+ return _MandateProps[key];
68
+ }
69
+ });
70
+ });
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.uniqueId = uniqueId;
2
7
  // Note: uniqueId may be unsafe in SSR contexts if it is used create DOM IDs or otherwise cause a hydration warning. Use useSSRSafeId instead.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.uniqueId = void 0;
5
8
  let idSeed = 10000;
9
+
6
10
  function uniqueId() {
7
- return `__primer_id_${idSeed++}`;
8
- }
9
- exports.uniqueId = uniqueId;
11
+ return `__primer_id_${idSeed++}`;
12
+ }
@@ -1,13 +1,19 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
6
  exports.useForceUpdate = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
7
12
  // Inspired from reach-ui: https://github.com/reach/reach-ui/blob/develop/packages/utils/src/use-force-update.ts
8
- const react_1 = __importDefault(require("react"));
9
13
  const useForceUpdate = () => {
10
- const [, rerender] = react_1.default.useState({});
11
- return react_1.default.useCallback(() => rerender({}), []);
14
+ const [, rerender] = _react.default.useState({});
15
+
16
+ return _react.default.useCallback(() => rerender({}), []);
12
17
  };
13
- exports.useForceUpdate = useForceUpdate;
18
+
19
+ exports.useForceUpdate = useForceUpdate;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- const useIsomorphicLayoutEffect = typeof window !== 'undefined' &&
5
- typeof window.document !== 'undefined' &&
6
- typeof window.document.createElement !== 'undefined'
7
- ? react_1.useLayoutEffect
8
- : react_1.useEffect;
9
- exports.default = useIsomorphicLayoutEffect;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? _react.useLayoutEffect : _react.useEffect;
11
+ var _default = useIsomorphicLayoutEffect;
12
+ exports.default = _default;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMacOS = void 0;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isMacOS = isMacOS;
4
7
  let isMac = undefined;
8
+
5
9
  function isMacOS() {
6
- if (isMac === undefined) {
7
- isMac = /^mac/i.test(window.navigator.platform);
8
- }
9
- return isMac;
10
- }
11
- exports.isMacOS = isMacOS;
10
+ if (isMac === undefined) {
11
+ isMac = /^mac/i.test(window.navigator.platform);
12
+ }
13
+
14
+ return isMac;
15
+ }
@@ -1,11 +1,37 @@
1
1
  import React from 'react';
2
2
  import { SxProp } from '../sx';
3
- import { HeaderProps } from './Header';
4
3
  import { ListProps } from './List';
5
- export declare type GroupProps = HeaderProps & SxProp & {
4
+ import { AriaRole } from '../utils/types';
5
+ export declare type GroupProps = {
6
+ /**
7
+ * Style variations. Usage is discretionary.
8
+ *
9
+ * - `"filled"` - Superimposed on a background, offset from nearby content
10
+ * - `"subtle"` - Relatively less offset from nearby content
11
+ */
12
+ variant?: 'subtle' | 'filled';
13
+ /**
14
+ * Primary text which names a `Group`.
15
+ */
16
+ title?: string;
17
+ /**
18
+ * Secondary text which provides additional information about a `Group`.
19
+ */
20
+ auxiliaryText?: string;
21
+ /**
22
+ * The ARIA role describing the function of the list inside `Group` component. `listbox` or `menu` are a common values.
23
+ */
24
+ role?: AriaRole;
25
+ } & SxProp & {
26
+ /**
27
+ * Whether multiple Items or a single Item can be selected in the Group. Overrides value on ActionList root.
28
+ */
6
29
  selectionVariant?: ListProps['selectionVariant'] | false;
7
30
  };
8
31
  declare type ContextProps = Pick<GroupProps, 'selectionVariant'>;
9
32
  export declare const GroupContext: React.Context<ContextProps>;
10
33
  export declare const Group: React.FC<GroupProps>;
34
+ export declare type HeaderProps = Pick<GroupProps, 'variant' | 'title' | 'auxiliaryText'> & {
35
+ labelId: string;
36
+ };
11
37
  export {};
@@ -1,17 +1,20 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  import React from 'react';
4
+ import { useSSRSafeId } from '@react-aria/ssr';
4
5
  import Box from '../Box';
5
- import { Header } from './Header';
6
+ import { ListContext } from './List';
6
7
  export const GroupContext = /*#__PURE__*/React.createContext({});
7
8
  export const Group = ({
8
9
  title,
9
- variant,
10
+ variant = 'subtle',
10
11
  auxiliaryText,
11
12
  selectionVariant,
13
+ role,
12
14
  sx = {},
13
15
  ...props
14
16
  }) => {
17
+ const labelId = useSSRSafeId();
15
18
  return /*#__PURE__*/React.createElement(Box, _extends({
16
19
  as: "li",
17
20
  sx: {
@@ -25,7 +28,8 @@ export const Group = ({
25
28
  }, props), title && /*#__PURE__*/React.createElement(Header, {
26
29
  title: title,
27
30
  variant: variant,
28
- auxiliaryText: auxiliaryText
31
+ auxiliaryText: auxiliaryText,
32
+ labelId: labelId
29
33
  }), /*#__PURE__*/React.createElement(GroupContext.Provider, {
30
34
  value: {
31
35
  selectionVariant
@@ -34,7 +38,50 @@ export const Group = ({
34
38
  as: "ul",
35
39
  sx: {
36
40
  paddingInlineStart: 0
37
- }
41
+ },
42
+ "aria-labelledby": title ? labelId : undefined,
43
+ role: role
38
44
  }, props.children)));
39
45
  };
40
- Group.displayName = "Group";
46
+ Group.displayName = "Group";
47
+
48
+ /**
49
+ * Displays the name and description of a `Group`.
50
+ *
51
+ * For visual presentation only. It's hidden from screen readers.
52
+ */
53
+ const Header = ({
54
+ variant,
55
+ title,
56
+ auxiliaryText,
57
+ labelId,
58
+ ...props
59
+ }) => {
60
+ const {
61
+ variant: listVariant
62
+ } = React.useContext(ListContext);
63
+ const styles = {
64
+ paddingY: '6px',
65
+ paddingX: listVariant === 'full' ? 2 : 3,
66
+ fontSize: 0,
67
+ fontWeight: 'bold',
68
+ color: 'fg.muted',
69
+ ...(variant === 'filled' && {
70
+ backgroundColor: 'canvas.subtle',
71
+ marginX: 0,
72
+ marginBottom: 2,
73
+ borderTop: '1px solid',
74
+ borderBottom: '1px solid',
75
+ borderColor: 'neutral.muted'
76
+ })
77
+ };
78
+ return /*#__PURE__*/React.createElement(Box, _extends({
79
+ sx: styles,
80
+ role: "presentation",
81
+ "aria-hidden": "true"
82
+ }, props), /*#__PURE__*/React.createElement("span", {
83
+ id: labelId
84
+ }, title), auxiliaryText && /*#__PURE__*/React.createElement("span", null, auxiliaryText));
85
+ };
86
+
87
+ Header.displayName = "Header";