@primer/components 0.0.0-2021112202220 → 0.0.0-202111245715

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 (727) hide show
  1. package/CHANGELOG.md +942 -39
  2. package/README.md +16 -16
  3. package/codemods/__tests__/deprecateUtilityComponents.js +200 -0
  4. package/codemods/__tests__/removeSystemProps.js +225 -0
  5. package/codemods/deprecateUtilityComponents.js +111 -0
  6. package/codemods/lib/modifyProps.js +9 -7
  7. package/codemods/lib/prettify.js +1 -1
  8. package/codemods/lib/replaceImportSource.js +5 -5
  9. package/codemods/removeSystemProps.js +312 -0
  10. package/dist/browser.esm.js +1267 -853
  11. package/dist/browser.esm.js.map +1 -1
  12. package/dist/browser.umd.js +1304 -890
  13. package/dist/browser.umd.js.map +1 -1
  14. package/lib/ActionList/Divider.d.ts +9 -0
  15. package/lib/ActionList/Divider.js +40 -0
  16. package/lib/ActionList/Group.d.ts +28 -0
  17. package/lib/ActionList/Group.js +35 -0
  18. package/lib/ActionList/Header.d.ts +29 -0
  19. package/lib/ActionList/Header.js +51 -0
  20. package/lib/ActionList/Item.d.ts +98 -0
  21. package/lib/ActionList/Item.js +276 -0
  22. package/lib/ActionList/List.d.ts +88 -0
  23. package/lib/ActionList/List.js +199 -0
  24. package/lib/ActionList/index.d.ts +17 -0
  25. package/lib/ActionList/index.js +29 -0
  26. package/lib/ActionList2/Description.d.ts +12 -0
  27. package/lib/ActionList2/Description.js +57 -0
  28. package/lib/ActionList2/Divider.d.ts +5 -0
  29. package/lib/ActionList2/Divider.js +35 -0
  30. package/lib/ActionList2/Group.d.ts +37 -0
  31. package/lib/ActionList2/Group.js +106 -0
  32. package/lib/ActionList2/Item.d.ts +63 -0
  33. package/lib/ActionList2/Item.js +244 -0
  34. package/lib/ActionList2/LinkItem.d.ts +17 -0
  35. package/lib/ActionList2/LinkItem.js +57 -0
  36. package/lib/ActionList2/List.d.ts +26 -0
  37. package/lib/ActionList2/List.js +58 -0
  38. package/lib/ActionList2/Selection.d.ts +5 -0
  39. package/lib/ActionList2/Selection.js +86 -0
  40. package/lib/ActionList2/Visuals.d.ts +9 -0
  41. package/lib/ActionList2/Visuals.js +90 -0
  42. package/lib/ActionList2/index.d.ts +36 -0
  43. package/lib/ActionList2/index.js +47 -0
  44. package/lib/ActionMenu.d.ts +40 -0
  45. package/lib/ActionMenu.js +103 -0
  46. package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  47. package/lib/AnchoredOverlay/AnchoredOverlay.js +124 -0
  48. package/lib/AnchoredOverlay/index.d.ts +2 -0
  49. package/lib/AnchoredOverlay/index.js +13 -0
  50. package/lib/Autocomplete/Autocomplete.d.ts +305 -0
  51. package/lib/Autocomplete/Autocomplete.js +145 -0
  52. package/lib/Autocomplete/AutocompleteContext.d.ts +17 -0
  53. package/lib/Autocomplete/AutocompleteContext.js +11 -0
  54. package/lib/Autocomplete/AutocompleteInput.d.ts +293 -0
  55. package/lib/Autocomplete/AutocompleteInput.js +157 -0
  56. package/lib/Autocomplete/AutocompleteMenu.d.ts +72 -0
  57. package/lib/Autocomplete/AutocompleteMenu.js +224 -0
  58. package/lib/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  59. package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
  60. package/lib/Autocomplete/index.d.ts +2 -0
  61. package/lib/Autocomplete/index.js +15 -0
  62. package/lib/Avatar.d.ts +14 -0
  63. package/lib/Avatar.js +1 -12
  64. package/lib/AvatarPair.d.ts +8 -0
  65. package/lib/AvatarPair.js +9 -16
  66. package/lib/AvatarStack.d.ts +8 -0
  67. package/lib/AvatarStack.js +12 -23
  68. package/lib/BaseStyles.d.ts +14 -0
  69. package/lib/BaseStyles.js +25 -31
  70. package/lib/BorderBox.d.ts +7 -0
  71. package/lib/BorderBox.js +5 -16
  72. package/lib/Box.d.ts +6 -0
  73. package/lib/Box.js +2 -15
  74. package/lib/BranchName.d.ts +5 -0
  75. package/lib/BranchName.js +1 -14
  76. package/lib/Breadcrumbs.d.ts +41 -0
  77. package/lib/Breadcrumbs.js +82 -0
  78. package/lib/Button/Button.d.ts +284 -0
  79. package/lib/Button/Button.js +3 -15
  80. package/lib/Button/ButtonBase.d.ts +9 -0
  81. package/lib/Button/ButtonBase.js +2 -25
  82. package/lib/Button/ButtonClose.d.ts +279 -0
  83. package/lib/Button/ButtonClose.js +9 -26
  84. package/lib/Button/ButtonDanger.d.ts +284 -0
  85. package/lib/Button/ButtonDanger.js +2 -14
  86. package/lib/Button/ButtonGroup.d.ts +4 -0
  87. package/lib/Button/ButtonGroup.js +2 -8
  88. package/lib/Button/ButtonInvisible.d.ts +284 -0
  89. package/lib/Button/ButtonInvisible.js +3 -15
  90. package/lib/Button/ButtonOutline.d.ts +284 -0
  91. package/lib/Button/ButtonOutline.js +2 -14
  92. package/lib/Button/ButtonPrimary.d.ts +284 -0
  93. package/lib/Button/ButtonPrimary.js +2 -14
  94. package/lib/Button/ButtonStyles.d.ts +2 -0
  95. package/lib/Button/ButtonTableList.d.ts +5 -0
  96. package/lib/Button/ButtonTableList.js +1 -15
  97. package/lib/Button/index.d.ts +16 -0
  98. package/lib/Button/index.js +9 -59
  99. package/lib/Caret.d.ts +21 -0
  100. package/lib/Caret.js +14 -17
  101. package/lib/Checkbox.d.ts +29 -0
  102. package/lib/Checkbox.js +64 -0
  103. package/lib/CircleBadge.d.ts +24 -0
  104. package/lib/CircleBadge.js +2 -20
  105. package/lib/CircleOcticon.d.ts +392 -0
  106. package/lib/CircleOcticon.js +9 -18
  107. package/lib/CounterLabel.d.ts +7 -0
  108. package/lib/CounterLabel.js +3 -17
  109. package/lib/Details.d.ts +5 -0
  110. package/lib/Details.js +2 -12
  111. package/lib/Dialog/ConfirmationDialog.d.ts +44 -0
  112. package/lib/Dialog/ConfirmationDialog.js +191 -0
  113. package/lib/Dialog/Dialog.d.ts +163 -0
  114. package/lib/Dialog/Dialog.js +311 -0
  115. package/lib/Dialog.d.ts +406 -0
  116. package/lib/Dialog.js +34 -49
  117. package/lib/Dropdown.d.ts +1113 -0
  118. package/lib/Dropdown.js +45 -60
  119. package/lib/DropdownMenu/DropdownButton.d.ts +280 -0
  120. package/lib/DropdownMenu/DropdownButton.js +33 -0
  121. package/lib/DropdownMenu/DropdownMenu.d.ts +43 -0
  122. package/lib/DropdownMenu/DropdownMenu.js +94 -0
  123. package/lib/DropdownMenu/index.d.ts +4 -0
  124. package/lib/DropdownMenu/index.js +21 -0
  125. package/lib/DropdownStyles.d.ts +3 -0
  126. package/lib/DropdownStyles.js +6 -6
  127. package/lib/FilterList.d.ts +283 -0
  128. package/lib/FilterList.js +2 -30
  129. package/lib/FilteredActionList/FilteredActionList.d.ts +16 -0
  130. package/lib/FilteredActionList/FilteredActionList.js +137 -0
  131. package/lib/FilteredActionList/index.d.ts +2 -0
  132. package/lib/FilteredActionList/index.js +13 -0
  133. package/lib/FilteredSearch.d.ts +5 -0
  134. package/lib/FilteredSearch.js +1 -12
  135. package/lib/Flash.d.ts +8 -0
  136. package/lib/Flash.js +35 -14
  137. package/lib/Flex.d.ts +7 -0
  138. package/lib/Flex.js +3 -5
  139. package/lib/FormGroup.d.ts +11 -0
  140. package/lib/FormGroup.js +2 -22
  141. package/lib/Grid.d.ts +7 -0
  142. package/lib/Grid.js +4 -9
  143. package/lib/Header.d.ts +23 -0
  144. package/lib/Header.js +7 -37
  145. package/lib/Heading.d.ts +5 -0
  146. package/lib/Heading.js +1 -13
  147. package/lib/Label.d.ts +10 -0
  148. package/lib/Label.js +5 -19
  149. package/lib/LabelGroup.d.ts +5 -0
  150. package/lib/LabelGroup.js +1 -9
  151. package/lib/Link.d.ts +9 -0
  152. package/lib/Link.js +2 -30
  153. package/lib/NewButton/button-base.d.ts +6 -0
  154. package/lib/NewButton/button-base.js +69 -0
  155. package/lib/NewButton/button-counter.d.ts +6 -0
  156. package/lib/NewButton/button-counter.js +31 -0
  157. package/lib/NewButton/button-link.d.ts +26 -0
  158. package/lib/NewButton/button-link.js +31 -0
  159. package/lib/NewButton/button.d.ts +4 -0
  160. package/lib/NewButton/button.js +31 -0
  161. package/lib/NewButton/icon-button.d.ts +4 -0
  162. package/lib/NewButton/icon-button.js +57 -0
  163. package/lib/NewButton/index.d.ts +9 -0
  164. package/lib/NewButton/index.js +33 -0
  165. package/lib/NewButton/styles.d.ts +202 -0
  166. package/lib/NewButton/styles.js +248 -0
  167. package/lib/NewButton/types.d.ts +52 -0
  168. package/lib/NewButton/types.js +19 -0
  169. package/lib/Overlay.d.ts +66 -0
  170. package/lib/Overlay.js +184 -0
  171. package/lib/Pagehead.d.ts +5 -0
  172. package/lib/Pagehead.js +1 -13
  173. package/lib/Pagination/Pagination.d.ts +24 -0
  174. package/lib/Pagination/Pagination.js +14 -29
  175. package/lib/Pagination/index.d.ts +3 -0
  176. package/lib/Pagination/model.d.ts +26 -0
  177. package/lib/Pagination/model.js +1 -1
  178. package/lib/PointerBox.d.ts +11 -0
  179. package/lib/PointerBox.js +4 -13
  180. package/lib/Popover.d.ts +20 -0
  181. package/lib/Popover.js +5 -29
  182. package/lib/Portal/Portal.d.ts +25 -0
  183. package/lib/Portal/Portal.js +101 -0
  184. package/lib/Portal/index.d.ts +4 -0
  185. package/lib/Portal/index.js +17 -0
  186. package/lib/Position.d.ts +34 -0
  187. package/lib/Position.js +46 -46
  188. package/lib/ProgressBar.d.ts +26 -0
  189. package/lib/ProgressBar.js +8 -27
  190. package/lib/SelectMenu/SelectMenu.d.ts +1670 -0
  191. package/lib/SelectMenu/SelectMenu.js +11 -25
  192. package/lib/SelectMenu/SelectMenuContext.d.ts +8 -0
  193. package/lib/SelectMenu/SelectMenuContext.js +1 -1
  194. package/lib/SelectMenu/SelectMenuDivider.d.ts +5 -0
  195. package/lib/SelectMenu/SelectMenuDivider.js +5 -13
  196. package/lib/SelectMenu/SelectMenuFilter.d.ts +9 -0
  197. package/lib/SelectMenu/SelectMenuFilter.js +9 -19
  198. package/lib/SelectMenu/SelectMenuFooter.d.ts +5 -0
  199. package/lib/SelectMenu/SelectMenuFooter.js +5 -13
  200. package/lib/SelectMenu/SelectMenuHeader.d.ts +10 -0
  201. package/lib/SelectMenu/SelectMenuHeader.js +2 -15
  202. package/lib/SelectMenu/SelectMenuItem.d.ts +14 -0
  203. package/lib/SelectMenu/SelectMenuItem.js +9 -19
  204. package/lib/SelectMenu/SelectMenuList.d.ts +5 -0
  205. package/lib/SelectMenu/SelectMenuList.js +5 -13
  206. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  207. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +5 -16
  208. package/lib/SelectMenu/SelectMenuModal.d.ts +14 -0
  209. package/lib/SelectMenu/SelectMenuModal.js +9 -21
  210. package/lib/SelectMenu/SelectMenuTab.d.ts +13 -0
  211. package/lib/SelectMenu/SelectMenuTab.js +8 -22
  212. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  213. package/lib/SelectMenu/SelectMenuTabPanel.js +7 -19
  214. package/lib/SelectMenu/SelectMenuTabs.d.ts +10 -0
  215. package/lib/SelectMenu/SelectMenuTabs.js +4 -12
  216. package/lib/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  217. package/lib/SelectMenu/hooks/useKeyboardNav.js +2 -0
  218. package/lib/SelectMenu/index.d.ts +2 -0
  219. package/lib/SelectPanel/SelectPanel.d.ts +25 -0
  220. package/lib/SelectPanel/SelectPanel.js +147 -0
  221. package/lib/SelectPanel/index.d.ts +2 -0
  222. package/lib/SelectPanel/index.js +13 -0
  223. package/lib/SideNav.d.ts +34 -0
  224. package/lib/SideNav.js +35 -51
  225. package/lib/Spinner.d.ts +16 -0
  226. package/lib/Spinner.js +58 -0
  227. package/lib/StateLabel.d.ts +15 -0
  228. package/lib/StateLabel.js +53 -23
  229. package/lib/StyledOcticon.d.ts +11 -0
  230. package/lib/StyledOcticon.js +1 -15
  231. package/lib/SubNav.d.ts +26 -0
  232. package/lib/SubNav.js +27 -49
  233. package/lib/TabNav.d.ts +19 -0
  234. package/lib/TabNav.js +15 -37
  235. package/lib/Text.d.ts +6 -0
  236. package/lib/Text.js +0 -12
  237. package/lib/TextInput.d.ts +14 -0
  238. package/lib/TextInput.js +25 -76
  239. package/lib/TextInputWithTokens.d.ts +328 -0
  240. package/lib/TextInputWithTokens.js +318 -0
  241. package/lib/ThemeProvider.d.ts +26 -0
  242. package/lib/ThemeProvider.js +193 -0
  243. package/lib/Timeline.d.ts +33 -0
  244. package/lib/Timeline.js +34 -87
  245. package/lib/Token/AvatarToken.d.ts +7 -0
  246. package/lib/Token/AvatarToken.js +64 -0
  247. package/lib/Token/IssueLabelToken.d.ts +14 -0
  248. package/lib/Token/IssueLabelToken.js +144 -0
  249. package/lib/Token/Token.d.ts +15 -0
  250. package/lib/Token/Token.js +105 -0
  251. package/lib/Token/TokenBase.d.ts +31 -0
  252. package/lib/Token/TokenBase.js +104 -0
  253. package/lib/Token/_RemoveTokenButton.d.ts +12 -0
  254. package/lib/Token/_RemoveTokenButton.js +90 -0
  255. package/lib/Token/_TokenTextContainer.d.ts +3 -0
  256. package/lib/Token/_TokenTextContainer.js +17 -0
  257. package/lib/Token/index.d.ts +3 -0
  258. package/lib/Token/index.js +31 -0
  259. package/lib/Tooltip.d.ts +17 -0
  260. package/lib/Tooltip.js +4 -21
  261. package/lib/Truncate.d.ts +10 -0
  262. package/lib/Truncate.js +2 -18
  263. package/lib/UnderlineNav.d.ts +24 -0
  264. package/lib/UnderlineNav.js +3 -29
  265. package/lib/_TextInputWrapper.d.ts +10 -0
  266. package/lib/_TextInputWrapper.js +51 -0
  267. package/lib/_UnstyledTextInput.d.ts +2 -0
  268. package/lib/_UnstyledTextInput.js +20 -0
  269. package/lib/behaviors/anchoredPosition.d.ts +89 -0
  270. package/lib/behaviors/anchoredPosition.js +316 -0
  271. package/lib/behaviors/focusTrap.d.ts +12 -0
  272. package/lib/behaviors/focusTrap.js +179 -0
  273. package/lib/behaviors/focusZone.d.ts +137 -0
  274. package/lib/behaviors/focusZone.js +578 -0
  275. package/lib/behaviors/scrollIntoViewingArea.d.ts +1 -0
  276. package/lib/behaviors/scrollIntoViewingArea.js +39 -0
  277. package/lib/constants.d.ts +20 -0
  278. package/lib/constants.js +11 -27
  279. package/lib/drafts.d.ts +8 -0
  280. package/lib/drafts.js +31 -0
  281. package/lib/hooks/index.d.ts +11 -0
  282. package/lib/hooks/index.js +61 -0
  283. package/lib/hooks/useAnchoredPosition.d.ts +20 -0
  284. package/lib/hooks/useAnchoredPosition.js +51 -0
  285. package/lib/hooks/useCombinedRefs.d.ts +10 -0
  286. package/lib/hooks/useCombinedRefs.js +47 -0
  287. package/lib/hooks/useDetails.d.ts +17 -0
  288. package/lib/hooks/useDetails.js +10 -3
  289. package/lib/hooks/useDialog.d.ts +16 -0
  290. package/lib/hooks/useDialog.js +21 -6
  291. package/lib/hooks/useFocusTrap.d.ts +32 -0
  292. package/lib/hooks/useFocusTrap.js +69 -0
  293. package/lib/hooks/useFocusZone.d.ts +23 -0
  294. package/lib/hooks/useFocusZone.js +53 -0
  295. package/lib/hooks/useOnEscapePress.d.ts +23 -0
  296. package/lib/hooks/useOnEscapePress.js +69 -0
  297. package/lib/hooks/useOnOutsideClick.d.ts +8 -0
  298. package/lib/hooks/useOnOutsideClick.js +90 -0
  299. package/lib/hooks/useOpenAndCloseFocus.d.ts +8 -0
  300. package/lib/hooks/useOpenAndCloseFocus.js +36 -0
  301. package/lib/hooks/useOverlay.d.ts +15 -0
  302. package/lib/hooks/useOverlay.js +43 -0
  303. package/lib/hooks/useProvidedRefOrCreate.d.ts +10 -0
  304. package/lib/hooks/useProvidedRefOrCreate.js +24 -0
  305. package/lib/hooks/useProvidedStateOrCreate.d.ts +10 -0
  306. package/lib/hooks/useProvidedStateOrCreate.js +27 -0
  307. package/lib/hooks/useRenderForcingRef.d.ts +8 -0
  308. package/lib/hooks/useRenderForcingRef.js +25 -0
  309. package/lib/hooks/useResizeObserver.d.ts +1 -0
  310. package/lib/hooks/useResizeObserver.js +20 -0
  311. package/lib/hooks/useSafeTimeout.d.ts +12 -0
  312. package/lib/hooks/useSafeTimeout.js +38 -0
  313. package/lib/hooks/useScrollFlash.d.ts +6 -0
  314. package/lib/hooks/useScrollFlash.js +29 -0
  315. package/lib/index.d.ts +120 -0
  316. package/lib/index.js +191 -7
  317. package/lib/polyfills/eventListenerSignal.d.ts +6 -0
  318. package/lib/polyfills/eventListenerSignal.js +64 -0
  319. package/lib/sx.d.ts +14 -0
  320. package/lib/sx.js +8 -5
  321. package/lib/theme-preval.d.ts +49 -0
  322. package/lib/theme-preval.js +3119 -357
  323. package/lib/theme.d.ts +80 -0
  324. package/lib/theme.js +5 -8
  325. package/lib/utils/create-slots.d.ts +17 -0
  326. package/lib/utils/create-slots.js +105 -0
  327. package/lib/utils/deprecate.d.ts +18 -0
  328. package/lib/utils/deprecate.js +6 -5
  329. package/lib/utils/isNumeric.d.ts +1 -0
  330. package/lib/utils/isNumeric.js +1 -0
  331. package/lib/utils/iterateFocusableElements.d.ts +42 -0
  332. package/lib/utils/iterateFocusableElements.js +113 -0
  333. package/lib/utils/ssr.d.ts +1 -0
  334. package/lib/utils/ssr.js +19 -0
  335. package/lib/utils/test-deprecations.d.ts +1 -0
  336. package/lib/utils/test-deprecations.js +2 -1
  337. package/lib/utils/test-helpers.d.ts +0 -0
  338. package/lib/utils/test-helpers.js +9 -0
  339. package/lib/utils/test-matchers.d.ts +1 -0
  340. package/lib/utils/test-matchers.js +6 -50
  341. package/lib/utils/testing.d.ts +545 -0
  342. package/lib/utils/testing.js +65 -49
  343. package/lib/utils/theme.d.ts +9 -0
  344. package/lib/utils/theme.js +68 -0
  345. package/lib/utils/types/AriaRole.d.ts +1 -0
  346. package/lib/utils/{types.js → types/AriaRole.js} +0 -0
  347. package/lib/utils/types/ComponentProps.d.ts +9 -0
  348. package/lib/utils/types/ComponentProps.js +1 -0
  349. package/lib/utils/types/Flatten.d.ts +4 -0
  350. package/lib/utils/types/Flatten.js +1 -0
  351. package/lib/utils/types/KeyPaths.d.ts +3 -0
  352. package/lib/utils/types/KeyPaths.js +1 -0
  353. package/lib/utils/types/MandateProps.d.ts +3 -0
  354. package/lib/utils/types/MandateProps.js +1 -0
  355. package/lib/utils/types/Merge.d.ts +19 -0
  356. package/lib/utils/types/Merge.js +1 -0
  357. package/lib/utils/types/index.d.ts +5 -0
  358. package/lib/utils/types/index.js +70 -0
  359. package/lib/utils/uniqueId.d.ts +1 -0
  360. package/lib/utils/uniqueId.js +12 -0
  361. package/lib/utils/use-force-update.d.ts +1 -0
  362. package/lib/utils/use-force-update.js +19 -0
  363. package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  364. package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
  365. package/lib/utils/userAgent.d.ts +1 -0
  366. package/lib/utils/userAgent.js +15 -0
  367. package/lib-esm/ActionList/Divider.d.ts +9 -0
  368. package/lib-esm/ActionList/Divider.js +23 -0
  369. package/lib-esm/ActionList/Group.d.ts +28 -0
  370. package/lib-esm/ActionList/Group.js +24 -0
  371. package/lib-esm/ActionList/Header.d.ts +29 -0
  372. package/lib-esm/ActionList/Header.js +33 -0
  373. package/lib-esm/ActionList/Item.d.ts +98 -0
  374. package/lib-esm/ActionList/Item.js +241 -0
  375. package/lib-esm/ActionList/List.d.ts +88 -0
  376. package/lib-esm/ActionList/List.js +181 -0
  377. package/lib-esm/ActionList/index.d.ts +17 -0
  378. package/lib-esm/ActionList/index.js +18 -0
  379. package/lib-esm/ActionList2/Description.d.ts +12 -0
  380. package/lib-esm/ActionList2/Description.js +41 -0
  381. package/lib-esm/ActionList2/Divider.d.ts +5 -0
  382. package/lib-esm/ActionList2/Divider.js +23 -0
  383. package/lib-esm/ActionList2/Group.d.ts +37 -0
  384. package/lib-esm/ActionList2/Group.js +87 -0
  385. package/lib-esm/ActionList2/Item.d.ts +63 -0
  386. package/lib-esm/ActionList2/Item.js +210 -0
  387. package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
  388. package/lib-esm/ActionList2/LinkItem.js +43 -0
  389. package/lib-esm/ActionList2/List.d.ts +26 -0
  390. package/lib-esm/ActionList2/List.js +36 -0
  391. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  392. package/lib-esm/ActionList2/Selection.js +68 -0
  393. package/lib-esm/ActionList2/Visuals.d.ts +9 -0
  394. package/lib-esm/ActionList2/Visuals.js +68 -0
  395. package/lib-esm/ActionList2/index.d.ts +36 -0
  396. package/lib-esm/ActionList2/index.js +33 -0
  397. package/lib-esm/ActionMenu.d.ts +40 -0
  398. package/lib-esm/ActionMenu.js +82 -0
  399. package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  400. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +104 -0
  401. package/lib-esm/AnchoredOverlay/index.d.ts +2 -0
  402. package/lib-esm/AnchoredOverlay/index.js +1 -0
  403. package/lib-esm/Autocomplete/Autocomplete.d.ts +305 -0
  404. package/lib-esm/Autocomplete/Autocomplete.js +123 -0
  405. package/lib-esm/Autocomplete/AutocompleteContext.d.ts +17 -0
  406. package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
  407. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +293 -0
  408. package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
  409. package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +72 -0
  410. package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
  411. package/lib-esm/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  412. package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
  413. package/lib-esm/Autocomplete/index.d.ts +2 -0
  414. package/lib-esm/Autocomplete/index.js +1 -0
  415. package/lib-esm/Avatar.d.ts +14 -0
  416. package/lib-esm/Avatar.js +2 -11
  417. package/lib-esm/AvatarPair.d.ts +8 -0
  418. package/lib-esm/AvatarPair.js +8 -14
  419. package/lib-esm/AvatarStack.d.ts +8 -0
  420. package/lib-esm/AvatarStack.js +12 -21
  421. package/lib-esm/BaseStyles.d.ts +14 -0
  422. package/lib-esm/BaseStyles.js +23 -26
  423. package/lib-esm/BorderBox.d.ts +7 -0
  424. package/lib-esm/BorderBox.js +6 -12
  425. package/lib-esm/Box.d.ts +6 -0
  426. package/lib-esm/Box.js +2 -13
  427. package/lib-esm/BranchName.d.ts +5 -0
  428. package/lib-esm/BranchName.js +2 -13
  429. package/lib-esm/Breadcrumbs.d.ts +41 -0
  430. package/lib-esm/Breadcrumbs.js +58 -0
  431. package/lib-esm/Button/Button.d.ts +284 -0
  432. package/lib-esm/Button/Button.js +3 -10
  433. package/lib-esm/Button/ButtonBase.d.ts +9 -0
  434. package/lib-esm/Button/ButtonBase.js +1 -19
  435. package/lib-esm/Button/ButtonClose.d.ts +279 -0
  436. package/lib-esm/Button/ButtonClose.js +5 -20
  437. package/lib-esm/Button/ButtonDanger.d.ts +284 -0
  438. package/lib-esm/Button/ButtonDanger.js +2 -9
  439. package/lib-esm/Button/ButtonGroup.d.ts +4 -0
  440. package/lib-esm/Button/ButtonGroup.js +2 -7
  441. package/lib-esm/Button/ButtonInvisible.d.ts +284 -0
  442. package/lib-esm/Button/ButtonInvisible.js +3 -10
  443. package/lib-esm/Button/ButtonOutline.d.ts +284 -0
  444. package/lib-esm/Button/ButtonOutline.js +2 -9
  445. package/lib-esm/Button/ButtonPrimary.d.ts +284 -0
  446. package/lib-esm/Button/ButtonPrimary.js +2 -9
  447. package/lib-esm/Button/ButtonStyles.d.ts +2 -0
  448. package/lib-esm/Button/ButtonTableList.d.ts +5 -0
  449. package/lib-esm/Button/ButtonTableList.js +2 -14
  450. package/lib-esm/Button/index.d.ts +16 -0
  451. package/lib-esm/Button/index.js +8 -8
  452. package/lib-esm/Caret.d.ts +21 -0
  453. package/lib-esm/Caret.js +13 -16
  454. package/lib-esm/Checkbox.d.ts +29 -0
  455. package/lib-esm/Checkbox.js +44 -0
  456. package/lib-esm/CircleBadge.d.ts +24 -0
  457. package/lib-esm/CircleBadge.js +3 -19
  458. package/lib-esm/CircleOcticon.d.ts +392 -0
  459. package/lib-esm/CircleOcticon.js +9 -15
  460. package/lib-esm/CounterLabel.d.ts +7 -0
  461. package/lib-esm/CounterLabel.js +4 -16
  462. package/lib-esm/Details.d.ts +5 -0
  463. package/lib-esm/Details.js +2 -10
  464. package/lib-esm/Dialog/ConfirmationDialog.d.ts +44 -0
  465. package/lib-esm/Dialog/ConfirmationDialog.js +169 -0
  466. package/lib-esm/Dialog/Dialog.d.ts +163 -0
  467. package/lib-esm/Dialog/Dialog.js +275 -0
  468. package/lib-esm/Dialog.d.ts +406 -0
  469. package/lib-esm/Dialog.js +31 -46
  470. package/lib-esm/Dropdown.d.ts +1113 -0
  471. package/lib-esm/Dropdown.js +38 -58
  472. package/lib-esm/DropdownMenu/DropdownButton.d.ts +280 -0
  473. package/lib-esm/DropdownMenu/DropdownButton.js +18 -0
  474. package/lib-esm/DropdownMenu/DropdownMenu.d.ts +43 -0
  475. package/lib-esm/DropdownMenu/DropdownMenu.js +77 -0
  476. package/lib-esm/DropdownMenu/index.d.ts +4 -0
  477. package/lib-esm/DropdownMenu/index.js +2 -0
  478. package/lib-esm/DropdownStyles.d.ts +3 -0
  479. package/lib-esm/DropdownStyles.js +6 -6
  480. package/lib-esm/FilterList.d.ts +283 -0
  481. package/lib-esm/FilterList.js +3 -29
  482. package/lib-esm/FilteredActionList/FilteredActionList.d.ts +16 -0
  483. package/lib-esm/FilteredActionList/FilteredActionList.js +109 -0
  484. package/lib-esm/FilteredActionList/index.d.ts +2 -0
  485. package/lib-esm/FilteredActionList/index.js +1 -0
  486. package/lib-esm/FilteredSearch.d.ts +5 -0
  487. package/lib-esm/FilteredSearch.js +2 -11
  488. package/lib-esm/Flash.d.ts +8 -0
  489. package/lib-esm/Flash.js +36 -13
  490. package/lib-esm/Flex.d.ts +7 -0
  491. package/lib-esm/Flex.js +4 -4
  492. package/lib-esm/FormGroup.d.ts +11 -0
  493. package/lib-esm/FormGroup.js +3 -20
  494. package/lib-esm/Grid.d.ts +7 -0
  495. package/lib-esm/Grid.js +5 -7
  496. package/lib-esm/Header.d.ts +23 -0
  497. package/lib-esm/Header.js +6 -34
  498. package/lib-esm/Heading.d.ts +5 -0
  499. package/lib-esm/Heading.js +2 -12
  500. package/lib-esm/Label.d.ts +10 -0
  501. package/lib-esm/Label.js +3 -15
  502. package/lib-esm/LabelGroup.d.ts +5 -0
  503. package/lib-esm/LabelGroup.js +2 -9
  504. package/lib-esm/Link.d.ts +9 -0
  505. package/lib-esm/Link.js +2 -28
  506. package/lib-esm/NewButton/button-base.d.ts +6 -0
  507. package/lib-esm/NewButton/button-base.js +47 -0
  508. package/lib-esm/NewButton/button-counter.d.ts +6 -0
  509. package/lib-esm/NewButton/button-counter.js +18 -0
  510. package/lib-esm/NewButton/button-link.d.ts +26 -0
  511. package/lib-esm/NewButton/button-link.js +15 -0
  512. package/lib-esm/NewButton/button.d.ts +4 -0
  513. package/lib-esm/NewButton/button.js +16 -0
  514. package/lib-esm/NewButton/icon-button.d.ts +4 -0
  515. package/lib-esm/NewButton/icon-button.js +35 -0
  516. package/lib-esm/NewButton/index.d.ts +9 -0
  517. package/lib-esm/NewButton/index.js +8 -0
  518. package/lib-esm/NewButton/styles.d.ts +202 -0
  519. package/lib-esm/NewButton/styles.js +229 -0
  520. package/lib-esm/NewButton/types.d.ts +52 -0
  521. package/lib-esm/NewButton/types.js +6 -0
  522. package/lib-esm/Overlay.d.ts +66 -0
  523. package/lib-esm/Overlay.js +160 -0
  524. package/lib-esm/Pagehead.d.ts +5 -0
  525. package/lib-esm/Pagehead.js +2 -12
  526. package/lib-esm/Pagination/Pagination.d.ts +24 -0
  527. package/lib-esm/Pagination/Pagination.js +15 -28
  528. package/lib-esm/Pagination/index.d.ts +3 -0
  529. package/lib-esm/Pagination/model.d.ts +26 -0
  530. package/lib-esm/Pagination/model.js +1 -1
  531. package/lib-esm/PointerBox.d.ts +11 -0
  532. package/lib-esm/PointerBox.js +4 -11
  533. package/lib-esm/Popover.d.ts +20 -0
  534. package/lib-esm/Popover.js +5 -27
  535. package/lib-esm/Portal/Portal.d.ts +25 -0
  536. package/lib-esm/Portal/Portal.js +83 -0
  537. package/lib-esm/Portal/index.d.ts +4 -0
  538. package/lib-esm/Portal/index.js +3 -0
  539. package/lib-esm/Position.d.ts +34 -0
  540. package/lib-esm/Position.js +42 -37
  541. package/lib-esm/ProgressBar.d.ts +26 -0
  542. package/lib-esm/ProgressBar.js +9 -25
  543. package/lib-esm/SelectMenu/SelectMenu.d.ts +1670 -0
  544. package/lib-esm/SelectMenu/SelectMenu.js +9 -20
  545. package/lib-esm/SelectMenu/SelectMenuContext.d.ts +8 -0
  546. package/lib-esm/SelectMenu/SelectMenuContext.js +1 -1
  547. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +5 -0
  548. package/lib-esm/SelectMenu/SelectMenuDivider.js +3 -10
  549. package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +9 -0
  550. package/lib-esm/SelectMenu/SelectMenuFilter.js +9 -17
  551. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +5 -0
  552. package/lib-esm/SelectMenu/SelectMenuFooter.js +3 -10
  553. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +10 -0
  554. package/lib-esm/SelectMenu/SelectMenuHeader.js +3 -14
  555. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +14 -0
  556. package/lib-esm/SelectMenu/SelectMenuItem.js +7 -15
  557. package/lib-esm/SelectMenu/SelectMenuList.d.ts +5 -0
  558. package/lib-esm/SelectMenu/SelectMenuList.js +3 -10
  559. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  560. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +6 -12
  561. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +14 -0
  562. package/lib-esm/SelectMenu/SelectMenuModal.js +8 -18
  563. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +13 -0
  564. package/lib-esm/SelectMenu/SelectMenuTab.js +5 -17
  565. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  566. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +3 -13
  567. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +10 -0
  568. package/lib-esm/SelectMenu/SelectMenuTabs.js +3 -10
  569. package/lib-esm/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  570. package/lib-esm/SelectMenu/hooks/useKeyboardNav.js +2 -0
  571. package/lib-esm/SelectMenu/index.d.ts +2 -0
  572. package/lib-esm/SelectPanel/SelectPanel.d.ts +25 -0
  573. package/lib-esm/SelectPanel/SelectPanel.js +127 -0
  574. package/lib-esm/SelectPanel/index.d.ts +2 -0
  575. package/lib-esm/SelectPanel/index.js +1 -0
  576. package/lib-esm/SideNav.d.ts +34 -0
  577. package/lib-esm/SideNav.js +29 -45
  578. package/lib-esm/Spinner.d.ts +16 -0
  579. package/lib-esm/Spinner.js +45 -0
  580. package/lib-esm/StateLabel.d.ts +15 -0
  581. package/lib-esm/StateLabel.js +55 -23
  582. package/lib-esm/StyledOcticon.d.ts +11 -0
  583. package/lib-esm/StyledOcticon.js +1 -12
  584. package/lib-esm/SubNav.d.ts +26 -0
  585. package/lib-esm/SubNav.js +24 -48
  586. package/lib-esm/TabNav.d.ts +19 -0
  587. package/lib-esm/TabNav.js +13 -33
  588. package/lib-esm/Text.d.ts +6 -0
  589. package/lib-esm/Text.js +0 -10
  590. package/lib-esm/TextInput.d.ts +14 -0
  591. package/lib-esm/TextInput.js +24 -62
  592. package/lib-esm/TextInputWithTokens.d.ts +328 -0
  593. package/lib-esm/TextInputWithTokens.js +291 -0
  594. package/lib-esm/ThemeProvider.d.ts +26 -0
  595. package/lib-esm/ThemeProvider.js +161 -0
  596. package/lib-esm/Timeline.d.ts +33 -0
  597. package/lib-esm/Timeline.js +26 -81
  598. package/lib-esm/Token/AvatarToken.d.ts +7 -0
  599. package/lib-esm/Token/AvatarToken.js +43 -0
  600. package/lib-esm/Token/IssueLabelToken.d.ts +14 -0
  601. package/lib-esm/Token/IssueLabelToken.js +124 -0
  602. package/lib-esm/Token/Token.d.ts +15 -0
  603. package/lib-esm/Token/Token.js +84 -0
  604. package/lib-esm/Token/TokenBase.d.ts +31 -0
  605. package/lib-esm/Token/TokenBase.js +83 -0
  606. package/lib-esm/Token/_RemoveTokenButton.d.ts +12 -0
  607. package/lib-esm/Token/_RemoveTokenButton.js +69 -0
  608. package/lib-esm/Token/_TokenTextContainer.d.ts +3 -0
  609. package/lib-esm/Token/_TokenTextContainer.js +6 -0
  610. package/lib-esm/Token/index.d.ts +3 -0
  611. package/lib-esm/Token/index.js +3 -0
  612. package/lib-esm/Tooltip.d.ts +17 -0
  613. package/lib-esm/Tooltip.js +4 -19
  614. package/lib-esm/Truncate.d.ts +10 -0
  615. package/lib-esm/Truncate.js +2 -15
  616. package/lib-esm/UnderlineNav.d.ts +24 -0
  617. package/lib-esm/UnderlineNav.js +5 -28
  618. package/lib-esm/_TextInputWrapper.d.ts +10 -0
  619. package/lib-esm/_TextInputWrapper.js +31 -0
  620. package/lib-esm/_UnstyledTextInput.d.ts +2 -0
  621. package/lib-esm/_UnstyledTextInput.js +7 -0
  622. package/lib-esm/behaviors/anchoredPosition.d.ts +89 -0
  623. package/lib-esm/behaviors/anchoredPosition.js +309 -0
  624. package/lib-esm/behaviors/focusTrap.d.ts +12 -0
  625. package/lib-esm/behaviors/focusTrap.js +170 -0
  626. package/lib-esm/behaviors/focusZone.d.ts +137 -0
  627. package/lib-esm/behaviors/focusZone.js +560 -0
  628. package/lib-esm/behaviors/scrollIntoViewingArea.d.ts +1 -0
  629. package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
  630. package/lib-esm/constants.d.ts +20 -0
  631. package/lib-esm/constants.js +9 -23
  632. package/lib-esm/drafts.d.ts +8 -0
  633. package/lib-esm/drafts.js +9 -0
  634. package/lib-esm/hooks/index.d.ts +11 -0
  635. package/lib-esm/hooks/index.js +7 -0
  636. package/lib-esm/hooks/useAnchoredPosition.d.ts +20 -0
  637. package/lib-esm/hooks/useAnchoredPosition.js +35 -0
  638. package/lib-esm/hooks/useCombinedRefs.d.ts +10 -0
  639. package/lib-esm/hooks/useCombinedRefs.js +37 -0
  640. package/lib-esm/hooks/useDetails.d.ts +17 -0
  641. package/lib-esm/hooks/useDetails.js +10 -3
  642. package/lib-esm/hooks/useDialog.d.ts +16 -0
  643. package/lib-esm/hooks/useDialog.js +21 -6
  644. package/lib-esm/hooks/useFocusTrap.d.ts +32 -0
  645. package/lib-esm/hooks/useFocusTrap.js +54 -0
  646. package/lib-esm/hooks/useFocusZone.d.ts +23 -0
  647. package/lib-esm/hooks/useFocusZone.js +37 -0
  648. package/lib-esm/hooks/useOnEscapePress.d.ts +23 -0
  649. package/lib-esm/hooks/useOnEscapePress.js +59 -0
  650. package/lib-esm/hooks/useOnOutsideClick.d.ts +8 -0
  651. package/lib-esm/hooks/useOnOutsideClick.js +79 -0
  652. package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +8 -0
  653. package/lib-esm/hooks/useOpenAndCloseFocus.js +27 -0
  654. package/lib-esm/hooks/useOverlay.d.ts +15 -0
  655. package/lib-esm/hooks/useOverlay.js +30 -0
  656. package/lib-esm/hooks/useProvidedRefOrCreate.d.ts +10 -0
  657. package/lib-esm/hooks/useProvidedRefOrCreate.js +14 -0
  658. package/lib-esm/hooks/useProvidedStateOrCreate.d.ts +10 -0
  659. package/lib-esm/hooks/useProvidedStateOrCreate.js +20 -0
  660. package/lib-esm/hooks/useRenderForcingRef.d.ts +8 -0
  661. package/lib-esm/hooks/useRenderForcingRef.js +18 -0
  662. package/lib-esm/hooks/useResizeObserver.d.ts +1 -0
  663. package/lib-esm/hooks/useResizeObserver.js +10 -0
  664. package/lib-esm/hooks/useSafeTimeout.d.ts +12 -0
  665. package/lib-esm/hooks/useSafeTimeout.js +31 -0
  666. package/lib-esm/hooks/useScrollFlash.d.ts +6 -0
  667. package/lib-esm/hooks/useScrollFlash.js +22 -0
  668. package/lib-esm/index.d.ts +120 -0
  669. package/lib-esm/index.js +29 -7
  670. package/lib-esm/polyfills/eventListenerSignal.d.ts +6 -0
  671. package/lib-esm/polyfills/eventListenerSignal.js +57 -0
  672. package/lib-esm/sx.d.ts +14 -0
  673. package/lib-esm/sx.js +3 -5
  674. package/lib-esm/theme-preval.d.ts +49 -0
  675. package/lib-esm/theme-preval.js +3119 -357
  676. package/lib-esm/theme.d.ts +80 -0
  677. package/lib-esm/theme.js +3 -8
  678. package/lib-esm/utils/create-slots.d.ts +17 -0
  679. package/lib-esm/utils/create-slots.js +84 -0
  680. package/lib-esm/utils/deprecate.d.ts +18 -0
  681. package/lib-esm/utils/deprecate.js +6 -5
  682. package/lib-esm/utils/isNumeric.d.ts +1 -0
  683. package/lib-esm/utils/isNumeric.js +1 -0
  684. package/lib-esm/utils/iterateFocusableElements.d.ts +42 -0
  685. package/lib-esm/utils/iterateFocusableElements.js +102 -0
  686. package/lib-esm/utils/ssr.d.ts +1 -0
  687. package/lib-esm/utils/ssr.js +1 -0
  688. package/lib-esm/utils/test-deprecations.d.ts +1 -0
  689. package/lib-esm/utils/test-deprecations.js +1 -1
  690. package/lib-esm/utils/{types.js → test-helpers.d.ts} +0 -0
  691. package/lib-esm/utils/test-helpers.js +7 -0
  692. package/lib-esm/utils/test-matchers.d.ts +1 -0
  693. package/lib-esm/utils/test-matchers.js +7 -49
  694. package/lib-esm/utils/testing.d.ts +545 -0
  695. package/lib-esm/utils/testing.js +60 -46
  696. package/lib-esm/utils/theme.d.ts +9 -0
  697. package/lib-esm/utils/theme.js +66 -0
  698. package/lib-esm/utils/types/AriaRole.d.ts +1 -0
  699. package/lib-esm/utils/types/AriaRole.js +1 -0
  700. package/lib-esm/utils/types/ComponentProps.d.ts +9 -0
  701. package/lib-esm/utils/types/ComponentProps.js +1 -0
  702. package/lib-esm/utils/types/Flatten.d.ts +4 -0
  703. package/lib-esm/utils/types/Flatten.js +1 -0
  704. package/lib-esm/utils/types/KeyPaths.d.ts +3 -0
  705. package/lib-esm/utils/types/KeyPaths.js +1 -0
  706. package/lib-esm/utils/types/MandateProps.d.ts +3 -0
  707. package/lib-esm/utils/types/MandateProps.js +1 -0
  708. package/lib-esm/utils/types/Merge.d.ts +19 -0
  709. package/lib-esm/utils/types/Merge.js +1 -0
  710. package/lib-esm/utils/types/index.d.ts +5 -0
  711. package/lib-esm/utils/types/index.js +5 -0
  712. package/lib-esm/utils/uniqueId.d.ts +1 -0
  713. package/lib-esm/utils/uniqueId.js +5 -0
  714. package/lib-esm/utils/use-force-update.d.ts +1 -0
  715. package/lib-esm/utils/use-force-update.js +6 -0
  716. package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  717. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  718. package/lib-esm/utils/userAgent.d.ts +1 -0
  719. package/lib-esm/utils/userAgent.js +8 -0
  720. package/package.json +114 -94
  721. package/index.d.ts +0 -828
  722. package/lib/Breadcrumb.js +0 -96
  723. package/lib/hooks/useMouseIntent.js +0 -58
  724. package/lib/stories/Button.stories.js +0 -100
  725. package/lib-esm/Breadcrumb.js +0 -70
  726. package/lib-esm/hooks/useMouseIntent.js +0 -50
  727. package/lib-esm/stories/Button.stories.js +0 -65
