@primer/components 31.0.0-rc.c90c1dae → 31.0.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 (800) hide show
  1. package/package.json +1 -1
  2. package/.changeset/README.md +0 -8
  3. package/.changeset/config.json +0 -10
  4. package/.devcontainer/devcontainer.json +0 -8
  5. package/.eslintrc.json +0 -137
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  7. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  8. package/.github/dependabot.yml +0 -18
  9. package/.github/pull_request_template.md +0 -18
  10. package/.github/workflows/check_for_changeset.yml +0 -25
  11. package/.github/workflows/ci.yml +0 -31
  12. package/.github/workflows/deploy_preview.yml +0 -47
  13. package/.github/workflows/deploy_production.yml +0 -70
  14. package/.github/workflows/release.yml +0 -35
  15. package/.github/workflows/release_canary.yml +0 -70
  16. package/.github/workflows/release_candidate.yml +0 -60
  17. package/.github/workflows/size.yml +0 -13
  18. package/.github/workflows/stale.yml +0 -26
  19. package/.gitignore +0 -10
  20. package/.npmrc +0 -4
  21. package/.nvmrc +0 -1
  22. package/.storybook/main.js +0 -11
  23. package/.storybook/preview.js +0 -113
  24. package/.vscode/launch.json +0 -21
  25. package/.vscode/settings.json +0 -13
  26. package/@types/@styled-system/index.d.ts +0 -0
  27. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  28. package/@types/@styled-system/props/index.d.ts +0 -1
  29. package/@types/jest-styled-components/index.d.ts +0 -1
  30. package/CODEOWNERS +0 -2
  31. package/babel-defines.js +0 -13
  32. package/babel.config.js +0 -39
  33. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  34. package/contributor-docs/CONTRIBUTING.md +0 -274
  35. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  36. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -108
  37. package/contributor-docs/adrs/adr-003-prop-norms.md +0 -72
  38. package/contributor-docs/behaviors.md +0 -132
  39. package/contributor-docs/component-contents-api-patterns.md +0 -316
  40. package/contributor-docs/principles.md +0 -39
  41. package/docs/.eslintrc +0 -0
  42. package/docs/.gitignore +0 -91
  43. package/docs/components/PropsList.js +0 -5
  44. package/docs/components/State.js +0 -9
  45. package/docs/components/constants.js +0 -34
  46. package/docs/components/index.js +0 -2
  47. package/docs/content/ActionList.mdx +0 -99
  48. package/docs/content/ActionMenu.mdx +0 -80
  49. package/docs/content/AnchoredOverlay.mdx +0 -37
  50. package/docs/content/Autocomplete.mdx +0 -627
  51. package/docs/content/Avatar.mdx +0 -33
  52. package/docs/content/AvatarStack.mdx +0 -37
  53. package/docs/content/BorderBox.md +0 -46
  54. package/docs/content/Box.md +0 -74
  55. package/docs/content/BranchName.md +0 -18
  56. package/docs/content/Breadcrumbs.md +0 -52
  57. package/docs/content/Buttons.md +0 -56
  58. package/docs/content/CircleBadge.md +0 -45
  59. package/docs/content/CircleOcticon.md +0 -18
  60. package/docs/content/CounterLabel.md +0 -32
  61. package/docs/content/Details.md +0 -105
  62. package/docs/content/Dialog.md +0 -108
  63. package/docs/content/Dialog2.mdx +0 -179
  64. package/docs/content/Dropdown.md +0 -72
  65. package/docs/content/DropdownMenu.mdx +0 -49
  66. package/docs/content/FilterList.md +0 -44
  67. package/docs/content/FilteredSearch.md +0 -39
  68. package/docs/content/Flash.md +0 -44
  69. package/docs/content/Flex.md +0 -58
  70. package/docs/content/FormGroup.md +0 -46
  71. package/docs/content/Grid.md +0 -59
  72. package/docs/content/Header.md +0 -79
  73. package/docs/content/Heading.md +0 -22
  74. package/docs/content/Label.md +0 -42
  75. package/docs/content/LabelGroup.md +0 -31
  76. package/docs/content/Link.md +0 -37
  77. package/docs/content/Overlay.mdx +0 -94
  78. package/docs/content/Pagehead.md +0 -27
  79. package/docs/content/Pagination.md +0 -187
  80. package/docs/content/PointerBox.md +0 -81
  81. package/docs/content/Popover.md +0 -137
  82. package/docs/content/Portal.mdx +0 -78
  83. package/docs/content/Position.md +0 -100
  84. package/docs/content/ProgressBar.mdx +0 -29
  85. package/docs/content/SelectMenu.md +0 -435
  86. package/docs/content/SelectPanel.mdx +0 -67
  87. package/docs/content/SideNav.md +0 -179
  88. package/docs/content/Spinner.mdx +0 -32
  89. package/docs/content/StateLabel.md +0 -35
  90. package/docs/content/StyledOcticon.md +0 -36
  91. package/docs/content/SubNav.md +0 -102
  92. package/docs/content/TabNav.md +0 -50
  93. package/docs/content/Text.md +0 -31
  94. package/docs/content/TextInput.md +0 -34
  95. package/docs/content/TextInputTokens.mdx +0 -89
  96. package/docs/content/TextInputWithTokens.mdx +0 -97
  97. package/docs/content/Timeline.md +0 -138
  98. package/docs/content/Token.mdx +0 -381
  99. package/docs/content/Tooltip.md +0 -41
  100. package/docs/content/Truncate.md +0 -64
  101. package/docs/content/UnderlineNav.md +0 -53
  102. package/docs/content/anchoredPosition.mdx +0 -163
  103. package/docs/content/core-concepts.md +0 -70
  104. package/docs/content/focusTrap.mdx +0 -103
  105. package/docs/content/focusZone.mdx +0 -145
  106. package/docs/content/getting-started.md +0 -138
  107. package/docs/content/index.md +0 -33
  108. package/docs/content/linting.md +0 -35
  109. package/docs/content/overriding-styles.mdx +0 -82
  110. package/docs/content/philosophy.md +0 -23
  111. package/docs/content/primer-theme.md +0 -89
  112. package/docs/content/ssr.mdx +0 -43
  113. package/docs/content/system-props.mdx +0 -37
  114. package/docs/content/theme-reference.md +0 -16
  115. package/docs/content/theming.md +0 -249
  116. package/docs/content/useOnEscapePress.mdx +0 -56
  117. package/docs/content/useOnOutsideClick.mdx +0 -57
  118. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  119. package/docs/content/useOverlay.mdx +0 -62
  120. package/docs/content/useSafeTimeout.mdx +0 -32
  121. package/docs/gatsby-config.js +0 -30
  122. package/docs/gatsby-node.js +0 -101
  123. package/docs/package-lock.json +0 -20756
  124. package/docs/package.json +0 -36
  125. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -23
  126. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -41
  127. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -54
  128. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -133
  129. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  130. package/docs/src/props.js +0 -77
  131. package/jest.config.js +0 -13
  132. package/lib/__tests__/ActionList.test.d.ts +0 -1
  133. package/lib/__tests__/ActionList.test.js +0 -69
  134. package/lib/__tests__/ActionList.types.test.d.ts +0 -6
  135. package/lib/__tests__/ActionList.types.test.js +0 -69
  136. package/lib/__tests__/ActionMenu.test.d.ts +0 -1
  137. package/lib/__tests__/ActionMenu.test.js +0 -151
  138. package/lib/__tests__/AnchoredOverlay.test.d.ts +0 -1
  139. package/lib/__tests__/AnchoredOverlay.test.js +0 -160
  140. package/lib/__tests__/Autocomplete.test.d.ts +0 -1
  141. package/lib/__tests__/Autocomplete.test.js +0 -528
  142. package/lib/__tests__/Avatar.test.d.ts +0 -1
  143. package/lib/__tests__/Avatar.test.js +0 -67
  144. package/lib/__tests__/AvatarStack.test.d.ts +0 -1
  145. package/lib/__tests__/AvatarStack.test.js +0 -71
  146. package/lib/__tests__/BorderBox.test.d.ts +0 -1
  147. package/lib/__tests__/BorderBox.test.js +0 -58
  148. package/lib/__tests__/Box.test.d.ts +0 -1
  149. package/lib/__tests__/Box.test.js +0 -78
  150. package/lib/__tests__/BranchName.test.d.ts +0 -1
  151. package/lib/__tests__/BranchName.test.js +0 -36
  152. package/lib/__tests__/Breadcrumbs.test.d.ts +0 -1
  153. package/lib/__tests__/Breadcrumbs.test.js +0 -37
  154. package/lib/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  155. package/lib/__tests__/BreadcrumbsItem.test.js +0 -49
  156. package/lib/__tests__/Button.test.d.ts +0 -1
  157. package/lib/__tests__/Button.test.js +0 -143
  158. package/lib/__tests__/Caret.test.d.ts +0 -1
  159. package/lib/__tests__/Caret.test.js +0 -52
  160. package/lib/__tests__/CircleBadge.test.d.ts +0 -1
  161. package/lib/__tests__/CircleBadge.test.js +0 -83
  162. package/lib/__tests__/CircleOcticon.test.d.ts +0 -1
  163. package/lib/__tests__/CircleOcticon.test.js +0 -71
  164. package/lib/__tests__/ConfirmationDialog.test.d.ts +0 -1
  165. package/lib/__tests__/ConfirmationDialog.test.js +0 -134
  166. package/lib/__tests__/CounterLabel.test.d.ts +0 -1
  167. package/lib/__tests__/CounterLabel.test.js +0 -58
  168. package/lib/__tests__/Details.test.d.ts +0 -1
  169. package/lib/__tests__/Details.test.js +0 -117
  170. package/lib/__tests__/Dialog.test.d.ts +0 -1
  171. package/lib/__tests__/Dialog.test.js +0 -184
  172. package/lib/__tests__/Dropdown.test.d.ts +0 -1
  173. package/lib/__tests__/Dropdown.test.js +0 -63
  174. package/lib/__tests__/DropdownMenu.test.d.ts +0 -1
  175. package/lib/__tests__/DropdownMenu.test.js +0 -150
  176. package/lib/__tests__/FilterList.test.d.ts +0 -1
  177. package/lib/__tests__/FilterList.test.js +0 -36
  178. package/lib/__tests__/FilterListItem.test.d.ts +0 -1
  179. package/lib/__tests__/FilterListItem.test.js +0 -46
  180. package/lib/__tests__/FilteredSearch.test.d.ts +0 -1
  181. package/lib/__tests__/FilteredSearch.test.js +0 -36
  182. package/lib/__tests__/Flash.test.d.ts +0 -1
  183. package/lib/__tests__/Flash.test.js +0 -62
  184. package/lib/__tests__/Flex.test.d.ts +0 -1
  185. package/lib/__tests__/Flex.test.js +0 -74
  186. package/lib/__tests__/FormGroup.test.d.ts +0 -1
  187. package/lib/__tests__/FormGroup.test.js +0 -54
  188. package/lib/__tests__/Grid.test.d.ts +0 -1
  189. package/lib/__tests__/Grid.test.js +0 -104
  190. package/lib/__tests__/Header.test.d.ts +0 -1
  191. package/lib/__tests__/Header.test.js +0 -58
  192. package/lib/__tests__/Heading.test.d.ts +0 -1
  193. package/lib/__tests__/Heading.test.js +0 -109
  194. package/lib/__tests__/Label.test.d.ts +0 -1
  195. package/lib/__tests__/Label.test.js +0 -46
  196. package/lib/__tests__/LabelGroup.test.d.ts +0 -1
  197. package/lib/__tests__/LabelGroup.test.js +0 -38
  198. package/lib/__tests__/Link.test.d.ts +0 -1
  199. package/lib/__tests__/Link.test.js +0 -70
  200. package/lib/__tests__/Merge.types.test.d.ts +0 -30
  201. package/lib/__tests__/Merge.types.test.js +0 -27
  202. package/lib/__tests__/Overlay.test.d.ts +0 -1
  203. package/lib/__tests__/Overlay.test.js +0 -145
  204. package/lib/__tests__/Pagehead.test.d.ts +0 -1
  205. package/lib/__tests__/Pagehead.test.js +0 -37
  206. package/lib/__tests__/Pagination/Pagination.test.d.ts +0 -1
  207. package/lib/__tests__/Pagination/Pagination.test.js +0 -47
  208. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  209. package/lib/__tests__/Pagination/PaginationModel.test.js +0 -186
  210. package/lib/__tests__/PointerBox.test.d.ts +0 -1
  211. package/lib/__tests__/PointerBox.test.js +0 -46
  212. package/lib/__tests__/Popover.test.d.ts +0 -1
  213. package/lib/__tests__/Popover.test.js +0 -66
  214. package/lib/__tests__/Portal.test.d.ts +0 -1
  215. package/lib/__tests__/Portal.test.js +0 -124
  216. package/lib/__tests__/Position.test.d.ts +0 -1
  217. package/lib/__tests__/Position.test.js +0 -143
  218. package/lib/__tests__/ProgressBar.test.d.ts +0 -1
  219. package/lib/__tests__/ProgressBar.test.js +0 -68
  220. package/lib/__tests__/SelectMenu.test.d.ts +0 -1
  221. package/lib/__tests__/SelectMenu.test.js +0 -155
  222. package/lib/__tests__/SelectPanel.test.d.ts +0 -1
  223. package/lib/__tests__/SelectPanel.test.js +0 -80
  224. package/lib/__tests__/SideNav.test.d.ts +0 -1
  225. package/lib/__tests__/SideNav.test.js +0 -71
  226. package/lib/__tests__/Spinner.test.d.ts +0 -1
  227. package/lib/__tests__/Spinner.test.js +0 -53
  228. package/lib/__tests__/StateLabel.test.d.ts +0 -1
  229. package/lib/__tests__/StateLabel.test.js +0 -71
  230. package/lib/__tests__/StyledOcticon.test.d.ts +0 -1
  231. package/lib/__tests__/StyledOcticon.test.js +0 -40
  232. package/lib/__tests__/SubNav.test.d.ts +0 -1
  233. package/lib/__tests__/SubNav.test.js +0 -62
  234. package/lib/__tests__/SubNavLink.test.d.ts +0 -1
  235. package/lib/__tests__/SubNavLink.test.js +0 -49
  236. package/lib/__tests__/TabNav.test.d.ts +0 -1
  237. package/lib/__tests__/TabNav.test.js +0 -49
  238. package/lib/__tests__/Text.test.d.ts +0 -1
  239. package/lib/__tests__/Text.test.js +0 -105
  240. package/lib/__tests__/TextInput.test.d.ts +0 -1
  241. package/lib/__tests__/TextInput.test.js +0 -78
  242. package/lib/__tests__/TextInputWithTokens.test.d.ts +0 -1
  243. package/lib/__tests__/TextInputWithTokens.test.js +0 -389
  244. package/lib/__tests__/ThemeProvider.test.d.ts +0 -1
  245. package/lib/__tests__/ThemeProvider.test.js +0 -444
  246. package/lib/__tests__/Timeline.test.d.ts +0 -1
  247. package/lib/__tests__/Timeline.test.js +0 -75
  248. package/lib/__tests__/Token.test.d.ts +0 -1
  249. package/lib/__tests__/Token.test.js +0 -180
  250. package/lib/__tests__/Tooltip.test.d.ts +0 -1
  251. package/lib/__tests__/Tooltip.test.js +0 -69
  252. package/lib/__tests__/Truncate.test.d.ts +0 -1
  253. package/lib/__tests__/Truncate.test.js +0 -63
  254. package/lib/__tests__/UnderlineNav.test.d.ts +0 -1
  255. package/lib/__tests__/UnderlineNav.test.js +0 -72
  256. package/lib/__tests__/UnderlineNavLink.test.d.ts +0 -1
  257. package/lib/__tests__/UnderlineNavLink.test.js +0 -51
  258. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  259. package/lib/__tests__/behaviors/anchoredPosition.test.js +0 -390
  260. package/lib/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  261. package/lib/__tests__/behaviors/focusTrap.test.js +0 -234
  262. package/lib/__tests__/behaviors/focusZone.test.d.ts +0 -1
  263. package/lib/__tests__/behaviors/focusZone.test.js +0 -570
  264. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  265. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +0 -55
  266. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  267. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -226
  268. package/lib/__tests__/filterObject.test.d.ts +0 -1
  269. package/lib/__tests__/filterObject.test.js +0 -30
  270. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  271. package/lib/__tests__/hooks/useAnchoredPosition.test.js +0 -54
  272. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  273. package/lib/__tests__/hooks/useOnEscapePress.test.js +0 -32
  274. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  275. package/lib/__tests__/hooks/useOnOutsideClick.test.js +0 -87
  276. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  277. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -60
  278. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  279. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -45
  280. package/lib/__tests__/theme.test.d.ts +0 -1
  281. package/lib/__tests__/theme.test.js +0 -36
  282. package/lib/__tests__/themeGet.test.d.ts +0 -1
  283. package/lib/__tests__/themeGet.test.js +0 -25
  284. package/lib/__tests__/useSafeTimeout.test.d.ts +0 -1
  285. package/lib/__tests__/useSafeTimeout.test.js +0 -45
  286. package/lib/stories/ActionList.stories.js +0 -453
  287. package/lib/stories/ActionMenu.stories.js +0 -338
  288. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  289. package/lib/stories/Autocomplete.stories.js +0 -608
  290. package/lib/stories/AvatarStack.stories.js +0 -49
  291. package/lib/stories/Button.stories.js +0 -125
  292. package/lib/stories/ConfirmationDialog.stories.js +0 -111
  293. package/lib/stories/Dialog.stories.js +0 -265
  294. package/lib/stories/DropdownMenu.stories.js +0 -122
  295. package/lib/stories/IssueLabelToken.stories.js +0 -165
  296. package/lib/stories/Overlay.stories.js +0 -204
  297. package/lib/stories/Portal.stories.js +0 -104
  298. package/lib/stories/ProfileToken.stories.js +0 -162
  299. package/lib/stories/SelectPanel.stories.js +0 -399
  300. package/lib/stories/TextInputWithTokens.stories.js +0 -235
  301. package/lib/stories/ThemeProvider.stories.js +0 -102
  302. package/lib/stories/Token.stories.js +0 -159
  303. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  304. package/lib/stories/useFocusTrap.stories.js +0 -356
  305. package/lib/stories/useFocusZone.stories.js +0 -599
  306. package/lib-esm/__tests__/ActionList.test.d.ts +0 -1
  307. package/lib-esm/__tests__/ActionList.test.js +0 -57
  308. package/lib-esm/__tests__/ActionList.types.test.d.ts +0 -6
  309. package/lib-esm/__tests__/ActionList.types.test.js +0 -45
  310. package/lib-esm/__tests__/ActionMenu.test.d.ts +0 -1
  311. package/lib-esm/__tests__/ActionMenu.test.js +0 -139
  312. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +0 -1
  313. package/lib-esm/__tests__/AnchoredOverlay.test.js +0 -134
  314. package/lib-esm/__tests__/Autocomplete.test.d.ts +0 -1
  315. package/lib-esm/__tests__/Autocomplete.test.js +0 -494
  316. package/lib-esm/__tests__/Avatar.test.d.ts +0 -1
  317. package/lib-esm/__tests__/Avatar.test.js +0 -56
  318. package/lib-esm/__tests__/AvatarStack.test.d.ts +0 -1
  319. package/lib-esm/__tests__/AvatarStack.test.js +0 -58
  320. package/lib-esm/__tests__/BorderBox.test.d.ts +0 -1
  321. package/lib-esm/__tests__/BorderBox.test.js +0 -47
  322. package/lib-esm/__tests__/Box.test.d.ts +0 -1
  323. package/lib-esm/__tests__/Box.test.js +0 -67
  324. package/lib-esm/__tests__/BranchName.test.d.ts +0 -1
  325. package/lib-esm/__tests__/BranchName.test.js +0 -26
  326. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +0 -1
  327. package/lib-esm/__tests__/Breadcrumbs.test.js +0 -27
  328. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  329. package/lib-esm/__tests__/BreadcrumbsItem.test.js +0 -39
  330. package/lib-esm/__tests__/Button.test.d.ts +0 -1
  331. package/lib-esm/__tests__/Button.test.js +0 -133
  332. package/lib-esm/__tests__/Caret.test.d.ts +0 -1
  333. package/lib-esm/__tests__/Caret.test.js +0 -42
  334. package/lib-esm/__tests__/CircleBadge.test.d.ts +0 -1
  335. package/lib-esm/__tests__/CircleBadge.test.js +0 -70
  336. package/lib-esm/__tests__/CircleOcticon.test.d.ts +0 -1
  337. package/lib-esm/__tests__/CircleOcticon.test.js +0 -59
  338. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +0 -1
  339. package/lib-esm/__tests__/ConfirmationDialog.test.js +0 -113
  340. package/lib-esm/__tests__/CounterLabel.test.d.ts +0 -1
  341. package/lib-esm/__tests__/CounterLabel.test.js +0 -47
  342. package/lib-esm/__tests__/Details.test.d.ts +0 -1
  343. package/lib-esm/__tests__/Details.test.js +0 -107
  344. package/lib-esm/__tests__/Dialog.test.d.ts +0 -1
  345. package/lib-esm/__tests__/Dialog.test.js +0 -171
  346. package/lib-esm/__tests__/Dropdown.test.d.ts +0 -1
  347. package/lib-esm/__tests__/Dropdown.test.js +0 -53
  348. package/lib-esm/__tests__/DropdownMenu.test.d.ts +0 -1
  349. package/lib-esm/__tests__/DropdownMenu.test.js +0 -137
  350. package/lib-esm/__tests__/FilterList.test.d.ts +0 -1
  351. package/lib-esm/__tests__/FilterList.test.js +0 -26
  352. package/lib-esm/__tests__/FilterListItem.test.d.ts +0 -1
  353. package/lib-esm/__tests__/FilterListItem.test.js +0 -36
  354. package/lib-esm/__tests__/FilteredSearch.test.d.ts +0 -1
  355. package/lib-esm/__tests__/FilteredSearch.test.js +0 -26
  356. package/lib-esm/__tests__/Flash.test.d.ts +0 -1
  357. package/lib-esm/__tests__/Flash.test.js +0 -51
  358. package/lib-esm/__tests__/Flex.test.d.ts +0 -1
  359. package/lib-esm/__tests__/Flex.test.js +0 -64
  360. package/lib-esm/__tests__/FormGroup.test.d.ts +0 -1
  361. package/lib-esm/__tests__/FormGroup.test.js +0 -44
  362. package/lib-esm/__tests__/Grid.test.d.ts +0 -1
  363. package/lib-esm/__tests__/Grid.test.js +0 -94
  364. package/lib-esm/__tests__/Header.test.d.ts +0 -1
  365. package/lib-esm/__tests__/Header.test.js +0 -48
  366. package/lib-esm/__tests__/Heading.test.d.ts +0 -1
  367. package/lib-esm/__tests__/Heading.test.js +0 -99
  368. package/lib-esm/__tests__/Label.test.d.ts +0 -1
  369. package/lib-esm/__tests__/Label.test.js +0 -36
  370. package/lib-esm/__tests__/LabelGroup.test.d.ts +0 -1
  371. package/lib-esm/__tests__/LabelGroup.test.js +0 -26
  372. package/lib-esm/__tests__/Link.test.d.ts +0 -1
  373. package/lib-esm/__tests__/Link.test.js +0 -60
  374. package/lib-esm/__tests__/Merge.types.test.d.ts +0 -30
  375. package/lib-esm/__tests__/Merge.types.test.js +0 -14
  376. package/lib-esm/__tests__/Overlay.test.d.ts +0 -1
  377. package/lib-esm/__tests__/Overlay.test.js +0 -123
  378. package/lib-esm/__tests__/Pagehead.test.d.ts +0 -1
  379. package/lib-esm/__tests__/Pagehead.test.js +0 -26
  380. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +0 -1
  381. package/lib-esm/__tests__/Pagination/Pagination.test.js +0 -35
  382. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  383. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +0 -182
  384. package/lib-esm/__tests__/PointerBox.test.d.ts +0 -1
  385. package/lib-esm/__tests__/PointerBox.test.js +0 -36
  386. package/lib-esm/__tests__/Popover.test.d.ts +0 -1
  387. package/lib-esm/__tests__/Popover.test.js +0 -53
  388. package/lib-esm/__tests__/Portal.test.d.ts +0 -1
  389. package/lib-esm/__tests__/Portal.test.js +0 -104
  390. package/lib-esm/__tests__/Position.test.d.ts +0 -1
  391. package/lib-esm/__tests__/Position.test.js +0 -133
  392. package/lib-esm/__tests__/ProgressBar.test.d.ts +0 -1
  393. package/lib-esm/__tests__/ProgressBar.test.js +0 -58
  394. package/lib-esm/__tests__/SelectMenu.test.d.ts +0 -1
  395. package/lib-esm/__tests__/SelectMenu.test.js +0 -145
  396. package/lib-esm/__tests__/SelectPanel.test.d.ts +0 -1
  397. package/lib-esm/__tests__/SelectPanel.test.js +0 -65
  398. package/lib-esm/__tests__/SideNav.test.d.ts +0 -1
  399. package/lib-esm/__tests__/SideNav.test.js +0 -60
  400. package/lib-esm/__tests__/Spinner.test.d.ts +0 -1
  401. package/lib-esm/__tests__/Spinner.test.js +0 -43
  402. package/lib-esm/__tests__/StateLabel.test.d.ts +0 -1
  403. package/lib-esm/__tests__/StateLabel.test.js +0 -61
  404. package/lib-esm/__tests__/StyledOcticon.test.d.ts +0 -1
  405. package/lib-esm/__tests__/StyledOcticon.test.js +0 -29
  406. package/lib-esm/__tests__/SubNav.test.d.ts +0 -1
  407. package/lib-esm/__tests__/SubNav.test.js +0 -50
  408. package/lib-esm/__tests__/SubNavLink.test.d.ts +0 -1
  409. package/lib-esm/__tests__/SubNavLink.test.js +0 -39
  410. package/lib-esm/__tests__/TabNav.test.d.ts +0 -1
  411. package/lib-esm/__tests__/TabNav.test.js +0 -39
  412. package/lib-esm/__tests__/Text.test.d.ts +0 -1
  413. package/lib-esm/__tests__/Text.test.js +0 -93
  414. package/lib-esm/__tests__/TextInput.test.d.ts +0 -1
  415. package/lib-esm/__tests__/TextInput.test.js +0 -68
  416. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +0 -1
  417. package/lib-esm/__tests__/TextInputWithTokens.test.js +0 -341
  418. package/lib-esm/__tests__/ThemeProvider.test.d.ts +0 -1
  419. package/lib-esm/__tests__/ThemeProvider.test.js +0 -408
  420. package/lib-esm/__tests__/Timeline.test.d.ts +0 -1
  421. package/lib-esm/__tests__/Timeline.test.js +0 -65
  422. package/lib-esm/__tests__/Token.test.d.ts +0 -1
  423. package/lib-esm/__tests__/Token.test.js +0 -166
  424. package/lib-esm/__tests__/Tooltip.test.d.ts +0 -1
  425. package/lib-esm/__tests__/Tooltip.test.js +0 -59
  426. package/lib-esm/__tests__/Truncate.test.d.ts +0 -1
  427. package/lib-esm/__tests__/Truncate.test.js +0 -53
  428. package/lib-esm/__tests__/UnderlineNav.test.d.ts +0 -1
  429. package/lib-esm/__tests__/UnderlineNav.test.js +0 -60
  430. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +0 -1
  431. package/lib-esm/__tests__/UnderlineNavLink.test.js +0 -41
  432. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  433. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +0 -388
  434. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  435. package/lib-esm/__tests__/behaviors/focusTrap.test.js +0 -227
  436. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +0 -1
  437. package/lib-esm/__tests__/behaviors/focusZone.test.js +0 -487
  438. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  439. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +0 -48
  440. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  441. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -224
  442. package/lib-esm/__tests__/filterObject.test.d.ts +0 -1
  443. package/lib-esm/__tests__/filterObject.test.js +0 -27
  444. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  445. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +0 -46
  446. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  447. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +0 -23
  448. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  449. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +0 -68
  450. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  451. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -52
  452. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  453. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -36
  454. package/lib-esm/__tests__/theme.test.d.ts +0 -1
  455. package/lib-esm/__tests__/theme.test.js +0 -33
  456. package/lib-esm/__tests__/themeGet.test.d.ts +0 -1
  457. package/lib-esm/__tests__/themeGet.test.js +0 -22
  458. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +0 -1
  459. package/lib-esm/__tests__/useSafeTimeout.test.js +0 -39
  460. package/lib-esm/stories/ActionList.stories.js +0 -394
  461. package/lib-esm/stories/ActionMenu.stories.js +0 -293
  462. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  463. package/lib-esm/stories/Autocomplete.stories.js +0 -549
  464. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  465. package/lib-esm/stories/Button.stories.js +0 -86
  466. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -86
  467. package/lib-esm/stories/Dialog.stories.js +0 -240
  468. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  469. package/lib-esm/stories/IssueLabelToken.stories.js +0 -139
  470. package/lib-esm/stories/Overlay.stories.js +0 -173
  471. package/lib-esm/stories/Portal.stories.js +0 -68
  472. package/lib-esm/stories/ProfileToken.stories.js +0 -136
  473. package/lib-esm/stories/SelectPanel.stories.js +0 -334
  474. package/lib-esm/stories/TextInputWithTokens.stories.js +0 -196
  475. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  476. package/lib-esm/stories/Token.stories.js +0 -133
  477. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  478. package/lib-esm/stories/useFocusTrap.stories.js +0 -309
  479. package/lib-esm/stories/useFocusZone.stories.js +0 -554
  480. package/migrating.md +0 -250
  481. package/now.json +0 -17
  482. package/package-lock.json +0 -29369
  483. package/rollup.config.js +0 -36
  484. package/script/build +0 -19
  485. package/script/build-storybook +0 -10
  486. package/script/setup +0 -12
  487. package/src/ActionList/Divider.tsx +0 -25
  488. package/src/ActionList/Group.tsx +0 -45
  489. package/src/ActionList/Header.tsx +0 -74
  490. package/src/ActionList/Item.tsx +0 -483
  491. package/src/ActionList/List.tsx +0 -258
  492. package/src/ActionList/index.ts +0 -21
  493. package/src/ActionMenu.tsx +0 -106
  494. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -191
  495. package/src/AnchoredOverlay/index.ts +0 -2
  496. package/src/Autocomplete/Autocomplete.tsx +0 -103
  497. package/src/Autocomplete/AutocompleteContext.tsx +0 -19
  498. package/src/Autocomplete/AutocompleteInput.tsx +0 -179
  499. package/src/Autocomplete/AutocompleteMenu.tsx +0 -341
  500. package/src/Autocomplete/AutocompleteOverlay.tsx +0 -68
  501. package/src/Autocomplete/index.ts +0 -2
  502. package/src/Avatar.tsx +0 -46
  503. package/src/AvatarPair.tsx +0 -35
  504. package/src/AvatarStack.tsx +0 -159
  505. package/src/BaseStyles.tsx +0 -53
  506. package/src/BorderBox.tsx +0 -18
  507. package/src/Box.tsx +0 -54
  508. package/src/BranchName.tsx +0 -19
  509. package/src/Breadcrumbs.tsx +0 -101
  510. package/src/Button/Button.tsx +0 -40
  511. package/src/Button/ButtonBase.tsx +0 -43
  512. package/src/Button/ButtonClose.tsx +0 -40
  513. package/src/Button/ButtonDanger.tsx +0 -43
  514. package/src/Button/ButtonGroup.tsx +0 -55
  515. package/src/Button/ButtonInvisible.tsx +0 -32
  516. package/src/Button/ButtonOutline.tsx +0 -43
  517. package/src/Button/ButtonPrimary.tsx +0 -41
  518. package/src/Button/ButtonStyles.tsx +0 -36
  519. package/src/Button/ButtonTableList.tsx +0 -58
  520. package/src/Button/index.ts +0 -16
  521. package/src/Caret.tsx +0 -133
  522. package/src/CircleBadge.tsx +0 -55
  523. package/src/CircleOcticon.tsx +0 -37
  524. package/src/CounterLabel.tsx +0 -52
  525. package/src/Details.tsx +0 -23
  526. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  527. package/src/Dialog/Dialog.tsx +0 -432
  528. package/src/Dialog.tsx +0 -149
  529. package/src/Dropdown.tsx +0 -158
  530. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  531. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  532. package/src/DropdownMenu/index.ts +0 -4
  533. package/src/DropdownStyles.ts +0 -128
  534. package/src/FilterList.tsx +0 -81
  535. package/src/FilteredActionList/FilteredActionList.tsx +0 -142
  536. package/src/FilteredActionList/index.ts +0 -2
  537. package/src/FilteredSearch.tsx +0 -28
  538. package/src/Flash.tsx +0 -77
  539. package/src/Flex.tsx +0 -15
  540. package/src/FormGroup.tsx +0 -27
  541. package/src/Grid.tsx +0 -15
  542. package/src/Header.tsx +0 -84
  543. package/src/Heading.tsx +0 -21
  544. package/src/Label.tsx +0 -75
  545. package/src/LabelGroup.tsx +0 -18
  546. package/src/Link.tsx +0 -46
  547. package/src/Overlay.tsx +0 -197
  548. package/src/Pagehead.tsx +0 -17
  549. package/src/Pagination/Pagination.tsx +0 -214
  550. package/src/Pagination/index.ts +0 -4
  551. package/src/Pagination/model.tsx +0 -187
  552. package/src/PointerBox.tsx +0 -31
  553. package/src/Popover.tsx +0 -236
  554. package/src/Portal/Portal.tsx +0 -96
  555. package/src/Portal/index.ts +0 -5
  556. package/src/Position.tsx +0 -63
  557. package/src/ProgressBar.tsx +0 -52
  558. package/src/SelectMenu/SelectMenu.tsx +0 -125
  559. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  560. package/src/SelectMenu/SelectMenuDivider.tsx +0 -25
  561. package/src/SelectMenu/SelectMenuFilter.tsx +0 -51
  562. package/src/SelectMenu/SelectMenuFooter.tsx +0 -28
  563. package/src/SelectMenu/SelectMenuHeader.tsx +0 -50
  564. package/src/SelectMenu/SelectMenuItem.tsx +0 -137
  565. package/src/SelectMenu/SelectMenuList.tsx +0 -42
  566. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -24
  567. package/src/SelectMenu/SelectMenuModal.tsx +0 -121
  568. package/src/SelectMenu/SelectMenuTab.tsx +0 -88
  569. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -30
  570. package/src/SelectMenu/SelectMenuTabs.tsx +0 -44
  571. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  572. package/src/SelectMenu/index.ts +0 -15
  573. package/src/SelectPanel/SelectPanel.tsx +0 -173
  574. package/src/SelectPanel/index.ts +0 -2
  575. package/src/SideNav.tsx +0 -193
  576. package/src/Spinner.tsx +0 -59
  577. package/src/StateLabel.tsx +0 -102
  578. package/src/StyledOcticon.tsx +0 -24
  579. package/src/SubNav.tsx +0 -129
  580. package/src/TabNav.tsx +0 -77
  581. package/src/Text.tsx +0 -13
  582. package/src/TextInput.tsx +0 -68
  583. package/src/TextInputWithTokens.tsx +0 -271
  584. package/src/ThemeProvider.tsx +0 -176
  585. package/src/Timeline.tsx +0 -141
  586. package/src/Token/AvatarToken.tsx +0 -54
  587. package/src/Token/IssueLabelToken.tsx +0 -150
  588. package/src/Token/Token.tsx +0 -112
  589. package/src/Token/TokenBase.tsx +0 -134
  590. package/src/Token/_RemoveTokenButton.tsx +0 -98
  591. package/src/Token/_TokenTextContainer.tsx +0 -47
  592. package/src/Token/index.ts +0 -3
  593. package/src/Tooltip.tsx +0 -263
  594. package/src/Truncate.tsx +0 -36
  595. package/src/UnderlineNav.tsx +0 -110
  596. package/src/_TextInputWrapper.tsx +0 -105
  597. package/src/_UnstyledTextInput.tsx +0 -19
  598. package/src/__tests__/.eslintrc.json +0 -11
  599. package/src/__tests__/ActionList.test.tsx +0 -53
  600. package/src/__tests__/ActionList.types.test.tsx +0 -51
  601. package/src/__tests__/ActionMenu.test.tsx +0 -136
  602. package/src/__tests__/AnchoredOverlay.test.tsx +0 -150
  603. package/src/__tests__/Autocomplete.test.tsx +0 -444
  604. package/src/__tests__/Avatar.test.tsx +0 -44
  605. package/src/__tests__/AvatarStack.test.tsx +0 -48
  606. package/src/__tests__/BorderBox.test.tsx +0 -43
  607. package/src/__tests__/Box.test.tsx +0 -42
  608. package/src/__tests__/BranchName.test.tsx +0 -26
  609. package/src/__tests__/Breadcrumbs.test.tsx +0 -27
  610. package/src/__tests__/BreadcrumbsItem.test.tsx +0 -31
  611. package/src/__tests__/Button.test.tsx +0 -128
  612. package/src/__tests__/Caret.test.tsx +0 -36
  613. package/src/__tests__/CircleBadge.test.tsx +0 -66
  614. package/src/__tests__/CircleOcticon.test.tsx +0 -50
  615. package/src/__tests__/ConfirmationDialog.test.tsx +0 -120
  616. package/src/__tests__/CounterLabel.test.tsx +0 -50
  617. package/src/__tests__/Details.test.tsx +0 -115
  618. package/src/__tests__/Dialog.test.tsx +0 -155
  619. package/src/__tests__/Dropdown.test.tsx +0 -53
  620. package/src/__tests__/DropdownMenu.test.tsx +0 -136
  621. package/src/__tests__/FilterList.test.tsx +0 -26
  622. package/src/__tests__/FilterListItem.test.tsx +0 -31
  623. package/src/__tests__/FilteredSearch.test.tsx +0 -26
  624. package/src/__tests__/Flash.test.tsx +0 -45
  625. package/src/__tests__/Flex.test.tsx +0 -58
  626. package/src/__tests__/FormGroup.test.tsx +0 -38
  627. package/src/__tests__/Grid.test.tsx +0 -82
  628. package/src/__tests__/Header.test.tsx +0 -49
  629. package/src/__tests__/Heading.test.tsx +0 -91
  630. package/src/__tests__/Label.test.tsx +0 -34
  631. package/src/__tests__/LabelGroup.test.tsx +0 -30
  632. package/src/__tests__/Link.test.tsx +0 -47
  633. package/src/__tests__/Merge.types.test.ts +0 -39
  634. package/src/__tests__/Overlay.test.tsx +0 -103
  635. package/src/__tests__/Pagehead.test.tsx +0 -23
  636. package/src/__tests__/Pagination/Pagination.test.tsx +0 -30
  637. package/src/__tests__/Pagination/PaginationModel.test.tsx +0 -133
  638. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -184
  639. package/src/__tests__/PointerBox.test.tsx +0 -34
  640. package/src/__tests__/Popover.test.tsx +0 -68
  641. package/src/__tests__/Portal.test.tsx +0 -103
  642. package/src/__tests__/Position.test.tsx +0 -117
  643. package/src/__tests__/ProgressBar.test.tsx +0 -40
  644. package/src/__tests__/SelectMenu.test.tsx +0 -142
  645. package/src/__tests__/SelectPanel.test.tsx +0 -63
  646. package/src/__tests__/SideNav.test.tsx +0 -62
  647. package/src/__tests__/Spinner.test.tsx +0 -42
  648. package/src/__tests__/StateLabel.test.tsx +0 -48
  649. package/src/__tests__/StyledOcticon.test.tsx +0 -26
  650. package/src/__tests__/SubNav.test.tsx +0 -50
  651. package/src/__tests__/SubNavLink.test.tsx +0 -31
  652. package/src/__tests__/TabNav.test.tsx +0 -32
  653. package/src/__tests__/Text.test.tsx +0 -78
  654. package/src/__tests__/TextInput.test.tsx +0 -49
  655. package/src/__tests__/TextInputWithTokens.test.tsx +0 -262
  656. package/src/__tests__/ThemeProvider.test.tsx +0 -441
  657. package/src/__tests__/Timeline.test.tsx +0 -58
  658. package/src/__tests__/Token.test.tsx +0 -118
  659. package/src/__tests__/Tooltip.test.tsx +0 -52
  660. package/src/__tests__/Truncate.test.tsx +0 -43
  661. package/src/__tests__/UnderlineNav.test.tsx +0 -58
  662. package/src/__tests__/UnderlineNavLink.test.tsx +0 -31
  663. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +0 -223
  664. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +0 -80
  665. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +0 -332
  666. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +0 -3414
  667. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +0 -19
  668. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +0 -377
  669. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +0 -14
  670. package/src/__tests__/__snapshots__/Box.test.tsx.snap +0 -201
  671. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +0 -17
  672. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +0 -29
  673. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +0 -79
  674. package/src/__tests__/__snapshots__/Button.test.tsx.snap +0 -840
  675. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +0 -373
  676. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +0 -141
  677. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +0 -64
  678. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +0 -89
  679. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +0 -22
  680. package/src/__tests__/__snapshots__/Details.test.tsx.snap +0 -15
  681. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +0 -200
  682. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -249
  683. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +0 -106
  684. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +0 -13
  685. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +0 -80
  686. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +0 -32
  687. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +0 -32
  688. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +0 -130
  689. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +0 -25
  690. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +0 -178
  691. package/src/__tests__/__snapshots__/Header.test.tsx.snap +0 -79
  692. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +0 -13
  693. package/src/__tests__/__snapshots__/Label.test.tsx.snap +0 -74
  694. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +0 -15
  695. package/src/__tests__/__snapshots__/Link.test.tsx.snap +0 -213
  696. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +0 -15
  697. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +0 -174
  698. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +0 -4687
  699. package/src/__tests__/__snapshots__/Position.test.tsx.snap +0 -44
  700. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +0 -53
  701. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +0 -469
  702. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +0 -123
  703. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +0 -143
  704. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +0 -33
  705. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -388
  706. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +0 -25
  707. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +0 -44
  708. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +0 -199
  709. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +0 -58
  710. package/src/__tests__/__snapshots__/Text.test.tsx.snap +0 -7
  711. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +0 -440
  712. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +0 -5308
  713. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +0 -15
  714. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +0 -159
  715. package/src/__tests__/__snapshots__/Token.test.tsx.snap +0 -3787
  716. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -227
  717. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +0 -17
  718. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +0 -59
  719. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +0 -130
  720. package/src/__tests__/behaviors/anchoredPosition.test.ts +0 -295
  721. package/src/__tests__/behaviors/focusTrap.test.tsx +0 -236
  722. package/src/__tests__/behaviors/focusZone.test.tsx +0 -549
  723. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +0 -61
  724. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +0 -195
  725. package/src/__tests__/filterObject.test.ts +0 -54
  726. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +0 -31
  727. package/src/__tests__/hooks/useOnEscapePress.test.tsx +0 -16
  728. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +0 -48
  729. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +0 -48
  730. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +0 -39
  731. package/src/__tests__/theme.test.ts +0 -41
  732. package/src/__tests__/themeGet.test.ts +0 -15
  733. package/src/__tests__/useSafeTimeout.test.tsx +0 -36
  734. package/src/behaviors/anchoredPosition.ts +0 -442
  735. package/src/behaviors/focusTrap.ts +0 -184
  736. package/src/behaviors/focusZone.ts +0 -713
  737. package/src/behaviors/scrollIntoViewingArea.ts +0 -27
  738. package/src/constants.ts +0 -62
  739. package/src/hooks/index.ts +0 -11
  740. package/src/hooks/useAnchoredPosition.ts +0 -53
  741. package/src/hooks/useCombinedRefs.ts +0 -40
  742. package/src/hooks/useDetails.tsx +0 -54
  743. package/src/hooks/useDialog.ts +0 -121
  744. package/src/hooks/useFocusTrap.ts +0 -80
  745. package/src/hooks/useFocusZone.ts +0 -64
  746. package/src/hooks/useOnEscapePress.ts +0 -63
  747. package/src/hooks/useOnOutsideClick.tsx +0 -82
  748. package/src/hooks/useOpenAndCloseFocus.ts +0 -32
  749. package/src/hooks/useOverlay.tsx +0 -34
  750. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  751. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  752. package/src/hooks/useRenderForcingRef.ts +0 -22
  753. package/src/hooks/useResizeObserver.ts +0 -11
  754. package/src/hooks/useSafeTimeout.ts +0 -38
  755. package/src/hooks/useScrollFlash.ts +0 -21
  756. package/src/index.ts +0 -170
  757. package/src/polyfills/eventListenerSignal.ts +0 -66
  758. package/src/stories/ActionList.stories.tsx +0 -437
  759. package/src/stories/ActionMenu.stories.tsx +0 -322
  760. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  761. package/src/stories/Autocomplete.stories.tsx +0 -572
  762. package/src/stories/AvatarStack.stories.tsx +0 -37
  763. package/src/stories/Button.stories.tsx +0 -92
  764. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  765. package/src/stories/Dialog.stories.tsx +0 -240
  766. package/src/stories/DropdownMenu.stories.tsx +0 -84
  767. package/src/stories/IssueLabelToken.stories.tsx +0 -138
  768. package/src/stories/Overlay.stories.tsx +0 -213
  769. package/src/stories/Portal.stories.tsx +0 -109
  770. package/src/stories/ProfileToken.stories.tsx +0 -129
  771. package/src/stories/SelectPanel.stories.tsx +0 -353
  772. package/src/stories/TextInputWithTokens.stories.tsx +0 -146
  773. package/src/stories/ThemeProvider.stories.tsx +0 -104
  774. package/src/stories/Token.stories.tsx +0 -126
  775. package/src/stories/useAnchoredPosition.stories.tsx +0 -320
  776. package/src/stories/useFocusTrap.stories.tsx +0 -400
  777. package/src/stories/useFocusZone.stories.tsx +0 -663
  778. package/src/sx.ts +0 -9
  779. package/src/theme-preval.js +0 -79
  780. package/src/theme.ts +0 -3
  781. package/src/utils/deprecate.tsx +0 -73
  782. package/src/utils/isNumeric.tsx +0 -4
  783. package/src/utils/iterateFocusableElements.ts +0 -121
  784. package/src/utils/ssr.tsx +0 -1
  785. package/src/utils/test-deprecations.tsx +0 -19
  786. package/src/utils/test-helpers.tsx +0 -7
  787. package/src/utils/test-matchers.tsx +0 -109
  788. package/src/utils/testing.tsx +0 -242
  789. package/src/utils/theme.js +0 -64
  790. package/src/utils/types/AriaRole.ts +0 -71
  791. package/src/utils/types/ComponentProps.ts +0 -13
  792. package/src/utils/types/Flatten.ts +0 -4
  793. package/src/utils/types/MandateProps.ts +0 -19
  794. package/src/utils/types/Merge.ts +0 -20
  795. package/src/utils/types/index.ts +0 -5
  796. package/src/utils/uniqueId.ts +0 -6
  797. package/src/utils/userAgent.ts +0 -7
  798. package/stats.html +0 -3279
  799. package/tsconfig.build.json +0 -7
  800. package/tsconfig.json +0 -20
