@primer/components 31.2.0-rc.fbb10090 → 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 (1117) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/browser.esm.js +649 -647
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +205 -203
  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.d.ts +12 -0
  13. package/lib/ActionList2/Description.js +53 -0
  14. package/lib/ActionList2/Description.jsx +30 -0
  15. package/lib/ActionList2/Divider.d.ts +5 -0
  16. package/lib/ActionList2/Divider.js +35 -0
  17. package/lib/ActionList2/Divider.jsx +22 -0
  18. package/lib/ActionList2/Group.d.ts +11 -0
  19. package/lib/ActionList2/Group.js +57 -0
  20. package/lib/ActionList2/Group.jsx +25 -0
  21. package/lib/ActionList2/Header.d.ts +26 -0
  22. package/lib/ActionList2/Header.js +55 -0
  23. package/lib/ActionList2/Header.jsx +36 -0
  24. package/lib/ActionList2/Item.d.ts +63 -0
  25. package/lib/ActionList2/Item.js +244 -0
  26. package/lib/ActionList2/Item.jsx +174 -0
  27. package/lib/ActionList2/LinkItem.d.ts +17 -0
  28. package/lib/ActionList2/LinkItem.js +57 -0
  29. package/lib/ActionList2/LinkItem.jsx +28 -0
  30. package/lib/ActionList2/List.d.ts +26 -0
  31. package/lib/ActionList2/List.js +59 -0
  32. package/lib/ActionList2/List.jsx +41 -0
  33. package/lib/ActionList2/Selection.d.ts +5 -0
  34. package/lib/ActionList2/Selection.js +70 -0
  35. package/lib/ActionList2/Selection.jsx +36 -0
  36. package/lib/ActionList2/Visuals.d.ts +9 -0
  37. package/lib/ActionList2/Visuals.js +90 -0
  38. package/lib/ActionList2/Visuals.jsx +48 -0
  39. package/lib/ActionList2/index.d.ts +36 -0
  40. package/lib/ActionList2/index.js +29 -0
  41. package/lib/ActionMenu.jsx +73 -0
  42. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
  43. package/lib/AnchoredOverlay/index.js +4 -12
  44. package/lib/Autocomplete/Autocomplete.d.ts +28 -28
  45. package/lib/Autocomplete/Autocomplete.jsx +100 -0
  46. package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
  47. package/lib/Autocomplete/AutocompleteInput.d.ts +28 -28
  48. package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
  49. package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
  50. package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
  51. package/lib/Autocomplete/index.js +7 -14
  52. package/lib/Avatar.jsx +34 -0
  53. package/lib/AvatarPair.jsx +29 -0
  54. package/{src/AvatarStack.tsx → lib/AvatarStack.jsx} +41 -49
  55. package/lib/BaseStyles.jsx +65 -0
  56. package/lib/BorderBox.jsx +18 -0
  57. package/lib/Box.jsx +10 -0
  58. package/lib/BranchName.jsx +20 -0
  59. package/lib/Breadcrumbs.jsx +74 -0
  60. package/lib/Button/Button.d.ts +25 -25
  61. package/lib/Button/Button.jsx +60 -0
  62. package/lib/Button/ButtonBase.jsx +36 -0
  63. package/lib/Button/ButtonClose.d.ts +45 -45
  64. package/lib/Button/ButtonClose.jsx +55 -0
  65. package/lib/Button/ButtonDanger.d.ts +25 -25
  66. package/lib/Button/ButtonDanger.jsx +63 -0
  67. package/lib/Button/ButtonGroup.jsx +55 -0
  68. package/lib/Button/ButtonInvisible.d.ts +25 -25
  69. package/lib/Button/ButtonInvisible.jsx +52 -0
  70. package/lib/Button/ButtonOutline.d.ts +25 -25
  71. package/lib/Button/ButtonOutline.jsx +63 -0
  72. package/lib/Button/ButtonPrimary.d.ts +25 -25
  73. package/lib/Button/ButtonPrimary.jsx +62 -0
  74. package/{src/Button/ButtonStyles.tsx → lib/Button/ButtonStyles.jsx} +8 -7
  75. package/lib/Button/ButtonTableList.jsx +49 -0
  76. package/lib/Button/index.js +21 -70
  77. package/lib/Caret.jsx +93 -0
  78. package/lib/CircleBadge.jsx +43 -0
  79. package/lib/CircleOcticon.d.ts +42 -42
  80. package/lib/CircleOcticon.jsx +21 -0
  81. package/lib/CounterLabel.jsx +44 -0
  82. package/lib/Details.jsx +21 -0
  83. package/lib/Dialog/ConfirmationDialog.jsx +146 -0
  84. package/lib/Dialog/Dialog.js +1 -0
  85. package/lib/Dialog/Dialog.jsx +273 -0
  86. package/lib/Dialog.d.ts +45 -45
  87. package/lib/Dialog.jsx +131 -0
  88. package/lib/Dropdown.d.ts +176 -176
  89. package/lib/Dropdown.jsx +134 -0
  90. package/lib/DropdownMenu/DropdownButton.d.ts +46 -46
  91. package/lib/DropdownMenu/DropdownButton.jsx +14 -0
  92. package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
  93. package/lib/DropdownMenu/index.js +6 -20
  94. package/lib/DropdownStyles.js +18 -26
  95. package/lib/FilterList.d.ts +42 -42
  96. package/lib/FilterList.jsx +63 -0
  97. package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
  98. package/lib/FilteredActionList/index.js +4 -12
  99. package/lib/FilteredSearch.jsx +29 -0
  100. package/lib/Flash.jsx +70 -0
  101. package/lib/Flex.jsx +15 -0
  102. package/lib/FormGroup.jsx +25 -0
  103. package/lib/Grid.jsx +15 -0
  104. package/lib/Header.jsx +90 -0
  105. package/lib/Heading.jsx +21 -0
  106. package/lib/Label.jsx +84 -0
  107. package/lib/LabelGroup.jsx +19 -0
  108. package/lib/Link.jsx +38 -0
  109. package/lib/NewButton/button-counter.d.ts +6 -0
  110. package/lib/NewButton/button-counter.js +31 -0
  111. package/lib/NewButton/button-counter.jsx +14 -0
  112. package/lib/NewButton/button.d.ts +13 -0
  113. package/lib/NewButton/button.js +316 -0
  114. package/lib/NewButton/button.jsx +278 -0
  115. package/lib/NewButton/index.d.ts +14 -0
  116. package/lib/NewButton/index.js +8 -0
  117. package/lib/NewButton/types.d.ts +32 -0
  118. package/lib/NewButton/types.js +2 -0
  119. package/lib/Overlay.js +3 -1
  120. package/lib/Overlay.jsx +156 -0
  121. package/lib/Pagehead.jsx +18 -0
  122. package/lib/Pagination/Pagination.jsx +163 -0
  123. package/lib/Pagination/index.js +6 -12
  124. package/lib/Pagination/model.jsx +174 -0
  125. package/lib/PointerBox.jsx +25 -0
  126. package/{src/Popover.tsx → lib/Popover.jsx} +54 -80
  127. package/lib/Portal/Portal.js +3 -2
  128. package/lib/Portal/Portal.jsx +79 -0
  129. package/lib/Portal/index.js +5 -16
  130. package/lib/Position.d.ts +4 -4
  131. package/lib/Position.jsx +46 -0
  132. package/lib/ProgressBar.jsx +39 -0
  133. package/lib/SelectMenu/SelectMenu.d.ts +246 -246
  134. package/lib/SelectMenu/SelectMenu.jsx +114 -0
  135. package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
  136. package/lib/SelectMenu/SelectMenuDivider.jsx +43 -0
  137. package/lib/SelectMenu/SelectMenuFilter.jsx +59 -0
  138. package/lib/SelectMenu/SelectMenuFooter.jsx +46 -0
  139. package/lib/SelectMenu/SelectMenuHeader.jsx +44 -0
  140. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  141. package/lib/SelectMenu/SelectMenuItem.jsx +143 -0
  142. package/lib/SelectMenu/SelectMenuList.jsx +60 -0
  143. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +21 -0
  144. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  145. package/lib/SelectMenu/SelectMenuModal.jsx +119 -0
  146. package/lib/SelectMenu/SelectMenuTab.jsx +93 -0
  147. package/lib/SelectMenu/SelectMenuTabPanel.jsx +43 -0
  148. package/lib/SelectMenu/SelectMenuTabs.jsx +58 -0
  149. package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
  150. package/lib/SelectMenu/index.js +7 -14
  151. package/lib/SelectPanel/SelectPanel.jsx +105 -0
  152. package/lib/SelectPanel/index.js +4 -12
  153. package/lib/SideNav.jsx +177 -0
  154. package/lib/Spinner.jsx +35 -0
  155. package/lib/StateLabel.d.ts +1 -1
  156. package/lib/StateLabel.js +6 -1
  157. package/lib/StateLabel.jsx +94 -0
  158. package/lib/StyledOcticon.jsx +20 -0
  159. package/lib/SubNav.jsx +104 -0
  160. package/lib/TabNav.jsx +60 -0
  161. package/lib/Text.jsx +14 -0
  162. package/lib/TextInput.jsx +23 -0
  163. package/lib/TextInputWithTokens.d.ts +28 -28
  164. package/lib/TextInputWithTokens.jsx +218 -0
  165. package/lib/ThemeProvider.jsx +130 -0
  166. package/lib/Timeline.d.ts +43 -43
  167. package/lib/Timeline.jsx +124 -0
  168. package/lib/Token/AvatarToken.d.ts +1 -1
  169. package/lib/Token/AvatarToken.jsx +54 -0
  170. package/lib/Token/IssueLabelToken.d.ts +1 -1
  171. package/lib/Token/IssueLabelToken.jsx +125 -0
  172. package/lib/Token/Token.d.ts +1 -1
  173. package/lib/Token/Token.jsx +103 -0
  174. package/lib/Token/TokenBase.jsx +88 -0
  175. package/lib/Token/_RemoveTokenButton.jsx +108 -0
  176. package/{src/Token/_TokenTextContainer.tsx → lib/Token/_TokenTextContainer.jsx} +9 -7
  177. package/lib/Token/index.js +11 -30
  178. package/{src/Tooltip.tsx → lib/Tooltip.jsx} +34 -51
  179. package/lib/Truncate.jsx +27 -0
  180. package/lib/UnderlineNav.jsx +90 -0
  181. package/lib/_TextInputWrapper.js +2 -2
  182. package/lib/_TextInputWrapper.jsx +120 -0
  183. package/lib/_UnstyledTextInput.jsx +22 -0
  184. package/lib/behaviors/anchoredPosition.js +205 -234
  185. package/lib/behaviors/focusTrap.js +121 -157
  186. package/lib/behaviors/focusZone.js +434 -509
  187. package/lib/behaviors/scrollIntoViewingArea.js +18 -35
  188. package/lib/constants.js +39 -43
  189. package/lib/drafts.d.ts +8 -0
  190. package/lib/drafts.js +21 -0
  191. package/lib/hooks/index.js +16 -60
  192. package/lib/hooks/useAnchoredPosition.js +32 -39
  193. package/lib/hooks/useCombinedRefs.d.ts +2 -2
  194. package/lib/hooks/useCombinedRefs.js +32 -38
  195. package/lib/hooks/useDetails.jsx +39 -0
  196. package/lib/hooks/useDialog.js +72 -96
  197. package/lib/hooks/useFocusTrap.js +43 -60
  198. package/lib/hooks/useFocusZone.js +54 -50
  199. package/lib/hooks/useOnEscapePress.js +25 -36
  200. package/lib/hooks/useOnOutsideClick.jsx +61 -0
  201. package/lib/hooks/useOpenAndCloseFocus.js +22 -34
  202. package/lib/hooks/useOverlay.jsx +15 -0
  203. package/lib/hooks/useProvidedRefOrCreate.js +10 -14
  204. package/lib/hooks/useProvidedStateOrCreate.js +13 -16
  205. package/lib/hooks/useRenderForcingRef.js +13 -17
  206. package/lib/hooks/useResizeObserver.js +15 -18
  207. package/lib/hooks/useSafeTimeout.js +22 -30
  208. package/lib/hooks/useScrollFlash.js +16 -23
  209. package/lib/index.d.ts +2 -0
  210. package/lib/index.js +163 -636
  211. package/lib/polyfills/eventListenerSignal.js +37 -45
  212. package/lib/sx.d.ts +2 -0
  213. package/lib/sx.js +10 -14
  214. package/lib/theme-preval.js +65 -2945
  215. package/lib/theme.js +3 -12
  216. package/lib/utils/create-slots.d.ts +17 -0
  217. package/lib/utils/create-slots.js +105 -0
  218. package/lib/utils/create-slots.jsx +65 -0
  219. package/lib/utils/deprecate.jsx +59 -0
  220. package/lib/utils/isNumeric.jsx +7 -0
  221. package/lib/utils/iterateFocusableElements.js +63 -85
  222. package/lib/utils/ssr.jsx +6 -0
  223. package/lib/utils/test-deprecations.jsx +20 -0
  224. package/{src/utils/test-helpers.tsx → lib/utils/test-helpers.jsx} +6 -5
  225. package/lib/utils/test-matchers.jsx +100 -0
  226. package/lib/utils/testing.d.ts +14 -1
  227. package/lib/utils/testing.jsx +206 -0
  228. package/lib/utils/theme.js +33 -47
  229. package/lib/utils/types/AriaRole.js +2 -1
  230. package/lib/utils/types/ComponentProps.js +2 -1
  231. package/lib/utils/types/Flatten.js +2 -1
  232. package/lib/utils/types/KeyPaths.d.ts +1 -1
  233. package/lib/utils/types/KeyPaths.js +2 -1
  234. package/lib/utils/types/MandateProps.js +16 -1
  235. package/lib/utils/types/Merge.js +2 -1
  236. package/lib/utils/types/index.js +16 -69
  237. package/lib/utils/uniqueId.js +5 -8
  238. package/lib/utils/use-force-update.d.ts +1 -0
  239. package/lib/utils/use-force-update.js +13 -0
  240. package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  241. package/lib/utils/useIsomorphicLayoutEffect.js +9 -0
  242. package/lib/utils/userAgent.js +8 -12
  243. package/lib-esm/ActionList2/Description.d.ts +12 -0
  244. package/lib-esm/ActionList2/Description.js +37 -0
  245. package/lib-esm/ActionList2/Divider.d.ts +5 -0
  246. package/lib-esm/ActionList2/Divider.js +23 -0
  247. package/lib-esm/ActionList2/Group.d.ts +11 -0
  248. package/lib-esm/ActionList2/Group.js +40 -0
  249. package/lib-esm/ActionList2/Header.d.ts +26 -0
  250. package/lib-esm/ActionList2/Header.js +44 -0
  251. package/lib-esm/ActionList2/Item.d.ts +63 -0
  252. package/lib-esm/ActionList2/Item.js +210 -0
  253. package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
  254. package/lib-esm/ActionList2/LinkItem.js +43 -0
  255. package/lib-esm/ActionList2/List.d.ts +26 -0
  256. package/lib-esm/ActionList2/List.js +37 -0
  257. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  258. package/lib-esm/ActionList2/Selection.js +52 -0
  259. package/lib-esm/ActionList2/Visuals.d.ts +9 -0
  260. package/lib-esm/ActionList2/Visuals.js +68 -0
  261. package/lib-esm/ActionList2/index.d.ts +36 -0
  262. package/lib-esm/ActionList2/index.js +33 -0
  263. package/lib-esm/Autocomplete/Autocomplete.d.ts +28 -28
  264. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +28 -28
  265. package/lib-esm/Button/Button.d.ts +25 -25
  266. package/lib-esm/Button/ButtonClose.d.ts +45 -45
  267. package/lib-esm/Button/ButtonDanger.d.ts +25 -25
  268. package/lib-esm/Button/ButtonInvisible.d.ts +25 -25
  269. package/lib-esm/Button/ButtonOutline.d.ts +25 -25
  270. package/lib-esm/Button/ButtonPrimary.d.ts +25 -25
  271. package/lib-esm/CircleOcticon.d.ts +42 -42
  272. package/lib-esm/Dialog/Dialog.js +1 -0
  273. package/lib-esm/Dialog.d.ts +45 -45
  274. package/lib-esm/Dropdown.d.ts +176 -176
  275. package/lib-esm/DropdownMenu/DropdownButton.d.ts +46 -46
  276. package/lib-esm/FilterList.d.ts +42 -42
  277. package/lib-esm/NewButton/button-counter.d.ts +6 -0
  278. package/lib-esm/NewButton/button-counter.js +18 -0
  279. package/lib-esm/NewButton/button.d.ts +13 -0
  280. package/lib-esm/NewButton/button.js +298 -0
  281. package/lib-esm/NewButton/index.d.ts +14 -0
  282. package/lib-esm/NewButton/index.js +5 -0
  283. package/lib-esm/NewButton/types.d.ts +32 -0
  284. package/lib-esm/NewButton/types.js +1 -0
  285. package/lib-esm/Overlay.js +2 -1
  286. package/lib-esm/Portal/Portal.js +2 -1
  287. package/lib-esm/Position.d.ts +4 -4
  288. package/lib-esm/SelectMenu/SelectMenu.d.ts +246 -246
  289. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  290. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  291. package/lib-esm/StateLabel.d.ts +1 -1
  292. package/lib-esm/StateLabel.js +7 -2
  293. package/lib-esm/TextInputWithTokens.d.ts +28 -28
  294. package/lib-esm/Timeline.d.ts +43 -43
  295. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  296. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  297. package/lib-esm/Token/Token.d.ts +1 -1
  298. package/lib-esm/_TextInputWrapper.js +2 -2
  299. package/lib-esm/drafts.d.ts +8 -0
  300. package/lib-esm/drafts.js +9 -0
  301. package/lib-esm/hooks/useAnchoredPosition.js +2 -1
  302. package/lib-esm/hooks/useCombinedRefs.d.ts +2 -2
  303. package/lib-esm/hooks/useCombinedRefs.js +3 -2
  304. package/lib-esm/hooks/useResizeObserver.js +2 -2
  305. package/lib-esm/index.d.ts +2 -0
  306. package/lib-esm/index.js +1 -0
  307. package/lib-esm/sx.d.ts +2 -0
  308. package/lib-esm/sx.js +3 -1
  309. package/lib-esm/theme-preval.js +81 -2
  310. package/lib-esm/utils/create-slots.d.ts +17 -0
  311. package/lib-esm/utils/create-slots.js +84 -0
  312. package/lib-esm/utils/testing.d.ts +14 -1
  313. package/lib-esm/utils/types/KeyPaths.d.ts +1 -1
  314. package/lib-esm/utils/use-force-update.d.ts +1 -0
  315. package/lib-esm/utils/use-force-update.js +6 -0
  316. package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  317. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  318. package/package.json +9 -5
  319. package/.changeset/README.md +0 -8
  320. package/.changeset/config.json +0 -10
  321. package/.devcontainer/devcontainer.json +0 -8
  322. package/.eslintrc.json +0 -137
  323. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  324. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  325. package/.github/dependabot.yml +0 -18
  326. package/.github/pull_request_template.md +0 -18
  327. package/.github/workflows/check_for_changeset.yml +0 -25
  328. package/.github/workflows/ci.yml +0 -31
  329. package/.github/workflows/deploy_preview.yml +0 -47
  330. package/.github/workflows/deploy_production.yml +0 -70
  331. package/.github/workflows/release.yml +0 -35
  332. package/.github/workflows/release_canary.yml +0 -70
  333. package/.github/workflows/release_candidate.yml +0 -60
  334. package/.github/workflows/size.yml +0 -13
  335. package/.github/workflows/stale.yml +0 -26
  336. package/.gitignore +0 -10
  337. package/.npmrc +0 -4
  338. package/.nvmrc +0 -1
  339. package/.storybook/main.js +0 -9
  340. package/.storybook/preview.js +0 -117
  341. package/.vscode/launch.json +0 -21
  342. package/.vscode/settings.json +0 -13
  343. package/@types/@styled-system/index.d.ts +0 -0
  344. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  345. package/@types/@styled-system/props/index.d.ts +0 -1
  346. package/@types/jest-styled-components/index.d.ts +0 -1
  347. package/CODEOWNERS +0 -2
  348. package/babel-defines.js +0 -13
  349. package/babel.config.js +0 -39
  350. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  351. package/contributor-docs/CONTRIBUTING.md +0 -274
  352. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  353. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -108
  354. package/contributor-docs/adrs/adr-003-prop-norms.md +0 -72
  355. package/contributor-docs/behaviors.md +0 -132
  356. package/contributor-docs/component-contents-api-patterns.md +0 -316
  357. package/contributor-docs/principles.md +0 -39
  358. package/docs/.eslintrc +0 -0
  359. package/docs/.gitignore +0 -91
  360. package/docs/components/PropsList.js +0 -5
  361. package/docs/components/State.js +0 -9
  362. package/docs/components/constants.js +0 -34
  363. package/docs/components/index.js +0 -2
  364. package/docs/content/ActionList.mdx +0 -99
  365. package/docs/content/ActionMenu.mdx +0 -80
  366. package/docs/content/AnchoredOverlay.mdx +0 -37
  367. package/docs/content/Autocomplete.mdx +0 -657
  368. package/docs/content/Avatar.mdx +0 -33
  369. package/docs/content/AvatarStack.mdx +0 -37
  370. package/docs/content/BorderBox.md +0 -46
  371. package/docs/content/Box.md +0 -74
  372. package/docs/content/BranchName.md +0 -18
  373. package/docs/content/Breadcrumbs.md +0 -52
  374. package/docs/content/Buttons.md +0 -56
  375. package/docs/content/CircleBadge.md +0 -45
  376. package/docs/content/CircleOcticon.md +0 -18
  377. package/docs/content/CounterLabel.md +0 -32
  378. package/docs/content/Details.md +0 -105
  379. package/docs/content/Dialog.md +0 -108
  380. package/docs/content/Dialog2.mdx +0 -179
  381. package/docs/content/Dropdown.md +0 -72
  382. package/docs/content/DropdownMenu.mdx +0 -49
  383. package/docs/content/FilterList.md +0 -44
  384. package/docs/content/FilteredSearch.md +0 -39
  385. package/docs/content/Flash.md +0 -44
  386. package/docs/content/Flex.md +0 -58
  387. package/docs/content/FormGroup.md +0 -46
  388. package/docs/content/Grid.md +0 -59
  389. package/docs/content/Header.md +0 -79
  390. package/docs/content/Heading.md +0 -22
  391. package/docs/content/Label.md +0 -42
  392. package/docs/content/LabelGroup.md +0 -31
  393. package/docs/content/Link.md +0 -37
  394. package/docs/content/Overlay.mdx +0 -94
  395. package/docs/content/Pagehead.md +0 -27
  396. package/docs/content/Pagination.md +0 -187
  397. package/docs/content/PointerBox.md +0 -81
  398. package/docs/content/Popover.md +0 -137
  399. package/docs/content/Portal.mdx +0 -78
  400. package/docs/content/Position.md +0 -100
  401. package/docs/content/ProgressBar.mdx +0 -29
  402. package/docs/content/SelectMenu.md +0 -435
  403. package/docs/content/SelectPanel.mdx +0 -67
  404. package/docs/content/SideNav.md +0 -179
  405. package/docs/content/Spinner.mdx +0 -32
  406. package/docs/content/StateLabel.md +0 -35
  407. package/docs/content/StyledOcticon.md +0 -36
  408. package/docs/content/SubNav.md +0 -102
  409. package/docs/content/TabNav.md +0 -50
  410. package/docs/content/Text.md +0 -31
  411. package/docs/content/TextInput.md +0 -34
  412. package/docs/content/TextInputTokens.mdx +0 -89
  413. package/docs/content/TextInputWithTokens.mdx +0 -211
  414. package/docs/content/Timeline.md +0 -138
  415. package/docs/content/Token.mdx +0 -381
  416. package/docs/content/Tooltip.md +0 -41
  417. package/docs/content/Truncate.md +0 -64
  418. package/docs/content/UnderlineNav.md +0 -53
  419. package/docs/content/anchoredPosition.mdx +0 -163
  420. package/docs/content/core-concepts.md +0 -70
  421. package/docs/content/focusTrap.mdx +0 -103
  422. package/docs/content/focusZone.mdx +0 -145
  423. package/docs/content/getting-started.md +0 -138
  424. package/docs/content/index.md +0 -33
  425. package/docs/content/linting.md +0 -35
  426. package/docs/content/overriding-styles.mdx +0 -82
  427. package/docs/content/philosophy.md +0 -23
  428. package/docs/content/primer-theme.md +0 -89
  429. package/docs/content/ssr.mdx +0 -43
  430. package/docs/content/system-props.mdx +0 -37
  431. package/docs/content/theme-reference.md +0 -16
  432. package/docs/content/theming.md +0 -272
  433. package/docs/content/useOnEscapePress.mdx +0 -56
  434. package/docs/content/useOnOutsideClick.mdx +0 -57
  435. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  436. package/docs/content/useOverlay.mdx +0 -62
  437. package/docs/content/useSafeTimeout.mdx +0 -32
  438. package/docs/gatsby-config.js +0 -30
  439. package/docs/gatsby-node.js +0 -101
  440. package/docs/package-lock.json +0 -20756
  441. package/docs/package.json +0 -36
  442. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -23
  443. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -41
  444. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -56
  445. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -133
  446. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  447. package/docs/src/props.js +0 -77
  448. package/jest.config.js +0 -13
  449. package/lib/__tests__/ActionList.test.d.ts +0 -1
  450. package/lib/__tests__/ActionList.test.js +0 -69
  451. package/lib/__tests__/ActionList.types.test.d.ts +0 -6
  452. package/lib/__tests__/ActionList.types.test.js +0 -69
  453. package/lib/__tests__/ActionMenu.test.d.ts +0 -1
  454. package/lib/__tests__/ActionMenu.test.js +0 -151
  455. package/lib/__tests__/AnchoredOverlay.test.d.ts +0 -1
  456. package/lib/__tests__/AnchoredOverlay.test.js +0 -160
  457. package/lib/__tests__/Autocomplete.test.d.ts +0 -1
  458. package/lib/__tests__/Autocomplete.test.js +0 -528
  459. package/lib/__tests__/Avatar.test.d.ts +0 -1
  460. package/lib/__tests__/Avatar.test.js +0 -67
  461. package/lib/__tests__/AvatarStack.test.d.ts +0 -1
  462. package/lib/__tests__/AvatarStack.test.js +0 -71
  463. package/lib/__tests__/BorderBox.test.d.ts +0 -1
  464. package/lib/__tests__/BorderBox.test.js +0 -58
  465. package/lib/__tests__/Box.test.d.ts +0 -1
  466. package/lib/__tests__/Box.test.js +0 -78
  467. package/lib/__tests__/BranchName.test.d.ts +0 -1
  468. package/lib/__tests__/BranchName.test.js +0 -36
  469. package/lib/__tests__/Breadcrumbs.test.d.ts +0 -1
  470. package/lib/__tests__/Breadcrumbs.test.js +0 -37
  471. package/lib/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  472. package/lib/__tests__/BreadcrumbsItem.test.js +0 -49
  473. package/lib/__tests__/Button.test.d.ts +0 -1
  474. package/lib/__tests__/Button.test.js +0 -143
  475. package/lib/__tests__/Caret.test.d.ts +0 -1
  476. package/lib/__tests__/Caret.test.js +0 -52
  477. package/lib/__tests__/CircleBadge.test.d.ts +0 -1
  478. package/lib/__tests__/CircleBadge.test.js +0 -83
  479. package/lib/__tests__/CircleOcticon.test.d.ts +0 -1
  480. package/lib/__tests__/CircleOcticon.test.js +0 -71
  481. package/lib/__tests__/ConfirmationDialog.test.d.ts +0 -1
  482. package/lib/__tests__/ConfirmationDialog.test.js +0 -134
  483. package/lib/__tests__/CounterLabel.test.d.ts +0 -1
  484. package/lib/__tests__/CounterLabel.test.js +0 -58
  485. package/lib/__tests__/Details.test.d.ts +0 -1
  486. package/lib/__tests__/Details.test.js +0 -117
  487. package/lib/__tests__/Dialog.test.d.ts +0 -1
  488. package/lib/__tests__/Dialog.test.js +0 -184
  489. package/lib/__tests__/Dropdown.test.d.ts +0 -1
  490. package/lib/__tests__/Dropdown.test.js +0 -63
  491. package/lib/__tests__/DropdownMenu.test.d.ts +0 -1
  492. package/lib/__tests__/DropdownMenu.test.js +0 -150
  493. package/lib/__tests__/FilterList.test.d.ts +0 -1
  494. package/lib/__tests__/FilterList.test.js +0 -36
  495. package/lib/__tests__/FilterListItem.test.d.ts +0 -1
  496. package/lib/__tests__/FilterListItem.test.js +0 -46
  497. package/lib/__tests__/FilteredSearch.test.d.ts +0 -1
  498. package/lib/__tests__/FilteredSearch.test.js +0 -36
  499. package/lib/__tests__/Flash.test.d.ts +0 -1
  500. package/lib/__tests__/Flash.test.js +0 -62
  501. package/lib/__tests__/Flex.test.d.ts +0 -1
  502. package/lib/__tests__/Flex.test.js +0 -74
  503. package/lib/__tests__/FormGroup.test.d.ts +0 -1
  504. package/lib/__tests__/FormGroup.test.js +0 -54
  505. package/lib/__tests__/Grid.test.d.ts +0 -1
  506. package/lib/__tests__/Grid.test.js +0 -104
  507. package/lib/__tests__/Header.test.d.ts +0 -1
  508. package/lib/__tests__/Header.test.js +0 -58
  509. package/lib/__tests__/Heading.test.d.ts +0 -1
  510. package/lib/__tests__/Heading.test.js +0 -109
  511. package/lib/__tests__/KeyPaths.types.test.d.ts +0 -10
  512. package/lib/__tests__/KeyPaths.types.test.js +0 -10
  513. package/lib/__tests__/Label.test.d.ts +0 -1
  514. package/lib/__tests__/Label.test.js +0 -46
  515. package/lib/__tests__/LabelGroup.test.d.ts +0 -1
  516. package/lib/__tests__/LabelGroup.test.js +0 -38
  517. package/lib/__tests__/Link.test.d.ts +0 -1
  518. package/lib/__tests__/Link.test.js +0 -70
  519. package/lib/__tests__/Merge.types.test.d.ts +0 -30
  520. package/lib/__tests__/Merge.types.test.js +0 -27
  521. package/lib/__tests__/Overlay.test.d.ts +0 -1
  522. package/lib/__tests__/Overlay.test.js +0 -145
  523. package/lib/__tests__/Pagehead.test.d.ts +0 -1
  524. package/lib/__tests__/Pagehead.test.js +0 -37
  525. package/lib/__tests__/Pagination/Pagination.test.d.ts +0 -1
  526. package/lib/__tests__/Pagination/Pagination.test.js +0 -47
  527. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  528. package/lib/__tests__/Pagination/PaginationModel.test.js +0 -186
  529. package/lib/__tests__/PointerBox.test.d.ts +0 -1
  530. package/lib/__tests__/PointerBox.test.js +0 -46
  531. package/lib/__tests__/Popover.test.d.ts +0 -1
  532. package/lib/__tests__/Popover.test.js +0 -66
  533. package/lib/__tests__/Portal.test.d.ts +0 -1
  534. package/lib/__tests__/Portal.test.js +0 -124
  535. package/lib/__tests__/Position.test.d.ts +0 -1
  536. package/lib/__tests__/Position.test.js +0 -143
  537. package/lib/__tests__/ProgressBar.test.d.ts +0 -1
  538. package/lib/__tests__/ProgressBar.test.js +0 -68
  539. package/lib/__tests__/SelectMenu.test.d.ts +0 -1
  540. package/lib/__tests__/SelectMenu.test.js +0 -155
  541. package/lib/__tests__/SelectPanel.test.d.ts +0 -1
  542. package/lib/__tests__/SelectPanel.test.js +0 -80
  543. package/lib/__tests__/SideNav.test.d.ts +0 -1
  544. package/lib/__tests__/SideNav.test.js +0 -71
  545. package/lib/__tests__/Spinner.test.d.ts +0 -1
  546. package/lib/__tests__/Spinner.test.js +0 -53
  547. package/lib/__tests__/StateLabel.test.d.ts +0 -1
  548. package/lib/__tests__/StateLabel.test.js +0 -71
  549. package/lib/__tests__/StyledOcticon.test.d.ts +0 -1
  550. package/lib/__tests__/StyledOcticon.test.js +0 -40
  551. package/lib/__tests__/SubNav.test.d.ts +0 -1
  552. package/lib/__tests__/SubNav.test.js +0 -62
  553. package/lib/__tests__/SubNavLink.test.d.ts +0 -1
  554. package/lib/__tests__/SubNavLink.test.js +0 -49
  555. package/lib/__tests__/TabNav.test.d.ts +0 -1
  556. package/lib/__tests__/TabNav.test.js +0 -49
  557. package/lib/__tests__/Text.test.d.ts +0 -1
  558. package/lib/__tests__/Text.test.js +0 -105
  559. package/lib/__tests__/TextInput.test.d.ts +0 -1
  560. package/lib/__tests__/TextInput.test.js +0 -78
  561. package/lib/__tests__/TextInputWithTokens.test.d.ts +0 -1
  562. package/lib/__tests__/TextInputWithTokens.test.js +0 -581
  563. package/lib/__tests__/ThemeProvider.test.d.ts +0 -1
  564. package/lib/__tests__/ThemeProvider.test.js +0 -444
  565. package/lib/__tests__/Timeline.test.d.ts +0 -1
  566. package/lib/__tests__/Timeline.test.js +0 -75
  567. package/lib/__tests__/Token.test.d.ts +0 -1
  568. package/lib/__tests__/Token.test.js +0 -180
  569. package/lib/__tests__/Tooltip.test.d.ts +0 -1
  570. package/lib/__tests__/Tooltip.test.js +0 -69
  571. package/lib/__tests__/Truncate.test.d.ts +0 -1
  572. package/lib/__tests__/Truncate.test.js +0 -63
  573. package/lib/__tests__/UnderlineNav.test.d.ts +0 -1
  574. package/lib/__tests__/UnderlineNav.test.js +0 -72
  575. package/lib/__tests__/UnderlineNavLink.test.d.ts +0 -1
  576. package/lib/__tests__/UnderlineNavLink.test.js +0 -51
  577. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  578. package/lib/__tests__/behaviors/anchoredPosition.test.js +0 -390
  579. package/lib/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  580. package/lib/__tests__/behaviors/focusTrap.test.js +0 -234
  581. package/lib/__tests__/behaviors/focusZone.test.d.ts +0 -1
  582. package/lib/__tests__/behaviors/focusZone.test.js +0 -570
  583. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  584. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +0 -55
  585. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  586. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -226
  587. package/lib/__tests__/filterObject.test.d.ts +0 -1
  588. package/lib/__tests__/filterObject.test.js +0 -30
  589. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  590. package/lib/__tests__/hooks/useAnchoredPosition.test.js +0 -54
  591. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  592. package/lib/__tests__/hooks/useOnEscapePress.test.js +0 -32
  593. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  594. package/lib/__tests__/hooks/useOnOutsideClick.test.js +0 -87
  595. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  596. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -60
  597. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  598. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -45
  599. package/lib/__tests__/theme.test.d.ts +0 -1
  600. package/lib/__tests__/theme.test.js +0 -36
  601. package/lib/__tests__/themeGet.test.d.ts +0 -1
  602. package/lib/__tests__/themeGet.test.js +0 -25
  603. package/lib/__tests__/useSafeTimeout.test.d.ts +0 -1
  604. package/lib/__tests__/useSafeTimeout.test.js +0 -45
  605. package/lib/stories/ActionList.stories.js +0 -454
  606. package/lib/stories/ActionMenu.stories.js +0 -350
  607. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  608. package/lib/stories/Autocomplete.stories.js +0 -619
  609. package/lib/stories/AvatarStack.stories.js +0 -49
  610. package/lib/stories/Button.stories.js +0 -125
  611. package/lib/stories/ConfirmationDialog.stories.js +0 -111
  612. package/lib/stories/Dialog.stories.js +0 -265
  613. package/lib/stories/DropdownMenu.stories.js +0 -122
  614. package/lib/stories/IssueLabelToken.stories.js +0 -165
  615. package/lib/stories/Overlay.stories.js +0 -204
  616. package/lib/stories/Portal.stories.js +0 -104
  617. package/lib/stories/ProfileToken.stories.js +0 -162
  618. package/lib/stories/SelectPanel.stories.js +0 -399
  619. package/lib/stories/TextInputWithTokens.stories.js +0 -252
  620. package/lib/stories/ThemeProvider.stories.js +0 -102
  621. package/lib/stories/Token.stories.js +0 -159
  622. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  623. package/lib/stories/useFocusTrap.stories.js +0 -356
  624. package/lib/stories/useFocusZone.stories.js +0 -599
  625. package/lib-esm/__tests__/ActionList.test.d.ts +0 -1
  626. package/lib-esm/__tests__/ActionList.test.js +0 -57
  627. package/lib-esm/__tests__/ActionList.types.test.d.ts +0 -6
  628. package/lib-esm/__tests__/ActionList.types.test.js +0 -45
  629. package/lib-esm/__tests__/ActionMenu.test.d.ts +0 -1
  630. package/lib-esm/__tests__/ActionMenu.test.js +0 -139
  631. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +0 -1
  632. package/lib-esm/__tests__/AnchoredOverlay.test.js +0 -134
  633. package/lib-esm/__tests__/Autocomplete.test.d.ts +0 -1
  634. package/lib-esm/__tests__/Autocomplete.test.js +0 -494
  635. package/lib-esm/__tests__/Avatar.test.d.ts +0 -1
  636. package/lib-esm/__tests__/Avatar.test.js +0 -56
  637. package/lib-esm/__tests__/AvatarStack.test.d.ts +0 -1
  638. package/lib-esm/__tests__/AvatarStack.test.js +0 -58
  639. package/lib-esm/__tests__/BorderBox.test.d.ts +0 -1
  640. package/lib-esm/__tests__/BorderBox.test.js +0 -47
  641. package/lib-esm/__tests__/Box.test.d.ts +0 -1
  642. package/lib-esm/__tests__/Box.test.js +0 -67
  643. package/lib-esm/__tests__/BranchName.test.d.ts +0 -1
  644. package/lib-esm/__tests__/BranchName.test.js +0 -26
  645. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +0 -1
  646. package/lib-esm/__tests__/Breadcrumbs.test.js +0 -27
  647. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  648. package/lib-esm/__tests__/BreadcrumbsItem.test.js +0 -39
  649. package/lib-esm/__tests__/Button.test.d.ts +0 -1
  650. package/lib-esm/__tests__/Button.test.js +0 -133
  651. package/lib-esm/__tests__/Caret.test.d.ts +0 -1
  652. package/lib-esm/__tests__/Caret.test.js +0 -42
  653. package/lib-esm/__tests__/CircleBadge.test.d.ts +0 -1
  654. package/lib-esm/__tests__/CircleBadge.test.js +0 -70
  655. package/lib-esm/__tests__/CircleOcticon.test.d.ts +0 -1
  656. package/lib-esm/__tests__/CircleOcticon.test.js +0 -59
  657. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +0 -1
  658. package/lib-esm/__tests__/ConfirmationDialog.test.js +0 -113
  659. package/lib-esm/__tests__/CounterLabel.test.d.ts +0 -1
  660. package/lib-esm/__tests__/CounterLabel.test.js +0 -47
  661. package/lib-esm/__tests__/Details.test.d.ts +0 -1
  662. package/lib-esm/__tests__/Details.test.js +0 -107
  663. package/lib-esm/__tests__/Dialog.test.d.ts +0 -1
  664. package/lib-esm/__tests__/Dialog.test.js +0 -171
  665. package/lib-esm/__tests__/Dropdown.test.d.ts +0 -1
  666. package/lib-esm/__tests__/Dropdown.test.js +0 -53
  667. package/lib-esm/__tests__/DropdownMenu.test.d.ts +0 -1
  668. package/lib-esm/__tests__/DropdownMenu.test.js +0 -137
  669. package/lib-esm/__tests__/FilterList.test.d.ts +0 -1
  670. package/lib-esm/__tests__/FilterList.test.js +0 -26
  671. package/lib-esm/__tests__/FilterListItem.test.d.ts +0 -1
  672. package/lib-esm/__tests__/FilterListItem.test.js +0 -36
  673. package/lib-esm/__tests__/FilteredSearch.test.d.ts +0 -1
  674. package/lib-esm/__tests__/FilteredSearch.test.js +0 -26
  675. package/lib-esm/__tests__/Flash.test.d.ts +0 -1
  676. package/lib-esm/__tests__/Flash.test.js +0 -51
  677. package/lib-esm/__tests__/Flex.test.d.ts +0 -1
  678. package/lib-esm/__tests__/Flex.test.js +0 -64
  679. package/lib-esm/__tests__/FormGroup.test.d.ts +0 -1
  680. package/lib-esm/__tests__/FormGroup.test.js +0 -44
  681. package/lib-esm/__tests__/Grid.test.d.ts +0 -1
  682. package/lib-esm/__tests__/Grid.test.js +0 -94
  683. package/lib-esm/__tests__/Header.test.d.ts +0 -1
  684. package/lib-esm/__tests__/Header.test.js +0 -48
  685. package/lib-esm/__tests__/Heading.test.d.ts +0 -1
  686. package/lib-esm/__tests__/Heading.test.js +0 -99
  687. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +0 -10
  688. package/lib-esm/__tests__/KeyPaths.types.test.js +0 -3
  689. package/lib-esm/__tests__/Label.test.d.ts +0 -1
  690. package/lib-esm/__tests__/Label.test.js +0 -36
  691. package/lib-esm/__tests__/LabelGroup.test.d.ts +0 -1
  692. package/lib-esm/__tests__/LabelGroup.test.js +0 -26
  693. package/lib-esm/__tests__/Link.test.d.ts +0 -1
  694. package/lib-esm/__tests__/Link.test.js +0 -60
  695. package/lib-esm/__tests__/Merge.types.test.d.ts +0 -30
  696. package/lib-esm/__tests__/Merge.types.test.js +0 -14
  697. package/lib-esm/__tests__/Overlay.test.d.ts +0 -1
  698. package/lib-esm/__tests__/Overlay.test.js +0 -123
  699. package/lib-esm/__tests__/Pagehead.test.d.ts +0 -1
  700. package/lib-esm/__tests__/Pagehead.test.js +0 -26
  701. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +0 -1
  702. package/lib-esm/__tests__/Pagination/Pagination.test.js +0 -35
  703. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  704. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +0 -182
  705. package/lib-esm/__tests__/PointerBox.test.d.ts +0 -1
  706. package/lib-esm/__tests__/PointerBox.test.js +0 -36
  707. package/lib-esm/__tests__/Popover.test.d.ts +0 -1
  708. package/lib-esm/__tests__/Popover.test.js +0 -53
  709. package/lib-esm/__tests__/Portal.test.d.ts +0 -1
  710. package/lib-esm/__tests__/Portal.test.js +0 -104
  711. package/lib-esm/__tests__/Position.test.d.ts +0 -1
  712. package/lib-esm/__tests__/Position.test.js +0 -133
  713. package/lib-esm/__tests__/ProgressBar.test.d.ts +0 -1
  714. package/lib-esm/__tests__/ProgressBar.test.js +0 -58
  715. package/lib-esm/__tests__/SelectMenu.test.d.ts +0 -1
  716. package/lib-esm/__tests__/SelectMenu.test.js +0 -145
  717. package/lib-esm/__tests__/SelectPanel.test.d.ts +0 -1
  718. package/lib-esm/__tests__/SelectPanel.test.js +0 -65
  719. package/lib-esm/__tests__/SideNav.test.d.ts +0 -1
  720. package/lib-esm/__tests__/SideNav.test.js +0 -60
  721. package/lib-esm/__tests__/Spinner.test.d.ts +0 -1
  722. package/lib-esm/__tests__/Spinner.test.js +0 -43
  723. package/lib-esm/__tests__/StateLabel.test.d.ts +0 -1
  724. package/lib-esm/__tests__/StateLabel.test.js +0 -61
  725. package/lib-esm/__tests__/StyledOcticon.test.d.ts +0 -1
  726. package/lib-esm/__tests__/StyledOcticon.test.js +0 -29
  727. package/lib-esm/__tests__/SubNav.test.d.ts +0 -1
  728. package/lib-esm/__tests__/SubNav.test.js +0 -50
  729. package/lib-esm/__tests__/SubNavLink.test.d.ts +0 -1
  730. package/lib-esm/__tests__/SubNavLink.test.js +0 -39
  731. package/lib-esm/__tests__/TabNav.test.d.ts +0 -1
  732. package/lib-esm/__tests__/TabNav.test.js +0 -39
  733. package/lib-esm/__tests__/Text.test.d.ts +0 -1
  734. package/lib-esm/__tests__/Text.test.js +0 -93
  735. package/lib-esm/__tests__/TextInput.test.d.ts +0 -1
  736. package/lib-esm/__tests__/TextInput.test.js +0 -68
  737. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +0 -1
  738. package/lib-esm/__tests__/TextInputWithTokens.test.js +0 -520
  739. package/lib-esm/__tests__/ThemeProvider.test.d.ts +0 -1
  740. package/lib-esm/__tests__/ThemeProvider.test.js +0 -408
  741. package/lib-esm/__tests__/Timeline.test.d.ts +0 -1
  742. package/lib-esm/__tests__/Timeline.test.js +0 -65
  743. package/lib-esm/__tests__/Token.test.d.ts +0 -1
  744. package/lib-esm/__tests__/Token.test.js +0 -166
  745. package/lib-esm/__tests__/Tooltip.test.d.ts +0 -1
  746. package/lib-esm/__tests__/Tooltip.test.js +0 -59
  747. package/lib-esm/__tests__/Truncate.test.d.ts +0 -1
  748. package/lib-esm/__tests__/Truncate.test.js +0 -53
  749. package/lib-esm/__tests__/UnderlineNav.test.d.ts +0 -1
  750. package/lib-esm/__tests__/UnderlineNav.test.js +0 -60
  751. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +0 -1
  752. package/lib-esm/__tests__/UnderlineNavLink.test.js +0 -41
  753. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  754. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +0 -388
  755. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  756. package/lib-esm/__tests__/behaviors/focusTrap.test.js +0 -227
  757. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +0 -1
  758. package/lib-esm/__tests__/behaviors/focusZone.test.js +0 -487
  759. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  760. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +0 -48
  761. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  762. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -224
  763. package/lib-esm/__tests__/filterObject.test.d.ts +0 -1
  764. package/lib-esm/__tests__/filterObject.test.js +0 -27
  765. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  766. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +0 -46
  767. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  768. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +0 -23
  769. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  770. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +0 -68
  771. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  772. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -52
  773. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  774. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -36
  775. package/lib-esm/__tests__/theme.test.d.ts +0 -1
  776. package/lib-esm/__tests__/theme.test.js +0 -33
  777. package/lib-esm/__tests__/themeGet.test.d.ts +0 -1
  778. package/lib-esm/__tests__/themeGet.test.js +0 -22
  779. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +0 -1
  780. package/lib-esm/__tests__/useSafeTimeout.test.js +0 -39
  781. package/lib-esm/stories/ActionList.stories.js +0 -395
  782. package/lib-esm/stories/ActionMenu.stories.js +0 -305
  783. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  784. package/lib-esm/stories/Autocomplete.stories.js +0 -560
  785. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  786. package/lib-esm/stories/Button.stories.js +0 -86
  787. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -86
  788. package/lib-esm/stories/Dialog.stories.js +0 -240
  789. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  790. package/lib-esm/stories/IssueLabelToken.stories.js +0 -139
  791. package/lib-esm/stories/Overlay.stories.js +0 -173
  792. package/lib-esm/stories/Portal.stories.js +0 -68
  793. package/lib-esm/stories/ProfileToken.stories.js +0 -136
  794. package/lib-esm/stories/SelectPanel.stories.js +0 -334
  795. package/lib-esm/stories/TextInputWithTokens.stories.js +0 -210
  796. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  797. package/lib-esm/stories/Token.stories.js +0 -133
  798. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  799. package/lib-esm/stories/useFocusTrap.stories.js +0 -309
  800. package/lib-esm/stories/useFocusZone.stories.js +0 -554
  801. package/migrating.md +0 -250
  802. package/now.json +0 -17
  803. package/package-lock.json +0 -66357
  804. package/rollup.config.js +0 -36
  805. package/script/build +0 -19
  806. package/script/build-storybook +0 -10
  807. package/script/setup +0 -12
  808. package/src/ActionList/Divider.tsx +0 -25
  809. package/src/ActionList/Group.tsx +0 -45
  810. package/src/ActionList/Header.tsx +0 -74
  811. package/src/ActionList/Item.tsx +0 -496
  812. package/src/ActionList/List.tsx +0 -258
  813. package/src/ActionList/index.ts +0 -21
  814. package/src/ActionMenu.tsx +0 -106
  815. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -191
  816. package/src/AnchoredOverlay/index.ts +0 -2
  817. package/src/Autocomplete/Autocomplete.tsx +0 -103
  818. package/src/Autocomplete/AutocompleteContext.tsx +0 -19
  819. package/src/Autocomplete/AutocompleteInput.tsx +0 -179
  820. package/src/Autocomplete/AutocompleteMenu.tsx +0 -341
  821. package/src/Autocomplete/AutocompleteOverlay.tsx +0 -68
  822. package/src/Autocomplete/index.ts +0 -2
  823. package/src/Avatar.tsx +0 -46
  824. package/src/AvatarPair.tsx +0 -35
  825. package/src/BaseStyles.tsx +0 -53
  826. package/src/BorderBox.tsx +0 -18
  827. package/src/Box.tsx +0 -54
  828. package/src/BranchName.tsx +0 -19
  829. package/src/Breadcrumbs.tsx +0 -101
  830. package/src/Button/Button.tsx +0 -40
  831. package/src/Button/ButtonBase.tsx +0 -43
  832. package/src/Button/ButtonClose.tsx +0 -40
  833. package/src/Button/ButtonDanger.tsx +0 -43
  834. package/src/Button/ButtonGroup.tsx +0 -55
  835. package/src/Button/ButtonInvisible.tsx +0 -32
  836. package/src/Button/ButtonOutline.tsx +0 -43
  837. package/src/Button/ButtonPrimary.tsx +0 -41
  838. package/src/Button/ButtonTableList.tsx +0 -58
  839. package/src/Button/index.ts +0 -16
  840. package/src/Caret.tsx +0 -133
  841. package/src/CircleBadge.tsx +0 -55
  842. package/src/CircleOcticon.tsx +0 -37
  843. package/src/CounterLabel.tsx +0 -52
  844. package/src/Details.tsx +0 -23
  845. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  846. package/src/Dialog/Dialog.tsx +0 -432
  847. package/src/Dialog.tsx +0 -149
  848. package/src/Dropdown.tsx +0 -158
  849. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  850. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  851. package/src/DropdownMenu/index.ts +0 -4
  852. package/src/DropdownStyles.ts +0 -128
  853. package/src/FilterList.tsx +0 -81
  854. package/src/FilteredActionList/FilteredActionList.tsx +0 -142
  855. package/src/FilteredActionList/index.ts +0 -2
  856. package/src/FilteredSearch.tsx +0 -28
  857. package/src/Flash.tsx +0 -77
  858. package/src/Flex.tsx +0 -15
  859. package/src/FormGroup.tsx +0 -27
  860. package/src/Grid.tsx +0 -15
  861. package/src/Header.tsx +0 -84
  862. package/src/Heading.tsx +0 -21
  863. package/src/Label.tsx +0 -75
  864. package/src/LabelGroup.tsx +0 -18
  865. package/src/Link.tsx +0 -46
  866. package/src/Overlay.tsx +0 -197
  867. package/src/Pagehead.tsx +0 -17
  868. package/src/Pagination/Pagination.tsx +0 -214
  869. package/src/Pagination/index.ts +0 -4
  870. package/src/Pagination/model.tsx +0 -187
  871. package/src/PointerBox.tsx +0 -31
  872. package/src/Portal/Portal.tsx +0 -96
  873. package/src/Portal/index.ts +0 -5
  874. package/src/Position.tsx +0 -63
  875. package/src/ProgressBar.tsx +0 -52
  876. package/src/SelectMenu/SelectMenu.tsx +0 -125
  877. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  878. package/src/SelectMenu/SelectMenuDivider.tsx +0 -25
  879. package/src/SelectMenu/SelectMenuFilter.tsx +0 -51
  880. package/src/SelectMenu/SelectMenuFooter.tsx +0 -28
  881. package/src/SelectMenu/SelectMenuHeader.tsx +0 -50
  882. package/src/SelectMenu/SelectMenuItem.tsx +0 -137
  883. package/src/SelectMenu/SelectMenuList.tsx +0 -42
  884. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -24
  885. package/src/SelectMenu/SelectMenuModal.tsx +0 -121
  886. package/src/SelectMenu/SelectMenuTab.tsx +0 -88
  887. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -30
  888. package/src/SelectMenu/SelectMenuTabs.tsx +0 -44
  889. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  890. package/src/SelectMenu/index.ts +0 -15
  891. package/src/SelectPanel/SelectPanel.tsx +0 -173
  892. package/src/SelectPanel/index.ts +0 -2
  893. package/src/SideNav.tsx +0 -193
  894. package/src/Spinner.tsx +0 -59
  895. package/src/StateLabel.tsx +0 -102
  896. package/src/StyledOcticon.tsx +0 -24
  897. package/src/SubNav.tsx +0 -129
  898. package/src/TabNav.tsx +0 -77
  899. package/src/Text.tsx +0 -13
  900. package/src/TextInput.tsx +0 -68
  901. package/src/TextInputWithTokens.tsx +0 -351
  902. package/src/ThemeProvider.tsx +0 -176
  903. package/src/Timeline.tsx +0 -141
  904. package/src/Token/AvatarToken.tsx +0 -54
  905. package/src/Token/IssueLabelToken.tsx +0 -150
  906. package/src/Token/Token.tsx +0 -126
  907. package/src/Token/TokenBase.tsx +0 -129
  908. package/src/Token/_RemoveTokenButton.tsx +0 -111
  909. package/src/Token/index.ts +0 -3
  910. package/src/Truncate.tsx +0 -36
  911. package/src/UnderlineNav.tsx +0 -110
  912. package/src/_TextInputWrapper.tsx +0 -106
  913. package/src/_UnstyledTextInput.tsx +0 -19
  914. package/src/__tests__/.eslintrc.json +0 -11
  915. package/src/__tests__/ActionList.test.tsx +0 -53
  916. package/src/__tests__/ActionList.types.test.tsx +0 -51
  917. package/src/__tests__/ActionMenu.test.tsx +0 -136
  918. package/src/__tests__/AnchoredOverlay.test.tsx +0 -150
  919. package/src/__tests__/Autocomplete.test.tsx +0 -444
  920. package/src/__tests__/Avatar.test.tsx +0 -44
  921. package/src/__tests__/AvatarStack.test.tsx +0 -48
  922. package/src/__tests__/BorderBox.test.tsx +0 -43
  923. package/src/__tests__/Box.test.tsx +0 -42
  924. package/src/__tests__/BranchName.test.tsx +0 -26
  925. package/src/__tests__/Breadcrumbs.test.tsx +0 -27
  926. package/src/__tests__/BreadcrumbsItem.test.tsx +0 -31
  927. package/src/__tests__/Button.test.tsx +0 -128
  928. package/src/__tests__/Caret.test.tsx +0 -36
  929. package/src/__tests__/CircleBadge.test.tsx +0 -66
  930. package/src/__tests__/CircleOcticon.test.tsx +0 -50
  931. package/src/__tests__/ConfirmationDialog.test.tsx +0 -120
  932. package/src/__tests__/CounterLabel.test.tsx +0 -50
  933. package/src/__tests__/Details.test.tsx +0 -115
  934. package/src/__tests__/Dialog.test.tsx +0 -155
  935. package/src/__tests__/Dropdown.test.tsx +0 -53
  936. package/src/__tests__/DropdownMenu.test.tsx +0 -136
  937. package/src/__tests__/FilterList.test.tsx +0 -26
  938. package/src/__tests__/FilterListItem.test.tsx +0 -31
  939. package/src/__tests__/FilteredSearch.test.tsx +0 -26
  940. package/src/__tests__/Flash.test.tsx +0 -45
  941. package/src/__tests__/Flex.test.tsx +0 -58
  942. package/src/__tests__/FormGroup.test.tsx +0 -38
  943. package/src/__tests__/Grid.test.tsx +0 -82
  944. package/src/__tests__/Header.test.tsx +0 -49
  945. package/src/__tests__/Heading.test.tsx +0 -91
  946. package/src/__tests__/KeyPaths.types.test.ts +0 -13
  947. package/src/__tests__/Label.test.tsx +0 -34
  948. package/src/__tests__/LabelGroup.test.tsx +0 -30
  949. package/src/__tests__/Link.test.tsx +0 -47
  950. package/src/__tests__/Merge.types.test.ts +0 -39
  951. package/src/__tests__/Overlay.test.tsx +0 -103
  952. package/src/__tests__/Pagehead.test.tsx +0 -23
  953. package/src/__tests__/Pagination/Pagination.test.tsx +0 -30
  954. package/src/__tests__/Pagination/PaginationModel.test.tsx +0 -133
  955. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -184
  956. package/src/__tests__/PointerBox.test.tsx +0 -34
  957. package/src/__tests__/Popover.test.tsx +0 -68
  958. package/src/__tests__/Portal.test.tsx +0 -103
  959. package/src/__tests__/Position.test.tsx +0 -117
  960. package/src/__tests__/ProgressBar.test.tsx +0 -40
  961. package/src/__tests__/SelectMenu.test.tsx +0 -142
  962. package/src/__tests__/SelectPanel.test.tsx +0 -63
  963. package/src/__tests__/SideNav.test.tsx +0 -62
  964. package/src/__tests__/Spinner.test.tsx +0 -42
  965. package/src/__tests__/StateLabel.test.tsx +0 -48
  966. package/src/__tests__/StyledOcticon.test.tsx +0 -26
  967. package/src/__tests__/SubNav.test.tsx +0 -50
  968. package/src/__tests__/SubNavLink.test.tsx +0 -31
  969. package/src/__tests__/TabNav.test.tsx +0 -32
  970. package/src/__tests__/Text.test.tsx +0 -78
  971. package/src/__tests__/TextInput.test.tsx +0 -49
  972. package/src/__tests__/TextInputWithTokens.test.tsx +0 -432
  973. package/src/__tests__/ThemeProvider.test.tsx +0 -441
  974. package/src/__tests__/Timeline.test.tsx +0 -58
  975. package/src/__tests__/Token.test.tsx +0 -118
  976. package/src/__tests__/Tooltip.test.tsx +0 -52
  977. package/src/__tests__/Truncate.test.tsx +0 -43
  978. package/src/__tests__/UnderlineNav.test.tsx +0 -58
  979. package/src/__tests__/UnderlineNavLink.test.tsx +0 -31
  980. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +0 -223
  981. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +0 -80
  982. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +0 -332
  983. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +0 -3421
  984. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +0 -19
  985. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +0 -377
  986. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +0 -14
  987. package/src/__tests__/__snapshots__/Box.test.tsx.snap +0 -201
  988. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +0 -17
  989. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +0 -29
  990. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +0 -79
  991. package/src/__tests__/__snapshots__/Button.test.tsx.snap +0 -840
  992. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +0 -373
  993. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +0 -141
  994. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +0 -64
  995. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +0 -89
  996. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +0 -22
  997. package/src/__tests__/__snapshots__/Details.test.tsx.snap +0 -15
  998. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +0 -200
  999. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -249
  1000. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +0 -106
  1001. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +0 -13
  1002. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +0 -80
  1003. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +0 -32
  1004. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +0 -32
  1005. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +0 -130
  1006. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +0 -25
  1007. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +0 -178
  1008. package/src/__tests__/__snapshots__/Header.test.tsx.snap +0 -79
  1009. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +0 -13
  1010. package/src/__tests__/__snapshots__/Label.test.tsx.snap +0 -74
  1011. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +0 -15
  1012. package/src/__tests__/__snapshots__/Link.test.tsx.snap +0 -213
  1013. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +0 -15
  1014. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +0 -174
  1015. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +0 -4687
  1016. package/src/__tests__/__snapshots__/Position.test.tsx.snap +0 -44
  1017. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +0 -53
  1018. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +0 -469
  1019. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +0 -123
  1020. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +0 -143
  1021. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +0 -33
  1022. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -388
  1023. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +0 -25
  1024. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +0 -44
  1025. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +0 -199
  1026. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +0 -58
  1027. package/src/__tests__/__snapshots__/Text.test.tsx.snap +0 -7
  1028. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +0 -446
  1029. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +0 -5979
  1030. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +0 -15
  1031. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +0 -159
  1032. package/src/__tests__/__snapshots__/Token.test.tsx.snap +0 -3794
  1033. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -227
  1034. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +0 -17
  1035. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +0 -59
  1036. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +0 -130
  1037. package/src/__tests__/behaviors/anchoredPosition.test.ts +0 -295
  1038. package/src/__tests__/behaviors/focusTrap.test.tsx +0 -236
  1039. package/src/__tests__/behaviors/focusZone.test.tsx +0 -549
  1040. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +0 -61
  1041. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +0 -195
  1042. package/src/__tests__/filterObject.test.ts +0 -54
  1043. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +0 -31
  1044. package/src/__tests__/hooks/useOnEscapePress.test.tsx +0 -16
  1045. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +0 -48
  1046. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +0 -48
  1047. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +0 -39
  1048. package/src/__tests__/theme.test.ts +0 -41
  1049. package/src/__tests__/themeGet.test.ts +0 -15
  1050. package/src/__tests__/useSafeTimeout.test.tsx +0 -36
  1051. package/src/behaviors/anchoredPosition.ts +0 -442
  1052. package/src/behaviors/focusTrap.ts +0 -184
  1053. package/src/behaviors/focusZone.ts +0 -713
  1054. package/src/behaviors/scrollIntoViewingArea.ts +0 -27
  1055. package/src/constants.ts +0 -62
  1056. package/src/hooks/index.ts +0 -11
  1057. package/src/hooks/useAnchoredPosition.ts +0 -53
  1058. package/src/hooks/useCombinedRefs.ts +0 -40
  1059. package/src/hooks/useDetails.tsx +0 -54
  1060. package/src/hooks/useDialog.ts +0 -121
  1061. package/src/hooks/useFocusTrap.ts +0 -80
  1062. package/src/hooks/useFocusZone.ts +0 -64
  1063. package/src/hooks/useOnEscapePress.ts +0 -63
  1064. package/src/hooks/useOnOutsideClick.tsx +0 -82
  1065. package/src/hooks/useOpenAndCloseFocus.ts +0 -32
  1066. package/src/hooks/useOverlay.tsx +0 -34
  1067. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  1068. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  1069. package/src/hooks/useRenderForcingRef.ts +0 -22
  1070. package/src/hooks/useResizeObserver.ts +0 -11
  1071. package/src/hooks/useSafeTimeout.ts +0 -38
  1072. package/src/hooks/useScrollFlash.ts +0 -21
  1073. package/src/index.ts +0 -170
  1074. package/src/polyfills/eventListenerSignal.ts +0 -66
  1075. package/src/stories/ActionList.stories.tsx +0 -436
  1076. package/src/stories/ActionMenu.stories.tsx +0 -334
  1077. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  1078. package/src/stories/Autocomplete.stories.tsx +0 -655
  1079. package/src/stories/AvatarStack.stories.tsx +0 -37
  1080. package/src/stories/Button.stories.tsx +0 -92
  1081. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  1082. package/src/stories/Dialog.stories.tsx +0 -240
  1083. package/src/stories/DropdownMenu.stories.tsx +0 -84
  1084. package/src/stories/IssueLabelToken.stories.tsx +0 -138
  1085. package/src/stories/Overlay.stories.tsx +0 -213
  1086. package/src/stories/Portal.stories.tsx +0 -109
  1087. package/src/stories/ProfileToken.stories.tsx +0 -129
  1088. package/src/stories/SelectPanel.stories.tsx +0 -353
  1089. package/src/stories/TextInputWithTokens.stories.tsx +0 -155
  1090. package/src/stories/ThemeProvider.stories.tsx +0 -104
  1091. package/src/stories/Token.stories.tsx +0 -126
  1092. package/src/stories/useAnchoredPosition.stories.tsx +0 -332
  1093. package/src/stories/useFocusTrap.stories.tsx +0 -400
  1094. package/src/stories/useFocusZone.stories.tsx +0 -663
  1095. package/src/sx.ts +0 -21
  1096. package/src/theme-preval.js +0 -79
  1097. package/src/theme.ts +0 -89
  1098. package/src/utils/deprecate.tsx +0 -73
  1099. package/src/utils/isNumeric.tsx +0 -4
  1100. package/src/utils/iterateFocusableElements.ts +0 -121
  1101. package/src/utils/ssr.tsx +0 -1
  1102. package/src/utils/test-deprecations.tsx +0 -19
  1103. package/src/utils/test-matchers.tsx +0 -109
  1104. package/src/utils/testing.tsx +0 -242
  1105. package/src/utils/theme.js +0 -64
  1106. package/src/utils/types/AriaRole.ts +0 -71
  1107. package/src/utils/types/ComponentProps.ts +0 -13
  1108. package/src/utils/types/Flatten.ts +0 -4
  1109. package/src/utils/types/KeyPaths.ts +0 -4
  1110. package/src/utils/types/MandateProps.ts +0 -19
  1111. package/src/utils/types/Merge.ts +0 -20
  1112. package/src/utils/types/index.ts +0 -5
  1113. package/src/utils/uniqueId.ts +0 -6
  1114. package/src/utils/userAgent.ts +0 -7
  1115. package/stats.html +0 -3279
  1116. package/tsconfig.build.json +0 -7
  1117. 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,53 +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
