@primer/components 32.0.1-rc.c4c2c50a → 32.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1284) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/browser.esm.js +7 -1
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +7 -1
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/index.js +23 -12
  7. package/lib/ActionList2/index.js +41 -23
  8. package/lib/AnchoredOverlay/index.js +12 -4
  9. package/lib/Autocomplete/index.js +14 -7
  10. package/lib/Button/index.js +70 -21
  11. package/lib/Checkbox.d.ts +29 -0
  12. package/lib/Checkbox.js +64 -0
  13. package/lib/DropdownMenu/index.js +20 -6
  14. package/lib/DropdownStyles.js +26 -18
  15. package/lib/FilteredActionList/index.js +12 -4
  16. package/lib/NewButton/index.js +12 -5
  17. package/lib/NewButton/types.js +1 -2
  18. package/lib/Overlay.d.ts +5 -3
  19. package/lib/Pagination/index.js +12 -6
  20. package/lib/Portal/index.js +16 -5
  21. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  22. package/lib/SelectMenu/index.js +14 -7
  23. package/lib/SelectPanel/index.js +12 -4
  24. package/lib/Token/index.js +30 -11
  25. package/lib/behaviors/anchoredPosition.js +234 -205
  26. package/lib/behaviors/focusTrap.js +157 -121
  27. package/lib/behaviors/focusZone.js +509 -434
  28. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  29. package/lib/constants.js +43 -39
  30. package/lib/drafts.js +30 -20
  31. package/lib/hooks/index.js +60 -16
  32. package/lib/hooks/useAnchoredPosition.js +40 -32
  33. package/lib/hooks/useCombinedRefs.js +36 -32
  34. package/lib/hooks/useDialog.js +96 -72
  35. package/lib/hooks/useFocusTrap.js +60 -43
  36. package/lib/hooks/useFocusZone.js +50 -54
  37. package/lib/hooks/useOnEscapePress.js +36 -25
  38. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  39. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  40. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  41. package/lib/hooks/useRenderForcingRef.js +17 -13
  42. package/lib/hooks/useResizeObserver.js +18 -15
  43. package/lib/hooks/useSafeTimeout.js +30 -22
  44. package/lib/hooks/useScrollFlash.js +23 -16
  45. package/lib/index.d.ts +2 -0
  46. package/lib/index.js +652 -163
  47. package/lib/polyfills/eventListenerSignal.js +45 -37
  48. package/lib/sx.js +22 -10
  49. package/lib/theme-preval.js +3169 -64
  50. package/lib/theme.js +12 -3
  51. package/lib/utils/iterateFocusableElements.js +85 -63
  52. package/lib/utils/theme.js +47 -33
  53. package/lib/utils/types/AriaRole.js +1 -2
  54. package/lib/utils/types/ComponentProps.js +1 -2
  55. package/lib/utils/types/Flatten.js +1 -2
  56. package/lib/utils/types/KeyPaths.js +1 -2
  57. package/lib/utils/types/MandateProps.js +1 -16
  58. package/lib/utils/types/Merge.js +1 -2
  59. package/lib/utils/types/index.js +69 -16
  60. package/lib/utils/uniqueId.js +8 -5
  61. package/lib/utils/use-force-update.js +14 -8
  62. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  63. package/lib/utils/userAgent.js +12 -8
  64. package/lib-esm/Checkbox.d.ts +29 -0
  65. package/lib-esm/Checkbox.js +44 -0
  66. package/lib-esm/Overlay.d.ts +5 -3
  67. package/lib-esm/index.d.ts +2 -0
  68. package/lib-esm/index.js +1 -0
  69. package/package.json +2 -3
  70. package/.changeset/README.md +0 -8
  71. package/.changeset/config.json +0 -10
  72. package/.devcontainer/devcontainer.json +0 -8
  73. package/.eslintrc.json +0 -137
  74. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  75. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  76. package/.github/dependabot.yml +0 -18
  77. package/.github/pull_request_template.md +0 -18
  78. package/.github/workflows/check_for_changeset.yml +0 -25
  79. package/.github/workflows/ci.yml +0 -34
  80. package/.github/workflows/deploy_preview.yml +0 -47
  81. package/.github/workflows/deploy_production.yml +0 -70
  82. package/.github/workflows/release.yml +0 -35
  83. package/.github/workflows/release_canary.yml +0 -70
  84. package/.github/workflows/release_candidate.yml +0 -60
  85. package/.github/workflows/size.yml +0 -13
  86. package/.github/workflows/stale.yml +0 -26
  87. package/.gitignore +0 -10
  88. package/.npmrc +0 -4
  89. package/.nvmrc +0 -1
  90. package/.storybook/main.js +0 -9
  91. package/.storybook/preview.js +0 -117
  92. package/.vscode/launch.json +0 -21
  93. package/.vscode/settings.json +0 -13
  94. package/@types/@styled-system/index.d.ts +0 -0
  95. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  96. package/@types/@styled-system/props/index.d.ts +0 -1
  97. package/@types/jest-styled-components/index.d.ts +0 -1
  98. package/CODEOWNERS +0 -2
  99. package/babel-defines.js +0 -13
  100. package/babel.config.js +0 -39
  101. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  102. package/contributor-docs/CONTRIBUTING.md +0 -274
  103. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  104. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -108
  105. package/contributor-docs/adrs/adr-003-prop-norms.md +0 -72
  106. package/contributor-docs/behaviors.md +0 -132
  107. package/contributor-docs/component-contents-api-patterns.md +0 -316
  108. package/contributor-docs/principles.md +0 -39
  109. package/docs/.eslintrc +0 -0
  110. package/docs/.gitignore +0 -91
  111. package/docs/components/PropsList.js +0 -5
  112. package/docs/components/State.js +0 -9
  113. package/docs/components/constants.js +0 -34
  114. package/docs/components/index.js +0 -2
  115. package/docs/content/ActionList.mdx +0 -99
  116. package/docs/content/ActionList2.mdx +0 -359
  117. package/docs/content/ActionMenu.mdx +0 -80
  118. package/docs/content/AnchoredOverlay.mdx +0 -37
  119. package/docs/content/Autocomplete.mdx +0 -657
  120. package/docs/content/Avatar.mdx +0 -33
  121. package/docs/content/AvatarStack.mdx +0 -37
  122. package/docs/content/BorderBox.md +0 -46
  123. package/docs/content/Box.mdx +0 -96
  124. package/docs/content/BranchName.md +0 -18
  125. package/docs/content/Breadcrumbs.md +0 -47
  126. package/docs/content/Buttons.md +0 -46
  127. package/docs/content/CircleBadge.md +0 -35
  128. package/docs/content/CircleOcticon.md +0 -18
  129. package/docs/content/CounterLabel.md +0 -22
  130. package/docs/content/Details.md +0 -105
  131. package/docs/content/Dialog.md +0 -105
  132. package/docs/content/Dialog2.mdx +0 -180
  133. package/docs/content/Dropdown.md +0 -65
  134. package/docs/content/DropdownMenu.mdx +0 -49
  135. package/docs/content/FilterList.md +0 -37
  136. package/docs/content/FilteredSearch.md +0 -32
  137. package/docs/content/Flash.md +0 -35
  138. package/docs/content/Flex.md +0 -58
  139. package/docs/content/FormGroup.md +0 -38
  140. package/docs/content/Grid.md +0 -59
  141. package/docs/content/Header.md +0 -77
  142. package/docs/content/Heading.md +0 -22
  143. package/docs/content/Label.md +0 -49
  144. package/docs/content/LabelGroup.md +0 -21
  145. package/docs/content/Link.md +0 -28
  146. package/docs/content/Overlay.mdx +0 -85
  147. package/docs/content/Pagehead.md +0 -18
  148. package/docs/content/Pagination.md +0 -178
  149. package/docs/content/PointerBox.md +0 -81
  150. package/docs/content/Popover.md +0 -129
  151. package/docs/content/Portal.mdx +0 -78
  152. package/docs/content/Position.md +0 -100
  153. package/docs/content/ProgressBar.mdx +0 -29
  154. package/docs/content/SelectMenu.md +0 -371
  155. package/docs/content/SelectPanel.mdx +0 -67
  156. package/docs/content/SideNav.md +0 -171
  157. package/docs/content/Spinner.mdx +0 -32
  158. package/docs/content/StateLabel.md +0 -27
  159. package/docs/content/StyledOcticon.md +0 -27
  160. package/docs/content/SubNav.md +0 -100
  161. package/docs/content/TabNav.md +0 -42
  162. package/docs/content/Text.md +0 -31
  163. package/docs/content/TextInput.md +0 -34
  164. package/docs/content/TextInputTokens.mdx +0 -89
  165. package/docs/content/TextInputWithTokens.mdx +0 -211
  166. package/docs/content/Timeline.md +0 -148
  167. package/docs/content/Token.mdx +0 -381
  168. package/docs/content/Tooltip.md +0 -32
  169. package/docs/content/Truncate.md +0 -55
  170. package/docs/content/UnderlineNav.md +0 -45
  171. package/docs/content/anchoredPosition.mdx +0 -163
  172. package/docs/content/core-concepts.md +0 -70
  173. package/docs/content/focusTrap.mdx +0 -103
  174. package/docs/content/focusZone.mdx +0 -145
  175. package/docs/content/getting-started.md +0 -138
  176. package/docs/content/index.md +0 -33
  177. package/docs/content/linting.md +0 -35
  178. package/docs/content/overriding-styles.mdx +0 -82
  179. package/docs/content/philosophy.md +0 -23
  180. package/docs/content/primer-theme.md +0 -89
  181. package/docs/content/ssr.mdx +0 -43
  182. package/docs/content/system-props.mdx +0 -37
  183. package/docs/content/theme-reference.md +0 -16
  184. package/docs/content/theming.md +0 -272
  185. package/docs/content/useOnEscapePress.mdx +0 -56
  186. package/docs/content/useOnOutsideClick.mdx +0 -57
  187. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  188. package/docs/content/useOverlay.mdx +0 -62
  189. package/docs/content/useSafeTimeout.mdx +0 -32
  190. package/docs/gatsby-config.js +0 -30
  191. package/docs/gatsby-node.js +0 -101
  192. package/docs/package-lock.json +0 -20867
  193. package/docs/package.json +0 -36
  194. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -21
  195. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -41
  196. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -73
  197. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -133
  198. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  199. package/docs/src/component-checklist.js +0 -81
  200. package/docs/src/props.js +0 -77
  201. package/jest.config.js +0 -13
  202. package/lib/ActionList/Divider.jsx +0 -29
  203. package/lib/ActionList/Group.jsx +0 -23
  204. package/lib/ActionList/Header.jsx +0 -66
  205. package/lib/ActionList/Item.jsx +0 -288
  206. package/lib/ActionList/List.jsx +0 -138
  207. package/lib/ActionList2/Description.jsx +0 -29
  208. package/lib/ActionList2/Divider.jsx +0 -22
  209. package/lib/ActionList2/Group.jsx +0 -54
  210. package/lib/ActionList2/Header.jsx +0 -36
  211. package/lib/ActionList2/Item.jsx +0 -174
  212. package/lib/ActionList2/LinkItem.jsx +0 -28
  213. package/lib/ActionList2/List.jsx +0 -41
  214. package/lib/ActionList2/Selection.jsx +0 -50
  215. package/lib/ActionList2/Visuals.jsx +0 -48
  216. package/lib/ActionMenu.jsx +0 -73
  217. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  218. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  219. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  220. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  221. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  222. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  223. package/lib/Avatar.jsx +0 -34
  224. package/lib/AvatarPair.jsx +0 -29
  225. package/lib/AvatarStack.jsx +0 -151
  226. package/lib/BaseStyles.jsx +0 -65
  227. package/lib/BorderBox.jsx +0 -18
  228. package/lib/Box.jsx +0 -10
  229. package/lib/BranchName.jsx +0 -20
  230. package/lib/Breadcrumbs.jsx +0 -71
  231. package/lib/Button/Button.jsx +0 -40
  232. package/lib/Button/ButtonBase.jsx +0 -33
  233. package/lib/Button/ButtonClose.jsx +0 -53
  234. package/lib/Button/ButtonDanger.jsx +0 -43
  235. package/lib/Button/ButtonGroup.jsx +0 -55
  236. package/lib/Button/ButtonInvisible.jsx +0 -32
  237. package/lib/Button/ButtonOutline.jsx +0 -43
  238. package/lib/Button/ButtonPrimary.jsx +0 -42
  239. package/lib/Button/ButtonStyles.jsx +0 -37
  240. package/lib/Button/ButtonTableList.jsx +0 -46
  241. package/lib/Caret.jsx +0 -93
  242. package/lib/CircleBadge.jsx +0 -42
  243. package/lib/CircleOcticon.jsx +0 -21
  244. package/lib/CounterLabel.jsx +0 -43
  245. package/lib/Details.jsx +0 -21
  246. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  247. package/lib/Dialog/Dialog.jsx +0 -279
  248. package/lib/Dialog.jsx +0 -129
  249. package/lib/Dropdown.jsx +0 -131
  250. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  251. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  252. package/lib/FilterList.jsx +0 -59
  253. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  254. package/lib/FilteredSearch.jsx +0 -28
  255. package/lib/Flash.jsx +0 -69
  256. package/lib/Flex.jsx +0 -15
  257. package/lib/FormGroup.jsx +0 -22
  258. package/lib/Grid.jsx +0 -15
  259. package/lib/Header.jsx +0 -83
  260. package/lib/Heading.jsx +0 -21
  261. package/lib/Label.jsx +0 -82
  262. package/lib/LabelGroup.jsx +0 -18
  263. package/lib/Link.jsx +0 -36
  264. package/lib/NewButton/button-counter.jsx +0 -14
  265. package/lib/NewButton/button.jsx +0 -279
  266. package/lib/Overlay.jsx +0 -154
  267. package/lib/Pagehead.jsx +0 -17
  268. package/lib/Pagination/Pagination.jsx +0 -161
  269. package/lib/Pagination/model.jsx +0 -174
  270. package/lib/PointerBox.jsx +0 -25
  271. package/lib/Popover.jsx +0 -202
  272. package/lib/Portal/Portal.jsx +0 -79
  273. package/lib/Position.jsx +0 -46
  274. package/lib/ProgressBar.jsx +0 -39
  275. package/lib/SelectMenu/SelectMenu.jsx +0 -112
  276. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  277. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -42
  278. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -58
  279. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -45
  280. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -42
  281. package/lib/SelectMenu/SelectMenuItem.jsx +0 -142
  282. package/lib/SelectMenu/SelectMenuList.jsx +0 -59
  283. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -22
  284. package/lib/SelectMenu/SelectMenuModal.jsx +0 -118
  285. package/lib/SelectMenu/SelectMenuTab.jsx +0 -92
  286. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -42
  287. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -57
  288. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  289. package/lib/SideNav.jsx +0 -173
  290. package/lib/Spinner.jsx +0 -35
  291. package/lib/StateLabel.jsx +0 -93
  292. package/lib/StyledOcticon.jsx +0 -18
  293. package/lib/SubNav.jsx +0 -101
  294. package/lib/TabNav.jsx +0 -58
  295. package/lib/Text.jsx +0 -14
  296. package/lib/TextInput.jsx +0 -23
  297. package/lib/TextInputWithTokens.jsx +0 -218
  298. package/lib/ThemeProvider.jsx +0 -130
  299. package/lib/Timeline.jsx +0 -123
  300. package/lib/Token/AvatarToken.jsx +0 -54
  301. package/lib/Token/IssueLabelToken.jsx +0 -125
  302. package/lib/Token/Token.jsx +0 -103
  303. package/lib/Token/TokenBase.jsx +0 -88
  304. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  305. package/lib/Token/_TokenTextContainer.jsx +0 -49
  306. package/lib/Tooltip.jsx +0 -246
  307. package/lib/Truncate.jsx +0 -24
  308. package/lib/UnderlineNav.jsx +0 -88
  309. package/lib/_TextInputWrapper.jsx +0 -120
  310. package/lib/_UnstyledTextInput.jsx +0 -22
  311. package/lib/__tests__/ActionList.test.d.ts +0 -1
  312. package/lib/__tests__/ActionList.test.js +0 -69
  313. package/lib/__tests__/ActionList.test.jsx +0 -49
  314. package/lib/__tests__/ActionList.types.test.d.ts +0 -6
  315. package/lib/__tests__/ActionList.types.test.js +0 -69
  316. package/lib/__tests__/ActionList.types.test.jsx +0 -45
  317. package/lib/__tests__/ActionList2.test.d.ts +0 -1
  318. package/lib/__tests__/ActionList2.test.js +0 -53
  319. package/lib/__tests__/ActionList2.test.jsx +0 -46
  320. package/lib/__tests__/ActionMenu.test.d.ts +0 -1
  321. package/lib/__tests__/ActionMenu.test.js +0 -151
  322. package/lib/__tests__/ActionMenu.test.jsx +0 -124
  323. package/lib/__tests__/AnchoredOverlay.test.d.ts +0 -1
  324. package/lib/__tests__/AnchoredOverlay.test.js +0 -162
  325. package/lib/__tests__/AnchoredOverlay.test.jsx +0 -121
  326. package/lib/__tests__/Autocomplete.test.d.ts +0 -1
  327. package/lib/__tests__/Autocomplete.test.js +0 -528
  328. package/lib/__tests__/Autocomplete.test.jsx +0 -299
  329. package/lib/__tests__/Avatar.test.d.ts +0 -1
  330. package/lib/__tests__/Avatar.test.js +0 -67
  331. package/lib/__tests__/Avatar.test.jsx +0 -42
  332. package/lib/__tests__/AvatarStack.test.d.ts +0 -1
  333. package/lib/__tests__/AvatarStack.test.js +0 -71
  334. package/lib/__tests__/AvatarStack.test.jsx +0 -43
  335. package/lib/__tests__/BorderBox.test.d.ts +0 -1
  336. package/lib/__tests__/BorderBox.test.js +0 -58
  337. package/lib/__tests__/BorderBox.test.jsx +0 -36
  338. package/lib/__tests__/Box.test.d.ts +0 -1
  339. package/lib/__tests__/Box.test.js +0 -78
  340. package/lib/__tests__/Box.test.jsx +0 -41
  341. package/lib/__tests__/BranchName.test.d.ts +0 -1
  342. package/lib/__tests__/BranchName.test.js +0 -36
  343. package/lib/__tests__/BranchName.test.jsx +0 -27
  344. package/lib/__tests__/Breadcrumbs.test.d.ts +0 -1
  345. package/lib/__tests__/Breadcrumbs.test.js +0 -40
  346. package/lib/__tests__/Breadcrumbs.test.jsx +0 -28
  347. package/lib/__tests__/Breadcrumbs.types.test.d.ts +0 -3
  348. package/lib/__tests__/Breadcrumbs.types.test.js +0 -25
  349. package/lib/__tests__/Breadcrumbs.types.test.jsx +0 -24
  350. package/lib/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  351. package/lib/__tests__/BreadcrumbsItem.test.js +0 -49
  352. package/lib/__tests__/BreadcrumbsItem.test.jsx +0 -31
  353. package/lib/__tests__/Button.test.d.ts +0 -1
  354. package/lib/__tests__/Button.test.js +0 -147
  355. package/lib/__tests__/Button.test.jsx +0 -100
  356. package/lib/__tests__/Caret.test.d.ts +0 -1
  357. package/lib/__tests__/Caret.test.js +0 -52
  358. package/lib/__tests__/Caret.test.jsx +0 -37
  359. package/lib/__tests__/CircleBadge.test.d.ts +0 -1
  360. package/lib/__tests__/CircleBadge.test.js +0 -83
  361. package/lib/__tests__/CircleBadge.test.jsx +0 -55
  362. package/lib/__tests__/CircleBadge.types.test.d.ts +0 -3
  363. package/lib/__tests__/CircleBadge.types.test.js +0 -28
  364. package/lib/__tests__/CircleBadge.types.test.jsx +0 -17
  365. package/lib/__tests__/CircleOcticon.test.d.ts +0 -1
  366. package/lib/__tests__/CircleOcticon.test.js +0 -71
  367. package/lib/__tests__/CircleOcticon.test.jsx +0 -45
  368. package/lib/__tests__/ConfirmationDialog.test.d.ts +0 -1
  369. package/lib/__tests__/ConfirmationDialog.test.js +0 -134
  370. package/lib/__tests__/ConfirmationDialog.test.jsx +0 -119
  371. package/lib/__tests__/CounterLabel.test.d.ts +0 -1
  372. package/lib/__tests__/CounterLabel.test.js +0 -58
  373. package/lib/__tests__/CounterLabel.test.jsx +0 -36
  374. package/lib/__tests__/CounterLabel.types.test.d.ts +0 -3
  375. package/lib/__tests__/CounterLabel.types.test.js +0 -28
  376. package/lib/__tests__/CounterLabel.types.test.jsx +0 -17
  377. package/lib/__tests__/Details.test.d.ts +0 -1
  378. package/lib/__tests__/Details.test.js +0 -117
  379. package/lib/__tests__/Details.test.jsx +0 -85
  380. package/lib/__tests__/Dialog.test.d.ts +0 -1
  381. package/lib/__tests__/Dialog.test.js +0 -184
  382. package/lib/__tests__/Dialog.test.jsx +0 -139
  383. package/lib/__tests__/Dialog.types.test.d.ts +0 -3
  384. package/lib/__tests__/Dialog.types.test.js +0 -28
  385. package/lib/__tests__/Dialog.types.test.jsx +0 -17
  386. package/lib/__tests__/Dialog2.types.test.d.ts +0 -3
  387. package/lib/__tests__/Dialog2.types.test.js +0 -31
  388. package/lib/__tests__/Dialog2.types.test.jsx +0 -17
  389. package/lib/__tests__/Dropdown.test.d.ts +0 -1
  390. package/lib/__tests__/Dropdown.test.js +0 -63
  391. package/lib/__tests__/Dropdown.test.jsx +0 -49
  392. package/lib/__tests__/Dropdown.types.test.d.ts +0 -3
  393. package/lib/__tests__/Dropdown.types.test.js +0 -31
  394. package/lib/__tests__/Dropdown.types.test.jsx +0 -25
  395. package/lib/__tests__/DropdownMenu.test.d.ts +0 -1
  396. package/lib/__tests__/DropdownMenu.test.js +0 -150
  397. package/lib/__tests__/DropdownMenu.test.jsx +0 -119
  398. package/lib/__tests__/FilterList.test.d.ts +0 -1
  399. package/lib/__tests__/FilterList.test.js +0 -36
  400. package/lib/__tests__/FilterList.test.jsx +0 -27
  401. package/lib/__tests__/FilterList.types.test.d.ts +0 -3
  402. package/lib/__tests__/FilterList.types.test.js +0 -27
  403. package/lib/__tests__/FilterList.types.test.jsx +0 -21
  404. package/lib/__tests__/FilterListItem.test.d.ts +0 -1
  405. package/lib/__tests__/FilterListItem.test.js +0 -46
  406. package/lib/__tests__/FilterListItem.test.jsx +0 -31
  407. package/lib/__tests__/FilteredSearch.test.d.ts +0 -1
  408. package/lib/__tests__/FilteredSearch.test.js +0 -36
  409. package/lib/__tests__/FilteredSearch.test.jsx +0 -27
  410. package/lib/__tests__/FilteredSearch.types.test.d.ts +0 -3
  411. package/lib/__tests__/FilteredSearch.types.test.js +0 -28
  412. package/lib/__tests__/FilteredSearch.types.test.jsx +0 -17
  413. package/lib/__tests__/Flash.test.d.ts +0 -1
  414. package/lib/__tests__/Flash.test.js +0 -62
  415. package/lib/__tests__/Flash.test.jsx +0 -36
  416. package/lib/__tests__/Flash.types.test.d.ts +0 -3
  417. package/lib/__tests__/Flash.types.test.js +0 -28
  418. package/lib/__tests__/Flash.types.test.jsx +0 -17
  419. package/lib/__tests__/Flex.test.d.ts +0 -1
  420. package/lib/__tests__/Flex.test.js +0 -74
  421. package/lib/__tests__/Flex.test.jsx +0 -51
  422. package/lib/__tests__/FormGroup.test.d.ts +0 -1
  423. package/lib/__tests__/FormGroup.test.js +0 -54
  424. package/lib/__tests__/FormGroup.test.jsx +0 -36
  425. package/lib/__tests__/FormGroup.types.test.d.ts +0 -3
  426. package/lib/__tests__/FormGroup.types.test.js +0 -28
  427. package/lib/__tests__/FormGroup.types.test.jsx +0 -17
  428. package/lib/__tests__/Grid.test.d.ts +0 -1
  429. package/lib/__tests__/Grid.test.js +0 -104
  430. package/lib/__tests__/Grid.test.jsx +0 -69
  431. package/lib/__tests__/Header.test.d.ts +0 -1
  432. package/lib/__tests__/Header.test.js +0 -58
  433. package/lib/__tests__/Header.test.jsx +0 -45
  434. package/lib/__tests__/Header.types.test.d.ts +0 -3
  435. package/lib/__tests__/Header.types.test.js +0 -29
  436. package/lib/__tests__/Header.types.test.jsx +0 -23
  437. package/lib/__tests__/Heading.test.d.ts +0 -1
  438. package/lib/__tests__/Heading.test.js +0 -109
  439. package/lib/__tests__/Heading.test.jsx +0 -71
  440. package/lib/__tests__/KeyPaths.types.test.d.ts +0 -11
  441. package/lib/__tests__/KeyPaths.types.test.js +0 -7
  442. package/lib/__tests__/Label.test.d.ts +0 -1
  443. package/lib/__tests__/Label.test.js +0 -46
  444. package/lib/__tests__/Label.test.jsx +0 -33
  445. package/lib/__tests__/Label.types.test.d.ts +0 -3
  446. package/lib/__tests__/Label.types.test.js +0 -28
  447. package/lib/__tests__/Label.types.test.jsx +0 -17
  448. package/lib/__tests__/LabelGroup.test.d.ts +0 -1
  449. package/lib/__tests__/LabelGroup.test.js +0 -38
  450. package/lib/__tests__/LabelGroup.test.jsx +0 -29
  451. package/lib/__tests__/LabelGroup.types.test.d.ts +0 -3
  452. package/lib/__tests__/LabelGroup.types.test.js +0 -28
  453. package/lib/__tests__/LabelGroup.types.test.jsx +0 -17
  454. package/lib/__tests__/Link.test.d.ts +0 -1
  455. package/lib/__tests__/Link.test.js +0 -76
  456. package/lib/__tests__/Link.test.jsx +0 -43
  457. package/lib/__tests__/Link.types.test.d.ts +0 -3
  458. package/lib/__tests__/Link.types.test.js +0 -28
  459. package/lib/__tests__/Link.types.test.jsx +0 -17
  460. package/lib/__tests__/Merge.types.test.d.ts +0 -30
  461. package/lib/__tests__/Merge.types.test.js +0 -21
  462. package/lib/__tests__/NewButton.test.d.ts +0 -1
  463. package/lib/__tests__/NewButton.test.js +0 -95
  464. package/lib/__tests__/NewButton.test.jsx +0 -61
  465. package/lib/__tests__/Overlay.test.d.ts +0 -1
  466. package/lib/__tests__/Overlay.test.js +0 -145
  467. package/lib/__tests__/Overlay.test.jsx +0 -105
  468. package/lib/__tests__/Overlay.types.test.d.ts +0 -3
  469. package/lib/__tests__/Overlay.types.test.js +0 -35
  470. package/lib/__tests__/Overlay.types.test.jsx +0 -18
  471. package/lib/__tests__/Pagehead.test.d.ts +0 -1
  472. package/lib/__tests__/Pagehead.test.js +0 -37
  473. package/lib/__tests__/Pagehead.test.jsx +0 -25
  474. package/lib/__tests__/Pagehead.types.test.d.ts +0 -3
  475. package/lib/__tests__/Pagehead.types.test.js +0 -28
  476. package/lib/__tests__/Pagehead.types.test.jsx +0 -17
  477. package/lib/__tests__/Pagination/Pagination.test.d.ts +0 -1
  478. package/lib/__tests__/Pagination/Pagination.test.js +0 -47
  479. package/lib/__tests__/Pagination/Pagination.test.jsx +0 -32
  480. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  481. package/lib/__tests__/Pagination/PaginationModel.test.js +0 -186
  482. package/lib/__tests__/Pagination/PaginationModel.test.jsx +0 -118
  483. package/lib/__tests__/Pagination.types.test.d.ts +0 -3
  484. package/lib/__tests__/Pagination.types.test.js +0 -33
  485. package/lib/__tests__/Pagination.types.test.jsx +0 -17
  486. package/lib/__tests__/PointerBox.test.d.ts +0 -1
  487. package/lib/__tests__/PointerBox.test.js +0 -46
  488. package/lib/__tests__/PointerBox.test.jsx +0 -33
  489. package/lib/__tests__/Popover.test.d.ts +0 -1
  490. package/lib/__tests__/Popover.test.js +0 -66
  491. package/lib/__tests__/Popover.test.jsx +0 -58
  492. package/lib/__tests__/Popover.types.test.d.ts +0 -3
  493. package/lib/__tests__/Popover.types.test.js +0 -27
  494. package/lib/__tests__/Popover.types.test.jsx +0 -21
  495. package/lib/__tests__/Portal.test.d.ts +0 -1
  496. package/lib/__tests__/Portal.test.js +0 -124
  497. package/lib/__tests__/Portal.test.jsx +0 -102
  498. package/lib/__tests__/Position.test.d.ts +0 -1
  499. package/lib/__tests__/Position.test.js +0 -143
  500. package/lib/__tests__/Position.test.jsx +0 -96
  501. package/lib/__tests__/ProgressBar.test.d.ts +0 -1
  502. package/lib/__tests__/ProgressBar.test.js +0 -68
  503. package/lib/__tests__/ProgressBar.test.jsx +0 -38
  504. package/lib/__tests__/SelectMenu.test.d.ts +0 -1
  505. package/lib/__tests__/SelectMenu.test.js +0 -155
  506. package/lib/__tests__/SelectMenu.test.jsx +0 -120
  507. package/lib/__tests__/SelectMenu.types.test.d.ts +0 -3
  508. package/lib/__tests__/SelectMenu.types.test.js +0 -47
  509. package/lib/__tests__/SelectMenu.types.test.jsx +0 -41
  510. package/lib/__tests__/SelectPanel.test.d.ts +0 -1
  511. package/lib/__tests__/SelectPanel.test.js +0 -80
  512. package/lib/__tests__/SelectPanel.test.jsx +0 -48
  513. package/lib/__tests__/SideNav.test.d.ts +0 -1
  514. package/lib/__tests__/SideNav.test.js +0 -71
  515. package/lib/__tests__/SideNav.test.jsx +0 -55
  516. package/lib/__tests__/SideNav.types.test.d.ts +0 -3
  517. package/lib/__tests__/SideNav.types.test.js +0 -28
  518. package/lib/__tests__/SideNav.types.test.jsx +0 -17
  519. package/lib/__tests__/Spinner.test.d.ts +0 -1
  520. package/lib/__tests__/Spinner.test.js +0 -53
  521. package/lib/__tests__/Spinner.test.jsx +0 -41
  522. package/lib/__tests__/StateLabel.test.d.ts +0 -1
  523. package/lib/__tests__/StateLabel.test.js +0 -71
  524. package/lib/__tests__/StateLabel.test.jsx +0 -46
  525. package/lib/__tests__/StateLabel.types.test.d.ts +0 -3
  526. package/lib/__tests__/StateLabel.types.test.js +0 -28
  527. package/lib/__tests__/StateLabel.types.test.jsx +0 -17
  528. package/lib/__tests__/StyledOcticon.test.d.ts +0 -1
  529. package/lib/__tests__/StyledOcticon.test.js +0 -40
  530. package/lib/__tests__/StyledOcticon.test.jsx +0 -28
  531. package/lib/__tests__/StyledOcticon.types.test.d.ts +0 -3
  532. package/lib/__tests__/StyledOcticon.types.test.js +0 -32
  533. package/lib/__tests__/StyledOcticon.types.test.jsx +0 -18
  534. package/lib/__tests__/SubNav.test.d.ts +0 -1
  535. package/lib/__tests__/SubNav.test.js +0 -62
  536. package/lib/__tests__/SubNav.test.jsx +0 -47
  537. package/lib/__tests__/SubNav.types.test.d.ts +0 -3
  538. package/lib/__tests__/SubNav.types.test.js +0 -27
  539. package/lib/__tests__/SubNav.types.test.jsx +0 -27
  540. package/lib/__tests__/SubNavLink.test.d.ts +0 -1
  541. package/lib/__tests__/SubNavLink.test.js +0 -49
  542. package/lib/__tests__/SubNavLink.test.jsx +0 -31
  543. package/lib/__tests__/TabNav.test.d.ts +0 -1
  544. package/lib/__tests__/TabNav.test.js +0 -49
  545. package/lib/__tests__/TabNav.test.jsx +0 -32
  546. package/lib/__tests__/TabNav.types.test.d.ts +0 -3
  547. package/lib/__tests__/TabNav.types.test.js +0 -25
  548. package/lib/__tests__/TabNav.types.test.jsx +0 -24
  549. package/lib/__tests__/Text.test.d.ts +0 -1
  550. package/lib/__tests__/Text.test.js +0 -105
  551. package/lib/__tests__/Text.test.jsx +0 -71
  552. package/lib/__tests__/TextInput.test.d.ts +0 -1
  553. package/lib/__tests__/TextInput.test.js +0 -78
  554. package/lib/__tests__/TextInput.test.jsx +0 -45
  555. package/lib/__tests__/TextInputWithTokens.test.d.ts +0 -1
  556. package/lib/__tests__/TextInputWithTokens.test.js +0 -572
  557. package/lib/__tests__/TextInputWithTokens.test.jsx +0 -302
  558. package/lib/__tests__/ThemeProvider.test.d.ts +0 -1
  559. package/lib/__tests__/ThemeProvider.test.js +0 -444
  560. package/lib/__tests__/ThemeProvider.test.jsx +0 -314
  561. package/lib/__tests__/Timeline.test.d.ts +0 -1
  562. package/lib/__tests__/Timeline.test.js +0 -75
  563. package/lib/__tests__/Timeline.test.jsx +0 -51
  564. package/lib/__tests__/Timeline.types.test.d.ts +0 -3
  565. package/lib/__tests__/Timeline.types.test.js +0 -31
  566. package/lib/__tests__/Timeline.types.test.jsx +0 -33
  567. package/lib/__tests__/Token.test.d.ts +0 -1
  568. package/lib/__tests__/Token.test.js +0 -180
  569. package/lib/__tests__/Token.test.jsx +0 -93
  570. package/lib/__tests__/Tooltip.test.d.ts +0 -1
  571. package/lib/__tests__/Tooltip.test.js +0 -69
  572. package/lib/__tests__/Tooltip.test.jsx +0 -46
  573. package/lib/__tests__/Tooltip.types.test.d.ts +0 -3
  574. package/lib/__tests__/Tooltip.types.test.js +0 -28
  575. package/lib/__tests__/Tooltip.types.test.jsx +0 -17
  576. package/lib/__tests__/Truncate.test.d.ts +0 -1
  577. package/lib/__tests__/Truncate.test.js +0 -63
  578. package/lib/__tests__/Truncate.test.jsx +0 -41
  579. package/lib/__tests__/Truncate.types.test.d.ts +0 -3
  580. package/lib/__tests__/Truncate.types.test.js +0 -31
  581. package/lib/__tests__/Truncate.types.test.jsx +0 -17
  582. package/lib/__tests__/UnderlineNav.test.d.ts +0 -1
  583. package/lib/__tests__/UnderlineNav.test.js +0 -72
  584. package/lib/__tests__/UnderlineNav.test.jsx +0 -53
  585. package/lib/__tests__/UnderlineNav.types.test.d.ts +0 -3
  586. package/lib/__tests__/UnderlineNav.types.test.js +0 -25
  587. package/lib/__tests__/UnderlineNav.types.test.jsx +0 -24
  588. package/lib/__tests__/UnderlineNavLink.test.d.ts +0 -1
  589. package/lib/__tests__/UnderlineNavLink.test.js +0 -51
  590. package/lib/__tests__/UnderlineNavLink.test.jsx +0 -31
  591. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  592. package/lib/__tests__/behaviors/anchoredPosition.test.js +0 -243
  593. package/lib/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  594. package/lib/__tests__/behaviors/focusTrap.test.js +0 -234
  595. package/lib/__tests__/behaviors/focusTrap.test.jsx +0 -184
  596. package/lib/__tests__/behaviors/focusZone.test.d.ts +0 -1
  597. package/lib/__tests__/behaviors/focusZone.test.js +0 -570
  598. package/lib/__tests__/behaviors/focusZone.test.jsx +0 -406
  599. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  600. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +0 -55
  601. package/lib/__tests__/behaviors/iterateFocusableElements.test.jsx +0 -58
  602. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  603. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -155
  604. package/lib/__tests__/filterObject.test.d.ts +0 -1
  605. package/lib/__tests__/filterObject.test.js +0 -51
  606. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  607. package/lib/__tests__/hooks/useAnchoredPosition.test.js +0 -54
  608. package/lib/__tests__/hooks/useAnchoredPosition.test.jsx +0 -29
  609. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  610. package/lib/__tests__/hooks/useOnEscapePress.test.js +0 -32
  611. package/lib/__tests__/hooks/useOnEscapePress.test.jsx +0 -19
  612. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  613. package/lib/__tests__/hooks/useOnOutsideClick.test.js +0 -87
  614. package/lib/__tests__/hooks/useOnOutsideClick.test.jsx +0 -63
  615. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  616. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -60
  617. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.jsx +0 -61
  618. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  619. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -45
  620. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.jsx +0 -56
  621. package/lib/__tests__/theme.test.d.ts +0 -1
  622. package/lib/__tests__/theme.test.js +0 -35
  623. package/lib/__tests__/themeGet.test.d.ts +0 -1
  624. package/lib/__tests__/themeGet.test.js +0 -14
  625. package/lib/__tests__/useSafeTimeout.test.d.ts +0 -1
  626. package/lib/__tests__/useSafeTimeout.test.js +0 -45
  627. package/lib/__tests__/useSafeTimeout.test.jsx +0 -36
  628. package/lib/__tests__/utils/createSlots.test.d.ts +0 -1
  629. package/lib/__tests__/utils/createSlots.test.js +0 -75
  630. package/lib/__tests__/utils/createSlots.test.jsx +0 -57
  631. package/lib/hooks/useDetails.jsx +0 -39
  632. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  633. package/lib/hooks/useOverlay.jsx +0 -15
  634. package/lib/stories/ActionList.stories.js +0 -454
  635. package/lib/stories/ActionList2.stories.js +0 -909
  636. package/lib/stories/ActionMenu.stories.js +0 -348
  637. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  638. package/lib/stories/Autocomplete.stories.js +0 -619
  639. package/lib/stories/AvatarStack.stories.js +0 -49
  640. package/lib/stories/Button.stories.js +0 -125
  641. package/lib/stories/ConfirmationDialog.stories.js +0 -119
  642. package/lib/stories/Dialog.stories.js +0 -269
  643. package/lib/stories/DropdownMenu.stories.js +0 -122
  644. package/lib/stories/IssueLabelToken.stories.js +0 -165
  645. package/lib/stories/NewButton.stories.js +0 -230
  646. package/lib/stories/Overlay.stories.js +0 -204
  647. package/lib/stories/Portal.stories.js +0 -104
  648. package/lib/stories/ProfileToken.stories.js +0 -162
  649. package/lib/stories/SelectPanel.stories.js +0 -399
  650. package/lib/stories/TextInput.stories.js +0 -144
  651. package/lib/stories/TextInputWithTokens.stories.js +0 -252
  652. package/lib/stories/ThemeProvider.stories.js +0 -102
  653. package/lib/stories/Token.stories.js +0 -176
  654. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  655. package/lib/stories/useFocusTrap.stories.js +0 -360
  656. package/lib/stories/useFocusZone.stories.js +0 -607
  657. package/lib/utils/create-slots.jsx +0 -65
  658. package/lib/utils/deprecate.jsx +0 -59
  659. package/lib/utils/isNumeric.jsx +0 -7
  660. package/lib/utils/ssr.jsx +0 -6
  661. package/lib/utils/test-deprecations.jsx +0 -20
  662. package/lib/utils/test-helpers.jsx +0 -8
  663. package/lib/utils/test-matchers.jsx +0 -100
  664. package/lib/utils/testing.jsx +0 -206
  665. package/lib-esm/__tests__/ActionList.test.d.ts +0 -1
  666. package/lib-esm/__tests__/ActionList.test.js +0 -57
  667. package/lib-esm/__tests__/ActionList.types.test.d.ts +0 -6
  668. package/lib-esm/__tests__/ActionList.types.test.js +0 -45
  669. package/lib-esm/__tests__/ActionList2.test.d.ts +0 -1
  670. package/lib-esm/__tests__/ActionList2.test.js +0 -41
  671. package/lib-esm/__tests__/ActionMenu.test.d.ts +0 -1
  672. package/lib-esm/__tests__/ActionMenu.test.js +0 -139
  673. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +0 -1
  674. package/lib-esm/__tests__/AnchoredOverlay.test.js +0 -136
  675. package/lib-esm/__tests__/Autocomplete.test.d.ts +0 -1
  676. package/lib-esm/__tests__/Autocomplete.test.js +0 -494
  677. package/lib-esm/__tests__/Avatar.test.d.ts +0 -1
  678. package/lib-esm/__tests__/Avatar.test.js +0 -56
  679. package/lib-esm/__tests__/AvatarStack.test.d.ts +0 -1
  680. package/lib-esm/__tests__/AvatarStack.test.js +0 -58
  681. package/lib-esm/__tests__/BorderBox.test.d.ts +0 -1
  682. package/lib-esm/__tests__/BorderBox.test.js +0 -47
  683. package/lib-esm/__tests__/Box.test.d.ts +0 -1
  684. package/lib-esm/__tests__/Box.test.js +0 -67
  685. package/lib-esm/__tests__/BranchName.test.d.ts +0 -1
  686. package/lib-esm/__tests__/BranchName.test.js +0 -26
  687. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +0 -1
  688. package/lib-esm/__tests__/Breadcrumbs.test.js +0 -30
  689. package/lib-esm/__tests__/Breadcrumbs.types.test.d.ts +0 -3
  690. package/lib-esm/__tests__/Breadcrumbs.types.test.js +0 -12
  691. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  692. package/lib-esm/__tests__/BreadcrumbsItem.test.js +0 -39
  693. package/lib-esm/__tests__/Button.test.d.ts +0 -1
  694. package/lib-esm/__tests__/Button.test.js +0 -137
  695. package/lib-esm/__tests__/Caret.test.d.ts +0 -1
  696. package/lib-esm/__tests__/Caret.test.js +0 -42
  697. package/lib-esm/__tests__/CircleBadge.test.d.ts +0 -1
  698. package/lib-esm/__tests__/CircleBadge.test.js +0 -70
  699. package/lib-esm/__tests__/CircleBadge.types.test.d.ts +0 -3
  700. package/lib-esm/__tests__/CircleBadge.types.test.js +0 -13
  701. package/lib-esm/__tests__/CircleOcticon.test.d.ts +0 -1
  702. package/lib-esm/__tests__/CircleOcticon.test.js +0 -59
  703. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +0 -1
  704. package/lib-esm/__tests__/ConfirmationDialog.test.js +0 -113
  705. package/lib-esm/__tests__/CounterLabel.test.d.ts +0 -1
  706. package/lib-esm/__tests__/CounterLabel.test.js +0 -47
  707. package/lib-esm/__tests__/CounterLabel.types.test.d.ts +0 -3
  708. package/lib-esm/__tests__/CounterLabel.types.test.js +0 -13
  709. package/lib-esm/__tests__/Details.test.d.ts +0 -1
  710. package/lib-esm/__tests__/Details.test.js +0 -107
  711. package/lib-esm/__tests__/Dialog.test.d.ts +0 -1
  712. package/lib-esm/__tests__/Dialog.test.js +0 -171
  713. package/lib-esm/__tests__/Dialog.types.test.d.ts +0 -3
  714. package/lib-esm/__tests__/Dialog.types.test.js +0 -13
  715. package/lib-esm/__tests__/Dialog2.types.test.d.ts +0 -3
  716. package/lib-esm/__tests__/Dialog2.types.test.js +0 -16
  717. package/lib-esm/__tests__/Dropdown.test.d.ts +0 -1
  718. package/lib-esm/__tests__/Dropdown.test.js +0 -53
  719. package/lib-esm/__tests__/Dropdown.types.test.d.ts +0 -3
  720. package/lib-esm/__tests__/Dropdown.types.test.js +0 -17
  721. package/lib-esm/__tests__/DropdownMenu.test.d.ts +0 -1
  722. package/lib-esm/__tests__/DropdownMenu.test.js +0 -137
  723. package/lib-esm/__tests__/FilterList.test.d.ts +0 -1
  724. package/lib-esm/__tests__/FilterList.test.js +0 -26
  725. package/lib-esm/__tests__/FilterList.types.test.d.ts +0 -3
  726. package/lib-esm/__tests__/FilterList.types.test.js +0 -13
  727. package/lib-esm/__tests__/FilterListItem.test.d.ts +0 -1
  728. package/lib-esm/__tests__/FilterListItem.test.js +0 -36
  729. package/lib-esm/__tests__/FilteredSearch.test.d.ts +0 -1
  730. package/lib-esm/__tests__/FilteredSearch.test.js +0 -26
  731. package/lib-esm/__tests__/FilteredSearch.types.test.d.ts +0 -3
  732. package/lib-esm/__tests__/FilteredSearch.types.test.js +0 -13
  733. package/lib-esm/__tests__/Flash.test.d.ts +0 -1
  734. package/lib-esm/__tests__/Flash.test.js +0 -51
  735. package/lib-esm/__tests__/Flash.types.test.d.ts +0 -3
  736. package/lib-esm/__tests__/Flash.types.test.js +0 -13
  737. package/lib-esm/__tests__/Flex.test.d.ts +0 -1
  738. package/lib-esm/__tests__/Flex.test.js +0 -64
  739. package/lib-esm/__tests__/FormGroup.test.d.ts +0 -1
  740. package/lib-esm/__tests__/FormGroup.test.js +0 -44
  741. package/lib-esm/__tests__/FormGroup.types.test.d.ts +0 -3
  742. package/lib-esm/__tests__/FormGroup.types.test.js +0 -13
  743. package/lib-esm/__tests__/Grid.test.d.ts +0 -1
  744. package/lib-esm/__tests__/Grid.test.js +0 -94
  745. package/lib-esm/__tests__/Header.test.d.ts +0 -1
  746. package/lib-esm/__tests__/Header.test.js +0 -48
  747. package/lib-esm/__tests__/Header.types.test.d.ts +0 -3
  748. package/lib-esm/__tests__/Header.types.test.js +0 -15
  749. package/lib-esm/__tests__/Heading.test.d.ts +0 -1
  750. package/lib-esm/__tests__/Heading.test.js +0 -99
  751. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +0 -11
  752. package/lib-esm/__tests__/KeyPaths.types.test.js +0 -3
  753. package/lib-esm/__tests__/Label.test.d.ts +0 -1
  754. package/lib-esm/__tests__/Label.test.js +0 -36
  755. package/lib-esm/__tests__/Label.types.test.d.ts +0 -3
  756. package/lib-esm/__tests__/Label.types.test.js +0 -13
  757. package/lib-esm/__tests__/LabelGroup.test.d.ts +0 -1
  758. package/lib-esm/__tests__/LabelGroup.test.js +0 -26
  759. package/lib-esm/__tests__/LabelGroup.types.test.d.ts +0 -3
  760. package/lib-esm/__tests__/LabelGroup.types.test.js +0 -13
  761. package/lib-esm/__tests__/Link.test.d.ts +0 -1
  762. package/lib-esm/__tests__/Link.test.js +0 -66
  763. package/lib-esm/__tests__/Link.types.test.d.ts +0 -3
  764. package/lib-esm/__tests__/Link.types.test.js +0 -13
  765. package/lib-esm/__tests__/Merge.types.test.d.ts +0 -30
  766. package/lib-esm/__tests__/Merge.types.test.js +0 -14
  767. package/lib-esm/__tests__/NewButton.test.d.ts +0 -1
  768. package/lib-esm/__tests__/NewButton.test.js +0 -84
  769. package/lib-esm/__tests__/Overlay.test.d.ts +0 -1
  770. package/lib-esm/__tests__/Overlay.test.js +0 -123
  771. package/lib-esm/__tests__/Overlay.types.test.d.ts +0 -3
  772. package/lib-esm/__tests__/Overlay.types.test.js +0 -20
  773. package/lib-esm/__tests__/Pagehead.test.d.ts +0 -1
  774. package/lib-esm/__tests__/Pagehead.test.js +0 -26
  775. package/lib-esm/__tests__/Pagehead.types.test.d.ts +0 -3
  776. package/lib-esm/__tests__/Pagehead.types.test.js +0 -13
  777. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +0 -1
  778. package/lib-esm/__tests__/Pagination/Pagination.test.js +0 -35
  779. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  780. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +0 -182
  781. package/lib-esm/__tests__/Pagination.types.test.d.ts +0 -3
  782. package/lib-esm/__tests__/Pagination.types.test.js +0 -18
  783. package/lib-esm/__tests__/PointerBox.test.d.ts +0 -1
  784. package/lib-esm/__tests__/PointerBox.test.js +0 -36
  785. package/lib-esm/__tests__/Popover.test.d.ts +0 -1
  786. package/lib-esm/__tests__/Popover.test.js +0 -53
  787. package/lib-esm/__tests__/Popover.types.test.d.ts +0 -3
  788. package/lib-esm/__tests__/Popover.types.test.js +0 -13
  789. package/lib-esm/__tests__/Portal.test.d.ts +0 -1
  790. package/lib-esm/__tests__/Portal.test.js +0 -104
  791. package/lib-esm/__tests__/Position.test.d.ts +0 -1
  792. package/lib-esm/__tests__/Position.test.js +0 -133
  793. package/lib-esm/__tests__/ProgressBar.test.d.ts +0 -1
  794. package/lib-esm/__tests__/ProgressBar.test.js +0 -58
  795. package/lib-esm/__tests__/SelectMenu.test.d.ts +0 -1
  796. package/lib-esm/__tests__/SelectMenu.test.js +0 -145
  797. package/lib-esm/__tests__/SelectMenu.types.test.d.ts +0 -3
  798. package/lib-esm/__tests__/SelectMenu.types.test.js +0 -33
  799. package/lib-esm/__tests__/SelectPanel.test.d.ts +0 -1
  800. package/lib-esm/__tests__/SelectPanel.test.js +0 -65
  801. package/lib-esm/__tests__/SideNav.test.d.ts +0 -1
  802. package/lib-esm/__tests__/SideNav.test.js +0 -60
  803. package/lib-esm/__tests__/SideNav.types.test.d.ts +0 -3
  804. package/lib-esm/__tests__/SideNav.types.test.js +0 -13
  805. package/lib-esm/__tests__/Spinner.test.d.ts +0 -1
  806. package/lib-esm/__tests__/Spinner.test.js +0 -43
  807. package/lib-esm/__tests__/StateLabel.test.d.ts +0 -1
  808. package/lib-esm/__tests__/StateLabel.test.js +0 -61
  809. package/lib-esm/__tests__/StateLabel.types.test.d.ts +0 -3
  810. package/lib-esm/__tests__/StateLabel.types.test.js +0 -13
  811. package/lib-esm/__tests__/StyledOcticon.test.d.ts +0 -1
  812. package/lib-esm/__tests__/StyledOcticon.test.js +0 -29
  813. package/lib-esm/__tests__/StyledOcticon.types.test.d.ts +0 -3
  814. package/lib-esm/__tests__/StyledOcticon.types.test.js +0 -16
  815. package/lib-esm/__tests__/SubNav.test.d.ts +0 -1
  816. package/lib-esm/__tests__/SubNav.test.js +0 -50
  817. package/lib-esm/__tests__/SubNav.types.test.d.ts +0 -3
  818. package/lib-esm/__tests__/SubNav.types.test.js +0 -14
  819. package/lib-esm/__tests__/SubNavLink.test.d.ts +0 -1
  820. package/lib-esm/__tests__/SubNavLink.test.js +0 -39
  821. package/lib-esm/__tests__/TabNav.test.d.ts +0 -1
  822. package/lib-esm/__tests__/TabNav.test.js +0 -39
  823. package/lib-esm/__tests__/TabNav.types.test.d.ts +0 -3
  824. package/lib-esm/__tests__/TabNav.types.test.js +0 -12
  825. package/lib-esm/__tests__/Text.test.d.ts +0 -1
  826. package/lib-esm/__tests__/Text.test.js +0 -93
  827. package/lib-esm/__tests__/TextInput.test.d.ts +0 -1
  828. package/lib-esm/__tests__/TextInput.test.js +0 -68
  829. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +0 -1
  830. package/lib-esm/__tests__/TextInputWithTokens.test.js +0 -511
  831. package/lib-esm/__tests__/ThemeProvider.test.d.ts +0 -1
  832. package/lib-esm/__tests__/ThemeProvider.test.js +0 -408
  833. package/lib-esm/__tests__/Timeline.test.d.ts +0 -1
  834. package/lib-esm/__tests__/Timeline.test.js +0 -65
  835. package/lib-esm/__tests__/Timeline.types.test.d.ts +0 -3
  836. package/lib-esm/__tests__/Timeline.types.test.js +0 -18
  837. package/lib-esm/__tests__/Token.test.d.ts +0 -1
  838. package/lib-esm/__tests__/Token.test.js +0 -166
  839. package/lib-esm/__tests__/Tooltip.test.d.ts +0 -1
  840. package/lib-esm/__tests__/Tooltip.test.js +0 -59
  841. package/lib-esm/__tests__/Tooltip.types.test.d.ts +0 -3
  842. package/lib-esm/__tests__/Tooltip.types.test.js +0 -13
  843. package/lib-esm/__tests__/Truncate.test.d.ts +0 -1
  844. package/lib-esm/__tests__/Truncate.test.js +0 -53
  845. package/lib-esm/__tests__/Truncate.types.test.d.ts +0 -3
  846. package/lib-esm/__tests__/Truncate.types.test.js +0 -16
  847. package/lib-esm/__tests__/UnderlineNav.test.d.ts +0 -1
  848. package/lib-esm/__tests__/UnderlineNav.test.js +0 -60
  849. package/lib-esm/__tests__/UnderlineNav.types.test.d.ts +0 -3
  850. package/lib-esm/__tests__/UnderlineNav.types.test.js +0 -12
  851. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +0 -1
  852. package/lib-esm/__tests__/UnderlineNavLink.test.js +0 -41
  853. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  854. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +0 -388
  855. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  856. package/lib-esm/__tests__/behaviors/focusTrap.test.js +0 -227
  857. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +0 -1
  858. package/lib-esm/__tests__/behaviors/focusZone.test.js +0 -487
  859. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  860. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +0 -48
  861. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  862. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -224
  863. package/lib-esm/__tests__/filterObject.test.d.ts +0 -1
  864. package/lib-esm/__tests__/filterObject.test.js +0 -27
  865. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  866. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +0 -46
  867. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  868. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +0 -23
  869. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  870. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +0 -68
  871. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  872. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -52
  873. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  874. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -36
  875. package/lib-esm/__tests__/theme.test.d.ts +0 -1
  876. package/lib-esm/__tests__/theme.test.js +0 -33
  877. package/lib-esm/__tests__/themeGet.test.d.ts +0 -1
  878. package/lib-esm/__tests__/themeGet.test.js +0 -22
  879. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +0 -1
  880. package/lib-esm/__tests__/useSafeTimeout.test.js +0 -39
  881. package/lib-esm/__tests__/utils/createSlots.test.d.ts +0 -1
  882. package/lib-esm/__tests__/utils/createSlots.test.js +0 -67
  883. package/lib-esm/stories/ActionList.stories.js +0 -395
  884. package/lib-esm/stories/ActionList2.stories.js +0 -797
  885. package/lib-esm/stories/ActionMenu.stories.js +0 -303
  886. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  887. package/lib-esm/stories/Autocomplete.stories.js +0 -560
  888. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  889. package/lib-esm/stories/Button.stories.js +0 -86
  890. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -94
  891. package/lib-esm/stories/Dialog.stories.js +0 -244
  892. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  893. package/lib-esm/stories/IssueLabelToken.stories.js +0 -139
  894. package/lib-esm/stories/NewButton.stories.js +0 -178
  895. package/lib-esm/stories/Overlay.stories.js +0 -173
  896. package/lib-esm/stories/Portal.stories.js +0 -68
  897. package/lib-esm/stories/ProfileToken.stories.js +0 -136
  898. package/lib-esm/stories/SelectPanel.stories.js +0 -334
  899. package/lib-esm/stories/TextInput.stories.js +0 -117
  900. package/lib-esm/stories/TextInputWithTokens.stories.js +0 -210
  901. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  902. package/lib-esm/stories/Token.stories.js +0 -146
  903. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  904. package/lib-esm/stories/useFocusTrap.stories.js +0 -313
  905. package/lib-esm/stories/useFocusZone.stories.js +0 -562
  906. package/migrating.md +0 -250
  907. package/now.json +0 -17
  908. package/package-lock.json +0 -66509
  909. package/rollup.config.js +0 -36
  910. package/script/build +0 -21
  911. package/script/build-storybook +0 -10
  912. package/script/setup +0 -12
  913. package/src/ActionList/Divider.tsx +0 -25
  914. package/src/ActionList/Group.tsx +0 -45
  915. package/src/ActionList/Header.tsx +0 -74
  916. package/src/ActionList/Item.tsx +0 -480
  917. package/src/ActionList/List.tsx +0 -258
  918. package/src/ActionList/index.ts +0 -21
  919. package/src/ActionList2/Description.tsx +0 -52
  920. package/src/ActionList2/Divider.tsx +0 -24
  921. package/src/ActionList2/Group.tsx +0 -103
  922. package/src/ActionList2/Header.tsx +0 -58
  923. package/src/ActionList2/Item.tsx +0 -246
  924. package/src/ActionList2/LinkItem.tsx +0 -49
  925. package/src/ActionList2/List.tsx +0 -55
  926. package/src/ActionList2/Selection.tsx +0 -60
  927. package/src/ActionList2/Visuals.tsx +0 -76
  928. package/src/ActionList2/index.ts +0 -39
  929. package/src/ActionMenu.tsx +0 -106
  930. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -191
  931. package/src/AnchoredOverlay/index.ts +0 -2
  932. package/src/Autocomplete/Autocomplete.tsx +0 -103
  933. package/src/Autocomplete/AutocompleteContext.tsx +0 -19
  934. package/src/Autocomplete/AutocompleteInput.tsx +0 -179
  935. package/src/Autocomplete/AutocompleteMenu.tsx +0 -341
  936. package/src/Autocomplete/AutocompleteOverlay.tsx +0 -68
  937. package/src/Autocomplete/index.ts +0 -2
  938. package/src/Avatar.tsx +0 -46
  939. package/src/AvatarPair.tsx +0 -35
  940. package/src/AvatarStack.tsx +0 -159
  941. package/src/BaseStyles.tsx +0 -53
  942. package/src/BorderBox.tsx +0 -18
  943. package/src/Box.tsx +0 -54
  944. package/src/BranchName.tsx +0 -19
  945. package/src/Breadcrumbs.tsx +0 -101
  946. package/src/Button/Button.tsx +0 -39
  947. package/src/Button/ButtonBase.tsx +0 -39
  948. package/src/Button/ButtonClose.tsx +0 -36
  949. package/src/Button/ButtonDanger.tsx +0 -42
  950. package/src/Button/ButtonGroup.tsx +0 -55
  951. package/src/Button/ButtonInvisible.tsx +0 -31
  952. package/src/Button/ButtonOutline.tsx +0 -42
  953. package/src/Button/ButtonPrimary.tsx +0 -40
  954. package/src/Button/ButtonStyles.tsx +0 -36
  955. package/src/Button/ButtonTableList.tsx +0 -45
  956. package/src/Button/index.ts +0 -16
  957. package/src/Caret.tsx +0 -133
  958. package/src/CircleBadge.tsx +0 -53
  959. package/src/CircleOcticon.tsx +0 -37
  960. package/src/CounterLabel.tsx +0 -50
  961. package/src/Details.tsx +0 -23
  962. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  963. package/src/Dialog/Dialog.tsx +0 -444
  964. package/src/Dialog.tsx +0 -145
  965. package/src/Dropdown.tsx +0 -154
  966. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  967. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  968. package/src/DropdownMenu/index.ts +0 -4
  969. package/src/DropdownStyles.ts +0 -128
  970. package/src/FilterList.tsx +0 -75
  971. package/src/FilteredActionList/FilteredActionList.tsx +0 -142
  972. package/src/FilteredActionList/index.ts +0 -2
  973. package/src/FilteredSearch.tsx +0 -27
  974. package/src/Flash.tsx +0 -75
  975. package/src/Flex.tsx +0 -15
  976. package/src/FormGroup.tsx +0 -24
  977. package/src/Grid.tsx +0 -15
  978. package/src/Header.tsx +0 -74
  979. package/src/Heading.tsx +0 -21
  980. package/src/Label.tsx +0 -72
  981. package/src/LabelGroup.tsx +0 -17
  982. package/src/Link.tsx +0 -42
  983. package/src/NewButton/button-counter.tsx +0 -15
  984. package/src/NewButton/button.tsx +0 -283
  985. package/src/NewButton/index.ts +0 -10
  986. package/src/NewButton/types.ts +0 -36
  987. package/src/Overlay.tsx +0 -200
  988. package/src/Pagehead.tsx +0 -16
  989. package/src/Pagination/Pagination.tsx +0 -212
  990. package/src/Pagination/index.ts +0 -4
  991. package/src/Pagination/model.tsx +0 -187
  992. package/src/PointerBox.tsx +0 -31
  993. package/src/Popover.tsx +0 -225
  994. package/src/Portal/Portal.tsx +0 -97
  995. package/src/Portal/index.ts +0 -5
  996. package/src/Position.tsx +0 -63
  997. package/src/ProgressBar.tsx +0 -52
  998. package/src/SelectMenu/SelectMenu.tsx +0 -123
  999. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  1000. package/src/SelectMenu/SelectMenuDivider.tsx +0 -24
  1001. package/src/SelectMenu/SelectMenuFilter.tsx +0 -50
  1002. package/src/SelectMenu/SelectMenuFooter.tsx +0 -27
  1003. package/src/SelectMenu/SelectMenuHeader.tsx +0 -48
  1004. package/src/SelectMenu/SelectMenuItem.tsx +0 -136
  1005. package/src/SelectMenu/SelectMenuList.tsx +0 -41
  1006. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -25
  1007. package/src/SelectMenu/SelectMenuModal.tsx +0 -119
  1008. package/src/SelectMenu/SelectMenuTab.tsx +0 -87
  1009. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -29
  1010. package/src/SelectMenu/SelectMenuTabs.tsx +0 -43
  1011. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  1012. package/src/SelectMenu/index.ts +0 -15
  1013. package/src/SelectPanel/SelectPanel.tsx +0 -173
  1014. package/src/SelectPanel/index.ts +0 -2
  1015. package/src/SideNav.tsx +0 -191
  1016. package/src/Spinner.tsx +0 -59
  1017. package/src/StateLabel.tsx +0 -112
  1018. package/src/StyledOcticon.tsx +0 -22
  1019. package/src/SubNav.tsx +0 -124
  1020. package/src/TabNav.tsx +0 -73
  1021. package/src/Text.tsx +0 -13
  1022. package/src/TextInput.tsx +0 -68
  1023. package/src/TextInputWithTokens.tsx +0 -351
  1024. package/src/ThemeProvider.tsx +0 -176
  1025. package/src/Timeline.tsx +0 -140
  1026. package/src/Token/AvatarToken.tsx +0 -54
  1027. package/src/Token/IssueLabelToken.tsx +0 -150
  1028. package/src/Token/Token.tsx +0 -126
  1029. package/src/Token/TokenBase.tsx +0 -129
  1030. package/src/Token/_RemoveTokenButton.tsx +0 -111
  1031. package/src/Token/_TokenTextContainer.tsx +0 -47
  1032. package/src/Token/index.ts +0 -3
  1033. package/src/Tooltip.tsx +0 -263
  1034. package/src/Truncate.tsx +0 -31
  1035. package/src/UnderlineNav.tsx +0 -107
  1036. package/src/_TextInputWrapper.tsx +0 -113
  1037. package/src/_UnstyledTextInput.tsx +0 -19
  1038. package/src/__tests__/.eslintrc.json +0 -11
  1039. package/src/__tests__/ActionList.test.tsx +0 -53
  1040. package/src/__tests__/ActionList.types.test.tsx +0 -51
  1041. package/src/__tests__/ActionList2.test.tsx +0 -47
  1042. package/src/__tests__/ActionMenu.test.tsx +0 -136
  1043. package/src/__tests__/AnchoredOverlay.test.tsx +0 -150
  1044. package/src/__tests__/Autocomplete.test.tsx +0 -444
  1045. package/src/__tests__/Avatar.test.tsx +0 -44
  1046. package/src/__tests__/AvatarStack.test.tsx +0 -48
  1047. package/src/__tests__/BorderBox.test.tsx +0 -43
  1048. package/src/__tests__/Box.test.tsx +0 -42
  1049. package/src/__tests__/BranchName.test.tsx +0 -26
  1050. package/src/__tests__/Breadcrumbs.test.tsx +0 -27
  1051. package/src/__tests__/Breadcrumbs.types.test.tsx +0 -22
  1052. package/src/__tests__/BreadcrumbsItem.test.tsx +0 -31
  1053. package/src/__tests__/Button.test.tsx +0 -128
  1054. package/src/__tests__/Caret.test.tsx +0 -36
  1055. package/src/__tests__/CircleBadge.test.tsx +0 -66
  1056. package/src/__tests__/CircleBadge.types.test.tsx +0 -11
  1057. package/src/__tests__/CircleOcticon.test.tsx +0 -50
  1058. package/src/__tests__/ConfirmationDialog.test.tsx +0 -120
  1059. package/src/__tests__/CounterLabel.test.tsx +0 -50
  1060. package/src/__tests__/CounterLabel.types.test.tsx +0 -11
  1061. package/src/__tests__/Details.test.tsx +0 -115
  1062. package/src/__tests__/Dialog.test.tsx +0 -155
  1063. package/src/__tests__/Dialog.types.test.tsx +0 -11
  1064. package/src/__tests__/Dialog2.types.test.tsx +0 -11
  1065. package/src/__tests__/Dropdown.test.tsx +0 -53
  1066. package/src/__tests__/Dropdown.types.test.tsx +0 -21
  1067. package/src/__tests__/DropdownMenu.test.tsx +0 -136
  1068. package/src/__tests__/FilterList.test.tsx +0 -26
  1069. package/src/__tests__/FilterList.types.test.tsx +0 -17
  1070. package/src/__tests__/FilterListItem.test.tsx +0 -31
  1071. package/src/__tests__/FilteredSearch.test.tsx +0 -26
  1072. package/src/__tests__/FilteredSearch.types.test.tsx +0 -11
  1073. package/src/__tests__/Flash.test.tsx +0 -45
  1074. package/src/__tests__/Flash.types.test.tsx +0 -11
  1075. package/src/__tests__/Flex.test.tsx +0 -58
  1076. package/src/__tests__/FormGroup.test.tsx +0 -38
  1077. package/src/__tests__/FormGroup.types.test.tsx +0 -11
  1078. package/src/__tests__/Grid.test.tsx +0 -82
  1079. package/src/__tests__/Header.test.tsx +0 -49
  1080. package/src/__tests__/Header.types.test.tsx +0 -19
  1081. package/src/__tests__/Heading.test.tsx +0 -91
  1082. package/src/__tests__/KeyPaths.types.test.ts +0 -14
  1083. package/src/__tests__/Label.test.tsx +0 -34
  1084. package/src/__tests__/Label.types.test.tsx +0 -11
  1085. package/src/__tests__/LabelGroup.test.tsx +0 -30
  1086. package/src/__tests__/LabelGroup.types.test.tsx +0 -11
  1087. package/src/__tests__/Link.test.tsx +0 -47
  1088. package/src/__tests__/Link.types.test.tsx +0 -11
  1089. package/src/__tests__/Merge.types.test.ts +0 -39
  1090. package/src/__tests__/NewButton.test.tsx +0 -70
  1091. package/src/__tests__/Overlay.test.tsx +0 -103
  1092. package/src/__tests__/Overlay.types.test.tsx +0 -18
  1093. package/src/__tests__/Pagehead.test.tsx +0 -23
  1094. package/src/__tests__/Pagehead.types.test.tsx +0 -11
  1095. package/src/__tests__/Pagination/Pagination.test.tsx +0 -30
  1096. package/src/__tests__/Pagination/PaginationModel.test.tsx +0 -133
  1097. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -184
  1098. package/src/__tests__/Pagination.types.test.tsx +0 -11
  1099. package/src/__tests__/PointerBox.test.tsx +0 -34
  1100. package/src/__tests__/Popover.test.tsx +0 -68
  1101. package/src/__tests__/Popover.types.test.tsx +0 -17
  1102. package/src/__tests__/Portal.test.tsx +0 -103
  1103. package/src/__tests__/Position.test.tsx +0 -117
  1104. package/src/__tests__/ProgressBar.test.tsx +0 -40
  1105. package/src/__tests__/SelectMenu.test.tsx +0 -142
  1106. package/src/__tests__/SelectMenu.types.test.tsx +0 -37
  1107. package/src/__tests__/SelectPanel.test.tsx +0 -63
  1108. package/src/__tests__/SideNav.test.tsx +0 -62
  1109. package/src/__tests__/SideNav.types.test.tsx +0 -11
  1110. package/src/__tests__/Spinner.test.tsx +0 -42
  1111. package/src/__tests__/StateLabel.test.tsx +0 -48
  1112. package/src/__tests__/StateLabel.types.test.tsx +0 -11
  1113. package/src/__tests__/StyledOcticon.test.tsx +0 -26
  1114. package/src/__tests__/StyledOcticon.types.test.tsx +0 -12
  1115. package/src/__tests__/SubNav.test.tsx +0 -50
  1116. package/src/__tests__/SubNav.types.test.tsx +0 -25
  1117. package/src/__tests__/SubNavLink.test.tsx +0 -31
  1118. package/src/__tests__/TabNav.test.tsx +0 -32
  1119. package/src/__tests__/TabNav.types.test.tsx +0 -22
  1120. package/src/__tests__/Text.test.tsx +0 -78
  1121. package/src/__tests__/TextInput.test.tsx +0 -49
  1122. package/src/__tests__/TextInputWithTokens.test.tsx +0 -422
  1123. package/src/__tests__/ThemeProvider.test.tsx +0 -441
  1124. package/src/__tests__/Timeline.test.tsx +0 -58
  1125. package/src/__tests__/Timeline.types.test.tsx +0 -31
  1126. package/src/__tests__/Token.test.tsx +0 -118
  1127. package/src/__tests__/Tooltip.test.tsx +0 -52
  1128. package/src/__tests__/Tooltip.types.test.tsx +0 -11
  1129. package/src/__tests__/Truncate.test.tsx +0 -43
  1130. package/src/__tests__/Truncate.types.test.tsx +0 -11
  1131. package/src/__tests__/UnderlineNav.test.tsx +0 -58
  1132. package/src/__tests__/UnderlineNav.types.test.tsx +0 -22
  1133. package/src/__tests__/UnderlineNavLink.test.tsx +0 -31
  1134. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +0 -223
  1135. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +0 -14
  1136. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +0 -80
  1137. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +0 -232
  1138. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +0 -3888
  1139. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +0 -19
  1140. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +0 -377
  1141. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +0 -14
  1142. package/src/__tests__/__snapshots__/Box.test.tsx.snap +0 -201
  1143. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +0 -17
  1144. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +0 -29
  1145. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +0 -79
  1146. package/src/__tests__/__snapshots__/Button.test.tsx.snap +0 -840
  1147. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +0 -373
  1148. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +0 -142
  1149. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +0 -65
  1150. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +0 -89
  1151. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +0 -22
  1152. package/src/__tests__/__snapshots__/Details.test.tsx.snap +0 -15
  1153. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +0 -201
  1154. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -249
  1155. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +0 -107
  1156. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +0 -13
  1157. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +0 -80
  1158. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +0 -32
  1159. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +0 -32
  1160. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +0 -130
  1161. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +0 -25
  1162. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +0 -178
  1163. package/src/__tests__/__snapshots__/Header.test.tsx.snap +0 -79
  1164. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +0 -13
  1165. package/src/__tests__/__snapshots__/Label.test.tsx.snap +0 -73
  1166. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +0 -15
  1167. package/src/__tests__/__snapshots__/Link.test.tsx.snap +0 -212
  1168. package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +0 -305
  1169. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +0 -15
  1170. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +0 -174
  1171. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +0 -4687
  1172. package/src/__tests__/__snapshots__/Position.test.tsx.snap +0 -44
  1173. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +0 -53
  1174. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +0 -473
  1175. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +0 -124
  1176. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +0 -143
  1177. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +0 -33
  1178. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -395
  1179. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +0 -26
  1180. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +0 -44
  1181. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +0 -199
  1182. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +0 -58
  1183. package/src/__tests__/__snapshots__/Text.test.tsx.snap +0 -7
  1184. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +0 -446
  1185. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +0 -6045
  1186. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +0 -15
  1187. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +0 -159
  1188. package/src/__tests__/__snapshots__/Token.test.tsx.snap +0 -3811
  1189. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -227
  1190. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +0 -17
  1191. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +0 -59
  1192. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +0 -130
  1193. package/src/__tests__/behaviors/anchoredPosition.test.ts +0 -295
  1194. package/src/__tests__/behaviors/focusTrap.test.tsx +0 -236
  1195. package/src/__tests__/behaviors/focusZone.test.tsx +0 -549
  1196. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +0 -61
  1197. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +0 -195
  1198. package/src/__tests__/filterObject.test.ts +0 -54
  1199. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +0 -31
  1200. package/src/__tests__/hooks/useOnEscapePress.test.tsx +0 -16
  1201. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +0 -48
  1202. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +0 -48
  1203. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +0 -39
  1204. package/src/__tests__/theme.test.ts +0 -41
  1205. package/src/__tests__/themeGet.test.ts +0 -15
  1206. package/src/__tests__/useSafeTimeout.test.tsx +0 -36
  1207. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +0 -55
  1208. package/src/__tests__/utils/createSlots.test.tsx +0 -74
  1209. package/src/behaviors/anchoredPosition.ts +0 -442
  1210. package/src/behaviors/focusTrap.ts +0 -184
  1211. package/src/behaviors/focusZone.ts +0 -713
  1212. package/src/behaviors/scrollIntoViewingArea.ts +0 -27
  1213. package/src/constants.ts +0 -62
  1214. package/src/drafts.ts +0 -10
  1215. package/src/hooks/index.ts +0 -11
  1216. package/src/hooks/useAnchoredPosition.ts +0 -54
  1217. package/src/hooks/useCombinedRefs.ts +0 -40
  1218. package/src/hooks/useDetails.tsx +0 -54
  1219. package/src/hooks/useDialog.ts +0 -121
  1220. package/src/hooks/useFocusTrap.ts +0 -80
  1221. package/src/hooks/useFocusZone.ts +0 -64
  1222. package/src/hooks/useOnEscapePress.ts +0 -63
  1223. package/src/hooks/useOnOutsideClick.tsx +0 -82
  1224. package/src/hooks/useOpenAndCloseFocus.ts +0 -32
  1225. package/src/hooks/useOverlay.tsx +0 -34
  1226. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  1227. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  1228. package/src/hooks/useRenderForcingRef.ts +0 -22
  1229. package/src/hooks/useResizeObserver.ts +0 -11
  1230. package/src/hooks/useSafeTimeout.ts +0 -38
  1231. package/src/hooks/useScrollFlash.ts +0 -21
  1232. package/src/index.ts +0 -172
  1233. package/src/polyfills/eventListenerSignal.ts +0 -66
  1234. package/src/stories/ActionList.stories.tsx +0 -436
  1235. package/src/stories/ActionList2.stories.tsx +0 -1291
  1236. package/src/stories/ActionMenu.stories.tsx +0 -331
  1237. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  1238. package/src/stories/Autocomplete.stories.tsx +0 -655
  1239. package/src/stories/AvatarStack.stories.tsx +0 -37
  1240. package/src/stories/Button.stories.tsx +0 -92
  1241. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  1242. package/src/stories/Dialog.stories.tsx +0 -240
  1243. package/src/stories/DropdownMenu.stories.tsx +0 -84
  1244. package/src/stories/IssueLabelToken.stories.tsx +0 -138
  1245. package/src/stories/NewButton.stories.tsx +0 -201
  1246. package/src/stories/Overlay.stories.tsx +0 -213
  1247. package/src/stories/Portal.stories.tsx +0 -109
  1248. package/src/stories/ProfileToken.stories.tsx +0 -129
  1249. package/src/stories/SelectPanel.stories.tsx +0 -353
  1250. package/src/stories/TextInput.stories.tsx +0 -113
  1251. package/src/stories/TextInputWithTokens.stories.tsx +0 -155
  1252. package/src/stories/ThemeProvider.stories.tsx +0 -104
  1253. package/src/stories/Token.stories.tsx +0 -137
  1254. package/src/stories/useAnchoredPosition.stories.tsx +0 -332
  1255. package/src/stories/useFocusTrap.stories.tsx +0 -400
  1256. package/src/stories/useFocusZone.stories.tsx +0 -663
  1257. package/src/sx.ts +0 -24
  1258. package/src/theme-preval.js +0 -80
  1259. package/src/theme.ts +0 -89
  1260. package/src/utils/create-slots.tsx +0 -96
  1261. package/src/utils/deprecate.tsx +0 -73
  1262. package/src/utils/isNumeric.tsx +0 -4
  1263. package/src/utils/iterateFocusableElements.ts +0 -121
  1264. package/src/utils/ssr.tsx +0 -1
  1265. package/src/utils/test-deprecations.tsx +0 -19
  1266. package/src/utils/test-helpers.tsx +0 -7
  1267. package/src/utils/test-matchers.tsx +0 -109
  1268. package/src/utils/testing.tsx +0 -242
  1269. package/src/utils/theme.js +0 -64
  1270. package/src/utils/types/AriaRole.ts +0 -71
  1271. package/src/utils/types/ComponentProps.ts +0 -13
  1272. package/src/utils/types/Flatten.ts +0 -4
  1273. package/src/utils/types/KeyPaths.ts +0 -10
  1274. package/src/utils/types/MandateProps.ts +0 -19
  1275. package/src/utils/types/Merge.ts +0 -20
  1276. package/src/utils/types/index.ts +0 -5
  1277. package/src/utils/uniqueId.ts +0 -6
  1278. package/src/utils/use-force-update.ts +0 -7
  1279. package/src/utils/useIsomorphicLayoutEffect.ts +0 -10
  1280. package/src/utils/userAgent.ts +0 -7
  1281. package/stats.html +0 -3279
  1282. package/tsconfig.base.json +0 -20
  1283. package/tsconfig.build.json +0 -7
  1284. package/tsconfig.json +0 -7
