@primer/components 31.2.0 → 31.2.1-rc.0e01900c

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 (949) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +10 -0
  3. package/.devcontainer/devcontainer.json +8 -0
  4. package/.eslintrc.json +137 -0
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  6. package/.github/ISSUE_TEMPLATE/new_component_proposal_template.md +41 -0
  7. package/.github/dependabot.yml +18 -0
  8. package/.github/pull_request_template.md +18 -0
  9. package/.github/workflows/check_for_changeset.yml +25 -0
  10. package/.github/workflows/ci.yml +34 -0
  11. package/.github/workflows/deploy_preview.yml +47 -0
  12. package/.github/workflows/deploy_production.yml +70 -0
  13. package/.github/workflows/release.yml +36 -0
  14. package/.github/workflows/release_canary.yml +71 -0
  15. package/.github/workflows/release_candidate.yml +60 -0
  16. package/.github/workflows/size.yml +13 -0
  17. package/.github/workflows/stale.yml +26 -0
  18. package/.gitignore +10 -0
  19. package/.npmrc +4 -0
  20. package/.nvmrc +1 -0
  21. package/.storybook/main.js +9 -0
  22. package/.storybook/preview.js +117 -0
  23. package/.vscode/launch.json +21 -0
  24. package/.vscode/settings.json +13 -0
  25. package/@types/@styled-system/index.d.ts +0 -0
  26. package/@types/@styled-system/prop-types/index.d.ts +1 -0
  27. package/@types/@styled-system/props/index.d.ts +1 -0
  28. package/@types/jest-styled-components/index.d.ts +1 -0
  29. package/CHANGELOG.md +8 -0
  30. package/CODEOWNERS +2 -0
  31. package/babel-defines.js +13 -0
  32. package/babel.config.js +39 -0
  33. package/contributor-docs/CODE_OF_CONDUCT.md +76 -0
  34. package/contributor-docs/CONTRIBUTING.md +274 -0
  35. package/contributor-docs/adrs/adr-001-typescript.md +23 -0
  36. package/contributor-docs/adrs/adr-002-behavior-isolation.md +108 -0
  37. package/contributor-docs/adrs/adr-003-prop-norms.md +72 -0
  38. package/contributor-docs/behaviors.md +132 -0
  39. package/contributor-docs/component-contents-api-patterns.md +316 -0
  40. package/contributor-docs/principles.md +39 -0
  41. package/dist/browser.esm.js +32 -21
  42. package/dist/browser.esm.js.map +1 -1
  43. package/dist/browser.umd.js +35 -24
  44. package/dist/browser.umd.js.map +1 -1
  45. package/docs/.eslintrc +0 -0
  46. package/docs/.gitignore +91 -0
  47. package/docs/components/PropsList.js +5 -0
  48. package/docs/components/State.js +9 -0
  49. package/docs/components/constants.js +34 -0
  50. package/docs/components/index.js +2 -0
  51. package/docs/content/ActionList.mdx +99 -0
  52. package/docs/content/ActionList2.mdx +358 -0
  53. package/docs/content/ActionMenu.mdx +80 -0
  54. package/docs/content/AnchoredOverlay.mdx +37 -0
  55. package/docs/content/Autocomplete.mdx +657 -0
  56. package/docs/content/Avatar.mdx +33 -0
  57. package/docs/content/AvatarStack.mdx +37 -0
  58. package/docs/content/BorderBox.md +46 -0
  59. package/docs/content/Box.md +74 -0
  60. package/docs/content/BranchName.md +18 -0
  61. package/docs/content/Breadcrumbs.md +52 -0
  62. package/docs/content/Buttons.md +56 -0
  63. package/docs/content/CircleBadge.md +45 -0
  64. package/docs/content/CircleOcticon.md +18 -0
  65. package/docs/content/CounterLabel.md +32 -0
  66. package/docs/content/Details.md +105 -0
  67. package/docs/content/Dialog.md +108 -0
  68. package/docs/content/Dialog2.mdx +179 -0
  69. package/docs/content/Dropdown.md +72 -0
  70. package/docs/content/DropdownMenu.mdx +49 -0
  71. package/docs/content/FilterList.md +44 -0
  72. package/docs/content/FilteredSearch.md +39 -0
  73. package/docs/content/Flash.md +44 -0
  74. package/docs/content/Flex.md +58 -0
  75. package/docs/content/FormGroup.md +46 -0
  76. package/docs/content/Grid.md +59 -0
  77. package/docs/content/Header.md +79 -0
  78. package/docs/content/Heading.md +22 -0
  79. package/docs/content/Label.md +42 -0
  80. package/docs/content/LabelGroup.md +31 -0
  81. package/docs/content/Link.md +37 -0
  82. package/docs/content/Overlay.mdx +94 -0
  83. package/docs/content/Pagehead.md +27 -0
  84. package/docs/content/Pagination.md +187 -0
  85. package/docs/content/PointerBox.md +81 -0
  86. package/docs/content/Popover.md +137 -0
  87. package/docs/content/Portal.mdx +78 -0
  88. package/docs/content/Position.md +100 -0
  89. package/docs/content/ProgressBar.mdx +29 -0
  90. package/docs/content/SelectMenu.md +435 -0
  91. package/docs/content/SelectPanel.mdx +67 -0
  92. package/docs/content/SideNav.md +179 -0
  93. package/docs/content/Spinner.mdx +32 -0
  94. package/docs/content/StateLabel.md +36 -0
  95. package/docs/content/StyledOcticon.md +36 -0
  96. package/docs/content/SubNav.md +102 -0
  97. package/docs/content/TabNav.md +50 -0
  98. package/docs/content/Text.md +31 -0
  99. package/docs/content/TextInput.md +34 -0
  100. package/docs/content/TextInputTokens.mdx +89 -0
  101. package/docs/content/TextInputWithTokens.mdx +211 -0
  102. package/docs/content/Timeline.md +138 -0
  103. package/docs/content/Token.mdx +381 -0
  104. package/docs/content/Tooltip.md +41 -0
  105. package/docs/content/Truncate.md +64 -0
  106. package/docs/content/UnderlineNav.md +53 -0
  107. package/docs/content/anchoredPosition.mdx +163 -0
  108. package/docs/content/core-concepts.md +70 -0
  109. package/docs/content/focusTrap.mdx +103 -0
  110. package/docs/content/focusZone.mdx +145 -0
  111. package/docs/content/getting-started.md +138 -0
  112. package/docs/content/index.md +33 -0
  113. package/docs/content/linting.md +35 -0
  114. package/docs/content/overriding-styles.mdx +82 -0
  115. package/docs/content/philosophy.md +23 -0
  116. package/docs/content/primer-theme.md +89 -0
  117. package/docs/content/ssr.mdx +43 -0
  118. package/docs/content/system-props.mdx +37 -0
  119. package/docs/content/theme-reference.md +16 -0
  120. package/docs/content/theming.md +272 -0
  121. package/docs/content/useOnEscapePress.mdx +56 -0
  122. package/docs/content/useOnOutsideClick.mdx +57 -0
  123. package/docs/content/useOpenAndCloseFocus.mdx +49 -0
  124. package/docs/content/useOverlay.mdx +62 -0
  125. package/docs/content/useSafeTimeout.mdx +32 -0
  126. package/docs/gatsby-config.js +30 -0
  127. package/docs/gatsby-node.js +101 -0
  128. package/docs/package-lock.json +20756 -0
  129. package/docs/package.json +36 -0
  130. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +21 -0
  131. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +41 -0
  132. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +73 -0
  133. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +133 -0
  134. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +1411 -0
  135. package/docs/src/props.js +77 -0
  136. package/jest.config.js +13 -0
  137. package/lib/ActionList/Item.js +28 -19
  138. package/lib/ActionList/Item.jsx +21 -11
  139. package/lib/ActionList2/Description.js +8 -4
  140. package/lib/ActionList2/Description.jsx +2 -3
  141. package/lib/ActionList2/Item.js +7 -9
  142. package/lib/ActionList2/Item.jsx +6 -6
  143. package/lib/ActionList2/Selection.d.ts +1 -1
  144. package/lib/ActionList2/Selection.js +29 -15
  145. package/lib/ActionList2/Selection.jsx +19 -5
  146. package/lib/NewButton/button.js +6 -6
  147. package/lib/NewButton/button.jsx +4 -4
  148. package/lib/__tests__/ActionList.test.d.ts +1 -0
  149. package/lib/__tests__/ActionList.test.js +69 -0
  150. package/lib/__tests__/ActionList.test.jsx +49 -0
  151. package/lib/__tests__/ActionList.types.test.d.ts +6 -0
  152. package/lib/__tests__/ActionList.types.test.js +69 -0
  153. package/lib/__tests__/ActionList.types.test.jsx +45 -0
  154. package/lib/__tests__/ActionList2.test.d.ts +1 -0
  155. package/lib/__tests__/ActionList2.test.js +53 -0
  156. package/lib/__tests__/ActionList2.test.jsx +46 -0
  157. package/lib/__tests__/ActionMenu.test.d.ts +1 -0
  158. package/lib/__tests__/ActionMenu.test.js +151 -0
  159. package/lib/__tests__/ActionMenu.test.jsx +124 -0
  160. package/lib/__tests__/AnchoredOverlay.test.d.ts +1 -0
  161. package/lib/__tests__/AnchoredOverlay.test.js +162 -0
  162. package/lib/__tests__/AnchoredOverlay.test.jsx +121 -0
  163. package/lib/__tests__/Autocomplete.test.d.ts +1 -0
  164. package/lib/__tests__/Autocomplete.test.js +528 -0
  165. package/lib/__tests__/Autocomplete.test.jsx +299 -0
  166. package/lib/__tests__/Avatar.test.d.ts +1 -0
  167. package/lib/__tests__/Avatar.test.js +67 -0
  168. package/lib/__tests__/Avatar.test.jsx +42 -0
  169. package/lib/__tests__/AvatarStack.test.d.ts +1 -0
  170. package/lib/__tests__/AvatarStack.test.js +71 -0
  171. package/lib/__tests__/AvatarStack.test.jsx +43 -0
  172. package/lib/__tests__/BorderBox.test.d.ts +1 -0
  173. package/lib/__tests__/BorderBox.test.js +58 -0
  174. package/lib/__tests__/BorderBox.test.jsx +36 -0
  175. package/lib/__tests__/Box.test.d.ts +1 -0
  176. package/lib/__tests__/Box.test.js +78 -0
  177. package/lib/__tests__/Box.test.jsx +41 -0
  178. package/lib/__tests__/BranchName.test.d.ts +1 -0
  179. package/lib/__tests__/BranchName.test.js +36 -0
  180. package/lib/__tests__/BranchName.test.jsx +27 -0
  181. package/lib/__tests__/Breadcrumbs.test.d.ts +1 -0
  182. package/lib/__tests__/Breadcrumbs.test.js +37 -0
  183. package/lib/__tests__/Breadcrumbs.test.jsx +28 -0
  184. package/lib/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  185. package/lib/__tests__/BreadcrumbsItem.test.js +49 -0
  186. package/lib/__tests__/BreadcrumbsItem.test.jsx +31 -0
  187. package/lib/__tests__/Button.test.d.ts +1 -0
  188. package/lib/__tests__/Button.test.js +143 -0
  189. package/lib/__tests__/Button.test.jsx +100 -0
  190. package/lib/__tests__/Caret.test.d.ts +1 -0
  191. package/lib/__tests__/Caret.test.js +52 -0
  192. package/lib/__tests__/Caret.test.jsx +37 -0
  193. package/lib/__tests__/CircleBadge.test.d.ts +1 -0
  194. package/lib/__tests__/CircleBadge.test.js +83 -0
  195. package/lib/__tests__/CircleBadge.test.jsx +55 -0
  196. package/lib/__tests__/CircleOcticon.test.d.ts +1 -0
  197. package/lib/__tests__/CircleOcticon.test.js +71 -0
  198. package/lib/__tests__/CircleOcticon.test.jsx +45 -0
  199. package/lib/__tests__/ConfirmationDialog.test.d.ts +1 -0
  200. package/lib/__tests__/ConfirmationDialog.test.js +134 -0
  201. package/lib/__tests__/ConfirmationDialog.test.jsx +119 -0
  202. package/lib/__tests__/CounterLabel.test.d.ts +1 -0
  203. package/lib/__tests__/CounterLabel.test.js +58 -0
  204. package/lib/__tests__/CounterLabel.test.jsx +36 -0
  205. package/lib/__tests__/Details.test.d.ts +1 -0
  206. package/lib/__tests__/Details.test.js +117 -0
  207. package/lib/__tests__/Details.test.jsx +85 -0
  208. package/lib/__tests__/Dialog.test.d.ts +1 -0
  209. package/lib/__tests__/Dialog.test.js +184 -0
  210. package/lib/__tests__/Dialog.test.jsx +139 -0
  211. package/lib/__tests__/Dropdown.test.d.ts +1 -0
  212. package/lib/__tests__/Dropdown.test.js +63 -0
  213. package/lib/__tests__/Dropdown.test.jsx +49 -0
  214. package/lib/__tests__/DropdownMenu.test.d.ts +1 -0
  215. package/lib/__tests__/DropdownMenu.test.js +150 -0
  216. package/lib/__tests__/DropdownMenu.test.jsx +119 -0
  217. package/lib/__tests__/FilterList.test.d.ts +1 -0
  218. package/lib/__tests__/FilterList.test.js +36 -0
  219. package/lib/__tests__/FilterList.test.jsx +27 -0
  220. package/lib/__tests__/FilterListItem.test.d.ts +1 -0
  221. package/lib/__tests__/FilterListItem.test.js +46 -0
  222. package/lib/__tests__/FilterListItem.test.jsx +31 -0
  223. package/lib/__tests__/FilteredSearch.test.d.ts +1 -0
  224. package/lib/__tests__/FilteredSearch.test.js +36 -0
  225. package/lib/__tests__/FilteredSearch.test.jsx +27 -0
  226. package/lib/__tests__/Flash.test.d.ts +1 -0
  227. package/lib/__tests__/Flash.test.js +62 -0
  228. package/lib/__tests__/Flash.test.jsx +36 -0
  229. package/lib/__tests__/Flex.test.d.ts +1 -0
  230. package/lib/__tests__/Flex.test.js +74 -0
  231. package/lib/__tests__/Flex.test.jsx +51 -0
  232. package/lib/__tests__/FormGroup.test.d.ts +1 -0
  233. package/lib/__tests__/FormGroup.test.js +54 -0
  234. package/lib/__tests__/FormGroup.test.jsx +36 -0
  235. package/lib/__tests__/Grid.test.d.ts +1 -0
  236. package/lib/__tests__/Grid.test.js +104 -0
  237. package/lib/__tests__/Grid.test.jsx +69 -0
  238. package/lib/__tests__/Header.test.d.ts +1 -0
  239. package/lib/__tests__/Header.test.js +58 -0
  240. package/lib/__tests__/Header.test.jsx +45 -0
  241. package/lib/__tests__/Heading.test.d.ts +1 -0
  242. package/lib/__tests__/Heading.test.js +109 -0
  243. package/lib/__tests__/Heading.test.jsx +71 -0
  244. package/lib/__tests__/KeyPaths.types.test.d.ts +11 -0
  245. package/lib/__tests__/KeyPaths.types.test.js +7 -0
  246. package/lib/__tests__/Label.test.d.ts +1 -0
  247. package/lib/__tests__/Label.test.js +46 -0
  248. package/lib/__tests__/Label.test.jsx +33 -0
  249. package/lib/__tests__/LabelGroup.test.d.ts +1 -0
  250. package/lib/__tests__/LabelGroup.test.js +38 -0
  251. package/lib/__tests__/LabelGroup.test.jsx +29 -0
  252. package/lib/__tests__/Link.test.d.ts +1 -0
  253. package/lib/__tests__/Link.test.js +70 -0
  254. package/lib/__tests__/Link.test.jsx +43 -0
  255. package/lib/__tests__/Merge.types.test.d.ts +30 -0
  256. package/lib/__tests__/Merge.types.test.js +21 -0
  257. package/lib/__tests__/NewButton.test.d.ts +1 -0
  258. package/lib/__tests__/NewButton.test.js +95 -0
  259. package/lib/__tests__/NewButton.test.jsx +61 -0
  260. package/lib/__tests__/Overlay.test.d.ts +1 -0
  261. package/lib/__tests__/Overlay.test.js +145 -0
  262. package/lib/__tests__/Overlay.test.jsx +105 -0
  263. package/lib/__tests__/Pagehead.test.d.ts +1 -0
  264. package/lib/__tests__/Pagehead.test.js +37 -0
  265. package/lib/__tests__/Pagehead.test.jsx +25 -0
  266. package/lib/__tests__/Pagination/Pagination.test.d.ts +1 -0
  267. package/lib/__tests__/Pagination/Pagination.test.js +47 -0
  268. package/lib/__tests__/Pagination/Pagination.test.jsx +32 -0
  269. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  270. package/lib/__tests__/Pagination/PaginationModel.test.js +186 -0
  271. package/lib/__tests__/Pagination/PaginationModel.test.jsx +118 -0
  272. package/lib/__tests__/PointerBox.test.d.ts +1 -0
  273. package/lib/__tests__/PointerBox.test.js +46 -0
  274. package/lib/__tests__/PointerBox.test.jsx +33 -0
  275. package/lib/__tests__/Popover.test.d.ts +1 -0
  276. package/lib/__tests__/Popover.test.js +66 -0
  277. package/lib/__tests__/Popover.test.jsx +58 -0
  278. package/lib/__tests__/Portal.test.d.ts +1 -0
  279. package/lib/__tests__/Portal.test.js +124 -0
  280. package/lib/__tests__/Portal.test.jsx +102 -0
  281. package/lib/__tests__/Position.test.d.ts +1 -0
  282. package/lib/__tests__/Position.test.js +143 -0
  283. package/lib/__tests__/Position.test.jsx +96 -0
  284. package/lib/__tests__/ProgressBar.test.d.ts +1 -0
  285. package/lib/__tests__/ProgressBar.test.js +68 -0
  286. package/lib/__tests__/ProgressBar.test.jsx +38 -0
  287. package/lib/__tests__/SelectMenu.test.d.ts +1 -0
  288. package/lib/__tests__/SelectMenu.test.js +155 -0
  289. package/lib/__tests__/SelectMenu.test.jsx +120 -0
  290. package/lib/__tests__/SelectPanel.test.d.ts +1 -0
  291. package/lib/__tests__/SelectPanel.test.js +80 -0
  292. package/lib/__tests__/SelectPanel.test.jsx +48 -0
  293. package/lib/__tests__/SideNav.test.d.ts +1 -0
  294. package/lib/__tests__/SideNav.test.js +71 -0
  295. package/lib/__tests__/SideNav.test.jsx +55 -0
  296. package/lib/__tests__/Spinner.test.d.ts +1 -0
  297. package/lib/__tests__/Spinner.test.js +53 -0
  298. package/lib/__tests__/Spinner.test.jsx +41 -0
  299. package/lib/__tests__/StateLabel.test.d.ts +1 -0
  300. package/lib/__tests__/StateLabel.test.js +71 -0
  301. package/lib/__tests__/StateLabel.test.jsx +46 -0
  302. package/lib/__tests__/StyledOcticon.test.d.ts +1 -0
  303. package/lib/__tests__/StyledOcticon.test.js +40 -0
  304. package/lib/__tests__/StyledOcticon.test.jsx +28 -0
  305. package/lib/__tests__/SubNav.test.d.ts +1 -0
  306. package/lib/__tests__/SubNav.test.js +62 -0
  307. package/lib/__tests__/SubNav.test.jsx +47 -0
  308. package/lib/__tests__/SubNavLink.test.d.ts +1 -0
  309. package/lib/__tests__/SubNavLink.test.js +49 -0
  310. package/lib/__tests__/SubNavLink.test.jsx +31 -0
  311. package/lib/__tests__/TabNav.test.d.ts +1 -0
  312. package/lib/__tests__/TabNav.test.js +49 -0
  313. package/lib/__tests__/TabNav.test.jsx +32 -0
  314. package/lib/__tests__/Text.test.d.ts +1 -0
  315. package/lib/__tests__/Text.test.js +105 -0
  316. package/lib/__tests__/Text.test.jsx +71 -0
  317. package/lib/__tests__/TextInput.test.d.ts +1 -0
  318. package/lib/__tests__/TextInput.test.js +78 -0
  319. package/lib/__tests__/TextInput.test.jsx +45 -0
  320. package/lib/__tests__/TextInputWithTokens.test.d.ts +1 -0
  321. package/lib/__tests__/TextInputWithTokens.test.js +572 -0
  322. package/lib/__tests__/TextInputWithTokens.test.jsx +302 -0
  323. package/lib/__tests__/ThemeProvider.test.d.ts +1 -0
  324. package/lib/__tests__/ThemeProvider.test.js +444 -0
  325. package/lib/__tests__/ThemeProvider.test.jsx +314 -0
  326. package/lib/__tests__/Timeline.test.d.ts +1 -0
  327. package/lib/__tests__/Timeline.test.js +75 -0
  328. package/lib/__tests__/Timeline.test.jsx +51 -0
  329. package/lib/__tests__/Token.test.d.ts +1 -0
  330. package/lib/__tests__/Token.test.js +180 -0
  331. package/lib/__tests__/Token.test.jsx +93 -0
  332. package/lib/__tests__/Tooltip.test.d.ts +1 -0
  333. package/lib/__tests__/Tooltip.test.js +69 -0
  334. package/lib/__tests__/Tooltip.test.jsx +46 -0
  335. package/lib/__tests__/Truncate.test.d.ts +1 -0
  336. package/lib/__tests__/Truncate.test.js +63 -0
  337. package/lib/__tests__/Truncate.test.jsx +41 -0
  338. package/lib/__tests__/UnderlineNav.test.d.ts +1 -0
  339. package/lib/__tests__/UnderlineNav.test.js +72 -0
  340. package/lib/__tests__/UnderlineNav.test.jsx +53 -0
  341. package/lib/__tests__/UnderlineNavLink.test.d.ts +1 -0
  342. package/lib/__tests__/UnderlineNavLink.test.js +51 -0
  343. package/lib/__tests__/UnderlineNavLink.test.jsx +31 -0
  344. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  345. package/lib/__tests__/behaviors/anchoredPosition.test.js +243 -0
  346. package/lib/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  347. package/lib/__tests__/behaviors/focusTrap.test.js +234 -0
  348. package/lib/__tests__/behaviors/focusTrap.test.jsx +184 -0
  349. package/lib/__tests__/behaviors/focusZone.test.d.ts +1 -0
  350. package/lib/__tests__/behaviors/focusZone.test.js +570 -0
  351. package/lib/__tests__/behaviors/focusZone.test.jsx +406 -0
  352. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  353. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +55 -0
  354. package/lib/__tests__/behaviors/iterateFocusableElements.test.jsx +58 -0
  355. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  356. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +155 -0
  357. package/lib/__tests__/filterObject.test.d.ts +1 -0
  358. package/lib/__tests__/filterObject.test.js +51 -0
  359. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  360. package/lib/__tests__/hooks/useAnchoredPosition.test.js +54 -0
  361. package/lib/__tests__/hooks/useAnchoredPosition.test.jsx +29 -0
  362. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  363. package/lib/__tests__/hooks/useOnEscapePress.test.js +32 -0
  364. package/lib/__tests__/hooks/useOnEscapePress.test.jsx +19 -0
  365. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  366. package/lib/__tests__/hooks/useOnOutsideClick.test.js +87 -0
  367. package/lib/__tests__/hooks/useOnOutsideClick.test.jsx +63 -0
  368. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  369. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +60 -0
  370. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.jsx +61 -0
  371. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  372. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +45 -0
  373. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.jsx +56 -0
  374. package/lib/__tests__/theme.test.d.ts +1 -0
  375. package/lib/__tests__/theme.test.js +35 -0
  376. package/lib/__tests__/themeGet.test.d.ts +1 -0
  377. package/lib/__tests__/themeGet.test.js +14 -0
  378. package/lib/__tests__/useSafeTimeout.test.d.ts +1 -0
  379. package/lib/__tests__/useSafeTimeout.test.js +45 -0
  380. package/lib/__tests__/useSafeTimeout.test.jsx +36 -0
  381. package/lib/__tests__/utils/createSlots.test.d.ts +1 -0
  382. package/lib/__tests__/utils/createSlots.test.js +75 -0
  383. package/lib/__tests__/utils/createSlots.test.jsx +57 -0
  384. package/lib/stories/ActionList.stories.js +454 -0
  385. package/lib/stories/ActionList2.stories.js +908 -0
  386. package/lib/stories/ActionMenu.stories.js +350 -0
  387. package/lib/stories/AnchoredOverlay.stories.js +127 -0
  388. package/lib/stories/Autocomplete.stories.js +619 -0
  389. package/lib/stories/AvatarStack.stories.js +49 -0
  390. package/lib/stories/Button.stories.js +125 -0
  391. package/lib/stories/ConfirmationDialog.stories.js +111 -0
  392. package/lib/stories/Dialog.stories.js +265 -0
  393. package/lib/stories/DropdownMenu.stories.js +122 -0
  394. package/lib/stories/IssueLabelToken.stories.js +165 -0
  395. package/lib/stories/NewButton.stories.js +230 -0
  396. package/lib/stories/Overlay.stories.js +204 -0
  397. package/lib/stories/Portal.stories.js +104 -0
  398. package/lib/stories/ProfileToken.stories.js +162 -0
  399. package/lib/stories/SelectPanel.stories.js +399 -0
  400. package/lib/stories/TextInput.stories.js +144 -0
  401. package/lib/stories/TextInputWithTokens.stories.js +252 -0
  402. package/lib/stories/ThemeProvider.stories.js +102 -0
  403. package/lib/stories/Token.stories.js +176 -0
  404. package/lib/stories/useAnchoredPosition.stories.js +351 -0
  405. package/lib/stories/useFocusTrap.stories.js +356 -0
  406. package/lib/stories/useFocusZone.stories.js +599 -0
  407. package/lib-esm/ActionList/Item.js +28 -19
  408. package/lib-esm/ActionList2/Description.js +8 -4
  409. package/lib-esm/ActionList2/Item.js +7 -9
  410. package/lib-esm/ActionList2/Selection.d.ts +1 -1
  411. package/lib-esm/ActionList2/Selection.js +29 -15
  412. package/lib-esm/NewButton/button.js +6 -6
  413. package/lib-esm/__tests__/ActionList.test.d.ts +1 -0
  414. package/lib-esm/__tests__/ActionList.test.js +57 -0
  415. package/lib-esm/__tests__/ActionList.types.test.d.ts +6 -0
  416. package/lib-esm/__tests__/ActionList.types.test.js +45 -0
  417. package/lib-esm/__tests__/ActionList2.test.d.ts +1 -0
  418. package/lib-esm/__tests__/ActionList2.test.js +41 -0
  419. package/lib-esm/__tests__/ActionMenu.test.d.ts +1 -0
  420. package/lib-esm/__tests__/ActionMenu.test.js +139 -0
  421. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +1 -0
  422. package/lib-esm/__tests__/AnchoredOverlay.test.js +136 -0
  423. package/lib-esm/__tests__/Autocomplete.test.d.ts +1 -0
  424. package/lib-esm/__tests__/Autocomplete.test.js +494 -0
  425. package/lib-esm/__tests__/Avatar.test.d.ts +1 -0
  426. package/lib-esm/__tests__/Avatar.test.js +56 -0
  427. package/lib-esm/__tests__/AvatarStack.test.d.ts +1 -0
  428. package/lib-esm/__tests__/AvatarStack.test.js +58 -0
  429. package/lib-esm/__tests__/BorderBox.test.d.ts +1 -0
  430. package/lib-esm/__tests__/BorderBox.test.js +47 -0
  431. package/lib-esm/__tests__/Box.test.d.ts +1 -0
  432. package/lib-esm/__tests__/Box.test.js +67 -0
  433. package/lib-esm/__tests__/BranchName.test.d.ts +1 -0
  434. package/lib-esm/__tests__/BranchName.test.js +26 -0
  435. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +1 -0
  436. package/lib-esm/__tests__/Breadcrumbs.test.js +27 -0
  437. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  438. package/lib-esm/__tests__/BreadcrumbsItem.test.js +39 -0
  439. package/lib-esm/__tests__/Button.test.d.ts +1 -0
  440. package/lib-esm/__tests__/Button.test.js +133 -0
  441. package/lib-esm/__tests__/Caret.test.d.ts +1 -0
  442. package/lib-esm/__tests__/Caret.test.js +42 -0
  443. package/lib-esm/__tests__/CircleBadge.test.d.ts +1 -0
  444. package/lib-esm/__tests__/CircleBadge.test.js +70 -0
  445. package/lib-esm/__tests__/CircleOcticon.test.d.ts +1 -0
  446. package/lib-esm/__tests__/CircleOcticon.test.js +59 -0
  447. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +1 -0
  448. package/lib-esm/__tests__/ConfirmationDialog.test.js +113 -0
  449. package/lib-esm/__tests__/CounterLabel.test.d.ts +1 -0
  450. package/lib-esm/__tests__/CounterLabel.test.js +47 -0
  451. package/lib-esm/__tests__/Details.test.d.ts +1 -0
  452. package/lib-esm/__tests__/Details.test.js +107 -0
  453. package/lib-esm/__tests__/Dialog.test.d.ts +1 -0
  454. package/lib-esm/__tests__/Dialog.test.js +171 -0
  455. package/lib-esm/__tests__/Dropdown.test.d.ts +1 -0
  456. package/lib-esm/__tests__/Dropdown.test.js +53 -0
  457. package/lib-esm/__tests__/DropdownMenu.test.d.ts +1 -0
  458. package/lib-esm/__tests__/DropdownMenu.test.js +137 -0
  459. package/lib-esm/__tests__/FilterList.test.d.ts +1 -0
  460. package/lib-esm/__tests__/FilterList.test.js +26 -0
  461. package/lib-esm/__tests__/FilterListItem.test.d.ts +1 -0
  462. package/lib-esm/__tests__/FilterListItem.test.js +36 -0
  463. package/lib-esm/__tests__/FilteredSearch.test.d.ts +1 -0
  464. package/lib-esm/__tests__/FilteredSearch.test.js +26 -0
  465. package/lib-esm/__tests__/Flash.test.d.ts +1 -0
  466. package/lib-esm/__tests__/Flash.test.js +51 -0
  467. package/lib-esm/__tests__/Flex.test.d.ts +1 -0
  468. package/lib-esm/__tests__/Flex.test.js +64 -0
  469. package/lib-esm/__tests__/FormGroup.test.d.ts +1 -0
  470. package/lib-esm/__tests__/FormGroup.test.js +44 -0
  471. package/lib-esm/__tests__/Grid.test.d.ts +1 -0
  472. package/lib-esm/__tests__/Grid.test.js +94 -0
  473. package/lib-esm/__tests__/Header.test.d.ts +1 -0
  474. package/lib-esm/__tests__/Header.test.js +48 -0
  475. package/lib-esm/__tests__/Heading.test.d.ts +1 -0
  476. package/lib-esm/__tests__/Heading.test.js +99 -0
  477. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +11 -0
  478. package/lib-esm/__tests__/KeyPaths.types.test.js +3 -0
  479. package/lib-esm/__tests__/Label.test.d.ts +1 -0
  480. package/lib-esm/__tests__/Label.test.js +36 -0
  481. package/lib-esm/__tests__/LabelGroup.test.d.ts +1 -0
  482. package/lib-esm/__tests__/LabelGroup.test.js +26 -0
  483. package/lib-esm/__tests__/Link.test.d.ts +1 -0
  484. package/lib-esm/__tests__/Link.test.js +60 -0
  485. package/lib-esm/__tests__/Merge.types.test.d.ts +30 -0
  486. package/lib-esm/__tests__/Merge.types.test.js +14 -0
  487. package/lib-esm/__tests__/NewButton.test.d.ts +1 -0
  488. package/lib-esm/__tests__/NewButton.test.js +84 -0
  489. package/lib-esm/__tests__/Overlay.test.d.ts +1 -0
  490. package/lib-esm/__tests__/Overlay.test.js +123 -0
  491. package/lib-esm/__tests__/Pagehead.test.d.ts +1 -0
  492. package/lib-esm/__tests__/Pagehead.test.js +26 -0
  493. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +1 -0
  494. package/lib-esm/__tests__/Pagination/Pagination.test.js +35 -0
  495. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  496. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +182 -0
  497. package/lib-esm/__tests__/PointerBox.test.d.ts +1 -0
  498. package/lib-esm/__tests__/PointerBox.test.js +36 -0
  499. package/lib-esm/__tests__/Popover.test.d.ts +1 -0
  500. package/lib-esm/__tests__/Popover.test.js +53 -0
  501. package/lib-esm/__tests__/Portal.test.d.ts +1 -0
  502. package/lib-esm/__tests__/Portal.test.js +104 -0
  503. package/lib-esm/__tests__/Position.test.d.ts +1 -0
  504. package/lib-esm/__tests__/Position.test.js +133 -0
  505. package/lib-esm/__tests__/ProgressBar.test.d.ts +1 -0
  506. package/lib-esm/__tests__/ProgressBar.test.js +58 -0
  507. package/lib-esm/__tests__/SelectMenu.test.d.ts +1 -0
  508. package/lib-esm/__tests__/SelectMenu.test.js +145 -0
  509. package/lib-esm/__tests__/SelectPanel.test.d.ts +1 -0
  510. package/lib-esm/__tests__/SelectPanel.test.js +65 -0
  511. package/lib-esm/__tests__/SideNav.test.d.ts +1 -0
  512. package/lib-esm/__tests__/SideNav.test.js +60 -0
  513. package/lib-esm/__tests__/Spinner.test.d.ts +1 -0
  514. package/lib-esm/__tests__/Spinner.test.js +43 -0
  515. package/lib-esm/__tests__/StateLabel.test.d.ts +1 -0
  516. package/lib-esm/__tests__/StateLabel.test.js +61 -0
  517. package/lib-esm/__tests__/StyledOcticon.test.d.ts +1 -0
  518. package/lib-esm/__tests__/StyledOcticon.test.js +29 -0
  519. package/lib-esm/__tests__/SubNav.test.d.ts +1 -0
  520. package/lib-esm/__tests__/SubNav.test.js +50 -0
  521. package/lib-esm/__tests__/SubNavLink.test.d.ts +1 -0
  522. package/lib-esm/__tests__/SubNavLink.test.js +39 -0
  523. package/lib-esm/__tests__/TabNav.test.d.ts +1 -0
  524. package/lib-esm/__tests__/TabNav.test.js +39 -0
  525. package/lib-esm/__tests__/Text.test.d.ts +1 -0
  526. package/lib-esm/__tests__/Text.test.js +93 -0
  527. package/lib-esm/__tests__/TextInput.test.d.ts +1 -0
  528. package/lib-esm/__tests__/TextInput.test.js +68 -0
  529. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +1 -0
  530. package/lib-esm/__tests__/TextInputWithTokens.test.js +511 -0
  531. package/lib-esm/__tests__/ThemeProvider.test.d.ts +1 -0
  532. package/lib-esm/__tests__/ThemeProvider.test.js +408 -0
  533. package/lib-esm/__tests__/Timeline.test.d.ts +1 -0
  534. package/lib-esm/__tests__/Timeline.test.js +65 -0
  535. package/lib-esm/__tests__/Token.test.d.ts +1 -0
  536. package/lib-esm/__tests__/Token.test.js +166 -0
  537. package/lib-esm/__tests__/Tooltip.test.d.ts +1 -0
  538. package/lib-esm/__tests__/Tooltip.test.js +59 -0
  539. package/lib-esm/__tests__/Truncate.test.d.ts +1 -0
  540. package/lib-esm/__tests__/Truncate.test.js +53 -0
  541. package/lib-esm/__tests__/UnderlineNav.test.d.ts +1 -0
  542. package/lib-esm/__tests__/UnderlineNav.test.js +60 -0
  543. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +1 -0
  544. package/lib-esm/__tests__/UnderlineNavLink.test.js +41 -0
  545. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  546. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +388 -0
  547. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  548. package/lib-esm/__tests__/behaviors/focusTrap.test.js +227 -0
  549. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +1 -0
  550. package/lib-esm/__tests__/behaviors/focusZone.test.js +487 -0
  551. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  552. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +48 -0
  553. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  554. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +224 -0
  555. package/lib-esm/__tests__/filterObject.test.d.ts +1 -0
  556. package/lib-esm/__tests__/filterObject.test.js +27 -0
  557. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  558. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +46 -0
  559. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  560. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +23 -0
  561. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  562. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +68 -0
  563. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  564. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +52 -0
  565. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  566. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +36 -0
  567. package/lib-esm/__tests__/theme.test.d.ts +1 -0
  568. package/lib-esm/__tests__/theme.test.js +33 -0
  569. package/lib-esm/__tests__/themeGet.test.d.ts +1 -0
  570. package/lib-esm/__tests__/themeGet.test.js +22 -0
  571. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +1 -0
  572. package/lib-esm/__tests__/useSafeTimeout.test.js +39 -0
  573. package/lib-esm/__tests__/utils/createSlots.test.d.ts +1 -0
  574. package/lib-esm/__tests__/utils/createSlots.test.js +67 -0
  575. package/lib-esm/stories/ActionList.stories.js +395 -0
  576. package/lib-esm/stories/ActionList2.stories.js +796 -0
  577. package/lib-esm/stories/ActionMenu.stories.js +305 -0
  578. package/lib-esm/stories/AnchoredOverlay.stories.js +101 -0
  579. package/lib-esm/stories/Autocomplete.stories.js +560 -0
  580. package/lib-esm/stories/AvatarStack.stories.js +32 -0
  581. package/lib-esm/stories/Button.stories.js +86 -0
  582. package/lib-esm/stories/ConfirmationDialog.stories.js +86 -0
  583. package/lib-esm/stories/Dialog.stories.js +240 -0
  584. package/lib-esm/stories/DropdownMenu.stories.js +94 -0
  585. package/lib-esm/stories/IssueLabelToken.stories.js +139 -0
  586. package/lib-esm/stories/NewButton.stories.js +178 -0
  587. package/lib-esm/stories/Overlay.stories.js +173 -0
  588. package/lib-esm/stories/Portal.stories.js +68 -0
  589. package/lib-esm/stories/ProfileToken.stories.js +136 -0
  590. package/lib-esm/stories/SelectPanel.stories.js +334 -0
  591. package/lib-esm/stories/TextInput.stories.js +117 -0
  592. package/lib-esm/stories/TextInputWithTokens.stories.js +210 -0
  593. package/lib-esm/stories/ThemeProvider.stories.js +83 -0
  594. package/lib-esm/stories/Token.stories.js +146 -0
  595. package/lib-esm/stories/useAnchoredPosition.stories.js +313 -0
  596. package/lib-esm/stories/useFocusTrap.stories.js +309 -0
  597. package/lib-esm/stories/useFocusZone.stories.js +554 -0
  598. package/migrating.md +250 -0
  599. package/now.json +17 -0
  600. package/package-lock.json +66509 -0
  601. package/package.json +1 -1
  602. package/rollup.config.js +36 -0
  603. package/script/build +21 -0
  604. package/script/build-storybook +10 -0
  605. package/script/setup +12 -0
  606. package/src/ActionList/Divider.tsx +25 -0
  607. package/src/ActionList/Group.tsx +45 -0
  608. package/src/ActionList/Header.tsx +74 -0
  609. package/src/ActionList/Item.tsx +509 -0
  610. package/src/ActionList/List.tsx +258 -0
  611. package/src/ActionList/index.ts +21 -0
  612. package/src/ActionList2/Description.tsx +52 -0
  613. package/src/ActionList2/Divider.tsx +24 -0
  614. package/src/ActionList2/Group.tsx +34 -0
  615. package/src/ActionList2/Header.tsx +58 -0
  616. package/src/ActionList2/Item.tsx +246 -0
  617. package/src/ActionList2/LinkItem.tsx +49 -0
  618. package/src/ActionList2/List.tsx +55 -0
  619. package/src/ActionList2/Selection.tsx +60 -0
  620. package/src/ActionList2/Visuals.tsx +76 -0
  621. package/src/ActionList2/index.ts +39 -0
  622. package/src/ActionMenu.tsx +106 -0
  623. package/src/AnchoredOverlay/AnchoredOverlay.tsx +191 -0
  624. package/src/AnchoredOverlay/index.ts +2 -0
  625. package/src/Autocomplete/Autocomplete.tsx +103 -0
  626. package/src/Autocomplete/AutocompleteContext.tsx +19 -0
  627. package/src/Autocomplete/AutocompleteInput.tsx +179 -0
  628. package/src/Autocomplete/AutocompleteMenu.tsx +341 -0
  629. package/src/Autocomplete/AutocompleteOverlay.tsx +68 -0
  630. package/src/Autocomplete/index.ts +2 -0
  631. package/src/Avatar.tsx +46 -0
  632. package/src/AvatarPair.tsx +35 -0
  633. package/src/AvatarStack.tsx +159 -0
  634. package/src/BaseStyles.tsx +53 -0
  635. package/src/BorderBox.tsx +18 -0
  636. package/src/Box.tsx +54 -0
  637. package/src/BranchName.tsx +19 -0
  638. package/src/Breadcrumbs.tsx +101 -0
  639. package/src/Button/Button.tsx +40 -0
  640. package/src/Button/ButtonBase.tsx +43 -0
  641. package/src/Button/ButtonClose.tsx +40 -0
  642. package/src/Button/ButtonDanger.tsx +43 -0
  643. package/src/Button/ButtonGroup.tsx +55 -0
  644. package/src/Button/ButtonInvisible.tsx +32 -0
  645. package/src/Button/ButtonOutline.tsx +43 -0
  646. package/src/Button/ButtonPrimary.tsx +41 -0
  647. package/src/Button/ButtonStyles.tsx +36 -0
  648. package/src/Button/ButtonTableList.tsx +58 -0
  649. package/src/Button/index.ts +16 -0
  650. package/src/Caret.tsx +133 -0
  651. package/src/CircleBadge.tsx +55 -0
  652. package/src/CircleOcticon.tsx +37 -0
  653. package/src/CounterLabel.tsx +52 -0
  654. package/src/Details.tsx +23 -0
  655. package/src/Dialog/ConfirmationDialog.tsx +184 -0
  656. package/src/Dialog/Dialog.tsx +433 -0
  657. package/src/Dialog.tsx +149 -0
  658. package/src/Dropdown.tsx +158 -0
  659. package/src/DropdownMenu/DropdownButton.tsx +15 -0
  660. package/src/DropdownMenu/DropdownMenu.tsx +115 -0
  661. package/src/DropdownMenu/index.ts +4 -0
  662. package/src/DropdownStyles.ts +128 -0
  663. package/src/FilterList.tsx +81 -0
  664. package/src/FilteredActionList/FilteredActionList.tsx +142 -0
  665. package/src/FilteredActionList/index.ts +2 -0
  666. package/src/FilteredSearch.tsx +28 -0
  667. package/src/Flash.tsx +77 -0
  668. package/src/Flex.tsx +15 -0
  669. package/src/FormGroup.tsx +27 -0
  670. package/src/Grid.tsx +15 -0
  671. package/src/Header.tsx +84 -0
  672. package/src/Heading.tsx +21 -0
  673. package/src/Label.tsx +75 -0
  674. package/src/LabelGroup.tsx +18 -0
  675. package/src/Link.tsx +46 -0
  676. package/src/NewButton/button-counter.tsx +15 -0
  677. package/src/NewButton/button.tsx +279 -0
  678. package/src/NewButton/index.ts +10 -0
  679. package/src/NewButton/types.ts +36 -0
  680. package/src/Overlay.tsx +198 -0
  681. package/src/Pagehead.tsx +17 -0
  682. package/src/Pagination/Pagination.tsx +214 -0
  683. package/src/Pagination/index.ts +4 -0
  684. package/src/Pagination/model.tsx +187 -0
  685. package/src/PointerBox.tsx +31 -0
  686. package/src/Popover.tsx +236 -0
  687. package/src/Portal/Portal.tsx +97 -0
  688. package/src/Portal/index.ts +5 -0
  689. package/src/Position.tsx +63 -0
  690. package/src/ProgressBar.tsx +52 -0
  691. package/src/SelectMenu/SelectMenu.tsx +125 -0
  692. package/src/SelectMenu/SelectMenuContext.tsx +9 -0
  693. package/src/SelectMenu/SelectMenuDivider.tsx +25 -0
  694. package/src/SelectMenu/SelectMenuFilter.tsx +51 -0
  695. package/src/SelectMenu/SelectMenuFooter.tsx +28 -0
  696. package/src/SelectMenu/SelectMenuHeader.tsx +50 -0
  697. package/src/SelectMenu/SelectMenuItem.tsx +137 -0
  698. package/src/SelectMenu/SelectMenuList.tsx +42 -0
  699. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +24 -0
  700. package/src/SelectMenu/SelectMenuModal.tsx +121 -0
  701. package/src/SelectMenu/SelectMenuTab.tsx +88 -0
  702. package/src/SelectMenu/SelectMenuTabPanel.tsx +30 -0
  703. package/src/SelectMenu/SelectMenuTabs.tsx +44 -0
  704. package/src/SelectMenu/hooks/useKeyboardNav.js +90 -0
  705. package/src/SelectMenu/index.ts +15 -0
  706. package/src/SelectPanel/SelectPanel.tsx +173 -0
  707. package/src/SelectPanel/index.ts +2 -0
  708. package/src/SideNav.tsx +193 -0
  709. package/src/Spinner.tsx +59 -0
  710. package/src/StateLabel.tsx +114 -0
  711. package/src/StyledOcticon.tsx +24 -0
  712. package/src/SubNav.tsx +129 -0
  713. package/src/TabNav.tsx +77 -0
  714. package/src/Text.tsx +13 -0
  715. package/src/TextInput.tsx +68 -0
  716. package/src/TextInputWithTokens.tsx +351 -0
  717. package/src/ThemeProvider.tsx +176 -0
  718. package/src/Timeline.tsx +141 -0
  719. package/src/Token/AvatarToken.tsx +54 -0
  720. package/src/Token/IssueLabelToken.tsx +150 -0
  721. package/src/Token/Token.tsx +126 -0
  722. package/src/Token/TokenBase.tsx +129 -0
  723. package/src/Token/_RemoveTokenButton.tsx +111 -0
  724. package/src/Token/_TokenTextContainer.tsx +47 -0
  725. package/src/Token/index.ts +3 -0
  726. package/src/Tooltip.tsx +263 -0
  727. package/src/Truncate.tsx +36 -0
  728. package/src/UnderlineNav.tsx +110 -0
  729. package/src/_TextInputWrapper.tsx +113 -0
  730. package/src/_UnstyledTextInput.tsx +19 -0
  731. package/src/__tests__/.eslintrc.json +11 -0
  732. package/src/__tests__/ActionList.test.tsx +53 -0
  733. package/src/__tests__/ActionList.types.test.tsx +51 -0
  734. package/src/__tests__/ActionList2.test.tsx +47 -0
  735. package/src/__tests__/ActionMenu.test.tsx +136 -0
  736. package/src/__tests__/AnchoredOverlay.test.tsx +150 -0
  737. package/src/__tests__/Autocomplete.test.tsx +444 -0
  738. package/src/__tests__/Avatar.test.tsx +44 -0
  739. package/src/__tests__/AvatarStack.test.tsx +48 -0
  740. package/src/__tests__/BorderBox.test.tsx +43 -0
  741. package/src/__tests__/Box.test.tsx +42 -0
  742. package/src/__tests__/BranchName.test.tsx +26 -0
  743. package/src/__tests__/Breadcrumbs.test.tsx +27 -0
  744. package/src/__tests__/BreadcrumbsItem.test.tsx +31 -0
  745. package/src/__tests__/Button.test.tsx +128 -0
  746. package/src/__tests__/Caret.test.tsx +36 -0
  747. package/src/__tests__/CircleBadge.test.tsx +66 -0
  748. package/src/__tests__/CircleOcticon.test.tsx +50 -0
  749. package/src/__tests__/ConfirmationDialog.test.tsx +120 -0
  750. package/src/__tests__/CounterLabel.test.tsx +50 -0
  751. package/src/__tests__/Details.test.tsx +115 -0
  752. package/src/__tests__/Dialog.test.tsx +155 -0
  753. package/src/__tests__/Dropdown.test.tsx +53 -0
  754. package/src/__tests__/DropdownMenu.test.tsx +136 -0
  755. package/src/__tests__/FilterList.test.tsx +26 -0
  756. package/src/__tests__/FilterListItem.test.tsx +31 -0
  757. package/src/__tests__/FilteredSearch.test.tsx +26 -0
  758. package/src/__tests__/Flash.test.tsx +45 -0
  759. package/src/__tests__/Flex.test.tsx +58 -0
  760. package/src/__tests__/FormGroup.test.tsx +38 -0
  761. package/src/__tests__/Grid.test.tsx +82 -0
  762. package/src/__tests__/Header.test.tsx +49 -0
  763. package/src/__tests__/Heading.test.tsx +91 -0
  764. package/src/__tests__/KeyPaths.types.test.ts +14 -0
  765. package/src/__tests__/Label.test.tsx +34 -0
  766. package/src/__tests__/LabelGroup.test.tsx +30 -0
  767. package/src/__tests__/Link.test.tsx +47 -0
  768. package/src/__tests__/Merge.types.test.ts +39 -0
  769. package/src/__tests__/NewButton.test.tsx +70 -0
  770. package/src/__tests__/Overlay.test.tsx +103 -0
  771. package/src/__tests__/Pagehead.test.tsx +23 -0
  772. package/src/__tests__/Pagination/Pagination.test.tsx +30 -0
  773. package/src/__tests__/Pagination/PaginationModel.test.tsx +133 -0
  774. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +184 -0
  775. package/src/__tests__/PointerBox.test.tsx +34 -0
  776. package/src/__tests__/Popover.test.tsx +68 -0
  777. package/src/__tests__/Portal.test.tsx +103 -0
  778. package/src/__tests__/Position.test.tsx +117 -0
  779. package/src/__tests__/ProgressBar.test.tsx +40 -0
  780. package/src/__tests__/SelectMenu.test.tsx +142 -0
  781. package/src/__tests__/SelectPanel.test.tsx +63 -0
  782. package/src/__tests__/SideNav.test.tsx +62 -0
  783. package/src/__tests__/Spinner.test.tsx +42 -0
  784. package/src/__tests__/StateLabel.test.tsx +48 -0
  785. package/src/__tests__/StyledOcticon.test.tsx +26 -0
  786. package/src/__tests__/SubNav.test.tsx +50 -0
  787. package/src/__tests__/SubNavLink.test.tsx +31 -0
  788. package/src/__tests__/TabNav.test.tsx +32 -0
  789. package/src/__tests__/Text.test.tsx +78 -0
  790. package/src/__tests__/TextInput.test.tsx +49 -0
  791. package/src/__tests__/TextInputWithTokens.test.tsx +422 -0
  792. package/src/__tests__/ThemeProvider.test.tsx +441 -0
  793. package/src/__tests__/Timeline.test.tsx +58 -0
  794. package/src/__tests__/Token.test.tsx +118 -0
  795. package/src/__tests__/Tooltip.test.tsx +52 -0
  796. package/src/__tests__/Truncate.test.tsx +43 -0
  797. package/src/__tests__/UnderlineNav.test.tsx +58 -0
  798. package/src/__tests__/UnderlineNavLink.test.tsx +31 -0
  799. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +223 -0
  800. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +14 -0
  801. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +80 -0
  802. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +232 -0
  803. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3888 -0
  804. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +19 -0
  805. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +377 -0
  806. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +14 -0
  807. package/src/__tests__/__snapshots__/Box.test.tsx.snap +201 -0
  808. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +17 -0
  809. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +29 -0
  810. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +79 -0
  811. package/src/__tests__/__snapshots__/Button.test.tsx.snap +840 -0
  812. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +373 -0
  813. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +142 -0
  814. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +65 -0
  815. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +89 -0
  816. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +22 -0
  817. package/src/__tests__/__snapshots__/Details.test.tsx.snap +15 -0
  818. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +201 -0
  819. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +249 -0
  820. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +107 -0
  821. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +13 -0
  822. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +80 -0
  823. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +32 -0
  824. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +32 -0
  825. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +130 -0
  826. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +25 -0
  827. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +178 -0
  828. package/src/__tests__/__snapshots__/Header.test.tsx.snap +79 -0
  829. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +13 -0
  830. package/src/__tests__/__snapshots__/Label.test.tsx.snap +74 -0
  831. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +15 -0
  832. package/src/__tests__/__snapshots__/Link.test.tsx.snap +213 -0
  833. package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +300 -0
  834. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +15 -0
  835. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +174 -0
  836. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +4687 -0
  837. package/src/__tests__/__snapshots__/Position.test.tsx.snap +44 -0
  838. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +53 -0
  839. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +473 -0
  840. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +124 -0
  841. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +143 -0
  842. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +33 -0
  843. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +395 -0
  844. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +26 -0
  845. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +44 -0
  846. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +199 -0
  847. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +58 -0
  848. package/src/__tests__/__snapshots__/Text.test.tsx.snap +7 -0
  849. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +446 -0
  850. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +6045 -0
  851. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +15 -0
  852. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +159 -0
  853. package/src/__tests__/__snapshots__/Token.test.tsx.snap +3811 -0
  854. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +227 -0
  855. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +17 -0
  856. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +59 -0
  857. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +130 -0
  858. package/src/__tests__/behaviors/anchoredPosition.test.ts +295 -0
  859. package/src/__tests__/behaviors/focusTrap.test.tsx +236 -0
  860. package/src/__tests__/behaviors/focusZone.test.tsx +549 -0
  861. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +61 -0
  862. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +195 -0
  863. package/src/__tests__/filterObject.test.ts +54 -0
  864. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +31 -0
  865. package/src/__tests__/hooks/useOnEscapePress.test.tsx +16 -0
  866. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +48 -0
  867. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +48 -0
  868. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +39 -0
  869. package/src/__tests__/theme.test.ts +41 -0
  870. package/src/__tests__/themeGet.test.ts +15 -0
  871. package/src/__tests__/useSafeTimeout.test.tsx +36 -0
  872. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +55 -0
  873. package/src/__tests__/utils/createSlots.test.tsx +74 -0
  874. package/src/behaviors/anchoredPosition.ts +442 -0
  875. package/src/behaviors/focusTrap.ts +184 -0
  876. package/src/behaviors/focusZone.ts +713 -0
  877. package/src/behaviors/scrollIntoViewingArea.ts +27 -0
  878. package/src/constants.ts +62 -0
  879. package/src/drafts.ts +10 -0
  880. package/src/hooks/index.ts +11 -0
  881. package/src/hooks/useAnchoredPosition.ts +54 -0
  882. package/src/hooks/useCombinedRefs.ts +40 -0
  883. package/src/hooks/useDetails.tsx +54 -0
  884. package/src/hooks/useDialog.ts +121 -0
  885. package/src/hooks/useFocusTrap.ts +80 -0
  886. package/src/hooks/useFocusZone.ts +64 -0
  887. package/src/hooks/useOnEscapePress.ts +63 -0
  888. package/src/hooks/useOnOutsideClick.tsx +82 -0
  889. package/src/hooks/useOpenAndCloseFocus.ts +32 -0
  890. package/src/hooks/useOverlay.tsx +34 -0
  891. package/src/hooks/useProvidedRefOrCreate.ts +14 -0
  892. package/src/hooks/useProvidedStateOrCreate.ts +27 -0
  893. package/src/hooks/useRenderForcingRef.ts +22 -0
  894. package/src/hooks/useResizeObserver.ts +11 -0
  895. package/src/hooks/useSafeTimeout.ts +38 -0
  896. package/src/hooks/useScrollFlash.ts +21 -0
  897. package/src/index.ts +172 -0
  898. package/src/polyfills/eventListenerSignal.ts +66 -0
  899. package/src/stories/ActionList.stories.tsx +436 -0
  900. package/src/stories/ActionList2.stories.tsx +1291 -0
  901. package/src/stories/ActionMenu.stories.tsx +334 -0
  902. package/src/stories/AnchoredOverlay.stories.tsx +117 -0
  903. package/src/stories/Autocomplete.stories.tsx +655 -0
  904. package/src/stories/AvatarStack.stories.tsx +37 -0
  905. package/src/stories/Button.stories.tsx +92 -0
  906. package/src/stories/ConfirmationDialog.stories.tsx +105 -0
  907. package/src/stories/Dialog.stories.tsx +240 -0
  908. package/src/stories/DropdownMenu.stories.tsx +84 -0
  909. package/src/stories/IssueLabelToken.stories.tsx +138 -0
  910. package/src/stories/NewButton.stories.tsx +201 -0
  911. package/src/stories/Overlay.stories.tsx +213 -0
  912. package/src/stories/Portal.stories.tsx +109 -0
  913. package/src/stories/ProfileToken.stories.tsx +129 -0
  914. package/src/stories/SelectPanel.stories.tsx +353 -0
  915. package/src/stories/TextInput.stories.tsx +113 -0
  916. package/src/stories/TextInputWithTokens.stories.tsx +155 -0
  917. package/src/stories/ThemeProvider.stories.tsx +104 -0
  918. package/src/stories/Token.stories.tsx +137 -0
  919. package/src/stories/useAnchoredPosition.stories.tsx +332 -0
  920. package/src/stories/useFocusTrap.stories.tsx +400 -0
  921. package/src/stories/useFocusZone.stories.tsx +663 -0
  922. package/src/sx.ts +24 -0
  923. package/src/theme-preval.js +80 -0
  924. package/src/theme.ts +89 -0
  925. package/src/utils/create-slots.tsx +96 -0
  926. package/src/utils/deprecate.tsx +73 -0
  927. package/src/utils/isNumeric.tsx +4 -0
  928. package/src/utils/iterateFocusableElements.ts +121 -0
  929. package/src/utils/ssr.tsx +1 -0
  930. package/src/utils/test-deprecations.tsx +19 -0
  931. package/src/utils/test-helpers.tsx +7 -0
  932. package/src/utils/test-matchers.tsx +109 -0
  933. package/src/utils/testing.tsx +242 -0
  934. package/src/utils/theme.js +64 -0
  935. package/src/utils/types/AriaRole.ts +71 -0
  936. package/src/utils/types/ComponentProps.ts +13 -0
  937. package/src/utils/types/Flatten.ts +4 -0
  938. package/src/utils/types/KeyPaths.ts +10 -0
  939. package/src/utils/types/MandateProps.ts +19 -0
  940. package/src/utils/types/Merge.ts +20 -0
  941. package/src/utils/types/index.ts +5 -0
  942. package/src/utils/uniqueId.ts +6 -0
  943. package/src/utils/use-force-update.ts +7 -0
  944. package/src/utils/useIsomorphicLayoutEffect.ts +10 -0
  945. package/src/utils/userAgent.ts +7 -0
  946. package/stats.html +3279 -0
  947. package/tsconfig.base.json +20 -0
  948. package/tsconfig.build.json +7 -0
  949. package/tsconfig.json +7 -0