-
6
- export interface AnchoredPositionHookSettings extends Partial<PositionSettings> {
7
- floatingElementRef?: React.RefObject<Element>
8
- anchorElementRef?: React.RefObject<Element>
9
- }
10
-
11
- /**
12
- * Calculates the top and left values for an absolutely-positioned floating element
13
- * to be anchored to some anchor element. Returns refs for the floating element
14
- * and the anchor element, along with the position.
15
- * @param settings Settings for calculating the anchored position.
16
- * @param dependencies Dependencies to determine when to re-calculate the position.
17
- * @returns An object of {top: number, left: number} to absolutely-position the
18
- * floating element.
19
- */
20
- export function useAnchoredPosition(
21
- settings?: AnchoredPositionHookSettings,
22
- dependencies: React.DependencyList = []
23
- ): {
24
- floatingElementRef: React.RefObject<Element>
25
- anchorElementRef: React.RefObject<Element>
26
- position: AnchorPosition | undefined
27
- } {
28
- const floatingElementRef = useProvidedRefOrCreate(settings?.floatingElementRef)
29
- const anchorElementRef = useProvidedRefOrCreate(settings?.anchorElementRef)
30
- const [position, setPosition] = React.useState<AnchorPosition | undefined>(undefined)
31
-
32
- const updatePosition = React.useCallback(
33
- () => {
34
- if (floatingElementRef.current instanceof Element && anchorElementRef.current instanceof Element) {
35
- setPosition(getAnchoredPosition(floatingElementRef.current, anchorElementRef.current, settings))
36
- } else {
37
- setPosition(undefined)
38
- }
39
- },
40
- // eslint-disable-next-line react-hooks/exhaustive-deps
41
- [floatingElementRef, anchorElementRef, ...dependencies]
42
- )
43
-
44
- React.useLayoutEffect(updatePosition, [updatePosition])
45
-
46
- useResizeObserver(updatePosition)
47
-
48
- return {
49
- floatingElementRef,
50
- anchorElementRef,
51
- position
52
- }
53
- }
@@ -1,40 +0,0 @@
1
- import React, {ForwardedRef, useRef} from 'react'
2
-
3
- /**
4
- * Creates a ref by combining multiple constituent refs. The ref returned by this hook
5
- * should be passed as the ref for the element that needs to be shared. This is
6
- * particularly useful when you are using `React.forwardRef` in your component but you
7
- * also want to be able to access the local element. This is a small anti-pattern,
8
- * though, as it breaks encapsulation.
9
- * @param refs
10
- */
11
- export function useCombinedRefs<T>(...refs: (ForwardedRef<T> | null | undefined)[]) {
12
- const combinedRef = useRef<T | null>(null)
13
-
14
- React.useLayoutEffect(() => {
15
- function setRefs(current: T | null = null) {
16
- for (const ref of refs) {
17
- if (!ref) {
18
- return
19
- }
20
- if (typeof ref === 'function') {
21
- ref(current)
22
- } else {
23
- ref.current = current
24
- }
25
- }
26
- }
27
-
28
- setRefs(combinedRef.current)
29
-
30
- return () => {
31
- // ensure the refs get updated on unmount
32
- // eslint-disable-next-line react-hooks/exhaustive-deps
33
- setRefs(combinedRef.current)
34
- }
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
- }