@primer/components 31.2.0-rc.c53cfd9e → 31.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1085) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/browser.esm.js +209 -209
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +195 -195
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Divider.jsx +29 -0
  7. package/lib/ActionList/Group.jsx +23 -0
  8. package/lib/ActionList/Header.jsx +66 -0
  9. package/lib/ActionList/Item.jsx +301 -0
  10. package/lib/ActionList/List.jsx +138 -0
  11. package/lib/ActionList/index.js +12 -23
  12. package/lib/ActionList2/Description.jsx +30 -0
  13. package/lib/ActionList2/Divider.jsx +22 -0
  14. package/lib/ActionList2/Group.jsx +25 -0
  15. package/lib/ActionList2/Header.jsx +36 -0
  16. package/lib/ActionList2/Item.js +27 -17
  17. package/lib/ActionList2/Item.jsx +174 -0
  18. package/lib/ActionList2/LinkItem.jsx +28 -0
  19. package/lib/ActionList2/List.jsx +41 -0
  20. package/lib/ActionList2/Selection.jsx +36 -0
  21. package/lib/ActionList2/Visuals.jsx +48 -0
  22. package/lib/ActionList2/index.js +23 -41
  23. package/lib/ActionMenu.jsx +73 -0
  24. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
  25. package/lib/AnchoredOverlay/index.js +4 -12
  26. package/lib/Autocomplete/Autocomplete.d.ts +28 -28
  27. package/lib/Autocomplete/Autocomplete.jsx +100 -0
  28. package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
  29. package/lib/Autocomplete/AutocompleteInput.d.ts +28 -28
  30. package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
  31. package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
  32. package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
  33. package/lib/Autocomplete/index.js +7 -14
  34. package/lib/Avatar.jsx +34 -0
  35. package/lib/AvatarPair.jsx +29 -0
  36. package/{src/AvatarStack.tsx → lib/AvatarStack.jsx} +41 -49
  37. package/lib/BaseStyles.jsx +65 -0
  38. package/lib/BorderBox.jsx +18 -0
  39. package/lib/Box.jsx +10 -0
  40. package/lib/BranchName.jsx +20 -0
  41. package/lib/Breadcrumbs.jsx +74 -0
  42. package/lib/Button/Button.d.ts +25 -25
  43. package/lib/Button/Button.jsx +60 -0
  44. package/lib/Button/ButtonBase.jsx +36 -0
  45. package/lib/Button/ButtonClose.d.ts +45 -45
  46. package/lib/Button/ButtonClose.jsx +55 -0
  47. package/lib/Button/ButtonDanger.d.ts +25 -25
  48. package/lib/Button/ButtonDanger.jsx +63 -0
  49. package/lib/Button/ButtonGroup.jsx +55 -0
  50. package/lib/Button/ButtonInvisible.d.ts +25 -25
  51. package/lib/Button/ButtonInvisible.jsx +52 -0
  52. package/lib/Button/ButtonOutline.d.ts +25 -25
  53. package/lib/Button/ButtonOutline.jsx +63 -0
  54. package/lib/Button/ButtonPrimary.d.ts +25 -25
  55. package/lib/Button/ButtonPrimary.jsx +62 -0
  56. package/{src/Button/ButtonStyles.tsx → lib/Button/ButtonStyles.jsx} +8 -7
  57. package/lib/Button/ButtonTableList.jsx +49 -0
  58. package/lib/Button/index.js +21 -70
  59. package/lib/Caret.jsx +93 -0
  60. package/lib/CircleBadge.jsx +43 -0
  61. package/lib/CircleOcticon.d.ts +42 -42
  62. package/lib/CircleOcticon.jsx +21 -0
  63. package/lib/CounterLabel.jsx +44 -0
  64. package/lib/Details.jsx +21 -0
  65. package/lib/Dialog/ConfirmationDialog.jsx +146 -0
  66. package/lib/Dialog/Dialog.js +1 -0
  67. package/lib/Dialog/Dialog.jsx +273 -0
  68. package/lib/Dialog.d.ts +45 -45
  69. package/lib/Dialog.jsx +131 -0
  70. package/lib/Dropdown.d.ts +176 -176
  71. package/lib/Dropdown.jsx +134 -0
  72. package/lib/DropdownMenu/DropdownButton.d.ts +46 -46
  73. package/lib/DropdownMenu/DropdownButton.jsx +14 -0
  74. package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
  75. package/lib/DropdownMenu/index.js +6 -20
  76. package/lib/DropdownStyles.js +18 -26
  77. package/lib/FilterList.d.ts +42 -42
  78. package/lib/FilterList.jsx +63 -0
  79. package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
  80. package/lib/FilteredActionList/index.js +4 -12
  81. package/lib/FilteredSearch.jsx +29 -0
  82. package/lib/Flash.jsx +70 -0
  83. package/lib/Flex.jsx +15 -0
  84. package/lib/FormGroup.jsx +25 -0
  85. package/lib/Grid.jsx +15 -0
  86. package/lib/Header.jsx +90 -0
  87. package/lib/Heading.jsx +21 -0
  88. package/lib/Label.jsx +84 -0
  89. package/lib/LabelGroup.jsx +19 -0
  90. package/lib/Link.jsx +38 -0
  91. package/lib/NewButton/button-counter.d.ts +6 -0
  92. package/lib/NewButton/button-counter.js +31 -0
  93. package/lib/NewButton/button-counter.jsx +14 -0
  94. package/lib/NewButton/button.d.ts +13 -0
  95. package/lib/NewButton/button.js +316 -0
  96. package/lib/NewButton/button.jsx +278 -0
  97. package/lib/NewButton/index.d.ts +14 -0
  98. package/lib/NewButton/index.js +8 -0
  99. package/lib/NewButton/types.d.ts +32 -0
  100. package/lib/NewButton/types.js +2 -0
  101. package/lib/Overlay.jsx +156 -0
  102. package/lib/Pagehead.jsx +18 -0
  103. package/lib/Pagination/Pagination.jsx +163 -0
  104. package/lib/Pagination/index.js +6 -12
  105. package/lib/Pagination/model.jsx +174 -0
  106. package/lib/PointerBox.jsx +25 -0
  107. package/{src/Popover.tsx → lib/Popover.jsx} +54 -80
  108. package/lib/Portal/Portal.jsx +79 -0
  109. package/lib/Portal/index.js +5 -16
  110. package/lib/Position.d.ts +4 -4
  111. package/lib/Position.jsx +46 -0
  112. package/lib/ProgressBar.jsx +39 -0
  113. package/lib/SelectMenu/SelectMenu.d.ts +246 -246
  114. package/lib/SelectMenu/SelectMenu.jsx +114 -0
  115. package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
  116. package/lib/SelectMenu/SelectMenuDivider.jsx +43 -0
  117. package/lib/SelectMenu/SelectMenuFilter.jsx +59 -0
  118. package/lib/SelectMenu/SelectMenuFooter.jsx +46 -0
  119. package/lib/SelectMenu/SelectMenuHeader.jsx +44 -0
  120. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  121. package/lib/SelectMenu/SelectMenuItem.jsx +143 -0
  122. package/lib/SelectMenu/SelectMenuList.jsx +60 -0
  123. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +21 -0
  124. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  125. package/lib/SelectMenu/SelectMenuModal.jsx +119 -0
  126. package/lib/SelectMenu/SelectMenuTab.jsx +93 -0
  127. package/lib/SelectMenu/SelectMenuTabPanel.jsx +43 -0
  128. package/lib/SelectMenu/SelectMenuTabs.jsx +58 -0
  129. package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
  130. package/lib/SelectMenu/index.js +7 -14
  131. package/lib/SelectPanel/SelectPanel.jsx +105 -0
  132. package/lib/SelectPanel/index.js +4 -12
  133. package/lib/SideNav.jsx +177 -0
  134. package/lib/Spinner.jsx +35 -0
  135. package/lib/StateLabel.d.ts +1 -1
  136. package/lib/StateLabel.js +6 -1
  137. package/lib/StateLabel.jsx +94 -0
  138. package/lib/StyledOcticon.jsx +20 -0
  139. package/lib/SubNav.jsx +104 -0
  140. package/lib/TabNav.jsx +60 -0
  141. package/lib/Text.jsx +14 -0
  142. package/lib/TextInput.jsx +23 -0
  143. package/lib/TextInputWithTokens.d.ts +28 -28
  144. package/lib/TextInputWithTokens.jsx +218 -0
  145. package/lib/ThemeProvider.jsx +130 -0
  146. package/lib/Timeline.d.ts +43 -43
  147. package/lib/Timeline.jsx +124 -0
  148. package/lib/Token/AvatarToken.d.ts +1 -1
  149. package/lib/Token/AvatarToken.jsx +54 -0
  150. package/lib/Token/IssueLabelToken.d.ts +1 -1
  151. package/lib/Token/IssueLabelToken.jsx +125 -0
  152. package/lib/Token/Token.d.ts +1 -1
  153. package/lib/Token/Token.jsx +103 -0
  154. package/lib/Token/TokenBase.jsx +88 -0
  155. package/lib/Token/_RemoveTokenButton.jsx +108 -0
  156. package/{src/Token/_TokenTextContainer.tsx → lib/Token/_TokenTextContainer.jsx} +9 -7
  157. package/lib/Token/index.js +11 -30
  158. package/{src/Tooltip.tsx → lib/Tooltip.jsx} +34 -51
  159. package/lib/Truncate.jsx +27 -0
  160. package/lib/UnderlineNav.jsx +90 -0
  161. package/lib/_TextInputWrapper.jsx +120 -0
  162. package/lib/_UnstyledTextInput.jsx +22 -0
  163. package/lib/behaviors/anchoredPosition.js +205 -234
  164. package/lib/behaviors/focusTrap.js +121 -157
  165. package/lib/behaviors/focusZone.js +434 -509
  166. package/lib/behaviors/scrollIntoViewingArea.js +18 -35
  167. package/lib/constants.js +39 -43
  168. package/lib/{unreleased.d.ts → drafts.d.ts} +2 -1
  169. package/lib/drafts.js +21 -0
  170. package/lib/hooks/index.js +16 -60
  171. package/lib/hooks/useAnchoredPosition.js +32 -40
  172. package/lib/hooks/useCombinedRefs.js +32 -36
  173. package/lib/hooks/useDetails.jsx +39 -0
  174. package/lib/hooks/useDialog.js +72 -96
  175. package/lib/hooks/useFocusTrap.js +43 -60
  176. package/lib/hooks/useFocusZone.js +54 -50
  177. package/lib/hooks/useOnEscapePress.js +25 -36
  178. package/lib/hooks/useOnOutsideClick.jsx +61 -0
  179. package/lib/hooks/useOpenAndCloseFocus.js +22 -34
  180. package/lib/hooks/useOverlay.jsx +15 -0
  181. package/lib/hooks/useProvidedRefOrCreate.js +10 -14
  182. package/lib/hooks/useProvidedStateOrCreate.js +13 -16
  183. package/lib/hooks/useRenderForcingRef.js +13 -17
  184. package/lib/hooks/useResizeObserver.js +15 -18
  185. package/lib/hooks/useSafeTimeout.js +22 -30
  186. package/lib/hooks/useScrollFlash.js +16 -23
  187. package/lib/index.d.ts +2 -0
  188. package/lib/index.js +163 -636
  189. package/lib/polyfills/eventListenerSignal.js +37 -45
  190. package/lib/sx.js +10 -22
  191. package/lib/theme-preval.js +64 -3023
  192. package/lib/theme.js +3 -12
  193. package/lib/utils/create-slots.jsx +65 -0
  194. package/lib/utils/deprecate.jsx +59 -0
  195. package/lib/utils/isNumeric.jsx +7 -0
  196. package/lib/utils/iterateFocusableElements.js +63 -85
  197. package/lib/utils/ssr.jsx +6 -0
  198. package/lib/utils/test-deprecations.jsx +20 -0
  199. package/{src/utils/test-helpers.tsx → lib/utils/test-helpers.jsx} +6 -5
  200. package/lib/utils/test-matchers.jsx +100 -0
  201. package/lib/utils/testing.jsx +206 -0
  202. package/lib/utils/theme.js +33 -47
  203. package/lib/utils/types/AriaRole.js +2 -1
  204. package/lib/utils/types/ComponentProps.js +2 -1
  205. package/lib/utils/types/Flatten.js +2 -1
  206. package/lib/utils/types/KeyPaths.js +2 -1
  207. package/lib/utils/types/MandateProps.js +16 -1
  208. package/lib/utils/types/Merge.js +2 -1
  209. package/lib/utils/types/index.js +16 -69
  210. package/lib/utils/uniqueId.js +5 -8
  211. package/lib/utils/use-force-update.js +8 -14
  212. package/lib/utils/useIsomorphicLayoutEffect.js +8 -11
  213. package/lib/utils/userAgent.js +8 -12
  214. package/lib-esm/ActionList2/Item.js +26 -17
  215. package/lib-esm/Autocomplete/Autocomplete.d.ts +28 -28
  216. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +28 -28
  217. package/lib-esm/Button/Button.d.ts +25 -25
  218. package/lib-esm/Button/ButtonClose.d.ts +45 -45
  219. package/lib-esm/Button/ButtonDanger.d.ts +25 -25
  220. package/lib-esm/Button/ButtonInvisible.d.ts +25 -25
  221. package/lib-esm/Button/ButtonOutline.d.ts +25 -25
  222. package/lib-esm/Button/ButtonPrimary.d.ts +25 -25
  223. package/lib-esm/CircleOcticon.d.ts +42 -42
  224. package/lib-esm/Dialog/Dialog.js +1 -0
  225. package/lib-esm/Dialog.d.ts +45 -45
  226. package/lib-esm/Dropdown.d.ts +176 -176
  227. package/lib-esm/DropdownMenu/DropdownButton.d.ts +46 -46
  228. package/lib-esm/FilterList.d.ts +42 -42
  229. package/lib-esm/NewButton/button-counter.d.ts +6 -0
  230. package/lib-esm/NewButton/button-counter.js +18 -0
  231. package/lib-esm/NewButton/button.d.ts +13 -0
  232. package/lib-esm/NewButton/button.js +298 -0
  233. package/lib-esm/NewButton/index.d.ts +14 -0
  234. package/lib-esm/NewButton/index.js +5 -0
  235. package/lib-esm/NewButton/types.d.ts +32 -0
  236. package/lib-esm/NewButton/types.js +1 -0
  237. package/lib-esm/Position.d.ts +4 -4
  238. package/lib-esm/SelectMenu/SelectMenu.d.ts +246 -246
  239. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  240. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  241. package/lib-esm/StateLabel.d.ts +1 -1
  242. package/lib-esm/StateLabel.js +7 -2
  243. package/lib-esm/TextInputWithTokens.d.ts +28 -28
  244. package/lib-esm/Timeline.d.ts +43 -43
  245. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  246. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  247. package/lib-esm/Token/Token.d.ts +1 -1
  248. package/lib-esm/{unreleased.d.ts → drafts.d.ts} +2 -1
  249. package/{src/unreleased.ts → lib-esm/drafts.js} +3 -3
  250. package/lib-esm/index.d.ts +2 -0
  251. package/lib-esm/index.js +1 -0
  252. package/package.json +4 -3
  253. package/.changeset/README.md +0 -8
  254. package/.changeset/config.json +0 -10
  255. package/.devcontainer/devcontainer.json +0 -8
  256. package/.eslintrc.json +0 -137
  257. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  258. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  259. package/.github/dependabot.yml +0 -18
  260. package/.github/pull_request_template.md +0 -18
  261. package/.github/workflows/check_for_changeset.yml +0 -25
  262. package/.github/workflows/ci.yml +0 -31
  263. package/.github/workflows/deploy_preview.yml +0 -47
  264. package/.github/workflows/deploy_production.yml +0 -70
  265. package/.github/workflows/release.yml +0 -35
  266. package/.github/workflows/release_canary.yml +0 -70
  267. package/.github/workflows/release_candidate.yml +0 -60
  268. package/.github/workflows/size.yml +0 -13
  269. package/.github/workflows/stale.yml +0 -26
  270. package/.gitignore +0 -10
  271. package/.npmrc +0 -4
  272. package/.nvmrc +0 -1
  273. package/.storybook/main.js +0 -9
  274. package/.storybook/preview.js +0 -117
  275. package/.vscode/launch.json +0 -21
  276. package/.vscode/settings.json +0 -13
  277. package/@types/@styled-system/index.d.ts +0 -0
  278. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  279. package/@types/@styled-system/props/index.d.ts +0 -1
  280. package/@types/jest-styled-components/index.d.ts +0 -1
  281. package/CODEOWNERS +0 -2
  282. package/babel-defines.js +0 -13
  283. package/babel.config.js +0 -39
  284. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  285. package/contributor-docs/CONTRIBUTING.md +0 -274
  286. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  287. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -108
  288. package/contributor-docs/adrs/adr-003-prop-norms.md +0 -72
  289. package/contributor-docs/behaviors.md +0 -132
  290. package/contributor-docs/component-contents-api-patterns.md +0 -316
  291. package/contributor-docs/principles.md +0 -39
  292. package/docs/.eslintrc +0 -0
  293. package/docs/.gitignore +0 -91
  294. package/docs/components/PropsList.js +0 -5
  295. package/docs/components/State.js +0 -9
  296. package/docs/components/constants.js +0 -34
  297. package/docs/components/index.js +0 -2
  298. package/docs/content/ActionList.mdx +0 -99
  299. package/docs/content/ActionList2.mdx +0 -354
  300. package/docs/content/ActionMenu.mdx +0 -80
  301. package/docs/content/AnchoredOverlay.mdx +0 -37
  302. package/docs/content/Autocomplete.mdx +0 -657
  303. package/docs/content/Avatar.mdx +0 -33
  304. package/docs/content/AvatarStack.mdx +0 -37
  305. package/docs/content/BorderBox.md +0 -46
  306. package/docs/content/Box.md +0 -74
  307. package/docs/content/BranchName.md +0 -18
  308. package/docs/content/Breadcrumbs.md +0 -52
  309. package/docs/content/Buttons.md +0 -56
  310. package/docs/content/CircleBadge.md +0 -45
  311. package/docs/content/CircleOcticon.md +0 -18
  312. package/docs/content/CounterLabel.md +0 -32
  313. package/docs/content/Details.md +0 -105
  314. package/docs/content/Dialog.md +0 -108
  315. package/docs/content/Dialog2.mdx +0 -179
  316. package/docs/content/Dropdown.md +0 -72
  317. package/docs/content/DropdownMenu.mdx +0 -49
  318. package/docs/content/FilterList.md +0 -44
  319. package/docs/content/FilteredSearch.md +0 -39
  320. package/docs/content/Flash.md +0 -44
  321. package/docs/content/Flex.md +0 -58
  322. package/docs/content/FormGroup.md +0 -46
  323. package/docs/content/Grid.md +0 -59
  324. package/docs/content/Header.md +0 -79
  325. package/docs/content/Heading.md +0 -22
  326. package/docs/content/Label.md +0 -42
  327. package/docs/content/LabelGroup.md +0 -31
  328. package/docs/content/Link.md +0 -37
  329. package/docs/content/Overlay.mdx +0 -94
  330. package/docs/content/Pagehead.md +0 -27
  331. package/docs/content/Pagination.md +0 -187
  332. package/docs/content/PointerBox.md +0 -81
  333. package/docs/content/Popover.md +0 -137
  334. package/docs/content/Portal.mdx +0 -78
  335. package/docs/content/Position.md +0 -100
  336. package/docs/content/ProgressBar.mdx +0 -29
  337. package/docs/content/SelectMenu.md +0 -435
  338. package/docs/content/SelectPanel.mdx +0 -67
  339. package/docs/content/SideNav.md +0 -179
  340. package/docs/content/Spinner.mdx +0 -32
  341. package/docs/content/StateLabel.md +0 -35
  342. package/docs/content/StyledOcticon.md +0 -36
  343. package/docs/content/SubNav.md +0 -102
  344. package/docs/content/TabNav.md +0 -50
  345. package/docs/content/Text.md +0 -31
  346. package/docs/content/TextInput.md +0 -34
  347. package/docs/content/TextInputTokens.mdx +0 -89
  348. package/docs/content/TextInputWithTokens.mdx +0 -211
  349. package/docs/content/Timeline.md +0 -138
  350. package/docs/content/Token.mdx +0 -381
  351. package/docs/content/Tooltip.md +0 -41
  352. package/docs/content/Truncate.md +0 -64
  353. package/docs/content/UnderlineNav.md +0 -53
  354. package/docs/content/anchoredPosition.mdx +0 -163
  355. package/docs/content/core-concepts.md +0 -70
  356. package/docs/content/focusTrap.mdx +0 -103
  357. package/docs/content/focusZone.mdx +0 -145
  358. package/docs/content/getting-started.md +0 -138
  359. package/docs/content/index.md +0 -33
  360. package/docs/content/linting.md +0 -35
  361. package/docs/content/overriding-styles.mdx +0 -82
  362. package/docs/content/philosophy.md +0 -23
  363. package/docs/content/primer-theme.md +0 -89
  364. package/docs/content/ssr.mdx +0 -43
  365. package/docs/content/system-props.mdx +0 -37
  366. package/docs/content/theme-reference.md +0 -16
  367. package/docs/content/theming.md +0 -272
  368. package/docs/content/useOnEscapePress.mdx +0 -56
  369. package/docs/content/useOnOutsideClick.mdx +0 -57
  370. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  371. package/docs/content/useOverlay.mdx +0 -62
  372. package/docs/content/useSafeTimeout.mdx +0 -32
  373. package/docs/gatsby-config.js +0 -30
  374. package/docs/gatsby-node.js +0 -101
  375. package/docs/package-lock.json +0 -20756
  376. package/docs/package.json +0 -36
  377. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -21
  378. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -41
  379. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -73
  380. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -133
  381. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  382. package/docs/src/props.js +0 -77
  383. package/jest.config.js +0 -13
  384. package/lib/__tests__/ActionList.test.d.ts +0 -1
  385. package/lib/__tests__/ActionList.test.js +0 -69
  386. package/lib/__tests__/ActionList.types.test.d.ts +0 -6
  387. package/lib/__tests__/ActionList.types.test.js +0 -69
  388. package/lib/__tests__/ActionList2.test.d.ts +0 -1
  389. package/lib/__tests__/ActionList2.test.js +0 -53
  390. package/lib/__tests__/ActionMenu.test.d.ts +0 -1
  391. package/lib/__tests__/ActionMenu.test.js +0 -151
  392. package/lib/__tests__/AnchoredOverlay.test.d.ts +0 -1
  393. package/lib/__tests__/AnchoredOverlay.test.js +0 -162
  394. package/lib/__tests__/Autocomplete.test.d.ts +0 -1
  395. package/lib/__tests__/Autocomplete.test.js +0 -528
  396. package/lib/__tests__/Avatar.test.d.ts +0 -1
  397. package/lib/__tests__/Avatar.test.js +0 -67
  398. package/lib/__tests__/AvatarStack.test.d.ts +0 -1
  399. package/lib/__tests__/AvatarStack.test.js +0 -71
  400. package/lib/__tests__/BorderBox.test.d.ts +0 -1
  401. package/lib/__tests__/BorderBox.test.js +0 -58
  402. package/lib/__tests__/Box.test.d.ts +0 -1
  403. package/lib/__tests__/Box.test.js +0 -78
  404. package/lib/__tests__/BranchName.test.d.ts +0 -1
  405. package/lib/__tests__/BranchName.test.js +0 -36
  406. package/lib/__tests__/Breadcrumbs.test.d.ts +0 -1
  407. package/lib/__tests__/Breadcrumbs.test.js +0 -37
  408. package/lib/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  409. package/lib/__tests__/BreadcrumbsItem.test.js +0 -49
  410. package/lib/__tests__/Button.test.d.ts +0 -1
  411. package/lib/__tests__/Button.test.js +0 -143
  412. package/lib/__tests__/Caret.test.d.ts +0 -1
  413. package/lib/__tests__/Caret.test.js +0 -52
  414. package/lib/__tests__/CircleBadge.test.d.ts +0 -1
  415. package/lib/__tests__/CircleBadge.test.js +0 -83
  416. package/lib/__tests__/CircleOcticon.test.d.ts +0 -1
  417. package/lib/__tests__/CircleOcticon.test.js +0 -71
  418. package/lib/__tests__/ConfirmationDialog.test.d.ts +0 -1
  419. package/lib/__tests__/ConfirmationDialog.test.js +0 -134
  420. package/lib/__tests__/CounterLabel.test.d.ts +0 -1
  421. package/lib/__tests__/CounterLabel.test.js +0 -58
  422. package/lib/__tests__/Details.test.d.ts +0 -1
  423. package/lib/__tests__/Details.test.js +0 -117
  424. package/lib/__tests__/Dialog.test.d.ts +0 -1
  425. package/lib/__tests__/Dialog.test.js +0 -184
  426. package/lib/__tests__/Dropdown.test.d.ts +0 -1
  427. package/lib/__tests__/Dropdown.test.js +0 -63
  428. package/lib/__tests__/DropdownMenu.test.d.ts +0 -1
  429. package/lib/__tests__/DropdownMenu.test.js +0 -150
  430. package/lib/__tests__/FilterList.test.d.ts +0 -1
  431. package/lib/__tests__/FilterList.test.js +0 -36
  432. package/lib/__tests__/FilterListItem.test.d.ts +0 -1
  433. package/lib/__tests__/FilterListItem.test.js +0 -46
  434. package/lib/__tests__/FilteredSearch.test.d.ts +0 -1
  435. package/lib/__tests__/FilteredSearch.test.js +0 -36
  436. package/lib/__tests__/Flash.test.d.ts +0 -1
  437. package/lib/__tests__/Flash.test.js +0 -62
  438. package/lib/__tests__/Flex.test.d.ts +0 -1
  439. package/lib/__tests__/Flex.test.js +0 -74
  440. package/lib/__tests__/FormGroup.test.d.ts +0 -1
  441. package/lib/__tests__/FormGroup.test.js +0 -54
  442. package/lib/__tests__/Grid.test.d.ts +0 -1
  443. package/lib/__tests__/Grid.test.js +0 -104
  444. package/lib/__tests__/Header.test.d.ts +0 -1
  445. package/lib/__tests__/Header.test.js +0 -58
  446. package/lib/__tests__/Heading.test.d.ts +0 -1
  447. package/lib/__tests__/Heading.test.js +0 -109
  448. package/lib/__tests__/KeyPaths.types.test.d.ts +0 -11
  449. package/lib/__tests__/KeyPaths.types.test.js +0 -10
  450. package/lib/__tests__/Label.test.d.ts +0 -1
  451. package/lib/__tests__/Label.test.js +0 -46
  452. package/lib/__tests__/LabelGroup.test.d.ts +0 -1
  453. package/lib/__tests__/LabelGroup.test.js +0 -38
  454. package/lib/__tests__/Link.test.d.ts +0 -1
  455. package/lib/__tests__/Link.test.js +0 -70
  456. package/lib/__tests__/Merge.types.test.d.ts +0 -30
  457. package/lib/__tests__/Merge.types.test.js +0 -27
  458. package/lib/__tests__/Overlay.test.d.ts +0 -1
  459. package/lib/__tests__/Overlay.test.js +0 -145
  460. package/lib/__tests__/Pagehead.test.d.ts +0 -1
  461. package/lib/__tests__/Pagehead.test.js +0 -37
  462. package/lib/__tests__/Pagination/Pagination.test.d.ts +0 -1
  463. package/lib/__tests__/Pagination/Pagination.test.js +0 -47
  464. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  465. package/lib/__tests__/Pagination/PaginationModel.test.js +0 -186
  466. package/lib/__tests__/PointerBox.test.d.ts +0 -1
  467. package/lib/__tests__/PointerBox.test.js +0 -46
  468. package/lib/__tests__/Popover.test.d.ts +0 -1
  469. package/lib/__tests__/Popover.test.js +0 -66
  470. package/lib/__tests__/Portal.test.d.ts +0 -1
  471. package/lib/__tests__/Portal.test.js +0 -124
  472. package/lib/__tests__/Position.test.d.ts +0 -1
  473. package/lib/__tests__/Position.test.js +0 -143
  474. package/lib/__tests__/ProgressBar.test.d.ts +0 -1
  475. package/lib/__tests__/ProgressBar.test.js +0 -68
  476. package/lib/__tests__/SelectMenu.test.d.ts +0 -1
  477. package/lib/__tests__/SelectMenu.test.js +0 -155
  478. package/lib/__tests__/SelectPanel.test.d.ts +0 -1
  479. package/lib/__tests__/SelectPanel.test.js +0 -80
  480. package/lib/__tests__/SideNav.test.d.ts +0 -1
  481. package/lib/__tests__/SideNav.test.js +0 -71
  482. package/lib/__tests__/Spinner.test.d.ts +0 -1
  483. package/lib/__tests__/Spinner.test.js +0 -53
  484. package/lib/__tests__/StateLabel.test.d.ts +0 -1
  485. package/lib/__tests__/StateLabel.test.js +0 -71
  486. package/lib/__tests__/StyledOcticon.test.d.ts +0 -1
  487. package/lib/__tests__/StyledOcticon.test.js +0 -40
  488. package/lib/__tests__/SubNav.test.d.ts +0 -1
  489. package/lib/__tests__/SubNav.test.js +0 -62
  490. package/lib/__tests__/SubNavLink.test.d.ts +0 -1
  491. package/lib/__tests__/SubNavLink.test.js +0 -49
  492. package/lib/__tests__/TabNav.test.d.ts +0 -1
  493. package/lib/__tests__/TabNav.test.js +0 -49
  494. package/lib/__tests__/Text.test.d.ts +0 -1
  495. package/lib/__tests__/Text.test.js +0 -105
  496. package/lib/__tests__/TextInput.test.d.ts +0 -1
  497. package/lib/__tests__/TextInput.test.js +0 -78
  498. package/lib/__tests__/TextInputWithTokens.test.d.ts +0 -1
  499. package/lib/__tests__/TextInputWithTokens.test.js +0 -572
  500. package/lib/__tests__/ThemeProvider.test.d.ts +0 -1
  501. package/lib/__tests__/ThemeProvider.test.js +0 -444
  502. package/lib/__tests__/Timeline.test.d.ts +0 -1
  503. package/lib/__tests__/Timeline.test.js +0 -75
  504. package/lib/__tests__/Token.test.d.ts +0 -1
  505. package/lib/__tests__/Token.test.js +0 -180
  506. package/lib/__tests__/Tooltip.test.d.ts +0 -1
  507. package/lib/__tests__/Tooltip.test.js +0 -69
  508. package/lib/__tests__/Truncate.test.d.ts +0 -1
  509. package/lib/__tests__/Truncate.test.js +0 -63
  510. package/lib/__tests__/UnderlineNav.test.d.ts +0 -1
  511. package/lib/__tests__/UnderlineNav.test.js +0 -72
  512. package/lib/__tests__/UnderlineNavLink.test.d.ts +0 -1
  513. package/lib/__tests__/UnderlineNavLink.test.js +0 -51
  514. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  515. package/lib/__tests__/behaviors/anchoredPosition.test.js +0 -390
  516. package/lib/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  517. package/lib/__tests__/behaviors/focusTrap.test.js +0 -234
  518. package/lib/__tests__/behaviors/focusZone.test.d.ts +0 -1
  519. package/lib/__tests__/behaviors/focusZone.test.js +0 -570
  520. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  521. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +0 -55
  522. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  523. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -226
  524. package/lib/__tests__/filterObject.test.d.ts +0 -1
  525. package/lib/__tests__/filterObject.test.js +0 -30
  526. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  527. package/lib/__tests__/hooks/useAnchoredPosition.test.js +0 -54
  528. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  529. package/lib/__tests__/hooks/useOnEscapePress.test.js +0 -32
  530. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  531. package/lib/__tests__/hooks/useOnOutsideClick.test.js +0 -87
  532. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  533. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -60
  534. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  535. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -45
  536. package/lib/__tests__/theme.test.d.ts +0 -1
  537. package/lib/__tests__/theme.test.js +0 -36
  538. package/lib/__tests__/themeGet.test.d.ts +0 -1
  539. package/lib/__tests__/themeGet.test.js +0 -25
  540. package/lib/__tests__/useSafeTimeout.test.d.ts +0 -1
  541. package/lib/__tests__/useSafeTimeout.test.js +0 -45
  542. package/lib/__tests__/utils/createSlots.test.d.ts +0 -1
  543. package/lib/__tests__/utils/createSlots.test.js +0 -75
  544. package/lib/stories/ActionList.stories.js +0 -454
  545. package/lib/stories/ActionList2.stories.js +0 -875
  546. package/lib/stories/ActionMenu.stories.js +0 -350
  547. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  548. package/lib/stories/Autocomplete.stories.js +0 -619
  549. package/lib/stories/AvatarStack.stories.js +0 -49
  550. package/lib/stories/Button.stories.js +0 -125
  551. package/lib/stories/ConfirmationDialog.stories.js +0 -111
  552. package/lib/stories/Dialog.stories.js +0 -265
  553. package/lib/stories/DropdownMenu.stories.js +0 -122
  554. package/lib/stories/IssueLabelToken.stories.js +0 -165
  555. package/lib/stories/Overlay.stories.js +0 -204
  556. package/lib/stories/Portal.stories.js +0 -104
  557. package/lib/stories/ProfileToken.stories.js +0 -162
  558. package/lib/stories/SelectPanel.stories.js +0 -399
  559. package/lib/stories/TextInput.stories.js +0 -144
  560. package/lib/stories/TextInputWithTokens.stories.js +0 -252
  561. package/lib/stories/ThemeProvider.stories.js +0 -102
  562. package/lib/stories/Token.stories.js +0 -176
  563. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  564. package/lib/stories/useFocusTrap.stories.js +0 -356
  565. package/lib/stories/useFocusZone.stories.js +0 -599
  566. package/lib/unreleased.js +0 -18
  567. package/lib-esm/__tests__/ActionList.test.d.ts +0 -1
  568. package/lib-esm/__tests__/ActionList.test.js +0 -57
  569. package/lib-esm/__tests__/ActionList.types.test.d.ts +0 -6
  570. package/lib-esm/__tests__/ActionList.types.test.js +0 -45
  571. package/lib-esm/__tests__/ActionList2.test.d.ts +0 -1
  572. package/lib-esm/__tests__/ActionList2.test.js +0 -41
  573. package/lib-esm/__tests__/ActionMenu.test.d.ts +0 -1
  574. package/lib-esm/__tests__/ActionMenu.test.js +0 -139
  575. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +0 -1
  576. package/lib-esm/__tests__/AnchoredOverlay.test.js +0 -136
  577. package/lib-esm/__tests__/Autocomplete.test.d.ts +0 -1
  578. package/lib-esm/__tests__/Autocomplete.test.js +0 -494
  579. package/lib-esm/__tests__/Avatar.test.d.ts +0 -1
  580. package/lib-esm/__tests__/Avatar.test.js +0 -56
  581. package/lib-esm/__tests__/AvatarStack.test.d.ts +0 -1
  582. package/lib-esm/__tests__/AvatarStack.test.js +0 -58
  583. package/lib-esm/__tests__/BorderBox.test.d.ts +0 -1
  584. package/lib-esm/__tests__/BorderBox.test.js +0 -47
  585. package/lib-esm/__tests__/Box.test.d.ts +0 -1
  586. package/lib-esm/__tests__/Box.test.js +0 -67
  587. package/lib-esm/__tests__/BranchName.test.d.ts +0 -1
  588. package/lib-esm/__tests__/BranchName.test.js +0 -26
  589. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +0 -1
  590. package/lib-esm/__tests__/Breadcrumbs.test.js +0 -27
  591. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  592. package/lib-esm/__tests__/BreadcrumbsItem.test.js +0 -39
  593. package/lib-esm/__tests__/Button.test.d.ts +0 -1
  594. package/lib-esm/__tests__/Button.test.js +0 -133
  595. package/lib-esm/__tests__/Caret.test.d.ts +0 -1
  596. package/lib-esm/__tests__/Caret.test.js +0 -42
  597. package/lib-esm/__tests__/CircleBadge.test.d.ts +0 -1
  598. package/lib-esm/__tests__/CircleBadge.test.js +0 -70
  599. package/lib-esm/__tests__/CircleOcticon.test.d.ts +0 -1
  600. package/lib-esm/__tests__/CircleOcticon.test.js +0 -59
  601. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +0 -1
  602. package/lib-esm/__tests__/ConfirmationDialog.test.js +0 -113
  603. package/lib-esm/__tests__/CounterLabel.test.d.ts +0 -1
  604. package/lib-esm/__tests__/CounterLabel.test.js +0 -47
  605. package/lib-esm/__tests__/Details.test.d.ts +0 -1
  606. package/lib-esm/__tests__/Details.test.js +0 -107
  607. package/lib-esm/__tests__/Dialog.test.d.ts +0 -1
  608. package/lib-esm/__tests__/Dialog.test.js +0 -171
  609. package/lib-esm/__tests__/Dropdown.test.d.ts +0 -1
  610. package/lib-esm/__tests__/Dropdown.test.js +0 -53
  611. package/lib-esm/__tests__/DropdownMenu.test.d.ts +0 -1
  612. package/lib-esm/__tests__/DropdownMenu.test.js +0 -137
  613. package/lib-esm/__tests__/FilterList.test.d.ts +0 -1
  614. package/lib-esm/__tests__/FilterList.test.js +0 -26
  615. package/lib-esm/__tests__/FilterListItem.test.d.ts +0 -1
  616. package/lib-esm/__tests__/FilterListItem.test.js +0 -36
  617. package/lib-esm/__tests__/FilteredSearch.test.d.ts +0 -1
  618. package/lib-esm/__tests__/FilteredSearch.test.js +0 -26
  619. package/lib-esm/__tests__/Flash.test.d.ts +0 -1
  620. package/lib-esm/__tests__/Flash.test.js +0 -51
  621. package/lib-esm/__tests__/Flex.test.d.ts +0 -1
  622. package/lib-esm/__tests__/Flex.test.js +0 -64
  623. package/lib-esm/__tests__/FormGroup.test.d.ts +0 -1
  624. package/lib-esm/__tests__/FormGroup.test.js +0 -44
  625. package/lib-esm/__tests__/Grid.test.d.ts +0 -1
  626. package/lib-esm/__tests__/Grid.test.js +0 -94
  627. package/lib-esm/__tests__/Header.test.d.ts +0 -1
  628. package/lib-esm/__tests__/Header.test.js +0 -48
  629. package/lib-esm/__tests__/Heading.test.d.ts +0 -1
  630. package/lib-esm/__tests__/Heading.test.js +0 -99
  631. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +0 -11
  632. package/lib-esm/__tests__/KeyPaths.types.test.js +0 -3
  633. package/lib-esm/__tests__/Label.test.d.ts +0 -1
  634. package/lib-esm/__tests__/Label.test.js +0 -36
  635. package/lib-esm/__tests__/LabelGroup.test.d.ts +0 -1
  636. package/lib-esm/__tests__/LabelGroup.test.js +0 -26
  637. package/lib-esm/__tests__/Link.test.d.ts +0 -1
  638. package/lib-esm/__tests__/Link.test.js +0 -60
  639. package/lib-esm/__tests__/Merge.types.test.d.ts +0 -30
  640. package/lib-esm/__tests__/Merge.types.test.js +0 -14
  641. package/lib-esm/__tests__/Overlay.test.d.ts +0 -1
  642. package/lib-esm/__tests__/Overlay.test.js +0 -123
  643. package/lib-esm/__tests__/Pagehead.test.d.ts +0 -1
  644. package/lib-esm/__tests__/Pagehead.test.js +0 -26
  645. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +0 -1
  646. package/lib-esm/__tests__/Pagination/Pagination.test.js +0 -35
  647. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  648. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +0 -182
  649. package/lib-esm/__tests__/PointerBox.test.d.ts +0 -1
  650. package/lib-esm/__tests__/PointerBox.test.js +0 -36
  651. package/lib-esm/__tests__/Popover.test.d.ts +0 -1
  652. package/lib-esm/__tests__/Popover.test.js +0 -53
  653. package/lib-esm/__tests__/Portal.test.d.ts +0 -1
  654. package/lib-esm/__tests__/Portal.test.js +0 -104
  655. package/lib-esm/__tests__/Position.test.d.ts +0 -1
  656. package/lib-esm/__tests__/Position.test.js +0 -133
  657. package/lib-esm/__tests__/ProgressBar.test.d.ts +0 -1
  658. package/lib-esm/__tests__/ProgressBar.test.js +0 -58
  659. package/lib-esm/__tests__/SelectMenu.test.d.ts +0 -1
  660. package/lib-esm/__tests__/SelectMenu.test.js +0 -145
  661. package/lib-esm/__tests__/SelectPanel.test.d.ts +0 -1
  662. package/lib-esm/__tests__/SelectPanel.test.js +0 -65
  663. package/lib-esm/__tests__/SideNav.test.d.ts +0 -1
  664. package/lib-esm/__tests__/SideNav.test.js +0 -60
  665. package/lib-esm/__tests__/Spinner.test.d.ts +0 -1
  666. package/lib-esm/__tests__/Spinner.test.js +0 -43
  667. package/lib-esm/__tests__/StateLabel.test.d.ts +0 -1
  668. package/lib-esm/__tests__/StateLabel.test.js +0 -61
  669. package/lib-esm/__tests__/StyledOcticon.test.d.ts +0 -1
  670. package/lib-esm/__tests__/StyledOcticon.test.js +0 -29
  671. package/lib-esm/__tests__/SubNav.test.d.ts +0 -1
  672. package/lib-esm/__tests__/SubNav.test.js +0 -50
  673. package/lib-esm/__tests__/SubNavLink.test.d.ts +0 -1
  674. package/lib-esm/__tests__/SubNavLink.test.js +0 -39
  675. package/lib-esm/__tests__/TabNav.test.d.ts +0 -1
  676. package/lib-esm/__tests__/TabNav.test.js +0 -39
  677. package/lib-esm/__tests__/Text.test.d.ts +0 -1
  678. package/lib-esm/__tests__/Text.test.js +0 -93
  679. package/lib-esm/__tests__/TextInput.test.d.ts +0 -1
  680. package/lib-esm/__tests__/TextInput.test.js +0 -68
  681. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +0 -1
  682. package/lib-esm/__tests__/TextInputWithTokens.test.js +0 -511
  683. package/lib-esm/__tests__/ThemeProvider.test.d.ts +0 -1
  684. package/lib-esm/__tests__/ThemeProvider.test.js +0 -408
  685. package/lib-esm/__tests__/Timeline.test.d.ts +0 -1
  686. package/lib-esm/__tests__/Timeline.test.js +0 -65
  687. package/lib-esm/__tests__/Token.test.d.ts +0 -1
  688. package/lib-esm/__tests__/Token.test.js +0 -166
  689. package/lib-esm/__tests__/Tooltip.test.d.ts +0 -1
  690. package/lib-esm/__tests__/Tooltip.test.js +0 -59
  691. package/lib-esm/__tests__/Truncate.test.d.ts +0 -1
  692. package/lib-esm/__tests__/Truncate.test.js +0 -53
  693. package/lib-esm/__tests__/UnderlineNav.test.d.ts +0 -1
  694. package/lib-esm/__tests__/UnderlineNav.test.js +0 -60
  695. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +0 -1
  696. package/lib-esm/__tests__/UnderlineNavLink.test.js +0 -41
  697. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  698. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +0 -388
  699. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  700. package/lib-esm/__tests__/behaviors/focusTrap.test.js +0 -227
  701. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +0 -1
  702. package/lib-esm/__tests__/behaviors/focusZone.test.js +0 -487
  703. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  704. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +0 -48
  705. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  706. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -224
  707. package/lib-esm/__tests__/filterObject.test.d.ts +0 -1
  708. package/lib-esm/__tests__/filterObject.test.js +0 -27
  709. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  710. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +0 -46
  711. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  712. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +0 -23
  713. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  714. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +0 -68
  715. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  716. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -52
  717. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  718. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -36
  719. package/lib-esm/__tests__/theme.test.d.ts +0 -1
  720. package/lib-esm/__tests__/theme.test.js +0 -33
  721. package/lib-esm/__tests__/themeGet.test.d.ts +0 -1
  722. package/lib-esm/__tests__/themeGet.test.js +0 -22
  723. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +0 -1
  724. package/lib-esm/__tests__/useSafeTimeout.test.js +0 -39
  725. package/lib-esm/__tests__/utils/createSlots.test.d.ts +0 -1
  726. package/lib-esm/__tests__/utils/createSlots.test.js +0 -67
  727. package/lib-esm/stories/ActionList.stories.js +0 -395
  728. package/lib-esm/stories/ActionList2.stories.js +0 -764
  729. package/lib-esm/stories/ActionMenu.stories.js +0 -305
  730. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  731. package/lib-esm/stories/Autocomplete.stories.js +0 -560
  732. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  733. package/lib-esm/stories/Button.stories.js +0 -86
  734. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -86
  735. package/lib-esm/stories/Dialog.stories.js +0 -240
  736. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  737. package/lib-esm/stories/IssueLabelToken.stories.js +0 -139
  738. package/lib-esm/stories/Overlay.stories.js +0 -173
  739. package/lib-esm/stories/Portal.stories.js +0 -68
  740. package/lib-esm/stories/ProfileToken.stories.js +0 -136
  741. package/lib-esm/stories/SelectPanel.stories.js +0 -334
  742. package/lib-esm/stories/TextInput.stories.js +0 -117
  743. package/lib-esm/stories/TextInputWithTokens.stories.js +0 -210
  744. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  745. package/lib-esm/stories/Token.stories.js +0 -146
  746. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  747. package/lib-esm/stories/useFocusTrap.stories.js +0 -309
  748. package/lib-esm/stories/useFocusZone.stories.js +0 -554
  749. package/lib-esm/unreleased.js +0 -8
  750. package/migrating.md +0 -250
  751. package/now.json +0 -17
  752. package/package-lock.json +0 -66509
  753. package/rollup.config.js +0 -36
  754. package/script/build +0 -21
  755. package/script/build-storybook +0 -10
  756. package/script/setup +0 -12
  757. package/src/ActionList/Divider.tsx +0 -25
  758. package/src/ActionList/Group.tsx +0 -45
  759. package/src/ActionList/Header.tsx +0 -74
  760. package/src/ActionList/Item.tsx +0 -496
  761. package/src/ActionList/List.tsx +0 -258
  762. package/src/ActionList/index.ts +0 -21
  763. package/src/ActionList2/Description.tsx +0 -49
  764. package/src/ActionList2/Divider.tsx +0 -24
  765. package/src/ActionList2/Group.tsx +0 -34
  766. package/src/ActionList2/Header.tsx +0 -58
  767. package/src/ActionList2/Item.tsx +0 -228
  768. package/src/ActionList2/LinkItem.tsx +0 -49
  769. package/src/ActionList2/List.tsx +0 -55
  770. package/src/ActionList2/Selection.tsx +0 -40
  771. package/src/ActionList2/Visuals.tsx +0 -76
  772. package/src/ActionList2/index.ts +0 -39
  773. package/src/ActionMenu.tsx +0 -106
  774. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -191
  775. package/src/AnchoredOverlay/index.ts +0 -2
  776. package/src/Autocomplete/Autocomplete.tsx +0 -103
  777. package/src/Autocomplete/AutocompleteContext.tsx +0 -19
  778. package/src/Autocomplete/AutocompleteInput.tsx +0 -179
  779. package/src/Autocomplete/AutocompleteMenu.tsx +0 -341
  780. package/src/Autocomplete/AutocompleteOverlay.tsx +0 -68
  781. package/src/Autocomplete/index.ts +0 -2
  782. package/src/Avatar.tsx +0 -46
  783. package/src/AvatarPair.tsx +0 -35
  784. package/src/BaseStyles.tsx +0 -53
  785. package/src/BorderBox.tsx +0 -18
  786. package/src/Box.tsx +0 -54
  787. package/src/BranchName.tsx +0 -19
  788. package/src/Breadcrumbs.tsx +0 -101
  789. package/src/Button/Button.tsx +0 -40
  790. package/src/Button/ButtonBase.tsx +0 -43
  791. package/src/Button/ButtonClose.tsx +0 -40
  792. package/src/Button/ButtonDanger.tsx +0 -43
  793. package/src/Button/ButtonGroup.tsx +0 -55
  794. package/src/Button/ButtonInvisible.tsx +0 -32
  795. package/src/Button/ButtonOutline.tsx +0 -43
  796. package/src/Button/ButtonPrimary.tsx +0 -41
  797. package/src/Button/ButtonTableList.tsx +0 -58
  798. package/src/Button/index.ts +0 -16
  799. package/src/Caret.tsx +0 -133
  800. package/src/CircleBadge.tsx +0 -55
  801. package/src/CircleOcticon.tsx +0 -37
  802. package/src/CounterLabel.tsx +0 -52
  803. package/src/Details.tsx +0 -23
  804. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  805. package/src/Dialog/Dialog.tsx +0 -432
  806. package/src/Dialog.tsx +0 -149
  807. package/src/Dropdown.tsx +0 -158
  808. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  809. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  810. package/src/DropdownMenu/index.ts +0 -4
  811. package/src/DropdownStyles.ts +0 -128
  812. package/src/FilterList.tsx +0 -81
  813. package/src/FilteredActionList/FilteredActionList.tsx +0 -142
  814. package/src/FilteredActionList/index.ts +0 -2
  815. package/src/FilteredSearch.tsx +0 -28
  816. package/src/Flash.tsx +0 -77
  817. package/src/Flex.tsx +0 -15
  818. package/src/FormGroup.tsx +0 -27
  819. package/src/Grid.tsx +0 -15
  820. package/src/Header.tsx +0 -84
  821. package/src/Heading.tsx +0 -21
  822. package/src/Label.tsx +0 -75
  823. package/src/LabelGroup.tsx +0 -18
  824. package/src/Link.tsx +0 -46
  825. package/src/Overlay.tsx +0 -198
  826. package/src/Pagehead.tsx +0 -17
  827. package/src/Pagination/Pagination.tsx +0 -214
  828. package/src/Pagination/index.ts +0 -4
  829. package/src/Pagination/model.tsx +0 -187
  830. package/src/PointerBox.tsx +0 -31
  831. package/src/Portal/Portal.tsx +0 -97
  832. package/src/Portal/index.ts +0 -5
  833. package/src/Position.tsx +0 -63
  834. package/src/ProgressBar.tsx +0 -52
  835. package/src/SelectMenu/SelectMenu.tsx +0 -125
  836. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  837. package/src/SelectMenu/SelectMenuDivider.tsx +0 -25
  838. package/src/SelectMenu/SelectMenuFilter.tsx +0 -51
  839. package/src/SelectMenu/SelectMenuFooter.tsx +0 -28
  840. package/src/SelectMenu/SelectMenuHeader.tsx +0 -50
  841. package/src/SelectMenu/SelectMenuItem.tsx +0 -137
  842. package/src/SelectMenu/SelectMenuList.tsx +0 -42
  843. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -24
  844. package/src/SelectMenu/SelectMenuModal.tsx +0 -121
  845. package/src/SelectMenu/SelectMenuTab.tsx +0 -88
  846. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -30
  847. package/src/SelectMenu/SelectMenuTabs.tsx +0 -44
  848. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  849. package/src/SelectMenu/index.ts +0 -15
  850. package/src/SelectPanel/SelectPanel.tsx +0 -173
  851. package/src/SelectPanel/index.ts +0 -2
  852. package/src/SideNav.tsx +0 -193
  853. package/src/Spinner.tsx +0 -59
  854. package/src/StateLabel.tsx +0 -102
  855. package/src/StyledOcticon.tsx +0 -24
  856. package/src/SubNav.tsx +0 -129
  857. package/src/TabNav.tsx +0 -77
  858. package/src/Text.tsx +0 -13
  859. package/src/TextInput.tsx +0 -68
  860. package/src/TextInputWithTokens.tsx +0 -351
  861. package/src/ThemeProvider.tsx +0 -176
  862. package/src/Timeline.tsx +0 -141
  863. package/src/Token/AvatarToken.tsx +0 -54
  864. package/src/Token/IssueLabelToken.tsx +0 -150
  865. package/src/Token/Token.tsx +0 -126
  866. package/src/Token/TokenBase.tsx +0 -129
  867. package/src/Token/_RemoveTokenButton.tsx +0 -111
  868. package/src/Token/index.ts +0 -3
  869. package/src/Truncate.tsx +0 -36
  870. package/src/UnderlineNav.tsx +0 -110
  871. package/src/_TextInputWrapper.tsx +0 -113
  872. package/src/_UnstyledTextInput.tsx +0 -19
  873. package/src/__tests__/.eslintrc.json +0 -11
  874. package/src/__tests__/ActionList.test.tsx +0 -53
  875. package/src/__tests__/ActionList.types.test.tsx +0 -51
  876. package/src/__tests__/ActionList2.test.tsx +0 -47
  877. package/src/__tests__/ActionMenu.test.tsx +0 -136
  878. package/src/__tests__/AnchoredOverlay.test.tsx +0 -150
  879. package/src/__tests__/Autocomplete.test.tsx +0 -444
  880. package/src/__tests__/Avatar.test.tsx +0 -44
  881. package/src/__tests__/AvatarStack.test.tsx +0 -48
  882. package/src/__tests__/BorderBox.test.tsx +0 -43
  883. package/src/__tests__/Box.test.tsx +0 -42
  884. package/src/__tests__/BranchName.test.tsx +0 -26
  885. package/src/__tests__/Breadcrumbs.test.tsx +0 -27
  886. package/src/__tests__/BreadcrumbsItem.test.tsx +0 -31
  887. package/src/__tests__/Button.test.tsx +0 -128
  888. package/src/__tests__/Caret.test.tsx +0 -36
  889. package/src/__tests__/CircleBadge.test.tsx +0 -66
  890. package/src/__tests__/CircleOcticon.test.tsx +0 -50
  891. package/src/__tests__/ConfirmationDialog.test.tsx +0 -120
  892. package/src/__tests__/CounterLabel.test.tsx +0 -50
  893. package/src/__tests__/Details.test.tsx +0 -115
  894. package/src/__tests__/Dialog.test.tsx +0 -155
  895. package/src/__tests__/Dropdown.test.tsx +0 -53
  896. package/src/__tests__/DropdownMenu.test.tsx +0 -136
  897. package/src/__tests__/FilterList.test.tsx +0 -26
  898. package/src/__tests__/FilterListItem.test.tsx +0 -31
  899. package/src/__tests__/FilteredSearch.test.tsx +0 -26
  900. package/src/__tests__/Flash.test.tsx +0 -45
  901. package/src/__tests__/Flex.test.tsx +0 -58
  902. package/src/__tests__/FormGroup.test.tsx +0 -38
  903. package/src/__tests__/Grid.test.tsx +0 -82
  904. package/src/__tests__/Header.test.tsx +0 -49
  905. package/src/__tests__/Heading.test.tsx +0 -91
  906. package/src/__tests__/KeyPaths.types.test.ts +0 -14
  907. package/src/__tests__/Label.test.tsx +0 -34
  908. package/src/__tests__/LabelGroup.test.tsx +0 -30
  909. package/src/__tests__/Link.test.tsx +0 -47
  910. package/src/__tests__/Merge.types.test.ts +0 -39
  911. package/src/__tests__/Overlay.test.tsx +0 -103
  912. package/src/__tests__/Pagehead.test.tsx +0 -23
  913. package/src/__tests__/Pagination/Pagination.test.tsx +0 -30
  914. package/src/__tests__/Pagination/PaginationModel.test.tsx +0 -133
  915. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -184
  916. package/src/__tests__/PointerBox.test.tsx +0 -34
  917. package/src/__tests__/Popover.test.tsx +0 -68
  918. package/src/__tests__/Portal.test.tsx +0 -103
  919. package/src/__tests__/Position.test.tsx +0 -117
  920. package/src/__tests__/ProgressBar.test.tsx +0 -40
  921. package/src/__tests__/SelectMenu.test.tsx +0 -142
  922. package/src/__tests__/SelectPanel.test.tsx +0 -63
  923. package/src/__tests__/SideNav.test.tsx +0 -62
  924. package/src/__tests__/Spinner.test.tsx +0 -42
  925. package/src/__tests__/StateLabel.test.tsx +0 -48
  926. package/src/__tests__/StyledOcticon.test.tsx +0 -26
  927. package/src/__tests__/SubNav.test.tsx +0 -50
  928. package/src/__tests__/SubNavLink.test.tsx +0 -31
  929. package/src/__tests__/TabNav.test.tsx +0 -32
  930. package/src/__tests__/Text.test.tsx +0 -78
  931. package/src/__tests__/TextInput.test.tsx +0 -49
  932. package/src/__tests__/TextInputWithTokens.test.tsx +0 -422
  933. package/src/__tests__/ThemeProvider.test.tsx +0 -441
  934. package/src/__tests__/Timeline.test.tsx +0 -58
  935. package/src/__tests__/Token.test.tsx +0 -118
  936. package/src/__tests__/Tooltip.test.tsx +0 -52
  937. package/src/__tests__/Truncate.test.tsx +0 -43
  938. package/src/__tests__/UnderlineNav.test.tsx +0 -58
  939. package/src/__tests__/UnderlineNavLink.test.tsx +0 -31
  940. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +0 -223
  941. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +0 -14
  942. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +0 -80
  943. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +0 -232
  944. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +0 -3421
  945. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +0 -19
  946. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +0 -377
  947. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +0 -14
  948. package/src/__tests__/__snapshots__/Box.test.tsx.snap +0 -201
  949. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +0 -17
  950. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +0 -29
  951. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +0 -79
  952. package/src/__tests__/__snapshots__/Button.test.tsx.snap +0 -840
  953. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +0 -373
  954. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +0 -141
  955. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +0 -64
  956. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +0 -89
  957. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +0 -22
  958. package/src/__tests__/__snapshots__/Details.test.tsx.snap +0 -15
  959. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +0 -200
  960. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -249
  961. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +0 -106
  962. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +0 -13
  963. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +0 -80
  964. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +0 -32
  965. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +0 -32
  966. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +0 -130
  967. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +0 -25
  968. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +0 -178
  969. package/src/__tests__/__snapshots__/Header.test.tsx.snap +0 -79
  970. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +0 -13
  971. package/src/__tests__/__snapshots__/Label.test.tsx.snap +0 -74
  972. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +0 -15
  973. package/src/__tests__/__snapshots__/Link.test.tsx.snap +0 -213
  974. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +0 -15
  975. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +0 -174
  976. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +0 -4687
  977. package/src/__tests__/__snapshots__/Position.test.tsx.snap +0 -44
  978. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +0 -53
  979. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +0 -469
  980. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +0 -123
  981. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +0 -143
  982. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +0 -33
  983. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -388
  984. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +0 -25
  985. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +0 -44
  986. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +0 -199
  987. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +0 -58
  988. package/src/__tests__/__snapshots__/Text.test.tsx.snap +0 -7
  989. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +0 -446
  990. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +0 -5979
  991. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +0 -15
  992. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +0 -159
  993. package/src/__tests__/__snapshots__/Token.test.tsx.snap +0 -3794
  994. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -227
  995. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +0 -17
  996. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +0 -59
  997. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +0 -130
  998. package/src/__tests__/behaviors/anchoredPosition.test.ts +0 -295
  999. package/src/__tests__/behaviors/focusTrap.test.tsx +0 -236
  1000. package/src/__tests__/behaviors/focusZone.test.tsx +0 -549
  1001. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +0 -61
  1002. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +0 -195
  1003. package/src/__tests__/filterObject.test.ts +0 -54
  1004. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +0 -31
  1005. package/src/__tests__/hooks/useOnEscapePress.test.tsx +0 -16
  1006. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +0 -48
  1007. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +0 -48
  1008. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +0 -39
  1009. package/src/__tests__/theme.test.ts +0 -41
  1010. package/src/__tests__/themeGet.test.ts +0 -15
  1011. package/src/__tests__/useSafeTimeout.test.tsx +0 -36
  1012. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +0 -55
  1013. package/src/__tests__/utils/createSlots.test.tsx +0 -74
  1014. package/src/behaviors/anchoredPosition.ts +0 -442
  1015. package/src/behaviors/focusTrap.ts +0 -184
  1016. package/src/behaviors/focusZone.ts +0 -713
  1017. package/src/behaviors/scrollIntoViewingArea.ts +0 -27
  1018. package/src/constants.ts +0 -62
  1019. package/src/hooks/index.ts +0 -11
  1020. package/src/hooks/useAnchoredPosition.ts +0 -54
  1021. package/src/hooks/useCombinedRefs.ts +0 -40
  1022. package/src/hooks/useDetails.tsx +0 -54
  1023. package/src/hooks/useDialog.ts +0 -121
  1024. package/src/hooks/useFocusTrap.ts +0 -80
  1025. package/src/hooks/useFocusZone.ts +0 -64
  1026. package/src/hooks/useOnEscapePress.ts +0 -63
  1027. package/src/hooks/useOnOutsideClick.tsx +0 -82
  1028. package/src/hooks/useOpenAndCloseFocus.ts +0 -32
  1029. package/src/hooks/useOverlay.tsx +0 -34
  1030. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  1031. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  1032. package/src/hooks/useRenderForcingRef.ts +0 -22
  1033. package/src/hooks/useResizeObserver.ts +0 -11
  1034. package/src/hooks/useSafeTimeout.ts +0 -38
  1035. package/src/hooks/useScrollFlash.ts +0 -21
  1036. package/src/index.ts +0 -170
  1037. package/src/polyfills/eventListenerSignal.ts +0 -66
  1038. package/src/stories/ActionList.stories.tsx +0 -436
  1039. package/src/stories/ActionList2.stories.tsx +0 -1279
  1040. package/src/stories/ActionMenu.stories.tsx +0 -334
  1041. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  1042. package/src/stories/Autocomplete.stories.tsx +0 -655
  1043. package/src/stories/AvatarStack.stories.tsx +0 -37
  1044. package/src/stories/Button.stories.tsx +0 -92
  1045. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  1046. package/src/stories/Dialog.stories.tsx +0 -240
  1047. package/src/stories/DropdownMenu.stories.tsx +0 -84
  1048. package/src/stories/IssueLabelToken.stories.tsx +0 -138
  1049. package/src/stories/Overlay.stories.tsx +0 -213
  1050. package/src/stories/Portal.stories.tsx +0 -109
  1051. package/src/stories/ProfileToken.stories.tsx +0 -129
  1052. package/src/stories/SelectPanel.stories.tsx +0 -353
  1053. package/src/stories/TextInput.stories.tsx +0 -113
  1054. package/src/stories/TextInputWithTokens.stories.tsx +0 -155
  1055. package/src/stories/ThemeProvider.stories.tsx +0 -104
  1056. package/src/stories/Token.stories.tsx +0 -137
  1057. package/src/stories/useAnchoredPosition.stories.tsx +0 -332
  1058. package/src/stories/useFocusTrap.stories.tsx +0 -400
  1059. package/src/stories/useFocusZone.stories.tsx +0 -663
  1060. package/src/sx.ts +0 -24
  1061. package/src/theme-preval.js +0 -80
  1062. package/src/theme.ts +0 -89
  1063. package/src/utils/create-slots.tsx +0 -96
  1064. package/src/utils/deprecate.tsx +0 -73
  1065. package/src/utils/isNumeric.tsx +0 -4
  1066. package/src/utils/iterateFocusableElements.ts +0 -121
  1067. package/src/utils/ssr.tsx +0 -1
  1068. package/src/utils/test-deprecations.tsx +0 -19
  1069. package/src/utils/test-matchers.tsx +0 -109
  1070. package/src/utils/testing.tsx +0 -242
  1071. package/src/utils/theme.js +0 -64
  1072. package/src/utils/types/AriaRole.ts +0 -71
  1073. package/src/utils/types/ComponentProps.ts +0 -13
  1074. package/src/utils/types/Flatten.ts +0 -4
  1075. package/src/utils/types/KeyPaths.ts +0 -10
  1076. package/src/utils/types/MandateProps.ts +0 -19
  1077. package/src/utils/types/Merge.ts +0 -20
  1078. package/src/utils/types/index.ts +0 -5
  1079. package/src/utils/uniqueId.ts +0 -6
  1080. package/src/utils/use-force-update.ts +0 -7
  1081. package/src/utils/useIsomorphicLayoutEffect.ts +0 -10
  1082. package/src/utils/userAgent.ts +0 -7
  1083. package/stats.html +0 -3279
  1084. package/tsconfig.build.json +0 -7
  1085. package/tsconfig.json +0 -20
