@primer/components 32.0.0-rc.7200a6a6 → 32.0.1

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 (1278) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/browser.esm.js +136 -136
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +120 -120
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/index.js +23 -12
  7. package/lib/ActionList2/index.js +41 -23
  8. package/lib/AnchoredOverlay/index.js +12 -4
  9. package/lib/Autocomplete/index.js +14 -7
  10. package/lib/Button/index.js +70 -21
  11. package/lib/DropdownMenu/index.js +20 -6
  12. package/lib/DropdownStyles.js +26 -18
  13. package/lib/FilteredActionList/index.js +12 -4
  14. package/lib/NewButton/index.js +12 -5
  15. package/lib/NewButton/types.js +1 -2
  16. package/lib/Pagination/index.js +12 -6
  17. package/lib/Portal/index.js +16 -5
  18. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  19. package/lib/SelectMenu/index.js +14 -7
  20. package/lib/SelectPanel/index.js +12 -4
  21. package/lib/Token/index.js +30 -11
  22. package/lib/behaviors/anchoredPosition.js +234 -205
  23. package/lib/behaviors/focusTrap.js +157 -121
  24. package/lib/behaviors/focusZone.js +509 -434
  25. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  26. package/lib/constants.js +43 -39
  27. package/lib/drafts.js +30 -20
  28. package/lib/hooks/index.js +60 -16
  29. package/lib/hooks/useAnchoredPosition.js +40 -32
  30. package/lib/hooks/useCombinedRefs.js +36 -32
  31. package/lib/hooks/useDialog.js +96 -72
  32. package/lib/hooks/useFocusTrap.js +60 -43
  33. package/lib/hooks/useFocusZone.js +50 -54
  34. package/lib/hooks/useOnEscapePress.js +36 -25
  35. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  36. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  37. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  38. package/lib/hooks/useRenderForcingRef.js +17 -13
  39. package/lib/hooks/useResizeObserver.js +18 -15
  40. package/lib/hooks/useSafeTimeout.js +30 -22
  41. package/lib/hooks/useScrollFlash.js +23 -16
  42. package/lib/index.js +644 -163
  43. package/lib/polyfills/eventListenerSignal.js +45 -37
  44. package/lib/sx.js +22 -10
  45. package/lib/theme-preval.js +3169 -64
  46. package/lib/theme.js +12 -3
  47. package/lib/utils/iterateFocusableElements.js +85 -63
  48. package/lib/utils/testing.d.ts +1 -1
  49. package/lib/utils/theme.js +47 -33
  50. package/lib/utils/types/AriaRole.js +1 -2
  51. package/lib/utils/types/ComponentProps.js +1 -2
  52. package/lib/utils/types/Flatten.js +1 -2
  53. package/lib/utils/types/KeyPaths.js +1 -2
  54. package/lib/utils/types/MandateProps.js +1 -16
  55. package/lib/utils/types/Merge.js +1 -2
  56. package/lib/utils/types/index.js +69 -16
  57. package/lib/utils/uniqueId.js +8 -5
  58. package/lib/utils/use-force-update.js +14 -8
  59. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  60. package/lib/utils/userAgent.js +12 -8
  61. package/lib-esm/theme-preval.js +446 -0
  62. package/lib-esm/utils/testing.d.ts +1 -1
  63. package/package.json +3 -4
  64. package/.changeset/README.md +0 -8
  65. package/.changeset/config.json +0 -10
  66. package/.devcontainer/devcontainer.json +0 -8
  67. package/.eslintrc.json +0 -137
  68. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  69. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  70. package/.github/dependabot.yml +0 -18
  71. package/.github/pull_request_template.md +0 -18
  72. package/.github/workflows/check_for_changeset.yml +0 -25
  73. package/.github/workflows/ci.yml +0 -34
  74. package/.github/workflows/deploy_preview.yml +0 -47
  75. package/.github/workflows/deploy_production.yml +0 -70
  76. package/.github/workflows/release.yml +0 -36
  77. package/.github/workflows/release_canary.yml +0 -72
  78. package/.github/workflows/release_candidate.yml +0 -60
  79. package/.github/workflows/size.yml +0 -13
  80. package/.github/workflows/stale.yml +0 -26
  81. package/.gitignore +0 -10
  82. package/.npmrc +0 -4
  83. package/.nvmrc +0 -1
  84. package/.storybook/main.js +0 -9
  85. package/.storybook/preview.js +0 -117
  86. package/.vscode/launch.json +0 -21
  87. package/.vscode/settings.json +0 -13
  88. package/@types/@styled-system/index.d.ts +0 -0
  89. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  90. package/@types/@styled-system/props/index.d.ts +0 -1
  91. package/@types/jest-styled-components/index.d.ts +0 -1
  92. package/CODEOWNERS +0 -2
  93. package/babel-defines.js +0 -13
  94. package/babel.config.js +0 -39
  95. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  96. package/contributor-docs/CONTRIBUTING.md +0 -274
  97. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  98. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -108
  99. package/contributor-docs/adrs/adr-003-prop-norms.md +0 -72
  100. package/contributor-docs/behaviors.md +0 -132
  101. package/contributor-docs/component-contents-api-patterns.md +0 -316
  102. package/contributor-docs/principles.md +0 -39
  103. package/docs/.eslintrc +0 -0
  104. package/docs/.gitignore +0 -91
  105. package/docs/components/PropsList.js +0 -5
  106. package/docs/components/State.js +0 -9
  107. package/docs/components/constants.js +0 -34
  108. package/docs/components/index.js +0 -2
  109. package/docs/content/ActionList.mdx +0 -99
  110. package/docs/content/ActionList2.mdx +0 -359
  111. package/docs/content/ActionMenu.mdx +0 -80
  112. package/docs/content/AnchoredOverlay.mdx +0 -37
  113. package/docs/content/Autocomplete.mdx +0 -657
  114. package/docs/content/Avatar.mdx +0 -33
  115. package/docs/content/AvatarStack.mdx +0 -37
  116. package/docs/content/BorderBox.md +0 -46
  117. package/docs/content/Box.mdx +0 -96
  118. package/docs/content/BranchName.md +0 -18
  119. package/docs/content/Breadcrumbs.md +0 -47
  120. package/docs/content/Buttons.md +0 -46
  121. package/docs/content/CircleBadge.md +0 -35
  122. package/docs/content/CircleOcticon.md +0 -18
  123. package/docs/content/CounterLabel.md +0 -22
  124. package/docs/content/Details.md +0 -105
  125. package/docs/content/Dialog.md +0 -105
  126. package/docs/content/Dialog2.mdx +0 -180
  127. package/docs/content/Dropdown.md +0 -65
  128. package/docs/content/DropdownMenu.mdx +0 -49
  129. package/docs/content/FilterList.md +0 -37
  130. package/docs/content/FilteredSearch.md +0 -32
  131. package/docs/content/Flash.md +0 -35
  132. package/docs/content/Flex.md +0 -58
  133. package/docs/content/FormGroup.md +0 -38
  134. package/docs/content/Grid.md +0 -59
  135. package/docs/content/Header.md +0 -77
  136. package/docs/content/Heading.md +0 -22
  137. package/docs/content/Label.md +0 -49
  138. package/docs/content/LabelGroup.md +0 -21
  139. package/docs/content/Link.md +0 -28
  140. package/docs/content/Overlay.mdx +0 -85
  141. package/docs/content/Pagehead.md +0 -18
  142. package/docs/content/Pagination.md +0 -178
  143. package/docs/content/PointerBox.md +0 -81
  144. package/docs/content/Popover.md +0 -129
  145. package/docs/content/Portal.mdx +0 -78
  146. package/docs/content/Position.md +0 -100
  147. package/docs/content/ProgressBar.mdx +0 -29
  148. package/docs/content/SelectMenu.md +0 -371
  149. package/docs/content/SelectPanel.mdx +0 -67
  150. package/docs/content/SideNav.md +0 -171
  151. package/docs/content/Spinner.mdx +0 -32
  152. package/docs/content/StateLabel.md +0 -27
  153. package/docs/content/StyledOcticon.md +0 -27
  154. package/docs/content/SubNav.md +0 -100
  155. package/docs/content/TabNav.md +0 -42
  156. package/docs/content/Text.md +0 -31
  157. package/docs/content/TextInput.md +0 -34
  158. package/docs/content/TextInputTokens.mdx +0 -89
  159. package/docs/content/TextInputWithTokens.mdx +0 -211
  160. package/docs/content/Timeline.md +0 -148
  161. package/docs/content/Token.mdx +0 -381
  162. package/docs/content/Tooltip.md +0 -32
  163. package/docs/content/Truncate.md +0 -55
  164. package/docs/content/UnderlineNav.md +0 -45
  165. package/docs/content/anchoredPosition.mdx +0 -163
  166. package/docs/content/core-concepts.md +0 -70
  167. package/docs/content/focusTrap.mdx +0 -103
  168. package/docs/content/focusZone.mdx +0 -145
  169. package/docs/content/getting-started.md +0 -138
  170. package/docs/content/index.md +0 -33
  171. package/docs/content/linting.md +0 -35
  172. package/docs/content/overriding-styles.mdx +0 -82
  173. package/docs/content/philosophy.md +0 -23
  174. package/docs/content/primer-theme.md +0 -89
  175. package/docs/content/ssr.mdx +0 -43
  176. package/docs/content/system-props.mdx +0 -37
  177. package/docs/content/theme-reference.md +0 -16
  178. package/docs/content/theming.md +0 -272
  179. package/docs/content/useOnEscapePress.mdx +0 -56
  180. package/docs/content/useOnOutsideClick.mdx +0 -57
  181. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  182. package/docs/content/useOverlay.mdx +0 -62
  183. package/docs/content/useSafeTimeout.mdx +0 -32
  184. package/docs/gatsby-config.js +0 -30
  185. package/docs/gatsby-node.js +0 -101
  186. package/docs/package-lock.json +0 -20756
  187. package/docs/package.json +0 -36
  188. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -21
  189. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -41
  190. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -73
  191. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -133
  192. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  193. package/docs/src/component-checklist.js +0 -81
  194. package/docs/src/props.js +0 -77
  195. package/jest.config.js +0 -13
  196. package/lib/ActionList/Divider.jsx +0 -29
  197. package/lib/ActionList/Group.jsx +0 -23
  198. package/lib/ActionList/Header.jsx +0 -66
  199. package/lib/ActionList/Item.jsx +0 -288
  200. package/lib/ActionList/List.jsx +0 -138
  201. package/lib/ActionList2/Description.jsx +0 -29
  202. package/lib/ActionList2/Divider.jsx +0 -22
  203. package/lib/ActionList2/Group.jsx +0 -54
  204. package/lib/ActionList2/Header.jsx +0 -36
  205. package/lib/ActionList2/Item.jsx +0 -174
  206. package/lib/ActionList2/LinkItem.jsx +0 -28
  207. package/lib/ActionList2/List.jsx +0 -41
  208. package/lib/ActionList2/Selection.jsx +0 -50
  209. package/lib/ActionList2/Visuals.jsx +0 -48
  210. package/lib/ActionMenu.jsx +0 -73
  211. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  212. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  213. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  214. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  215. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  216. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  217. package/lib/Avatar.jsx +0 -34
  218. package/lib/AvatarPair.jsx +0 -29
  219. package/lib/AvatarStack.jsx +0 -151
  220. package/lib/BaseStyles.jsx +0 -65
  221. package/lib/BorderBox.jsx +0 -18
  222. package/lib/Box.jsx +0 -10
  223. package/lib/BranchName.jsx +0 -20
  224. package/lib/Breadcrumbs.jsx +0 -71
  225. package/lib/Button/Button.jsx +0 -40
  226. package/lib/Button/ButtonBase.jsx +0 -33
  227. package/lib/Button/ButtonClose.jsx +0 -53
  228. package/lib/Button/ButtonDanger.jsx +0 -43
  229. package/lib/Button/ButtonGroup.jsx +0 -55
  230. package/lib/Button/ButtonInvisible.jsx +0 -32
  231. package/lib/Button/ButtonOutline.jsx +0 -43
  232. package/lib/Button/ButtonPrimary.jsx +0 -42
  233. package/lib/Button/ButtonStyles.jsx +0 -37
  234. package/lib/Button/ButtonTableList.jsx +0 -46
  235. package/lib/Caret.jsx +0 -93
  236. package/lib/CircleBadge.jsx +0 -42
  237. package/lib/CircleOcticon.jsx +0 -21
  238. package/lib/CounterLabel.jsx +0 -43
  239. package/lib/Details.jsx +0 -21
  240. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  241. package/lib/Dialog/Dialog.jsx +0 -279
  242. package/lib/Dialog.jsx +0 -129
  243. package/lib/Dropdown.jsx +0 -131
  244. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  245. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  246. package/lib/FilterList.jsx +0 -59
  247. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  248. package/lib/FilteredSearch.jsx +0 -28
  249. package/lib/Flash.jsx +0 -69
  250. package/lib/Flex.jsx +0 -15
  251. package/lib/FormGroup.jsx +0 -22
  252. package/lib/Grid.jsx +0 -15
  253. package/lib/Header.jsx +0 -83
  254. package/lib/Heading.jsx +0 -21
  255. package/lib/Label.jsx +0 -82
  256. package/lib/LabelGroup.jsx +0 -18
  257. package/lib/Link.jsx +0 -36
  258. package/lib/NewButton/button-counter.jsx +0 -14
  259. package/lib/NewButton/button.jsx +0 -279
  260. package/lib/Overlay.jsx +0 -154
  261. package/lib/Pagehead.jsx +0 -17
  262. package/lib/Pagination/Pagination.jsx +0 -161
  263. package/lib/Pagination/model.jsx +0 -174
  264. package/lib/PointerBox.jsx +0 -25
  265. package/lib/Popover.jsx +0 -202
  266. package/lib/Portal/Portal.jsx +0 -79
  267. package/lib/Position.jsx +0 -46
  268. package/lib/ProgressBar.jsx +0 -39
  269. package/lib/SelectMenu/SelectMenu.jsx +0 -112
  270. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  271. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -42
  272. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -58
  273. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -45
  274. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -42
  275. package/lib/SelectMenu/SelectMenuItem.jsx +0 -142
  276. package/lib/SelectMenu/SelectMenuList.jsx +0 -59
  277. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -22
  278. package/lib/SelectMenu/SelectMenuModal.jsx +0 -118
  279. package/lib/SelectMenu/SelectMenuTab.jsx +0 -92
  280. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -42
  281. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -57
  282. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  283. package/lib/SideNav.jsx +0 -173
  284. package/lib/Spinner.jsx +0 -35
  285. package/lib/StateLabel.jsx +0 -93
  286. package/lib/StyledOcticon.jsx +0 -18
  287. package/lib/SubNav.jsx +0 -101
  288. package/lib/TabNav.jsx +0 -58
  289. package/lib/Text.jsx +0 -14
  290. package/lib/TextInput.jsx +0 -23
  291. package/lib/TextInputWithTokens.jsx +0 -218
  292. package/lib/ThemeProvider.jsx +0 -130
  293. package/lib/Timeline.jsx +0 -123
  294. package/lib/Token/AvatarToken.jsx +0 -54
  295. package/lib/Token/IssueLabelToken.jsx +0 -125
  296. package/lib/Token/Token.jsx +0 -103
  297. package/lib/Token/TokenBase.jsx +0 -88
  298. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  299. package/lib/Token/_TokenTextContainer.jsx +0 -49
  300. package/lib/Tooltip.jsx +0 -246
  301. package/lib/Truncate.jsx +0 -24
  302. package/lib/UnderlineNav.jsx +0 -88
  303. package/lib/_TextInputWrapper.jsx +0 -120
  304. package/lib/_UnstyledTextInput.jsx +0 -22
  305. package/lib/__tests__/ActionList.test.d.ts +0 -1
  306. package/lib/__tests__/ActionList.test.js +0 -69
  307. package/lib/__tests__/ActionList.test.jsx +0 -49
  308. package/lib/__tests__/ActionList.types.test.d.ts +0 -6
  309. package/lib/__tests__/ActionList.types.test.js +0 -69
  310. package/lib/__tests__/ActionList.types.test.jsx +0 -45
  311. package/lib/__tests__/ActionList2.test.d.ts +0 -1
  312. package/lib/__tests__/ActionList2.test.js +0 -53
  313. package/lib/__tests__/ActionList2.test.jsx +0 -46
  314. package/lib/__tests__/ActionMenu.test.d.ts +0 -1
  315. package/lib/__tests__/ActionMenu.test.js +0 -151
  316. package/lib/__tests__/ActionMenu.test.jsx +0 -124
  317. package/lib/__tests__/AnchoredOverlay.test.d.ts +0 -1
  318. package/lib/__tests__/AnchoredOverlay.test.js +0 -162
  319. package/lib/__tests__/AnchoredOverlay.test.jsx +0 -121
  320. package/lib/__tests__/Autocomplete.test.d.ts +0 -1
  321. package/lib/__tests__/Autocomplete.test.js +0 -528
  322. package/lib/__tests__/Autocomplete.test.jsx +0 -299
  323. package/lib/__tests__/Avatar.test.d.ts +0 -1
  324. package/lib/__tests__/Avatar.test.js +0 -67
  325. package/lib/__tests__/Avatar.test.jsx +0 -42
  326. package/lib/__tests__/AvatarStack.test.d.ts +0 -1
  327. package/lib/__tests__/AvatarStack.test.js +0 -71
  328. package/lib/__tests__/AvatarStack.test.jsx +0 -43
  329. package/lib/__tests__/BorderBox.test.d.ts +0 -1
  330. package/lib/__tests__/BorderBox.test.js +0 -58
  331. package/lib/__tests__/BorderBox.test.jsx +0 -36
  332. package/lib/__tests__/Box.test.d.ts +0 -1
  333. package/lib/__tests__/Box.test.js +0 -78
  334. package/lib/__tests__/Box.test.jsx +0 -41
  335. package/lib/__tests__/BranchName.test.d.ts +0 -1
  336. package/lib/__tests__/BranchName.test.js +0 -36
  337. package/lib/__tests__/BranchName.test.jsx +0 -27
  338. package/lib/__tests__/Breadcrumbs.test.d.ts +0 -1
  339. package/lib/__tests__/Breadcrumbs.test.js +0 -40
  340. package/lib/__tests__/Breadcrumbs.test.jsx +0 -28
  341. package/lib/__tests__/Breadcrumbs.types.test.d.ts +0 -3
  342. package/lib/__tests__/Breadcrumbs.types.test.js +0 -25
  343. package/lib/__tests__/Breadcrumbs.types.test.jsx +0 -24
  344. package/lib/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  345. package/lib/__tests__/BreadcrumbsItem.test.js +0 -49
  346. package/lib/__tests__/BreadcrumbsItem.test.jsx +0 -31
  347. package/lib/__tests__/Button.test.d.ts +0 -1
  348. package/lib/__tests__/Button.test.js +0 -147
  349. package/lib/__tests__/Button.test.jsx +0 -100
  350. package/lib/__tests__/Caret.test.d.ts +0 -1
  351. package/lib/__tests__/Caret.test.js +0 -52
  352. package/lib/__tests__/Caret.test.jsx +0 -37
  353. package/lib/__tests__/CircleBadge.test.d.ts +0 -1
  354. package/lib/__tests__/CircleBadge.test.js +0 -83
  355. package/lib/__tests__/CircleBadge.test.jsx +0 -55
  356. package/lib/__tests__/CircleBadge.types.test.d.ts +0 -3
  357. package/lib/__tests__/CircleBadge.types.test.js +0 -28
  358. package/lib/__tests__/CircleBadge.types.test.jsx +0 -17
  359. package/lib/__tests__/CircleOcticon.test.d.ts +0 -1
  360. package/lib/__tests__/CircleOcticon.test.js +0 -71
  361. package/lib/__tests__/CircleOcticon.test.jsx +0 -45
  362. package/lib/__tests__/ConfirmationDialog.test.d.ts +0 -1
  363. package/lib/__tests__/ConfirmationDialog.test.js +0 -134
  364. package/lib/__tests__/ConfirmationDialog.test.jsx +0 -119
  365. package/lib/__tests__/CounterLabel.test.d.ts +0 -1
  366. package/lib/__tests__/CounterLabel.test.js +0 -58
  367. package/lib/__tests__/CounterLabel.test.jsx +0 -36
  368. package/lib/__tests__/CounterLabel.types.test.d.ts +0 -3
  369. package/lib/__tests__/CounterLabel.types.test.js +0 -28
  370. package/lib/__tests__/CounterLabel.types.test.jsx +0 -17
  371. package/lib/__tests__/Details.test.d.ts +0 -1
  372. package/lib/__tests__/Details.test.js +0 -117
  373. package/lib/__tests__/Details.test.jsx +0 -85
  374. package/lib/__tests__/Dialog.test.d.ts +0 -1
  375. package/lib/__tests__/Dialog.test.js +0 -184
  376. package/lib/__tests__/Dialog.test.jsx +0 -139
  377. package/lib/__tests__/Dialog.types.test.d.ts +0 -3
  378. package/lib/__tests__/Dialog.types.test.js +0 -28
  379. package/lib/__tests__/Dialog.types.test.jsx +0 -17
  380. package/lib/__tests__/Dialog2.types.test.d.ts +0 -3
  381. package/lib/__tests__/Dialog2.types.test.js +0 -31
  382. package/lib/__tests__/Dialog2.types.test.jsx +0 -17
  383. package/lib/__tests__/Dropdown.test.d.ts +0 -1
  384. package/lib/__tests__/Dropdown.test.js +0 -63
  385. package/lib/__tests__/Dropdown.test.jsx +0 -49
  386. package/lib/__tests__/Dropdown.types.test.d.ts +0 -3
  387. package/lib/__tests__/Dropdown.types.test.js +0 -31
  388. package/lib/__tests__/Dropdown.types.test.jsx +0 -25
  389. package/lib/__tests__/DropdownMenu.test.d.ts +0 -1
  390. package/lib/__tests__/DropdownMenu.test.js +0 -150
  391. package/lib/__tests__/DropdownMenu.test.jsx +0 -119
  392. package/lib/__tests__/FilterList.test.d.ts +0 -1
  393. package/lib/__tests__/FilterList.test.js +0 -36
  394. package/lib/__tests__/FilterList.test.jsx +0 -27
  395. package/lib/__tests__/FilterList.types.test.d.ts +0 -3
  396. package/lib/__tests__/FilterList.types.test.js +0 -27
  397. package/lib/__tests__/FilterList.types.test.jsx +0 -21
  398. package/lib/__tests__/FilterListItem.test.d.ts +0 -1
  399. package/lib/__tests__/FilterListItem.test.js +0 -46
  400. package/lib/__tests__/FilterListItem.test.jsx +0 -31
  401. package/lib/__tests__/FilteredSearch.test.d.ts +0 -1
  402. package/lib/__tests__/FilteredSearch.test.js +0 -36
  403. package/lib/__tests__/FilteredSearch.test.jsx +0 -27
  404. package/lib/__tests__/FilteredSearch.types.test.d.ts +0 -3
  405. package/lib/__tests__/FilteredSearch.types.test.js +0 -28
  406. package/lib/__tests__/FilteredSearch.types.test.jsx +0 -17
  407. package/lib/__tests__/Flash.test.d.ts +0 -1
  408. package/lib/__tests__/Flash.test.js +0 -62
  409. package/lib/__tests__/Flash.test.jsx +0 -36
  410. package/lib/__tests__/Flash.types.test.d.ts +0 -3
  411. package/lib/__tests__/Flash.types.test.js +0 -28
  412. package/lib/__tests__/Flash.types.test.jsx +0 -17
  413. package/lib/__tests__/Flex.test.d.ts +0 -1
  414. package/lib/__tests__/Flex.test.js +0 -74
  415. package/lib/__tests__/Flex.test.jsx +0 -51
  416. package/lib/__tests__/FormGroup.test.d.ts +0 -1
  417. package/lib/__tests__/FormGroup.test.js +0 -54
  418. package/lib/__tests__/FormGroup.test.jsx +0 -36
  419. package/lib/__tests__/FormGroup.types.test.d.ts +0 -3
  420. package/lib/__tests__/FormGroup.types.test.js +0 -28
  421. package/lib/__tests__/FormGroup.types.test.jsx +0 -17
  422. package/lib/__tests__/Grid.test.d.ts +0 -1
  423. package/lib/__tests__/Grid.test.js +0 -104
  424. package/lib/__tests__/Grid.test.jsx +0 -69
  425. package/lib/__tests__/Header.test.d.ts +0 -1
  426. package/lib/__tests__/Header.test.js +0 -58
  427. package/lib/__tests__/Header.test.jsx +0 -45
  428. package/lib/__tests__/Header.types.test.d.ts +0 -3
  429. package/lib/__tests__/Header.types.test.js +0 -29
  430. package/lib/__tests__/Header.types.test.jsx +0 -23
  431. package/lib/__tests__/Heading.test.d.ts +0 -1
  432. package/lib/__tests__/Heading.test.js +0 -109
  433. package/lib/__tests__/Heading.test.jsx +0 -71
  434. package/lib/__tests__/KeyPaths.types.test.d.ts +0 -11
  435. package/lib/__tests__/KeyPaths.types.test.js +0 -7
  436. package/lib/__tests__/Label.test.d.ts +0 -1
  437. package/lib/__tests__/Label.test.js +0 -46
  438. package/lib/__tests__/Label.test.jsx +0 -33
  439. package/lib/__tests__/Label.types.test.d.ts +0 -3
  440. package/lib/__tests__/Label.types.test.js +0 -28
  441. package/lib/__tests__/Label.types.test.jsx +0 -17
  442. package/lib/__tests__/LabelGroup.test.d.ts +0 -1
  443. package/lib/__tests__/LabelGroup.test.js +0 -38
  444. package/lib/__tests__/LabelGroup.test.jsx +0 -29
  445. package/lib/__tests__/LabelGroup.types.test.d.ts +0 -3
  446. package/lib/__tests__/LabelGroup.types.test.js +0 -28
  447. package/lib/__tests__/LabelGroup.types.test.jsx +0 -17
  448. package/lib/__tests__/Link.test.d.ts +0 -1
  449. package/lib/__tests__/Link.test.js +0 -76
  450. package/lib/__tests__/Link.test.jsx +0 -43
  451. package/lib/__tests__/Link.types.test.d.ts +0 -3
  452. package/lib/__tests__/Link.types.test.js +0 -28
  453. package/lib/__tests__/Link.types.test.jsx +0 -17
  454. package/lib/__tests__/Merge.types.test.d.ts +0 -30
  455. package/lib/__tests__/Merge.types.test.js +0 -21
  456. package/lib/__tests__/NewButton.test.d.ts +0 -1
  457. package/lib/__tests__/NewButton.test.js +0 -95
  458. package/lib/__tests__/NewButton.test.jsx +0 -61
  459. package/lib/__tests__/Overlay.test.d.ts +0 -1
  460. package/lib/__tests__/Overlay.test.js +0 -145
  461. package/lib/__tests__/Overlay.test.jsx +0 -105
  462. package/lib/__tests__/Overlay.types.test.d.ts +0 -3
  463. package/lib/__tests__/Overlay.types.test.js +0 -35
  464. package/lib/__tests__/Overlay.types.test.jsx +0 -18
  465. package/lib/__tests__/Pagehead.test.d.ts +0 -1
  466. package/lib/__tests__/Pagehead.test.js +0 -37
  467. package/lib/__tests__/Pagehead.test.jsx +0 -25
  468. package/lib/__tests__/Pagehead.types.test.d.ts +0 -3
  469. package/lib/__tests__/Pagehead.types.test.js +0 -28
  470. package/lib/__tests__/Pagehead.types.test.jsx +0 -17
  471. package/lib/__tests__/Pagination/Pagination.test.d.ts +0 -1
  472. package/lib/__tests__/Pagination/Pagination.test.js +0 -47
  473. package/lib/__tests__/Pagination/Pagination.test.jsx +0 -32
  474. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  475. package/lib/__tests__/Pagination/PaginationModel.test.js +0 -186
  476. package/lib/__tests__/Pagination/PaginationModel.test.jsx +0 -118
  477. package/lib/__tests__/Pagination.types.test.d.ts +0 -3
  478. package/lib/__tests__/Pagination.types.test.js +0 -33
  479. package/lib/__tests__/Pagination.types.test.jsx +0 -17
  480. package/lib/__tests__/PointerBox.test.d.ts +0 -1
  481. package/lib/__tests__/PointerBox.test.js +0 -46
  482. package/lib/__tests__/PointerBox.test.jsx +0 -33
  483. package/lib/__tests__/Popover.test.d.ts +0 -1
  484. package/lib/__tests__/Popover.test.js +0 -66
  485. package/lib/__tests__/Popover.test.jsx +0 -58
  486. package/lib/__tests__/Popover.types.test.d.ts +0 -3
  487. package/lib/__tests__/Popover.types.test.js +0 -27
  488. package/lib/__tests__/Popover.types.test.jsx +0 -21
  489. package/lib/__tests__/Portal.test.d.ts +0 -1
  490. package/lib/__tests__/Portal.test.js +0 -124
  491. package/lib/__tests__/Portal.test.jsx +0 -102
  492. package/lib/__tests__/Position.test.d.ts +0 -1
  493. package/lib/__tests__/Position.test.js +0 -143
  494. package/lib/__tests__/Position.test.jsx +0 -96
  495. package/lib/__tests__/ProgressBar.test.d.ts +0 -1
  496. package/lib/__tests__/ProgressBar.test.js +0 -68
  497. package/lib/__tests__/ProgressBar.test.jsx +0 -38
  498. package/lib/__tests__/SelectMenu.test.d.ts +0 -1
  499. package/lib/__tests__/SelectMenu.test.js +0 -155
  500. package/lib/__tests__/SelectMenu.test.jsx +0 -120
  501. package/lib/__tests__/SelectMenu.types.test.d.ts +0 -3
  502. package/lib/__tests__/SelectMenu.types.test.js +0 -47
  503. package/lib/__tests__/SelectMenu.types.test.jsx +0 -41
  504. package/lib/__tests__/SelectPanel.test.d.ts +0 -1
  505. package/lib/__tests__/SelectPanel.test.js +0 -80
  506. package/lib/__tests__/SelectPanel.test.jsx +0 -48
  507. package/lib/__tests__/SideNav.test.d.ts +0 -1
  508. package/lib/__tests__/SideNav.test.js +0 -71
  509. package/lib/__tests__/SideNav.test.jsx +0 -55
  510. package/lib/__tests__/SideNav.types.test.d.ts +0 -3
  511. package/lib/__tests__/SideNav.types.test.js +0 -28
  512. package/lib/__tests__/SideNav.types.test.jsx +0 -17
  513. package/lib/__tests__/Spinner.test.d.ts +0 -1
  514. package/lib/__tests__/Spinner.test.js +0 -53
  515. package/lib/__tests__/Spinner.test.jsx +0 -41
  516. package/lib/__tests__/StateLabel.test.d.ts +0 -1
  517. package/lib/__tests__/StateLabel.test.js +0 -71
  518. package/lib/__tests__/StateLabel.test.jsx +0 -46
  519. package/lib/__tests__/StateLabel.types.test.d.ts +0 -3
  520. package/lib/__tests__/StateLabel.types.test.js +0 -28
  521. package/lib/__tests__/StateLabel.types.test.jsx +0 -17
  522. package/lib/__tests__/StyledOcticon.test.d.ts +0 -1
  523. package/lib/__tests__/StyledOcticon.test.js +0 -40
  524. package/lib/__tests__/StyledOcticon.test.jsx +0 -28
  525. package/lib/__tests__/StyledOcticon.types.test.d.ts +0 -3
  526. package/lib/__tests__/StyledOcticon.types.test.js +0 -32
  527. package/lib/__tests__/StyledOcticon.types.test.jsx +0 -18
  528. package/lib/__tests__/SubNav.test.d.ts +0 -1
  529. package/lib/__tests__/SubNav.test.js +0 -62
  530. package/lib/__tests__/SubNav.test.jsx +0 -47
  531. package/lib/__tests__/SubNav.types.test.d.ts +0 -3
  532. package/lib/__tests__/SubNav.types.test.js +0 -27
  533. package/lib/__tests__/SubNav.types.test.jsx +0 -27
  534. package/lib/__tests__/SubNavLink.test.d.ts +0 -1
  535. package/lib/__tests__/SubNavLink.test.js +0 -49
  536. package/lib/__tests__/SubNavLink.test.jsx +0 -31
  537. package/lib/__tests__/TabNav.test.d.ts +0 -1
  538. package/lib/__tests__/TabNav.test.js +0 -49
  539. package/lib/__tests__/TabNav.test.jsx +0 -32
  540. package/lib/__tests__/TabNav.types.test.d.ts +0 -3
  541. package/lib/__tests__/TabNav.types.test.js +0 -25
  542. package/lib/__tests__/TabNav.types.test.jsx +0 -24
  543. package/lib/__tests__/Text.test.d.ts +0 -1
  544. package/lib/__tests__/Text.test.js +0 -105
  545. package/lib/__tests__/Text.test.jsx +0 -71
  546. package/lib/__tests__/TextInput.test.d.ts +0 -1
  547. package/lib/__tests__/TextInput.test.js +0 -78
  548. package/lib/__tests__/TextInput.test.jsx +0 -45
  549. package/lib/__tests__/TextInputWithTokens.test.d.ts +0 -1
  550. package/lib/__tests__/TextInputWithTokens.test.js +0 -572
  551. package/lib/__tests__/TextInputWithTokens.test.jsx +0 -302
  552. package/lib/__tests__/ThemeProvider.test.d.ts +0 -1
  553. package/lib/__tests__/ThemeProvider.test.js +0 -444
  554. package/lib/__tests__/ThemeProvider.test.jsx +0 -314
  555. package/lib/__tests__/Timeline.test.d.ts +0 -1
  556. package/lib/__tests__/Timeline.test.js +0 -75
  557. package/lib/__tests__/Timeline.test.jsx +0 -51
  558. package/lib/__tests__/Timeline.types.test.d.ts +0 -3
  559. package/lib/__tests__/Timeline.types.test.js +0 -31
  560. package/lib/__tests__/Timeline.types.test.jsx +0 -33
  561. package/lib/__tests__/Token.test.d.ts +0 -1
  562. package/lib/__tests__/Token.test.js +0 -180
  563. package/lib/__tests__/Token.test.jsx +0 -93
  564. package/lib/__tests__/Tooltip.test.d.ts +0 -1
  565. package/lib/__tests__/Tooltip.test.js +0 -69
  566. package/lib/__tests__/Tooltip.test.jsx +0 -46
  567. package/lib/__tests__/Tooltip.types.test.d.ts +0 -3
  568. package/lib/__tests__/Tooltip.types.test.js +0 -28
  569. package/lib/__tests__/Tooltip.types.test.jsx +0 -17
  570. package/lib/__tests__/Truncate.test.d.ts +0 -1
  571. package/lib/__tests__/Truncate.test.js +0 -63
  572. package/lib/__tests__/Truncate.test.jsx +0 -41
  573. package/lib/__tests__/Truncate.types.test.d.ts +0 -3
  574. package/lib/__tests__/Truncate.types.test.js +0 -31
  575. package/lib/__tests__/Truncate.types.test.jsx +0 -17
  576. package/lib/__tests__/UnderlineNav.test.d.ts +0 -1
  577. package/lib/__tests__/UnderlineNav.test.js +0 -72
  578. package/lib/__tests__/UnderlineNav.test.jsx +0 -53
  579. package/lib/__tests__/UnderlineNav.types.test.d.ts +0 -3
  580. package/lib/__tests__/UnderlineNav.types.test.js +0 -25
  581. package/lib/__tests__/UnderlineNav.types.test.jsx +0 -24
  582. package/lib/__tests__/UnderlineNavLink.test.d.ts +0 -1
  583. package/lib/__tests__/UnderlineNavLink.test.js +0 -51
  584. package/lib/__tests__/UnderlineNavLink.test.jsx +0 -31
  585. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  586. package/lib/__tests__/behaviors/anchoredPosition.test.js +0 -243
  587. package/lib/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  588. package/lib/__tests__/behaviors/focusTrap.test.js +0 -234
  589. package/lib/__tests__/behaviors/focusTrap.test.jsx +0 -184
  590. package/lib/__tests__/behaviors/focusZone.test.d.ts +0 -1
  591. package/lib/__tests__/behaviors/focusZone.test.js +0 -570
  592. package/lib/__tests__/behaviors/focusZone.test.jsx +0 -406
  593. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  594. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +0 -55
  595. package/lib/__tests__/behaviors/iterateFocusableElements.test.jsx +0 -58
  596. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  597. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -155
  598. package/lib/__tests__/filterObject.test.d.ts +0 -1
  599. package/lib/__tests__/filterObject.test.js +0 -51
  600. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  601. package/lib/__tests__/hooks/useAnchoredPosition.test.js +0 -54
  602. package/lib/__tests__/hooks/useAnchoredPosition.test.jsx +0 -29
  603. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  604. package/lib/__tests__/hooks/useOnEscapePress.test.js +0 -32
  605. package/lib/__tests__/hooks/useOnEscapePress.test.jsx +0 -19
  606. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  607. package/lib/__tests__/hooks/useOnOutsideClick.test.js +0 -87
  608. package/lib/__tests__/hooks/useOnOutsideClick.test.jsx +0 -63
  609. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  610. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -60
  611. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.jsx +0 -61
  612. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  613. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -45
  614. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.jsx +0 -56
  615. package/lib/__tests__/theme.test.d.ts +0 -1
  616. package/lib/__tests__/theme.test.js +0 -35
  617. package/lib/__tests__/themeGet.test.d.ts +0 -1
  618. package/lib/__tests__/themeGet.test.js +0 -14
  619. package/lib/__tests__/useSafeTimeout.test.d.ts +0 -1
  620. package/lib/__tests__/useSafeTimeout.test.js +0 -45
  621. package/lib/__tests__/useSafeTimeout.test.jsx +0 -36
  622. package/lib/__tests__/utils/createSlots.test.d.ts +0 -1
  623. package/lib/__tests__/utils/createSlots.test.js +0 -75
  624. package/lib/__tests__/utils/createSlots.test.jsx +0 -57
  625. package/lib/hooks/useDetails.jsx +0 -39
  626. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  627. package/lib/hooks/useOverlay.jsx +0 -15
  628. package/lib/stories/ActionList.stories.js +0 -454
  629. package/lib/stories/ActionList2.stories.js +0 -909
  630. package/lib/stories/ActionMenu.stories.js +0 -348
  631. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  632. package/lib/stories/Autocomplete.stories.js +0 -619
  633. package/lib/stories/AvatarStack.stories.js +0 -49
  634. package/lib/stories/Button.stories.js +0 -125
  635. package/lib/stories/ConfirmationDialog.stories.js +0 -119
  636. package/lib/stories/Dialog.stories.js +0 -269
  637. package/lib/stories/DropdownMenu.stories.js +0 -122
  638. package/lib/stories/IssueLabelToken.stories.js +0 -165
  639. package/lib/stories/NewButton.stories.js +0 -230
  640. package/lib/stories/Overlay.stories.js +0 -204
  641. package/lib/stories/Portal.stories.js +0 -104
  642. package/lib/stories/ProfileToken.stories.js +0 -162
  643. package/lib/stories/SelectPanel.stories.js +0 -399
  644. package/lib/stories/TextInput.stories.js +0 -144
  645. package/lib/stories/TextInputWithTokens.stories.js +0 -252
  646. package/lib/stories/ThemeProvider.stories.js +0 -102
  647. package/lib/stories/Token.stories.js +0 -176
  648. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  649. package/lib/stories/useFocusTrap.stories.js +0 -360
  650. package/lib/stories/useFocusZone.stories.js +0 -607
  651. package/lib/utils/create-slots.jsx +0 -65
  652. package/lib/utils/deprecate.jsx +0 -59
  653. package/lib/utils/isNumeric.jsx +0 -7
  654. package/lib/utils/ssr.jsx +0 -6
  655. package/lib/utils/test-deprecations.jsx +0 -20
  656. package/lib/utils/test-helpers.jsx +0 -8
  657. package/lib/utils/test-matchers.jsx +0 -100
  658. package/lib/utils/testing.jsx +0 -206
  659. package/lib-esm/__tests__/ActionList.test.d.ts +0 -1
  660. package/lib-esm/__tests__/ActionList.test.js +0 -57
  661. package/lib-esm/__tests__/ActionList.types.test.d.ts +0 -6
  662. package/lib-esm/__tests__/ActionList.types.test.js +0 -45
  663. package/lib-esm/__tests__/ActionList2.test.d.ts +0 -1
  664. package/lib-esm/__tests__/ActionList2.test.js +0 -41
  665. package/lib-esm/__tests__/ActionMenu.test.d.ts +0 -1
  666. package/lib-esm/__tests__/ActionMenu.test.js +0 -139
  667. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +0 -1
  668. package/lib-esm/__tests__/AnchoredOverlay.test.js +0 -136
  669. package/lib-esm/__tests__/Autocomplete.test.d.ts +0 -1
  670. package/lib-esm/__tests__/Autocomplete.test.js +0 -494
  671. package/lib-esm/__tests__/Avatar.test.d.ts +0 -1
  672. package/lib-esm/__tests__/Avatar.test.js +0 -56
  673. package/lib-esm/__tests__/AvatarStack.test.d.ts +0 -1
  674. package/lib-esm/__tests__/AvatarStack.test.js +0 -58
  675. package/lib-esm/__tests__/BorderBox.test.d.ts +0 -1
  676. package/lib-esm/__tests__/BorderBox.test.js +0 -47
  677. package/lib-esm/__tests__/Box.test.d.ts +0 -1
  678. package/lib-esm/__tests__/Box.test.js +0 -67
  679. package/lib-esm/__tests__/BranchName.test.d.ts +0 -1
  680. package/lib-esm/__tests__/BranchName.test.js +0 -26
  681. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +0 -1
  682. package/lib-esm/__tests__/Breadcrumbs.test.js +0 -30
  683. package/lib-esm/__tests__/Breadcrumbs.types.test.d.ts +0 -3
  684. package/lib-esm/__tests__/Breadcrumbs.types.test.js +0 -12
  685. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +0 -1
  686. package/lib-esm/__tests__/BreadcrumbsItem.test.js +0 -39
  687. package/lib-esm/__tests__/Button.test.d.ts +0 -1
  688. package/lib-esm/__tests__/Button.test.js +0 -137
  689. package/lib-esm/__tests__/Caret.test.d.ts +0 -1
  690. package/lib-esm/__tests__/Caret.test.js +0 -42
  691. package/lib-esm/__tests__/CircleBadge.test.d.ts +0 -1
  692. package/lib-esm/__tests__/CircleBadge.test.js +0 -70
  693. package/lib-esm/__tests__/CircleBadge.types.test.d.ts +0 -3
  694. package/lib-esm/__tests__/CircleBadge.types.test.js +0 -13
  695. package/lib-esm/__tests__/CircleOcticon.test.d.ts +0 -1
  696. package/lib-esm/__tests__/CircleOcticon.test.js +0 -59
  697. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +0 -1
  698. package/lib-esm/__tests__/ConfirmationDialog.test.js +0 -113
  699. package/lib-esm/__tests__/CounterLabel.test.d.ts +0 -1
  700. package/lib-esm/__tests__/CounterLabel.test.js +0 -47
  701. package/lib-esm/__tests__/CounterLabel.types.test.d.ts +0 -3
  702. package/lib-esm/__tests__/CounterLabel.types.test.js +0 -13
  703. package/lib-esm/__tests__/Details.test.d.ts +0 -1
  704. package/lib-esm/__tests__/Details.test.js +0 -107
  705. package/lib-esm/__tests__/Dialog.test.d.ts +0 -1
  706. package/lib-esm/__tests__/Dialog.test.js +0 -171
  707. package/lib-esm/__tests__/Dialog.types.test.d.ts +0 -3
  708. package/lib-esm/__tests__/Dialog.types.test.js +0 -13
  709. package/lib-esm/__tests__/Dialog2.types.test.d.ts +0 -3
  710. package/lib-esm/__tests__/Dialog2.types.test.js +0 -16
  711. package/lib-esm/__tests__/Dropdown.test.d.ts +0 -1
  712. package/lib-esm/__tests__/Dropdown.test.js +0 -53
  713. package/lib-esm/__tests__/Dropdown.types.test.d.ts +0 -3
  714. package/lib-esm/__tests__/Dropdown.types.test.js +0 -17
  715. package/lib-esm/__tests__/DropdownMenu.test.d.ts +0 -1
  716. package/lib-esm/__tests__/DropdownMenu.test.js +0 -137
  717. package/lib-esm/__tests__/FilterList.test.d.ts +0 -1
  718. package/lib-esm/__tests__/FilterList.test.js +0 -26
  719. package/lib-esm/__tests__/FilterList.types.test.d.ts +0 -3
  720. package/lib-esm/__tests__/FilterList.types.test.js +0 -13
  721. package/lib-esm/__tests__/FilterListItem.test.d.ts +0 -1
  722. package/lib-esm/__tests__/FilterListItem.test.js +0 -36
  723. package/lib-esm/__tests__/FilteredSearch.test.d.ts +0 -1
  724. package/lib-esm/__tests__/FilteredSearch.test.js +0 -26
  725. package/lib-esm/__tests__/FilteredSearch.types.test.d.ts +0 -3
  726. package/lib-esm/__tests__/FilteredSearch.types.test.js +0 -13
  727. package/lib-esm/__tests__/Flash.test.d.ts +0 -1
  728. package/lib-esm/__tests__/Flash.test.js +0 -51
  729. package/lib-esm/__tests__/Flash.types.test.d.ts +0 -3
  730. package/lib-esm/__tests__/Flash.types.test.js +0 -13
  731. package/lib-esm/__tests__/Flex.test.d.ts +0 -1
  732. package/lib-esm/__tests__/Flex.test.js +0 -64
  733. package/lib-esm/__tests__/FormGroup.test.d.ts +0 -1
  734. package/lib-esm/__tests__/FormGroup.test.js +0 -44
  735. package/lib-esm/__tests__/FormGroup.types.test.d.ts +0 -3
  736. package/lib-esm/__tests__/FormGroup.types.test.js +0 -13
  737. package/lib-esm/__tests__/Grid.test.d.ts +0 -1
  738. package/lib-esm/__tests__/Grid.test.js +0 -94
  739. package/lib-esm/__tests__/Header.test.d.ts +0 -1
  740. package/lib-esm/__tests__/Header.test.js +0 -48
  741. package/lib-esm/__tests__/Header.types.test.d.ts +0 -3
  742. package/lib-esm/__tests__/Header.types.test.js +0 -15
  743. package/lib-esm/__tests__/Heading.test.d.ts +0 -1
  744. package/lib-esm/__tests__/Heading.test.js +0 -99
  745. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +0 -11
  746. package/lib-esm/__tests__/KeyPaths.types.test.js +0 -3
  747. package/lib-esm/__tests__/Label.test.d.ts +0 -1
  748. package/lib-esm/__tests__/Label.test.js +0 -36
  749. package/lib-esm/__tests__/Label.types.test.d.ts +0 -3
  750. package/lib-esm/__tests__/Label.types.test.js +0 -13
  751. package/lib-esm/__tests__/LabelGroup.test.d.ts +0 -1
  752. package/lib-esm/__tests__/LabelGroup.test.js +0 -26
  753. package/lib-esm/__tests__/LabelGroup.types.test.d.ts +0 -3
  754. package/lib-esm/__tests__/LabelGroup.types.test.js +0 -13
  755. package/lib-esm/__tests__/Link.test.d.ts +0 -1
  756. package/lib-esm/__tests__/Link.test.js +0 -66
  757. package/lib-esm/__tests__/Link.types.test.d.ts +0 -3
  758. package/lib-esm/__tests__/Link.types.test.js +0 -13
  759. package/lib-esm/__tests__/Merge.types.test.d.ts +0 -30
  760. package/lib-esm/__tests__/Merge.types.test.js +0 -14
  761. package/lib-esm/__tests__/NewButton.test.d.ts +0 -1
  762. package/lib-esm/__tests__/NewButton.test.js +0 -84
  763. package/lib-esm/__tests__/Overlay.test.d.ts +0 -1
  764. package/lib-esm/__tests__/Overlay.test.js +0 -123
  765. package/lib-esm/__tests__/Overlay.types.test.d.ts +0 -3
  766. package/lib-esm/__tests__/Overlay.types.test.js +0 -20
  767. package/lib-esm/__tests__/Pagehead.test.d.ts +0 -1
  768. package/lib-esm/__tests__/Pagehead.test.js +0 -26
  769. package/lib-esm/__tests__/Pagehead.types.test.d.ts +0 -3
  770. package/lib-esm/__tests__/Pagehead.types.test.js +0 -13
  771. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +0 -1
  772. package/lib-esm/__tests__/Pagination/Pagination.test.js +0 -35
  773. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +0 -1
  774. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +0 -182
  775. package/lib-esm/__tests__/Pagination.types.test.d.ts +0 -3
  776. package/lib-esm/__tests__/Pagination.types.test.js +0 -18
  777. package/lib-esm/__tests__/PointerBox.test.d.ts +0 -1
  778. package/lib-esm/__tests__/PointerBox.test.js +0 -36
  779. package/lib-esm/__tests__/Popover.test.d.ts +0 -1
  780. package/lib-esm/__tests__/Popover.test.js +0 -53
  781. package/lib-esm/__tests__/Popover.types.test.d.ts +0 -3
  782. package/lib-esm/__tests__/Popover.types.test.js +0 -13
  783. package/lib-esm/__tests__/Portal.test.d.ts +0 -1
  784. package/lib-esm/__tests__/Portal.test.js +0 -104
  785. package/lib-esm/__tests__/Position.test.d.ts +0 -1
  786. package/lib-esm/__tests__/Position.test.js +0 -133
  787. package/lib-esm/__tests__/ProgressBar.test.d.ts +0 -1
  788. package/lib-esm/__tests__/ProgressBar.test.js +0 -58
  789. package/lib-esm/__tests__/SelectMenu.test.d.ts +0 -1
  790. package/lib-esm/__tests__/SelectMenu.test.js +0 -145
  791. package/lib-esm/__tests__/SelectMenu.types.test.d.ts +0 -3
  792. package/lib-esm/__tests__/SelectMenu.types.test.js +0 -33
  793. package/lib-esm/__tests__/SelectPanel.test.d.ts +0 -1
  794. package/lib-esm/__tests__/SelectPanel.test.js +0 -65
  795. package/lib-esm/__tests__/SideNav.test.d.ts +0 -1
  796. package/lib-esm/__tests__/SideNav.test.js +0 -60
  797. package/lib-esm/__tests__/SideNav.types.test.d.ts +0 -3
  798. package/lib-esm/__tests__/SideNav.types.test.js +0 -13
  799. package/lib-esm/__tests__/Spinner.test.d.ts +0 -1
  800. package/lib-esm/__tests__/Spinner.test.js +0 -43
  801. package/lib-esm/__tests__/StateLabel.test.d.ts +0 -1
  802. package/lib-esm/__tests__/StateLabel.test.js +0 -61
  803. package/lib-esm/__tests__/StateLabel.types.test.d.ts +0 -3
  804. package/lib-esm/__tests__/StateLabel.types.test.js +0 -13
  805. package/lib-esm/__tests__/StyledOcticon.test.d.ts +0 -1
  806. package/lib-esm/__tests__/StyledOcticon.test.js +0 -29
  807. package/lib-esm/__tests__/StyledOcticon.types.test.d.ts +0 -3
  808. package/lib-esm/__tests__/StyledOcticon.types.test.js +0 -16
  809. package/lib-esm/__tests__/SubNav.test.d.ts +0 -1
  810. package/lib-esm/__tests__/SubNav.test.js +0 -50
  811. package/lib-esm/__tests__/SubNav.types.test.d.ts +0 -3
  812. package/lib-esm/__tests__/SubNav.types.test.js +0 -14
  813. package/lib-esm/__tests__/SubNavLink.test.d.ts +0 -1
  814. package/lib-esm/__tests__/SubNavLink.test.js +0 -39
  815. package/lib-esm/__tests__/TabNav.test.d.ts +0 -1
  816. package/lib-esm/__tests__/TabNav.test.js +0 -39
  817. package/lib-esm/__tests__/TabNav.types.test.d.ts +0 -3
  818. package/lib-esm/__tests__/TabNav.types.test.js +0 -12
  819. package/lib-esm/__tests__/Text.test.d.ts +0 -1
  820. package/lib-esm/__tests__/Text.test.js +0 -93
  821. package/lib-esm/__tests__/TextInput.test.d.ts +0 -1
  822. package/lib-esm/__tests__/TextInput.test.js +0 -68
  823. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +0 -1
  824. package/lib-esm/__tests__/TextInputWithTokens.test.js +0 -511
  825. package/lib-esm/__tests__/ThemeProvider.test.d.ts +0 -1
  826. package/lib-esm/__tests__/ThemeProvider.test.js +0 -408
  827. package/lib-esm/__tests__/Timeline.test.d.ts +0 -1
  828. package/lib-esm/__tests__/Timeline.test.js +0 -65
  829. package/lib-esm/__tests__/Timeline.types.test.d.ts +0 -3
  830. package/lib-esm/__tests__/Timeline.types.test.js +0 -18
  831. package/lib-esm/__tests__/Token.test.d.ts +0 -1
  832. package/lib-esm/__tests__/Token.test.js +0 -166
  833. package/lib-esm/__tests__/Tooltip.test.d.ts +0 -1
  834. package/lib-esm/__tests__/Tooltip.test.js +0 -59
  835. package/lib-esm/__tests__/Tooltip.types.test.d.ts +0 -3
  836. package/lib-esm/__tests__/Tooltip.types.test.js +0 -13
  837. package/lib-esm/__tests__/Truncate.test.d.ts +0 -1
  838. package/lib-esm/__tests__/Truncate.test.js +0 -53
  839. package/lib-esm/__tests__/Truncate.types.test.d.ts +0 -3
  840. package/lib-esm/__tests__/Truncate.types.test.js +0 -16
  841. package/lib-esm/__tests__/UnderlineNav.test.d.ts +0 -1
  842. package/lib-esm/__tests__/UnderlineNav.test.js +0 -60
  843. package/lib-esm/__tests__/UnderlineNav.types.test.d.ts +0 -3
  844. package/lib-esm/__tests__/UnderlineNav.types.test.js +0 -12
  845. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +0 -1
  846. package/lib-esm/__tests__/UnderlineNavLink.test.js +0 -41
  847. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +0 -1
  848. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +0 -388
  849. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +0 -1
  850. package/lib-esm/__tests__/behaviors/focusTrap.test.js +0 -227
  851. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +0 -1
  852. package/lib-esm/__tests__/behaviors/focusZone.test.js +0 -487
  853. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +0 -1
  854. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +0 -48
  855. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +0 -1
  856. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +0 -224
  857. package/lib-esm/__tests__/filterObject.test.d.ts +0 -1
  858. package/lib-esm/__tests__/filterObject.test.js +0 -27
  859. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +0 -1
  860. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +0 -46
  861. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +0 -1
  862. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +0 -23
  863. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +0 -1
  864. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +0 -68
  865. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +0 -1
  866. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +0 -52
  867. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +0 -1
  868. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +0 -36
  869. package/lib-esm/__tests__/theme.test.d.ts +0 -1
  870. package/lib-esm/__tests__/theme.test.js +0 -33
  871. package/lib-esm/__tests__/themeGet.test.d.ts +0 -1
  872. package/lib-esm/__tests__/themeGet.test.js +0 -22
  873. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +0 -1
  874. package/lib-esm/__tests__/useSafeTimeout.test.js +0 -39
  875. package/lib-esm/__tests__/utils/createSlots.test.d.ts +0 -1
  876. package/lib-esm/__tests__/utils/createSlots.test.js +0 -67
  877. package/lib-esm/stories/ActionList.stories.js +0 -395
  878. package/lib-esm/stories/ActionList2.stories.js +0 -797
  879. package/lib-esm/stories/ActionMenu.stories.js +0 -303
  880. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  881. package/lib-esm/stories/Autocomplete.stories.js +0 -560
  882. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  883. package/lib-esm/stories/Button.stories.js +0 -86
  884. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -94
  885. package/lib-esm/stories/Dialog.stories.js +0 -244
  886. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  887. package/lib-esm/stories/IssueLabelToken.stories.js +0 -139
  888. package/lib-esm/stories/NewButton.stories.js +0 -178
  889. package/lib-esm/stories/Overlay.stories.js +0 -173
  890. package/lib-esm/stories/Portal.stories.js +0 -68
  891. package/lib-esm/stories/ProfileToken.stories.js +0 -136
  892. package/lib-esm/stories/SelectPanel.stories.js +0 -334
  893. package/lib-esm/stories/TextInput.stories.js +0 -117
  894. package/lib-esm/stories/TextInputWithTokens.stories.js +0 -210
  895. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  896. package/lib-esm/stories/Token.stories.js +0 -146
  897. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  898. package/lib-esm/stories/useFocusTrap.stories.js +0 -313
  899. package/lib-esm/stories/useFocusZone.stories.js +0 -562
  900. package/migrating.md +0 -250
  901. package/now.json +0 -17
  902. package/package-lock.json +0 -66509
  903. package/rollup.config.js +0 -36
  904. package/script/build +0 -21
  905. package/script/build-storybook +0 -10
  906. package/script/setup +0 -12
  907. package/src/ActionList/Divider.tsx +0 -25
  908. package/src/ActionList/Group.tsx +0 -45
  909. package/src/ActionList/Header.tsx +0 -74
  910. package/src/ActionList/Item.tsx +0 -480
  911. package/src/ActionList/List.tsx +0 -258
  912. package/src/ActionList/index.ts +0 -21
  913. package/src/ActionList2/Description.tsx +0 -52
  914. package/src/ActionList2/Divider.tsx +0 -24
  915. package/src/ActionList2/Group.tsx +0 -103
  916. package/src/ActionList2/Header.tsx +0 -58
  917. package/src/ActionList2/Item.tsx +0 -246
  918. package/src/ActionList2/LinkItem.tsx +0 -49
  919. package/src/ActionList2/List.tsx +0 -55
  920. package/src/ActionList2/Selection.tsx +0 -60
  921. package/src/ActionList2/Visuals.tsx +0 -76
  922. package/src/ActionList2/index.ts +0 -39
  923. package/src/ActionMenu.tsx +0 -106
  924. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -191
  925. package/src/AnchoredOverlay/index.ts +0 -2
  926. package/src/Autocomplete/Autocomplete.tsx +0 -103
  927. package/src/Autocomplete/AutocompleteContext.tsx +0 -19
  928. package/src/Autocomplete/AutocompleteInput.tsx +0 -179
  929. package/src/Autocomplete/AutocompleteMenu.tsx +0 -341
  930. package/src/Autocomplete/AutocompleteOverlay.tsx +0 -68
  931. package/src/Autocomplete/index.ts +0 -2
  932. package/src/Avatar.tsx +0 -46
  933. package/src/AvatarPair.tsx +0 -35
  934. package/src/AvatarStack.tsx +0 -159
  935. package/src/BaseStyles.tsx +0 -53
  936. package/src/BorderBox.tsx +0 -18
  937. package/src/Box.tsx +0 -54
  938. package/src/BranchName.tsx +0 -19
  939. package/src/Breadcrumbs.tsx +0 -101
  940. package/src/Button/Button.tsx +0 -39
  941. package/src/Button/ButtonBase.tsx +0 -39
  942. package/src/Button/ButtonClose.tsx +0 -36
  943. package/src/Button/ButtonDanger.tsx +0 -42
  944. package/src/Button/ButtonGroup.tsx +0 -55
  945. package/src/Button/ButtonInvisible.tsx +0 -31
  946. package/src/Button/ButtonOutline.tsx +0 -42
  947. package/src/Button/ButtonPrimary.tsx +0 -40
  948. package/src/Button/ButtonStyles.tsx +0 -36
  949. package/src/Button/ButtonTableList.tsx +0 -45
  950. package/src/Button/index.ts +0 -16
  951. package/src/Caret.tsx +0 -133
  952. package/src/CircleBadge.tsx +0 -53
  953. package/src/CircleOcticon.tsx +0 -37
  954. package/src/CounterLabel.tsx +0 -50
  955. package/src/Details.tsx +0 -23
  956. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  957. package/src/Dialog/Dialog.tsx +0 -444
  958. package/src/Dialog.tsx +0 -145
  959. package/src/Dropdown.tsx +0 -154
  960. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  961. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  962. package/src/DropdownMenu/index.ts +0 -4
  963. package/src/DropdownStyles.ts +0 -128
  964. package/src/FilterList.tsx +0 -75
  965. package/src/FilteredActionList/FilteredActionList.tsx +0 -142
  966. package/src/FilteredActionList/index.ts +0 -2
  967. package/src/FilteredSearch.tsx +0 -27
  968. package/src/Flash.tsx +0 -75
  969. package/src/Flex.tsx +0 -15
  970. package/src/FormGroup.tsx +0 -24
  971. package/src/Grid.tsx +0 -15
  972. package/src/Header.tsx +0 -74
  973. package/src/Heading.tsx +0 -21
  974. package/src/Label.tsx +0 -72
  975. package/src/LabelGroup.tsx +0 -17
  976. package/src/Link.tsx +0 -42
  977. package/src/NewButton/button-counter.tsx +0 -15
  978. package/src/NewButton/button.tsx +0 -283
  979. package/src/NewButton/index.ts +0 -10
  980. package/src/NewButton/types.ts +0 -36
  981. package/src/Overlay.tsx +0 -200
  982. package/src/Pagehead.tsx +0 -16
  983. package/src/Pagination/Pagination.tsx +0 -212
  984. package/src/Pagination/index.ts +0 -4
  985. package/src/Pagination/model.tsx +0 -187
  986. package/src/PointerBox.tsx +0 -31
  987. package/src/Popover.tsx +0 -225
  988. package/src/Portal/Portal.tsx +0 -97
  989. package/src/Portal/index.ts +0 -5
  990. package/src/Position.tsx +0 -63
  991. package/src/ProgressBar.tsx +0 -52
  992. package/src/SelectMenu/SelectMenu.tsx +0 -123
  993. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  994. package/src/SelectMenu/SelectMenuDivider.tsx +0 -24
  995. package/src/SelectMenu/SelectMenuFilter.tsx +0 -50
  996. package/src/SelectMenu/SelectMenuFooter.tsx +0 -27
  997. package/src/SelectMenu/SelectMenuHeader.tsx +0 -48
  998. package/src/SelectMenu/SelectMenuItem.tsx +0 -136
  999. package/src/SelectMenu/SelectMenuList.tsx +0 -41
  1000. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -25
  1001. package/src/SelectMenu/SelectMenuModal.tsx +0 -119
  1002. package/src/SelectMenu/SelectMenuTab.tsx +0 -87
  1003. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -29
  1004. package/src/SelectMenu/SelectMenuTabs.tsx +0 -43
  1005. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  1006. package/src/SelectMenu/index.ts +0 -15
  1007. package/src/SelectPanel/SelectPanel.tsx +0 -173
  1008. package/src/SelectPanel/index.ts +0 -2
  1009. package/src/SideNav.tsx +0 -191
  1010. package/src/Spinner.tsx +0 -59
  1011. package/src/StateLabel.tsx +0 -112
  1012. package/src/StyledOcticon.tsx +0 -22
  1013. package/src/SubNav.tsx +0 -124
  1014. package/src/TabNav.tsx +0 -73
  1015. package/src/Text.tsx +0 -13
  1016. package/src/TextInput.tsx +0 -68
  1017. package/src/TextInputWithTokens.tsx +0 -351
  1018. package/src/ThemeProvider.tsx +0 -176
  1019. package/src/Timeline.tsx +0 -140
  1020. package/src/Token/AvatarToken.tsx +0 -54
  1021. package/src/Token/IssueLabelToken.tsx +0 -150
  1022. package/src/Token/Token.tsx +0 -126
  1023. package/src/Token/TokenBase.tsx +0 -129
  1024. package/src/Token/_RemoveTokenButton.tsx +0 -111
  1025. package/src/Token/_TokenTextContainer.tsx +0 -47
  1026. package/src/Token/index.ts +0 -3
  1027. package/src/Tooltip.tsx +0 -263
  1028. package/src/Truncate.tsx +0 -31
  1029. package/src/UnderlineNav.tsx +0 -107
  1030. package/src/_TextInputWrapper.tsx +0 -113
  1031. package/src/_UnstyledTextInput.tsx +0 -19
  1032. package/src/__tests__/.eslintrc.json +0 -11
  1033. package/src/__tests__/ActionList.test.tsx +0 -53
  1034. package/src/__tests__/ActionList.types.test.tsx +0 -51
  1035. package/src/__tests__/ActionList2.test.tsx +0 -47
  1036. package/src/__tests__/ActionMenu.test.tsx +0 -136
  1037. package/src/__tests__/AnchoredOverlay.test.tsx +0 -150
  1038. package/src/__tests__/Autocomplete.test.tsx +0 -444
  1039. package/src/__tests__/Avatar.test.tsx +0 -44
  1040. package/src/__tests__/AvatarStack.test.tsx +0 -48
  1041. package/src/__tests__/BorderBox.test.tsx +0 -43
  1042. package/src/__tests__/Box.test.tsx +0 -42
  1043. package/src/__tests__/BranchName.test.tsx +0 -26
  1044. package/src/__tests__/Breadcrumbs.test.tsx +0 -27
  1045. package/src/__tests__/Breadcrumbs.types.test.tsx +0 -22
  1046. package/src/__tests__/BreadcrumbsItem.test.tsx +0 -31
  1047. package/src/__tests__/Button.test.tsx +0 -128
  1048. package/src/__tests__/Caret.test.tsx +0 -36
  1049. package/src/__tests__/CircleBadge.test.tsx +0 -66
  1050. package/src/__tests__/CircleBadge.types.test.tsx +0 -11
  1051. package/src/__tests__/CircleOcticon.test.tsx +0 -50
  1052. package/src/__tests__/ConfirmationDialog.test.tsx +0 -120
  1053. package/src/__tests__/CounterLabel.test.tsx +0 -50
  1054. package/src/__tests__/CounterLabel.types.test.tsx +0 -11
  1055. package/src/__tests__/Details.test.tsx +0 -115
  1056. package/src/__tests__/Dialog.test.tsx +0 -155
  1057. package/src/__tests__/Dialog.types.test.tsx +0 -11
  1058. package/src/__tests__/Dialog2.types.test.tsx +0 -11
  1059. package/src/__tests__/Dropdown.test.tsx +0 -53
  1060. package/src/__tests__/Dropdown.types.test.tsx +0 -21
  1061. package/src/__tests__/DropdownMenu.test.tsx +0 -136
  1062. package/src/__tests__/FilterList.test.tsx +0 -26
  1063. package/src/__tests__/FilterList.types.test.tsx +0 -17
  1064. package/src/__tests__/FilterListItem.test.tsx +0 -31
  1065. package/src/__tests__/FilteredSearch.test.tsx +0 -26
  1066. package/src/__tests__/FilteredSearch.types.test.tsx +0 -11
  1067. package/src/__tests__/Flash.test.tsx +0 -45
  1068. package/src/__tests__/Flash.types.test.tsx +0 -11
  1069. package/src/__tests__/Flex.test.tsx +0 -58
  1070. package/src/__tests__/FormGroup.test.tsx +0 -38
  1071. package/src/__tests__/FormGroup.types.test.tsx +0 -11
  1072. package/src/__tests__/Grid.test.tsx +0 -82
  1073. package/src/__tests__/Header.test.tsx +0 -49
  1074. package/src/__tests__/Header.types.test.tsx +0 -19
  1075. package/src/__tests__/Heading.test.tsx +0 -91
  1076. package/src/__tests__/KeyPaths.types.test.ts +0 -14
  1077. package/src/__tests__/Label.test.tsx +0 -34
  1078. package/src/__tests__/Label.types.test.tsx +0 -11
  1079. package/src/__tests__/LabelGroup.test.tsx +0 -30
  1080. package/src/__tests__/LabelGroup.types.test.tsx +0 -11
  1081. package/src/__tests__/Link.test.tsx +0 -47
  1082. package/src/__tests__/Link.types.test.tsx +0 -11
  1083. package/src/__tests__/Merge.types.test.ts +0 -39
  1084. package/src/__tests__/NewButton.test.tsx +0 -70
  1085. package/src/__tests__/Overlay.test.tsx +0 -103
  1086. package/src/__tests__/Overlay.types.test.tsx +0 -18
  1087. package/src/__tests__/Pagehead.test.tsx +0 -23
  1088. package/src/__tests__/Pagehead.types.test.tsx +0 -11
  1089. package/src/__tests__/Pagination/Pagination.test.tsx +0 -30
  1090. package/src/__tests__/Pagination/PaginationModel.test.tsx +0 -133
  1091. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -184
  1092. package/src/__tests__/Pagination.types.test.tsx +0 -11
  1093. package/src/__tests__/PointerBox.test.tsx +0 -34
  1094. package/src/__tests__/Popover.test.tsx +0 -68
  1095. package/src/__tests__/Popover.types.test.tsx +0 -17
  1096. package/src/__tests__/Portal.test.tsx +0 -103
  1097. package/src/__tests__/Position.test.tsx +0 -117
  1098. package/src/__tests__/ProgressBar.test.tsx +0 -40
  1099. package/src/__tests__/SelectMenu.test.tsx +0 -142
  1100. package/src/__tests__/SelectMenu.types.test.tsx +0 -37
  1101. package/src/__tests__/SelectPanel.test.tsx +0 -63
  1102. package/src/__tests__/SideNav.test.tsx +0 -62
  1103. package/src/__tests__/SideNav.types.test.tsx +0 -11
  1104. package/src/__tests__/Spinner.test.tsx +0 -42
  1105. package/src/__tests__/StateLabel.test.tsx +0 -48
  1106. package/src/__tests__/StateLabel.types.test.tsx +0 -11
  1107. package/src/__tests__/StyledOcticon.test.tsx +0 -26
  1108. package/src/__tests__/StyledOcticon.types.test.tsx +0 -12
  1109. package/src/__tests__/SubNav.test.tsx +0 -50
  1110. package/src/__tests__/SubNav.types.test.tsx +0 -25
  1111. package/src/__tests__/SubNavLink.test.tsx +0 -31
  1112. package/src/__tests__/TabNav.test.tsx +0 -32
  1113. package/src/__tests__/TabNav.types.test.tsx +0 -22
  1114. package/src/__tests__/Text.test.tsx +0 -78
  1115. package/src/__tests__/TextInput.test.tsx +0 -49
  1116. package/src/__tests__/TextInputWithTokens.test.tsx +0 -422
  1117. package/src/__tests__/ThemeProvider.test.tsx +0 -441
  1118. package/src/__tests__/Timeline.test.tsx +0 -58
  1119. package/src/__tests__/Timeline.types.test.tsx +0 -31
  1120. package/src/__tests__/Token.test.tsx +0 -118
  1121. package/src/__tests__/Tooltip.test.tsx +0 -52
  1122. package/src/__tests__/Tooltip.types.test.tsx +0 -11
  1123. package/src/__tests__/Truncate.test.tsx +0 -43
  1124. package/src/__tests__/Truncate.types.test.tsx +0 -11
  1125. package/src/__tests__/UnderlineNav.test.tsx +0 -58
  1126. package/src/__tests__/UnderlineNav.types.test.tsx +0 -22
  1127. package/src/__tests__/UnderlineNavLink.test.tsx +0 -31
  1128. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +0 -223
  1129. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +0 -14
  1130. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +0 -80
  1131. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +0 -232
  1132. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +0 -3888
  1133. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +0 -19
  1134. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +0 -377
  1135. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +0 -14
  1136. package/src/__tests__/__snapshots__/Box.test.tsx.snap +0 -201
  1137. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +0 -17
  1138. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +0 -29
  1139. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +0 -79
  1140. package/src/__tests__/__snapshots__/Button.test.tsx.snap +0 -840
  1141. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +0 -373
  1142. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +0 -142
  1143. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +0 -65
  1144. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +0 -89
  1145. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +0 -22
  1146. package/src/__tests__/__snapshots__/Details.test.tsx.snap +0 -15
  1147. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +0 -201
  1148. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +0 -249
  1149. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +0 -107
  1150. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +0 -13
  1151. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +0 -80
  1152. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +0 -32
  1153. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +0 -32
  1154. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +0 -130
  1155. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +0 -25
  1156. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +0 -178
  1157. package/src/__tests__/__snapshots__/Header.test.tsx.snap +0 -79
  1158. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +0 -13
  1159. package/src/__tests__/__snapshots__/Label.test.tsx.snap +0 -73
  1160. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +0 -15
  1161. package/src/__tests__/__snapshots__/Link.test.tsx.snap +0 -212
  1162. package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +0 -305
  1163. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +0 -15
  1164. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +0 -174
  1165. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +0 -4687
  1166. package/src/__tests__/__snapshots__/Position.test.tsx.snap +0 -44
  1167. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +0 -53
  1168. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +0 -473
  1169. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +0 -124
  1170. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +0 -143
  1171. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +0 -33
  1172. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +0 -395
  1173. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +0 -26
  1174. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +0 -44
  1175. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +0 -199
  1176. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +0 -58
  1177. package/src/__tests__/__snapshots__/Text.test.tsx.snap +0 -7
  1178. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +0 -446
  1179. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +0 -6045
  1180. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +0 -15
  1181. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +0 -159
  1182. package/src/__tests__/__snapshots__/Token.test.tsx.snap +0 -3811
  1183. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +0 -227
  1184. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +0 -17
  1185. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +0 -59
  1186. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +0 -130
  1187. package/src/__tests__/behaviors/anchoredPosition.test.ts +0 -295
  1188. package/src/__tests__/behaviors/focusTrap.test.tsx +0 -236
  1189. package/src/__tests__/behaviors/focusZone.test.tsx +0 -549
  1190. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +0 -61
  1191. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +0 -195
  1192. package/src/__tests__/filterObject.test.ts +0 -54
  1193. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +0 -31
  1194. package/src/__tests__/hooks/useOnEscapePress.test.tsx +0 -16
  1195. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +0 -48
  1196. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +0 -48
  1197. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +0 -39
  1198. package/src/__tests__/theme.test.ts +0 -41
  1199. package/src/__tests__/themeGet.test.ts +0 -15
  1200. package/src/__tests__/useSafeTimeout.test.tsx +0 -36
  1201. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +0 -55
  1202. package/src/__tests__/utils/createSlots.test.tsx +0 -74
  1203. package/src/behaviors/anchoredPosition.ts +0 -442
  1204. package/src/behaviors/focusTrap.ts +0 -184
  1205. package/src/behaviors/focusZone.ts +0 -713
  1206. package/src/behaviors/scrollIntoViewingArea.ts +0 -27
  1207. package/src/constants.ts +0 -62
  1208. package/src/drafts.ts +0 -10
  1209. package/src/hooks/index.ts +0 -11
  1210. package/src/hooks/useAnchoredPosition.ts +0 -54
  1211. package/src/hooks/useCombinedRefs.ts +0 -40
  1212. package/src/hooks/useDetails.tsx +0 -54
  1213. package/src/hooks/useDialog.ts +0 -121
  1214. package/src/hooks/useFocusTrap.ts +0 -80
  1215. package/src/hooks/useFocusZone.ts +0 -64
  1216. package/src/hooks/useOnEscapePress.ts +0 -63
  1217. package/src/hooks/useOnOutsideClick.tsx +0 -82
  1218. package/src/hooks/useOpenAndCloseFocus.ts +0 -32
  1219. package/src/hooks/useOverlay.tsx +0 -34
  1220. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  1221. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  1222. package/src/hooks/useRenderForcingRef.ts +0 -22
  1223. package/src/hooks/useResizeObserver.ts +0 -11
  1224. package/src/hooks/useSafeTimeout.ts +0 -38
  1225. package/src/hooks/useScrollFlash.ts +0 -21
  1226. package/src/index.ts +0 -172
  1227. package/src/polyfills/eventListenerSignal.ts +0 -66
  1228. package/src/stories/ActionList.stories.tsx +0 -436
  1229. package/src/stories/ActionList2.stories.tsx +0 -1291
  1230. package/src/stories/ActionMenu.stories.tsx +0 -331
  1231. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  1232. package/src/stories/Autocomplete.stories.tsx +0 -655
  1233. package/src/stories/AvatarStack.stories.tsx +0 -37
  1234. package/src/stories/Button.stories.tsx +0 -92
  1235. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  1236. package/src/stories/Dialog.stories.tsx +0 -240
  1237. package/src/stories/DropdownMenu.stories.tsx +0 -84
  1238. package/src/stories/IssueLabelToken.stories.tsx +0 -138
  1239. package/src/stories/NewButton.stories.tsx +0 -201
  1240. package/src/stories/Overlay.stories.tsx +0 -213
  1241. package/src/stories/Portal.stories.tsx +0 -109
  1242. package/src/stories/ProfileToken.stories.tsx +0 -129
  1243. package/src/stories/SelectPanel.stories.tsx +0 -353
  1244. package/src/stories/TextInput.stories.tsx +0 -113
  1245. package/src/stories/TextInputWithTokens.stories.tsx +0 -155
  1246. package/src/stories/ThemeProvider.stories.tsx +0 -104
  1247. package/src/stories/Token.stories.tsx +0 -137
  1248. package/src/stories/useAnchoredPosition.stories.tsx +0 -332
  1249. package/src/stories/useFocusTrap.stories.tsx +0 -400
  1250. package/src/stories/useFocusZone.stories.tsx +0 -663
  1251. package/src/sx.ts +0 -24
  1252. package/src/theme-preval.js +0 -80
  1253. package/src/theme.ts +0 -89
  1254. package/src/utils/create-slots.tsx +0 -96
  1255. package/src/utils/deprecate.tsx +0 -73
  1256. package/src/utils/isNumeric.tsx +0 -4
  1257. package/src/utils/iterateFocusableElements.ts +0 -121
  1258. package/src/utils/ssr.tsx +0 -1
  1259. package/src/utils/test-deprecations.tsx +0 -19
  1260. package/src/utils/test-helpers.tsx +0 -7
  1261. package/src/utils/test-matchers.tsx +0 -109
  1262. package/src/utils/testing.tsx +0 -242
  1263. package/src/utils/theme.js +0 -64
  1264. package/src/utils/types/AriaRole.ts +0 -71
  1265. package/src/utils/types/ComponentProps.ts +0 -13
  1266. package/src/utils/types/Flatten.ts +0 -4
  1267. package/src/utils/types/KeyPaths.ts +0 -10
  1268. package/src/utils/types/MandateProps.ts +0 -19
  1269. package/src/utils/types/Merge.ts +0 -20
  1270. package/src/utils/types/index.ts +0 -5
  1271. package/src/utils/uniqueId.ts +0 -6
  1272. package/src/utils/use-force-update.ts +0 -7
  1273. package/src/utils/useIsomorphicLayoutEffect.ts +0 -10
  1274. package/src/utils/userAgent.ts +0 -7
  1275. package/stats.html +0 -3279
  1276. package/tsconfig.base.json +0 -20
  1277. package/tsconfig.build.json +0 -7
  1278. package/tsconfig.json +0 -7