@@ -3,8 +3,11 @@ import { promisify } from 'util';
3
3
  import renderer from 'react-test-renderer';
4
4
  import enzyme from 'enzyme';
5
5
  import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
- import { ThemeProvider } from 'styled-components';
6
+ import { cleanup, render as HTMLRender } from '@testing-library/react';
7
+ import { axe, toHaveNoViolations } from 'jest-axe';
8
+ import { ThemeProvider } from '..';
7
9
  import { default as defaultTheme } from '../theme';
10
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
8
11
  const readFile = promisify(require('fs').readFile);
9
12
  export const COMPONENT_DISPLAY_NAME_REGEX = /^[A-Z][A-Za-z]+(\.[A-Z][A-Za-z]+)*$/;
10
13
  enzyme.configure({
@@ -13,6 +16,7 @@ enzyme.configure({
13
16
  export function mount(component) {
14
17
  return enzyme.mount(component);
15
18
  }
19
+
16
20
  /**
17
21
  * Render the component (a React.createElement() or JSX expression)
18
22
  * into its intermediate object representation with 'type',
@@ -24,9 +28,10 @@ export function mount(component) {
24
28
  * expect(render(<Foo />)).toEqual(render(<div foo='bar' />))
25
29
  * ```
26
30
  */
27
-
28
- export function render(component) {
29
- return renderer.create(component).toJSON();
31
+ export function render(component, theme = defaultTheme) {
32
+ return renderer.create( /*#__PURE__*/React.createElement(ThemeProvider, {
33
+ theme: theme
34
+ }, component)).toJSON();
30
35
  }
31
36
  /**
32
37
  * Render the component (a React.createElement() or JSX expression)
@@ -62,11 +67,6 @@ export function renderClasses(component) {
62
67
  export function rendersClass(node, klass) {
63
68
  return renderClasses(node).includes(klass);
64
69
  }
65
- export function renderWithTheme(node, theme = defaultTheme) {
66
- return render( /*#__PURE__*/React.createElement(ThemeProvider, {
67
- theme: theme
68
- }, node));
69
- }
70
70
  export function px(value) {
71
71
  return typeof value === 'number' ? `${value}px` : value;
72
72
  }
@@ -87,11 +87,12 @@ export function getComputedStyles(className) {
87
87
  const computed = {};
88
88
 
89
89
  for (const sheet of document.styleSheets) {
90
+ // CSSRulesLists assumes every rule is a CSSRule, not a CSSStyleRule
90
91
  for (const rule of sheet.cssRules) {
91
- if (rule.type === 1) {
92
- readRule(rule, computed);
93
- } else if (rule.type === 4) {
92
+ if (rule instanceof CSSMediaRule) {
94
93
  readMedia(rule);
94
+ } else if (rule instanceof CSSStyleRule) {
95
+ readRule(rule, computed);
95
96
  } else {// console.warn('rule.type =', rule.type)
96
97
  }
97
98
  }
@@ -99,6 +100,18 @@ export function getComputedStyles(className) {
99
100
 
100
101
  return computed;
101
102
 
103
+ function matchesSafe(node, selector) {
104
+ if (!selector) {
105
+ return false;
106
+ }
107
+
108
+ try {
109
+ return node.matches(selector);
110
+ } catch (error) {
111
+ return false;
112
+ }
113
+ }
114
+
102
115
  function readRule(rule, dest) {
103
116
  if (matchesSafe(div, rule.selectorText)) {
104
117
  const {
@@ -119,7 +132,9 @@ export function getComputedStyles(className) {
119
132
  const dest = {};
120
133
 
121
134
  for (const rule of mediaRule.cssRules) {
122
- readRule(rule, dest);
135
+ if (rule instanceof CSSStyleRule) {
136
+ readRule(rule, dest);
137
+ }
123
138
  } // Don't add media rule to computed styles
124
139
  // if no styles were actually applied
125
140
 
@@ -128,18 +143,6 @@ export function getComputedStyles(className) {
128
143
  computed[key] = dest;
129
144
  }
130
145
  }
131
-
132
- function matchesSafe(node, selector) {
133
- if (!selector) {
134
- return false;
135
- }
136
-
137
- try {
138
- return node.matches(selector);
139
- } catch (error) {
140
- return false;
141
- }
142
- }
143
146
  }
144
147
  /**
145
148
  * This provides a layer of compatibility between the render() function from
@@ -175,26 +178,16 @@ export function unloadCSS(path) {
175
178
  // to render without errors, you can pass a `toRender` function that
176
179
  // returns an element ready to be rendered.
177
180
 
178
- export function behavesAsComponent(Component, systemPropArray, toRender = null, options) {
179
- if (typeof toRender === 'object' && !options) {
180
- options = toRender;
181
- toRender = null;
182
- }
183
-
181
+ export function behavesAsComponent({
182
+ Component,
183
+ toRender,
184
+ options
185
+ }) {
184
186
  options = options || {};
185
187
 
186
188
  const getElement = () => toRender ? toRender() : /*#__PURE__*/React.createElement(Component, null);
187
189
 
188
- it('implements system props', () => {
189
- for (const systemProps of systemPropArray) {
190
- expect(Component).toImplementSystemProps(systemProps);
191
- }
192
- });
193
-
194
190
  if (!options.skipSx) {
195
- it('implements the sx prop', () => {
196
- expect(Component).toImplementSxProp();
197
- });
198
191
  it('implements sx prop behavior', () => {
199
192
  expect(getElement()).toImplementSxBehavior();
200
193
  });
@@ -202,11 +195,11 @@ export function behavesAsComponent(Component, systemPropArray, toRender = null,
202
195
 
203
196
  if (!options.skipAs) {
204
197
  it('respects the as prop', () => {
205
- const As = React.forwardRef((_props, ref) => /*#__PURE__*/React.createElement("div", {
198
+ const As = /*#__PURE__*/React.forwardRef((_props, ref) => /*#__PURE__*/React.createElement("div", {
206
199
  className: "as-component",
207
200
  ref: ref
208
201
  }));
209
- const elem = React.cloneElement(getElement(), {
202
+ const elem = /*#__PURE__*/React.cloneElement(getElement(), {
210
203
  as: As
211
204
  });
212
205
  expect(render(elem)).toEqual(render( /*#__PURE__*/React.createElement(As, null)));
@@ -216,17 +209,38 @@ export function behavesAsComponent(Component, systemPropArray, toRender = null,
216
209
  it('sets a valid displayName', () => {
217
210
  expect(Component.displayName).toMatch(COMPONENT_DISPLAY_NAME_REGEX);
218
211
  });
219
- it('sets the default theme', () => {
220
- expect(getElement()).toSetDefaultTheme();
221
- });
222
212
  it('renders consistently', () => {
223
213
  expect(render(getElement())).toMatchSnapshot();
224
214
  });
225
- }
215
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
216
+
226
217
  export function checkExports(path, exports) {
227
218
  it('has declared exports', () => {
219
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
228
220
  const mod = require(`../${path}`);
229
221
 
230
222
  expect(mod).toSetExports(exports);
231
223
  });
224
+ }
225
+ expect.extend(toHaveNoViolations);
226
+ export function checkStoriesForAxeViolations(name) {
227
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
228
+ const stories = require(`../stories/${name}.stories`); // eslint-disable-next-line @typescript-eslint/no-unused-vars -- _meta
229
+
230
+
231
+ const {
232
+ default: _meta,
233
+ ...Stories
234
+ } = stories;
235
+ Object.values(Stories).map(Story => {
236
+ if (typeof Story !== 'function') return;
237
+ it(`story ${Story.storyName} should have no axe violations`, async () => {
238
+ const {
239
+ container
240
+ } = HTMLRender( /*#__PURE__*/React.createElement(Story, null));
241
+ const results = await axe(container);
242
+ expect(results).toHaveNoViolations();
243
+ cleanup();
244
+ });
245
+ });
232
246
  }
@@ -0,0 +1,9 @@
1
+ export function fontStack(fonts: any): any;
2
+ export function isShadowValue(value: any): boolean;
3
+ export function isColorValue(value: any): boolean;
4
+ export function filterObject(obj: any, predicate: any): {};
5
+ export function partitionColors(colors: any): {
6
+ colors: {};
7
+ shadows: {};
8
+ };
9
+ export function omitScale(obj: any): any;
@@ -0,0 +1,66 @@
1
+ // Utility functions used in theme-preval.js
2
+ // This file needs to be a JavaScript file using CommonJS to be compatiable with preval
3
+ const isEmpty = require('lodash.isempty');
4
+
5
+ const isObject = require('lodash.isobject');
6
+
7
+ const chroma = require('chroma-js');
8
+
9
+ function fontStack(fonts) {
10
+ return fonts.map(font => font.includes(' ') ? `"${font}"` : font).join(', ');
11
+ } // The following functions are a temporary measure for splitting shadow values out from the colors object.
12
+ // Eventually, we will push these structural changes upstream to primer/primitives so this data manipulation
13
+ // will not be needed.
14
+
15
+
16
+ function isShadowValue(value) {
17
+ return typeof value === 'string' && /(inset\s|)([0-9.]+(\w*)\s){1,4}(rgb[a]?\(.*\)|\w+)/.test(value);
18
+ }
19
+
20
+ function isColorValue(value) {
21
+ return chroma.valid(value);
22
+ }
23
+
24
+ function filterObject(obj, predicate) {
25
+ if (Array.isArray(obj)) {
26
+ return obj.filter(predicate);
27
+ }
28
+
29
+ return Object.entries(obj).reduce((acc, [key, value]) => {
30
+ if (isObject(value)) {
31
+ const result = filterObject(value, predicate); // Don't include empty objects or arrays
32
+
33
+ if (!isEmpty(result)) {
34
+ acc[key] = result;
35
+ }
36
+ } else if (predicate(value)) {
37
+ acc[key] = value;
38
+ }
39
+
40
+ return acc;
41
+ }, {});
42
+ }
43
+
44
+ function partitionColors(colors) {
45
+ return {
46
+ colors: filterObject(colors, value => isColorValue(value)),
47
+ shadows: filterObject(colors, value => isShadowValue(value))
48
+ };
49
+ }
50
+
51
+ function omitScale(obj) {
52
+ const {
53
+ scale,
54
+ ...rest
55
+ } = obj;
56
+ return rest;
57
+ }
58
+
59
+ module.exports = {
60
+ fontStack,
61
+ isShadowValue,
62
+ isColorValue,
63
+ filterObject,
64
+ partitionColors,
65
+ omitScale
66
+ };
@@ -0,0 +1 @@
1
+ export declare type AriaRole = 'alert' | 'alertdialog' | 'application' | 'article' | 'banner' | 'button' | 'cell' | 'checkbox' | 'columnheader' | 'combobox' | 'complementary' | 'contentinfo' | 'definition' | 'dialog' | 'directory' | 'document' | 'feed' | 'figure' | 'form' | 'grid' | 'gridcell' | 'group' | 'heading' | 'img' | 'link' | 'list' | 'listbox' | 'listitem' | 'log' | 'main' | 'marquee' | 'math' | 'menu' | 'menubar' | 'menuitem' | 'menuitemcheckbox ' | 'menuitemradio' | 'navigation' | 'none' | 'note' | 'option' | 'presentation' | 'progressbar' | 'radio' | 'radiogroup' | 'region' | 'row' | 'rowgroup' | 'rowheader' | 'scrollbar' | 'search' | 'searchbox' | 'separator' | 'slider' | 'spinbutton' | 'status' | 'switch' | 'tab' | 'table' | 'tablist' | 'tabpanel' | 'term' | 'textbox' | 'timer' | 'toolbar' | 'tooltip' | 'tree' | 'treegrid' | 'treeitem';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Extract a component's props
4
+ *
5
+ * Source: https://react-typescript-cheatsheet.netlify.app/docs/advanced/patterns_by_usecase#wrappingmirroring-a-component
6
+ *
7
+ * @example ComponentProps<typeof MyComponent>
8
+ */
9
+ export declare type ComponentProps<T> = T extends React.ComponentType<infer Props> ? Props extends object ? Props : never : never;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Contruct a type describing the items in `T`, if `T` is an array.
3
+ */
4
+ export declare type Flatten<T extends unknown> = T extends (infer U)[] ? U : never;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare type KeyPaths<O extends Record<string, unknown>> = {
2
+ [K in keyof O]: K extends string ? O[K] extends string ? `${K}` : `${K}.${KeyPaths<O[K]>}` : never;
3
+ }[keyof O];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare type MandateProps<T extends unknown, K extends keyof T> = Omit<T, K> & {
2
+ [MK in K]-?: NonNullable<T[MK]>;
3
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Given two object types A and B, return a type with all the properties of A that aren't also
3
+ * properties of B, and all the properties of B.
4
+ *
5
+ * Useful when we have a component that spreads a "rest" of its props on a subcomponent:
6
+ *
7
+ * ```ts
8
+ * interface OwnProps {
9
+ * foo: string
10
+ * }
11
+ *
12
+ * type MyComponentProps = Merge<SubcomponentProps, OwnProps>
13
+ * const MyComponent = ({foo, ...rest}: MyComponentProps) => {
14
+ * // ...
15
+ * return <SubComponent {...rest} />
16
+ * }
17
+ * ```
18
+ */
19
+ export declare type Merge<A = {}, B = {}> = Omit<A, keyof B> & B;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from './AriaRole';
2
+ export * from './ComponentProps';
3
+ export * from './Flatten';
4
+ export * from './Merge';
5
+ export * from './MandateProps';
@@ -0,0 +1,5 @@
1
+ export * from './AriaRole';
2
+ export * from './ComponentProps';
3
+ export * from './Flatten';
4
+ export * from './Merge';
5
+ export * from './MandateProps';
@@ -0,0 +1 @@
1
+ export declare function uniqueId(): string;
@@ -0,0 +1,5 @@
1
+ // Note: uniqueId may be unsafe in SSR contexts if it is used create DOM IDs or otherwise cause a hydration warning. Use useSSRSafeId instead.
2
+ let idSeed = 10000;
3
+ export function uniqueId() {
4
+ return `__primer_id_${idSeed++}`;
5
+ }
@@ -0,0 +1 @@
1
+ export declare const useForceUpdate: () => () => void;
@@ -0,0 +1,6 @@
1
+ // Inspired from reach-ui: https://github.com/reach/reach-ui/blob/develop/packages/utils/src/use-force-update.ts
2
+ import React from 'react';
3
+ export const useForceUpdate = () => {
4
+ const [, rerender] = React.useState({});
5
+ return React.useCallback(() => rerender({}), []);
6
+ };
@@ -0,0 +1,3 @@
1
+ import { useEffect } from 'react';
2
+ declare const useIsomorphicLayoutEffect: typeof useEffect;
3
+ export default useIsomorphicLayoutEffect;
@@ -0,0 +1,3 @@
1
+ import { useEffect, useLayoutEffect } from 'react';
2
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;
3
+ export default useIsomorphicLayoutEffect;
@@ -0,0 +1 @@
1
+ export declare function isMacOS(): boolean;
@@ -0,0 +1,8 @@
1
+ let isMac = undefined;
2
+ export function isMacOS() {
3
+ if (isMac === undefined) {
4
+ isMac = /^mac/i.test(window.navigator.platform);
5
+ }
6
+
7
+ return isMac;
8
+ }