@primer/components 32.1.0 → 33.0.0-rc.9f3670b7

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 (1147) 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 +31 -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 +35 -0
  14. package/.github/workflows/release_canary.yml +70 -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 +22 -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 +230 -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 +106 -109
  42. package/dist/browser.esm.js.map +1 -1
  43. package/dist/browser.umd.js +106 -109
  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/ActionMenu.mdx +80 -0
  53. package/docs/content/AnchoredOverlay.mdx +37 -0
  54. package/docs/content/Autocomplete.mdx +657 -0
  55. package/docs/content/Avatar.mdx +53 -0
  56. package/docs/content/AvatarStack.mdx +57 -0
  57. package/docs/content/BorderBox.md +46 -0
  58. package/docs/content/Box.mdx +96 -0
  59. package/docs/content/BranchName.md +39 -0
  60. package/docs/content/Breadcrumbs.md +68 -0
  61. package/docs/content/Buttons.md +47 -0
  62. package/docs/content/Checkbox.md +118 -0
  63. package/docs/content/CircleBadge.md +36 -0
  64. package/docs/content/CircleOcticon.md +19 -0
  65. package/docs/content/CounterLabel.md +22 -0
  66. package/docs/content/Details.md +102 -0
  67. package/docs/content/Dialog.md +106 -0
  68. package/docs/content/Dialog2.mdx +181 -0
  69. package/docs/content/Dropdown.md +66 -0
  70. package/docs/content/DropdownMenu.mdx +50 -0
  71. package/docs/content/FilterList.md +38 -0
  72. package/docs/content/FilteredSearch.md +33 -0
  73. package/docs/content/Flash.md +36 -0
  74. package/docs/content/Flex.md +58 -0
  75. package/docs/content/FormGroup.md +39 -0
  76. package/docs/content/Grid.md +59 -0
  77. package/docs/content/Header.md +78 -0
  78. package/docs/content/Heading.md +21 -0
  79. package/docs/content/Label.md +49 -0
  80. package/docs/content/LabelGroup.md +22 -0
  81. package/docs/content/Link.md +29 -0
  82. package/docs/content/Overlay.mdx +86 -0
  83. package/docs/content/Pagehead.md +19 -0
  84. package/docs/content/Pagination.md +179 -0
  85. package/docs/content/PointerBox.md +82 -0
  86. package/docs/content/Popover.md +130 -0
  87. package/docs/content/Portal.mdx +79 -0
  88. package/docs/content/Position.md +93 -0
  89. package/docs/content/ProgressBar.mdx +31 -0
  90. package/docs/content/SelectMenu.md +372 -0
  91. package/docs/content/SelectPanel.mdx +67 -0
  92. package/docs/content/SideNav.md +172 -0
  93. package/docs/content/Spinner.mdx +32 -0
  94. package/docs/content/StateLabel.md +28 -0
  95. package/docs/content/StyledOcticon.md +27 -0
  96. package/docs/content/SubNav.md +101 -0
  97. package/docs/content/TabNav.md +43 -0
  98. package/docs/content/Text.md +32 -0
  99. package/docs/content/TextInput.md +42 -0
  100. package/docs/content/TextInputWithTokens.mdx +211 -0
  101. package/docs/content/Timeline.md +149 -0
  102. package/docs/content/Token.mdx +381 -0
  103. package/docs/content/Tooltip.md +33 -0
  104. package/docs/content/Truncate.md +56 -0
  105. package/docs/content/UnderlineNav.md +46 -0
  106. package/docs/content/anchoredPosition.mdx +163 -0
  107. package/docs/content/core-concepts.md +70 -0
  108. package/docs/content/drafts/ActionList2.mdx +375 -0
  109. package/docs/content/drafts/ActionMenu2.mdx +251 -0
  110. package/docs/content/focusTrap.mdx +103 -0
  111. package/docs/content/focusZone.mdx +145 -0
  112. package/docs/content/getting-started.md +138 -0
  113. package/docs/content/index.md +33 -0
  114. package/docs/content/linting.md +35 -0
  115. package/docs/content/overriding-styles.mdx +82 -0
  116. package/docs/content/philosophy.md +23 -0
  117. package/docs/content/primer-theme.md +89 -0
  118. package/docs/content/ssr.mdx +43 -0
  119. package/docs/content/status.mdx +10 -0
  120. package/docs/content/system-props.mdx +37 -0
  121. package/docs/content/theme-reference.md +16 -0
  122. package/docs/content/theming.md +272 -0
  123. package/docs/content/useOnEscapePress.mdx +56 -0
  124. package/docs/content/useOnOutsideClick.mdx +57 -0
  125. package/docs/content/useOpenAndCloseFocus.mdx +49 -0
  126. package/docs/content/useOverlay.mdx +62 -0
  127. package/docs/content/useSafeTimeout.mdx +32 -0
  128. package/docs/gatsby-config.js +30 -0
  129. package/docs/gatsby-node.js +101 -0
  130. package/docs/package-lock.json +20867 -0
  131. package/docs/package.json +36 -0
  132. package/docs/src/@primer/gatsby-theme-doctocat/components/hero.js +21 -0
  133. package/docs/src/@primer/gatsby-theme-doctocat/components/live-preview-wrapper.js +41 -0
  134. package/docs/src/@primer/gatsby-theme-doctocat/live-code-scope.js +81 -0
  135. package/docs/src/@primer/gatsby-theme-doctocat/mdx-components.js +9 -0
  136. package/docs/src/@primer/gatsby-theme-doctocat/nav.yml +137 -0
  137. package/docs/src/@primer/gatsby-theme-doctocat/primer-components-hero.svg +1411 -0
  138. package/docs/src/component-checklist.js +81 -0
  139. package/docs/src/component-statuses.js +74 -0
  140. package/docs/src/props.js +77 -0
  141. package/jest.config.js +13 -0
  142. package/lib/ActionList/Item.js +3 -3
  143. package/lib/ActionList2/Divider.d.ts +3 -2
  144. package/lib/ActionList2/Divider.js +10 -5
  145. package/lib/ActionList2/Item.js +24 -6
  146. package/lib/ActionList2/List.js +10 -1
  147. package/lib/ActionList2/MenuContext.d.ts +10 -0
  148. package/lib/ActionList2/MenuContext.js +15 -0
  149. package/lib/ActionList2/Selection.js +14 -1
  150. package/lib/ActionList2/index.d.ts +1 -2
  151. package/lib/ActionMenu2.d.ts +310 -0
  152. package/lib/ActionMenu2.js +91 -0
  153. package/lib/Autocomplete/Autocomplete.d.ts +1 -0
  154. package/lib/Autocomplete/AutocompleteInput.d.ts +1 -0
  155. package/lib/Avatar.d.ts +1 -2
  156. package/lib/Avatar.js +1 -1
  157. package/lib/BranchName.d.ts +1 -2
  158. package/lib/BranchName.js +1 -1
  159. package/lib/Button/Button.d.ts +1 -0
  160. package/lib/Button/ButtonClose.d.ts +2 -1
  161. package/lib/Button/ButtonDanger.d.ts +1 -0
  162. package/lib/Button/ButtonInvisible.d.ts +1 -0
  163. package/lib/Button/ButtonOutline.d.ts +1 -0
  164. package/lib/Button/ButtonPrimary.d.ts +1 -0
  165. package/lib/CircleOcticon.d.ts +1 -0
  166. package/lib/Details.d.ts +1 -2
  167. package/lib/Details.js +1 -3
  168. package/lib/Dialog.d.ts +3 -2
  169. package/lib/Dropdown.d.ts +6 -66
  170. package/lib/DropdownMenu/DropdownButton.d.ts +2 -1
  171. package/lib/FilterList.d.ts +1 -0
  172. package/lib/Heading.d.ts +1 -2
  173. package/lib/Heading.js +1 -6
  174. package/lib/Position.d.ts +4 -4
  175. package/lib/ProgressBar.d.ts +16 -11
  176. package/lib/ProgressBar.js +6 -10
  177. package/lib/SelectMenu/SelectMenu.d.ts +10 -4
  178. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  179. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  180. package/lib/Spinner.d.ts +1 -2
  181. package/lib/Spinner.js +1 -3
  182. package/lib/TextInputWithTokens.d.ts +1 -0
  183. package/lib/Token/AvatarToken.d.ts +1 -1
  184. package/lib/Token/IssueLabelToken.d.ts +1 -1
  185. package/lib/Token/Token.d.ts +1 -1
  186. package/lib/__tests__/ActionList.test.d.ts +1 -0
  187. package/lib/__tests__/ActionList.test.js +69 -0
  188. package/lib/__tests__/ActionList.types.test.d.ts +6 -0
  189. package/lib/__tests__/ActionList.types.test.js +69 -0
  190. package/lib/__tests__/ActionList2.test.d.ts +2 -0
  191. package/lib/__tests__/ActionList2.test.js +170 -0
  192. package/lib/__tests__/ActionMenu.test.d.ts +1 -0
  193. package/lib/__tests__/ActionMenu.test.js +151 -0
  194. package/lib/__tests__/AnchoredOverlay.test.d.ts +1 -0
  195. package/lib/__tests__/AnchoredOverlay.test.js +162 -0
  196. package/lib/__tests__/Autocomplete.test.d.ts +1 -0
  197. package/lib/__tests__/Autocomplete.test.js +528 -0
  198. package/lib/__tests__/Avatar.test.d.ts +1 -0
  199. package/lib/__tests__/Avatar.test.js +69 -0
  200. package/lib/__tests__/Avatar.types.test.d.ts +3 -0
  201. package/lib/__tests__/Avatar.types.test.js +31 -0
  202. package/lib/__tests__/AvatarStack.test.d.ts +1 -0
  203. package/lib/__tests__/AvatarStack.test.js +71 -0
  204. package/lib/__tests__/BorderBox.test.d.ts +1 -0
  205. package/lib/__tests__/BorderBox.test.js +58 -0
  206. package/lib/__tests__/Box.test.d.ts +1 -0
  207. package/lib/__tests__/Box.test.js +78 -0
  208. package/lib/__tests__/BranchName.test.d.ts +1 -0
  209. package/lib/__tests__/BranchName.test.js +36 -0
  210. package/lib/__tests__/BranchName.types.test.d.ts +3 -0
  211. package/lib/__tests__/BranchName.types.test.js +28 -0
  212. package/lib/__tests__/Breadcrumbs.test.d.ts +1 -0
  213. package/lib/__tests__/Breadcrumbs.test.js +40 -0
  214. package/lib/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  215. package/lib/__tests__/Breadcrumbs.types.test.js +25 -0
  216. package/lib/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  217. package/lib/__tests__/BreadcrumbsItem.test.js +49 -0
  218. package/lib/__tests__/Button.test.d.ts +1 -0
  219. package/lib/__tests__/Button.test.js +147 -0
  220. package/lib/__tests__/Caret.test.d.ts +1 -0
  221. package/lib/__tests__/Caret.test.js +52 -0
  222. package/lib/__tests__/Checkbox.test.d.ts +2 -0
  223. package/lib/__tests__/Checkbox.test.js +189 -0
  224. package/lib/__tests__/CircleBadge.test.d.ts +1 -0
  225. package/lib/__tests__/CircleBadge.test.js +83 -0
  226. package/lib/__tests__/CircleBadge.types.test.d.ts +3 -0
  227. package/lib/__tests__/CircleBadge.types.test.js +28 -0
  228. package/lib/__tests__/CircleOcticon.test.d.ts +1 -0
  229. package/lib/__tests__/CircleOcticon.test.js +71 -0
  230. package/lib/__tests__/ConfirmationDialog.test.d.ts +1 -0
  231. package/lib/__tests__/ConfirmationDialog.test.js +134 -0
  232. package/lib/__tests__/CounterLabel.test.d.ts +1 -0
  233. package/lib/__tests__/CounterLabel.test.js +58 -0
  234. package/lib/__tests__/CounterLabel.types.test.d.ts +3 -0
  235. package/lib/__tests__/CounterLabel.types.test.js +28 -0
  236. package/lib/__tests__/Details.test.d.ts +1 -0
  237. package/lib/__tests__/Details.test.js +117 -0
  238. package/lib/__tests__/Details.types.test.d.ts +3 -0
  239. package/lib/__tests__/Details.types.test.js +28 -0
  240. package/lib/__tests__/Dialog.test.d.ts +1 -0
  241. package/lib/__tests__/Dialog.test.js +184 -0
  242. package/lib/__tests__/Dialog.types.test.d.ts +3 -0
  243. package/lib/__tests__/Dialog.types.test.js +28 -0
  244. package/lib/__tests__/Dialog2.types.test.d.ts +3 -0
  245. package/lib/__tests__/Dialog2.types.test.js +31 -0
  246. package/lib/__tests__/Dropdown.test.d.ts +1 -0
  247. package/lib/__tests__/Dropdown.test.js +63 -0
  248. package/lib/__tests__/Dropdown.types.test.d.ts +3 -0
  249. package/lib/__tests__/Dropdown.types.test.js +31 -0
  250. package/lib/__tests__/DropdownMenu.test.d.ts +1 -0
  251. package/lib/__tests__/DropdownMenu.test.js +150 -0
  252. package/lib/__tests__/FilterList.test.d.ts +1 -0
  253. package/lib/__tests__/FilterList.test.js +36 -0
  254. package/lib/__tests__/FilterList.types.test.d.ts +3 -0
  255. package/lib/__tests__/FilterList.types.test.js +27 -0
  256. package/lib/__tests__/FilterListItem.test.d.ts +1 -0
  257. package/lib/__tests__/FilterListItem.test.js +46 -0
  258. package/lib/__tests__/FilteredSearch.test.d.ts +1 -0
  259. package/lib/__tests__/FilteredSearch.test.js +36 -0
  260. package/lib/__tests__/FilteredSearch.types.test.d.ts +3 -0
  261. package/lib/__tests__/FilteredSearch.types.test.js +28 -0
  262. package/lib/__tests__/Flash.test.d.ts +1 -0
  263. package/lib/__tests__/Flash.test.js +62 -0
  264. package/lib/__tests__/Flash.types.test.d.ts +3 -0
  265. package/lib/__tests__/Flash.types.test.js +28 -0
  266. package/lib/__tests__/Flex.test.d.ts +1 -0
  267. package/lib/__tests__/Flex.test.js +74 -0
  268. package/lib/__tests__/FormGroup.test.d.ts +1 -0
  269. package/lib/__tests__/FormGroup.test.js +54 -0
  270. package/lib/__tests__/FormGroup.types.test.d.ts +3 -0
  271. package/lib/__tests__/FormGroup.types.test.js +28 -0
  272. package/lib/__tests__/Grid.test.d.ts +1 -0
  273. package/lib/__tests__/Grid.test.js +104 -0
  274. package/lib/__tests__/Header.test.d.ts +1 -0
  275. package/lib/__tests__/Header.test.js +58 -0
  276. package/lib/__tests__/Header.types.test.d.ts +3 -0
  277. package/lib/__tests__/Header.types.test.js +29 -0
  278. package/lib/__tests__/Heading.test.d.ts +1 -0
  279. package/lib/__tests__/Heading.test.js +142 -0
  280. package/lib/__tests__/Heading.types.test.d.ts +3 -0
  281. package/lib/__tests__/Heading.types.test.js +28 -0
  282. package/lib/__tests__/KeyPaths.types.test.d.ts +11 -0
  283. package/lib/__tests__/KeyPaths.types.test.js +10 -0
  284. package/lib/__tests__/Label.test.d.ts +1 -0
  285. package/lib/__tests__/Label.test.js +46 -0
  286. package/lib/__tests__/Label.types.test.d.ts +3 -0
  287. package/lib/__tests__/Label.types.test.js +28 -0
  288. package/lib/__tests__/LabelGroup.test.d.ts +1 -0
  289. package/lib/__tests__/LabelGroup.test.js +38 -0
  290. package/lib/__tests__/LabelGroup.types.test.d.ts +3 -0
  291. package/lib/__tests__/LabelGroup.types.test.js +28 -0
  292. package/lib/__tests__/Link.test.d.ts +1 -0
  293. package/lib/__tests__/Link.test.js +76 -0
  294. package/lib/__tests__/Link.types.test.d.ts +3 -0
  295. package/lib/__tests__/Link.types.test.js +28 -0
  296. package/lib/__tests__/Merge.types.test.d.ts +30 -0
  297. package/lib/__tests__/Merge.types.test.js +27 -0
  298. package/lib/__tests__/NewButton.test.d.ts +1 -0
  299. package/lib/__tests__/NewButton.test.js +95 -0
  300. package/lib/__tests__/Overlay.test.d.ts +1 -0
  301. package/lib/__tests__/Overlay.test.js +145 -0
  302. package/lib/__tests__/Overlay.types.test.d.ts +6 -0
  303. package/lib/__tests__/Overlay.types.test.js +73 -0
  304. package/lib/__tests__/Pagehead.test.d.ts +1 -0
  305. package/lib/__tests__/Pagehead.test.js +37 -0
  306. package/lib/__tests__/Pagehead.types.test.d.ts +3 -0
  307. package/lib/__tests__/Pagehead.types.test.js +28 -0
  308. package/lib/__tests__/Pagination/Pagination.test.d.ts +1 -0
  309. package/lib/__tests__/Pagination/Pagination.test.js +47 -0
  310. package/lib/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  311. package/lib/__tests__/Pagination/PaginationModel.test.js +186 -0
  312. package/lib/__tests__/Pagination.types.test.d.ts +3 -0
  313. package/lib/__tests__/Pagination.types.test.js +33 -0
  314. package/lib/__tests__/PointerBox.test.d.ts +1 -0
  315. package/lib/__tests__/PointerBox.test.js +46 -0
  316. package/lib/__tests__/Popover.test.d.ts +1 -0
  317. package/lib/__tests__/Popover.test.js +66 -0
  318. package/lib/__tests__/Popover.types.test.d.ts +3 -0
  319. package/lib/__tests__/Popover.types.test.js +27 -0
  320. package/lib/__tests__/Portal.test.d.ts +1 -0
  321. package/lib/__tests__/Portal.test.js +124 -0
  322. package/lib/__tests__/Position.test.d.ts +1 -0
  323. package/lib/__tests__/Position.test.js +143 -0
  324. package/lib/__tests__/ProgressBar.test.d.ts +1 -0
  325. package/lib/__tests__/ProgressBar.test.js +68 -0
  326. package/lib/__tests__/SelectMenu.test.d.ts +1 -0
  327. package/lib/__tests__/SelectMenu.test.js +155 -0
  328. package/lib/__tests__/SelectMenu.types.test.d.ts +3 -0
  329. package/lib/__tests__/SelectMenu.types.test.js +47 -0
  330. package/lib/__tests__/SelectPanel.test.d.ts +1 -0
  331. package/lib/__tests__/SelectPanel.test.js +80 -0
  332. package/lib/__tests__/SelectPanel.types.test.d.ts +3 -0
  333. package/lib/__tests__/SelectPanel.types.test.js +44 -0
  334. package/lib/__tests__/SideNav.test.d.ts +1 -0
  335. package/lib/__tests__/SideNav.test.js +71 -0
  336. package/lib/__tests__/SideNav.types.test.d.ts +3 -0
  337. package/lib/__tests__/SideNav.types.test.js +28 -0
  338. package/lib/__tests__/Spinner.test.d.ts +1 -0
  339. package/lib/__tests__/Spinner.test.js +53 -0
  340. package/lib/__tests__/StateLabel.test.d.ts +1 -0
  341. package/lib/__tests__/StateLabel.test.js +71 -0
  342. package/lib/__tests__/StateLabel.types.test.d.ts +3 -0
  343. package/lib/__tests__/StateLabel.types.test.js +28 -0
  344. package/lib/__tests__/StyledOcticon.test.d.ts +1 -0
  345. package/lib/__tests__/StyledOcticon.test.js +40 -0
  346. package/lib/__tests__/StyledOcticon.types.test.d.ts +3 -0
  347. package/lib/__tests__/StyledOcticon.types.test.js +32 -0
  348. package/lib/__tests__/SubNav.test.d.ts +1 -0
  349. package/lib/__tests__/SubNav.test.js +62 -0
  350. package/lib/__tests__/SubNav.types.test.d.ts +3 -0
  351. package/lib/__tests__/SubNav.types.test.js +27 -0
  352. package/lib/__tests__/SubNavLink.test.d.ts +1 -0
  353. package/lib/__tests__/SubNavLink.test.js +49 -0
  354. package/lib/__tests__/TabNav.test.d.ts +1 -0
  355. package/lib/__tests__/TabNav.test.js +49 -0
  356. package/lib/__tests__/TabNav.types.test.d.ts +3 -0
  357. package/lib/__tests__/TabNav.types.test.js +25 -0
  358. package/lib/__tests__/Text.test.d.ts +1 -0
  359. package/lib/__tests__/Text.test.js +105 -0
  360. package/lib/__tests__/TextInput.test.d.ts +1 -0
  361. package/lib/__tests__/TextInput.test.js +78 -0
  362. package/lib/__tests__/TextInputWithTokens.test.d.ts +1 -0
  363. package/lib/__tests__/TextInputWithTokens.test.js +572 -0
  364. package/lib/__tests__/ThemeProvider.test.d.ts +1 -0
  365. package/lib/__tests__/ThemeProvider.test.js +444 -0
  366. package/lib/__tests__/Timeline.test.d.ts +1 -0
  367. package/lib/__tests__/Timeline.test.js +75 -0
  368. package/lib/__tests__/Timeline.types.test.d.ts +3 -0
  369. package/lib/__tests__/Timeline.types.test.js +31 -0
  370. package/lib/__tests__/Token.test.d.ts +1 -0
  371. package/lib/__tests__/Token.test.js +180 -0
  372. package/lib/__tests__/Tooltip.test.d.ts +1 -0
  373. package/lib/__tests__/Tooltip.test.js +69 -0
  374. package/lib/__tests__/Tooltip.types.test.d.ts +3 -0
  375. package/lib/__tests__/Tooltip.types.test.js +28 -0
  376. package/lib/__tests__/Truncate.test.d.ts +1 -0
  377. package/lib/__tests__/Truncate.test.js +63 -0
  378. package/lib/__tests__/Truncate.types.test.d.ts +3 -0
  379. package/lib/__tests__/Truncate.types.test.js +31 -0
  380. package/lib/__tests__/UnderlineNav.test.d.ts +1 -0
  381. package/lib/__tests__/UnderlineNav.test.js +72 -0
  382. package/lib/__tests__/UnderlineNav.types.test.d.ts +3 -0
  383. package/lib/__tests__/UnderlineNav.types.test.js +25 -0
  384. package/lib/__tests__/UnderlineNavLink.test.d.ts +1 -0
  385. package/lib/__tests__/UnderlineNavLink.test.js +51 -0
  386. package/lib/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  387. package/lib/__tests__/behaviors/anchoredPosition.test.js +390 -0
  388. package/lib/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  389. package/lib/__tests__/behaviors/focusTrap.test.js +234 -0
  390. package/lib/__tests__/behaviors/focusZone.test.d.ts +1 -0
  391. package/lib/__tests__/behaviors/focusZone.test.js +570 -0
  392. package/lib/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  393. package/lib/__tests__/behaviors/iterateFocusableElements.test.js +55 -0
  394. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  395. package/lib/__tests__/behaviors/scrollIntoViewingArea.test.js +226 -0
  396. package/lib/__tests__/filterObject.test.d.ts +1 -0
  397. package/lib/__tests__/filterObject.test.js +30 -0
  398. package/lib/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  399. package/lib/__tests__/hooks/useAnchoredPosition.test.js +54 -0
  400. package/lib/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  401. package/lib/__tests__/hooks/useOnEscapePress.test.js +32 -0
  402. package/lib/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  403. package/lib/__tests__/hooks/useOnOutsideClick.test.js +87 -0
  404. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  405. package/lib/__tests__/hooks/useOpenAndCloseFocus.test.js +60 -0
  406. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  407. package/lib/__tests__/hooks/useProvidedStateOrCreate.test.js +45 -0
  408. package/lib/__tests__/theme.test.d.ts +1 -0
  409. package/lib/__tests__/theme.test.js +36 -0
  410. package/lib/__tests__/themeGet.test.d.ts +1 -0
  411. package/lib/__tests__/themeGet.test.js +25 -0
  412. package/lib/__tests__/themePreval.test.d.ts +1 -0
  413. package/lib/__tests__/themePreval.test.js +14 -0
  414. package/lib/__tests__/useSafeTimeout.test.d.ts +1 -0
  415. package/lib/__tests__/useSafeTimeout.test.js +45 -0
  416. package/lib/__tests__/utils/createSlots.test.d.ts +1 -0
  417. package/lib/__tests__/utils/createSlots.test.js +75 -0
  418. package/lib/drafts.d.ts +1 -0
  419. package/lib/drafts.js +13 -0
  420. package/lib/stories/ActionList.stories.js +454 -0
  421. package/lib/stories/ActionList2.stories.js +923 -0
  422. package/lib/stories/ActionMenu.stories.js +348 -0
  423. package/lib/stories/ActionMenu2.stories.js +433 -0
  424. package/lib/stories/AnchoredOverlay.stories.js +127 -0
  425. package/lib/stories/Autocomplete.stories.js +619 -0
  426. package/lib/stories/AvatarStack.stories.js +49 -0
  427. package/lib/stories/Button.stories.js +125 -0
  428. package/lib/stories/Checkbox.stories.js +227 -0
  429. package/lib/stories/ConfirmationDialog.stories.js +119 -0
  430. package/lib/stories/Dialog.stories.js +269 -0
  431. package/lib/stories/DropdownMenu.stories.js +122 -0
  432. package/lib/stories/IssueLabelToken.stories.js +165 -0
  433. package/lib/stories/NewButton.stories.js +230 -0
  434. package/lib/stories/Overlay.stories.js +204 -0
  435. package/lib/stories/Portal.stories.js +104 -0
  436. package/lib/stories/ProfileToken.stories.js +162 -0
  437. package/lib/stories/SelectPanel.stories.js +399 -0
  438. package/lib/stories/TextInput.stories.js +144 -0
  439. package/lib/stories/TextInputWithTokens.stories.js +252 -0
  440. package/lib/stories/ThemeProvider.stories.js +102 -0
  441. package/lib/stories/Token.stories.js +176 -0
  442. package/lib/stories/useAnchoredPosition.stories.js +351 -0
  443. package/lib/stories/useFocusTrap.stories.js +360 -0
  444. package/lib/stories/useFocusZone.stories.js +607 -0
  445. package/lib/utils/testing.d.ts +1 -0
  446. package/lib/utils/testing.js +29 -0
  447. package/lib-esm/ActionList/Item.js +3 -3
  448. package/lib-esm/ActionList2/Divider.d.ts +3 -2
  449. package/lib-esm/ActionList2/Divider.js +8 -5
  450. package/lib-esm/ActionList2/Item.js +22 -6
  451. package/lib-esm/ActionList2/List.js +8 -1
  452. package/lib-esm/ActionList2/MenuContext.d.ts +10 -0
  453. package/lib-esm/ActionList2/MenuContext.js +3 -0
  454. package/lib-esm/ActionList2/Selection.js +12 -1
  455. package/lib-esm/ActionList2/index.d.ts +1 -2
  456. package/lib-esm/ActionMenu2.d.ts +310 -0
  457. package/lib-esm/ActionMenu2.js +67 -0
  458. package/lib-esm/Autocomplete/Autocomplete.d.ts +1 -0
  459. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -0
  460. package/lib-esm/Avatar.d.ts +1 -2
  461. package/lib-esm/Avatar.js +2 -2
  462. package/lib-esm/BranchName.d.ts +1 -2
  463. package/lib-esm/BranchName.js +2 -2
  464. package/lib-esm/Button/Button.d.ts +1 -0
  465. package/lib-esm/Button/ButtonClose.d.ts +2 -1
  466. package/lib-esm/Button/ButtonDanger.d.ts +1 -0
  467. package/lib-esm/Button/ButtonInvisible.d.ts +1 -0
  468. package/lib-esm/Button/ButtonOutline.d.ts +1 -0
  469. package/lib-esm/Button/ButtonPrimary.d.ts +1 -0
  470. package/lib-esm/CircleOcticon.d.ts +1 -0
  471. package/lib-esm/Details.d.ts +1 -2
  472. package/lib-esm/Details.js +1 -2
  473. package/lib-esm/Dialog.d.ts +3 -2
  474. package/lib-esm/Dropdown.d.ts +6 -66
  475. package/lib-esm/DropdownMenu/DropdownButton.d.ts +2 -1
  476. package/lib-esm/FilterList.d.ts +1 -0
  477. package/lib-esm/Heading.d.ts +1 -2
  478. package/lib-esm/Heading.js +2 -6
  479. package/lib-esm/Position.d.ts +4 -4
  480. package/lib-esm/ProgressBar.d.ts +16 -11
  481. package/lib-esm/ProgressBar.js +7 -11
  482. package/lib-esm/SelectMenu/SelectMenu.d.ts +10 -4
  483. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  484. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  485. package/lib-esm/Spinner.d.ts +1 -2
  486. package/lib-esm/Spinner.js +1 -2
  487. package/lib-esm/TextInputWithTokens.d.ts +1 -0
  488. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  489. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  490. package/lib-esm/Token/Token.d.ts +1 -1
  491. package/lib-esm/__tests__/ActionList.test.d.ts +1 -0
  492. package/lib-esm/__tests__/ActionList.test.js +57 -0
  493. package/lib-esm/__tests__/ActionList.types.test.d.ts +6 -0
  494. package/lib-esm/__tests__/ActionList.types.test.js +45 -0
  495. package/lib-esm/__tests__/ActionList2.test.d.ts +2 -0
  496. package/lib-esm/__tests__/ActionList2.test.js +144 -0
  497. package/lib-esm/__tests__/ActionMenu.test.d.ts +1 -0
  498. package/lib-esm/__tests__/ActionMenu.test.js +139 -0
  499. package/lib-esm/__tests__/AnchoredOverlay.test.d.ts +1 -0
  500. package/lib-esm/__tests__/AnchoredOverlay.test.js +136 -0
  501. package/lib-esm/__tests__/Autocomplete.test.d.ts +1 -0
  502. package/lib-esm/__tests__/Autocomplete.test.js +494 -0
  503. package/lib-esm/__tests__/Avatar.test.d.ts +1 -0
  504. package/lib-esm/__tests__/Avatar.test.js +58 -0
  505. package/lib-esm/__tests__/Avatar.types.test.d.ts +3 -0
  506. package/lib-esm/__tests__/Avatar.types.test.js +16 -0
  507. package/lib-esm/__tests__/AvatarStack.test.d.ts +1 -0
  508. package/lib-esm/__tests__/AvatarStack.test.js +58 -0
  509. package/lib-esm/__tests__/BorderBox.test.d.ts +1 -0
  510. package/lib-esm/__tests__/BorderBox.test.js +47 -0
  511. package/lib-esm/__tests__/Box.test.d.ts +1 -0
  512. package/lib-esm/__tests__/Box.test.js +67 -0
  513. package/lib-esm/__tests__/BranchName.test.d.ts +1 -0
  514. package/lib-esm/__tests__/BranchName.test.js +26 -0
  515. package/lib-esm/__tests__/BranchName.types.test.d.ts +3 -0
  516. package/lib-esm/__tests__/BranchName.types.test.js +13 -0
  517. package/lib-esm/__tests__/Breadcrumbs.test.d.ts +1 -0
  518. package/lib-esm/__tests__/Breadcrumbs.test.js +30 -0
  519. package/lib-esm/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  520. package/lib-esm/__tests__/Breadcrumbs.types.test.js +12 -0
  521. package/lib-esm/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  522. package/lib-esm/__tests__/BreadcrumbsItem.test.js +39 -0
  523. package/lib-esm/__tests__/Button.test.d.ts +1 -0
  524. package/lib-esm/__tests__/Button.test.js +137 -0
  525. package/lib-esm/__tests__/Caret.test.d.ts +1 -0
  526. package/lib-esm/__tests__/Caret.test.js +42 -0
  527. package/lib-esm/__tests__/Checkbox.test.d.ts +2 -0
  528. package/lib-esm/__tests__/Checkbox.test.js +169 -0
  529. package/lib-esm/__tests__/CircleBadge.test.d.ts +1 -0
  530. package/lib-esm/__tests__/CircleBadge.test.js +70 -0
  531. package/lib-esm/__tests__/CircleBadge.types.test.d.ts +3 -0
  532. package/lib-esm/__tests__/CircleBadge.types.test.js +13 -0
  533. package/lib-esm/__tests__/CircleOcticon.test.d.ts +1 -0
  534. package/lib-esm/__tests__/CircleOcticon.test.js +59 -0
  535. package/lib-esm/__tests__/ConfirmationDialog.test.d.ts +1 -0
  536. package/lib-esm/__tests__/ConfirmationDialog.test.js +113 -0
  537. package/lib-esm/__tests__/CounterLabel.test.d.ts +1 -0
  538. package/lib-esm/__tests__/CounterLabel.test.js +47 -0
  539. package/lib-esm/__tests__/CounterLabel.types.test.d.ts +3 -0
  540. package/lib-esm/__tests__/CounterLabel.types.test.js +13 -0
  541. package/lib-esm/__tests__/Details.test.d.ts +1 -0
  542. package/lib-esm/__tests__/Details.test.js +107 -0
  543. package/lib-esm/__tests__/Details.types.test.d.ts +3 -0
  544. package/lib-esm/__tests__/Details.types.test.js +13 -0
  545. package/lib-esm/__tests__/Dialog.test.d.ts +1 -0
  546. package/lib-esm/__tests__/Dialog.test.js +171 -0
  547. package/lib-esm/__tests__/Dialog.types.test.d.ts +3 -0
  548. package/lib-esm/__tests__/Dialog.types.test.js +13 -0
  549. package/lib-esm/__tests__/Dialog2.types.test.d.ts +3 -0
  550. package/lib-esm/__tests__/Dialog2.types.test.js +16 -0
  551. package/lib-esm/__tests__/Dropdown.test.d.ts +1 -0
  552. package/lib-esm/__tests__/Dropdown.test.js +53 -0
  553. package/lib-esm/__tests__/Dropdown.types.test.d.ts +3 -0
  554. package/lib-esm/__tests__/Dropdown.types.test.js +17 -0
  555. package/lib-esm/__tests__/DropdownMenu.test.d.ts +1 -0
  556. package/lib-esm/__tests__/DropdownMenu.test.js +137 -0
  557. package/lib-esm/__tests__/FilterList.test.d.ts +1 -0
  558. package/lib-esm/__tests__/FilterList.test.js +26 -0
  559. package/lib-esm/__tests__/FilterList.types.test.d.ts +3 -0
  560. package/lib-esm/__tests__/FilterList.types.test.js +13 -0
  561. package/lib-esm/__tests__/FilterListItem.test.d.ts +1 -0
  562. package/lib-esm/__tests__/FilterListItem.test.js +36 -0
  563. package/lib-esm/__tests__/FilteredSearch.test.d.ts +1 -0
  564. package/lib-esm/__tests__/FilteredSearch.test.js +26 -0
  565. package/lib-esm/__tests__/FilteredSearch.types.test.d.ts +3 -0
  566. package/lib-esm/__tests__/FilteredSearch.types.test.js +13 -0
  567. package/lib-esm/__tests__/Flash.test.d.ts +1 -0
  568. package/lib-esm/__tests__/Flash.test.js +51 -0
  569. package/lib-esm/__tests__/Flash.types.test.d.ts +3 -0
  570. package/lib-esm/__tests__/Flash.types.test.js +13 -0
  571. package/lib-esm/__tests__/Flex.test.d.ts +1 -0
  572. package/lib-esm/__tests__/Flex.test.js +64 -0
  573. package/lib-esm/__tests__/FormGroup.test.d.ts +1 -0
  574. package/lib-esm/__tests__/FormGroup.test.js +44 -0
  575. package/lib-esm/__tests__/FormGroup.types.test.d.ts +3 -0
  576. package/lib-esm/__tests__/FormGroup.types.test.js +13 -0
  577. package/lib-esm/__tests__/Grid.test.d.ts +1 -0
  578. package/lib-esm/__tests__/Grid.test.js +94 -0
  579. package/lib-esm/__tests__/Header.test.d.ts +1 -0
  580. package/lib-esm/__tests__/Header.test.js +48 -0
  581. package/lib-esm/__tests__/Header.types.test.d.ts +3 -0
  582. package/lib-esm/__tests__/Header.types.test.js +15 -0
  583. package/lib-esm/__tests__/Heading.test.d.ts +1 -0
  584. package/lib-esm/__tests__/Heading.test.js +131 -0
  585. package/lib-esm/__tests__/Heading.types.test.d.ts +3 -0
  586. package/lib-esm/__tests__/Heading.types.test.js +13 -0
  587. package/lib-esm/__tests__/KeyPaths.types.test.d.ts +11 -0
  588. package/lib-esm/__tests__/KeyPaths.types.test.js +3 -0
  589. package/lib-esm/__tests__/Label.test.d.ts +1 -0
  590. package/lib-esm/__tests__/Label.test.js +36 -0
  591. package/lib-esm/__tests__/Label.types.test.d.ts +3 -0
  592. package/lib-esm/__tests__/Label.types.test.js +13 -0
  593. package/lib-esm/__tests__/LabelGroup.test.d.ts +1 -0
  594. package/lib-esm/__tests__/LabelGroup.test.js +26 -0
  595. package/lib-esm/__tests__/LabelGroup.types.test.d.ts +3 -0
  596. package/lib-esm/__tests__/LabelGroup.types.test.js +13 -0
  597. package/lib-esm/__tests__/Link.test.d.ts +1 -0
  598. package/lib-esm/__tests__/Link.test.js +66 -0
  599. package/lib-esm/__tests__/Link.types.test.d.ts +3 -0
  600. package/lib-esm/__tests__/Link.types.test.js +13 -0
  601. package/lib-esm/__tests__/Merge.types.test.d.ts +30 -0
  602. package/lib-esm/__tests__/Merge.types.test.js +14 -0
  603. package/lib-esm/__tests__/NewButton.test.d.ts +1 -0
  604. package/lib-esm/__tests__/NewButton.test.js +84 -0
  605. package/lib-esm/__tests__/Overlay.test.d.ts +1 -0
  606. package/lib-esm/__tests__/Overlay.test.js +123 -0
  607. package/lib-esm/__tests__/Overlay.types.test.d.ts +6 -0
  608. package/lib-esm/__tests__/Overlay.types.test.js +49 -0
  609. package/lib-esm/__tests__/Pagehead.test.d.ts +1 -0
  610. package/lib-esm/__tests__/Pagehead.test.js +26 -0
  611. package/lib-esm/__tests__/Pagehead.types.test.d.ts +3 -0
  612. package/lib-esm/__tests__/Pagehead.types.test.js +13 -0
  613. package/lib-esm/__tests__/Pagination/Pagination.test.d.ts +1 -0
  614. package/lib-esm/__tests__/Pagination/Pagination.test.js +35 -0
  615. package/lib-esm/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  616. package/lib-esm/__tests__/Pagination/PaginationModel.test.js +182 -0
  617. package/lib-esm/__tests__/Pagination.types.test.d.ts +3 -0
  618. package/lib-esm/__tests__/Pagination.types.test.js +18 -0
  619. package/lib-esm/__tests__/PointerBox.test.d.ts +1 -0
  620. package/lib-esm/__tests__/PointerBox.test.js +36 -0
  621. package/lib-esm/__tests__/Popover.test.d.ts +1 -0
  622. package/lib-esm/__tests__/Popover.test.js +53 -0
  623. package/lib-esm/__tests__/Popover.types.test.d.ts +3 -0
  624. package/lib-esm/__tests__/Popover.types.test.js +13 -0
  625. package/lib-esm/__tests__/Portal.test.d.ts +1 -0
  626. package/lib-esm/__tests__/Portal.test.js +104 -0
  627. package/lib-esm/__tests__/Position.test.d.ts +1 -0
  628. package/lib-esm/__tests__/Position.test.js +133 -0
  629. package/lib-esm/__tests__/ProgressBar.test.d.ts +1 -0
  630. package/lib-esm/__tests__/ProgressBar.test.js +58 -0
  631. package/lib-esm/__tests__/SelectMenu.test.d.ts +1 -0
  632. package/lib-esm/__tests__/SelectMenu.test.js +145 -0
  633. package/lib-esm/__tests__/SelectMenu.types.test.d.ts +3 -0
  634. package/lib-esm/__tests__/SelectMenu.types.test.js +33 -0
  635. package/lib-esm/__tests__/SelectPanel.test.d.ts +1 -0
  636. package/lib-esm/__tests__/SelectPanel.test.js +65 -0
  637. package/lib-esm/__tests__/SelectPanel.types.test.d.ts +3 -0
  638. package/lib-esm/__tests__/SelectPanel.types.test.js +29 -0
  639. package/lib-esm/__tests__/SideNav.test.d.ts +1 -0
  640. package/lib-esm/__tests__/SideNav.test.js +60 -0
  641. package/lib-esm/__tests__/SideNav.types.test.d.ts +3 -0
  642. package/lib-esm/__tests__/SideNav.types.test.js +13 -0
  643. package/lib-esm/__tests__/Spinner.test.d.ts +1 -0
  644. package/lib-esm/__tests__/Spinner.test.js +43 -0
  645. package/lib-esm/__tests__/StateLabel.test.d.ts +1 -0
  646. package/lib-esm/__tests__/StateLabel.test.js +61 -0
  647. package/lib-esm/__tests__/StateLabel.types.test.d.ts +3 -0
  648. package/lib-esm/__tests__/StateLabel.types.test.js +13 -0
  649. package/lib-esm/__tests__/StyledOcticon.test.d.ts +1 -0
  650. package/lib-esm/__tests__/StyledOcticon.test.js +29 -0
  651. package/lib-esm/__tests__/StyledOcticon.types.test.d.ts +3 -0
  652. package/lib-esm/__tests__/StyledOcticon.types.test.js +16 -0
  653. package/lib-esm/__tests__/SubNav.test.d.ts +1 -0
  654. package/lib-esm/__tests__/SubNav.test.js +50 -0
  655. package/lib-esm/__tests__/SubNav.types.test.d.ts +3 -0
  656. package/lib-esm/__tests__/SubNav.types.test.js +14 -0
  657. package/lib-esm/__tests__/SubNavLink.test.d.ts +1 -0
  658. package/lib-esm/__tests__/SubNavLink.test.js +39 -0
  659. package/lib-esm/__tests__/TabNav.test.d.ts +1 -0
  660. package/lib-esm/__tests__/TabNav.test.js +39 -0
  661. package/lib-esm/__tests__/TabNav.types.test.d.ts +3 -0
  662. package/lib-esm/__tests__/TabNav.types.test.js +12 -0
  663. package/lib-esm/__tests__/Text.test.d.ts +1 -0
  664. package/lib-esm/__tests__/Text.test.js +93 -0
  665. package/lib-esm/__tests__/TextInput.test.d.ts +1 -0
  666. package/lib-esm/__tests__/TextInput.test.js +68 -0
  667. package/lib-esm/__tests__/TextInputWithTokens.test.d.ts +1 -0
  668. package/lib-esm/__tests__/TextInputWithTokens.test.js +511 -0
  669. package/lib-esm/__tests__/ThemeProvider.test.d.ts +1 -0
  670. package/lib-esm/__tests__/ThemeProvider.test.js +408 -0
  671. package/lib-esm/__tests__/Timeline.test.d.ts +1 -0
  672. package/lib-esm/__tests__/Timeline.test.js +65 -0
  673. package/lib-esm/__tests__/Timeline.types.test.d.ts +3 -0
  674. package/lib-esm/__tests__/Timeline.types.test.js +18 -0
  675. package/lib-esm/__tests__/Token.test.d.ts +1 -0
  676. package/lib-esm/__tests__/Token.test.js +166 -0
  677. package/lib-esm/__tests__/Tooltip.test.d.ts +1 -0
  678. package/lib-esm/__tests__/Tooltip.test.js +59 -0
  679. package/lib-esm/__tests__/Tooltip.types.test.d.ts +3 -0
  680. package/lib-esm/__tests__/Tooltip.types.test.js +13 -0
  681. package/lib-esm/__tests__/Truncate.test.d.ts +1 -0
  682. package/lib-esm/__tests__/Truncate.test.js +53 -0
  683. package/lib-esm/__tests__/Truncate.types.test.d.ts +3 -0
  684. package/lib-esm/__tests__/Truncate.types.test.js +16 -0
  685. package/lib-esm/__tests__/UnderlineNav.test.d.ts +1 -0
  686. package/lib-esm/__tests__/UnderlineNav.test.js +60 -0
  687. package/lib-esm/__tests__/UnderlineNav.types.test.d.ts +3 -0
  688. package/lib-esm/__tests__/UnderlineNav.types.test.js +12 -0
  689. package/lib-esm/__tests__/UnderlineNavLink.test.d.ts +1 -0
  690. package/lib-esm/__tests__/UnderlineNavLink.test.js +41 -0
  691. package/lib-esm/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  692. package/lib-esm/__tests__/behaviors/anchoredPosition.test.js +388 -0
  693. package/lib-esm/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  694. package/lib-esm/__tests__/behaviors/focusTrap.test.js +227 -0
  695. package/lib-esm/__tests__/behaviors/focusZone.test.d.ts +1 -0
  696. package/lib-esm/__tests__/behaviors/focusZone.test.js +487 -0
  697. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  698. package/lib-esm/__tests__/behaviors/iterateFocusableElements.test.js +48 -0
  699. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  700. package/lib-esm/__tests__/behaviors/scrollIntoViewingArea.test.js +224 -0
  701. package/lib-esm/__tests__/filterObject.test.d.ts +1 -0
  702. package/lib-esm/__tests__/filterObject.test.js +27 -0
  703. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  704. package/lib-esm/__tests__/hooks/useAnchoredPosition.test.js +46 -0
  705. package/lib-esm/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  706. package/lib-esm/__tests__/hooks/useOnEscapePress.test.js +23 -0
  707. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  708. package/lib-esm/__tests__/hooks/useOnOutsideClick.test.js +68 -0
  709. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  710. package/lib-esm/__tests__/hooks/useOpenAndCloseFocus.test.js +52 -0
  711. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  712. package/lib-esm/__tests__/hooks/useProvidedStateOrCreate.test.js +36 -0
  713. package/lib-esm/__tests__/theme.test.d.ts +1 -0
  714. package/lib-esm/__tests__/theme.test.js +33 -0
  715. package/lib-esm/__tests__/themeGet.test.d.ts +1 -0
  716. package/lib-esm/__tests__/themeGet.test.js +22 -0
  717. package/lib-esm/__tests__/themePreval.test.d.ts +1 -0
  718. package/lib-esm/__tests__/themePreval.test.js +7 -0
  719. package/lib-esm/__tests__/useSafeTimeout.test.d.ts +1 -0
  720. package/lib-esm/__tests__/useSafeTimeout.test.js +39 -0
  721. package/lib-esm/__tests__/utils/createSlots.test.d.ts +1 -0
  722. package/lib-esm/__tests__/utils/createSlots.test.js +67 -0
  723. package/lib-esm/drafts.d.ts +1 -0
  724. package/lib-esm/drafts.js +2 -1
  725. package/lib-esm/stories/ActionList.stories.js +395 -0
  726. package/lib-esm/stories/ActionList2.stories.js +811 -0
  727. package/lib-esm/stories/ActionMenu.stories.js +303 -0
  728. package/lib-esm/stories/ActionMenu2.stories.js +376 -0
  729. package/lib-esm/stories/AnchoredOverlay.stories.js +101 -0
  730. package/lib-esm/stories/Autocomplete.stories.js +560 -0
  731. package/lib-esm/stories/AvatarStack.stories.js +32 -0
  732. package/lib-esm/stories/Button.stories.js +86 -0
  733. package/lib-esm/stories/Checkbox.stories.js +197 -0
  734. package/lib-esm/stories/ConfirmationDialog.stories.js +94 -0
  735. package/lib-esm/stories/Dialog.stories.js +244 -0
  736. package/lib-esm/stories/DropdownMenu.stories.js +94 -0
  737. package/lib-esm/stories/IssueLabelToken.stories.js +139 -0
  738. package/lib-esm/stories/NewButton.stories.js +178 -0
  739. package/lib-esm/stories/Overlay.stories.js +173 -0
  740. package/lib-esm/stories/Portal.stories.js +68 -0
  741. package/lib-esm/stories/ProfileToken.stories.js +136 -0
  742. package/lib-esm/stories/SelectPanel.stories.js +334 -0
  743. package/lib-esm/stories/TextInput.stories.js +117 -0
  744. package/lib-esm/stories/TextInputWithTokens.stories.js +210 -0
  745. package/lib-esm/stories/ThemeProvider.stories.js +83 -0
  746. package/lib-esm/stories/Token.stories.js +146 -0
  747. package/lib-esm/stories/useAnchoredPosition.stories.js +313 -0
  748. package/lib-esm/stories/useFocusTrap.stories.js +313 -0
  749. package/lib-esm/stories/useFocusZone.stories.js +562 -0
  750. package/lib-esm/utils/testing.d.ts +1 -0
  751. package/lib-esm/utils/testing.js +24 -0
  752. package/migrating.md +250 -0
  753. package/now.json +17 -0
  754. package/package-lock.json +66668 -0
  755. package/package.json +2 -2
  756. package/rollup.config.js +36 -0
  757. package/script/build +21 -0
  758. package/script/build-storybook +10 -0
  759. package/script/setup +12 -0
  760. package/src/ActionList/Divider.tsx +25 -0
  761. package/src/ActionList/Group.tsx +45 -0
  762. package/src/ActionList/Header.tsx +74 -0
  763. package/src/ActionList/Item.tsx +481 -0
  764. package/src/ActionList/List.tsx +258 -0
  765. package/src/ActionList/index.ts +21 -0
  766. package/src/ActionList2/Description.tsx +52 -0
  767. package/src/ActionList2/Divider.tsx +29 -0
  768. package/src/ActionList2/Group.tsx +103 -0
  769. package/src/ActionList2/Item.tsx +257 -0
  770. package/src/ActionList2/LinkItem.tsx +49 -0
  771. package/src/ActionList2/List.tsx +54 -0
  772. package/src/ActionList2/MenuContext.tsx +6 -0
  773. package/src/ActionList2/Selection.tsx +70 -0
  774. package/src/ActionList2/Visuals.tsx +76 -0
  775. package/src/ActionList2/index.ts +39 -0
  776. package/src/ActionMenu.tsx +106 -0
  777. package/src/ActionMenu2.tsx +94 -0
  778. package/src/AnchoredOverlay/AnchoredOverlay.tsx +191 -0
  779. package/src/AnchoredOverlay/index.ts +2 -0
  780. package/src/Autocomplete/Autocomplete.tsx +103 -0
  781. package/src/Autocomplete/AutocompleteContext.tsx +19 -0
  782. package/src/Autocomplete/AutocompleteInput.tsx +179 -0
  783. package/src/Autocomplete/AutocompleteMenu.tsx +341 -0
  784. package/src/Autocomplete/AutocompleteOverlay.tsx +68 -0
  785. package/src/Autocomplete/index.ts +2 -0
  786. package/src/Avatar.tsx +44 -0
  787. package/src/AvatarPair.tsx +35 -0
  788. package/src/AvatarStack.tsx +159 -0
  789. package/src/BaseStyles.tsx +53 -0
  790. package/src/BorderBox.tsx +18 -0
  791. package/src/Box.tsx +54 -0
  792. package/src/BranchName.tsx +19 -0
  793. package/src/Breadcrumbs.tsx +101 -0
  794. package/src/Button/Button.tsx +39 -0
  795. package/src/Button/ButtonBase.tsx +39 -0
  796. package/src/Button/ButtonClose.tsx +36 -0
  797. package/src/Button/ButtonDanger.tsx +42 -0
  798. package/src/Button/ButtonGroup.tsx +55 -0
  799. package/src/Button/ButtonInvisible.tsx +31 -0
  800. package/src/Button/ButtonOutline.tsx +42 -0
  801. package/src/Button/ButtonPrimary.tsx +40 -0
  802. package/src/Button/ButtonStyles.tsx +36 -0
  803. package/src/Button/ButtonTableList.tsx +45 -0
  804. package/src/Button/index.ts +16 -0
  805. package/src/Caret.tsx +133 -0
  806. package/src/Checkbox.tsx +75 -0
  807. package/src/CircleBadge.tsx +53 -0
  808. package/src/CircleOcticon.tsx +37 -0
  809. package/src/CounterLabel.tsx +50 -0
  810. package/src/Details.tsx +19 -0
  811. package/src/Dialog/ConfirmationDialog.tsx +184 -0
  812. package/src/Dialog/Dialog.tsx +444 -0
  813. package/src/Dialog.tsx +145 -0
  814. package/src/Dropdown.tsx +154 -0
  815. package/src/DropdownMenu/DropdownButton.tsx +15 -0
  816. package/src/DropdownMenu/DropdownMenu.tsx +115 -0
  817. package/src/DropdownMenu/index.ts +4 -0
  818. package/src/DropdownStyles.ts +128 -0
  819. package/src/FilterList.tsx +75 -0
  820. package/src/FilteredActionList/FilteredActionList.tsx +142 -0
  821. package/src/FilteredActionList/index.ts +2 -0
  822. package/src/FilteredSearch.tsx +27 -0
  823. package/src/Flash.tsx +75 -0
  824. package/src/Flex.tsx +15 -0
  825. package/src/FormGroup.tsx +24 -0
  826. package/src/Grid.tsx +15 -0
  827. package/src/Header.tsx +74 -0
  828. package/src/Heading.tsx +14 -0
  829. package/src/Label.tsx +72 -0
  830. package/src/LabelGroup.tsx +17 -0
  831. package/src/Link.tsx +42 -0
  832. package/src/NewButton/button-counter.tsx +15 -0
  833. package/src/NewButton/button.tsx +283 -0
  834. package/src/NewButton/index.ts +10 -0
  835. package/src/NewButton/types.ts +36 -0
  836. package/src/Overlay.tsx +203 -0
  837. package/src/Pagehead.tsx +16 -0
  838. package/src/Pagination/Pagination.tsx +212 -0
  839. package/src/Pagination/index.ts +4 -0
  840. package/src/Pagination/model.tsx +187 -0
  841. package/src/PointerBox.tsx +31 -0
  842. package/src/Popover.tsx +225 -0
  843. package/src/Portal/Portal.tsx +97 -0
  844. package/src/Portal/index.ts +5 -0
  845. package/src/Position.tsx +63 -0
  846. package/src/ProgressBar.tsx +53 -0
  847. package/src/SelectMenu/SelectMenu.tsx +123 -0
  848. package/src/SelectMenu/SelectMenuContext.tsx +9 -0
  849. package/src/SelectMenu/SelectMenuDivider.tsx +24 -0
  850. package/src/SelectMenu/SelectMenuFilter.tsx +50 -0
  851. package/src/SelectMenu/SelectMenuFooter.tsx +27 -0
  852. package/src/SelectMenu/SelectMenuHeader.tsx +48 -0
  853. package/src/SelectMenu/SelectMenuItem.tsx +136 -0
  854. package/src/SelectMenu/SelectMenuList.tsx +41 -0
  855. package/src/SelectMenu/SelectMenuLoadingAnimation.tsx +25 -0
  856. package/src/SelectMenu/SelectMenuModal.tsx +119 -0
  857. package/src/SelectMenu/SelectMenuTab.tsx +87 -0
  858. package/src/SelectMenu/SelectMenuTabPanel.tsx +29 -0
  859. package/src/SelectMenu/SelectMenuTabs.tsx +43 -0
  860. package/src/SelectMenu/hooks/useKeyboardNav.js +90 -0
  861. package/src/SelectMenu/index.ts +15 -0
  862. package/src/SelectPanel/SelectPanel.tsx +173 -0
  863. package/src/SelectPanel/index.ts +2 -0
  864. package/src/SideNav.tsx +191 -0
  865. package/src/Spinner.tsx +57 -0
  866. package/src/StateLabel.tsx +112 -0
  867. package/src/StyledOcticon.tsx +22 -0
  868. package/src/SubNav.tsx +124 -0
  869. package/src/TabNav.tsx +73 -0
  870. package/src/Text.tsx +13 -0
  871. package/src/TextInput.tsx +68 -0
  872. package/src/TextInputWithTokens.tsx +351 -0
  873. package/src/ThemeProvider.tsx +176 -0
  874. package/src/Timeline.tsx +140 -0
  875. package/src/Token/AvatarToken.tsx +54 -0
  876. package/src/Token/IssueLabelToken.tsx +150 -0
  877. package/src/Token/Token.tsx +126 -0
  878. package/src/Token/TokenBase.tsx +129 -0
  879. package/src/Token/_RemoveTokenButton.tsx +111 -0
  880. package/src/Token/_TokenTextContainer.tsx +47 -0
  881. package/src/Token/index.ts +3 -0
  882. package/src/Tooltip.tsx +263 -0
  883. package/src/Truncate.tsx +31 -0
  884. package/src/UnderlineNav.tsx +107 -0
  885. package/src/_TextInputWrapper.tsx +113 -0
  886. package/src/_UnstyledTextInput.tsx +19 -0
  887. package/src/__tests__/.eslintrc.json +11 -0
  888. package/src/__tests__/ActionList.test.tsx +53 -0
  889. package/src/__tests__/ActionList.types.test.tsx +51 -0
  890. package/src/__tests__/ActionList2.test.tsx +156 -0
  891. package/src/__tests__/ActionMenu.test.tsx +136 -0
  892. package/src/__tests__/AnchoredOverlay.test.tsx +150 -0
  893. package/src/__tests__/Autocomplete.test.tsx +444 -0
  894. package/src/__tests__/Avatar.test.tsx +44 -0
  895. package/src/__tests__/Avatar.types.test.tsx +11 -0
  896. package/src/__tests__/AvatarStack.test.tsx +48 -0
  897. package/src/__tests__/BorderBox.test.tsx +43 -0
  898. package/src/__tests__/Box.test.tsx +42 -0
  899. package/src/__tests__/BranchName.test.tsx +26 -0
  900. package/src/__tests__/BranchName.types.test.tsx +11 -0
  901. package/src/__tests__/Breadcrumbs.test.tsx +27 -0
  902. package/src/__tests__/Breadcrumbs.types.test.tsx +22 -0
  903. package/src/__tests__/BreadcrumbsItem.test.tsx +31 -0
  904. package/src/__tests__/Button.test.tsx +128 -0
  905. package/src/__tests__/Caret.test.tsx +36 -0
  906. package/src/__tests__/Checkbox.test.tsx +155 -0
  907. package/src/__tests__/CircleBadge.test.tsx +66 -0
  908. package/src/__tests__/CircleBadge.types.test.tsx +11 -0
  909. package/src/__tests__/CircleOcticon.test.tsx +50 -0
  910. package/src/__tests__/ConfirmationDialog.test.tsx +120 -0
  911. package/src/__tests__/CounterLabel.test.tsx +50 -0
  912. package/src/__tests__/CounterLabel.types.test.tsx +11 -0
  913. package/src/__tests__/Details.test.tsx +115 -0
  914. package/src/__tests__/Details.types.test.tsx +11 -0
  915. package/src/__tests__/Dialog.test.tsx +155 -0
  916. package/src/__tests__/Dialog.types.test.tsx +11 -0
  917. package/src/__tests__/Dialog2.types.test.tsx +11 -0
  918. package/src/__tests__/Dropdown.test.tsx +53 -0
  919. package/src/__tests__/Dropdown.types.test.tsx +21 -0
  920. package/src/__tests__/DropdownMenu.test.tsx +136 -0
  921. package/src/__tests__/FilterList.test.tsx +26 -0
  922. package/src/__tests__/FilterList.types.test.tsx +17 -0
  923. package/src/__tests__/FilterListItem.test.tsx +31 -0
  924. package/src/__tests__/FilteredSearch.test.tsx +26 -0
  925. package/src/__tests__/FilteredSearch.types.test.tsx +11 -0
  926. package/src/__tests__/Flash.test.tsx +45 -0
  927. package/src/__tests__/Flash.types.test.tsx +11 -0
  928. package/src/__tests__/Flex.test.tsx +58 -0
  929. package/src/__tests__/FormGroup.test.tsx +38 -0
  930. package/src/__tests__/FormGroup.types.test.tsx +11 -0
  931. package/src/__tests__/Grid.test.tsx +82 -0
  932. package/src/__tests__/Header.test.tsx +49 -0
  933. package/src/__tests__/Header.types.test.tsx +19 -0
  934. package/src/__tests__/Heading.test.tsx +137 -0
  935. package/src/__tests__/Heading.types.test.tsx +11 -0
  936. package/src/__tests__/KeyPaths.types.test.ts +14 -0
  937. package/src/__tests__/Label.test.tsx +34 -0
  938. package/src/__tests__/Label.types.test.tsx +11 -0
  939. package/src/__tests__/LabelGroup.test.tsx +30 -0
  940. package/src/__tests__/LabelGroup.types.test.tsx +11 -0
  941. package/src/__tests__/Link.test.tsx +47 -0
  942. package/src/__tests__/Link.types.test.tsx +11 -0
  943. package/src/__tests__/Merge.types.test.ts +39 -0
  944. package/src/__tests__/NewButton.test.tsx +70 -0
  945. package/src/__tests__/Overlay.test.tsx +103 -0
  946. package/src/__tests__/Overlay.types.test.tsx +33 -0
  947. package/src/__tests__/Pagehead.test.tsx +23 -0
  948. package/src/__tests__/Pagehead.types.test.tsx +11 -0
  949. package/src/__tests__/Pagination/Pagination.test.tsx +30 -0
  950. package/src/__tests__/Pagination/PaginationModel.test.tsx +133 -0
  951. package/src/__tests__/Pagination/__snapshots__/Pagination.test.tsx.snap +184 -0
  952. package/src/__tests__/Pagination.types.test.tsx +11 -0
  953. package/src/__tests__/PointerBox.test.tsx +34 -0
  954. package/src/__tests__/Popover.test.tsx +68 -0
  955. package/src/__tests__/Popover.types.test.tsx +17 -0
  956. package/src/__tests__/Portal.test.tsx +103 -0
  957. package/src/__tests__/Position.test.tsx +117 -0
  958. package/src/__tests__/ProgressBar.test.tsx +40 -0
  959. package/src/__tests__/SelectMenu.test.tsx +142 -0
  960. package/src/__tests__/SelectMenu.types.test.tsx +37 -0
  961. package/src/__tests__/SelectPanel.test.tsx +63 -0
  962. package/src/__tests__/SelectPanel.types.test.tsx +31 -0
  963. package/src/__tests__/SideNav.test.tsx +62 -0
  964. package/src/__tests__/SideNav.types.test.tsx +11 -0
  965. package/src/__tests__/Spinner.test.tsx +42 -0
  966. package/src/__tests__/StateLabel.test.tsx +48 -0
  967. package/src/__tests__/StateLabel.types.test.tsx +11 -0
  968. package/src/__tests__/StyledOcticon.test.tsx +26 -0
  969. package/src/__tests__/StyledOcticon.types.test.tsx +12 -0
  970. package/src/__tests__/SubNav.test.tsx +50 -0
  971. package/src/__tests__/SubNav.types.test.tsx +25 -0
  972. package/src/__tests__/SubNavLink.test.tsx +31 -0
  973. package/src/__tests__/TabNav.test.tsx +32 -0
  974. package/src/__tests__/TabNav.types.test.tsx +22 -0
  975. package/src/__tests__/Text.test.tsx +78 -0
  976. package/src/__tests__/TextInput.test.tsx +49 -0
  977. package/src/__tests__/TextInputWithTokens.test.tsx +422 -0
  978. package/src/__tests__/ThemeProvider.test.tsx +441 -0
  979. package/src/__tests__/Timeline.test.tsx +58 -0
  980. package/src/__tests__/Timeline.types.test.tsx +31 -0
  981. package/src/__tests__/Token.test.tsx +118 -0
  982. package/src/__tests__/Tooltip.test.tsx +52 -0
  983. package/src/__tests__/Tooltip.types.test.tsx +11 -0
  984. package/src/__tests__/Truncate.test.tsx +43 -0
  985. package/src/__tests__/Truncate.types.test.tsx +11 -0
  986. package/src/__tests__/UnderlineNav.test.tsx +58 -0
  987. package/src/__tests__/UnderlineNav.types.test.tsx +22 -0
  988. package/src/__tests__/UnderlineNavLink.test.tsx +31 -0
  989. package/src/__tests__/__snapshots__/ActionList.test.tsx.snap +223 -0
  990. package/src/__tests__/__snapshots__/ActionList2.test.tsx.snap +14 -0
  991. package/src/__tests__/__snapshots__/ActionMenu.test.tsx.snap +80 -0
  992. package/src/__tests__/__snapshots__/AnchoredOverlay.test.tsx.snap +232 -0
  993. package/src/__tests__/__snapshots__/Autocomplete.test.tsx.snap +3901 -0
  994. package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +19 -0
  995. package/src/__tests__/__snapshots__/AvatarStack.test.tsx.snap +377 -0
  996. package/src/__tests__/__snapshots__/BorderBox.test.tsx.snap +14 -0
  997. package/src/__tests__/__snapshots__/Box.test.tsx.snap +201 -0
  998. package/src/__tests__/__snapshots__/BranchName.test.tsx.snap +17 -0
  999. package/src/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +29 -0
  1000. package/src/__tests__/__snapshots__/BreadcrumbsItem.test.tsx.snap +79 -0
  1001. package/src/__tests__/__snapshots__/Button.test.tsx.snap +840 -0
  1002. package/src/__tests__/__snapshots__/Caret.test.tsx.snap +373 -0
  1003. package/src/__tests__/__snapshots__/Checkbox.test.tsx.snap +16 -0
  1004. package/src/__tests__/__snapshots__/CircleBadge.test.tsx.snap +142 -0
  1005. package/src/__tests__/__snapshots__/CircleOcticon.test.tsx.snap +65 -0
  1006. package/src/__tests__/__snapshots__/ConfirmationDialog.test.tsx.snap +89 -0
  1007. package/src/__tests__/__snapshots__/CounterLabel.test.tsx.snap +22 -0
  1008. package/src/__tests__/__snapshots__/Details.test.tsx.snap +15 -0
  1009. package/src/__tests__/__snapshots__/Dialog.test.tsx.snap +201 -0
  1010. package/src/__tests__/__snapshots__/Dropdown.test.tsx.snap +249 -0
  1011. package/src/__tests__/__snapshots__/DropdownMenu.test.tsx.snap +107 -0
  1012. package/src/__tests__/__snapshots__/FilterList.test.tsx.snap +13 -0
  1013. package/src/__tests__/__snapshots__/FilterListItem.test.tsx.snap +80 -0
  1014. package/src/__tests__/__snapshots__/FilteredSearch.test.tsx.snap +32 -0
  1015. package/src/__tests__/__snapshots__/Flash.test.tsx.snap +32 -0
  1016. package/src/__tests__/__snapshots__/Flex.test.tsx.snap +130 -0
  1017. package/src/__tests__/__snapshots__/FormGroup.test.tsx.snap +25 -0
  1018. package/src/__tests__/__snapshots__/Grid.test.tsx.snap +178 -0
  1019. package/src/__tests__/__snapshots__/Header.test.tsx.snap +79 -0
  1020. package/src/__tests__/__snapshots__/Heading.test.tsx.snap +13 -0
  1021. package/src/__tests__/__snapshots__/Label.test.tsx.snap +73 -0
  1022. package/src/__tests__/__snapshots__/LabelGroup.test.tsx.snap +15 -0
  1023. package/src/__tests__/__snapshots__/Link.test.tsx.snap +212 -0
  1024. package/src/__tests__/__snapshots__/NewButton.test.tsx.snap +305 -0
  1025. package/src/__tests__/__snapshots__/Pagehead.test.tsx.snap +15 -0
  1026. package/src/__tests__/__snapshots__/PointerBox.test.tsx.snap +174 -0
  1027. package/src/__tests__/__snapshots__/Popover.test.tsx.snap +4687 -0
  1028. package/src/__tests__/__snapshots__/Position.test.tsx.snap +44 -0
  1029. package/src/__tests__/__snapshots__/ProgressBar.test.tsx.snap +53 -0
  1030. package/src/__tests__/__snapshots__/SelectMenu.test.tsx.snap +473 -0
  1031. package/src/__tests__/__snapshots__/SelectPanel.test.tsx.snap +124 -0
  1032. package/src/__tests__/__snapshots__/SideNav.test.tsx.snap +143 -0
  1033. package/src/__tests__/__snapshots__/Spinner.test.tsx.snap +33 -0
  1034. package/src/__tests__/__snapshots__/StateLabel.test.tsx.snap +395 -0
  1035. package/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +26 -0
  1036. package/src/__tests__/__snapshots__/SubNav.test.tsx.snap +44 -0
  1037. package/src/__tests__/__snapshots__/SubNavLink.test.tsx.snap +199 -0
  1038. package/src/__tests__/__snapshots__/TabNav.test.tsx.snap +58 -0
  1039. package/src/__tests__/__snapshots__/Text.test.tsx.snap +7 -0
  1040. package/src/__tests__/__snapshots__/TextInput.test.tsx.snap +446 -0
  1041. package/src/__tests__/__snapshots__/TextInputWithTokens.test.tsx.snap +6045 -0
  1042. package/src/__tests__/__snapshots__/ThemeProvider.test.tsx.snap +15 -0
  1043. package/src/__tests__/__snapshots__/Timeline.test.tsx.snap +159 -0
  1044. package/src/__tests__/__snapshots__/Token.test.tsx.snap +3811 -0
  1045. package/src/__tests__/__snapshots__/Tooltip.test.tsx.snap +227 -0
  1046. package/src/__tests__/__snapshots__/Truncate.test.tsx.snap +17 -0
  1047. package/src/__tests__/__snapshots__/UnderlineNav.test.tsx.snap +59 -0
  1048. package/src/__tests__/__snapshots__/UnderlineNavLink.test.tsx.snap +130 -0
  1049. package/src/__tests__/__snapshots__/themePreval.test.ts.snap +3176 -0
  1050. package/src/__tests__/behaviors/anchoredPosition.test.ts +295 -0
  1051. package/src/__tests__/behaviors/focusTrap.test.tsx +236 -0
  1052. package/src/__tests__/behaviors/focusZone.test.tsx +549 -0
  1053. package/src/__tests__/behaviors/iterateFocusableElements.test.tsx +61 -0
  1054. package/src/__tests__/behaviors/scrollIntoViewingArea.test.ts +195 -0
  1055. package/src/__tests__/filterObject.test.ts +54 -0
  1056. package/src/__tests__/hooks/useAnchoredPosition.test.tsx +31 -0
  1057. package/src/__tests__/hooks/useOnEscapePress.test.tsx +16 -0
  1058. package/src/__tests__/hooks/useOnOutsideClick.test.tsx +48 -0
  1059. package/src/__tests__/hooks/useOpenAndCloseFocus.test.tsx +48 -0
  1060. package/src/__tests__/hooks/useProvidedStateOrCreate.test.tsx +39 -0
  1061. package/src/__tests__/theme.test.ts +41 -0
  1062. package/src/__tests__/themeGet.test.ts +15 -0
  1063. package/src/__tests__/themePreval.test.ts +8 -0
  1064. package/src/__tests__/useSafeTimeout.test.tsx +36 -0
  1065. package/src/__tests__/utils/__snapshots__/createSlots.test.tsx.snap +55 -0
  1066. package/src/__tests__/utils/createSlots.test.tsx +74 -0
  1067. package/src/behaviors/anchoredPosition.ts +442 -0
  1068. package/src/behaviors/focusTrap.ts +184 -0
  1069. package/src/behaviors/focusZone.ts +713 -0
  1070. package/src/behaviors/scrollIntoViewingArea.ts +27 -0
  1071. package/src/constants.ts +62 -0
  1072. package/src/drafts.ts +11 -0
  1073. package/src/hooks/index.ts +11 -0
  1074. package/src/hooks/useAnchoredPosition.ts +54 -0
  1075. package/src/hooks/useCombinedRefs.ts +40 -0
  1076. package/src/hooks/useDetails.tsx +54 -0
  1077. package/src/hooks/useDialog.ts +121 -0
  1078. package/src/hooks/useFocusTrap.ts +80 -0
  1079. package/src/hooks/useFocusZone.ts +64 -0
  1080. package/src/hooks/useOnEscapePress.ts +63 -0
  1081. package/src/hooks/useOnOutsideClick.tsx +82 -0
  1082. package/src/hooks/useOpenAndCloseFocus.ts +32 -0
  1083. package/src/hooks/useOverlay.tsx +34 -0
  1084. package/src/hooks/useProvidedRefOrCreate.ts +14 -0
  1085. package/src/hooks/useProvidedStateOrCreate.ts +27 -0
  1086. package/src/hooks/useRenderForcingRef.ts +22 -0
  1087. package/src/hooks/useResizeObserver.ts +11 -0
  1088. package/src/hooks/useSafeTimeout.ts +38 -0
  1089. package/src/hooks/useScrollFlash.ts +21 -0
  1090. package/src/index.ts +175 -0
  1091. package/src/polyfills/eventListenerSignal.ts +66 -0
  1092. package/src/stories/ActionList.stories.tsx +436 -0
  1093. package/src/stories/ActionList2.stories.tsx +1305 -0
  1094. package/src/stories/ActionMenu.stories.tsx +331 -0
  1095. package/src/stories/ActionMenu2.stories.tsx +551 -0
  1096. package/src/stories/AnchoredOverlay.stories.tsx +117 -0
  1097. package/src/stories/Autocomplete.stories.tsx +655 -0
  1098. package/src/stories/AvatarStack.stories.tsx +37 -0
  1099. package/src/stories/Button.stories.tsx +92 -0
  1100. package/src/stories/Checkbox.stories.tsx +164 -0
  1101. package/src/stories/ConfirmationDialog.stories.tsx +105 -0
  1102. package/src/stories/Dialog.stories.tsx +240 -0
  1103. package/src/stories/DropdownMenu.stories.tsx +84 -0
  1104. package/src/stories/IssueLabelToken.stories.tsx +138 -0
  1105. package/src/stories/NewButton.stories.tsx +201 -0
  1106. package/src/stories/Overlay.stories.tsx +213 -0
  1107. package/src/stories/Portal.stories.tsx +109 -0
  1108. package/src/stories/ProfileToken.stories.tsx +129 -0
  1109. package/src/stories/SelectPanel.stories.tsx +353 -0
  1110. package/src/stories/TextInput.stories.tsx +113 -0
  1111. package/src/stories/TextInputWithTokens.stories.tsx +155 -0
  1112. package/src/stories/ThemeProvider.stories.tsx +104 -0
  1113. package/src/stories/Token.stories.tsx +137 -0
  1114. package/src/stories/useAnchoredPosition.stories.tsx +332 -0
  1115. package/src/stories/useFocusTrap.stories.tsx +400 -0
  1116. package/src/stories/useFocusZone.stories.tsx +663 -0
  1117. package/src/sx.ts +24 -0
  1118. package/src/theme-preval.js +80 -0
  1119. package/src/theme.ts +89 -0
  1120. package/src/utils/create-slots.tsx +96 -0
  1121. package/src/utils/deprecate.tsx +73 -0
  1122. package/src/utils/isNumeric.tsx +4 -0
  1123. package/src/utils/iterateFocusableElements.ts +121 -0
  1124. package/src/utils/ssr.tsx +1 -0
  1125. package/src/utils/test-deprecations.tsx +19 -0
  1126. package/src/utils/test-helpers.tsx +7 -0
  1127. package/src/utils/test-matchers.tsx +109 -0
  1128. package/src/utils/testing.tsx +264 -0
  1129. package/src/utils/theme.js +64 -0
  1130. package/src/utils/types/AriaRole.ts +71 -0
  1131. package/src/utils/types/ComponentProps.ts +13 -0
  1132. package/src/utils/types/Flatten.ts +4 -0
  1133. package/src/utils/types/KeyPaths.ts +10 -0
  1134. package/src/utils/types/MandateProps.ts +19 -0
  1135. package/src/utils/types/Merge.ts +20 -0
  1136. package/src/utils/types/index.ts +5 -0
  1137. package/src/utils/uniqueId.ts +6 -0
  1138. package/src/utils/use-force-update.ts +7 -0
  1139. package/src/utils/useIsomorphicLayoutEffect.ts +10 -0
  1140. package/src/utils/userAgent.ts +7 -0
  1141. package/stats.html +3279 -0
  1142. package/tsconfig.build.json +7 -0
  1143. package/tsconfig.json +20 -0
  1144. package/lib/ActionList2/Header.d.ts +0 -26
  1145. package/lib/ActionList2/Header.js +0 -55
  1146. package/lib-esm/ActionList2/Header.d.ts +0 -26
  1147. package/lib-esm/ActionList2/Header.js +0 -44