@@ -1,163 +0,0 @@
1
- ---
2
- title: Anchored Position Behavior
3
- ---
4
-
5
- The `getAnchoredPosition` behavior and `useAnchoredPosition` hook are used to calculate the position of a "floating" element that is anchored to another DOM element. This is useful for implementing overlay UI, such as dialogs, popovers, tooltips, toasts, and dropdown-style menus.
6
-
7
- At a high level, the `getAnchoredPosition` algorithm will attempt to find the most suitable position for the floating element based on the passed-in settings, its containing element, and the size and position of the anchor element. Specifically, the calculated position should try to ensure that the floating element, when positioned at the calculated coordinates, does not overflow or underflow the container's bounding box.
8
-
9
- Settings for this behavior allow the user to customize several aspects of this calculation. See **PositionSettings** below for a detailed description of these settings.
10
-
11
- ### Positioning algorithm
12
-
13
- When calculating the position of the floating element, the algorithm relies on different measurements from three separate elements:
14
-
15
- 1. The floating element's width and height
16
- 2. The anchor element's x/y position and its width and height
17
- 3. The floating element's clipping container (for x/y position, width and height, and border sizes)
18
-
19
- The public API only asks for the first two elements; the floating element's container is discovered via DOM traversal.
20
-
21
- #### Finding the floating element's clipping container
22
-
23
- The returned anchored position calculation is relative to the floating element's closest [_positioned_](https://developer.mozilla.org/en-US/docs/Web/CSS/position#types_of_positioning) ancestor. To find this ancestor, we try to check parents of the floating element until we find one that has a position set to anything other than `static` and use that element's bounding box as the container. If we can't find such an element, we will try to use `document.body`.
24
-
25
- Once we have found the appropriate relative ancestor, we attempt to find the floating element's _clipping container_. The clipping container is an element that: 1) has `overflow` set to something other than `visible`, and 2) is either an ancestor of the relative ancestor, or is itself the relative ancestor. Again, if we cannot locate such an element, we will use `document.body` as the clipping container.
26
-
27
- Once we have the clipping container, its bounding box is used as the viewport for the position calculation (see the next section). If the clipping container ends up being `document.body`, we take one additional step, allowing the clipping rectangle to be at least as tall as the window. This is done because the `body` element doesn't take up the full window size by default, but we still want to allow the entire space to be used as the viewport for the position calculation. It may be a good idea to ensure that this clipping container element _also_ contains the anchor element and is scrollable. This will ensure that if scrolled, the anchor and floating element will move together.
28
-
29
- #### Positioning and overflow
30
-
31
- With the positions and sizes of the above DOM elements, the algorithm calculates the (x, y) coordinate for the floating element. Then, it checks to see if, based on the floating element's size, if it would overflow the bounds of the container. If it would, it does one of two things:
32
-
33
- A) If the overflow happens in the same direction as the anchor side (e.g. side is `'outside-bottom'` and the overflowing portion of the floating element is the bottom), try to find a different side, recalculate the position, and check for overflow again. If we check all four sides and don't find one that fits, revert to the bottom side, in hopes that a scrollbar might appear.
34
- B) Otherwise, adjust the alignment offset so that the floating element can stay inside the container's bounds.
35
-
36
- For a more in-depth explanation of the positioning settings, see `PositionSettings` below.
37
-
38
- ### Demo
39
-
40
- Deploy Storybook to see a live demo of `anchoredPosition`.
41
-
42
- ### Usage
43
-
44
- ```ts
45
- const settings = {
46
- side: 'outside-right',
47
- align: 'center',
48
- alignmentOffset: 10,
49
- anchorOffset: -10
50
- } as Partial<PositionSettings>
51
- const float = document.getElementById('floatingElement')
52
- const anchor = document.getElementById('anchorElement')
53
- const {top, left} = getAnchoredPosition(float, anchor, settings)
54
- float.style.top = `${top}px`
55
- float.style.left = `${left}px`
56
- ```
57
-
58
- ### API
59
-
60
- The `getAnchoredPosition` function takes the following arguments.
61
-
62
- | Name | Type | Default | Description |
63
- | :-------------- | :----------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
64
- | floatingElement | `Element` | | This is an Element that is currently rendered on the page. `getAnchoredPosition` needs to be able to measure this element's `width` and `height`. |
65
- | anchorElement | `Element` | | This is an Element that the floating element will be "anchored" to. In other words, the calculated position of the floating element will be based on this element's position and size. |
66
- | settings | `PositionSettings` | `{}` | Settings to customize the positioning algorithm. See below for a description of each setting. |
67
-
68
- #### PositionSettings interface
69
-
70
- `PositionSettings` is an object with the following interface
71
-
72
- | Name | Type | Default | Description |
73
- | :--------------- | :---------------- | :----------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
74
- | side | `AnchorSide` | `"outside-bottom"` | Sets the side of the anchor element that the floating element should be pinned to. This side is given by a string starting with either `inside` or `outside`, followed by a hyphen, followed by either `top`, `right`, `bottom`, or `left`. Additionally, `"inside-center"` is an allowed value.<br /><br />The first part of this string, `inside` or `outside`, determines whether the floating element should be attempted to be placed "inside" the anchor element or "outside" of it. Using `inside` is useful for making it appear that the anchor _contains_ the floating element, and it can be used for implementing a dialog that is centered on the screen. The `outside` value is more common and can be used for tooltips, popovers, menus, etc.<br /><br />The second part of this string determines the _edge_ on the anchor element that the floating element will be anchored to. If side is `"inside-center"`, then the floating element will be centered in the X-direction (while `align` is used to position it in the Y-direction). |
75
- | align | `AnchorAlignment` | `"start"` | Determines how the floating element should align with the anchor element. If set to `"start"`, the floating element's first edge (top or left) will align with the anchor element's first edge. If set to `"center"`, the floating element will be centered along the axis of the anchor edge. If set to `"end"`, the floating element's last edge will align with the anchor element's last edge. |
76
- | anchorOffset | `number` | `4`\* | The number of pixels between the anchor edge and the floating element. Positive values move the floating element farther from the anchor element (for outside positioning) or further inside the anchor element (for inside positioning). Negative values have the opposite effect. |
77
- | alignmentOffset | `number` | `4`\*\* | An additional offset, in pixels, to move the floating element from the aligning edge. Positive values move the floating element in the direction of center-alignment. Negative values move the floating element away from center-alignment. When align is `"center"`, positive offsets move the floating element right (top or bottom anchor side) or down (left or right anchor side). |
78
- | allowOutOfBounds | `boolean` | `false` | If false, when the above settings result in rendering the floating element wholly or partially off-screen, attempt to adjust the settings to prevent this. Only applies to `outside` positioning.<br /><br />First, attempt to flip to the opposite edge of the anchor if the floating element is getting clipped in that direction. If flipping results in a similar clipping, try moving to the adjacent sides.<br /><br />Once we find a side that does not clip the overlay in its own dimension, check the rest of the sides to see if we need to adjust the alignment offset to fit in other dimensions.<br /><br />If we try all four sides and get clipped each time, settle for overflowing and use the `bottom` side, since the ability to scroll is most likely in this direction. |
79
-
80
- \* If `side` is set to `"inside-center"`, this defaults to `0` instead of `4`.
81
-
82
- \*\* If using outside positioning, or if `align` is set to `"center"`, this defaults to `0` instead of `4`.
83
-
84
- #### AnchorSide
85
-
86
- `AnchorSide` can be any of the following strings:
87
-
88
- `'inside-top'`, `'inside-bottom'`, `'inside-left'`, `'inside-right'`, `'inside-center'`, `'outside-top'`, `'outside-bottom'`, `'outside-left'`, `'outside-right'`
89
-
90
- #### AnchorAlignment
91
-
92
- `AnchorAlignment` can be any of the following strings:
93
-
94
- `'start'`, `'center'`, `'end'`
95
-
96
- ### Best practices
97
-
98
- As discussed above, the positioning algorithm needs to first measure the size of three different elements. Therefore, all three of these elements (anchor element, floating element, and the floating element's closest positioned container) must be rendered at the time `getAnchoredPosition` is called. To avoid a frame where the floating element is rendered at the `(0, 0)` position, give it a style of `visibility: hidden` until its position is returned at set. This allows the element to be measured without showing up on the page.
99
-
100
- ### A note on performance
101
-
102
- Every time `getAnchoredPosition` is called, it causes a [reflow](https://developers.google.com/speed/docs/insights/browser-reflow) because it needs to query the rendering engine for the positions of 3 elements: the anchor element, the floating element, and the closest ancestor of the floating element that is [_positioned_](https://developer.mozilla.org/en-US/docs/Web/CSS/position#types_of_positioning). Therefore, this function should not be called until it is needed (e.g. an overlay-style menu is invoked and displayed).
103
-
104
- ## useAnchoredPosition hook
105
-
106
- The `useAnchoredPosition` hook is used to provide anchored positioning data for React components. The hook returns refs that must be added to the anchor and floating elements, and a `position` object containing `top` and `left`. This position is tracked as state, so the component will re-render whenever it changes. It is the responsibility of the consumer to apply the top and left styles to the floating element in question.
107
-
108
- ### Using your own refs
109
-
110
- The `useAnchoredPosition` hook will return two refs for the anchor element and the floating element, which must be added to their respective JSX. If you would like to use your own refs, you can pass them into the hook as part of the settings object (see the interface below).
111
-
112
- ### Recalculating position
113
-
114
- Like other hooks such as `useCallback` and `useEffect`, this hook takes a dependencies array. If defined, the position will only be recalculated when one of the dependencies in this array changes. Otherwise, the position will be calculated when the component is first mounted, but never again.
115
-
116
- ### Usage
117
-
118
- ```jsx
119
- export const AnchoredPositionExample = () => {
120
- const {floatingElementRef, anchorElementRef, position} = useAnchoredPosition({side: 'outside-bottom', align: 'center'})
121
- return (
122
- <div>
123
- <Box
124
- position="absolute"
125
- top={position?.top ?? 0}
126
- left={position?.left ?? 0}
127
- width={150}
128
- height={150}
129
- ref={floatingElementRef as React.RefObject<HTMLDivElement>}
130
- >
131
- Floating element
132
- </Box>
133
- <Box borderWidth='1px' borderStyle='solid' borderColor='border.default' borderRadius={2} width={400} height={75} ref={anchorElementRef as React.RefObject<HTMLDivElement>}>
134
- Anchor Element
135
- </Box>
136
- </div>
137
- )
138
- }
139
- ```
140
-
141
- ### useAnchoredPosition hook
142
-
143
- | Name | Type | Default | Description |
144
- | :----------- | :----------------------------- | :-------: | :------------------------------------------------------------------------------------------------------------------- |
145
- | settings | `AnchoredPositionHookSettings` | undefined | Optional settings to control how the anchored position is calculated. See below. |
146
- | dependencies | `React.DependencyList` | undefined | Dependencies to determine when to re-calculate the position. If undefined or `[]`, only calculate the position once. |
147
-
148
- **Return value**
149
-
150
- | Name | Type | Description |
151
- | :----------------- | :---------------------------- | :------------------------------------------------- |
152
- | floatingElementRef | `React.RefObject<Element>` | This ref must be added to the floating element JSX |
153
- | anchorElementRef | `React.RefObject<Element>` | This ref must be added to the anchor element JSX |
154
- | position | `{top: number, left: number}` | The calculated position |
155
-
156
- ### AnchoredPositionHookSettings interface
157
-
158
- `AnchoredPositionHookSettings` is an object with an interface that extends `PositionSettings` (see above). Additionally, it adds the following properties:
159
-
160
- | Name | Type | Default | Description |
161
- | :----------------- | :----------------------------- | :---------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
162
- | floatingElementRef | `React.RefObject<HTMLElement>` | `undefined` | If provided, this will be the ref used to access the element that will be used for the floating element. Its size measurements are needed by the underlying `useAnchoredPosition` behavior. Otherwise, this hook will create the ref for you and return it. In both cases, the ref must be provided to the floating element's JSX. |
163
- | anchorElementRef | `React.RefObject<HTMLElement>` | `undefined` | If provided, this will be the ref used to access the element that will be used for the anchor element. Its position and size measurements are needed by the underlying `useAnchoredPosition` behavior. Otherwise, this hook will create the ref for you and return it. In both cases, the ref must be provided to the anchor element's JSX. |
@@ -1,70 +0,0 @@
1
- ---
2
- title: Core Concepts
3
- ---
4
-
5
- This document aims to discuss some of the core concepts of building with Primer React.
6
-
7
- ## Responsive props
8
-
9
- It's really easy to set different values for most of our component props based on screen size! We take advantage of [styled-system](https://github.com/styled-system/styled-system)'s responsive props API in our components.
10
-
11
- ```
12
- <Button display={['flex', 'flex', 'none']}/>
13
-
14
- or
15
-
16
- <Text fontSize={[1,1,1,4]}/>
17
- ```
18
-
19
- ## Providing your own theme
20
-
21
- You can provide your own theme to Primer React! There are a few ways of doing this to varying degrees, checkout the [theme docs](https://primer.style/components/primer-theme) for more information.
22
-
23
- ## The `css` prop
24
-
25
- When push comes to shove and you just _really_ need to add a custom CSS rule, you can do that with the `css` prop. Please don't abuse this :)
26
-
27
- ```
28
- <Box css='border-bottom-right-radius: 0px' />
29
-
30
- ```
31
-
32
- Please note that you will need to have the **[styled-components babel plugin](https://www.styled-components.com/docs/tooling#babel-plugin)** set up in your project in order to use the `css` prop.
33
-
34
- ## Types of components
35
-
36
- We categorize our components into 3 general types. Building block components, pattern components, and helper components. Understanding how these types of components interact with each other can help you better understand how to get the most out of Primer React.
37
-
38
- - Building Blocks
39
-
40
- Building block components are components that are basic in their functions and can be used together with other components to build just about any UI. Some examples of building block components are `Box`, `Avatar`, `Details`, and `Link`.
41
-
42
- - Pattern Components
43
-
44
- Pattern components are components that are made up of several building block components to represent a commonly used pattern in our UI. Some examples of pattern components are `UnderlineNav` and `FilterList`. We plan on expanding our offering of pattern components in the near future.
45
-
46
- - Helper Components
47
-
48
- Helper components are components that help the user achieve common CSS patterns while maintaining some control over values used. Some examples of helper components are `Flex`, `Text`, `Grid`, and the `Position` components.
49
-
50
- ## The `as` prop
51
-
52
- The `as` prop is a feature that all of our components get from [styled-components](https://www.styled-components.com). It allows you to pass a HTML tag or another component to a Primer Component to be rendered as the base tag of that component along with all of it's styles and props.
53
-
54
- For example, say you are using a `Button` component, and you really need to apply `Box` styles to it. You can compose `Box` and `Button` like so:
55
-
56
- ```.jsx
57
- <Box display="flex" as={Button} href='https://github.com'>Hello</Box>
58
- ```
59
-
60
- This will allow you to use all of the `Button` props _and_ all of the `Box` props without having to wrap your `Button` component in another `Box` component.
61
-
62
- **This pattern does have some limitations.** Usage of the `as` prop can lead to unexpected output. In the example above, if the user had done `<Button as={Box}/>` instead, because the `Box`'s render method is ultimately applied, and `Box` components render `div`'s, you'll see that the rendered component is a `div` when ideally you'd like it to be a `button`. It is also not always clear how the styles in both components will interact and/or override each other.
63
-
64
- For these reasons, **we recommend only using the `as` prop when you cannot achieve the same result by nesting components.** The `Box` / `Button` example could be done like so:
65
-
66
- ```.jsx
67
- <Box display="flex">
68
- <Button href='https://github.com'>Hi</Button>
69
- </Box>
70
- ```
@@ -1,103 +0,0 @@
1
- ---
2
- title: Focus Trap Behavior
3
- ---
4
-
5
- The `focusTrap` behavior and `useFocusTrap` hook are used prevent focus from leaving a particular element. This is useful for implementing modal dialogs: only the content within the dialog should be interactive, even though the UI underneath may still be visible.
6
-
7
- ### Behavior
8
-
9
- - Activation: As soon as the focus trap is activated, it will ensure that an element within the container has focus. If it doesn't, it will focus the first focusable element within the container, or, if provided, the element indicated by the `initialFocus` parameter (see API below).
10
- - External focus changes: If an external cause (e.g. mouse click, scripts, or accessibility software) results in an element outside the container to be focused, focus will immediately be redirected to the last-focused element that is inside the container.
11
- - Circular tab focus: Using the `TAB` key on the last focusable element within the container will result in the first focusable element within the container receiving focus. Similarly, `Shift+TAB` can be used to focus the last element from the first.
12
- - Global: Only one focus trap can be _active_ at a time. When a focus trap is enabled, if there is already an active focus trap, it becomes suspended and pushed onto a stack. Once the newly-active focus trap is disabled, the most recently-suspended trap will reactivate. Suspended focus traps can be disabled, causing them to be removed from the stack of suspended traps.
13
-
14
- ### Demo
15
-
16
- To see a demo, deploy Storybook and find the `useFocusTrap` stories.
17
-
18
- ### Usage
19
-
20
- ```ts
21
- function showDialog() {
22
- const dialog = document.getElementById('myDialog')
23
- if (dialog instanceof HTMLElement) {
24
- dialog.style.display = ''
25
- return focusTrap(dialog)
26
- }
27
- }
28
- function hideDialog(controller: AbortController) {
29
- document.getElementById('myDialog')?.style.display = 'none'
30
- controller.abort()
31
- }
32
- const dialogController = showDialog()
33
-
34
- // later
35
- if (dialogController) {
36
- hideDialog(controller)
37
- }
38
- ```
39
-
40
- ### API
41
-
42
- The `focusTrap` function takes the following arguments.
43
-
44
- | Name | Type | Default | Description |
45
- | :----------- | :------------- | :---------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |
46
- | container | `HTMLElement` | | When active, only elements within this container (along with the container itself) can be focused. |
47
- | initialFocus | `HTMLElement` | | Specifies the element which will receive focus when the focus trap is activated. Defaults to the first tabbable element inside the container. |
48
- | signal | `AbortSignal?` | `undefined` | Optional abort signal to control the focus trap. If one is not provided, an `AbortController` will be returned, which can be used to disable the focus trap. |
49
-
50
- #### Return value
51
-
52
- If the `signal` argument is omitted, `focusTrap()` will return an `AbortController`. This object has an `abort()` method, which can be called to disable the focus trap.
53
-
54
- ### Best practices
55
-
56
- - Focus management is an important consideration for accessible applications. Sometimes poor focus management can make certain tasks impossible to complete for users not using a mouse. To learn more, read the [ARIA guidelines for keyboard focus](https://www.w3.org/TR/wai-aria-practices/#kbd_focus_discernable_predictable).
57
- - Only activate a focus trap if all UI outside of the trap container should be inert (non-interactive).
58
- - Avoid situations where multiple focus traps may be active (e.g. dialogs that open more dialogs). This behavior handles those situations, but the pattern may indicate poor UX.
59
-
60
- ### A note on performance
61
-
62
- When focus trap is activated, it must perform [reflow](https://developers.google.com/speed/docs/insights/browser-reflow) to discover focusable elements. Use caution not to rapidly enable and disable focus traps.
63
-
64
- ## useFocusTrap hook
65
-
66
- The `useFocusTrap` hook is used to achieve focus trapping for React components. The hook returns a `ref` that must be applied to the focus trap container. The hook also returns a ref that can be used to indicate the initially-focused element when a focus trap is activated.
67
-
68
- The focus trap can be disabled in two ways:
69
-
70
- 1. Simply do not render the component. When a component that uses focus trapping is unmounted, its focus trap will be aborted automatically.
71
- 2. Pass `disabled: true` to the settings argument of `useFocusTrap`.
72
-
73
- The `useFocusTrap` hook also has an additional setting, `restoreFocusOnCleanUp`. If this is set to true, when the hook is either disabled (called with `disabled: true` or unmounted), we will attempt to re-focus the element that was focused immediately before the focus trap was enabled.
74
-
75
- ### Using your own refs
76
-
77
- If you would like to use your own refs, you can pass them into the hook as part of the settings object (see the interface below).
78
-
79
- ### Usage
80
-
81
- ```jsx
82
- export const FocusTrapExample = () => {
83
- const {containerRef} = useFocusTrap()
84
- return (
85
- <div ref={containerRef as React.RefObject<HTMLDivElement>}>
86
- <Button>Apple</Button>
87
- <Button>Banana</Button>
88
- <Button>Cantaloupe</Button>
89
- </div>
90
- )
91
- }
92
- ```
93
-
94
- ### FocusTrapHookSettings interface
95
-
96
- `FocusTrapHookSettings` has the following properties:
97
-
98
- | Name | Type | Default | Description |
99
- | :-------------------- | :---------------- | :---------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
100
- | containerRef | `React.RefObject` | `undefined` | If provided, this will be the ref used to access the focus trap container. Otherwise, this hook will create the ref for you and return it. In both cases, the ref must be provided to the container element's JSX. |
101
- | initialFocusRef | `React.RefObject` | `undefined` | If provided, this will be the ref used to access the element that should receive initial focus when the focus trap is activated. Otherwise, this hook will create the ref for you and return it. If unused, the first tabbable element inside the container will be focused. |
102
- | disabled | `boolean` | `false` | If true, the previously-established focus trap for this container will be aborted. |
103
- | restoreFocusOnCleanUp | `boolean` | `false` | If true, attempt to restore focus to the previously-focused element when the trap is disabled or unmounted. |
@@ -1,145 +0,0 @@
1
- ---
2
- title: Focus Zone Behavior
3
- ---
4
-
5
- The `focusZone` behavior and `useFocusZone` hook are used to designate a container where focus can be moved using keys other than `Tab`. This is useful for implementing many of the patterns described in [Section 6](https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard) of the WAI-ARIA Authoring Practices document. The most common use case of this behavior is to allow arrow keys (up and down or left and right) to move focus between related elements, such as items in a menu.
6
-
7
- At a high level, the `focusZone` behavior works by adjusting the `tabindex` attribute on focusable elements and setting up event listeners on the container that respond to the relevant key presses.
8
-
9
- Settings for this behavior allow the user to customize several aspects of the focus zone. See **FocusZoneSettings** below for a detailed description of these settings.
10
-
11
- ### Focusability: which elements participate in the Focus Zone?
12
-
13
- When the `focusZone` behavior is established, it will discover all _focusable_ elements within the given container and allow them to be focused with the bound keys. _Focusable_ elements are those that either are normally focusable via the Tab key OR have a valid `tabindex` attribute (including `"-1"`). The easiest way to ensure an element participates in the focus zone is by applying the attribute `tabindex="-1"`. If you need to prevent a focusable element from participating in the focus zone, you can provide a `focusableElementFilter`.
14
-
15
- ### Focus order
16
-
17
- The `focusZone` behavior uses the natural DOM ordering of elements to determine focus order. This means that a key that moves focus will either move to a "next" element or to a "previous" element. For example, the left arrow key and the up arrow key would both move focus to the previous element in the DOM order, while the right arrow key and the down arrow key would both move focus to the next element in the DOM order.
18
-
19
- Focus cannot be moved beyond the last element of the container (other than using the Tab key). The `focusOutBehavior` option can be used to allow focus to wrap around from last to first element (or vice-versa).
20
-
21
- For a more customized focus movement behavior, the consumer has the ability to supply a custom callback that identifies the next element to focus.
22
-
23
- #### Entering the focus zone
24
-
25
- By default, when focus enters a focus zone, the element that receives focus will be the most recently-focused element within that focus zone. If no element had previously been focused, or if that previously-focused element was removed, focus will revert to the first focusable element within the focus zone, regardless of the direction of focus movement.
26
-
27
- Using the `focusInStrategy` option, you can change this behavior. Setting this option to `"first"` will simply cause the first focusable element in the container to be focused whenever focus enters the focus zone. Setting it to `"closest"` will cause either the first or last focusable element in the container to be focused depending on the direction of focus movement (for example, a shift+tab that brings focus to the container will cause the last focusable element to be focused, whereas a regular tab would cause the first focusable element to be focused). Otherwise, you may provide a callback to choose a custom element to receive initial focus. One scenario where this would be useful is if you wanted to focus an item that is "selected" in a list.
28
-
29
- For more information on choosing the right focus in behavior, see [6.6 Keyboard Navigation Inside Components](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_general_within) from the ARIA Authoring Practices document.
30
-
31
- ### Supported keys
32
-
33
- The `focusZone` behavior supports different sets of keys for moving focus around. The `bindKeys` option is used to set which of the following keys can be used to move focus.
34
-
35
- | Key(s) | Notes | Use case |
36
- | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
37
- | ArrowVertical | Prevents default behavior of scrolling where applicable | Most focus zones with vertically-positioned elements |
38
- | ArrowHorizontal | Prevents default behavior of scrolling where applicable | Most focus zones with horizontally-positioned elements |
39
- | HomeAndEnd | Causes focus to jump to the first or last focusable item in the container. Does not move focus if the currently-focused element is a text box. | Generally used with arrow keys |
40
- | PageUpDown | Works the same as the Home and End keys. Advisable only when supplying a custom callback that supports paging. | In a long, scrollable list |
41
- | Tab/Shift+Tab | Unlike other keys, the Tab key will always allow movement outside of the focus zone (use the Focus Trap behavior to prevent this). Tab moves to the next item, Shift+Tab moves to the previous. | Bind Tab if you want to continue allowing tab to move focus between elements in your container rather than jumping out of the container. |
42
- | JK | J moves focus to the next item, K moves to the previous. Does not move focus if the currently-focused element is a text box. [Originally from](https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys) the vi keybindings | Used in certain lists |
43
- | HL | H moves focus to the previous item, L moves to the next. Does not move focus if the currently-focused element is a text box. [Originally from](https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys) the vi keybindings | Used in certain lists |
44
- | WS | W moves focus to the previous item, S moves to the next. Does not move focus if the currently-focused element is a text box. | Any situation where it is more ergonomic for the left hand to perform this action, such as in a gaming context (rare) |
45
- | AD | A moves focus to the previous item, D moves to the next. Does not move focus if the currently-focused element is a text box. | Any situation where it is more ergonomic for the left hand to perform this action, such as in a gaming context (rare) |
46
-
47
- ### DOM Focus vs. Active Descendant
48
-
49
- The `focusZone` behavior supports two modes of operation: DOM Focus and Active Descendant.
50
-
51
- - DOM Focus is the default mode and by far the most commonly needed. When a key is used to move focus, we call `.focus()` directly on the element to receive focus. This results in `document.activeElement` getting set to this new element, and it will receive any necessary styles via `:focus` and `:focus-within`.
52
- - Active Descendant mode does _not_ move DOM focus. Instead, focus remains on the _control_ element, and its `aria-activedescendant` attribute is set to the ID of the relevant element. Because there are no `:focus` styles applied and no `focus` events fired, you can supply an `onActiveDescendantChanged` callback to handle any necessary styles or other logic as the active descendant changes. For more information on the Active Descendant focus pattern, see [6.6.2 Managing Focus in Composites Using `aria-activedescendant`](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant) from the ARIA Authoring Practices document.
53
-
54
- ### Demo
55
-
56
- Deploy Storybook to see live demos of `focusZone`.
57
-
58
- ### Usage
59
-
60
- ```ts
61
- const settings = {
62
- bindKeys: FocusKeys.ArrowVertical | FocusKeys.HomeAndEnd
63
- } as FocusZoneSettings
64
- const focusZone = document.getElementById('focusZoneContainer')
65
- focusZone(focusZone, settings)
66
- ```
67
-
68
- ### API
69
-
70
- The `focusZone` function takes the following arguments.
71
-
72
- | Name | Type | Default | Description |
73
- | :-------- | :------------------ | :-----: | :--------------------------------------------------------------------------------- |
74
- | container | `Element` | | The focus zone will apply to this container and all of its focusable descendants. |
75
- | settings | `FocusZoneSettings` | `{}` | Settings to customize the focus zone. See below for a description of each setting. |
76
-
77
- #### FocusZoneSettings interface
78
-
79
- `FocusZoneSettings` is an object with the following interface. All properties are optional and have default behaviors.
80
-
81
- | Name | Type | Default | Description |
82
- | :------------------------ | :-------------------------------------------- | :----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
83
- | bindKeys | `FocusKeys` (numeric enum) | `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd` | Bit flags that identify keys that will move focus around the focus zone. Each available key either moves focus to the "next", "previous", "start", or "end" element, so it is best to only bind the keys that make sense to move focus in your UI. Use the `FocusKeys` object to discover supported keys (listed in the "Supported keys" section above). <br /><br />Use the bitwise "OR" operator (&#124;) to combine key types. For example, `FocusKeys.WASD │ FocusKeys.HJKL` represents all of W, A, S, D, H, J, K, and L.<br /><br />The default for this setting is `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd`, unless `getNextFocusable` is provided, in which case `FocusKeys.ArrowAll │ FocusKeys.HomeAndEnd` is used as the default. |
84
- | focusOutBehavior | `"stop" │ "wrap"` | `"stop"` | Choose the behavior applied in cases where focus is currently at either the first or last element of the container. `"stop"` - do nothing and keep focus where it was; `"wrap"` - wrap focus around to the first element from the last, or the last element from the first |
85
- | focusInStrategy | `"first" │ "closest" │ "previous" │ Function` | `"previous"` | This option allows customization of the behavior that determines which of the focusable elements should be focused when focus enters the container via the Tab key.<br /><br />When set to `"first"`, whenever focus enters the container via Tab, we will focus the first focusable element. When set to `"previous"`, the most recently focused element will be focused (fallback to first if there was no previous).<br /><br />The "closest" strategy works like "first", except either the first or the last element of the container will be focused, depending on the direction from which focus comes.<br /><br />If a function is provided, this function should return the `HTMLElement` intended to receive focus. This is useful if you want to focus the currently "selected" item or element. |
86
- | getNextFocusable | `Function` | | This is a callback used to customize the next element to focus when a bound key is pressed. The function takes 3 arguments: `direction` (`"previous"`, `"next"`, `"start"`, or `"end"`), `from` (Element or `undefined`), and `event` (KeyboardEvent). The function should return the next element to focus, or `undefined`. If `undefined` is returned, the regular algorithm to select the next element to focus will be used. |
87
- | focusableElementFilter | `Function` | | This is a callback used to cull focusable elements from participating in the focus zone. |
88
- | abortSignal | `AbortSignal` | | If passed, the focus zone will be deactivated and all event listeners removed when this signal is aborted. If not passed, an `AbortSignal` will be returned by the `focusZone` function. |
89
- | activeDescendantControl | `HTMLElement` | | If `activeDescendantControl` is supplied, do not move focus or alter `tabindex` on any element. Instead, manage `aria-activedescendant` according to the [ARIA best practices guidelines](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant).<br /><br />The given `activeDescendantControl` will be given an `aria-controls` attribute that references the ID of the `container`. Additionally, it will be given an `aria-activedescendant` attribute that references the ID of the currently-active descendant.<br /><br />This element will retain DOM focus as arrow keys are pressed. |
90
- | onActiveDescendantChanged | `Function` | | This function is called each time the active descendant changes (only applicable if `activeDescendantControl` is given). The function takes two arguments: `newActiveDescendant` and `previousActiveDescendant`, both `HTMLElement`, either of which can be undefined (e.g. when an element in the container first becomes active, or when the controlling element becomes unfocused). |
91
-
92
- ### Best practices
93
-
94
- We highly recommend reading [Section 6: Developing a Keyboard Interface](https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard) from the WAI-ARIA Authoring Practices document.
95
-
96
- ## useFocusZone hook
97
-
98
- The `useFocusZone` hook is used to provide focus zone behavior to React components. The hook returns a ref that must be added to the container element.
99
-
100
- ### Using your own refs
101
-
102
- If you would like to use your own refs, you can pass them into the hook as part of the settings object (see the interface below).
103
-
104
- ### Hook dependencies
105
-
106
- Like other hooks such as `useCallback` and `useEffect`, this hook takes a dependencies array. If defined, the focus zone will be re-applied when a dependency changes (and the old one will be cleaned up).
107
-
108
- ### Usage
109
-
110
- ```jsx
111
- export const FocusZoneExample = () => {
112
- const {containerRef} = useFocusZone({bindKeys: FocusKeys.ArrowVertical | FocusKeys.HomeAndEnd})
113
- return (
114
- <div ref={containerRef}>
115
- <button>First</button>
116
- <button>Second</button>
117
- <button>Third</button>
118
- </div>
119
- )
120
- }
121
- ```
122
-
123
- ### useFocusZone hook
124
-
125
- | Name | Type | Default | Description |
126
- | :----------- | :---------------------- | :-------: | :------------------------------------------------------------------ |
127
- | settings | `FocusZoneHookSettings` | undefined | Optional settings to control how the focus zone behaves. See below. |
128
- | dependencies | `React.DependencyList` | undefined | Dependencies to determine when to initialize the focus zone. |
129
-
130
- **Return value**
131
-
132
- | Name | Type | Description |
133
- | :------------------------- | :----------------------------- | :---------------------------------------------------------------------------------------- |
134
- | containerRef | `React.RefObject<HTMLElement>` | This ref must be added to the container's JSX. |
135
- | activeDescendantControlRef | `React.RefObject<HTMLElement>` | If using active descendant focusing, this ref must be added to the control element's JSX. |
136
-
137
- ### FocusZoneHookSettings interface
138
-
139
- `FocusZoneHookSettings` is an object with an interface that extends `FocusZoneSettings` (see above), however, the `activeDescendantControl` prop is omitted (instead see the `activeDescendantFocus` prop below). Additionally, it adds the following properties:
140
-
141
- | Name | Type | Default | Description |
142
- | :-------------------- | :--------------------------------------- | :---------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
143
- | containerRef | `React.RefObject` | `undefined` | If provided, this will be the ref used to access the element that will become the container of the focus zone. Otherwise, this hook will create the ref for you and return it. In both cases, the ref must be provided to the container's JSX. |
144
- | activeDescendantFocus | `boolean │ React.RefObject<HTMLElement>` | `false` | If false, the focus zone will apply normal DOM focusing (see **DOM Focus vs. Active Descendant** above). If true, or if a ref is provided, the focus zone will use "active descendant" focusing. If a ref is applied, it will be used as the control element for active descendant focus. If `true` is given, a ref will be created and returned by the hook. |
145
- | disabled | `boolean` | `false` | Set to true to disable the focus zone and clean up listeners. Can be re-enabled at any time. |