@@ -1,132 +0,0 @@
1
- _Note: This documentation is a draft and is expected to undergo several revisions before being adopted._
2
-
3
- # Implementing Behaviors in Primer Components
4
-
5
- Behaviors in Primer Components are implemented via React Hooks. Primer Components provides two types of behaviors: generic behaviors and component behaviors.
6
-
7
- ## Dependencies
8
-
9
- **External dependencies:** Third-party/external dependencies are not allowed, except under very strict circumstances. If you need to use an external dependency, open an issue and discuss with the team.
10
-
11
- **Internal dependencies:** Internal dependencies are fine and encouraged to reduce code duplication and maintain consistency. When taking an internal dependency, observe the following:
12
-
13
- - No circular dependencies
14
- - Components may depend on other components and component behaviors, but should avoid depending directly on generic behaviors.
15
- - Component behaviors may depend on other component behaviors and generic behaviors.
16
- - Generic behaviors may only depend on other generic behaviors.
17
-
18
- See below for a visualization of allowed dependencies.
19
-
20
- ```
21
- ____________
22
- | \*
23
- +-------------V--------+ /
24
- | Generic behaviors |---
25
- +----------------------+
26
- ^
27
- *| ___________
28
- | | \*
29
- +----------|----V-------+ /
30
- | Component behaviors |---
31
- +-----------------------+
32
- ^
33
- 1| _____
34
- | | \*
35
- +--------|---V-+ /
36
- | Components |---
37
- +--------------+
38
-
39
- ```
40
-
41
- ## Generic behaviors
42
-
43
- Generic behaviors provide functionality that is not specific to any single component or class of components. If you can't tell which component it should operate on, it's probably a generic behavior. Generic behaviors are _low-level_. Generic behaviors may only have dependencies on other generic behaviors.
44
-
45
- ### Examples
46
-
47
- - `useProvidedRefOrCreate`
48
- - `usePosition`
49
- - `useClickAway`
50
- - `useTypeAhead`
51
-
52
- ## Component behaviors
53
-
54
- Component behaviors specifically implement behaviors for components. Therefore, hooks that implement component behaviors should always return an object containing props objects to be spread across the elements that make up the component's JSX. While component behaviors do not necessarily have to be one-to-one, **a component may only use one component behavior**. Sometimes it makes sense to use the same component behavior on several components. For example: the Dialog, Popover, and PointerBox components may all use the `usePopover` component behavior.
55
-
56
- ### Examples
57
-
58
- - `usePopover`
59
- - `useComboBox`
60
- - `useFilteredSearch`
61
- - `useDetails`
62
-
63
- ## Implementation guidelines
64
-
65
- All behaviors should be implemented as [React Hooks](https://reactjs.org/docs/hooks-intro.html).
66
-
67
- Component behaviors should be relatively brief. A component behavior should build a component's experience through the combination of several configured generic behaviors.
68
-
69
- Example: The Dialog component uses a `usePopover` behavior. The `usePopover` behavior in turn may call generic behaviors such as `usePosition` (to position the popover on the screen), `useClickAway` (to set up an event handler for clicking outside of the dialog), and `useFocusTrap` (to prevent focus from leaving the dialog while it is being shown).
70
-
71
- ### Component implementation
72
-
73
- Component implementation is [discussed elsewhere](https://github.com/primer/react/blob/main/contributor-docs/CONTRIBUTING.md#developing-components), but with respect to behaviors, follow these guidelines.
74
-
75
- - If a component has behaviors, it should make a call to exactly one component behavior hook.
76
- - The hook will return an object containing multiple props objects. Each of the returned objects are props that should be spread onto the appropriate JSX element.
77
- - Component implementations should be as clean as possible, mostly consisting of the JSX tree definition that the component renders.
78
- - Component props and, in some circumstances, context values, should serve as arguments to component behavior hooks.
79
-
80
- ### Balancing API surface with supported scenarios
81
-
82
- The [YAGNI Principle](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it) cautions developers against building out functionality that isn't presently needed, but as a library, Primer Components should carefully balance the API surface area with building a library that functions for a wide range of use cases. Since it is difficult to define a quantitative test to determine whether or not a component or a behavior should support a certain scenario, there will be some subjectivity when it comes to choosing to build certain features. When adding a feature that seems too specific, try to _generalize_ it. Can multiple use cases be accounted for by implementing a single generalized feature? Can a known needed use case be extrapolated into a feature that supports that use case along with other use cases that are not yet known to be needed? If so, use these considerations when designing your APIs.
83
-
84
- ### Sensible defaults, powerful configuration, and last-resort "escape hatches"
85
-
86
- - Defaults should take users down the “happy path” and place them into the “pit of success.”
87
- - Configuration allows the component to reach more use cases. Components that use configurations to deviate from defaults should be viewed as first-class supported scenarios, just as important as the defaults.
88
- - Escape hatches may be necessary to support consumers with requirements that we haven’t considered. It should be cleared that using escape hatches “voids your warranty,” yet, they should be fully documented.
89
-
90
- ### Arguments to behaviors
91
-
92
- - As mentioned above, behaviors should have sensible defaults but powerful configuration. Behaviors are configured via arguments passed to the hook.
93
- - When possible, a hook should be able to be called with zero arguments to get all the defaults.
94
- - Each argument that is required should have an individual parameter on the hook function.
95
- - Optional arguments (i.e. “settings”) should be provided via a strongly typed settings object as the last argument to a hook function.
96
-
97
- ### Return value of behavior hooks
98
-
99
- #### Component behavior hook return value
100
-
101
- Component behavior hooks produce _props_. Therefore, the return value of a component behavior should be a collection of props objects, intended to be spread onto JSX elements that render a component.
102
-
103
- - Each element of the object returned from a component behavior hook is a props object that can be spread onto a JSX element
104
- - The names of the keys should accurately indicate the JSX element onto which those props should be spread
105
-
106
- Example: The Dialog component uses a `usePopover` component behavior, which may return an object like:
107
-
108
- ```
109
- {
110
- popoverProps: PropsObject,
111
- openClickTargetProps: PropsObject,
112
- closeClickTargetProps: PropsObject
113
- }
114
- ```
115
-
116
- Each of these props objects would then get spread onto their respective JSX elements.
117
-
118
- #### Generic behavior hook return value
119
-
120
- There are no restrictions on return values of generic behavior hooks. In fact, some behavioral hooks might not need to return anything. For example, a `useEscape` hook might simply set up a callback for an `Escape` keypress.
121
-
122
- ### Refs
123
-
124
- - Often, a behavior will need to act on a real DOM element.
125
- - In this case, the hook should return a ref as part of the returned props for that element. The ref will get spread onto the element, giving the ref access to it.
126
- - Whenever you need a ref, it must be accepted as an optional setting to the hook. The hook then uses the `useProvidedRefOrCreate` hook to resolve a usable ref. Remember to return the resulting ref from the hook.
127
-
128
- ## Testing behaviors
129
-
130
- - Whenever possible, test your changes in another application that makes heavy use of Primer Components.
131
- - You may even want to build and “marinate” your component in another application before merging a change to Primer Components.
132
- - Build the component, start using it in the application, and see how the component API feels. This approach works best for engineers at GitHub already working on a product written in React.
@@ -1,316 +0,0 @@
1
- # React Component APIs: Contents as data vs. Contents as children
2
-
3
- Consider a React component that renders a list of items. Here are two possible APIs that component might expose, both achieving an equivalent result.
4
-
5
- ### A: Contents passed as React children
6
-
7
- ```jsx
8
- <List>
9
- <List.Item>New file</List.Item>
10
- <List.Divider />
11
- <List.Item>Copy link</List.Item>
12
- <List.Item>Edit file</List.Item>
13
- <List.Item variant="danger">Delete file</List.Item>
14
- </List>
15
- ```
16
-
17
- ### B: Contents passed as data
18
-
19
- ```jsx
20
- <List
21
- items={[
22
- { text: "New file" },
23
- ActionList.Divider,
24
- { text: "Copy link" },
25
- { text: "Edit file" },
26
- { text: "Delete file", variant: "danger" },
27
- ]}
28
- />
29
- ```
30
-
31
- Is one API better than the other generally? What about in this context (a "List" component)? Are there situations where it is better to choose one over the other? Let's try to answer these questions.
32
-
33
- ## Both APIs have valid use cases
34
-
35
- This section simply argues that both of the patterns above are valid. Once we do this, we can attempt to define the criteria that helps the API designer choose one over the other.
36
-
37
- ### Contents passed as React children
38
-
39
- This is the most common way to define the structure of content in React. In fact, all HTML elements work this way:
40
-
41
- ```jsx
42
- <div>
43
- <div>Some content</div>
44
- <div>More content</div>
45
- </div>
46
- ```
47
-
48
- ```jsx
49
- <ul>
50
- <li>Item 1</li>
51
- <li>Item 2</li>
52
- </ul>
53
- ```
54
-
55
- ```jsx
56
- <select>
57
- <option value="1">First option</option>
58
- <option value="1">Second option</option>
59
- </select>
60
- ```
61
-
62
- Though less common, sometimes the HTML schema puts tight restrictions on the kinds of children an element may contain:
63
-
64
- - `<select>` elements may only contain `<option>` and `<optgroup>` children.
65
- - `<ul>` may only contain `<li>` children.
66
- - `<span>` elements may only contain [phrasing content](https://html.spec.whatwg.org/multipage/dom.html#phrasing-content-2).
67
-
68
- Furthermore, for custom React components, there is a first-class approach for rendering your component's children:
69
-
70
- ```jsx
71
- function MyFancyBox({ children }) {
72
- return <div style="border: 4px double cornflowerblue;">{children}</div>;
73
- }
74
-
75
- // usage
76
- <MyFancyBox>I have a blue border!</MyFancyBox>;
77
- ```
78
-
79
- I call this "first class" because the JSX children that are defined between your component's opening and closing tags are wrapped up into a special prop called `children`. It is the component's responsibility to render those children in the appropriate spot.
80
-
81
- **Clearly, this is a valid approach for a component API.**
82
-
83
- ### Contents passed as data
84
-
85
- An alternative approach is to accept data in the form of a prop, which eventually gets turned into a React element by the component's implementation. In plain HTML, this is far less common. One example is the `title` attribute, which results in a tooltip:
86
-
87
- ```html
88
- <button title="Save">💾</button>
89
- ```
90
-
91
- One _could_ imagine a parallel universe where a tooltip is achieved by some other means!
92
-
93
- ```html
94
- <button>
95
- <title>Save</title>
96
- 💾
97
- </button>
98
- ```
99
-
100
- In custom React components, this pattern can be more common. In this example, the text to render is passed as a prop, as data rather than as pre-created React elements (i.e. JSX):
101
-
102
- ```jsx
103
- function WordWrap({ text, charactersPerLine }) {
104
- const lines = [];
105
- for (
106
- let low = 0;
107
- low + charactersPerLine < text.length;
108
- low += charactersPerLine
109
- ) {
110
- lines.push(text.substr(low, charactersPerLine));
111
- }
112
- const remaining = text.length % charactersPerLine;
113
- if (remaining !== 0) {
114
- lines.push(text.substr(text.length - remaining));
115
- }
116
- return (
117
- <>
118
- {lines.map((l, index) => (
119
- <div key={index + l}>{l}</div>
120
- ))}
121
- </>
122
- );
123
- }
124
-
125
- // usage
126
- <WordWrap
127
- text="the quick brown fox jumps over the lazy dog"
128
- charactersPerLine={5}
129
- />;
130
- ```
131
-
132
- For further customization, one could imagine an optional `renderLine` prop that is used to give consumers control over the way a single line is rendered (see the section "Customization of content passed as data" below).
133
-
134
- ## Can't we just stick to one of the two patterns?
135
-
136
- As shown above, both patterns can be valid approaches based on the component. But _why_ did we choose the data API for `WordWrap`, and _why_ did we choose the React children API for `MyFancyBox`?
137
-
138
- ### Let's try swapping
139
-
140
- Since both patterns are equally powerful, we should be able to write equivalent components using the alternate approach.
141
-
142
- #### MyFancyBox
143
-
144
- Let's start with `MyFancyBox`:
145
-
146
- ```jsx
147
- function MyFancyBox({ contents }) {
148
- const boxChildren = [];
149
- if (typeof contents === "string" || React.isValidElement(contents)) {
150
- boxChildren.push(contents);
151
- } else if (typeof contents === "function") {
152
- boxChildren.push(contents());
153
- } // implementation abbreviated for clarity
154
- return <div style="border: 4px double cornflowerblue;">{boxChildren}</div>;
155
- }
156
-
157
- // usage
158
- <MyFancyBox contents="I have a blue border!" />;
159
- ```
160
-
161
- This example is so esoteric that I think it's obvious which is superior. The original has a less-complex implementation and a clearer API (in the second, just looking at the usage example, there is no way to know that contents can also accept a React element or a function callback).
162
-
163
- #### WordWrap
164
-
165
- Now let's dive into `WordWrap`, implemented with a React children-based API:
166
-
167
- ```jsx
168
- function WordWrap({ children, charactersPerLine }) {
169
- const items = React.Children.toArray(children);
170
- let textContent = "";
171
- for (const child of items) {
172
- if (typeof child === "string") {
173
- textContent += child;
174
- }
175
- }
176
- const lines = [];
177
- for (
178
- let low = 0;
179
- low + charactersPerLine < textContent.length;
180
- low += charactersPerLine
181
- ) {
182
- lines.push(textContent.substr(low, charactersPerLine));
183
- }
184
- const remaining = textContent.length % charactersPerLine;
185
- if (remaining !== 0) {
186
- lines.push(textContent.substr(textContent.length - remaining));
187
- }
188
- return (
189
- <>
190
- {lines.map((l, index) => (
191
- <div key={index + l}>{l}</div>
192
- ))}
193
- </>
194
- );
195
- }
196
-
197
- // usage
198
- <WordWrap charactersPerLine={5}>
199
- the quick brown fox jumps over the lazy dog
200
- </WordWrap>;
201
- ```
202
-
203
- Let's get the obvious out of the way: the component implementation is more complex. Instead of receiving the raw text as a prop, the component has to iterate through its children, figure out which ones are text nodes, and build up the string.
204
-
205
- But sometimes we are willing to make the sacrifice of increasing the complexity of our components if they become easier to use for our consumers. Is that what is happening here? One could argue that our new API is more straightforward and more readable! It's clear that the child text node of `WordWrap` will serve as the eventually-rendered contents, whereas the prop passed (`charactersPerLine`) is more of a configuration of the behavior.
206
-
207
- On the other hand, if you are consuming this `WordWrap`, you might be left more confused. It is not clear without reading the code what is allowed as a child node. Can I include links or styled elements? How does it respond to receiving component children? In fact, if we want to the [principle of least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment), it may be necessary to support links or bolded text. While possible, this greatly increases the complexity of the component. Even if we do support this, it might be hard to discover this feature unless the user reads the docs or source code.
208
-
209
- The first `WordWrap` implementation comparatively has a very strict API, easily discovered (with strong typing), and there is no possible way to use it which would produce a surprising result.
210
-
211
- Because of the trade-offs described, I postulate that the first implementation of `WordWrap` is superior.
212
-
213
- ### The hybrid approach
214
-
215
- It is possible to build a component API that supports both patterns. In other words, the consumer can pass data as a prop, which gets rendered into React elements, while also accepting those children being passed in directly.
216
-
217
- We do not recommend this approach. The resulting behavior can be very hard to predict. How do the elements generated from data interact with the passed-in children? How are they ordered? Furthermore, the approach likely does not improve the developer experience.
218
-
219
- ## The ownership of React elements
220
-
221
- I shall make the following claim:
222
-
223
- > The owner of a React element is the component that _originally_ added it to the component tree.
224
-
225
- For example, take the following two implementations of a simple (contrived) List component:
226
-
227
- ```jsx
228
- function List({ children, ordered }) {
229
- const Elem = ordered ? "ol" : "ul";
230
- return <Elem>{children}</Elem>;
231
- }
232
- function Item({ children }) {
233
- return <li>{children}</li>;
234
- }
235
-
236
- // usage
237
- function MyApp() {
238
- return (
239
- <List ordered={true}>
240
- <Item>Apple</Item>
241
- <Item>Banana</Item>
242
- <Item>Cantaloupe</Item>
243
- </List>
244
- );
245
- }
246
- ```
247
-
248
- ```jsx
249
- function List({ items, ordered }) {
250
- const Elem = ordered ? "ol" : "ul";
251
- const listItems = items.map((i) => <li key={i}>i</li>);
252
- return <Elem>{listItems}</Elem>;
253
- }
254
-
255
- // usage
256
- function MyApp() {
257
- return <List ordered={true} items={["Apple", "Banana", "Cantaloupe"]} />;
258
- }
259
- ```
260
-
261
- In the first example, `MyApp` "owns" the `List` and its 3 `Item`s. In the second example, `MyApp` only "owns" `List`, while the `List` owns the `Item`s it renders.
262
-
263
- Why do I bring this up? If you assume that the _owner_ of an element has the _highest authority_ to configure that element (i.e. change the element type, its props, and its children), then any component API should strive to be designed to respect this assumption.
264
-
265
- I believe this is a reasonable assumption: an element owner should be able to expect that the element will be rendered as close to the definition as possible. Otherwise, this violates the principle of least surprise.
266
-
267
- ### The `React.Children` anti-pattern
268
- Based on the above assumption, using `React.Children` can be an anti-pattern. `React.Children` allows a component to reach into elements that it does not own. In our `WordWrap` example that uses React children, it is clear that we do not respect the owner (as defined above) of these elements. We iterate through children, ignoring anything that is not a text node.
269
-
270
- With this reasoning, it's also easy to argue that `React.cloneElement` should be an anti-pattern. While that is true, there are ways to use `React.cloneElement` to simply augment children without altering their primary purpose or function. Adding additional props is a common use.
271
-
272
- While anti-patterns sometimes have their valid uses, those uses should be individually scrutinized and avoided where possible.
273
-
274
- ## Customization of content passed as data
275
-
276
- One significant benefit to the contents as children pattern is the fact that it lends itself very naturally to customization. Since the parent owns the children, it can create whatever children it likes, deciding their props and element types. This level of customization can be achieved using the contents as data pattern too, but it's not quite as straightforward (for the component author or the component consumer).
277
-
278
- One common practice is for a component to accept a "render prop." The render prop is a function that returns JSX (the same as a function component). That function should be passed any data that may be needed for rendering. Of course, components should ship with a default renderer and not rely on being passed a render prop.
279
-
280
- ## How to decide
281
-
282
- At this point we have shown that both patterns are valid, so how do we know which to use? Here is a comparison of the two approaches:
283
-
284
- ### Advantages of data contract
285
-
286
- - Strongly typed
287
- - All use cases are clearly defined
288
- - Easy to manipulate data
289
- - Easy to define a "pit of success" and lead the user there
290
- - Can support "escape hatches"
291
- - Component retains ownership of rendered contents
292
- - Usually less code in the implementation
293
-
294
- ### Advantages of children-based contract
295
-
296
- - Indicates flexibility
297
- - Leaves room for a flexible implementation
298
- - Recognizable from HTML
299
- - Easier to read
300
- - Ownership of contents remains with a parent or ancestor component
301
-
302
- Based on these observations, here are some guidelines to decide which type of API to build:
303
-
304
- ### When to use a data contract
305
- - Data doesn't cleanly transfer to an element structure
306
- - Data needs to be manipulated before being converted to an element structure
307
- - Certain well-defined scenarios need to be supported
308
- - You want to control the types and structure of child elements
309
- - The default rendering of the component is useful in many cases
310
- - You are building a composite component
311
-
312
- ### When to use a children-based contract
313
- - Your component doesn't care about the structure of children
314
- - Your component doesn't need to use `React.Children`
315
- - Your component is flexible enough to accommodate almost any child structure
316
- - You are building an intermediate component that provides behaviors or styles to a container
@@ -1,39 +0,0 @@
1
- # Principles
2
-
3
- ### Communication
4
-
5
- Design systems provide a vocabulary between design and engineering, the language we use should be correct but not at the expense of providing clarity. Use words and descriptions that both designers and engineers can understand.
6
-
7
- * Be a bridge not a barrier. Use vocabulary that provides meaning to both designers and engineers.
8
- * Choose language that provides mutual understanding between engineering and design over specificity.
9
- * Support new vocabulary with descriptions and examples.
10
- * Be consistent in the application of vocabulary in written and verbal communication to reinforce understandings.
11
- * Articulate what you are aiming to achieve as well as what you are not doing.
12
-
13
- ### Judgment
14
-
15
- There's often more than one way to do things, and there aren't always best-practice examples to follow. Despite this we still need to make decisions and keep moving forward. To deal with an uncertain future and still move forward we should have _strong opinions, weakly held_.
16
-
17
- * Make decisions that move us forward rather than halting progress due to ambiguity or difference of opinion.
18
- * Make decisions based on long term goals rather than this week's ship.
19
- * Evaluate technology by the risk they present, not just the solution they offer. High risk deserves careful consideration, low risk deserves less attention.
20
- * Have opinions and arguments for them, but remain open to seeing and hearing evidence that clashes with them when those opinions become wrong.
21
- * Prioritize solutions for people who use the system and how it serves the customers who use products built with the system.
22
- * Seek feedback on code review often, and more often when a solution takes you down a new path.
23
- * Take time to provide good code review, encompassing the above values when providing feedback.
24
-
25
- ### Innovation
26
-
27
- * Treat everything as an experiment. Make small incremental steps that provide proof towards goals, or disprove them.
28
- * Ship often. We learn more from tangible outcomes than something that only lives as an idea.
29
- * Work on reducing complexity and simplifying solutions to enable us to innovate faster.
30
-
31
- ### Implementation
32
-
33
- * Engineer just enough of a solution, value declarative over abstraction.
34
- * A little verbosity is better than clever code. Avoid implementations that reduce the ability for people to contribute.
35
- * Automate and abstract when repetition is a hindrance.
36
- * Seek feedback on implementations as often as possible.
37
- * Everything is a component.
38
- * Provide flexibility, but within the boundaries of the system.
39
- * Assume that people will break the rules, and provide safe ways for them to do so.
package/docs/.eslintrc DELETED
File without changes
package/docs/.gitignore DELETED
@@ -1,91 +0,0 @@
1
- # Logs
2
- logs
3
- *.log
4
- npm-debug.log*
5
- yarn-debug.log*
6
- yarn-error.log*
7
- lerna-debug.log*
8
-
9
- # Diagnostic reports (https://nodejs.org/api/report.html)
10
- report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11
-
12
- # Runtime data
13
- pids
14
- *.pid
15
- *.seed
16
- *.pid.lock
17
-
18
- # Directory for instrumented libs generated by jscoverage/JSCover
19
- lib-cov
20
-
21
- # Coverage directory used by tools like istanbul
22
- coverage
23
- *.lcov
24
-
25
- # nyc test coverage
26
- .nyc_output
27
-
28
- # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29
- .grunt
30
-
31
- # Bower dependency directory (https://bower.io/)
32
- bower_components
33
-
34
- # node-waf configuration
35
- .lock-wscript
36
-
37
- # Compiled binary addons (https://nodejs.org/api/addons.html)
38
- build/Release
39
-
40
- # Dependency directories
41
- node_modules/
42
- jspm_packages/
43
-
44
- # TypeScript v1 declaration files
45
- typings/
46
-
47
- # TypeScript cache
48
- *.tsbuildinfo
49
-
50
- # Optional npm cache directory
51
- .npm
52
-
53
- # Optional eslint cache
54
- .eslintcache
55
-
56
- # Optional REPL history
57
- .node_repl_history
58
-
59
- # Output of 'npm pack'
60
- *.tgz
61
-
62
- # Yarn Integrity file
63
- .yarn-integrity
64
-
65
- # dotenv environment variables file
66
- .env
67
- .env.test
68
-
69
- # parcel-bundler cache (https://parceljs.org/)
70
- .cache
71
-
72
- # next.js build output
73
- .next
74
-
75
- # nuxt.js build output
76
- .nuxt
77
-
78
- # vuepress build output
79
- .vuepress/dist
80
-
81
- # Serverless directories
82
- .serverless/
83
-
84
- # FuseBox cache
85
- .fusebox/
86
-
87
- # DynamoDB Local files
88
- .dynamodb/
89
-
90
- # Gatsby
91
- public/
@@ -1,5 +0,0 @@
1
- import React from 'react'
2
-
3
- const PropsList = ({systemProps}) => <div>{systemProps.propNames.join(', ')}</div>
4
-
5
- export default PropsList
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const State = props => {
4
- const result = React.useState(props.default)
5
-
6
- return props.children(result)
7
- }
8
-
9
- export default State
@@ -1,34 +0,0 @@
1
- import {theme} from '@primer/components'
2
- import systemPropTypes from '@styled-system/prop-types'
3
- import themeGet from '@styled-system/theme-get'
4
- import * as styledSystem from 'styled-system'
5
-
6
- const {get: getKey, compose, system} = styledSystem
7
-
8
- export const get = key => themeGet(key, getKey(theme, key))
9
-
10
- const whiteSpace = system({
11
- whiteSpace: {
12
- property: 'whiteSpace',
13
- cssProperty: 'whiteSpace'
14
- }
15
- })
16
-
17
- export const TYPOGRAPHY = compose(styledSystem.typography, whiteSpace)
18
-
19
- export const COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display)
20
-
21
- export const BORDER = compose(styledSystem.border, styledSystem.shadow)
22
-
23
- // these are 1:1 with styled-system's API now,
24
- // so you could consider dropping the abstraction
25
- export const LAYOUT = styledSystem.layout
26
- export const POSITION = styledSystem.position
27
- export const FLEX = styledSystem.flexbox
28
- export const GRID = styledSystem.grid
29
-
30
- TYPOGRAPHY.propTypes = systemPropTypes.typography
31
- LAYOUT.propTypes = systemPropTypes.layout
32
- POSITION.propTypes = systemPropTypes.position
33
- FLEX.propTypes = systemPropTypes.flexbox
34
- GRID.propTypes = systemPropTypes.grid
@@ -1,2 +0,0 @@
1
- export {default as PropsList} from './PropsList'
2
- export {COMMON, LAYOUT, BORDER, TYPOGRAPHY, FLEX, POSITION, GRID} from './constants'