@primer/components 29.0.0-rc.f749c85e → 29.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (856) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/dist/browser.esm.js +240 -194
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +339 -293
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Divider.js +1 -1
  7. package/lib/ActionList/Header.js +2 -2
  8. package/lib/ActionList/Item.js +10 -10
  9. package/lib/ActionList/List.js +1 -1
  10. package/lib/AvatarPair.js +1 -1
  11. package/lib/AvatarStack.js +1 -1
  12. package/lib/BranchName.js +1 -1
  13. package/lib/Breadcrumb.js +2 -2
  14. package/lib/Button/Button.js +1 -1
  15. package/lib/Button/ButtonClose.js +1 -1
  16. package/lib/Button/ButtonInvisible.js +1 -1
  17. package/lib/Button/ButtonTableList.js +1 -1
  18. package/lib/CircleBadge.js +1 -1
  19. package/lib/CircleOcticon.js +1 -1
  20. package/lib/CounterLabel.js +2 -2
  21. package/lib/Dialog/ConfirmationDialog.js +1 -1
  22. package/lib/Dialog/Dialog.js +5 -5
  23. package/lib/Dialog.js +4 -4
  24. package/lib/Dropdown.js +2 -2
  25. package/lib/DropdownStyles.js +6 -6
  26. package/lib/FilterList.js +1 -1
  27. package/lib/FilteredActionList/FilteredActionList.js +2 -2
  28. package/lib/Flash.js +1 -1
  29. package/lib/Label.js +2 -2
  30. package/lib/Link.js +1 -1
  31. package/lib/Overlay.js +1 -1
  32. package/lib/Pagehead.js +1 -1
  33. package/lib/Pagination/Pagination.js +1 -1
  34. package/lib/Popover.js +1 -1
  35. package/lib/ProgressBar.js +1 -1
  36. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  37. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  38. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  39. package/lib/SelectMenu/SelectMenuHeader.js +2 -2
  40. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  41. package/lib/SelectMenu/SelectMenuList.js +1 -1
  42. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  43. package/lib/SelectMenu/SelectMenuModal.js +2 -2
  44. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  45. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  46. package/lib/SideNav.js +5 -5
  47. package/lib/StateLabel.js +1 -1
  48. package/lib/SubNav.js +1 -1
  49. package/lib/TabNav.js +2 -2
  50. package/lib/TextInput.js +2 -2
  51. package/lib/Timeline.js +16 -19
  52. package/lib/Tooltip.js +1 -1
  53. package/lib/UnderlineNav.js +2 -2
  54. package/lib/theme-preval.d.ts +12 -6
  55. package/lib/theme-preval.js +2930 -1738
  56. package/lib/utils/testing.d.ts +4707 -2355
  57. package/lib-esm/ActionList/Divider.js +1 -1
  58. package/lib-esm/ActionList/Header.js +2 -2
  59. package/lib-esm/ActionList/Item.js +10 -10
  60. package/lib-esm/ActionList/List.js +1 -1
  61. package/lib-esm/AvatarPair.js +1 -1
  62. package/lib-esm/AvatarStack.js +1 -1
  63. package/lib-esm/BranchName.js +1 -1
  64. package/lib-esm/Breadcrumb.js +2 -2
  65. package/lib-esm/Button/Button.js +1 -1
  66. package/lib-esm/Button/ButtonClose.js +1 -1
  67. package/lib-esm/Button/ButtonInvisible.js +1 -1
  68. package/lib-esm/Button/ButtonTableList.js +1 -1
  69. package/lib-esm/CircleBadge.js +1 -1
  70. package/lib-esm/CircleOcticon.js +1 -1
  71. package/lib-esm/CounterLabel.js +2 -2
  72. package/lib-esm/Dialog/ConfirmationDialog.js +1 -1
  73. package/lib-esm/Dialog/Dialog.js +5 -5
  74. package/lib-esm/Dialog.js +4 -4
  75. package/lib-esm/Dropdown.js +2 -2
  76. package/lib-esm/DropdownStyles.js +6 -6
  77. package/lib-esm/FilterList.js +1 -1
  78. package/lib-esm/FilteredActionList/FilteredActionList.js +2 -2
  79. package/lib-esm/Flash.js +1 -1
  80. package/lib-esm/Label.js +2 -2
  81. package/lib-esm/Link.js +1 -1
  82. package/lib-esm/Overlay.js +1 -1
  83. package/lib-esm/Pagehead.js +1 -1
  84. package/lib-esm/Pagination/Pagination.js +1 -1
  85. package/lib-esm/Popover.js +1 -1
  86. package/lib-esm/ProgressBar.js +1 -1
  87. package/lib-esm/SelectMenu/SelectMenuDivider.js +1 -1
  88. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  89. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  90. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  91. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  92. package/lib-esm/SelectMenu/SelectMenuList.js +1 -1
  93. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  94. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  95. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  96. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  97. package/lib-esm/SideNav.js +5 -5
  98. package/lib-esm/StateLabel.js +1 -1
  99. package/lib-esm/SubNav.js +1 -1
  100. package/lib-esm/TabNav.js +2 -2
  101. package/lib-esm/TextInput.js +2 -2
  102. package/lib-esm/Timeline.js +12 -17
  103. package/lib-esm/Tooltip.js +1 -1
  104. package/lib-esm/UnderlineNav.js +2 -2
  105. package/lib-esm/theme-preval.d.ts +12 -6
  106. package/lib-esm/theme-preval.js +2930 -1738
  107. package/lib-esm/utils/testing.d.ts +4707 -2355
  108. package/package.json +3 -2
  109. package/.changeset/README.md +0 -8
  110. package/.changeset/config.json +0 -10
  111. package/.devcontainer/devcontainer.json +0 -8
  112. package/.eslintrc.json +0 -105
  113. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  114. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +0 -41
  115. package/.github/dependabot.yml +0 -18
  116. package/.github/pull_request_template.md +0 -18
  117. package/.github/workflows/ci.yml +0 -31
  118. package/.github/workflows/deploy_preview.yml +0 -47
  119. package/.github/workflows/deploy_production.yml +0 -70
  120. package/.github/workflows/release.yml +0 -35
  121. package/.github/workflows/release_canary.yml +0 -70
  122. package/.github/workflows/release_candidate.yml +0 -60
  123. package/.github/workflows/size.yml +0 -13
  124. package/.github/workflows/stale.yml +0 -26
  125. package/.gitignore +0 -10
  126. package/.npmrc +0 -4
  127. package/.nvmrc +0 -1
  128. package/.storybook/main.js +0 -11
  129. package/.storybook/preview.js +0 -11
  130. package/.vscode/launch.json +0 -21
  131. package/.vscode/settings.json +0 -13
  132. package/@types/@styled-system/index.d.ts +0 -0
  133. package/@types/@styled-system/prop-types/index.d.ts +0 -1
  134. package/@types/@styled-system/props/index.d.ts +0 -1
  135. package/@types/jest-styled-components/index.d.ts +0 -1
  136. package/CODEOWNERS +0 -2
  137. package/babel-defines.js +0 -13
  138. package/babel.config.js +0 -39
  139. package/contributor-docs/CODE_OF_CONDUCT.md +0 -76
  140. package/contributor-docs/CONTRIBUTING.md +0 -274
  141. package/contributor-docs/adrs/adr-001-typescript.md +0 -23
  142. package/contributor-docs/adrs/adr-002-behavior-isolation.md +0 -106
  143. package/contributor-docs/behaviors.md +0 -132
  144. package/contributor-docs/component-contents-api-patterns.md +0 -315
  145. package/contributor-docs/principles.md +0 -39
  146. package/docs/.eslintrc +0 -0
  147. package/docs/.gitignore +0 -91
  148. package/docs/components/PropsList.js +0 -5
  149. package/docs/components/State.js +0 -9
  150. package/docs/components/constants.js +0 -34
  151. package/docs/components/index.js +0 -2
  152. package/docs/content/ActionList.mdx +0 -72
  153. package/docs/content/ActionMenu.mdx +0 -80
  154. package/docs/content/AnchoredOverlay.mdx +0 -35
  155. package/docs/content/Avatar.mdx +0 -33
  156. package/docs/content/AvatarStack.mdx +0 -43
  157. package/docs/content/BorderBox.md +0 -46
  158. package/docs/content/Box.md +0 -74
  159. package/docs/content/BranchName.md +0 -18
  160. package/docs/content/Breadcrumbs.md +0 -52
  161. package/docs/content/Buttons.md +0 -54
  162. package/docs/content/CircleBadge.md +0 -45
  163. package/docs/content/CircleOcticon.md +0 -18
  164. package/docs/content/CounterLabel.md +0 -30
  165. package/docs/content/Details.md +0 -105
  166. package/docs/content/Dialog.md +0 -108
  167. package/docs/content/Dialog2.mdx +0 -179
  168. package/docs/content/Dropdown.md +0 -72
  169. package/docs/content/DropdownMenu.mdx +0 -49
  170. package/docs/content/FilterList.md +0 -44
  171. package/docs/content/FilteredSearch.md +0 -39
  172. package/docs/content/Flash.md +0 -42
  173. package/docs/content/Flex.md +0 -58
  174. package/docs/content/FormGroup.md +0 -44
  175. package/docs/content/Grid.md +0 -59
  176. package/docs/content/Header.md +0 -79
  177. package/docs/content/Heading.md +0 -22
  178. package/docs/content/Label.md +0 -40
  179. package/docs/content/LabelGroup.md +0 -31
  180. package/docs/content/Link.md +0 -37
  181. package/docs/content/Overlay.mdx +0 -90
  182. package/docs/content/Pagehead.md +0 -27
  183. package/docs/content/Pagination.md +0 -187
  184. package/docs/content/PointerBox.md +0 -81
  185. package/docs/content/Popover.md +0 -137
  186. package/docs/content/Portal.mdx +0 -71
  187. package/docs/content/Position.md +0 -97
  188. package/docs/content/ProgressBar.mdx +0 -29
  189. package/docs/content/SelectMenu.md +0 -433
  190. package/docs/content/SelectPanel.mdx +0 -67
  191. package/docs/content/SideNav.md +0 -179
  192. package/docs/content/Spinner.mdx +0 -32
  193. package/docs/content/StateLabel.md +0 -33
  194. package/docs/content/StyledOcticon.md +0 -34
  195. package/docs/content/SubNav.md +0 -102
  196. package/docs/content/TabNav.md +0 -50
  197. package/docs/content/Text.md +0 -29
  198. package/docs/content/TextInput.md +0 -32
  199. package/docs/content/Timeline.md +0 -138
  200. package/docs/content/Tooltip.md +0 -41
  201. package/docs/content/Truncate.md +0 -65
  202. package/docs/content/UnderlineNav.md +0 -53
  203. package/docs/content/anchoredPosition.mdx +0 -163
  204. package/docs/content/core-concepts.md +0 -70
  205. package/docs/content/focusTrap.mdx +0 -103
  206. package/docs/content/focusZone.mdx +0 -145
  207. package/docs/content/getting-started.md +0 -134
  208. package/docs/content/index.md +0 -33
  209. package/docs/content/linting.md +0 -35
  210. package/docs/content/overriding-styles.mdx +0 -80
  211. package/docs/content/philosophy.md +0 -23
  212. package/docs/content/primer-theme.md +0 -89
  213. package/docs/content/ssr.mdx +0 -41
  214. package/docs/content/system-props.mdx +0 -37
  215. package/docs/content/theme-reference.md +0 -8
  216. package/docs/content/theming.md +0 -250
  217. package/docs/content/useOnEscapePress.mdx +0 -56
  218. package/docs/content/useOnOutsideClick.mdx +0 -57
  219. package/docs/content/useOpenAndCloseFocus.mdx +0 -49
  220. package/docs/content/useOverlay.mdx +0 -62
  221. package/docs/content/useSafeTimeout.mdx +0 -32
  222. package/docs/gatsby-config.js +0 -30
  223. package/docs/gatsby-node.js +0 -101
  224. package/docs/package-lock.json +0 -20979
  225. package/docs/package.json +0 -35
  226. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +0 -21
  227. package/docs/src/@primer/gatsby-theme-doctocat/components/live-code.js +0 -84
  228. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +0 -39
  229. package/docs/src/@primer/gatsby-theme-doctocat/components/nav-dropdown.js +0 -48
  230. package/docs/src/@primer/gatsby-theme-doctocat/components/wrap-page-element.js +0 -25
  231. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +0 -54
  232. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +0 -132
  233. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +0 -1411
  234. package/docs/src/props.js +0 -77
  235. package/jest.config.js +0 -13
  236. package/lib/__tests__/ActionList.d.ts +0 -1
  237. package/lib/__tests__/ActionList.js +0 -67
  238. package/lib/__tests__/ActionMenu.d.ts +0 -1
  239. package/lib/__tests__/ActionMenu.js +0 -154
  240. package/lib/__tests__/AnchoredOverlay.d.ts +0 -1
  241. package/lib/__tests__/AnchoredOverlay.js +0 -161
  242. package/lib/__tests__/Avatar.d.ts +0 -1
  243. package/lib/__tests__/Avatar.js +0 -70
  244. package/lib/__tests__/AvatarStack.d.ts +0 -1
  245. package/lib/__tests__/AvatarStack.js +0 -71
  246. package/lib/__tests__/BorderBox.d.ts +0 -1
  247. package/lib/__tests__/BorderBox.js +0 -61
  248. package/lib/__tests__/Box.d.ts +0 -1
  249. package/lib/__tests__/Box.js +0 -81
  250. package/lib/__tests__/BranchName.d.ts +0 -1
  251. package/lib/__tests__/BranchName.js +0 -39
  252. package/lib/__tests__/Breadcrumb.d.ts +0 -1
  253. package/lib/__tests__/Breadcrumb.js +0 -42
  254. package/lib/__tests__/BreadcrumbItem.d.ts +0 -1
  255. package/lib/__tests__/BreadcrumbItem.js +0 -52
  256. package/lib/__tests__/Button.d.ts +0 -1
  257. package/lib/__tests__/Button.js +0 -152
  258. package/lib/__tests__/Caret.d.ts +0 -1
  259. package/lib/__tests__/Caret.js +0 -52
  260. package/lib/__tests__/CircleBadge.d.ts +0 -1
  261. package/lib/__tests__/CircleBadge.js +0 -87
  262. package/lib/__tests__/CircleOcticon.d.ts +0 -1
  263. package/lib/__tests__/CircleOcticon.js +0 -74
  264. package/lib/__tests__/CounterLabel.d.ts +0 -1
  265. package/lib/__tests__/CounterLabel.js +0 -61
  266. package/lib/__tests__/Details.d.ts +0 -1
  267. package/lib/__tests__/Details.js +0 -120
  268. package/lib/__tests__/Dialog.d.ts +0 -1
  269. package/lib/__tests__/Dialog.js +0 -188
  270. package/lib/__tests__/Dropdown.d.ts +0 -1
  271. package/lib/__tests__/Dropdown.js +0 -70
  272. package/lib/__tests__/DropdownMenu.d.ts +0 -1
  273. package/lib/__tests__/DropdownMenu.js +0 -153
  274. package/lib/__tests__/FilterList.d.ts +0 -1
  275. package/lib/__tests__/FilterList.js +0 -39
  276. package/lib/__tests__/FilterListItem.d.ts +0 -1
  277. package/lib/__tests__/FilterListItem.js +0 -49
  278. package/lib/__tests__/FilteredSearch.d.ts +0 -1
  279. package/lib/__tests__/FilteredSearch.js +0 -39
  280. package/lib/__tests__/Flash.d.ts +0 -1
  281. package/lib/__tests__/Flash.js +0 -65
  282. package/lib/__tests__/Flex.d.ts +0 -1
  283. package/lib/__tests__/Flex.js +0 -77
  284. package/lib/__tests__/FormGroup.d.ts +0 -1
  285. package/lib/__tests__/FormGroup.js +0 -58
  286. package/lib/__tests__/Grid.d.ts +0 -1
  287. package/lib/__tests__/Grid.js +0 -107
  288. package/lib/__tests__/Header.d.ts +0 -1
  289. package/lib/__tests__/Header.js +0 -63
  290. package/lib/__tests__/Heading.d.ts +0 -1
  291. package/lib/__tests__/Heading.js +0 -112
  292. package/lib/__tests__/Label.d.ts +0 -1
  293. package/lib/__tests__/Label.js +0 -49
  294. package/lib/__tests__/LabelGroup.d.ts +0 -1
  295. package/lib/__tests__/LabelGroup.js +0 -41
  296. package/lib/__tests__/Link.d.ts +0 -1
  297. package/lib/__tests__/Link.js +0 -73
  298. package/lib/__tests__/Overlay.d.ts +0 -1
  299. package/lib/__tests__/Overlay.js +0 -145
  300. package/lib/__tests__/Pagehead.d.ts +0 -1
  301. package/lib/__tests__/Pagehead.js +0 -40
  302. package/lib/__tests__/Pagination/Pagination.d.ts +0 -1
  303. package/lib/__tests__/Pagination/Pagination.js +0 -50
  304. package/lib/__tests__/Pagination/PaginationModel.d.ts +0 -1
  305. package/lib/__tests__/Pagination/PaginationModel.js +0 -186
  306. package/lib/__tests__/PointerBox.d.ts +0 -1
  307. package/lib/__tests__/PointerBox.js +0 -49
  308. package/lib/__tests__/Popover.d.ts +0 -1
  309. package/lib/__tests__/Popover.js +0 -70
  310. package/lib/__tests__/Portal.d.ts +0 -1
  311. package/lib/__tests__/Portal.js +0 -124
  312. package/lib/__tests__/Position.d.ts +0 -1
  313. package/lib/__tests__/Position.js +0 -149
  314. package/lib/__tests__/ProgressBar.d.ts +0 -1
  315. package/lib/__tests__/ProgressBar.js +0 -71
  316. package/lib/__tests__/SelectMenu.d.ts +0 -1
  317. package/lib/__tests__/SelectMenu.js +0 -155
  318. package/lib/__tests__/SelectPanel.d.ts +0 -1
  319. package/lib/__tests__/SelectPanel.js +0 -83
  320. package/lib/__tests__/SideNav.d.ts +0 -1
  321. package/lib/__tests__/SideNav.js +0 -75
  322. package/lib/__tests__/Spinner.d.ts +0 -1
  323. package/lib/__tests__/Spinner.js +0 -56
  324. package/lib/__tests__/StateLabel.d.ts +0 -1
  325. package/lib/__tests__/StateLabel.js +0 -74
  326. package/lib/__tests__/StyledOcticon.d.ts +0 -1
  327. package/lib/__tests__/StyledOcticon.js +0 -43
  328. package/lib/__tests__/SubNav.d.ts +0 -1
  329. package/lib/__tests__/SubNav.js +0 -65
  330. package/lib/__tests__/SubNavLink.d.ts +0 -1
  331. package/lib/__tests__/SubNavLink.js +0 -52
  332. package/lib/__tests__/TabNav.d.ts +0 -1
  333. package/lib/__tests__/TabNav.js +0 -53
  334. package/lib/__tests__/Text.d.ts +0 -1
  335. package/lib/__tests__/Text.js +0 -108
  336. package/lib/__tests__/TextInput.d.ts +0 -1
  337. package/lib/__tests__/TextInput.js +0 -81
  338. package/lib/__tests__/ThemeProvider.d.ts +0 -1
  339. package/lib/__tests__/ThemeProvider.js +0 -444
  340. package/lib/__tests__/Timeline.d.ts +0 -1
  341. package/lib/__tests__/Timeline.js +0 -80
  342. package/lib/__tests__/Tooltip.d.ts +0 -1
  343. package/lib/__tests__/Tooltip.js +0 -72
  344. package/lib/__tests__/Truncate.d.ts +0 -1
  345. package/lib/__tests__/Truncate.js +0 -66
  346. package/lib/__tests__/UnderlineNav.d.ts +0 -1
  347. package/lib/__tests__/UnderlineNav.js +0 -75
  348. package/lib/__tests__/UnderlineNavLink.d.ts +0 -1
  349. package/lib/__tests__/UnderlineNavLink.js +0 -54
  350. package/lib/__tests__/behaviors/anchoredPosition.d.ts +0 -1
  351. package/lib/__tests__/behaviors/anchoredPosition.js +0 -390
  352. package/lib/__tests__/behaviors/focusTrap.d.ts +0 -1
  353. package/lib/__tests__/behaviors/focusTrap.js +0 -234
  354. package/lib/__tests__/behaviors/focusZone.d.ts +0 -1
  355. package/lib/__tests__/behaviors/focusZone.js +0 -570
  356. package/lib/__tests__/behaviors/iterateFocusableElements.d.ts +0 -1
  357. package/lib/__tests__/behaviors/iterateFocusableElements.js +0 -55
  358. package/lib/__tests__/filterObject.d.ts +0 -1
  359. package/lib/__tests__/filterObject.js +0 -30
  360. package/lib/__tests__/hooks/useAnchoredPosition.d.ts +0 -1
  361. package/lib/__tests__/hooks/useAnchoredPosition.js +0 -54
  362. package/lib/__tests__/hooks/useOnEscapePress.d.ts +0 -1
  363. package/lib/__tests__/hooks/useOnEscapePress.js +0 -32
  364. package/lib/__tests__/hooks/useOnOutsideClick.d.ts +0 -1
  365. package/lib/__tests__/hooks/useOnOutsideClick.js +0 -87
  366. package/lib/__tests__/hooks/useOpenAndCloseFocus.d.ts +0 -1
  367. package/lib/__tests__/hooks/useOpenAndCloseFocus.js +0 -60
  368. package/lib/__tests__/hooks/useProvidedStateOrCreate.d.ts +0 -1
  369. package/lib/__tests__/hooks/useProvidedStateOrCreate.js +0 -45
  370. package/lib/__tests__/theme.d.ts +0 -1
  371. package/lib/__tests__/theme.js +0 -36
  372. package/lib/__tests__/themeGet.d.ts +0 -1
  373. package/lib/__tests__/themeGet.js +0 -25
  374. package/lib/__tests__/useSafeTimeout.d.ts +0 -1
  375. package/lib/__tests__/useSafeTimeout.js +0 -45
  376. package/lib/stories/ActionList.stories.d.ts +0 -40
  377. package/lib/stories/ActionList.stories.js +0 -382
  378. package/lib/stories/ActionMenu.stories.d.ts +0 -29
  379. package/lib/stories/ActionMenu.stories.js +0 -338
  380. package/lib/stories/AnchoredOverlay.stories.d.ts +0 -6
  381. package/lib/stories/AnchoredOverlay.stories.js +0 -127
  382. package/lib/stories/AvatarStack.stories.d.ts +0 -8
  383. package/lib/stories/AvatarStack.stories.js +0 -49
  384. package/lib/stories/Button.stories.d.ts +0 -57
  385. package/lib/stories/Button.stories.js +0 -114
  386. package/lib/stories/ConfirmationDialog.stories.d.ts +0 -7
  387. package/lib/stories/ConfirmationDialog.stories.js +0 -111
  388. package/lib/stories/Dialog.stories.d.ts +0 -13
  389. package/lib/stories/Dialog.stories.js +0 -265
  390. package/lib/stories/DropdownMenu.stories.d.ts +0 -12
  391. package/lib/stories/DropdownMenu.stories.js +0 -122
  392. package/lib/stories/Overlay.stories.d.ts +0 -7
  393. package/lib/stories/Overlay.stories.js +0 -185
  394. package/lib/stories/Portal.stories.d.ts +0 -8
  395. package/lib/stories/Portal.stories.js +0 -104
  396. package/lib/stories/SelectPanel.stories.d.ts +0 -32
  397. package/lib/stories/SelectPanel.stories.js +0 -342
  398. package/lib/stories/ThemeProvider.stories.d.ts +0 -6
  399. package/lib/stories/ThemeProvider.stories.js +0 -102
  400. package/lib/stories/useAnchoredPosition.stories.d.ts +0 -8
  401. package/lib/stories/useAnchoredPosition.stories.js +0 -351
  402. package/lib/stories/useFocusTrap.stories.d.ts +0 -9
  403. package/lib/stories/useFocusTrap.stories.js +0 -356
  404. package/lib/stories/useFocusZone.stories.d.ts +0 -12
  405. package/lib/stories/useFocusZone.stories.js +0 -599
  406. package/lib-esm/__tests__/ActionList.d.ts +0 -1
  407. package/lib-esm/__tests__/ActionList.js +0 -54
  408. package/lib-esm/__tests__/ActionMenu.d.ts +0 -1
  409. package/lib-esm/__tests__/ActionMenu.js +0 -141
  410. package/lib-esm/__tests__/AnchoredOverlay.d.ts +0 -1
  411. package/lib-esm/__tests__/AnchoredOverlay.js +0 -135
  412. package/lib-esm/__tests__/Avatar.d.ts +0 -1
  413. package/lib-esm/__tests__/Avatar.js +0 -58
  414. package/lib-esm/__tests__/AvatarStack.d.ts +0 -1
  415. package/lib-esm/__tests__/AvatarStack.js +0 -57
  416. package/lib-esm/__tests__/BorderBox.d.ts +0 -1
  417. package/lib-esm/__tests__/BorderBox.js +0 -49
  418. package/lib-esm/__tests__/Box.d.ts +0 -1
  419. package/lib-esm/__tests__/Box.js +0 -69
  420. package/lib-esm/__tests__/BranchName.d.ts +0 -1
  421. package/lib-esm/__tests__/BranchName.js +0 -28
  422. package/lib-esm/__tests__/Breadcrumb.d.ts +0 -1
  423. package/lib-esm/__tests__/Breadcrumb.js +0 -31
  424. package/lib-esm/__tests__/BreadcrumbItem.d.ts +0 -1
  425. package/lib-esm/__tests__/BreadcrumbItem.js +0 -41
  426. package/lib-esm/__tests__/Button.d.ts +0 -1
  427. package/lib-esm/__tests__/Button.js +0 -141
  428. package/lib-esm/__tests__/Caret.d.ts +0 -1
  429. package/lib-esm/__tests__/Caret.js +0 -42
  430. package/lib-esm/__tests__/CircleBadge.d.ts +0 -1
  431. package/lib-esm/__tests__/CircleBadge.js +0 -73
  432. package/lib-esm/__tests__/CircleOcticon.d.ts +0 -1
  433. package/lib-esm/__tests__/CircleOcticon.js +0 -61
  434. package/lib-esm/__tests__/CounterLabel.d.ts +0 -1
  435. package/lib-esm/__tests__/CounterLabel.js +0 -49
  436. package/lib-esm/__tests__/Details.d.ts +0 -1
  437. package/lib-esm/__tests__/Details.js +0 -109
  438. package/lib-esm/__tests__/Dialog.d.ts +0 -1
  439. package/lib-esm/__tests__/Dialog.js +0 -174
  440. package/lib-esm/__tests__/Dropdown.d.ts +0 -1
  441. package/lib-esm/__tests__/Dropdown.js +0 -59
  442. package/lib-esm/__tests__/DropdownMenu.d.ts +0 -1
  443. package/lib-esm/__tests__/DropdownMenu.js +0 -139
  444. package/lib-esm/__tests__/FilterList.d.ts +0 -1
  445. package/lib-esm/__tests__/FilterList.js +0 -28
  446. package/lib-esm/__tests__/FilterListItem.d.ts +0 -1
  447. package/lib-esm/__tests__/FilterListItem.js +0 -38
  448. package/lib-esm/__tests__/FilteredSearch.d.ts +0 -1
  449. package/lib-esm/__tests__/FilteredSearch.js +0 -28
  450. package/lib-esm/__tests__/Flash.d.ts +0 -1
  451. package/lib-esm/__tests__/Flash.js +0 -53
  452. package/lib-esm/__tests__/Flex.d.ts +0 -1
  453. package/lib-esm/__tests__/Flex.js +0 -66
  454. package/lib-esm/__tests__/FormGroup.d.ts +0 -1
  455. package/lib-esm/__tests__/FormGroup.js +0 -47
  456. package/lib-esm/__tests__/Grid.d.ts +0 -1
  457. package/lib-esm/__tests__/Grid.js +0 -96
  458. package/lib-esm/__tests__/Header.d.ts +0 -1
  459. package/lib-esm/__tests__/Header.js +0 -52
  460. package/lib-esm/__tests__/Heading.d.ts +0 -1
  461. package/lib-esm/__tests__/Heading.js +0 -101
  462. package/lib-esm/__tests__/Label.d.ts +0 -1
  463. package/lib-esm/__tests__/Label.js +0 -38
  464. package/lib-esm/__tests__/LabelGroup.d.ts +0 -1
  465. package/lib-esm/__tests__/LabelGroup.js +0 -28
  466. package/lib-esm/__tests__/Link.d.ts +0 -1
  467. package/lib-esm/__tests__/Link.js +0 -62
  468. package/lib-esm/__tests__/Overlay.d.ts +0 -1
  469. package/lib-esm/__tests__/Overlay.js +0 -123
  470. package/lib-esm/__tests__/Pagehead.d.ts +0 -1
  471. package/lib-esm/__tests__/Pagehead.js +0 -28
  472. package/lib-esm/__tests__/Pagination/Pagination.d.ts +0 -1
  473. package/lib-esm/__tests__/Pagination/Pagination.js +0 -37
  474. package/lib-esm/__tests__/Pagination/PaginationModel.d.ts +0 -1
  475. package/lib-esm/__tests__/Pagination/PaginationModel.js +0 -182
  476. package/lib-esm/__tests__/PointerBox.d.ts +0 -1
  477. package/lib-esm/__tests__/PointerBox.js +0 -38
  478. package/lib-esm/__tests__/Popover.d.ts +0 -1
  479. package/lib-esm/__tests__/Popover.js +0 -56
  480. package/lib-esm/__tests__/Portal.d.ts +0 -1
  481. package/lib-esm/__tests__/Portal.js +0 -104
  482. package/lib-esm/__tests__/Position.d.ts +0 -1
  483. package/lib-esm/__tests__/Position.js +0 -138
  484. package/lib-esm/__tests__/ProgressBar.d.ts +0 -1
  485. package/lib-esm/__tests__/ProgressBar.js +0 -60
  486. package/lib-esm/__tests__/SelectMenu.d.ts +0 -1
  487. package/lib-esm/__tests__/SelectMenu.js +0 -145
  488. package/lib-esm/__tests__/SelectPanel.d.ts +0 -1
  489. package/lib-esm/__tests__/SelectPanel.js +0 -67
  490. package/lib-esm/__tests__/SideNav.d.ts +0 -1
  491. package/lib-esm/__tests__/SideNav.js +0 -63
  492. package/lib-esm/__tests__/Spinner.d.ts +0 -1
  493. package/lib-esm/__tests__/Spinner.js +0 -45
  494. package/lib-esm/__tests__/StateLabel.d.ts +0 -1
  495. package/lib-esm/__tests__/StateLabel.js +0 -63
  496. package/lib-esm/__tests__/StyledOcticon.d.ts +0 -1
  497. package/lib-esm/__tests__/StyledOcticon.js +0 -31
  498. package/lib-esm/__tests__/SubNav.d.ts +0 -1
  499. package/lib-esm/__tests__/SubNav.js +0 -52
  500. package/lib-esm/__tests__/SubNavLink.d.ts +0 -1
  501. package/lib-esm/__tests__/SubNavLink.js +0 -41
  502. package/lib-esm/__tests__/TabNav.d.ts +0 -1
  503. package/lib-esm/__tests__/TabNav.js +0 -42
  504. package/lib-esm/__tests__/Text.d.ts +0 -1
  505. package/lib-esm/__tests__/Text.js +0 -95
  506. package/lib-esm/__tests__/TextInput.d.ts +0 -1
  507. package/lib-esm/__tests__/TextInput.js +0 -70
  508. package/lib-esm/__tests__/ThemeProvider.d.ts +0 -1
  509. package/lib-esm/__tests__/ThemeProvider.js +0 -408
  510. package/lib-esm/__tests__/Timeline.d.ts +0 -1
  511. package/lib-esm/__tests__/Timeline.js +0 -69
  512. package/lib-esm/__tests__/Tooltip.d.ts +0 -1
  513. package/lib-esm/__tests__/Tooltip.js +0 -61
  514. package/lib-esm/__tests__/Truncate.d.ts +0 -1
  515. package/lib-esm/__tests__/Truncate.js +0 -55
  516. package/lib-esm/__tests__/UnderlineNav.d.ts +0 -1
  517. package/lib-esm/__tests__/UnderlineNav.js +0 -62
  518. package/lib-esm/__tests__/UnderlineNavLink.d.ts +0 -1
  519. package/lib-esm/__tests__/UnderlineNavLink.js +0 -43
  520. package/lib-esm/__tests__/behaviors/anchoredPosition.d.ts +0 -1
  521. package/lib-esm/__tests__/behaviors/anchoredPosition.js +0 -388
  522. package/lib-esm/__tests__/behaviors/focusTrap.d.ts +0 -1
  523. package/lib-esm/__tests__/behaviors/focusTrap.js +0 -227
  524. package/lib-esm/__tests__/behaviors/focusZone.d.ts +0 -1
  525. package/lib-esm/__tests__/behaviors/focusZone.js +0 -487
  526. package/lib-esm/__tests__/behaviors/iterateFocusableElements.d.ts +0 -1
  527. package/lib-esm/__tests__/behaviors/iterateFocusableElements.js +0 -48
  528. package/lib-esm/__tests__/filterObject.d.ts +0 -1
  529. package/lib-esm/__tests__/filterObject.js +0 -27
  530. package/lib-esm/__tests__/hooks/useAnchoredPosition.d.ts +0 -1
  531. package/lib-esm/__tests__/hooks/useAnchoredPosition.js +0 -46
  532. package/lib-esm/__tests__/hooks/useOnEscapePress.d.ts +0 -1
  533. package/lib-esm/__tests__/hooks/useOnEscapePress.js +0 -23
  534. package/lib-esm/__tests__/hooks/useOnOutsideClick.d.ts +0 -1
  535. package/lib-esm/__tests__/hooks/useOnOutsideClick.js +0 -68
  536. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.d.ts +0 -1
  537. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.js +0 -52
  538. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.d.ts +0 -1
  539. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.js +0 -36
  540. package/lib-esm/__tests__/theme.d.ts +0 -1
  541. package/lib-esm/__tests__/theme.js +0 -33
  542. package/lib-esm/__tests__/themeGet.d.ts +0 -1
  543. package/lib-esm/__tests__/themeGet.js +0 -22
  544. package/lib-esm/__tests__/useSafeTimeout.d.ts +0 -1
  545. package/lib-esm/__tests__/useSafeTimeout.js +0 -39
  546. package/lib-esm/stories/ActionList.stories.d.ts +0 -40
  547. package/lib-esm/stories/ActionList.stories.js +0 -334
  548. package/lib-esm/stories/ActionMenu.stories.d.ts +0 -29
  549. package/lib-esm/stories/ActionMenu.stories.js +0 -293
  550. package/lib-esm/stories/AnchoredOverlay.stories.d.ts +0 -6
  551. package/lib-esm/stories/AnchoredOverlay.stories.js +0 -101
  552. package/lib-esm/stories/AvatarStack.stories.d.ts +0 -8
  553. package/lib-esm/stories/AvatarStack.stories.js +0 -32
  554. package/lib-esm/stories/Button.stories.d.ts +0 -57
  555. package/lib-esm/stories/Button.stories.js +0 -78
  556. package/lib-esm/stories/ConfirmationDialog.stories.d.ts +0 -7
  557. package/lib-esm/stories/ConfirmationDialog.stories.js +0 -86
  558. package/lib-esm/stories/Dialog.stories.d.ts +0 -13
  559. package/lib-esm/stories/Dialog.stories.js +0 -240
  560. package/lib-esm/stories/DropdownMenu.stories.d.ts +0 -12
  561. package/lib-esm/stories/DropdownMenu.stories.js +0 -94
  562. package/lib-esm/stories/Overlay.stories.d.ts +0 -7
  563. package/lib-esm/stories/Overlay.stories.js +0 -154
  564. package/lib-esm/stories/Portal.stories.d.ts +0 -8
  565. package/lib-esm/stories/Portal.stories.js +0 -68
  566. package/lib-esm/stories/SelectPanel.stories.d.ts +0 -32
  567. package/lib-esm/stories/SelectPanel.stories.js +0 -284
  568. package/lib-esm/stories/ThemeProvider.stories.d.ts +0 -6
  569. package/lib-esm/stories/ThemeProvider.stories.js +0 -83
  570. package/lib-esm/stories/useAnchoredPosition.stories.d.ts +0 -8
  571. package/lib-esm/stories/useAnchoredPosition.stories.js +0 -313
  572. package/lib-esm/stories/useFocusTrap.stories.d.ts +0 -9
  573. package/lib-esm/stories/useFocusTrap.stories.js +0 -309
  574. package/lib-esm/stories/useFocusZone.stories.d.ts +0 -12
  575. package/lib-esm/stories/useFocusZone.stories.js +0 -554
  576. package/migrating.md +0 -250
  577. package/now.json +0 -17
  578. package/package-lock.json +0 -28656
  579. package/rollup.config.js +0 -36
  580. package/script/build +0 -19
  581. package/script/setup +0 -12
  582. package/src/ActionList/Divider.tsx +0 -25
  583. package/src/ActionList/Group.tsx +0 -45
  584. package/src/ActionList/Header.tsx +0 -74
  585. package/src/ActionList/Item.tsx +0 -460
  586. package/src/ActionList/List.tsx +0 -253
  587. package/src/ActionList/index.ts +0 -21
  588. package/src/ActionMenu.tsx +0 -106
  589. package/src/AnchoredOverlay/AnchoredOverlay.tsx +0 -180
  590. package/src/AnchoredOverlay/index.ts +0 -2
  591. package/src/Avatar.tsx +0 -46
  592. package/src/AvatarPair.tsx +0 -31
  593. package/src/AvatarStack.tsx +0 -161
  594. package/src/BaseStyles.tsx +0 -53
  595. package/src/BorderBox.tsx +0 -18
  596. package/src/Box.tsx +0 -54
  597. package/src/BranchName.tsx +0 -19
  598. package/src/Breadcrumb.tsx +0 -87
  599. package/src/Button/Button.tsx +0 -40
  600. package/src/Button/ButtonBase.tsx +0 -43
  601. package/src/Button/ButtonClose.tsx +0 -40
  602. package/src/Button/ButtonDanger.tsx +0 -43
  603. package/src/Button/ButtonGroup.tsx +0 -55
  604. package/src/Button/ButtonInvisible.tsx +0 -27
  605. package/src/Button/ButtonOutline.tsx +0 -43
  606. package/src/Button/ButtonPrimary.tsx +0 -41
  607. package/src/Button/ButtonStyles.tsx +0 -36
  608. package/src/Button/ButtonTableList.tsx +0 -58
  609. package/src/Button/index.ts +0 -16
  610. package/src/Caret.tsx +0 -133
  611. package/src/CircleBadge.tsx +0 -55
  612. package/src/CircleOcticon.tsx +0 -37
  613. package/src/CounterLabel.tsx +0 -52
  614. package/src/Details.tsx +0 -23
  615. package/src/Dialog/ConfirmationDialog.tsx +0 -184
  616. package/src/Dialog/Dialog.tsx +0 -419
  617. package/src/Dialog.tsx +0 -149
  618. package/src/Dropdown.tsx +0 -158
  619. package/src/DropdownMenu/DropdownButton.tsx +0 -15
  620. package/src/DropdownMenu/DropdownMenu.tsx +0 -115
  621. package/src/DropdownMenu/index.ts +0 -4
  622. package/src/DropdownStyles.ts +0 -128
  623. package/src/FilterList.tsx +0 -81
  624. package/src/FilteredActionList/FilteredActionList.tsx +0 -152
  625. package/src/FilteredActionList/index.ts +0 -2
  626. package/src/FilteredSearch.tsx +0 -28
  627. package/src/Flash.tsx +0 -77
  628. package/src/Flex.tsx +0 -15
  629. package/src/FormGroup.tsx +0 -27
  630. package/src/Grid.tsx +0 -15
  631. package/src/Header.tsx +0 -84
  632. package/src/Heading.tsx +0 -21
  633. package/src/Label.tsx +0 -75
  634. package/src/LabelGroup.tsx +0 -18
  635. package/src/Link.tsx +0 -46
  636. package/src/Overlay.tsx +0 -194
  637. package/src/Pagehead.tsx +0 -17
  638. package/src/Pagination/Pagination.tsx +0 -214
  639. package/src/Pagination/index.ts +0 -4
  640. package/src/Pagination/model.tsx +0 -187
  641. package/src/PointerBox.tsx +0 -31
  642. package/src/Popover.tsx +0 -236
  643. package/src/Portal/Portal.tsx +0 -96
  644. package/src/Portal/index.ts +0 -5
  645. package/src/Position.tsx +0 -63
  646. package/src/ProgressBar.tsx +0 -52
  647. package/src/SelectMenu/SelectMenu.tsx +0 -125
  648. package/src/SelectMenu/SelectMenuContext.tsx +0 -9
  649. package/src/SelectMenu/SelectMenuDivider.tsx +0 -25
  650. package/src/SelectMenu/SelectMenuFilter.tsx +0 -51
  651. package/src/SelectMenu/SelectMenuFooter.tsx +0 -28
  652. package/src/SelectMenu/SelectMenuHeader.tsx +0 -50
  653. package/src/SelectMenu/SelectMenuItem.tsx +0 -137
  654. package/src/SelectMenu/SelectMenuList.tsx +0 -42
  655. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +0 -24
  656. package/src/SelectMenu/SelectMenuModal.tsx +0 -121
  657. package/src/SelectMenu/SelectMenuTab.tsx +0 -88
  658. package/src/SelectMenu/SelectMenuTabPanel.tsx +0 -30
  659. package/src/SelectMenu/SelectMenuTabs.tsx +0 -44
  660. package/src/SelectMenu/hooks/useKeyboardNav.js +0 -90
  661. package/src/SelectMenu/index.ts +0 -15
  662. package/src/SelectPanel/SelectPanel.tsx +0 -173
  663. package/src/SelectPanel/index.ts +0 -2
  664. package/src/SideNav.tsx +0 -193
  665. package/src/Spinner.tsx +0 -59
  666. package/src/StateLabel.tsx +0 -110
  667. package/src/StyledOcticon.tsx +0 -24
  668. package/src/SubNav.tsx +0 -129
  669. package/src/TabNav.tsx +0 -77
  670. package/src/Text.tsx +0 -13
  671. package/src/TextInput.tsx +0 -183
  672. package/src/ThemeProvider.tsx +0 -176
  673. package/src/Timeline.tsx +0 -141
  674. package/src/Tooltip.tsx +0 -263
  675. package/src/Truncate.tsx +0 -36
  676. package/src/UnderlineNav.tsx +0 -110
  677. package/src/__tests__/.eslintrc.json +0 -11
  678. package/src/__tests__/ActionList.tsx +0 -49
  679. package/src/__tests__/ActionMenu.tsx +0 -138
  680. package/src/__tests__/AnchoredOverlay.tsx +0 -151
  681. package/src/__tests__/Avatar.tsx +0 -45
  682. package/src/__tests__/AvatarStack.tsx +0 -45
  683. package/src/__tests__/BorderBox.tsx +0 -44
  684. package/src/__tests__/Box.tsx +0 -43
  685. package/src/__tests__/BranchName.tsx +0 -27
  686. package/src/__tests__/Breadcrumb.tsx +0 -31
  687. package/src/__tests__/BreadcrumbItem.tsx +0 -32
  688. package/src/__tests__/Button.tsx +0 -129
  689. package/src/__tests__/Caret.tsx +0 -36
  690. package/src/__tests__/CircleBadge.tsx +0 -69
  691. package/src/__tests__/CircleOcticon.tsx +0 -52
  692. package/src/__tests__/CounterLabel.tsx +0 -51
  693. package/src/__tests__/Details.tsx +0 -116
  694. package/src/__tests__/Dialog.tsx +0 -157
  695. package/src/__tests__/Dropdown.tsx +0 -57
  696. package/src/__tests__/DropdownMenu.tsx +0 -138
  697. package/src/__tests__/FilterList.tsx +0 -27
  698. package/src/__tests__/FilterListItem.tsx +0 -32
  699. package/src/__tests__/FilteredSearch.tsx +0 -27
  700. package/src/__tests__/Flash.tsx +0 -46
  701. package/src/__tests__/Flex.tsx +0 -59
  702. package/src/__tests__/FormGroup.tsx +0 -39
  703. package/src/__tests__/Grid.tsx +0 -83
  704. package/src/__tests__/Header.tsx +0 -50
  705. package/src/__tests__/Heading.tsx +0 -92
  706. package/src/__tests__/Label.tsx +0 -35
  707. package/src/__tests__/LabelGroup.tsx +0 -31
  708. package/src/__tests__/Link.tsx +0 -48
  709. package/src/__tests__/Overlay.tsx +0 -103
  710. package/src/__tests__/Pagehead.tsx +0 -24
  711. package/src/__tests__/Pagination/Pagination.tsx +0 -31
  712. package/src/__tests__/Pagination/PaginationModel.tsx +0 -133
  713. package/src/__tests__/Pagination/__snapshots__/Pagination.tsx.snap +0 -184
  714. package/src/__tests__/PointerBox.tsx +0 -35
  715. package/src/__tests__/Popover.tsx +0 -69
  716. package/src/__tests__/Portal.tsx +0 -103
  717. package/src/__tests__/Position.tsx +0 -118
  718. package/src/__tests__/ProgressBar.tsx +0 -41
  719. package/src/__tests__/SelectMenu.tsx +0 -142
  720. package/src/__tests__/SelectPanel.tsx +0 -65
  721. package/src/__tests__/SideNav.tsx +0 -63
  722. package/src/__tests__/Spinner.tsx +0 -44
  723. package/src/__tests__/StateLabel.tsx +0 -50
  724. package/src/__tests__/StyledOcticon.tsx +0 -28
  725. package/src/__tests__/SubNav.tsx +0 -51
  726. package/src/__tests__/SubNavLink.tsx +0 -32
  727. package/src/__tests__/TabNav.tsx +0 -33
  728. package/src/__tests__/Text.tsx +0 -79
  729. package/src/__tests__/TextInput.tsx +0 -50
  730. package/src/__tests__/ThemeProvider.tsx +0 -441
  731. package/src/__tests__/Timeline.tsx +0 -59
  732. package/src/__tests__/Tooltip.tsx +0 -53
  733. package/src/__tests__/Truncate.tsx +0 -45
  734. package/src/__tests__/UnderlineNav.tsx +0 -59
  735. package/src/__tests__/UnderlineNavLink.tsx +0 -32
  736. package/src/__tests__/__snapshots__/ActionList.tsx.snap +0 -27
  737. package/src/__tests__/__snapshots__/ActionMenu.tsx.snap +0 -80
  738. package/src/__tests__/__snapshots__/AnchoredOverlay.tsx.snap +0 -332
  739. package/src/__tests__/__snapshots__/Avatar.tsx.snap +0 -19
  740. package/src/__tests__/__snapshots__/AvatarStack.tsx.snap +0 -377
  741. package/src/__tests__/__snapshots__/BorderBox.tsx.snap +0 -14
  742. package/src/__tests__/__snapshots__/Box.tsx.snap +0 -201
  743. package/src/__tests__/__snapshots__/BranchName.tsx.snap +0 -17
  744. package/src/__tests__/__snapshots__/Breadcrumb.tsx.snap +0 -29
  745. package/src/__tests__/__snapshots__/BreadcrumbItem.tsx.snap +0 -79
  746. package/src/__tests__/__snapshots__/Button.tsx.snap +0 -832
  747. package/src/__tests__/__snapshots__/Caret.tsx.snap +0 -373
  748. package/src/__tests__/__snapshots__/CircleBadge.tsx.snap +0 -141
  749. package/src/__tests__/__snapshots__/CircleOcticon.tsx.snap +0 -64
  750. package/src/__tests__/__snapshots__/CounterLabel.tsx.snap +0 -22
  751. package/src/__tests__/__snapshots__/Details.tsx.snap +0 -15
  752. package/src/__tests__/__snapshots__/Dialog.tsx.snap +0 -200
  753. package/src/__tests__/__snapshots__/Dropdown.tsx.snap +0 -249
  754. package/src/__tests__/__snapshots__/DropdownMenu.tsx.snap +0 -106
  755. package/src/__tests__/__snapshots__/FilterList.tsx.snap +0 -13
  756. package/src/__tests__/__snapshots__/FilterListItem.tsx.snap +0 -80
  757. package/src/__tests__/__snapshots__/FilteredSearch.tsx.snap +0 -32
  758. package/src/__tests__/__snapshots__/Flash.tsx.snap +0 -32
  759. package/src/__tests__/__snapshots__/Flex.tsx.snap +0 -130
  760. package/src/__tests__/__snapshots__/FormGroup.tsx.snap +0 -25
  761. package/src/__tests__/__snapshots__/Grid.tsx.snap +0 -178
  762. package/src/__tests__/__snapshots__/Header.tsx.snap +0 -79
  763. package/src/__tests__/__snapshots__/Heading.tsx.snap +0 -13
  764. package/src/__tests__/__snapshots__/Label.tsx.snap +0 -74
  765. package/src/__tests__/__snapshots__/LabelGroup.tsx.snap +0 -15
  766. package/src/__tests__/__snapshots__/Link.tsx.snap +0 -213
  767. package/src/__tests__/__snapshots__/Pagehead.tsx.snap +0 -15
  768. package/src/__tests__/__snapshots__/PointerBox.tsx.snap +0 -174
  769. package/src/__tests__/__snapshots__/Popover.tsx.snap +0 -4687
  770. package/src/__tests__/__snapshots__/Position.tsx.snap +0 -44
  771. package/src/__tests__/__snapshots__/ProgressBar.tsx.snap +0 -53
  772. package/src/__tests__/__snapshots__/SelectMenu.tsx.snap +0 -469
  773. package/src/__tests__/__snapshots__/SelectPanel.tsx.snap +0 -123
  774. package/src/__tests__/__snapshots__/SideNav.tsx.snap +0 -143
  775. package/src/__tests__/__snapshots__/Spinner.tsx.snap +0 -33
  776. package/src/__tests__/__snapshots__/StateLabel.tsx.snap +0 -409
  777. package/src/__tests__/__snapshots__/StyledOcticon.tsx.snap +0 -25
  778. package/src/__tests__/__snapshots__/SubNav.tsx.snap +0 -44
  779. package/src/__tests__/__snapshots__/SubNavLink.tsx.snap +0 -199
  780. package/src/__tests__/__snapshots__/TabNav.tsx.snap +0 -58
  781. package/src/__tests__/__snapshots__/Text.tsx.snap +0 -7
  782. package/src/__tests__/__snapshots__/TextInput.tsx.snap +0 -440
  783. package/src/__tests__/__snapshots__/ThemeProvider.tsx.snap +0 -15
  784. package/src/__tests__/__snapshots__/Timeline.tsx.snap +0 -157
  785. package/src/__tests__/__snapshots__/Tooltip.tsx.snap +0 -227
  786. package/src/__tests__/__snapshots__/Truncate.tsx.snap +0 -17
  787. package/src/__tests__/__snapshots__/UnderlineNav.tsx.snap +0 -59
  788. package/src/__tests__/__snapshots__/UnderlineNavLink.tsx.snap +0 -130
  789. package/src/__tests__/behaviors/anchoredPosition.ts +0 -295
  790. package/src/__tests__/behaviors/focusTrap.tsx +0 -236
  791. package/src/__tests__/behaviors/focusZone.tsx +0 -549
  792. package/src/__tests__/behaviors/iterateFocusableElements.tsx +0 -61
  793. package/src/__tests__/filterObject.ts +0 -54
  794. package/src/__tests__/hooks/useAnchoredPosition.tsx +0 -31
  795. package/src/__tests__/hooks/useOnEscapePress.tsx +0 -16
  796. package/src/__tests__/hooks/useOnOutsideClick.tsx +0 -48
  797. package/src/__tests__/hooks/useOpenAndCloseFocus.tsx +0 -48
  798. package/src/__tests__/hooks/useProvidedStateOrCreate.tsx +0 -39
  799. package/src/__tests__/theme.ts +0 -41
  800. package/src/__tests__/themeGet.ts +0 -15
  801. package/src/__tests__/useSafeTimeout.tsx +0 -36
  802. package/src/behaviors/anchoredPosition.ts +0 -442
  803. package/src/behaviors/focusTrap.ts +0 -184
  804. package/src/behaviors/focusZone.ts +0 -713
  805. package/src/constants.ts +0 -62
  806. package/src/hooks/index.ts +0 -11
  807. package/src/hooks/useAnchoredPosition.ts +0 -53
  808. package/src/hooks/useCombinedRefs.ts +0 -40
  809. package/src/hooks/useDetails.tsx +0 -54
  810. package/src/hooks/useDialog.ts +0 -121
  811. package/src/hooks/useFocusTrap.ts +0 -80
  812. package/src/hooks/useFocusZone.ts +0 -64
  813. package/src/hooks/useOnEscapePress.ts +0 -63
  814. package/src/hooks/useOnOutsideClick.tsx +0 -82
  815. package/src/hooks/useOpenAndCloseFocus.ts +0 -27
  816. package/src/hooks/useOverlay.tsx +0 -32
  817. package/src/hooks/useProvidedRefOrCreate.ts +0 -14
  818. package/src/hooks/useProvidedStateOrCreate.ts +0 -27
  819. package/src/hooks/useRenderForcingRef.ts +0 -22
  820. package/src/hooks/useResizeObserver.ts +0 -11
  821. package/src/hooks/useSafeTimeout.ts +0 -38
  822. package/src/hooks/useScrollFlash.ts +0 -21
  823. package/src/index.ts +0 -165
  824. package/src/polyfills/eventListenerSignal.ts +0 -66
  825. package/src/stories/ActionList.stories.tsx +0 -364
  826. package/src/stories/ActionMenu.stories.tsx +0 -322
  827. package/src/stories/AnchoredOverlay.stories.tsx +0 -117
  828. package/src/stories/AvatarStack.stories.tsx +0 -37
  829. package/src/stories/Button.stories.tsx +0 -88
  830. package/src/stories/ConfirmationDialog.stories.tsx +0 -105
  831. package/src/stories/Dialog.stories.tsx +0 -240
  832. package/src/stories/DropdownMenu.stories.tsx +0 -84
  833. package/src/stories/Overlay.stories.tsx +0 -186
  834. package/src/stories/Portal.stories.tsx +0 -109
  835. package/src/stories/SelectPanel.stories.tsx +0 -300
  836. package/src/stories/ThemeProvider.stories.tsx +0 -104
  837. package/src/stories/useAnchoredPosition.stories.tsx +0 -320
  838. package/src/stories/useFocusTrap.stories.tsx +0 -400
  839. package/src/stories/useFocusZone.stories.tsx +0 -663
  840. package/src/sx.ts +0 -9
  841. package/src/theme-preval.js +0 -120
  842. package/src/theme.ts +0 -3
  843. package/src/utils/deprecate.tsx +0 -73
  844. package/src/utils/isNumeric.tsx +0 -4
  845. package/src/utils/iterateFocusableElements.ts +0 -121
  846. package/src/utils/ssr.tsx +0 -1
  847. package/src/utils/test-deprecations.tsx +0 -19
  848. package/src/utils/test-helpers.tsx +0 -7
  849. package/src/utils/test-matchers.tsx +0 -109
  850. package/src/utils/testing.tsx +0 -243
  851. package/src/utils/theme.js +0 -64
  852. package/src/utils/types.ts +0 -90
  853. package/src/utils/uniqueId.ts +0 -6
  854. package/src/utils/userAgent.ts +0 -7
  855. package/stats.html +0 -3279
  856. package/tsconfig.json +0 -20