@@ -1,79 +0,0 @@
1
- // @preval
2
- // This file needs to be a JavaScript file using CommonJS to be compatiable with preval
3
-
4
- const {default: primitives} = require('@primer/primitives')
5
- const {partitionColors, fontStack, omitScale} = require('./utils/theme')
6
-
7
- const {lineHeight: lineHeights} = primitives.typography.normal
8
-
9
- const animation = {
10
- easeOutCubic: 'cubic-bezier(0.33, 1, 0.68, 1)'
11
- }
12
-
13
- const breakpoints = ['544px', '768px', '1012px', '1280px']
14
-
15
- const fonts = {
16
- normal: fontStack([
17
- '-apple-system',
18
- 'BlinkMacSystemFont',
19
- 'Segoe UI',
20
- 'Helvetica',
21
- 'Arial',
22
- 'sans-serif',
23
- 'Apple Color Emoji',
24
- 'Segoe UI Emoji'
25
- ]),
26
- mono: fontStack(['SFMono-Regular', 'Consolas', 'Liberation Mono', 'Menlo', 'Courier', 'monospace'])
27
- }
28
-
29
- const fontWeights = {
30
- light: 300,
31
- normal: 400,
32
- semibold: 500,
33
- bold: 600
34
- }
35
-
36
- const borderWidths = [0, '1px']
37
-
38
- const radii = ['0', '3px', '6px', '100px']
39
-
40
- const sizes = {
41
- small: '544px',
42
- medium: '768px',
43
- large: '1012px',
44
- xlarge: '1280px'
45
- }
46
-
47
- const fontSizes = ['12px', '14px', '16px', '20px', '24px', '32px', '40px', '48px']
48
-
49
- const space = ['0', '4px', '8px', '16px', '24px', '32px', '40px', '48px', '64px', '80px', '96px', '112px', '128px']
50
-
51
- /**
52
- * @type Record<keyof typeof primitives.colors, Record<'colors' | 'shadows', Partial<typeof primitives.colors.light>>
53
- */
54
- const colorSchemes = Object.entries(primitives.colors).reduce((acc, [name, variables]) => {
55
- const {colors, shadows} = partitionColors(variables)
56
- acc[name] = {
57
- colors: omitScale(colors),
58
- shadows: omitScale(shadows)
59
- }
60
- return acc
61
- }, {})
62
-
63
- const theme = {
64
- animation,
65
- borderWidths,
66
- breakpoints,
67
- fonts,
68
- fontSizes,
69
- fontWeights,
70
- lineHeights,
71
- radii,
72
- sizes,
73
- space,
74
- colorSchemes
75
- }
76
-
77
- module.exports = {
78
- theme
79
- }
package/src/theme.ts DELETED
@@ -1,3 +0,0 @@
1
- import {theme} from './theme-preval'
2
-
3
- export default theme
@@ -1,73 +0,0 @@
1
- import {useRef, useCallback} from 'react'
2
- declare let __DEV__: boolean
3
-
4
- type DeprecationType = {name: string; message: string; version: string}
5
-
6
- // eslint-disable-next-line @typescript-eslint/no-empty-function
7
- const noop = () => {}
8
- // eslint-disable-next-line import/no-mutable-exports
9
- let deprecate: ({name, message, version}: DeprecationType) => void | (() => void) = noop
10
-
11
- if (__DEV__) {
12
- deprecate = ({name, message, version}: DeprecationType) => {
13
- Deprecations.deprecate({name, message, version})
14
- }
15
- }
16
-
17
- export {deprecate}
18
-
19
- // eslint-disable-next-line import/no-mutable-exports
20
- let useDeprecation = null
21
-
22
- if (__DEV__) {
23
- useDeprecation = ({name, message, version}: DeprecationType) => {
24
- const ref = useRef(false)
25
- const logDeprecation = useCallback(() => {
26
- if (!ref.current) {
27
- ref.current = true
28
- deprecate({name, message, version})
29
- }
30
- }, [name, message, version])
31
-
32
- return logDeprecation
33
- }
34
- } else {
35
- useDeprecation = () => {
36
- return noop
37
- }
38
- }
39
-
40
- export {useDeprecation}
41
-
42
- export class Deprecations {
43
- static instance: Deprecations | null = null
44
- deprecations: Array<DeprecationType>
45
-
46
- static get() {
47
- if (!Deprecations.instance) {
48
- Deprecations.instance = new Deprecations()
49
- }
50
-
51
- return Deprecations.instance
52
- }
53
-
54
- constructor() {
55
- this.deprecations = []
56
- }
57
-
58
- static deprecate({name, message, version}: DeprecationType) {
59
- const msg = `WARNING! ${name} is deprecated and will be removed in version ${version}. ${message}`
60
- // eslint-disable-next-line no-console
61
- console.warn(msg)
62
-
63
- this.get().deprecations.push({name, message, version})
64
- }
65
-
66
- static getDeprecations() {
67
- return this.get().deprecations
68
- }
69
-
70
- static clearDeprecations() {
71
- this.get().deprecations.length = 0
72
- }
73
- }
@@ -1,4 +0,0 @@
1
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
- export default function isNumeric(n: any) {
3
- return !isNaN(parseFloat(n)) && isFinite(n)
4
- }
@@ -1,121 +0,0 @@
1
- /**
2
- * Options to the focusable elements iterator
3
- */
4
- export interface IterateFocusableElements {
5
- /**
6
- * (Default: false) Iterate through focusable elements in reverse-order
7
- */
8
- reverse?: boolean
9
-
10
- /**
11
- * (Default: false) Perform additional checks to determine tabbability
12
- * which may adversely affect app performance.
13
- */
14
- strict?: boolean
15
-
16
- /**
17
- * (Default: false) Only iterate tabbable elements, which is the subset
18
- * of focusable elements that are part of the page's tab sequence.
19
- */
20
- onlyTabbable?: boolean
21
- }
22
-
23
- /**
24
- * Returns an iterator over all of the focusable elements within `container`.
25
- * Note: If `container` is itself focusable it will be included in the results.
26
- * @param container The container over which to find focusable elements.
27
- * @param reverse If true, iterate backwards through focusable elements.
28
- */
29
- export function* iterateFocusableElements(
30
- container: HTMLElement,
31
- options: IterateFocusableElements = {}
32
- ): Generator<HTMLElement, undefined, undefined> {
33
- const strict = options.strict ?? false
34
- const acceptFn = options.onlyTabbable ?? false ? isTabbable : isFocusable
35
- const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
36
- acceptNode: node =>
37
- node instanceof HTMLElement && acceptFn(node, strict) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
38
- })
39
- let nextNode: Node | null = null
40
-
41
- // Allow the container to participate
42
- if (!options.reverse && acceptFn(container, strict)) {
43
- yield container
44
- }
45
-
46
- // If iterating in reverse, continue traversing down into the last child until we reach
47
- // a leaf DOM node
48
- if (options.reverse) {
49
- let lastChild = walker.lastChild()
50
- while (lastChild) {
51
- nextNode = lastChild
52
- lastChild = walker.lastChild()
53
- }
54
- } else {
55
- nextNode = walker.firstChild()
56
- }
57
- while (nextNode instanceof HTMLElement) {
58
- yield nextNode
59
- nextNode = options.reverse ? walker.previousNode() : walker.nextNode()
60
- }
61
-
62
- // Allow the container to participate (in reverse)
63
- if (options.reverse && acceptFn(container, strict)) {
64
- yield container
65
- }
66
-
67
- return undefined
68
- }
69
-
70
- /**
71
- * Determines whether the given element is focusable. If `strict` is true, we may
72
- * perform additional checks that require a reflow (less performant).
73
- * @param elem
74
- * @param strict
75
- */
76
- export function isFocusable(elem: HTMLElement, strict = false): boolean {
77
- // Certain conditions cause an element to never be focusable, even if they have tabindex="0"
78
- const disabledAttrInert =
79
- ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'OPTGROUP', 'OPTION', 'FIELDSET'].includes(elem.tagName) &&
80
- (elem as HTMLElement & {disabled: boolean}).disabled
81
- const hiddenInert = elem.hidden
82
- const hiddenInputInert = elem instanceof HTMLInputElement && elem.type === 'hidden'
83
- if (disabledAttrInert || hiddenInert || hiddenInputInert) {
84
- return false
85
- }
86
-
87
- // Each of the conditions checked below require a reflow, thus are gated by the `strict`
88
- // argument. If any are true, the element is not focusable, even if tabindex is set.
89
- if (strict) {
90
- const sizeInert = elem.offsetWidth === 0 || elem.offsetHeight === 0
91
- const visibilityInert = ['hidden', 'collapse'].includes(getComputedStyle(elem).visibility)
92
- const clientRectsInert = elem.getClientRects().length === 0
93
- if (sizeInert || visibilityInert || clientRectsInert) {
94
- return false
95
- }
96
- }
97
-
98
- // Any element with `tabindex` explicitly set can be focusable, even if it's set to "-1"
99
- if (elem.getAttribute('tabindex') != null) {
100
- return true
101
- }
102
-
103
- // One last way `elem.tabIndex` can be wrong.
104
- if (elem instanceof HTMLAnchorElement && elem.getAttribute('href') == null) {
105
- return false
106
- }
107
-
108
- return elem.tabIndex !== -1
109
- }
110
-
111
- /**
112
- * Determines whether the given element is tabbable. If `strict` is true, we may
113
- * perform additional checks that require a reflow (less performant). This check
114
- * ensures that the element is focusable and that its tabindex is not explicitly
115
- * set to "-1" (which makes it focusable, but removes it from the tab order).
116
- * @param elem
117
- * @param strict
118
- */
119
- export function isTabbable(elem: HTMLElement, strict = false): boolean {
120
- return isFocusable(elem, strict) && elem.getAttribute('tabindex') !== '-1'
121
- }
package/src/utils/ssr.tsx DELETED
@@ -1 +0,0 @@
1
- export {SSRProvider, useSSRSafeId} from '@react-aria/ssr'
@@ -1,19 +0,0 @@
1
- import semver from 'semver'
2
- import {Deprecations} from './deprecate'
3
-
4
- // eslint-disable-next-line @typescript-eslint/no-var-requires
5
- const ourVersion = require('../../package.json').version
6
-
7
- beforeEach(() => {
8
- Deprecations.clearDeprecations()
9
- })
10
-
11
- afterEach(() => {
12
- const deprecations = Deprecations.getDeprecations()
13
-
14
- for (const dep of deprecations) {
15
- if (semver.gte(ourVersion, dep.version)) {
16
- throw new Error(`Found a deprecation that should be removed in ${dep.version}`)
17
- }
18
- }
19
- })
@@ -1,7 +0,0 @@
1
- // JSDOM doesn't mock ResizeObserver
2
- global.ResizeObserver = jest.fn().mockImplementation(() => {
3
- return {
4
- observe: jest.fn(),
5
- disconnect: jest.fn()
6
- }
7
- })
@@ -1,109 +0,0 @@
1
- import 'jest-styled-components'
2
- import {styleSheetSerializer} from 'jest-styled-components/serializer'
3
- import React from 'react'
4
- import {ReactTestRendererJSON, ReactTestRendererNode} from 'react-test-renderer'
5
- import {getClasses, getComputedStyles, render} from './testing'
6
-
7
- expect.addSnapshotSerializer(styleSheetSerializer)
8
-
9
- const stringify = (d: Record<string, unknown>) => JSON.stringify(d, null, ' ')
10
-
11
- expect.extend({
12
- toMatchKeys(obj, values) {
13
- return {
14
- pass: Object.keys(values).every(key => this.equals(obj[key], values[key])),
15
- message: () => `Expected ${stringify(obj)} to have matching keys: ${stringify(values)}`
16
- }
17
- },
18
-
19
- toHaveClass(node, klass) {
20
- const classes = getClasses(node)
21
- const pass = classes.includes(klass)
22
- return {
23
- pass,
24
- message: () => `expected ${stringify(classes)} to include: ${stringify(klass)}`
25
- }
26
- },
27
-
28
- toHaveClasses(node, klasses, only = false) {
29
- const classes = getClasses(node)
30
- const pass = only
31
- ? this.equals(classes.sort(), klasses.sort())
32
- : klasses.every((klass: Array<string>) => classes.includes(klass))
33
- return {
34
- pass,
35
- message: () => `expected ${stringify(classes)} to include: ${stringify(klasses)}`
36
- }
37
- },
38
-
39
- toImplementSxBehavior(element) {
40
- const mediaKey = '@media (max-width:123px)'
41
- const sxPropValue = {
42
- [mediaKey]: {
43
- color: 'red.5'
44
- }
45
- }
46
-
47
- const elem = React.cloneElement(element, {sx: sxPropValue})
48
-
49
- function checkStylesDeep(rendered: ReactTestRendererJSON): boolean {
50
- const className = rendered.props.className
51
- const styles = getComputedStyles(className)
52
- const mediaStyles = styles[mediaKey] as Record<string, string> | null
53
- if (mediaStyles && mediaStyles.color) {
54
- return true
55
- } else if (rendered.children) {
56
- return rendered.children.some((child: ReactTestRendererNode) => checkStylesDeep(child as ReactTestRendererJSON))
57
- } else {
58
- return false
59
- }
60
- }
61
-
62
- return {
63
- pass: checkStylesDeep(render(elem)),
64
- message: () => 'sx prop values did not change styles of component nor of any sub-components'
65
- }
66
- },
67
-
68
- toSetExports(mod, expectedExports) {
69
- if (!Object.keys(expectedExports).includes('default')) {
70
- return {
71
- pass: false,
72
- message: () => "You must specify the module's default export"
73
- }
74
- }
75
-
76
- const seen = new Set()
77
- for (const exp of Object.keys(expectedExports)) {
78
- seen.add(exp)
79
- if (mod[exp] !== expectedExports[exp]) {
80
- if (!mod[exp] && !expectedExports[exp]) {
81
- continue
82
- }
83
-
84
- return {
85
- pass: false,
86
- message: () => `Module exported a different value from key '${exp}' than expected`
87
- }
88
- }
89
- }
90
-
91
- for (const exp of Object.keys(mod)) {
92
- if (seen.has(exp)) {
93
- continue
94
- }
95
-
96
- if (mod[exp] !== expectedExports[exp]) {
97
- return {
98
- pass: false,
99
- message: () => `Module exported an unexpected value from key '${exp}'`
100
- }
101
- }
102
- }
103
-
104
- return {
105
- pass: true,
106
- message: () => ''
107
- }
108
- }
109
- })
@@ -1,242 +0,0 @@
1
- import React from 'react'
2
- import {promisify} from 'util'
3
- import renderer from 'react-test-renderer'
4
- import enzyme from 'enzyme'
5
- import Adapter from '@wojtekmaj/enzyme-adapter-react-17'
6
- import {ThemeProvider} from '..'
7
- import {default as defaultTheme} from '../theme'
8
-
9
- type ComputedStyles = Record<string, string | Record<string, string>>
10
-
11
- // eslint-disable-next-line @typescript-eslint/no-var-requires
12
- const readFile = promisify(require('fs').readFile)
13
-
14
- export const COMPONENT_DISPLAY_NAME_REGEX = /^[A-Z][A-Za-z]+(\.[A-Z][A-Za-z]+)*$/
15
-
16
- enzyme.configure({adapter: new Adapter()})
17
-
18
- export function mount(component: React.ReactElement) {
19
- return enzyme.mount(component)
20
- }
21
-
22
- declare global {
23
- // eslint-disable-next-line @typescript-eslint/no-namespace
24
- namespace jest {
25
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
26
- interface Matchers<R> {
27
- toImplementSxBehavior: () => boolean
28
- toSetExports: (exports: Record<string, string>) => boolean
29
- }
30
- }
31
- }
32
-
33
- /**
34
- * Render the component (a React.createElement() or JSX expression)
35
- * into its intermediate object representation with 'type',
36
- * 'props', and 'children' keys
37
- *
38
- * The returned object can be matched with expect().toEqual(), e.g.
39
- *
40
- * ```js
41
- * expect(render(<Foo />)).toEqual(render(<div foo='bar' />))
42
- * ```
43
- */
44
- export function render(component: React.ReactElement, theme = defaultTheme) {
45
- return renderer
46
- .create(<ThemeProvider theme={theme}>{component}</ThemeProvider>)
47
- .toJSON() as renderer.ReactTestRendererJSON
48
- }
49
-
50
- /**
51
- * Render the component (a React.createElement() or JSX expression)
52
- * using react-test-renderer and return the root node
53
- * ```
54
- */
55
- export function renderRoot(component: React.ReactElement) {
56
- return renderer.create(component).root
57
- }
58
-
59
- /**
60
- * Get the HTML class names rendered by the component instance
61
- * as an array.
62
- *
63
- * ```js
64
- * expect(renderClasses(<div className='a b' />))
65
- * .toEqual(['a', 'b'])
66
- * ```
67
- */
68
- export function renderClasses(component: React.ReactElement): string {
69
- const {
70
- props: {className}
71
- } = render(component)
72
- return className ? className.trim().split(' ') : []
73
- }
74
-
75
- /**
76
- * Returns true if a node renders with a single class.
77
- */
78
- export function rendersClass(node: React.ReactElement, klass: string): boolean {
79
- return renderClasses(node).includes(klass)
80
- }
81
-
82
- export function px(value: number | string): string {
83
- return typeof value === 'number' ? `${value}px` : value
84
- }
85
-
86
- export function percent(value: number | string): string {
87
- return typeof value === 'number' ? `${value}%` : value
88
- }
89
-
90
- export function renderStyles(node: React.ReactElement) {
91
- const {
92
- props: {className}
93
- } = render(node)
94
- return getComputedStyles(className)
95
- }
96
-
97
- export function getComputedStyles(className: string) {
98
- const div = document.createElement('div')
99
- div.className = className
100
-
101
- const computed: ComputedStyles = {}
102
- for (const sheet of document.styleSheets) {
103
- // CSSRulesLists assumes every rule is a CSSRule, not a CSSStyleRule
104
- for (const rule of sheet.cssRules) {
105
- if (rule instanceof CSSMediaRule) {
106
- readMedia(rule)
107
- } else if (rule instanceof CSSStyleRule) {
108
- readRule(rule, computed)
109
- } else {
110
- // console.warn('rule.type =', rule.type)
111
- }
112
- }
113
- }
114
-
115
- return computed
116
-
117
- function matchesSafe(node: HTMLDivElement, selector: string) {
118
- if (!selector) {
119
- return false
120
- }
121
- try {
122
- return node.matches(selector)
123
- } catch (error) {
124
- return false
125
- }
126
- }
127
-
128
- function readRule(rule: CSSStyleRule, dest: ComputedStyles) {
129
- if (matchesSafe(div, rule.selectorText)) {
130
- const {style} = rule
131
- for (let i = 0; i < style.length; i++) {
132
- const prop = style[i]
133
- dest[prop] = style.getPropertyValue(prop)
134
- }
135
- } else {
136
- // console.warn('no match:', rule.selectorText)
137
- }
138
- }
139
-
140
- function readMedia(mediaRule: CSSMediaRule) {
141
- const key = `@media ${mediaRule.media[0]}`
142
- // const dest = computed[key] || (computed[key] = {})
143
- const dest = {}
144
- for (const rule of mediaRule.cssRules) {
145
- if (rule instanceof CSSStyleRule) {
146
- readRule(rule, dest)
147
- }
148
- }
149
-
150
- // Don't add media rule to computed styles
151
- // if no styles were actually applied
152
- if (Object.keys(dest).length > 0) {
153
- computed[key] = dest
154
- }
155
- }
156
- }
157
- /**
158
- * This provides a layer of compatibility between the render() function from
159
- * react-test-renderer and Enzyme's mount()
160
- */
161
- export function getProps(node: React.ReactElement) {
162
- return typeof node.props === 'function' ? node.props() : node.props
163
- }
164
-
165
- export function getClassName(node: React.ReactElement) {
166
- return getProps(node).className
167
- }
168
-
169
- export function getClasses(node: React.ReactElement) {
170
- const className = getClassName(node)
171
- return className ? className.trim().split(/ +/) : []
172
- }
173
-
174
- export async function loadCSS(path: string) {
175
- const css = await readFile(require.resolve(path), 'utf8')
176
- const style = document.createElement('style')
177
- style.setAttribute('data-path', path)
178
- style.textContent = css
179
- document.head.appendChild(style)
180
- return style
181
- }
182
-
183
- export function unloadCSS(path: string) {
184
- const style = document.querySelector(`style[data-path="${path}"]`)
185
- if (style) {
186
- style.remove()
187
- return true
188
- }
189
- }
190
-
191
- // If a component requires certain props or other conditions in order
192
- // to render without errors, you can pass a `toRender` function that
193
- // returns an element ready to be rendered.
194
-
195
- interface Options {
196
- skipAs?: boolean
197
- skipSx?: boolean
198
- }
199
-
200
- interface BehavesAsComponent {
201
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
202
- Component: React.ComponentType<any>
203
- toRender?: () => React.ReactElement
204
- options?: Options
205
- }
206
-
207
- export function behavesAsComponent({Component, toRender, options}: BehavesAsComponent) {
208
- options = options || {}
209
-
210
- const getElement = () => (toRender ? toRender() : <Component />)
211
-
212
- if (!options.skipSx) {
213
- it('implements sx prop behavior', () => {
214
- expect(getElement()).toImplementSxBehavior()
215
- })
216
- }
217
-
218
- if (!options.skipAs) {
219
- it('respects the as prop', () => {
220
- const As = React.forwardRef<HTMLDivElement>((_props, ref) => <div className="as-component" ref={ref} />)
221
- const elem = React.cloneElement(getElement(), {as: As})
222
- expect(render(elem)).toEqual(render(<As />))
223
- })
224
- }
225
-
226
- it('sets a valid displayName', () => {
227
- expect(Component.displayName).toMatch(COMPONENT_DISPLAY_NAME_REGEX)
228
- })
229
-
230
- it('renders consistently', () => {
231
- expect(render(getElement())).toMatchSnapshot()
232
- })
233
- }
234
-
235
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
- export function checkExports(path: string, exports: Record<any, any>): void {
237
- it('has declared exports', () => {
238
- // eslint-disable-next-line @typescript-eslint/no-var-requires
239
- const mod = require(`../${path}`)
240
- expect(mod).toSetExports(exports)
241
- })
242
- }