@@ -0,0 +1,138 @@
1
+ ---
2
+ title: Timeline
3
+ ---
4
+
5
+ The Timeline.Item component is used to display items on a vertical timeline, connected by Timeline.Badge elements.
6
+
7
+ ## Example with in-line links
8
+
9
+ ```jsx live
10
+ <Timeline>
11
+ <Timeline.Item>
12
+ <Timeline.Badge>
13
+ <StyledOcticon icon={FlameIcon} />
14
+ </Timeline.Badge>
15
+ <Timeline.Body>
16
+ <Link href="#" sx={{fontWeight: 'bold', color: "fg.default", mr: 1}} muted>
17
+ Monalisa
18
+ </Link>
19
+ created one <Link href="#" sx={{fontWeight: 'bold', color: "fg.default", mr: 1}} muted>
20
+ hot potato
21
+ </Link>
22
+ <Link href="#" color="fg.muted" muted>
23
+ Just now
24
+ </Link>
25
+ </Timeline.Body>
26
+ </Timeline.Item>
27
+ </Timeline>
28
+ ```
29
+
30
+ ## Default Color example
31
+
32
+ The default Timeline.Badge color is dark text on a light grey background.
33
+
34
+ ```jsx live
35
+ <Timeline>
36
+ <Timeline.Item>
37
+ <Timeline.Badge>
38
+ <StyledOcticon icon={FlameIcon} />
39
+ </Timeline.Badge>
40
+ <Timeline.Body>Default badge color</Timeline.Body>
41
+ </Timeline.Item>
42
+ </Timeline>
43
+ ```
44
+
45
+ ## Adding color to a Badge
46
+
47
+ To have color variants, use the `bg` prop on the `Timeline.Badge`. If an icon is being used, set the `color` prop
48
+ of the child `StyledOcticon` if necessary.
49
+
50
+ ```jsx live
51
+ <Timeline>
52
+ <Timeline.Item>
53
+ <Timeline.Badge sx={{bg: "danger.emphasis"}}>
54
+ <StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
55
+ </Timeline.Badge>
56
+ <Timeline.Body>Background used when closed events occur</Timeline.Body>
57
+ </Timeline.Item>
58
+ <Timeline.Item>
59
+ <Timeline.Badge sx={{bg: "danger.emphasis"}}>
60
+ <StyledOcticon icon={FlameIcon} color="fg.onEmphasis" />
61
+ </Timeline.Badge>
62
+ <Timeline.Body>Background when opened or passed events occur</Timeline.Body>
63
+ </Timeline.Item>
64
+ <Timeline.Item>
65
+ <Timeline.Badge sx={{bg: "danger.emphasis"}}>
66
+ <StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
67
+ </Timeline.Badge>
68
+ <Timeline.Body>Background used when pull requests are merged</Timeline.Body>
69
+ </Timeline.Item>
70
+ </Timeline>
71
+ ```
72
+
73
+ ## Condensed items
74
+
75
+ Timeline has a condensed prop that will reduce the vertical padding and remove the background from the badge item. These are most commonly used in commits. To condense a single item, remove the top or bottom padding with the `pt={0}` or `pb={0}` prop.
76
+
77
+ ```jsx live
78
+ <Timeline>
79
+ <Timeline.Item condensed>
80
+ <Timeline.Badge>
81
+ <StyledOcticon icon={GitCommitIcon} />
82
+ </Timeline.Badge>
83
+ <Timeline.Body>This is the message of a condensed TimelineItem</Timeline.Body>
84
+ </Timeline.Item>
85
+ <Timeline.Item condensed>
86
+ <Timeline.Badge>
87
+ <StyledOcticon icon={GitCommitIcon} />
88
+ </Timeline.Badge>
89
+ <Timeline.Body>This is the message of a condensed TimelineItem</Timeline.Body>
90
+ </Timeline.Item>
91
+ </Timeline>
92
+ ```
93
+
94
+ ## Timeline Break
95
+
96
+ To create a visual break in the timeline, use Timeline.Break. This adds a horizontal bar across the timeline to show that something has disrupted it. Usually this happens when a close or merged event occurs.
97
+
98
+ ```jsx live
99
+ <Timeline>
100
+ <Timeline.Item>
101
+ <Timeline.Badge sx={{bg: "danger.emphasis"}}>
102
+ <StyledOcticon icon={FlameIcon} color="fg.onEmphasis" />
103
+ </Timeline.Badge>
104
+ <Timeline.Body>Background used when closed events occur</Timeline.Body>
105
+ </Timeline.Item>
106
+ <Timeline.Break />
107
+ <Timeline.Item>
108
+ <Timeline.Badge sx={{bg: "success.emphasis"}}>
109
+ <StyledOcticon icon={FlameIcon} sx={{color: "fg.onEmphasis"}} />
110
+ </Timeline.Badge>
111
+ <Timeline.Body>Background when opened or passed events occur</Timeline.Body>
112
+ </Timeline.Item>
113
+ </Timeline>
114
+ ```
115
+
116
+ ## System props
117
+
118
+ <Note variant="warning">
119
+
120
+ System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
121
+
122
+ </Note>
123
+
124
+ Timeline and Timeline.Item components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
125
+
126
+ ## Component props
127
+
128
+ ### Timeline
129
+
130
+ | Prop name | Type | Description |
131
+ | :---------- | :------ | :-------------------------------------------------------------------------------- |
132
+ | clipSidebar | Boolean | Hides the sidebar above the first Timeline.Item and below the last Timeline.Item. |
133
+
134
+ ### Timeline.Item
135
+
136
+ | Prop name | Type | Description |
137
+ | :-------- | :------ | :-------------------------------------------------------------------- |
138
+ | condensed | Boolean | Reduces vertical padding and removes background from an item's badge. |
@@ -0,0 +1,381 @@
1
+ ---
2
+ title: Token
3
+ status: Alpha
4
+ source: https://github.com/primer/react/tree/main/src/Token
5
+ ---
6
+
7
+ import {Props} from '../src/props'
8
+ import {AvatarToken, IssueLabelToken, Token} from '@primer/components'
9
+
10
+ A Token represents a piece of data. They are typically used to show a collection of related attributes.
11
+
12
+ The default `Token` can be used for most cases, but specialized token components are provided for specific use cases (see below for more info).
13
+
14
+ All types of tokens may have the same interactive qualities as links or buttons. They also have a sense of being "selected" and ready for user interaction such as being removed from a collection.
15
+
16
+ ## Basic Example
17
+
18
+ ```jsx live
19
+ <>
20
+ <Text fontSize={0} display="block" color="fg.subtle">
21
+ Token
22
+ </Text>
23
+ <Token text="Default Token" />
24
+ </>
25
+ ```
26
+
27
+ ### Interactive tokens
28
+
29
+ If any token is interactive (it is a link or a button), it will become focusable, and react to being hovered or focused on.
30
+
31
+ If a token is interactive _and_ has a remove button (appears when passing `onRemove`), the remove button should not get focus. To invoke the `onRemove` callback without using the cursor, press 'Backspace' when the token is focused.
32
+
33
+ These rules apply to all token components mentioned in this document.
34
+
35
+ #### Example: Interactive tokens with and without an `onRemove` prop
36
+
37
+ ```jsx live
38
+ <Box
39
+ display="flex"
40
+ sx={{
41
+ alignItems: 'start',
42
+ flexDirection: 'column',
43
+ gap: 6
44
+ }}
45
+ >
46
+ <div>
47
+ <Text fontSize={0} display="block" color="fg.subtle">
48
+ Interactive
49
+ </Text>
50
+ <Box
51
+ display="flex"
52
+ sx={{
53
+ alignItems: 'start',
54
+ gap: 2
55
+ }}
56
+ >
57
+ <Token as="a" href="http://google.com/" text="Link" />
58
+ <Token as="button" onClick={() => console.log('clicked')} text="Button" />
59
+ <Token as="span" tabIndex={0} onFocus={() => console.log('focused')} text="Focusable Span" />
60
+ </Box>
61
+ </div>
62
+ <div>
63
+ <Text fontSize={0} display="block" color="fg.subtle">
64
+ Interactive with `onRemove` passed
65
+ </Text>
66
+ <Box
67
+ display="flex"
68
+ sx={{
69
+ alignItems: 'start',
70
+ gap: 2
71
+ }}
72
+ >
73
+ <Token
74
+ as="a"
75
+ href="http://google.com/"
76
+ text="Link"
77
+ onRemove={() => {
78
+ console.log('remove me')
79
+ }}
80
+ />
81
+ <Token
82
+ as="button"
83
+ onClick={() => console.log('clicked')}
84
+ text="Button"
85
+ onRemove={() => {
86
+ console.log('remove me')
87
+ }}
88
+ />
89
+ <Token
90
+ as="span"
91
+ tabIndex={0}
92
+ onFocus={() => console.log('focused')}
93
+ text="Focusable Span"
94
+ onRemove={() => {
95
+ console.log('remove me')
96
+ }}
97
+ />
98
+ </Box>
99
+ </div>
100
+ </Box>
101
+ ```
102
+
103
+ ## Token
104
+
105
+ The default `Token` component
106
+
107
+ ### Component Props
108
+
109
+ <Props of={Token} />
110
+
111
+ ### Example
112
+
113
+ ```jsx live
114
+ <Box
115
+ display="flex"
116
+ sx={{
117
+ alignItems: 'start',
118
+ flexDirection: 'column',
119
+ gap: 6
120
+ }}
121
+ >
122
+ <div>
123
+ <Text fontSize={0} display="block" color="fg.subtle">
124
+ Resting
125
+ </Text>
126
+ <Token text="Default Token" />
127
+ </div>
128
+
129
+ <div>
130
+ <Text fontSize={0} display="block" color="fg.subtle">
131
+ isSelected
132
+ </Text>
133
+ <Token text="Default Token" isSelected />
134
+ </div>
135
+
136
+ <div>
137
+ <Text fontSize={0} display="block" color="fg.subtle">
138
+ With `leadingVisual` passed
139
+ </Text>
140
+ <Token text="Default Token" leadingVisual={() => <span>✨</span>} />
141
+ </div>
142
+
143
+ <div>
144
+ <Text fontSize={0} display="block" color="fg.subtle">
145
+ With `onRemove` passed
146
+ </Text>
147
+ <Token
148
+ text="Default Token"
149
+ onRemove={() => {
150
+ console.log('remove me')
151
+ }}
152
+ />
153
+ </div>
154
+
155
+ <div>
156
+ <Text fontSize={0} display="block" color="fg.subtle">
157
+ Size options
158
+ </Text>
159
+ <Box
160
+ display="flex"
161
+ sx={{
162
+ alignItems: 'start',
163
+ gap: 2
164
+ }}
165
+ >
166
+ <Token
167
+ size="small"
168
+ text="'small' Token"
169
+ onRemove={() => {
170
+ console.log('remove me')
171
+ }}
172
+ />
173
+ <Token
174
+ size="medium"
175
+ text="'medium' Token"
176
+ onRemove={() => {
177
+ console.log('remove me')
178
+ }}
179
+ />
180
+ <Token
181
+ size="large"
182
+ text="'large' Token (default)"
183
+ onRemove={() => {
184
+ console.log('remove me')
185
+ }}
186
+ />
187
+ <Token
188
+ size="extralarge"
189
+ text="'extralarge' Token"
190
+ onRemove={() => {
191
+ console.log('remove me')
192
+ }}
193
+ />
194
+ </Box>
195
+ </div>
196
+ </Box>
197
+ ```
198
+
199
+ ## IssueLabelToken
200
+
201
+ Tokens that represent Issue labels should use the `IssueLabelToken` component.
202
+
203
+ ### Component Props
204
+
205
+ <Props of={IssueLabelToken} />
206
+
207
+ ```jsx live
208
+ <Box
209
+ display="flex"
210
+ sx={{
211
+ alignItems: 'start',
212
+ flexDirection: 'column',
213
+ gap: 6
214
+ }}
215
+ >
216
+ <div>
217
+ <Text fontSize={0} display="block" color="fg.subtle">
218
+ Resting
219
+ </Text>
220
+ <IssueLabelToken text="good first issue" fillColor="#0366d6" />
221
+ </div>
222
+
223
+ <div>
224
+ <Text fontSize={0} display="block" color="fg.subtle">
225
+ isSelected
226
+ </Text>
227
+ <IssueLabelToken text="good first issue" fillColor="#0366d6" isSelected />
228
+ </div>
229
+
230
+ <div>
231
+ <Text fontSize={0} display="block" color="fg.subtle">
232
+ With `onRemove` passed
233
+ </Text>
234
+ <IssueLabelToken
235
+ text="good first issue"
236
+ fillColor="#0366d6"
237
+ onRemove={() => {
238
+ console.log('remove me')
239
+ }}
240
+ />
241
+ </div>
242
+
243
+ <div>
244
+ <Text fontSize={0} display="block" color="fg.subtle">
245
+ Size options
246
+ </Text>
247
+ <Box
248
+ display="flex"
249
+ sx={{
250
+ alignItems: 'start',
251
+ gap: 2
252
+ }}
253
+ >
254
+ <IssueLabelToken
255
+ fillColor="#0366d6"
256
+ size="small"
257
+ text="'small' Token"
258
+ onRemove={() => {
259
+ console.log('remove me')
260
+ }}
261
+ />
262
+ <IssueLabelToken
263
+ fillColor="#0366d6"
264
+ size="medium"
265
+ text="'medium' Token"
266
+ onRemove={() => {
267
+ console.log('remove me')
268
+ }}
269
+ />
270
+ <IssueLabelToken
271
+ fillColor="#0366d6"
272
+ size="large"
273
+ text="'large' Token (default)"
274
+ onRemove={() => {
275
+ console.log('remove me')
276
+ }}
277
+ />
278
+ <IssueLabelToken
279
+ fillColor="#0366d6"
280
+ size="extralarge"
281
+ text="'extralarge' Token"
282
+ onRemove={() => {
283
+ console.log('remove me')
284
+ }}
285
+ />
286
+ </Box>
287
+ </div>
288
+ </Box>
289
+ ```
290
+
291
+ ## AvatarToken
292
+
293
+ Tokens that represent GitHub users should use the `AvatarToken` component.
294
+
295
+ ### Component Props
296
+
297
+ <Props of={AvatarToken} />
298
+
299
+ ```jsx live
300
+ <Box
301
+ display="flex"
302
+ sx={{
303
+ alignItems: 'start',
304
+ flexDirection: 'column',
305
+ gap: 6
306
+ }}
307
+ >
308
+ <div>
309
+ <Text fontSize={0} display="block" color="fg.subtle">
310
+ Resting
311
+ </Text>
312
+ <AvatarToken avatarSrc="https://avatars.githubusercontent.com/mperrotti" text="Default Token" />
313
+ </div>
314
+
315
+ <div>
316
+ <Text fontSize={0} display="block" color="fg.subtle">
317
+ isSelected
318
+ </Text>
319
+ <AvatarToken avatarSrc="https://avatars.githubusercontent.com/mperrotti" text="Default Token" isSelected />
320
+ </div>
321
+
322
+ <div>
323
+ <Text fontSize={0} display="block" color="fg.subtle">
324
+ With `onRemove` passed
325
+ </Text>
326
+ <AvatarToken
327
+ avatarSrc="https://avatars.githubusercontent.com/mperrotti"
328
+ text="Default Token"
329
+ onRemove={() => {
330
+ console.log('remove me')
331
+ }}
332
+ />
333
+ </div>
334
+
335
+ <div>
336
+ <Text fontSize={0} display="block" color="fg.subtle">
337
+ Size options
338
+ </Text>
339
+ <Box
340
+ display="flex"
341
+ sx={{
342
+ alignItems: 'start',
343
+ gap: 2
344
+ }}
345
+ >
346
+ <AvatarToken
347
+ avatarSrc="https://avatars.githubusercontent.com/mperrotti"
348
+ size="small"
349
+ text="'small' Token"
350
+ onRemove={() => {
351
+ console.log('remove me')
352
+ }}
353
+ />
354
+ <AvatarToken
355
+ avatarSrc="https://avatars.githubusercontent.com/mperrotti"
356
+ size="medium"
357
+ text="'medium' Token"
358
+ onRemove={() => {
359
+ console.log('remove me')
360
+ }}
361
+ />
362
+ <AvatarToken
363
+ avatarSrc="https://avatars.githubusercontent.com/mperrotti"
364
+ size="large"
365
+ text="'large' Token (default)"
366
+ onRemove={() => {
367
+ console.log('remove me')
368
+ }}
369
+ />
370
+ <AvatarToken
371
+ avatarSrc="https://avatars.githubusercontent.com/mperrotti"
372
+ size="extralarge"
373
+ text="'extralarge' Token"
374
+ onRemove={() => {
375
+ console.log('remove me')
376
+ }}
377
+ />
378
+ </Box>
379
+ </div>
380
+ </Box>
381
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: Tooltip
3
+ ---
4
+
5
+ The Tooltip component adds a tooltip to add context to elements on the page.
6
+
7
+ **_⚠️ Usage warning! ⚠️_**
8
+
9
+ Tooltips as a UI pattern should be our last resort for conveying information because it is hidden by default and often with zero or little visual indicator of its existence.
10
+
11
+ Before adding a tooltip, please consider: Is this information essential and necessary? Can the UI be made clearer? Can the information be shown on the page by default?
12
+
13
+ **Attention:** we use aria-label for tooltip contents, because it is crucial that they are accessible to screen reader users. However, aria-label replaces the text content of an element in screen readers, so only use Tooltip on elements with no existing text content, or consider using `title` for supplemental information.
14
+
15
+ ## Default example
16
+
17
+ ```jsx live
18
+ <Box borderWidth="1px" borderStyle="solid" borderColor="border.default" borderRadius={2} p={3}>
19
+ <Tooltip aria-label="Hello, Tooltip!">Text with a tooltip</Tooltip>
20
+ </Box>
21
+ ```
22
+
23
+ ## System props
24
+
25
+ <Note variant="warning">
26
+
27
+ System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
28
+
29
+ </Note>
30
+
31
+ Tooltip components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
32
+
33
+ ## Component props
34
+
35
+ | Name | Type | Default | Description |
36
+ | :--------- | :------ | :-----: | :------------------------------------------------------- | --------------------------------------------------------- |
37
+ | align | String | | Can be either `left` or `right`. |
38
+ | direction | String | | Can be one of `n`, `ne`, `e`, `se`, `s`, `sw`, `w`, `nw` | Sets where the tooltip renders in relation to the target. |
39
+ | noDelay | Boolean | | When set to `true`, tooltip appears without any delay |
40
+ | aria-label | String | | Text used in `aria-label` (for accessibility). |
41
+ | wrap | Boolean | | Use `true` to allow text within tooltip to wrap. |
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: Truncate
3
+ ---
4
+
5
+ The Truncate component will shorten text with an ellipsis. Always add a `title` attribute to the truncated element so the full text remains accessible.
6
+
7
+ ## Default example
8
+
9
+ Truncate will prevent text that overflows from wrapping. The default max-width is 125px.
10
+
11
+ ```jsx live
12
+ <Truncate title="Some text with a branch-name-that-is-really-long">
13
+ Some text with a branch-name-that-is-really-long
14
+ </Truncate>
15
+ ```
16
+
17
+ ## Custom max-width example
18
+
19
+ You can override the maximum width of the truncated text with the `maxWidth` prop.
20
+
21
+ ```jsx live
22
+ <Truncate maxWidth={250} title="Some text with a branch-name-that-is-really-long">
23
+ Some text with a branch-name-that-is-really-long
24
+ </Truncate>
25
+ ```
26
+
27
+ ## Inline example
28
+
29
+ You can use the `inline` boolean prop for inline (or inline-block) elements with a fixed maximum width (default: 125px).
30
+
31
+ ```jsx live
32
+ <Truncate as="strong" inline title="branch-name-that-is-really-long">
33
+ Some text with a branch-name-that-is-really-long
34
+ </Truncate>
35
+ ```
36
+
37
+ ## Expandable example
38
+
39
+ You can use the `expandable` boolean prop to display the truncated text on hover.
40
+
41
+ ```jsx live
42
+ <Truncate expandable title="Some text with a branch-name-that-is-really-long">
43
+ Some text with a branch-name-that-is-really-long
44
+ </Truncate>
45
+ ```
46
+
47
+ ## System props
48
+
49
+ <Note variant="warning">
50
+
51
+ System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
52
+
53
+ </Note>
54
+
55
+ Truncate components get `TYPOGRAPHY` and `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
56
+
57
+ ## Component props
58
+
59
+ | Name | Type | Default | Description |
60
+ | :--------- | :------ | :-----: | :----------------------------------------------------------- |
61
+ | as | String | `div` | Sets the HTML tag for the component |
62
+ | maxWidth | Number | 125 | Sets the max-width of the text |
63
+ | inline | Boolean | false | displays text as inline block and vertical aligns to the top |
64
+ | expandable | Boolean | false | allows the truncated text to be displayed on hover |
@@ -0,0 +1,53 @@
1
+ ---
2
+ title: UnderlineNav
3
+ ---
4
+
5
+ Use the UnderlineNav component to style navigation with a minimal underlined selected state, typically used for navigation placed at the top of the page.
6
+
7
+ To use UnderlineNav with [react-router](https://github.com/ReactTraining/react-router) or
8
+ [react-router-dom](https://www.npmjs.com/package/react-router-dom), pass
9
+ `as={NavLink}` and omit the `selected` prop.
10
+ This ensures that the NavLink gets `activeClassName='selected'`
11
+
12
+ **Attention:** Make sure to properly label your `UnderlineNav` with an `aria-label` to provide context about the type of navigation contained in `UnderlineNav`.
13
+
14
+ ## Default example
15
+
16
+ ```jsx live
17
+ <UnderlineNav aria-label="Main">
18
+ <UnderlineNav.Link href="#home" selected>
19
+ Home
20
+ </UnderlineNav.Link>
21
+ <UnderlineNav.Link href="#documentation">Documentation</UnderlineNav.Link>
22
+ <UnderlineNav.Link href="#support">Support</UnderlineNav.Link>
23
+ </UnderlineNav>
24
+ ```
25
+
26
+ ## System props
27
+
28
+ <Note variant="warning">
29
+
30
+ System props are deprecated in all components except [Box](/Box). Please use the [`sx` prop](/overriding-styles) instead.
31
+
32
+ </Note>
33
+
34
+ UnderlineNav and UnderlineNav.Link components get `COMMON` system props. Read our [System Props](/system-props) doc page for a full list of available props.
35
+
36
+ ## Component props
37
+
38
+ ### UnderlineNav
39
+
40
+ | Prop name | Type | Description |
41
+ | :--------- | :------ | :------------------------------------------------------------------------------------- |
42
+ | actions | Node | Place another element, such as a button, to the opposite side of the navigation items. |
43
+ | align | String | Use `right` to have navigation items aligned right. |
44
+ | full | Boolean | Used to make navigation fill the width of the container. |
45
+ | aria-label | String | Used to set the `aria-label` on the top level `<nav>` element. |
46
+
47
+ ### UnderlineNav.Link
48
+
49
+ | Prop name | Type | Description |
50
+ | :-------- | :------ | :----------------------------------------------- |
51
+ | as | String | sets the HTML tag for the component |
52
+ | href | String | URL to be used for the Link |
53
+ | selected | Boolean | Used to style the link as selected or unselected |