@@ -1,11 +0,0 @@
1
- import {addons} from '@storybook/addons'
2
-
3
- addons.setConfig({
4
- // Some stories may set up keyboard event handlers, which can can be interfered
5
- // with by these keyboard shortcuts.
6
- enableShortcuts: false
7
- })
8
-
9
- export const parameters = {
10
- actions: {argTypesRegex: '^on[A-Z].*'}
11
- }
@@ -1,21 +0,0 @@
1
- {
2
- // Use IntelliSense to learn about possible attributes.
3
- // Hover to view descriptions of existing attributes.
4
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5
- "version": "0.2.0",
6
- "configurations": [
7
- {
8
- "type": "node",
9
- "request": "launch",
10
- "name": "Jest Current File",
11
- "program": "${workspaceFolder}/node_modules/.bin/jest",
12
- "args": ["${fileBasenameNoExtension}", "--config", "jest.config.js"],
13
- "console": "integratedTerminal",
14
- "internalConsoleOptions": "neverOpen",
15
- "disableOptimisticBPs": true,
16
- "windows": {
17
- "program": "${workspaceFolder}/node_modules/jest/bin/jest"
18
- }
19
- }
20
- ]
21
- }
@@ -1,13 +0,0 @@
1
- {
2
- "typescript.tsdk": "node_modules/typescript/lib",
3
- "editor.formatOnSave": true,
4
- "[javascript]": {
5
- "editor.defaultFormatter": "esbenp.prettier-vscode"
6
- },
7
- "[typescript]": {
8
- "editor.defaultFormatter": "esbenp.prettier-vscode"
9
- },
10
- "[typescriptreact]": {
11
- "editor.defaultFormatter": "esbenp.prettier-vscode"
12
- }
13
- }
File without changes
@@ -1 +0,0 @@
1
- declare module '@styled-system/prop-types'
@@ -1 +0,0 @@
1
- declare module '@styled-system/props'
@@ -1 +0,0 @@
1
- declare module 'jest-styled-components/serializer'
package/CODEOWNERS DELETED
@@ -1,2 +0,0 @@
1
- # All changes should be reviewed by a member of the @react-reviewers team
2
- * @primer/react-reviewers
package/babel-defines.js DELETED
@@ -1,13 +0,0 @@
1
- const shared = {
2
- __DEV__: "process.env.NODE_ENV !== 'production'"
3
- }
4
-
5
- module.exports = {
6
- development: shared,
7
- test: shared,
8
- production: {
9
- ...shared,
10
- __DEV__: 'false',
11
- 'process.env.NODE_ENV': "'production'"
12
- }
13
- }
package/babel.config.js DELETED
@@ -1,39 +0,0 @@
1
- const defines = require('./babel-defines')
2
-
3
- function replacementPlugin(env) {
4
- return ['babel-plugin-transform-replace-expressions', {replace: defines[env]}]
5
- }
6
-
7
- const sharedPlugins = [
8
- 'macros',
9
- 'preval',
10
- 'add-react-displayname',
11
- 'babel-plugin-styled-components',
12
- '@babel/plugin-proposal-nullish-coalescing-operator',
13
- '@babel/plugin-proposal-optional-chaining'
14
- ]
15
-
16
- function makePresets(moduleValue) {
17
- return ['@babel/preset-typescript', ['@babel/preset-react', {modules: moduleValue}]]
18
- }
19
-
20
- module.exports = {
21
- env: {
22
- development: {
23
- presets: makePresets(process.env.BABEL_MODULE || false),
24
- plugins: [
25
- ...(process.env.BABEL_MODULE === 'commonjs' ? ['@babel/plugin-transform-modules-commonjs'] : []),
26
- ...sharedPlugins,
27
- replacementPlugin('development')
28
- ]
29
- },
30
- production: {
31
- presets: makePresets(false),
32
- plugins: [...sharedPlugins, replacementPlugin('production')]
33
- },
34
- test: {
35
- presets: makePresets('commonjs'),
36
- plugins: [...sharedPlugins, ['@babel/plugin-transform-modules-commonjs'], replacementPlugin('test')]
37
- }
38
- }
39
- }
@@ -1,76 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, sex characteristics, gender identity and expression,
9
- level of experience, education, socio-economic status, nationality, personal
10
- appearance, race, religion, or sexual identity and orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at design-systems@github.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
-
73
- [homepage]: https://www.contributor-covenant.org
74
-
75
- For answers to common questions about this code of conduct, see
76
- https://www.contributor-covenant.org/faq
@@ -1,274 +0,0 @@
1
- # Contribution guidelines
2
-
3
- 1. [Roadmap](#roadmap)
4
- 2. [Before Getting Started](#before-getting-started)
5
- 3. [Discussing non-public features or products](#discussing-non-public-features-or-products)
6
- 4. [Developing Components](#developing-components)
7
- - [Tools we use](#tools-we-use)
8
- - [Component patterns](#component-patterns)
9
- - [Adding system props](#adding-system-props)
10
- - [Adding the sx prop](#adding-the-sx-prop)
11
- - [Linting](#linting)
12
- - [Testing](#testing)
13
- - [TypeScript support](#typescript-support)
14
- - [Additional resources](#additional-resources)
15
- 5. [Writing documentation](#writing-documentation)
16
- 6. [Creating a pull request](#creating-a-pull-request)
17
- - [What to expect after opening a pull request](#what-to-expect-after-opening-a-pull-request)
18
- - [What we look for in reviews](#what-we-look-for-in-reviews)
19
- 7. [Deploying & publishing](#deploying-and-publishing)
20
- - [Deploying](#deploying)
21
- - [Path aliasing](#path-aliasing)
22
- - [Publishing](#publishing)
23
- 8. [Troubleshooting](#troubleshooting)
24
- 9. [Glossary](#glossary)
25
- - [System Props](#system-props)
26
-
27
- ## Roadmap
28
-
29
- If you're looking for something to work on, a great place to start is our issues labeled [up for grabs](https://github.com/primer/react/issues?q=is%3Aopen+is%3Aissue+label%3A%22up+for+grabs%22)! If you've got a feature that you'd like to implement, be sure to check out our [Primer Components Roadmap](https://github.com/primer/react/projects/3) to make sure it hasn't already been started on.
30
-
31
- ## Before Getting Started
32
-
33
- A common question asked about Primer Components is how to know what should be added to Primer Components and what is best left as a local component in a consuming application. Though there are no hard & fast rules about what can and cannot be added to Primer Components, here are a few things we take into consideration:
34
-
35
- - Is the new feature an existing pattern in Primer CSS or related to UI built at GitHub? Primer Components is first and foremost a library for building UI at GitHub - patterns that aren't currently being used in GitHub UI (either on github.com or in a GitHub owned project outside of github.com) probably shouldn't be added to Primer Components. Exceptions to this could be helper components that don't necessarily render UI but help with the development process (like `Flex`, `Grid`, or `Box`).
36
-
37
- - Does the proposed component get used in more than one or two places across GitHub UI? A component that's only meant to be used in one place and doesn't have potential to be reused in many places probably should exist as a local component. An example of something like this might be a component that renders content specific to a single GitHub product.
38
-
39
- **In general, we tend to be pretty excited about 99% of feature proposals and contributions!** If you would like to get started with a component proposal, open an issue using the [component proposal template](https://github.com/primer/react/issues/new?template=new-component-proposal.md).
40
-
41
- ## Discussing non-public features or products
42
-
43
- As this is a public repo, please be careful not to include details or screenshots from unreleased GitHub products or features. In most cases, a good bug report, feature request, or pull request should be able to describe the work without including business logic or feature details, but if you must discuss context relating to an unreleased feature, please open an issue in the private [Design Systems repo](https://github.com/github/design-systems/issues/new/choose) and link to it in your issue or pull request.
44
-
45
- ## Developing components
46
-
47
- We primarily use our documentation site as a workspace to develop new components or make changes to existing components (stay tuned for a better development environment coming soon!).
48
-
49
- Before running the documentation site locally, you'll need to install packages in the root and `docs` directories:
50
-
51
- ```sh
52
- npm install && cd docs && npm install
53
- ```
54
-
55
- Then navigate back to the root folder and run the following to start up the site:
56
-
57
- ```sh
58
- npm start
59
- ```
60
-
61
- Navigate to http://localhost:8000/ to see the site in your browser ✨
62
-
63
- ### Tools we use
64
-
65
- 1. We use [styled-components](https://www.styled-components.com/) to style our components.
66
- 2. We use style functions from [styled-system](https://styled-system.com/) whenever possible, and styled-systems' `style()` function to create new ones.
67
-
68
- ### Component patterns
69
-
70
- With a couple of exceptions, all components should be created with the `styled` function from [styled-components] and should have the appropriate groups of system props attached.
71
-
72
- Default values for system props can be set in `Component.defaultProps`.
73
-
74
- ⚠️ **Do not set the default `theme` prop! This can sometimes override the theme provided by the ThemeProvider and cause unexpected theming issues.**
75
-
76
- Additionally, every component should support [the `sx` prop](https://primer.style/components/overriding-styles); remember to add `${sx}` to the style literal.
77
-
78
- Here's an example of a basic component written in the style of Primer Components:
79
-
80
- ```jsx
81
- import {TYPOGRAPHY, COMMON} from './constants'
82
- import sx from './sx
83
-
84
- const Component = styled.div`
85
- // additional styles here
86
-
87
- ${COMMON};
88
- ${TYPOGRAPHY};
89
- ${sx};
90
- `
91
-
92
- Component.defaultProps = {
93
- m: 0,
94
- fontSize: 5,
95
- }
96
-
97
- export default Component
98
- ```
99
-
100
- ### Adding system props
101
-
102
- Each component should have access to the appropriate system props. Every component has access to `COMMON`. For **most** components added, you'll only need to give the component to `COMMON`. If you are unsure, ping a DS team member on your PR.
103
-
104
- Categories of system props are exported from `src/constants.js`:
105
-
106
- - `COMMON` includes color and spacing (margin and padding) props
107
- - `TYPOGRAPHY` includes font family, font weight, and line-height props
108
- - `POSITION` includes positioning props
109
- - `FLEX` includes flexbox props
110
- - `BORDER` includes border and box-shadow props
111
- - `GRID` includes grid props
112
-
113
- To give the component access to a group of system props, import the system prop function from `./constants` and include the system prop function in your styled-component like so:
114
-
115
- ```jsx
116
- import {COMMON} from './constants'
117
-
118
- const Component = styled.div`
119
- // additional styles here
120
- ${COMMON};
121
- `
122
- ```
123
-
124
- Remember that the system prop function inside your style declaration needs to go _after_ any built-in styles you want to be overridable.
125
-
126
- ### Adding the `sx` prop
127
-
128
- Each component should provide access to a prop called `sx` that allows for setting theme-aware ad-hoc styles. See the [overriding styles](https://primer.style/components/overriding-styles) doc for more information on using the prop.
129
-
130
- Adding the `sx` prop is similar to adding system props; import the default export from the `sx` module, add it to your style definition, and add the appropriate prop types. **The `sx` prop should go at the _very end_ of your style definition.**
131
-
132
- ```jsx
133
- import {COMMON} from './constants'
134
- import sx from './sx'
135
-
136
- const Component = styled.div`
137
- // additional styles here
138
- ${COMMON};
139
- ${sx};
140
- `
141
- ```
142
-
143
- ### Linting
144
-
145
- We use the [React configuration](https://github.com/github/eslint-plugin-github/blob/master/lib/configs/react.js) from [GitHub's eslint plugin](https://github.com/github/eslint-plugin-github) to lint our JavaScript. To check your work before pushing, run:
146
-
147
- ```sh
148
- npm run lint
149
- ```
150
-
151
- Or, you can use [npx] to run eslint on one or more specific files:
152
-
153
- ```sh
154
- # lint the component and the tests in src/__tests__
155
- npx eslint src/**/MyComponent.js
156
- ```
157
-
158
- **Protip:** The [eslint `--fix` flag](https://eslint.org/docs/user-guide/command-line-interface#--fix) can automatically fix most linting errors, such as those involving whitespace or incorrect ordering of object keys and imports. You can fix those issues across the entire project with:
159
-
160
- ```sh
161
- npm run lint -- --fix
162
- ```
163
-
164
- **Protip:** `npm run lint -- --quiet` (or `npx eslint --quiet ...`) will suppress warnings so that you can focus on fixing errors.
165
-
166
- ### Testing
167
-
168
- We test our components with [Jest](https://facebook.github.io/jest/) and [react-test-renderer](https://reactjs.org/docs/test-renderer.html). You can run the tests locally with `npm test`. To run the tests as you work, run Jest in watch mode with:
169
-
170
- ```sh
171
- npm test -- --watch
172
- ```
173
-
174
- See [`src/__tests__/example.js`](src/__tests__/example.js) for examples of ways that we test our components.
175
-
176
- ### TypeScript support
177
-
178
- Several of the projects that consume Primer Components are written in TypeScript. Though Primer Components is not currently written in TS, we do export type definitions in order to make Primer Components compatible with other TS projects.
179
-
180
- Whenever adding new components or modifying the props of an existing component, **please make sure to update the type definition** in `index.d.ts`! This is super important to make sure we don't break compatibility :)
181
-
182
- ### Additional resources
183
-
184
- - [Primer Components Philosophy](https://primer.style/components/philosophy)
185
- - [Primer Components Core Concepts](https://primer.style/components/core-concepts)
186
- - [Primer Components System Props](https://primer.style/components/system-props)
187
- - [Styled Components docs](https://styled-components.com/)
188
- - [Styled System docs](https://styled-system.com/)
189
-
190
- ## Writing documentation
191
-
192
- We use [Doctocat](https://github.com/primer/doctocat) to power our documentation site at [https://primer.style/components](https://primer.style/components/).
193
-
194
- To add a new component to our documentation site, create a new file with the `.md` extension for your component in `docs/content` (e.g. `docs/content/Button.md`).
195
-
196
- ## Creating a pull request
197
-
198
- When creating a new pull request, please follow the guidelines in the auto-populated pull request template. Be sure to add screenshots of any relevant work and a thoughtful description.
199
-
200
- ### What to expect after opening a pull request
201
-
202
- After opening a pull request, a member of the design systems team will add the appropriate labels (major, minor, patch release labels) and update the base branch to the correct release branch. Usually, you'll receive a response from the design systems team within a day or two. The design systems team member will review the pull request keeping the following items in mind:
203
-
204
- ### What we look for in reviews
205
-
206
- - If it's a new component, does the component make sense to add to Primer Components? (Ideally this is discussed before the pull request stage, please reach out to a DS member if you aren't sure if a component should be added to Primer Components!)
207
- - Does the component follow our [Primer Components code style](#component-patterns)?
208
- - Does the component use theme values for most CSS values?
209
- - Does the component have the [correct system props implemented](#adding-system-props)?
210
- - Is the component API intuitive?
211
- - Does the component have the appropriate [type definitions in `index.d.ts`](#typescript-support)?
212
- - Is the component documented accurately?
213
- - Does the component have appropriate tests?
214
- - Does the pull request increase the bundle size significantly?
215
-
216
- If everything looks great, the design systems team member will approve the pull request and merge when appropriate. Minor and patch changes are released frequently, and we try to bundle up breaking changes and avoid shipping major versions too often. If your pull request is time-sensitive, please let a design systems team member know. You do not need to worry about merging pull requests on your own, we'll take care of that for you :)
217
-
218
- ## Deploying and publishing
219
-
220
- ### Deploying
221
-
222
- All of our documentation sites use the [Now integration](https://github.com/organizations/primer/settings/installations/1007619) to deploy documentation changes whenever code is merged into main. The integration also creates a preview site every time you commit code to a branch. To view the preview site, navigate to the PR and find the comment from the `now` bot. This will include a link to the preview site for your branch.
223
-
224
- Once you merge your branch into main, any changes to the docs will automatically deploy. No further action is necessary.
225
-
226
- ### Path aliasing
227
-
228
- This site is served as a subdirectory of [primer.style] using a [path alias](https://zeit.co/docs/features/path-aliases) configured in that repo's [`rules.json`](https://github.com/primer/primer.style/tree/master/rules.json). If you change the production deployment URL for this app, you will also need to change it there and re-deploy that app; otherwise, Now will automatically route requests from [primer.style/components](https://primer.style/components/) to the new deployment whenever you alias this one to `primer-components.now.sh`.
229
-
230
- ### Publishing
231
-
232
- We use [changesets](https://github.com/atlassian/changesets) to managing versioning, publishing, and release notes. Here's how it works:
233
-
234
- #### Using changesets to prepare and publish a release
235
-
236
- 1. When creating a new PR, changeset-bot will remind you to add a changeset if your change should trigger a new version number for the package.
237
- 2. To create a new changeset on your local machine, run `npx changeset` and answer the prompts. If you are introducing multiple features in the PR, add a separate changeset for each.
238
- 3. Push your new changes along with the changeset file to your PR; changeset-bot will show that there are valid changesets in the PR.
239
- 4. When the PR is ready, merge it to the main branch.
240
- 5. The changeset action will automatically create a new PR that bumps the version number appropriately, creates or updates `CHANGELOG.md`, and shows the release notes that will be used in the GitHub Release notes.
241
- 6. If you want to release more features, merge them into the main branch and changesets will update the release PR. Note that it does this via force-pushing, so you should not edit the release PR yourself.
242
- 7. When you're ready to release, merge the release PR into the main branch and changesets will publish the new version to npm and create a GitHub Release.
243
-
244
- ## Troubleshooting
245
-
246
- **`npm start` fails with an error like `gatsby: command not found`**
247
-
248
- Make sure to run `npm install` from inside the `docs/` subfolder _as well as_ the root folder.
249
-
250
- **`npm start` fails with a different error**
251
-
252
- Ensure you are using the latest minor of Node.js for the major version specified in the `.nvmrc` file. For example, if `.nvmrc` contains `8`, make sure you're using the latest version of Node.js with the major version of 8.
253
-
254
- ## Glossary
255
-
256
- ### System props
257
-
258
- System props are style functions that provide one or more props, and can be passed directly the return value of [styled-components]'s `styled()` function:
259
-
260
- ```jsx
261
- import {styled} from 'styled-components'
262
- import {space} from 'styled-system'
263
- const SpaceDiv = styled.div`
264
- ${space}
265
- `
266
- ```
267
-
268
- [classnames]: https://www.npmjs.com/package/classnames
269
- [spread syntax]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
270
- [styled-system]: https://styled-system.com
271
- [table]: https://jxnblk.com/styled-system/table
272
- [npx]: https://www.npmjs.com/package/npx
273
- [now]: https://zeit.co/now
274
- [primer.style]: https://primer.style
@@ -1,23 +0,0 @@
1
- # ADR 1: TypeScript
2
-
3
- ## Status
4
-
5
- Approved 2021-01-15
6
-
7
- ## Context
8
-
9
- Primer React components was originally released without TypeScript type definitions, making it difficult for engineers to consume the library in TypeScript applications. In [July 2019](https://github.com/primer/react/commit/2983c935ea9ad600c04078adb25e40c3624c11fa#diff-7aa4473ede4abd9ec099e87fec67fd57afafaf39e05d493ab4533acc38547eb8), we created an [ambient declaration](https://www.geeksforgeeks.org/typescript-ambients-declaration/) file (`index.d.ts`) file to provide type definitions for TypeScript applications without having to rewrite Primer React components in TypeScript.
10
-
11
- `index.d.ts` has been an effective stopgap, enabling teams to build complex applications with Primer React components and TypeScript. However, because `index.d.ts` is disconnected from the implementation code, we've struggled to keep the type definitions up-to-date and accurate, as evidenced by [many](https://github.com/primer/react/issues/906) [TypeScript](https://github.com/primer/react/issues/540) [bug](https://github.com/primer/react/issues/520) [reports](https://github.com/primer/react/issues/534). As the library continues to grow in size and complexity, manually maintaining type definitions will become unsustainable.
12
-
13
- ## Decision
14
-
15
- We will rewrite Primer React components in TypeScript.
16
-
17
- ## Consequences
18
-
19
- - Type definitions can be generated by the TypeScript compiler, eliminating bugs caused by hand-written type definitions.
20
- - Engineers can upstream components from other TypeScript projects at GitHub without having to remove type annotations, improving the contributor experience.
21
- - We can refactor components with increased confidence.
22
- - Component prop documentation can be generated by [react-docgen-typescript](https://github.com/styleguidist/react-docgen-typescript), eliminating inaccurate and out-of-date hand-written prop documentation.
23
- - New contributors will need some familiarity with TypeScript in order to make code contributions.
@@ -1,106 +0,0 @@
1
- # Isolating Behaviors through Custom Elements and Vanilla JavaScript
2
-
3
- ## Status
4
-
5
- ## Related Documents
6
-
7
- - April 18th, 2018: [Custom Elements Example](https://github.com/primer/react/pull/13)
8
- - May 8th, 2018: [Custom Elements Experiment](https://github.com/primer/react/pull/14)
9
- - May 18th 2018: [React & Custom Elements](https://docs.google.com/document/d/1b6D2jW3ztQJiKEtQINbb4JoHJ3F3szU6lBX-fGce6aY/edit?usp=sharing)
10
- - October 16th 2019: [Issue exploring pros & cons of reusing .com JS in React](https://github.com/github/issues-index-experiment/issues/90)
11
- - November 15th 2019: [Experiment porting PRC to web components](https://github.com/github/ui-engineering/issues/12#issuecomment-558257842)
12
- - November 27th 2019: [Usage of custom elements in IIE project](https://github.com/github/issues-index-experiment/pull/133)
13
- - November 27th 2019: [Styling custom elements with styled components](https://github.slack.com/archives/CMZ4DC9BL/p1574883198055600)
14
- - June 9th 2020: [Discussion in Slack about using skatejs for SSR](https://github.slack.com/archives/C0ER2LCG2/p1591707104461300)
15
- - November 10th 2020: [Replace dialog with details-dialog](https://github.com/primer/react/issues/907)
16
- - January 27th 2021: [Guidelines for authoring behaviors](https://github.com/primer/react/pull/992)
17
- - February 1st 2021: [Example of a vanilla JS behavior & accompanying hook](https://github.com/T-Hugs/components/commit/105c3a191681381377f5aa193cb241a2189db8a6)
18
-
19
- ## Providing Behaviors via Custom Elements
20
-
21
- ### Context
22
-
23
- Throughout the last few years folks from the Design Infrastructure, Web Systems & UI Platform teams have discussed the idea of using custom elements for behaviors in Primer React Components. The main goal of using custom elements in PRC is to be able to author behaviors once and reuse them in any framework. Several experiments have been conducted which are listed above.
24
-
25
- ### Assumptions
26
-
27
- De-duplication is not our highest or only priority. Attempts at de-duplication must be weighed against changes to the maintainer, developer, and customer experience.
28
-
29
- ### Findings
30
-
31
- #### Developer Experience Regressions
32
-
33
- - Custom elements rendering their own subtrees (ShadowDOM) requires polyfills for as-yet implemented specifications. This means PRC will accumulate added complexity if we were to implement Custom Elements with ShadowDOM.
34
-
35
- - Implementing Custom Elements in PRC will require a division of client side and server side code, as Custom Elements should only be executed in a browser environment. Currently PRC is "isomorphic" - in that the code can be executed anywhere that React can be, which includes NodeJS server runtimes, as well as the client side. While not insurmountable this does mean PRC will accumulate added complexity, which likely will be surfaced to the user.
36
-
37
- - While it's possible to add server side libraries to enable Custom Elements to be rendered on the Server, this adds more complexity and is antithetical to the usage patterns of Custom Elements.
38
-
39
- - As of this writing, you cannot style custom elements with styled-components[^1]. This means that if a component wants to use a custom element to get behaviors and you also want to style that component, you must use another wrapper div to apply styles. This is a bug in styled-components and should be fixed in the next release.
40
-
41
- #### Incompatibility with some React tools
42
-
43
- Some of our GitHub custom elements such as details-dialog and details-menu make assumptions about the DOM tree. For example, details-dialog expects a `details` element to wrap the custom element and uses this assumption[^2] to determine whether or not clicks are happening inside or outside of the dialog and closes the dialog if the click happened outside of the dialog. This makes sense in most cases and is a nice way of enforcing proper usage of the details element, but breaks down when used with [React Portals](https://reactjs.org/docs/portals.html) which are often used to ensure menus are displayed correctly in cases where a parent has an overflow: hidden applied to it, or incompatible z-index.
44
-
45
- #### Extensibility
46
-
47
- Building behaviors in React Hooks gives us the ability to provide things like state and state change hooks to the consumer of the component. This allows the user to build on additional behaviors to the component based on the state or other variables provided to the component consumer. Doing the same with custom elements would require listening to events on the document[^3] and reacting to them. This is certainly do-able, but goes against some of the foundational principles of React (reacting to changes in the DOM vs changes in React state).
48
-
49
- #### Organizational Overhead
50
-
51
- - GitHub’s custom elements are all managed in different repos which introduces more maintenance overhead.
52
- - You'd need to npm link while developing if you want to test changes out with the presentational components themselves instead of making changes and seeing updates instantly. npm link usually doesn't work well with hot module reloading either.
53
- - You'd need to draft & publish releases to both libraries every time you want to update the behavior
54
- - If the behaviors are shared between .com and PRC you'd need to do careful testing in both environments to make sure that changes don't create any regressions. That greatly widens the context that engineers need to keep in mind every time a change is made.
55
- - Reacting to changes will take a bit more time, as we’ll need to orchestrate releases between custom elements and Primer React Components - as opposed to having behaviors already present in PRC which can be versioned in lockstep.
56
- - Engineers who want to contribute to Primer React Components to build new components and behaviors would need to be familiar with both custom elements and React, two very different paradigms, and context switch between the two.
57
-
58
- #### Other
59
-
60
- - The custom element & web component API progress slower than React due to changes needing to go through the whatwq standards process.
61
-
62
- #### Risks of not switching to custom elements for behaviors
63
-
64
- - We spend extra time building behaviors in React that have already been built in our [custom elements library](https://github.github.io/web-systems-documentation/#custom-elements).
65
- - There are currently 19 behaviors/components listed on the custom elements documentation site. Several of these we have already implemented in React in either PRC, Doctocat, or other React applications at GitHub which can be upstreamed (details-dialog, details-menu, clipboard-copy, text-expander, autocomplete, task-list via drag and drop hooks, tab-container, text-expander).
66
- - We decide not to invest further in React at GitHub and have wasted time we could have spent building more custom elements.
67
- - This seems unlikely as there seems to be clear consensus that we will continue to build more and more highly interactive products.
68
- - The React library is abandoned and becomes obsolete
69
- - This is a risk with any technology that we may use, seems highly unlikely in the near term.
70
- - While also a possibility for Custom Elements, the track record demonstrates deprecations of Web APIs is extremely rare and has a long deprecation path.
71
- - Behaviors in .com using custom elements and behaviors in PRC diverge, leading to an inconsistent experience
72
- - This is probably the biggest risk we face, but moving to custom elements isn’t necessarily the only or best solution. We should explore other ways of detecting divergence such as integration tests.
73
-
74
- ## Providing Behaviors through Vanilla JavaScript
75
-
76
- A simpler method of isolating component behaviors is to implement them in vanilla JavaScript (or TypeScript). This way, they can be shared between React Components and Web Components. Both types of consumers would need to hook up the vanilla behavior to the component(s) that use(s) them.
77
-
78
- In some cases, this strategy is very straightforward. When a behavior can be made to have no dependencies other than the DOM, it is easy to isolate and consume in various frameworks. Behaviors that have effects on interactions/events, shared state, and component styles will be more difficult to isolate in this manner.
79
-
80
- ### Interactions and Events
81
-
82
- Many user interactions rely on DOM events, such as `click`, `keypress`, and `focus`. React's event system is _not_ the same as the native DOM event system. React implements a [SyntheticEvent](https://reactjs.org/docs/events.html) that wraps native events. Working with both `SyntheticEvent`s and native events simultaneously is significant additional complexity for maintainers and consumers. However, vanilla JavaScript must operate only using native events. This makes isolating behaviors that automatically hook up event listeners to DOM elements difficult to achieve, and the resulting simultaneous usage of native events and `SyntheticEvent` has the potential to degrade both the maintainer's and the consumer's developer experience using Primer Components.
83
-
84
- ### Shared State
85
-
86
- There are countless ways to manage state in a web application. React has its own ecosystem of state management strategies and libraries (in addition to its own primitive constructs for state management). Since there is no standard state management pattern in vanilla JavaScript, introducing such a pattern would add a new layer of complexity to the component behavior API.
87
-
88
- ### Component Styles
89
-
90
- Since Primer Components uses styled-components to manage CSS styles, any behaviors that affect styles should be doing so with styled-components. Any vanilla JavaScript behaviors that affect styles will add complexity by introducing a second mechanism for applying styles, since they will not be able to use styled-components.
91
-
92
- ## Decision
93
-
94
- ### Custom Elements
95
-
96
- Due to the challenges listed above and our priorities listed in the [Assumptions](#assumptions) section, we are not investing time in building out behaviors with custom elements in our Primer React Components library. Instead, we should spend time expanding coverage using React Hooks and focus on finding other approaches for making sure implementation of behaviors in our different stacks are consistent (such as integration tests).
97
-
98
- ### Vanilla JavaScript Behaviors
99
-
100
- Some behaviors can be implemented as vanilla JavaScript without introducing additional complexity to Primer Components or its consumers. In cases where this is possible, behaviors will be implemented with no dependencies except the DOM and consumed within React Hooks to provide their functionality to Primer Components.
101
-
102
- In general, _portions of behaviors_ that affect or rely on **user interactions and events**, **shared state**, or **CSS styles** should be kept in React Hooks. Parts of the behavior that can be implemented in isolation of these concepts should be built with no dependency on React or other libraries.
103
-
104
- [^1]: https://codesandbox.io/s/demo-styling-custom-element-g973d?file=/src/index.tsx
105
- [^2]: https://github.com/github/details-dialog-element/blob/main/src/index.ts#L195
106
- [^3]: https://github.com/github/details-dialog-element#details-dialog-close