@@ -1,27 +0,0 @@
1
- export const scrollIntoViewingArea = (
2
- child: HTMLElement,
3
- viewingArea: HTMLElement,
4
- direction: 'horizontal' | 'vertical' = 'vertical',
5
- startMargin = 8,
6
- endMargin = 0,
7
- behavior: ScrollBehavior = 'smooth'
8
- ) => {
9
- const startSide = direction === 'vertical' ? 'top' : 'left'
10
- const endSide = direction === 'vertical' ? 'bottom' : 'right'
11
- const scrollSide = direction === 'vertical' ? 'scrollTop' : 'scrollLeft'
12
- const {[startSide]: childStart, [endSide]: childEnd} = child.getBoundingClientRect()
13
- const {[startSide]: viewingAreaStart, [endSide]: viewingAreaEnd} = viewingArea.getBoundingClientRect()
14
-
15
- const isChildStartAboveViewingArea = childStart < viewingAreaStart + endMargin
16
- const isChildBottomBelowViewingArea = childEnd > viewingAreaEnd - startMargin
17
-
18
- if (isChildStartAboveViewingArea) {
19
- const scrollHeightToChildStart = childStart - viewingAreaStart + viewingArea[scrollSide]
20
- viewingArea.scrollTo({behavior, [startSide]: scrollHeightToChildStart - endMargin})
21
- } else if (isChildBottomBelowViewingArea) {
22
- const scrollHeightToChildBottom = childEnd - viewingAreaEnd + viewingArea[scrollSide]
23
- viewingArea.scrollTo({behavior, [startSide]: scrollHeightToChildBottom + startMargin})
24
- }
25
-
26
- // either completely in view or outside viewing area on both ends, don't scroll
27
- }
package/src/constants.ts DELETED
@@ -1,62 +0,0 @@
1
- import {themeGet} from '@styled-system/theme-get'
2
- // eslint-disable-next-line import/no-namespace
3
- import * as styledSystem from 'styled-system'
4
- import theme from './theme'
5
-
6
- const {get: getKey, compose, system} = styledSystem
7
-
8
- export const get = (key: string) => themeGet(key, getKey(theme, key))
9
-
10
- // Common props
11
-
12
- export const COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display)
13
-
14
- export interface SystemCommonProps
15
- extends styledSystem.ColorProps,
16
- styledSystem.SpaceProps,
17
- styledSystem.DisplayProps {}
18
-
19
- // Typography props
20
-
21
- const whiteSpace = system({
22
- whiteSpace: {
23
- property: 'whiteSpace'
24
- // cssProperty: 'whiteSpace',
25
- }
26
- })
27
-
28
- export const TYPOGRAPHY = compose(styledSystem.typography, whiteSpace)
29
-
30
- export interface SystemTypographyProps extends styledSystem.TypographyProps {
31
- whiteSpace?: 'normal' | 'nowrap' | 'pre' | 'pre-wrap' | 'pre-line'
32
- }
33
-
34
- // Border props
35
-
36
- export const BORDER = compose(styledSystem.border, styledSystem.shadow)
37
-
38
- export interface SystemBorderProps extends styledSystem.BorderProps, styledSystem.ShadowProps {}
39
-
40
- // Layout props
41
-
42
- export const LAYOUT = styledSystem.layout
43
-
44
- export type SystemLayoutProps = styledSystem.LayoutProps
45
-
46
- // Position props
47
-
48
- export const POSITION = styledSystem.position
49
-
50
- export type SystemPositionProps = styledSystem.PositionProps
51
-
52
- // Flex props
53
-
54
- export const FLEX = styledSystem.flexbox
55
-
56
- export type SystemFlexProps = styledSystem.FlexboxProps
57
-
58
- // Grid props
59
-
60
- export const GRID = styledSystem.grid
61
-
62
- export type SystemGridProps = styledSystem.GridProps
@@ -1,11 +0,0 @@
1
- export {useOnOutsideClick} from './useOnOutsideClick'
2
- export type {UseOnOutsideClickSettings, TouchOrMouseEvent} from './useOnOutsideClick'
3
- export {useProvidedRefOrCreate} from './useProvidedRefOrCreate'
4
- export {useOnEscapePress} from './useOnEscapePress'
5
- export {useOpenAndCloseFocus} from './useOpenAndCloseFocus'
6
- export type {UseOpenAndCloseFocusSettings} from './useOpenAndCloseFocus'
7
- export type {AnchoredPositionHookSettings} from './useAnchoredPosition'
8
- export {useAnchoredPosition} from './useAnchoredPosition'
9
- export {useOverlay} from './useOverlay'
10
- export type {UseOverlaySettings} from './useOverlay'
11
- export {useRenderForcingRef} from './useRenderForcingRef'
@@ -1,54 +0,0 @@
1
- import React from 'react'
2
- import {PositionSettings, getAnchoredPosition, AnchorPosition} from '../behaviors/anchoredPosition'
3
- import {useProvidedRefOrCreate} from './useProvidedRefOrCreate'
4
- import {useResizeObserver} from './useResizeObserver'
5
- import useLayoutEffect from '../utils/useIsomorphicLayoutEffect'
6
-
7
- export interface AnchoredPositionHookSettings extends Partial<PositionSettings> {
8
- floatingElementRef?: React.RefObject<Element>
9
- anchorElementRef?: React.RefObject<Element>
10
- }
11
-
12
- /**
13
- * Calculates the top and left values for an absolutely-positioned floating element
14
- * to be anchored to some anchor element. Returns refs for the floating element
15
- * and the anchor element, along with the position.
16
- * @param settings Settings for calculating the anchored position.
17
- * @param dependencies Dependencies to determine when to re-calculate the position.
18
- * @returns An object of {top: number, left: number} to absolutely-position the
19
- * floating element.
20
- */
21
- export function useAnchoredPosition(
22
- settings?: AnchoredPositionHookSettings,
23
- dependencies: React.DependencyList = []
24
- ): {
25
- floatingElementRef: React.RefObject<Element>
26
- anchorElementRef: React.RefObject<Element>
27
- position: AnchorPosition | undefined
28
- } {
29
- const floatingElementRef = useProvidedRefOrCreate(settings?.floatingElementRef)
30
- const anchorElementRef = useProvidedRefOrCreate(settings?.anchorElementRef)
31
- const [position, setPosition] = React.useState<AnchorPosition | undefined>(undefined)
32
-
33
- const updatePosition = React.useCallback(
34
- () => {
35
- if (floatingElementRef.current instanceof Element && anchorElementRef.current instanceof Element) {
36
- setPosition(getAnchoredPosition(floatingElementRef.current, anchorElementRef.current, settings))
37
- } else {
38
- setPosition(undefined)
39
- }
40
- },
41
- // eslint-disable-next-line react-hooks/exhaustive-deps
42
- [floatingElementRef, anchorElementRef, ...dependencies]
43
- )
44
-
45
- useLayoutEffect(updatePosition, [updatePosition])
46
-
47
- useResizeObserver(updatePosition)
48
-
49
- return {
50
- floatingElementRef,
51
- anchorElementRef,
52
- position
53
- }
54
- }
@@ -1,40 +0,0 @@
1
- import {ForwardedRef, useRef} from 'react'
2
- import useLayoutEffect from '../utils/useIsomorphicLayoutEffect'
3
-
4
- /**
5
- * Creates a ref by combining multiple constituent refs. The ref returned by this hook
6
- * should be passed as the ref for the element that needs to be shared. This is
7
- * particularly useful when you are using `React.forwardRef` in your component but you
8
- * also want to be able to access the local element. This is a small anti-pattern,
9
- * though, as it breaks encapsulation.
10
- * @param refs
11
- */
12
- export function useCombinedRefs<T>(...refs: (ForwardedRef<T> | null | undefined)[]) {
13
- const combinedRef = useRef<T | null>(null)
14
-
15
- useLayoutEffect(() => {
16
- function setRefs(current: T | null = null) {
17
- for (const ref of refs) {
18
- if (!ref) {
19
- return
20
- }
21
- if (typeof ref === 'function') {
22
- ref(current)
23
- } else {
24
- ref.current = current
25
- }
26
- }
27
- }
28
-
29
- setRefs(combinedRef.current)
30
-
31
- return () => {
32
- // ensure the refs get updated on unmount
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
34
- setRefs(combinedRef.current)
35
- }
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
37
- }, [...refs, combinedRef.current])
38
-
39
- return combinedRef
40
- }
@@ -1,54 +0,0 @@
1
- import {useCallback, useEffect, useState, useRef} from 'react'
2
-
3
- type UseDetailsParameters = {
4
- ref?: React.RefObject<HTMLElement>
5
- closeOnOutsideClick?: boolean
6
- defaultOpen?: boolean
7
- onClickOutside?: (event: MouseEvent) => void
8
- }
9
-
10
- function useDetails({ref, closeOnOutsideClick, defaultOpen, onClickOutside}: UseDetailsParameters) {
11
- const [open, setOpen] = useState(defaultOpen)
12
- const backupRef = useRef(null)
13
- const customRef = ref ?? backupRef
14
-
15
- const onClickOutsideInternal = useCallback(
16
- (event: MouseEvent) => {
17
- const {current} = customRef
18
- const eventTarget = event.target as HTMLElement
19
- const closest = eventTarget.closest('details') as HTMLDetailsElement
20
- if (closest !== current) {
21
- onClickOutside && onClickOutside(event)
22
- if (!event.defaultPrevented) {
23
- setOpen(false)
24
- }
25
- }
26
- },
27
- [customRef, setOpen, onClickOutside]
28
- )
29
-
30
- // handles the overlay behavior - closing the menu when clicking outside of it
31
- useEffect(() => {
32
- if (open && closeOnOutsideClick) {
33
- document.addEventListener('click', onClickOutsideInternal)
34
- return () => {
35
- document.removeEventListener('click', onClickOutsideInternal)
36
- }
37
- }
38
- }, [open, closeOnOutsideClick, onClickOutsideInternal])
39
-
40
- const handleToggle = (e: React.SyntheticEvent<HTMLElement, Event>) => {
41
- if (!e.defaultPrevented) {
42
- const eventTarget = e.target as HTMLDetailsElement
43
- setOpen(eventTarget.open)
44
- }
45
- }
46
-
47
- const getDetailsProps = () => {
48
- return {onToggle: handleToggle, open, ref: customRef}
49
- }
50
-
51
- return {open, setOpen, getDetailsProps}
52
- }
53
-
54
- export default useDetails
@@ -1,121 +0,0 @@
1
- import {useCallback, useEffect} from 'react'
2
-
3
- const noop = () => null
4
-
5
- function visible(el: HTMLInputElement) {
6
- return !el.hidden && (!el.type || el.type !== 'hidden') && (el.offsetWidth > 0 || el.offsetHeight > 0)
7
- }
8
-
9
- function focusable(el: Element) {
10
- const inputEl = el as HTMLInputElement
11
- return inputEl.tabIndex >= 0 && !inputEl.disabled && visible(inputEl)
12
- }
13
-
14
- type UseDialogParameters = {
15
- modalRef: React.RefObject<HTMLElement>
16
- overlayRef: React.RefObject<HTMLElement>
17
- isOpen?: boolean
18
- onDismiss?: () => void
19
- initialFocusRef?: React.RefObject<HTMLElement>
20
- closeButtonRef?: React.RefObject<HTMLElement>
21
- returnFocusRef?: React.RefObject<HTMLElement>
22
- }
23
-
24
- function useDialog({
25
- modalRef,
26
- overlayRef,
27
- isOpen,
28
- onDismiss = noop,
29
- initialFocusRef,
30
- closeButtonRef
31
- }: UseDialogParameters) {
32
- const onClickOutside = useCallback(
33
- e => {
34
- if (
35
- modalRef.current &&
36
- overlayRef.current &&
37
- !modalRef.current.contains(e.target) &&
38
- overlayRef.current.contains(e.target)
39
- ) {
40
- onDismiss()
41
- }
42
- },
43
- [onDismiss, modalRef, overlayRef]
44
- )
45
-
46
- useEffect(() => {
47
- if (isOpen) {
48
- document.addEventListener('click', onClickOutside)
49
- return () => {
50
- document.removeEventListener('click', onClickOutside)
51
- }
52
- }
53
- }, [isOpen, onClickOutside])
54
-
55
- useEffect(() => {
56
- if (isOpen) {
57
- if (initialFocusRef && initialFocusRef.current) {
58
- initialFocusRef.current.focus()
59
- } else if (closeButtonRef && closeButtonRef.current) {
60
- closeButtonRef.current.focus()
61
- }
62
- }
63
- }, [isOpen, initialFocusRef, closeButtonRef])
64
-
65
- const getFocusableItem = useCallback(
66
- (e: Event, movement: number) => {
67
- if (modalRef.current) {
68
- const items = Array.from(modalRef.current.querySelectorAll('*')).filter(focusable)
69
- if (items.length === 0) return
70
- e.preventDefault()
71
- const focusedElement = document.activeElement
72
- if (!focusedElement) {
73
- return
74
- }
75
-
76
- const index = items.indexOf(focusedElement)
77
- const offsetIndex = index + movement
78
- const fallbackIndex = movement === 1 ? 0 : items.length - 1
79
- const focusableItem = items[offsetIndex] || items[fallbackIndex]
80
- return focusableItem as HTMLElement
81
- }
82
- },
83
- [modalRef]
84
- )
85
-
86
- const handleTab = useCallback(
87
- e => {
88
- const movement = e.shiftKey ? -1 : 1
89
- const focusableItem = getFocusableItem(e, movement)
90
- if (!focusableItem) {
91
- return
92
- }
93
-
94
- focusableItem.focus()
95
- },
96
- [getFocusableItem]
97
- )
98
-
99
- const onKeyDown = useCallback(
100
- event => {
101
- switch (event.key) {
102
- case 'Tab':
103
- handleTab(event)
104
- break
105
- case 'Escape':
106
- onDismiss()
107
- event.stopPropagation()
108
- break
109
- }
110
- },
111
- [handleTab, onDismiss]
112
- )
113
-
114
- const getDialogProps = () => {
115
- return {onKeyDown}
116
- }
117
-
118
- return {getDialogProps}
119
- }
120
-
121
- export default useDialog
@@ -1,80 +0,0 @@
1
- import React from 'react'
2
- import {focusTrap} from '../behaviors/focusTrap'
3
- import {useProvidedRefOrCreate} from './useProvidedRefOrCreate'
4
-
5
- export interface FocusTrapHookSettings {
6
- /**
7
- * Ref that will be used for the trapping container. If not provided, one will
8
- * be created by this hook and returned.
9
- */
10
- containerRef?: React.RefObject<HTMLElement>
11
-
12
- /**
13
- * Ref for the element that should receive focus when the focus trap is first enabled. If
14
- * not provided, one will be created by this hook and returned. Its use is optional.
15
- */
16
- initialFocusRef?: React.RefObject<HTMLElement>
17
-
18
- /**
19
- * Set to true to disable the focus trap and clean up listeners. Can be re-enabled at
20
- * any time.
21
- */
22
- disabled?: boolean
23
-
24
- /**
25
- * If true, when this focus trap is cleaned up, restore focus to the element that had
26
- * focus immediately before the focus trap was enabled. (Default: false)
27
- */
28
- restoreFocusOnCleanUp?: boolean
29
- }
30
-
31
- /**
32
- * Hook used to trap focus inside a container. Returns a ref that can be added to the container
33
- * that should trap focus.
34
- * @param settings {FocusTrapHookSettings}
35
- */
36
- export function useFocusTrap(
37
- settings?: FocusTrapHookSettings,
38
- dependencies: React.DependencyList = []
39
- ): {containerRef: React.RefObject<HTMLElement>; initialFocusRef: React.RefObject<HTMLElement>} {
40
- const containerRef = useProvidedRefOrCreate(settings?.containerRef)
41
- const initialFocusRef = useProvidedRefOrCreate(settings?.initialFocusRef)
42
- const disabled = settings?.disabled
43
- const abortController = React.useRef<AbortController>()
44
- const previousFocusedElement = React.useRef<Element | null>(null)
45
-
46
- // If we are enabling a focus trap and haven't already stored the previously focused element
47
- // go ahead an do that so we can restore later when the trap is disabled.
48
- if (!previousFocusedElement.current && !settings?.disabled) {
49
- previousFocusedElement.current = document.activeElement
50
- }
51
-
52
- // This function removes the event listeners that enable the focus trap and restores focus
53
- // to the previously-focused element (if necessary).
54
- function disableTrap() {
55
- abortController.current?.abort()
56
- if (settings?.restoreFocusOnCleanUp && previousFocusedElement.current instanceof HTMLElement) {
57
- previousFocusedElement.current.focus()
58
- previousFocusedElement.current = null
59
- }
60
- }
61
-
62
- React.useEffect(
63
- () => {
64
- if (containerRef.current instanceof HTMLElement) {
65
- if (!disabled) {
66
- abortController.current = focusTrap(containerRef.current, initialFocusRef.current ?? undefined)
67
- return () => {
68
- disableTrap()
69
- }
70
- } else {
71
- disableTrap()
72
- }
73
- }
74
- },
75
- // eslint-disable-next-line react-hooks/exhaustive-deps
76
- [containerRef, initialFocusRef, disabled, ...dependencies]
77
- )
78
-
79
- return {containerRef, initialFocusRef}
80
- }
@@ -1,64 +0,0 @@
1
- import React, {useEffect} from 'react'
2
- import {focusZone, FocusZoneSettings} from '../behaviors/focusZone'
3
- import {useProvidedRefOrCreate} from './useProvidedRefOrCreate'
4
-
5
- export interface FocusZoneHookSettings extends Omit<FocusZoneSettings, 'activeDescendantControl'> {
6
- /**
7
- * Optional ref for the container that holds all elements participating in arrow key focus.
8
- * If one is not passed, we will create one for you and return it from the hook.
9
- */
10
- containerRef?: React.RefObject<HTMLElement>
11
-
12
- /**
13
- * If using the "active descendant" focus pattern, pass `true` or a ref to the controlling
14
- * element. If a ref object is not passed, we will create one for you.
15
- */
16
- activeDescendantFocus?: boolean | React.RefObject<HTMLElement>
17
-
18
- /**
19
- * Set to true to disable the focus zone and clean up listeners. Can be re-enabled at
20
- * any time.
21
- */
22
- disabled?: boolean
23
- }
24
-
25
- export function useFocusZone(
26
- settings: FocusZoneHookSettings = {},
27
- dependencies: React.DependencyList = []
28
- ): {containerRef: React.RefObject<HTMLElement>; activeDescendantControlRef: React.RefObject<HTMLElement>} {
29
- const containerRef = useProvidedRefOrCreate(settings.containerRef)
30
- const useActiveDescendant = !!settings.activeDescendantFocus
31
- const passedActiveDescendantRef =
32
- typeof settings.activeDescendantFocus === 'boolean' || !settings.activeDescendantFocus
33
- ? undefined
34
- : settings.activeDescendantFocus
35
- const activeDescendantControlRef = useProvidedRefOrCreate(passedActiveDescendantRef)
36
- const disabled = settings.disabled
37
- const abortController = React.useRef<AbortController>()
38
-
39
- useEffect(
40
- () => {
41
- if (
42
- containerRef.current instanceof HTMLElement &&
43
- (!useActiveDescendant || activeDescendantControlRef.current instanceof HTMLElement)
44
- ) {
45
- if (!disabled) {
46
- const vanillaSettings: FocusZoneSettings = {
47
- ...settings,
48
- activeDescendantControl: activeDescendantControlRef.current ?? undefined
49
- }
50
- abortController.current = focusZone(containerRef.current, vanillaSettings)
51
- return () => {
52
- abortController.current?.abort()
53
- }
54
- } else {
55
- abortController.current?.abort()
56
- }
57
- }
58
- },
59
- // eslint-disable-next-line react-hooks/exhaustive-deps
60
- [disabled, ...dependencies]
61
- )
62
-
63
- return {containerRef, activeDescendantControlRef}
64
- }
@@ -1,63 +0,0 @@
1
- import {useEffect, useCallback} from 'react'
2
-
3
- const handlers: ((e: KeyboardEvent) => void)[] = []
4
-
5
- /**
6
- * Calls all handlers in reverse order
7
- * @param event The KeyboardEvent generated by the Escape keydown.
8
- */
9
- function handleEscape(event: KeyboardEvent) {
10
- if (event.key === 'Escape' && !event.defaultPrevented) {
11
- for (let i = handlers.length - 1; i >= 0; --i) {
12
- handlers[i](event)
13
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
14
- if (event.defaultPrevented) {
15
- break
16
- }
17
- }
18
- }
19
- }
20
-
21
- /**
22
- * Sets up a `keydown` listener on `window.document`. If
23
- * 1) The pressed key is "Escape", and
24
- * 2) The event has not had `.preventDefault()` called
25
- * The given callback will be executed.
26
- *
27
- * Note: If multiple `useOnEscapePress` hooks are active simultaneously, the
28
- * callbacks will occur in reverse order. In other words, if a parent component
29
- * and a child component both call `useOnEscapePress`, when the user presses
30
- * Escape, the child component's callback will execute, followed by the parent's
31
- * callback. Each callback has the chance to call `.preventDefault()` on the
32
- * event to prevent further callbacks.
33
- *
34
- * @param callback {(e: KeyboardEvent) => void} The callback that gets executed
35
- * when the Escape key is pressed. The KeyboardEvent generated by the Escape
36
- * keypress is passed as the only argument.
37
- *
38
- * @param callbackDependencies {React.DependencyList} The dependencies of the given
39
- * `onEscape` callback for memoization. Omit this param if the callback is already
40
- * memoized. See `React.useCallback` for more info on memoization.
41
- */
42
- export const useOnEscapePress = (
43
- onEscape: (e: KeyboardEvent) => void,
44
- callbackDependencies: React.DependencyList = [onEscape]
45
- ): void => {
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- const escapeCallback = useCallback(onEscape, callbackDependencies)
48
- useEffect(() => {
49
- if (handlers.length === 0) {
50
- document.addEventListener('keydown', handleEscape)
51
- }
52
- handlers.push(escapeCallback)
53
- return () => {
54
- handlers.splice(
55
- handlers.findIndex(h => h === escapeCallback),
56
- 1
57
- )
58
- if (handlers.length === 0) {
59
- document.removeEventListener('keydown', handleEscape)
60
- }
61
- }
62
- }, [escapeCallback])
63
- }
@@ -1,82 +0,0 @@
1
- import React, {useEffect, useCallback, useMemo} from 'react'
2
-
3
- export type TouchOrMouseEvent = MouseEvent | TouchEvent
4
- type TouchOrMouseEventCallback = (event: TouchOrMouseEvent) => boolean | undefined
5
-
6
- export type UseOnOutsideClickSettings = {
7
- containerRef: React.RefObject<HTMLDivElement>
8
- ignoreClickRefs?: React.RefObject<HTMLElement>[]
9
- onClickOutside: (e: TouchOrMouseEvent) => void
10
- }
11
-
12
- // Because events are handled at the document level, we provide a mechanism for early return.
13
- const stopPropagation = true
14
-
15
- /**
16
- * Calls all handlers in reverse order
17
- * @param event The MouseEvent generated by the click event.
18
- */
19
- function handleClick(event: MouseEvent) {
20
- if (!event.defaultPrevented) {
21
- for (const handler of Object.values(registry).reverse()) {
22
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
23
- if (handler(event) === stopPropagation || event.defaultPrevented) {
24
- break
25
- }
26
- }
27
- }
28
- }
29
-
30
- const registry: {[id: number]: TouchOrMouseEventCallback} = {}
31
-
32
- function register(id: number, handler: TouchOrMouseEventCallback): void {
33
- registry[id] = handler
34
- }
35
-
36
- function deregister(id: number) {
37
- delete registry[id]
38
- }
39
-
40
- // For auto-incrementing unique identifiers for registered handlers.
41
- let handlerId = 0
42
-
43
- export const useOnOutsideClick = ({containerRef, ignoreClickRefs, onClickOutside}: UseOnOutsideClickSettings) => {
44
- const id = useMemo(() => handlerId++, [])
45
-
46
- const handler = useCallback<TouchOrMouseEventCallback>(
47
- event => {
48
- // don't call click handler if the mouse event was triggered by an auxiliary button (right click/wheel button/etc)
49
- if (event instanceof MouseEvent && event.button > 0) {
50
- return stopPropagation
51
- }
52
-
53
- // don't call handler if the click happened inside of the container
54
- if (containerRef.current?.contains(event.target as Node)) {
55
- return stopPropagation
56
- }
57
-
58
- // don't call handler if click happened on an ignored ref
59
- if (ignoreClickRefs && ignoreClickRefs.some(({current}) => current?.contains(event.target as Node))) {
60
- return stopPropagation
61
- }
62
-
63
- onClickOutside(event)
64
- },
65
- [containerRef, ignoreClickRefs, onClickOutside]
66
- )
67
-
68
- useEffect(() => {
69
- if (Object.keys(registry).length === 0) {
70
- // use capture to ensure we get all events
71
- document.addEventListener('mousedown', handleClick, {capture: true})
72
- }
73
- register(id, handler)
74
-
75
- return () => {
76
- deregister(id)
77
- if (Object.keys(registry).length === 0) {
78
- document.removeEventListener('mousedown', handleClick, {capture: true})
79
- }
80
- }
81
- }, [id, handler])
82
- }