@@ -0,0 +1,372 @@
1
+ ---
2
+ title: SelectMenu
3
+ status: Deprecated
4
+ ---
5
+
6
+ The `SelectMenu` components are a suite of components which can be combined together to make several different variations of our GitHub select menu. At it's most basic form, a select menu is comprised of a `SelectMenu` wrapper, which contains a `summary` component of your choice and a `Select.Modal` which contains the select menu content. Use `SelectMenu.List` to wrap items in the select menu, and `SelectMenu.Item` to wrap each item.
7
+
8
+ Several additional components exist to provide even more functionality: `SelectMenu.Header`, `SelectMenu.Filter`, `SelectMenu.Tabs`, `SelectMenu.TabPanel` `SelectMenu.Footer` and `SelectMenu.Divider`.
9
+
10
+ ## Basic Example
11
+
12
+ ```jsx live
13
+ <SelectMenu>
14
+ <Button as="summary">Projects</Button>
15
+ <SelectMenu.Modal>
16
+ <SelectMenu.Header>Projects</SelectMenu.Header>
17
+ <SelectMenu.List>
18
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
19
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
20
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
21
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
22
+ </SelectMenu.List>
23
+ </SelectMenu.Modal>
24
+ </SelectMenu>
25
+ ```
26
+
27
+ ## SelectMenu
28
+
29
+ Main wrapper component for select menu.
30
+
31
+ ```jsx
32
+ <SelectMenu>{/* all other sub components are wrapped here*/}</SelectMenu>
33
+ ```
34
+
35
+ ### Component Props
36
+
37
+ | Name | Type | Default | Description |
38
+ | :--------- | :---------------- | :-----: | :--------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | initialTab | String | | If using the `SelectMenu.Tabs` component, you can use this prop to change the tab shown on open. By default, the first tab will be used. |
40
+ | ref | React ref | | ref to pass down to SelectMenu component |
41
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
42
+
43
+ ## SelectMenu.MenuContext
44
+
45
+ SelectMenu.MenuContext is a [context object](https://reactjs.org/docs/context.html#reactcreatecontext) that exposes some helpful state values to be used via [`React.useContext`](https://reactjs.org/docs/hooks-reference.html#usecontext) in consuming applications. SelectMenu.MenuContext can only be used in components that are already wrapped in a `SelectMenu` as `SelectMenu` contains the [context provider](https://reactjs.org/docs/context.html#contextprovider).
46
+
47
+ ### Values available on MenuContext
48
+
49
+ | Name | Type | Description |
50
+ | :------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | selectedTab | string | The currently selected tab |
52
+ | setSelectedTab | function | Used to update the currently selected tab state |
53
+ | open | boolean | State for open/closed status of the menu modal |
54
+ | setOpen | function | Used to update the `open` state |
55
+ | initialTab | string | Mostly used internally to pass down which tab should be set to open by default. To change this value use the `initialTab` prop on `SelectMenu`. |
56
+
57
+ ### Example Usage
58
+
59
+ ```jsx
60
+ import {SelectMenu, Button} from `@primer/components`
61
+ import React, {useContext} from 'react'
62
+
63
+ const MyMenu = () => {
64
+ <SelectMenu>
65
+ <MyButton />
66
+ <SelectMenu.Modal>
67
+ content
68
+ </SelectMenu.Modal>
69
+ </SelectMenu>
70
+ }
71
+
72
+ // note that we can only use the context in components that are already wrapped by SelectMenu (and thus the Context.Provider)
73
+ const MyButton = () => {
74
+ const menuContext = useContext(SelectMenu.MenuContext);
75
+
76
+ return (
77
+ <Button as="summary">{menuContext.open ? 'Open' : 'Closed'}</Button>
78
+ )
79
+ }
80
+ ```
81
+
82
+ ## SelectMenu.Modal
83
+
84
+ Used to wrap the content in a `SelectMenu`.
85
+
86
+ ```jsx
87
+ <SelectMenu.Modal>{/* all menu content is wrapped in the modal*/}</SelectMenu.Modal>
88
+ ```
89
+
90
+ ### Right-aligned modal
91
+
92
+ Use the `align='right'` prop to align the modal to the right. Note that this only modifies alignment for the modal, and not the SelectMenu itself. You will need to wrap the SelectMenu in a relatively positioned element for this to work properly.
93
+
94
+ ```jsx live
95
+ <Box position="relative" display="flex" justifyContent="flex-end">
96
+ <SelectMenu>
97
+ <Button as="summary">Projects</Button>
98
+ <SelectMenu.Modal align="right">
99
+ <SelectMenu.Header>Projects</SelectMenu.Header>
100
+ <SelectMenu.List>
101
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
102
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
103
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
104
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
105
+ </SelectMenu.List>
106
+ </SelectMenu.Modal>
107
+ </SelectMenu>
108
+ </Box>
109
+ ```
110
+
111
+ ### Component Props
112
+
113
+ | Prop name | Type | Default | Description |
114
+ | :-------- | :---------------- | :------ | ------------------------------------------------- |
115
+ | align | String | 'left' | Use `right` to align the select menu to the right |
116
+ | width | String or Number | 300px | Sets the modal width |
117
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
118
+
119
+ ## SelectMenu.List
120
+
121
+ Used to wrap the select menu list content. All menu items **must** be wrapped in a SelectMenu.List in order for the accessbility keyboard handling to function properly. If you are using the `SelectMenu.TabPanel` you do not need to provide a `SelectMenu.List` as that component renders a `SelectMenu.List` as a wrapper.
122
+
123
+ ```jsx
124
+ <SelectMenu.List>{/* all menu list items are wrapped in the list*/}</SelectMenu.List>
125
+ ```
126
+
127
+ ### Component Props
128
+
129
+ | Name | Type | Default | Description |
130
+ | :--- | :---------------- | :-----: | :----------------------------------- |
131
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
132
+
133
+ ## SelectMenu.Item
134
+
135
+ Individual items in a select menu. SelectMenu.Item renders an anchor tag by default, you'll need to make sure to provide the appropriate `href`.
136
+
137
+ You can use a `button` tag instead by utilizing the [`as` prop](/core-concepts#the-as-prop). Be sure to consider [which HTML element is the right choice](https://marcysutton.com/links-vs-buttons-in-modern-web-applications) for your usage of the component.
138
+
139
+ ```jsx
140
+ <SelectMenu.Item href="/link/to/thing" selected={true}>
141
+ {/* wraps an individual list item*/}
142
+ </SelectMenu.Item>
143
+ ```
144
+
145
+ ### Component Props
146
+
147
+ | Name | Type | Default | Description |
148
+ | :------- | :---------------- | :-----: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
149
+ | selected | boolean | | Used to apply styles to the selected items in the list. |
150
+ | onClick | function | | Function called when item is clicked. By default we also close the menu when items are clicked. If you would like the menu to stay open, pass an `e.preventDefault()` to your onClick handler. |
151
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
152
+
153
+ ## SelectMenu.Filter
154
+
155
+ Use a `SelectMenu.Filter` to add a filter UI to your select menu. Users are expected to implement their own filtering and manage the state of the `value` prop on the input. This gives users more flexibility over the type of filtering and type of content passed into each select menu item.
156
+
157
+ ```jsx live
158
+ <SelectMenu>
159
+ <Button as="summary">Projects</Button>
160
+ <SelectMenu.Modal>
161
+ <SelectMenu.Header>Filter by Project</SelectMenu.Header>
162
+ <SelectMenu.Filter placeholder="Filter projects" value="" aria-label="Filter Projects" />
163
+ <SelectMenu.List>
164
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
165
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
166
+ <SelectMenu.Divider>More Options</SelectMenu.Divider>
167
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
168
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
169
+ </SelectMenu.List>
170
+ </SelectMenu.Modal>
171
+ </SelectMenu>
172
+ ```
173
+
174
+ ### Component Props
175
+
176
+ SelectMenu.Filter components receive all the props that the [TextInput](/TextInput) component gets.
177
+
178
+ | Name | Type | Default | Description |
179
+ | :---- | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------- |
180
+ | value | String | | Users of this component must provide a value for the filter input that is managed in the consuming application |
181
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
182
+
183
+ ## SelectMenu.Tabs
184
+
185
+ Use `SelectMenu.Tabs` to wrap the the tab navigation and `SelectMenu.Tab` for each tab in the navigation.
186
+
187
+ `SelectMenu.TabPanel` should wrap each corresponding panel for each of the tabs. The `tabName` prop for each `SelectMenu.TabPanel` must match the name provided in the `tabName` prop on `SelectMenu.Tab`.
188
+
189
+ To set one of the tabs to be open by default, use `initialTab` on the main `SelectMenu` component. Otherwise, the first tab will be shown by default.
190
+
191
+ Each `Select.Menu` tab will need to have an `index` prop. The first tab should be at index `0`, the second at index `1` and so forth. The `index` prop is used to show the first tab by default.
192
+
193
+ If you need access to the selected tab state, you can find it in the MenuContext object exported from `SelectMenu` as `MenuContext.selectedTab`.
194
+
195
+ ```jsx live
196
+ <SelectMenu>
197
+ <Button as="summary">Projects</Button>
198
+ <SelectMenu.Modal>
199
+ <SelectMenu.Header>Projects</SelectMenu.Header>
200
+ <SelectMenu.Tabs>
201
+ <SelectMenu.Tab index={0} tabName="Repository" />
202
+ <SelectMenu.Tab index={1} tabName="Organization" />
203
+ </SelectMenu.Tabs>
204
+ <SelectMenu.TabPanel tabName="Repository">
205
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
206
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
207
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
208
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
209
+ </SelectMenu.TabPanel>
210
+ <SelectMenu.TabPanel tabName="Organization">
211
+ <SelectMenu.Item href="#"> Project 2</SelectMenu.Item>
212
+ </SelectMenu.TabPanel>
213
+ <SelectMenu.Footer>Showing 3 of 3</SelectMenu.Footer>
214
+ </SelectMenu.Modal>
215
+ </SelectMenu>
216
+ ```
217
+
218
+ ### Component Props
219
+
220
+ | Name | Type | Default | Description |
221
+ | :--- | :---------------- | :-----: | :----------------------------------- |
222
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
223
+
224
+ ## SelectMenu.Tab
225
+
226
+ Used for each individual tab inside of a `SelectMenu.Tabs`. Be sure to set the `index` prop to correspond to the order the tab is in. The `tabName` prop should correspond to the `tabName` set on the `SelectMenu.TabPanel`.
227
+
228
+ The `onClick` prop is optional and can be used for any events or data fetching you might need to trigger on tab clicks.
229
+
230
+ ```jsx
231
+ <>
232
+ <SelectMenu.Tab index={0} tabName="Repository" />
233
+ <SelectMenu.Tab index={1} tabName="Organization" />
234
+ </>
235
+ ```
236
+
237
+ ### Component Props
238
+
239
+ | Name | Type | Default | Description |
240
+ | :------ | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------- |
241
+ | tabName | String | | Used to identify the corresponding tab. Must match the string used in the `tabs` array in the `SelectMenu.Tabs` component. |
242
+ | index | Number | | The index at which the tab is in the list of tabs |
243
+ | onClick | Function | | Function to be called when the tab is clicked. Optional. |
244
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
245
+
246
+ ## SelectMenu.TabPanel
247
+
248
+ Wraps the content for each tab. Make sure to use the `tabName` prop to identify each tab panel with the correct tab in the tab navigation.
249
+
250
+ **Note**: SelectMenu.TabPanel wraps content in a SelectMenu.List, so adding a SelectMenu.List manually is not necessary.
251
+
252
+ ```jsx
253
+ <SelectMenu.TabPanel tabName="Repository">{/* Wraps content for each tab */}</SelectMenu.TabPanel>
254
+ ```
255
+
256
+ ### Component Props
257
+
258
+ | Name | Type | Default | Description |
259
+ | :------ | :---------------- | :-----: | :------------------------------------------------------------------------------------------------------------------------- |
260
+ | tabName | String | | Used to identify the corresponding tab. Must match the string used in the `tabs` array in the `SelectMenu.Tabs` component. |
261
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
262
+
263
+ ## SelectMenu.Divider
264
+
265
+ Use a `SelectMenu.Divider` to add information between items in a `SelectMenu.List`.
266
+
267
+ ```jsx live
268
+ <SelectMenu>
269
+ <Button as="summary">Projects</Button>
270
+ <SelectMenu.Modal>
271
+ <SelectMenu.Header>Projects</SelectMenu.Header>
272
+ <SelectMenu.List>
273
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
274
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
275
+ <SelectMenu.Divider>More Options</SelectMenu.Divider>
276
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
277
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
278
+ </SelectMenu.List>
279
+ </SelectMenu.Modal>
280
+ </SelectMenu>
281
+ ```
282
+
283
+ ### Component Props
284
+
285
+ | Name | Type | Default | Description |
286
+ | :--- | :---------------- | :-----: | :----------------------------------- |
287
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
288
+
289
+ ## SelectMenu.Footer
290
+
291
+ Use a `SelectMenu.Footer` to add content to the bottom of the select menu.
292
+
293
+ ```jsx live
294
+ <SelectMenu>
295
+ <Button as="summary">Projects</Button>
296
+ <SelectMenu.Modal>
297
+ <SelectMenu.Header>Projects</SelectMenu.Header>
298
+ <SelectMenu.List>
299
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
300
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
301
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
302
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
303
+ <SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
304
+ </SelectMenu.List>
305
+ </SelectMenu.Modal>
306
+ </SelectMenu>
307
+ ```
308
+
309
+ ### Component Props
310
+
311
+ | Name | Type | Default | Description |
312
+ | :--- | :---------------- | :-----: | :----------------------------------- |
313
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
314
+
315
+ ## SelectMenu.Header
316
+
317
+ Use a `SelectMenu.Header` to add a header to the top of the select menu content.
318
+
319
+ ```jsx live
320
+ <SelectMenu>
321
+ <Button as="summary">Projects</Button>
322
+ <SelectMenu.Modal>
323
+ <SelectMenu.Header>Projects</SelectMenu.Header>
324
+ <SelectMenu.List>
325
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
326
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
327
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
328
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
329
+ <SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
330
+ </SelectMenu.List>
331
+ </SelectMenu.Modal>
332
+ </SelectMenu>
333
+ ```
334
+
335
+ ### Component Props
336
+
337
+ | Name | Type | Default | Description |
338
+ | :--- | :---------------- | :-----: | :----------------------------------- |
339
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
340
+
341
+ ## SelectMenu.LoadingAnimation
342
+
343
+ Use a `SelectMenu.LoadingAnimation` to add a loading animation inside of the SelectMenu.
344
+
345
+ **Note**: You will need to handle showing/hiding the appropriate modal content for your application during the loading state. We recommend always showing the `SelectMenu.Filter` and `SelectMenu.Header` (if used) and hiding the rest of the modal content during the loading state.
346
+
347
+ ```jsx live
348
+ <SelectMenu>
349
+ <Button as="summary">Projects</Button>
350
+ <SelectMenu.Modal>
351
+ <SelectMenu.Header>Projects</SelectMenu.Header>
352
+ <SelectMenu.Filter placeholder="Filter projects" value="" aria-label="Filter Projects" />
353
+ {true ? (
354
+ <SelectMenu.LoadingAnimation />
355
+ ) : (
356
+ <SelectMenu.List>
357
+ <SelectMenu.Item href="#">Primer React bugs</SelectMenu.Item>
358
+ <SelectMenu.Item href="#">Primer React roadmap</SelectMenu.Item>
359
+ <SelectMenu.Item href="#"> Project 3</SelectMenu.Item>
360
+ <SelectMenu.Item href="#">Project 4</SelectMenu.Item>
361
+ <SelectMenu.Footer>Use ⌥ + click/return to exclude labels.</SelectMenu.Footer>
362
+ </SelectMenu.List>
363
+ )}
364
+ </SelectMenu.Modal>
365
+ </SelectMenu>
366
+ ```
367
+
368
+ ### Component Props
369
+
370
+ | Name | Type | Default | Description |
371
+ | :--- | :---------------- | :-----: | :----------------------------------- |
372
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: SelectPanel
3
+ status: Alpha
4
+ ---
5
+
6
+ A `SelectPanel` provides an anchor that will open an overlay with a list of selectable items, and a text input to filter the selectable items
7
+
8
+ ## Example
9
+
10
+ ```javascript live noinline
11
+ function getColorCircle(color) {
12
+ return function () {
13
+ return (
14
+ <Box
15
+ borderWidth="1px"
16
+ borderStyle="solid"
17
+ bg={color}
18
+ borderColor={color}
19
+ width={14}
20
+ height={14}
21
+ borderRadius={10}
22
+ margin="auto"
23
+ />
24
+ )
25
+ }
26
+ }
27
+
28
+ const items = [
29
+ {leadingVisual: getColorCircle('#a2eeef'), text: 'enhancement', id: 1},
30
+ {leadingVisual: getColorCircle('#d73a4a'), text: 'bug', id: 2},
31
+ {leadingVisual: getColorCircle('#0cf478'), text: 'good first issue', id: 3},
32
+ {leadingVisual: getColorCircle('#ffd78e'), text: 'design', id: 4},
33
+ {leadingVisual: getColorCircle('#ff0000'), text: 'blocker', id: 5},
34
+ {leadingVisual: getColorCircle('#a4f287'), text: 'backend', id: 6},
35
+ {leadingVisual: getColorCircle('#8dc6fc'), text: 'frontend', id: 7}
36
+ ]
37
+
38
+ function DemoComponent() {
39
+ const [selected, setSelected] = React.useState([items[0], items[1]])
40
+ const [filter, setFilter] = React.useState('')
41
+ const filteredItems = items.filter(item => item.text.toLowerCase().startsWith(filter.toLowerCase()))
42
+ const [open, setOpen] = React.useState(false)
43
+
44
+ return (
45
+ <SelectPanel
46
+ renderAnchor={({children, 'aria-labelledby': ariaLabelledBy, ...anchorProps}) => (
47
+ <DropdownButton aria-labelledby={` ${ariaLabelledBy}`} {...anchorProps}>
48
+ {children || 'Select Labels'}
49
+ </DropdownButton>
50
+ )}
51
+ placeholderText="Filter Labels"
52
+ open={open}
53
+ onOpenChange={setOpen}
54
+ items={filteredItems}
55
+ selected={selected}
56
+ onSelectedChange={setSelected}
57
+ onFilterChange={setFilter}
58
+ showItemDividers={true}
59
+ overlayProps={{width: 'small', height: 'xsmall'}}
60
+ />
61
+ )
62
+ }
63
+
64
+ render(<DemoComponent />)
65
+ ```
66
+
67
+ ## Component props
@@ -0,0 +1,172 @@
1
+ ---
2
+ title: SideNav
3
+ status: Alpha
4
+ ---
5
+
6
+ The Side Nav is a vertical list of navigational links, typically used on the left side of a page. For maximum flexibility, **SideNav elements have no default width or positioning.**
7
+
8
+ ## Default example
9
+
10
+ ```jsx live
11
+ <SideNav bordered maxWidth={360} aria-label="Main">
12
+ <SideNav.Link href="#account">
13
+ <Text>Account</Text>
14
+ </SideNav.Link>
15
+ <SideNav.Link href="#home" selected>
16
+ <Text>Profile</Text>
17
+ </SideNav.Link>
18
+ <SideNav.Link href="#emails">
19
+ <Text>Emails</Text>
20
+ </SideNav.Link>
21
+ <SideNav.Link href="#notifications">
22
+ <Text>Notifications</Text>
23
+ </SideNav.Link>
24
+ </SideNav>
25
+ ```
26
+
27
+ Different kinds of content can be added inside a SideNav item. Use system props to further style them if needed.
28
+
29
+ ## Full variant
30
+
31
+ Add the `variant='full'` prop to a `SideNav.Link` to spread child elements across the link, which is useful for status icons, labels, and the like.
32
+
33
+ ```jsx live
34
+ <SideNav bordered maxWidth={360} aria-label="Main">
35
+ <SideNav.Link href="#url">
36
+ <Text>Text Only</Text>
37
+ </SideNav.Link>
38
+ <SideNav.Link href="#url">
39
+ <Avatar size={16} mr={2} src="https://avatars.githubusercontent.com/hubot?s=32" />
40
+ <Text>With an avatar</Text>
41
+ </SideNav.Link>
42
+ <SideNav.Link href="#url">
43
+ <StyledOcticon sx={{mr: 2}} size={16} icon={ZapIcon} />
44
+ <Text>With an Octicon</Text>
45
+ </SideNav.Link>
46
+ <SideNav.Link href="#url" variant="full" selected>
47
+ <Text>With a status icon</Text>
48
+ <StyledOcticon sx={{mr: 2}} size={16} icon={DotIcon} color="success.fg" />
49
+ </SideNav.Link>
50
+ <SideNav.Link href="#url" variant="full">
51
+ <Text>With a label</Text>
52
+ <Label outline>label</Label>
53
+ </SideNav.Link>
54
+ <SideNav.Link href="#url" variant="full">
55
+ <Text>With a counter</Text>
56
+ <CounterLabel>16</CounterLabel>
57
+ </SideNav.Link>
58
+ <SideNav.Link href="#url">
59
+ <Heading as="h5" sx={{fontSize: 1}}>
60
+ A heading
61
+ </Heading>
62
+ <Text>and some more content</Text>
63
+ </SideNav.Link>
64
+ </SideNav>
65
+ ```
66
+
67
+ ## Lightweight variant
68
+
69
+ Add the `variant="lightweight"` prop to `SideNav` to render an alternative, more lightweight version that has items with no borders and are more condensed.
70
+
71
+ ```jsx live
72
+ <Box
73
+ borderWidth="1px"
74
+ borderStyle="solid"
75
+ borderColor="border.default"
76
+ borderRadius={2}
77
+ p={3}
78
+ backgroundColor="canvas.subtle"
79
+ maxWidth={360}
80
+ >
81
+ <Box
82
+ borderStyle="solid"
83
+ borderColor="border.default"
84
+ borderWidth={0}
85
+ borderBottomWidth={1}
86
+ borderRadius={0}
87
+ mb={2}
88
+ pb={1}
89
+ >
90
+ <Heading as="h5" fontSize={1} color="fg.muted">
91
+ Menu
92
+ </Heading>
93
+ </Box>
94
+ <SideNav variant="lightweight">
95
+ <SideNav.Link href="#url">
96
+ <Text>Account</Text>
97
+ </SideNav.Link>
98
+ <SideNav.Link href="#url" selected>
99
+ <Text>Profile</Text>
100
+ </SideNav.Link>
101
+ <SideNav.Link href="#url">
102
+ <Text>Emails</Text>
103
+ </SideNav.Link>
104
+ <SideNav.Link href="#url">
105
+ <Text>Notifications</Text>
106
+ </SideNav.Link>
107
+ </SideNav>
108
+ </Box>
109
+ ```
110
+
111
+ It can also appear nested, as a sub navigation. Use margin/padding [System Props](/system-props) to add indentation.
112
+
113
+ ```jsx live
114
+ <SideNav bordered maxWidth={360}>
115
+ <SideNav.Link href="#url">
116
+ <StyledOcticon mr={2} size={16} icon={PersonIcon} />
117
+ <Text>Account</Text>
118
+ </SideNav.Link>
119
+ <SideNav.Link href="#url" selected>
120
+ <StyledOcticon mr={2} size={16} icon={OctofaceIcon} />
121
+ <Text>Profile</Text>
122
+ </SideNav.Link>
123
+
124
+ <SideNav bordered variant="lightweight" py={3} pl={6} backgroundColor="sidenav.selectedBg">
125
+ <SideNav.Link href="#url" selected>
126
+ <Text>Sub item 1</Text>
127
+ </SideNav.Link>
128
+ <SideNav.Link href="#url">
129
+ <Text>Sub item 2</Text>
130
+ </SideNav.Link>
131
+ <SideNav.Link href="#url">
132
+ <Text>Sub item 3</Text>
133
+ </SideNav.Link>
134
+ </SideNav>
135
+
136
+ <SideNav.Link href="#url">
137
+ <StyledOcticon mr={2} size={16} icon={MailIcon} />
138
+ <Text>Emails</Text>
139
+ </SideNav.Link>
140
+ </SideNav>
141
+ ```
142
+
143
+ ## Usage with React Router
144
+
145
+ If using React Router, you can use the `as` prop to render the element as a `NavLink`. React Router will automatically handle setting `aria-current="page"` for you.
146
+
147
+ ```
148
+ <SideNav.Link as={NavLink} to="...">...</SideNav.Link>
149
+ ```
150
+
151
+ ## Component props
152
+
153
+ ### SideNav
154
+
155
+ | Name | Type | Default | Description |
156
+ | :------- | :---------------- | :------: | :----------------------------------------------------------------------------- |
157
+ | as | String | 'nav' | Sets the HTML tag for the component. |
158
+ | bordered | Boolean | false | Renders the component with a border. |
159
+ | variant | String | 'normal' | Set to `lightweight` to render [in a lightweight style](#lightweight-variant). |
160
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
161
+
162
+ ### SideNav.Link
163
+
164
+ | Name | Type | Default | Description |
165
+ | :-------- | :---------------- | :------: | :------------------------------------------------------------------------------------------------ |
166
+ | as | String | 'a' | Sets the HTML tag for the component. |
167
+ | href | String | | URL to be used for the Link |
168
+ | muted | Boolean | false | Uses a less prominent shade for Link color, and the default link shade on hover |
169
+ | selected | Boolean | false | Sets the link as selected, giving it a different style and setting the `aria-current` attribute. |
170
+ | underline | Boolean | false | Adds underline to the Link |
171
+ | variant | String | 'normal' | Set to `full` to render [a full variant](#full-variant), suitable for including icons and labels. |
172
+ | sx | SystemStyleObject | {} | Style to be applied to the component |
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: Spinner
3
+ status: Alpha
4
+ description: Use spinners to let users know that content is being loaded.
5
+ componentId: spinner
6
+ source: https://github.com/primer/components/blob/main/src/Spinner.tsx
7
+ ---
8
+
9
+ import {Props} from '../src/props'
10
+ import {Spinner} from '@primer/components'
11
+
12
+ ```jsx live
13
+ <Spinner />
14
+ ```
15
+
16
+ ## Props
17
+
18
+ <Props of={Spinner} />
19
+
20
+ ## Examples
21
+
22
+ ### Small
23
+
24
+ ```jsx live
25
+ <Spinner size="small" />
26
+ ```
27
+
28
+ ### Large
29
+
30
+ ```jsx live
31
+ <Spinner size="large" />
32
+ ```
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: StateLabel
3
+ status: Alpha
4
+ ---
5
+
6
+ Use StateLabel components to show the status of an issue or pull request.
7
+
8
+ ## Default example
9
+
10
+ ```jsx live
11
+ <>
12
+ <StateLabel status="issueOpened">Open</StateLabel>
13
+ <StateLabel status="issueClosed">Closed</StateLabel>
14
+ <StateLabel status="pullOpened">Open</StateLabel>
15
+ <StateLabel status="pullClosed">Closed</StateLabel>
16
+ <StateLabel status="pullMerged">Merged</StateLabel>
17
+ <StateLabel status="draft">Draft</StateLabel>
18
+ <StateLabel status="issueDraft">Draft</StateLabel>
19
+ </>
20
+ ```
21
+
22
+ ## Component props
23
+
24
+ | Name | Type | Default | Description |
25
+ | :------ | :---------------- | :------: | :------------------------------------------------------------------------------------------------------------- |
26
+ | variant | String | 'normal' | a value of `small` or `normal` results in a smaller or larger version of the StateLabel. |
27
+ | status | String | | Can be one of `issueOpened`, `issueClosed`, `pullOpened`, `pullClosed`, `pullMerged`, `draft` or `issueDraft`. |
28
+ | sx | SystemStyleObject | {} | Style to be applied to the component |