@primer/components 0.0.0-202111023322 → 0.0.0-2021111104725

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 (947) hide show
  1. package/CHANGELOG.md +943 -38
  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.js +40 -0
  15. package/lib/ActionList/Group.js +35 -0
  16. package/lib/ActionList/Header.js +51 -0
  17. package/lib/ActionList/Item.js +276 -0
  18. package/lib/ActionList/List.js +199 -0
  19. package/lib/ActionList/index.js +29 -0
  20. package/lib/ActionList2/Description.js +57 -0
  21. package/lib/ActionList2/Divider.js +35 -0
  22. package/lib/ActionList2/Group.js +106 -0
  23. package/lib/ActionList2/Item.js +244 -0
  24. package/lib/ActionList2/LinkItem.js +57 -0
  25. package/lib/ActionList2/List.js +58 -0
  26. package/lib/ActionList2/Selection.js +86 -0
  27. package/lib/ActionList2/Visuals.js +90 -0
  28. package/lib/ActionList2/index.js +47 -0
  29. package/lib/ActionMenu.js +103 -0
  30. package/lib/AnchoredOverlay/AnchoredOverlay.js +124 -0
  31. package/lib/AnchoredOverlay/index.js +13 -0
  32. package/lib/Autocomplete/Autocomplete.js +145 -0
  33. package/lib/Autocomplete/AutocompleteContext.js +11 -0
  34. package/lib/Autocomplete/AutocompleteInput.js +157 -0
  35. package/lib/Autocomplete/AutocompleteMenu.js +224 -0
  36. package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
  37. package/lib/Autocomplete/index.js +15 -0
  38. package/lib/Avatar.js +1 -12
  39. package/lib/AvatarPair.js +9 -16
  40. package/lib/AvatarStack.js +12 -23
  41. package/lib/BaseStyles.js +25 -31
  42. package/lib/BorderBox.js +5 -16
  43. package/lib/Box.js +2 -15
  44. package/lib/BranchName.js +1 -14
  45. package/lib/Breadcrumbs.js +82 -0
  46. package/lib/Button/Button.js +3 -15
  47. package/lib/Button/ButtonBase.js +2 -25
  48. package/lib/Button/ButtonClose.js +9 -26
  49. package/lib/Button/ButtonDanger.js +2 -14
  50. package/lib/Button/ButtonGroup.js +2 -8
  51. package/lib/Button/ButtonInvisible.js +3 -15
  52. package/lib/Button/ButtonOutline.js +2 -14
  53. package/lib/Button/ButtonPrimary.js +2 -14
  54. package/lib/Button/ButtonTableList.js +1 -15
  55. package/lib/Button/index.js +9 -59
  56. package/lib/Caret.js +14 -17
  57. package/lib/Checkbox.js +64 -0
  58. package/lib/CircleBadge.js +2 -20
  59. package/lib/CircleOcticon.js +9 -18
  60. package/lib/CounterLabel.js +3 -17
  61. package/lib/Details.js +2 -12
  62. package/lib/Dialog/ConfirmationDialog.js +191 -0
  63. package/lib/Dialog/Dialog.js +311 -0
  64. package/lib/Dialog.js +34 -49
  65. package/lib/Dropdown.js +45 -60
  66. package/lib/DropdownMenu/DropdownButton.js +33 -0
  67. package/lib/DropdownMenu/DropdownMenu.js +94 -0
  68. package/lib/DropdownMenu/index.js +21 -0
  69. package/lib/DropdownStyles.js +6 -6
  70. package/lib/FilterList.js +2 -30
  71. package/lib/FilteredActionList/FilteredActionList.js +137 -0
  72. package/lib/FilteredActionList/index.js +13 -0
  73. package/lib/FilteredSearch.js +1 -12
  74. package/lib/Flash.js +35 -14
  75. package/lib/Flex.js +3 -5
  76. package/lib/FormGroup.js +2 -22
  77. package/lib/Grid.js +4 -9
  78. package/lib/Header.js +7 -37
  79. package/lib/Heading.js +1 -13
  80. package/lib/Label.js +5 -19
  81. package/lib/LabelGroup.js +1 -9
  82. package/lib/Link.js +2 -30
  83. package/lib/NewButton/button-counter.js +31 -0
  84. package/lib/NewButton/button.js +308 -0
  85. package/lib/NewButton/index.js +15 -0
  86. package/lib/{utils → NewButton}/types.js +0 -0
  87. package/lib/Overlay.js +184 -0
  88. package/lib/Pagehead.js +1 -13
  89. package/lib/Pagination/Pagination.js +14 -29
  90. package/lib/Pagination/model.js +1 -1
  91. package/lib/PointerBox.js +4 -13
  92. package/lib/Popover.js +15 -38
  93. package/lib/Portal/Portal.js +101 -0
  94. package/lib/Portal/index.js +17 -0
  95. package/lib/Position.js +46 -46
  96. package/lib/ProgressBar.js +8 -27
  97. package/lib/SelectMenu/SelectMenu.js +32 -44
  98. package/lib/SelectMenu/SelectMenuContext.js +1 -1
  99. package/lib/SelectMenu/SelectMenuDivider.js +6 -14
  100. package/lib/SelectMenu/SelectMenuFilter.js +13 -21
  101. package/lib/SelectMenu/SelectMenuFooter.js +6 -14
  102. package/lib/SelectMenu/SelectMenuHeader.js +4 -17
  103. package/lib/SelectMenu/SelectMenuItem.js +13 -21
  104. package/lib/SelectMenu/SelectMenuList.js +6 -14
  105. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +6 -17
  106. package/lib/SelectMenu/SelectMenuModal.js +11 -23
  107. package/lib/SelectMenu/SelectMenuTab.js +16 -26
  108. package/lib/SelectMenu/SelectMenuTabPanel.js +14 -25
  109. package/lib/SelectMenu/SelectMenuTabs.js +10 -17
  110. package/lib/SelectMenu/hooks/useKeyboardNav.js +2 -0
  111. package/lib/SelectMenu/index.js +7 -5
  112. package/lib/SelectPanel/SelectPanel.js +147 -0
  113. package/lib/SelectPanel/index.js +13 -0
  114. package/lib/SideNav.js +35 -51
  115. package/lib/Spinner.js +58 -0
  116. package/lib/StateLabel.js +53 -23
  117. package/lib/StyledOcticon.js +1 -15
  118. package/lib/SubNav.js +27 -49
  119. package/lib/TabNav.js +15 -37
  120. package/lib/Text.js +0 -12
  121. package/lib/TextInput.js +25 -76
  122. package/lib/TextInputWithTokens.js +318 -0
  123. package/lib/ThemeProvider.js +193 -0
  124. package/lib/Timeline.js +34 -87
  125. package/lib/Token/AvatarToken.js +64 -0
  126. package/lib/Token/IssueLabelToken.js +144 -0
  127. package/lib/Token/Token.js +105 -0
  128. package/lib/Token/TokenBase.js +104 -0
  129. package/lib/Token/_RemoveTokenButton.js +90 -0
  130. package/lib/Token/_TokenTextContainer.js +17 -0
  131. package/lib/Token/index.js +31 -0
  132. package/lib/Tooltip.js +4 -21
  133. package/lib/Truncate.js +2 -18
  134. package/lib/UnderlineNav.js +3 -29
  135. package/lib/_TextInputWrapper.js +51 -0
  136. package/lib/_UnstyledTextInput.js +20 -0
  137. package/lib/behaviors/anchoredPosition.js +316 -0
  138. package/lib/behaviors/focusTrap.js +179 -0
  139. package/lib/behaviors/focusZone.js +578 -0
  140. package/lib/behaviors/scrollIntoViewingArea.js +39 -0
  141. package/lib/constants.js +11 -27
  142. package/lib/drafts.js +31 -0
  143. package/lib/hooks/index.js +61 -0
  144. package/lib/hooks/useAnchoredPosition.js +51 -0
  145. package/lib/hooks/useCombinedRefs.js +47 -0
  146. package/lib/hooks/useDetails.js +10 -3
  147. package/lib/hooks/useDialog.js +21 -6
  148. package/lib/hooks/useFocusTrap.js +69 -0
  149. package/lib/hooks/useFocusZone.js +53 -0
  150. package/lib/hooks/useOnEscapePress.js +69 -0
  151. package/lib/hooks/useOnOutsideClick.js +90 -0
  152. package/lib/hooks/useOpenAndCloseFocus.js +36 -0
  153. package/lib/hooks/useOverlay.js +43 -0
  154. package/lib/hooks/useProvidedRefOrCreate.js +24 -0
  155. package/lib/hooks/useProvidedStateOrCreate.js +27 -0
  156. package/lib/hooks/useRenderForcingRef.js +25 -0
  157. package/lib/hooks/useResizeObserver.js +20 -0
  158. package/lib/hooks/useSafeTimeout.js +38 -0
  159. package/lib/hooks/useScrollFlash.js +29 -0
  160. package/lib/index.js +191 -7
  161. package/lib/polyfills/eventListenerSignal.js +64 -0
  162. package/lib/script/component-status-project/build.d.ts +1 -0
  163. package/lib/src/ActionList/Divider.d.ts +9 -0
  164. package/lib/src/ActionList/Group.d.ts +28 -0
  165. package/lib/src/ActionList/Header.d.ts +29 -0
  166. package/lib/src/ActionList/Item.d.ts +98 -0
  167. package/lib/src/ActionList/List.d.ts +88 -0
  168. package/lib/src/ActionList/index.d.ts +17 -0
  169. package/lib/src/ActionList2/Description.d.ts +12 -0
  170. package/lib/src/ActionList2/Divider.d.ts +5 -0
  171. package/lib/src/ActionList2/Group.d.ts +37 -0
  172. package/lib/src/ActionList2/Item.d.ts +63 -0
  173. package/lib/src/ActionList2/LinkItem.d.ts +17 -0
  174. package/lib/src/ActionList2/List.d.ts +26 -0
  175. package/lib/src/ActionList2/Selection.d.ts +5 -0
  176. package/lib/src/ActionList2/Visuals.d.ts +9 -0
  177. package/lib/src/ActionList2/index.d.ts +36 -0
  178. package/lib/src/ActionMenu.d.ts +40 -0
  179. package/lib/src/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  180. package/lib/src/AnchoredOverlay/index.d.ts +2 -0
  181. package/lib/src/Autocomplete/Autocomplete.d.ts +305 -0
  182. package/lib/src/Autocomplete/AutocompleteContext.d.ts +17 -0
  183. package/lib/src/Autocomplete/AutocompleteInput.d.ts +293 -0
  184. package/lib/src/Autocomplete/AutocompleteMenu.d.ts +72 -0
  185. package/lib/src/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  186. package/lib/src/Autocomplete/index.d.ts +2 -0
  187. package/lib/src/Avatar.d.ts +14 -0
  188. package/lib/src/AvatarPair.d.ts +8 -0
  189. package/lib/src/AvatarStack.d.ts +8 -0
  190. package/lib/src/BaseStyles.d.ts +14 -0
  191. package/lib/src/BorderBox.d.ts +7 -0
  192. package/lib/src/Box.d.ts +6 -0
  193. package/lib/src/BranchName.d.ts +5 -0
  194. package/lib/src/Breadcrumbs.d.ts +41 -0
  195. package/lib/src/Button/Button.d.ts +284 -0
  196. package/lib/src/Button/ButtonBase.d.ts +9 -0
  197. package/lib/src/Button/ButtonClose.d.ts +279 -0
  198. package/lib/src/Button/ButtonDanger.d.ts +284 -0
  199. package/lib/src/Button/ButtonGroup.d.ts +4 -0
  200. package/lib/src/Button/ButtonInvisible.d.ts +284 -0
  201. package/lib/src/Button/ButtonOutline.d.ts +284 -0
  202. package/lib/src/Button/ButtonPrimary.d.ts +284 -0
  203. package/lib/src/Button/ButtonStyles.d.ts +2 -0
  204. package/lib/src/Button/ButtonTableList.d.ts +5 -0
  205. package/lib/src/Button/index.d.ts +16 -0
  206. package/lib/src/Caret.d.ts +21 -0
  207. package/lib/src/Checkbox.d.ts +29 -0
  208. package/lib/src/CircleBadge.d.ts +24 -0
  209. package/lib/src/CircleOcticon.d.ts +392 -0
  210. package/lib/src/CounterLabel.d.ts +7 -0
  211. package/lib/src/Details.d.ts +5 -0
  212. package/lib/src/Dialog/ConfirmationDialog.d.ts +44 -0
  213. package/lib/src/Dialog/Dialog.d.ts +163 -0
  214. package/lib/src/Dialog.d.ts +406 -0
  215. package/lib/src/Dropdown.d.ts +1113 -0
  216. package/lib/src/DropdownMenu/DropdownButton.d.ts +280 -0
  217. package/lib/src/DropdownMenu/DropdownMenu.d.ts +43 -0
  218. package/lib/src/DropdownMenu/index.d.ts +4 -0
  219. package/lib/src/DropdownStyles.d.ts +3 -0
  220. package/lib/src/FilterList.d.ts +283 -0
  221. package/lib/src/FilteredActionList/FilteredActionList.d.ts +16 -0
  222. package/lib/src/FilteredActionList/index.d.ts +2 -0
  223. package/lib/src/FilteredSearch.d.ts +5 -0
  224. package/lib/src/Flash.d.ts +8 -0
  225. package/lib/src/Flex.d.ts +7 -0
  226. package/lib/src/FormGroup.d.ts +11 -0
  227. package/lib/src/Grid.d.ts +7 -0
  228. package/lib/src/Header.d.ts +23 -0
  229. package/lib/src/Heading.d.ts +5 -0
  230. package/lib/src/Label.d.ts +10 -0
  231. package/lib/src/LabelGroup.d.ts +5 -0
  232. package/lib/src/Link.d.ts +9 -0
  233. package/lib/src/NewButton/button-counter.d.ts +6 -0
  234. package/lib/src/NewButton/button.d.ts +13 -0
  235. package/lib/src/NewButton/index.d.ts +14 -0
  236. package/lib/src/NewButton/types.d.ts +32 -0
  237. package/lib/src/Overlay.d.ts +66 -0
  238. package/lib/src/Pagehead.d.ts +5 -0
  239. package/lib/src/Pagination/Pagination.d.ts +24 -0
  240. package/lib/src/Pagination/index.d.ts +3 -0
  241. package/lib/src/Pagination/model.d.ts +26 -0
  242. package/lib/src/PointerBox.d.ts +11 -0
  243. package/lib/src/Popover.d.ts +20 -0
  244. package/lib/src/Portal/Portal.d.ts +25 -0
  245. package/lib/src/Portal/index.d.ts +4 -0
  246. package/lib/src/Position.d.ts +34 -0
  247. package/lib/src/ProgressBar.d.ts +26 -0
  248. package/lib/src/SelectMenu/SelectMenu.d.ts +1670 -0
  249. package/lib/src/SelectMenu/SelectMenuContext.d.ts +8 -0
  250. package/lib/src/SelectMenu/SelectMenuDivider.d.ts +5 -0
  251. package/lib/src/SelectMenu/SelectMenuFilter.d.ts +9 -0
  252. package/lib/src/SelectMenu/SelectMenuFooter.d.ts +5 -0
  253. package/lib/src/SelectMenu/SelectMenuHeader.d.ts +10 -0
  254. package/lib/src/SelectMenu/SelectMenuItem.d.ts +14 -0
  255. package/lib/src/SelectMenu/SelectMenuList.d.ts +5 -0
  256. package/lib/src/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  257. package/lib/src/SelectMenu/SelectMenuModal.d.ts +14 -0
  258. package/lib/src/SelectMenu/SelectMenuTab.d.ts +13 -0
  259. package/lib/src/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  260. package/lib/src/SelectMenu/SelectMenuTabs.d.ts +10 -0
  261. package/lib/src/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  262. package/lib/src/SelectMenu/index.d.ts +2 -0
  263. package/lib/src/SelectPanel/SelectPanel.d.ts +25 -0
  264. package/lib/src/SelectPanel/index.d.ts +2 -0
  265. package/lib/src/SideNav.d.ts +34 -0
  266. package/lib/src/Spinner.d.ts +16 -0
  267. package/lib/src/StateLabel.d.ts +15 -0
  268. package/lib/src/StyledOcticon.d.ts +11 -0
  269. package/lib/src/SubNav.d.ts +26 -0
  270. package/lib/src/TabNav.d.ts +19 -0
  271. package/lib/src/Text.d.ts +6 -0
  272. package/lib/src/TextInput.d.ts +14 -0
  273. package/lib/src/TextInputWithTokens.d.ts +328 -0
  274. package/lib/src/ThemeProvider.d.ts +26 -0
  275. package/lib/src/Timeline.d.ts +33 -0
  276. package/lib/src/Token/AvatarToken.d.ts +7 -0
  277. package/lib/src/Token/IssueLabelToken.d.ts +14 -0
  278. package/lib/src/Token/Token.d.ts +15 -0
  279. package/lib/src/Token/TokenBase.d.ts +31 -0
  280. package/lib/src/Token/_RemoveTokenButton.d.ts +12 -0
  281. package/lib/src/Token/_TokenTextContainer.d.ts +3 -0
  282. package/lib/src/Token/index.d.ts +3 -0
  283. package/lib/src/Tooltip.d.ts +17 -0
  284. package/lib/src/Truncate.d.ts +10 -0
  285. package/lib/src/UnderlineNav.d.ts +24 -0
  286. package/lib/src/_TextInputWrapper.d.ts +10 -0
  287. package/lib/src/_UnstyledTextInput.d.ts +2 -0
  288. package/lib/src/__tests__/ActionList.test.d.ts +1 -0
  289. package/lib/src/__tests__/ActionList.types.test.d.ts +6 -0
  290. package/lib/src/__tests__/ActionList2.test.d.ts +2 -0
  291. package/lib/src/__tests__/ActionMenu.test.d.ts +1 -0
  292. package/lib/src/__tests__/AnchoredOverlay.test.d.ts +1 -0
  293. package/lib/src/__tests__/Autocomplete.test.d.ts +1 -0
  294. package/lib/src/__tests__/Avatar.test.d.ts +1 -0
  295. package/lib/src/__tests__/Avatar.types.test.d.ts +3 -0
  296. package/lib/src/__tests__/AvatarStack.test.d.ts +1 -0
  297. package/lib/src/__tests__/BorderBox.test.d.ts +1 -0
  298. package/lib/src/__tests__/Box.test.d.ts +1 -0
  299. package/lib/src/__tests__/BranchName.test.d.ts +1 -0
  300. package/lib/src/__tests__/BranchName.types.test.d.ts +3 -0
  301. package/lib/src/__tests__/Breadcrumbs.test.d.ts +1 -0
  302. package/lib/src/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  303. package/lib/src/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  304. package/lib/src/__tests__/Button.test.d.ts +1 -0
  305. package/lib/src/__tests__/Caret.test.d.ts +1 -0
  306. package/lib/src/__tests__/Checkbox.test.d.ts +2 -0
  307. package/lib/src/__tests__/CircleBadge.test.d.ts +1 -0
  308. package/lib/src/__tests__/CircleBadge.types.test.d.ts +3 -0
  309. package/lib/src/__tests__/CircleOcticon.test.d.ts +1 -0
  310. package/lib/src/__tests__/ConfirmationDialog.test.d.ts +1 -0
  311. package/lib/src/__tests__/CounterLabel.test.d.ts +1 -0
  312. package/lib/src/__tests__/CounterLabel.types.test.d.ts +3 -0
  313. package/lib/src/__tests__/Details.test.d.ts +1 -0
  314. package/lib/src/__tests__/Details.types.test.d.ts +3 -0
  315. package/lib/src/__tests__/Dialog.test.d.ts +1 -0
  316. package/lib/src/__tests__/Dialog.types.test.d.ts +3 -0
  317. package/lib/src/__tests__/Dialog2.types.test.d.ts +3 -0
  318. package/lib/src/__tests__/Dropdown.test.d.ts +1 -0
  319. package/lib/src/__tests__/Dropdown.types.test.d.ts +3 -0
  320. package/lib/src/__tests__/DropdownMenu.test.d.ts +1 -0
  321. package/lib/src/__tests__/FilterList.test.d.ts +1 -0
  322. package/lib/src/__tests__/FilterList.types.test.d.ts +3 -0
  323. package/lib/src/__tests__/FilterListItem.test.d.ts +1 -0
  324. package/lib/src/__tests__/FilteredSearch.test.d.ts +1 -0
  325. package/lib/src/__tests__/FilteredSearch.types.test.d.ts +3 -0
  326. package/lib/src/__tests__/Flash.test.d.ts +1 -0
  327. package/lib/src/__tests__/Flash.types.test.d.ts +3 -0
  328. package/lib/src/__tests__/Flex.test.d.ts +1 -0
  329. package/lib/src/__tests__/FormGroup.test.d.ts +1 -0
  330. package/lib/src/__tests__/FormGroup.types.test.d.ts +3 -0
  331. package/lib/src/__tests__/Grid.test.d.ts +1 -0
  332. package/lib/src/__tests__/Header.test.d.ts +1 -0
  333. package/lib/src/__tests__/Header.types.test.d.ts +3 -0
  334. package/lib/src/__tests__/Heading.test.d.ts +1 -0
  335. package/lib/src/__tests__/Heading.types.test.d.ts +3 -0
  336. package/lib/src/__tests__/KeyPaths.types.test.d.ts +11 -0
  337. package/lib/src/__tests__/Label.test.d.ts +1 -0
  338. package/lib/src/__tests__/Label.types.test.d.ts +3 -0
  339. package/lib/src/__tests__/LabelGroup.test.d.ts +1 -0
  340. package/lib/src/__tests__/LabelGroup.types.test.d.ts +3 -0
  341. package/lib/src/__tests__/Link.test.d.ts +1 -0
  342. package/lib/src/__tests__/Link.types.test.d.ts +3 -0
  343. package/lib/src/__tests__/Merge.types.test.d.ts +30 -0
  344. package/lib/src/__tests__/NewButton.test.d.ts +1 -0
  345. package/lib/src/__tests__/Overlay.test.d.ts +1 -0
  346. package/lib/src/__tests__/Overlay.types.test.d.ts +6 -0
  347. package/lib/src/__tests__/Pagehead.test.d.ts +1 -0
  348. package/lib/src/__tests__/Pagehead.types.test.d.ts +3 -0
  349. package/lib/src/__tests__/Pagination/Pagination.test.d.ts +1 -0
  350. package/lib/src/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  351. package/lib/src/__tests__/Pagination.types.test.d.ts +3 -0
  352. package/lib/src/__tests__/PointerBox.test.d.ts +1 -0
  353. package/lib/src/__tests__/Popover.test.d.ts +1 -0
  354. package/lib/src/__tests__/Popover.types.test.d.ts +3 -0
  355. package/lib/src/__tests__/Portal.test.d.ts +1 -0
  356. package/lib/src/__tests__/Position.test.d.ts +1 -0
  357. package/lib/src/__tests__/ProgressBar.test.d.ts +1 -0
  358. package/lib/src/__tests__/SelectMenu.test.d.ts +1 -0
  359. package/lib/src/__tests__/SelectMenu.types.test.d.ts +3 -0
  360. package/lib/src/__tests__/SelectPanel.test.d.ts +1 -0
  361. package/lib/src/__tests__/SelectPanel.types.test.d.ts +3 -0
  362. package/lib/src/__tests__/SideNav.test.d.ts +1 -0
  363. package/lib/src/__tests__/SideNav.types.test.d.ts +3 -0
  364. package/lib/src/__tests__/Spinner.test.d.ts +1 -0
  365. package/lib/src/__tests__/StateLabel.test.d.ts +1 -0
  366. package/lib/src/__tests__/StateLabel.types.test.d.ts +3 -0
  367. package/lib/src/__tests__/StyledOcticon.test.d.ts +1 -0
  368. package/lib/src/__tests__/StyledOcticon.types.test.d.ts +3 -0
  369. package/lib/src/__tests__/SubNav.test.d.ts +1 -0
  370. package/lib/src/__tests__/SubNav.types.test.d.ts +3 -0
  371. package/lib/src/__tests__/SubNavLink.test.d.ts +1 -0
  372. package/lib/src/__tests__/TabNav.test.d.ts +1 -0
  373. package/lib/src/__tests__/TabNav.types.test.d.ts +3 -0
  374. package/lib/src/__tests__/Text.test.d.ts +1 -0
  375. package/lib/src/__tests__/TextInput.test.d.ts +1 -0
  376. package/lib/src/__tests__/TextInputWithTokens.test.d.ts +1 -0
  377. package/lib/src/__tests__/ThemeProvider.test.d.ts +1 -0
  378. package/lib/src/__tests__/Timeline.test.d.ts +1 -0
  379. package/lib/src/__tests__/Timeline.types.test.d.ts +3 -0
  380. package/lib/src/__tests__/Token.test.d.ts +1 -0
  381. package/lib/src/__tests__/Tooltip.test.d.ts +1 -0
  382. package/lib/src/__tests__/Tooltip.types.test.d.ts +3 -0
  383. package/lib/src/__tests__/Truncate.test.d.ts +1 -0
  384. package/lib/src/__tests__/Truncate.types.test.d.ts +3 -0
  385. package/lib/src/__tests__/UnderlineNav.test.d.ts +1 -0
  386. package/lib/src/__tests__/UnderlineNav.types.test.d.ts +3 -0
  387. package/lib/src/__tests__/UnderlineNavLink.test.d.ts +1 -0
  388. package/lib/src/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  389. package/lib/src/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  390. package/lib/src/__tests__/behaviors/focusZone.test.d.ts +1 -0
  391. package/lib/src/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  392. package/lib/src/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  393. package/lib/src/__tests__/filterObject.test.d.ts +1 -0
  394. package/lib/src/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  395. package/lib/src/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  396. package/lib/src/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  397. package/lib/src/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  398. package/lib/src/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  399. package/lib/src/__tests__/theme.test.d.ts +1 -0
  400. package/lib/src/__tests__/themeGet.test.d.ts +1 -0
  401. package/lib/src/__tests__/themePreval.test.d.ts +1 -0
  402. package/lib/src/__tests__/useSafeTimeout.test.d.ts +1 -0
  403. package/lib/src/__tests__/utils/createSlots.test.d.ts +1 -0
  404. package/lib/src/behaviors/anchoredPosition.d.ts +89 -0
  405. package/lib/src/behaviors/focusTrap.d.ts +12 -0
  406. package/lib/src/behaviors/focusZone.d.ts +137 -0
  407. package/lib/src/behaviors/scrollIntoViewingArea.d.ts +1 -0
  408. package/lib/src/constants.d.ts +20 -0
  409. package/lib/src/drafts.d.ts +8 -0
  410. package/lib/src/hooks/index.d.ts +11 -0
  411. package/lib/src/hooks/useAnchoredPosition.d.ts +20 -0
  412. package/lib/src/hooks/useCombinedRefs.d.ts +10 -0
  413. package/lib/src/hooks/useDetails.d.ts +17 -0
  414. package/lib/src/hooks/useDialog.d.ts +16 -0
  415. package/lib/src/hooks/useFocusTrap.d.ts +32 -0
  416. package/lib/src/hooks/useFocusZone.d.ts +23 -0
  417. package/lib/src/hooks/useOnEscapePress.d.ts +23 -0
  418. package/lib/src/hooks/useOnOutsideClick.d.ts +8 -0
  419. package/lib/src/hooks/useOpenAndCloseFocus.d.ts +8 -0
  420. package/lib/src/hooks/useOverlay.d.ts +15 -0
  421. package/lib/src/hooks/useProvidedRefOrCreate.d.ts +10 -0
  422. package/lib/src/hooks/useProvidedStateOrCreate.d.ts +10 -0
  423. package/lib/src/hooks/useRenderForcingRef.d.ts +8 -0
  424. package/lib/src/hooks/useResizeObserver.d.ts +1 -0
  425. package/lib/src/hooks/useSafeTimeout.d.ts +12 -0
  426. package/lib/src/hooks/useScrollFlash.d.ts +6 -0
  427. package/lib/src/index.d.ts +120 -0
  428. package/lib/src/polyfills/eventListenerSignal.d.ts +6 -0
  429. package/lib/src/sx.d.ts +14 -0
  430. package/lib/src/theme-preval.d.ts +49 -0
  431. package/lib/src/theme.d.ts +80 -0
  432. package/lib/src/utils/create-slots.d.ts +17 -0
  433. package/lib/src/utils/deprecate.d.ts +18 -0
  434. package/lib/src/utils/isNumeric.d.ts +1 -0
  435. package/lib/src/utils/iterateFocusableElements.d.ts +42 -0
  436. package/lib/src/utils/ssr.d.ts +1 -0
  437. package/lib/src/utils/test-deprecations.d.ts +1 -0
  438. package/lib/src/utils/test-helpers.d.ts +0 -0
  439. package/lib/src/utils/test-matchers.d.ts +1 -0
  440. package/lib/src/utils/testing.d.ts +545 -0
  441. package/lib/src/utils/theme.d.ts +9 -0
  442. package/lib/src/utils/types/AriaRole.d.ts +1 -0
  443. package/lib/src/utils/types/ComponentProps.d.ts +9 -0
  444. package/lib/src/utils/types/Flatten.d.ts +4 -0
  445. package/lib/src/utils/types/KeyPaths.d.ts +3 -0
  446. package/lib/src/utils/types/MandateProps.d.ts +3 -0
  447. package/lib/src/utils/types/Merge.d.ts +19 -0
  448. package/lib/src/utils/types/index.d.ts +5 -0
  449. package/lib/src/utils/uniqueId.d.ts +1 -0
  450. package/lib/src/utils/use-force-update.d.ts +1 -0
  451. package/lib/src/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  452. package/lib/src/utils/userAgent.d.ts +1 -0
  453. package/lib/sx.js +8 -5
  454. package/lib/theme-preval.js +3119 -357
  455. package/lib/theme.js +5 -8
  456. package/lib/utils/create-slots.js +105 -0
  457. package/lib/utils/deprecate.js +6 -5
  458. package/lib/utils/isNumeric.js +1 -0
  459. package/lib/utils/iterateFocusableElements.js +113 -0
  460. package/lib/utils/ssr.js +19 -0
  461. package/lib/utils/test-deprecations.js +2 -1
  462. package/lib/utils/test-helpers.js +9 -0
  463. package/lib/utils/test-matchers.js +6 -50
  464. package/lib/utils/testing.js +65 -49
  465. package/lib/utils/theme.js +68 -0
  466. package/lib/utils/types/AriaRole.js +1 -0
  467. package/lib/utils/types/ComponentProps.js +1 -0
  468. package/lib/utils/types/Flatten.js +1 -0
  469. package/lib/utils/types/KeyPaths.js +1 -0
  470. package/lib/utils/types/MandateProps.js +1 -0
  471. package/lib/utils/types/Merge.js +1 -0
  472. package/lib/utils/types/index.js +70 -0
  473. package/lib/utils/uniqueId.js +12 -0
  474. package/lib/utils/use-force-update.js +19 -0
  475. package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
  476. package/lib/utils/userAgent.js +15 -0
  477. package/lib-esm/ActionList/Divider.js +23 -0
  478. package/lib-esm/ActionList/Group.js +24 -0
  479. package/lib-esm/ActionList/Header.js +33 -0
  480. package/lib-esm/ActionList/Item.js +241 -0
  481. package/lib-esm/ActionList/List.js +181 -0
  482. package/lib-esm/ActionList/index.js +18 -0
  483. package/lib-esm/ActionList2/Description.js +41 -0
  484. package/lib-esm/ActionList2/Divider.js +23 -0
  485. package/lib-esm/ActionList2/Group.js +87 -0
  486. package/lib-esm/ActionList2/Item.js +210 -0
  487. package/lib-esm/ActionList2/LinkItem.js +43 -0
  488. package/lib-esm/ActionList2/List.js +36 -0
  489. package/lib-esm/ActionList2/Selection.js +68 -0
  490. package/lib-esm/ActionList2/Visuals.js +68 -0
  491. package/lib-esm/ActionList2/index.js +33 -0
  492. package/lib-esm/ActionMenu.js +82 -0
  493. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +104 -0
  494. package/lib-esm/AnchoredOverlay/index.js +1 -0
  495. package/lib-esm/Autocomplete/Autocomplete.js +123 -0
  496. package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
  497. package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
  498. package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
  499. package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
  500. package/lib-esm/Autocomplete/index.js +1 -0
  501. package/lib-esm/Avatar.js +2 -11
  502. package/lib-esm/AvatarPair.js +8 -14
  503. package/lib-esm/AvatarStack.js +12 -21
  504. package/lib-esm/BaseStyles.js +23 -26
  505. package/lib-esm/BorderBox.js +6 -12
  506. package/lib-esm/Box.js +2 -13
  507. package/lib-esm/BranchName.js +2 -13
  508. package/lib-esm/Breadcrumbs.js +58 -0
  509. package/lib-esm/Button/Button.js +3 -10
  510. package/lib-esm/Button/ButtonBase.js +1 -19
  511. package/lib-esm/Button/ButtonClose.js +5 -20
  512. package/lib-esm/Button/ButtonDanger.js +2 -9
  513. package/lib-esm/Button/ButtonGroup.js +2 -7
  514. package/lib-esm/Button/ButtonInvisible.js +3 -10
  515. package/lib-esm/Button/ButtonOutline.js +2 -9
  516. package/lib-esm/Button/ButtonPrimary.js +2 -9
  517. package/lib-esm/Button/ButtonTableList.js +2 -14
  518. package/lib-esm/Button/index.js +8 -8
  519. package/lib-esm/Caret.js +13 -16
  520. package/lib-esm/Checkbox.js +44 -0
  521. package/lib-esm/CircleBadge.js +3 -19
  522. package/lib-esm/CircleOcticon.js +9 -15
  523. package/lib-esm/CounterLabel.js +4 -16
  524. package/lib-esm/Details.js +2 -10
  525. package/lib-esm/Dialog/ConfirmationDialog.js +169 -0
  526. package/lib-esm/Dialog/Dialog.js +275 -0
  527. package/lib-esm/Dialog.js +31 -46
  528. package/lib-esm/Dropdown.js +38 -58
  529. package/lib-esm/DropdownMenu/DropdownButton.js +18 -0
  530. package/lib-esm/DropdownMenu/DropdownMenu.js +77 -0
  531. package/lib-esm/DropdownMenu/index.js +2 -0
  532. package/lib-esm/DropdownStyles.js +6 -6
  533. package/lib-esm/FilterList.js +3 -29
  534. package/lib-esm/FilteredActionList/FilteredActionList.js +109 -0
  535. package/lib-esm/FilteredActionList/index.js +1 -0
  536. package/lib-esm/FilteredSearch.js +2 -11
  537. package/lib-esm/Flash.js +36 -13
  538. package/lib-esm/Flex.js +4 -4
  539. package/lib-esm/FormGroup.js +3 -20
  540. package/lib-esm/Grid.js +5 -7
  541. package/lib-esm/Header.js +6 -34
  542. package/lib-esm/Heading.js +2 -12
  543. package/lib-esm/Label.js +3 -15
  544. package/lib-esm/LabelGroup.js +2 -9
  545. package/lib-esm/Link.js +2 -28
  546. package/lib-esm/NewButton/button-counter.js +18 -0
  547. package/lib-esm/NewButton/button.js +287 -0
  548. package/lib-esm/NewButton/index.js +5 -0
  549. package/lib-esm/NewButton/types.js +1 -0
  550. package/lib-esm/Overlay.js +160 -0
  551. package/lib-esm/Pagehead.js +2 -12
  552. package/lib-esm/Pagination/Pagination.js +15 -28
  553. package/lib-esm/Pagination/model.js +1 -1
  554. package/lib-esm/PointerBox.js +4 -11
  555. package/lib-esm/Popover.js +13 -36
  556. package/lib-esm/Portal/Portal.js +83 -0
  557. package/lib-esm/Portal/index.js +3 -0
  558. package/lib-esm/Position.js +42 -37
  559. package/lib-esm/ProgressBar.js +9 -25
  560. package/lib-esm/SelectMenu/SelectMenu.js +27 -38
  561. package/lib-esm/SelectMenu/SelectMenuContext.js +1 -1
  562. package/lib-esm/SelectMenu/SelectMenuDivider.js +4 -11
  563. package/lib-esm/SelectMenu/SelectMenuFilter.js +13 -19
  564. package/lib-esm/SelectMenu/SelectMenuFooter.js +4 -11
  565. package/lib-esm/SelectMenu/SelectMenuHeader.js +7 -18
  566. package/lib-esm/SelectMenu/SelectMenuItem.js +11 -17
  567. package/lib-esm/SelectMenu/SelectMenuList.js +4 -11
  568. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +7 -13
  569. package/lib-esm/SelectMenu/SelectMenuModal.js +10 -20
  570. package/lib-esm/SelectMenu/SelectMenuTab.js +13 -21
  571. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +9 -19
  572. package/lib-esm/SelectMenu/SelectMenuTabs.js +8 -15
  573. package/lib-esm/SelectMenu/hooks/useKeyboardNav.js +2 -0
  574. package/lib-esm/SelectMenu/index.js +1 -2
  575. package/lib-esm/SelectPanel/SelectPanel.js +127 -0
  576. package/lib-esm/SelectPanel/index.js +1 -0
  577. package/lib-esm/SideNav.js +29 -45
  578. package/lib-esm/Spinner.js +45 -0
  579. package/lib-esm/StateLabel.js +55 -23
  580. package/lib-esm/StyledOcticon.js +1 -12
  581. package/lib-esm/SubNav.js +24 -48
  582. package/lib-esm/TabNav.js +13 -33
  583. package/lib-esm/Text.js +0 -10
  584. package/lib-esm/TextInput.js +24 -62
  585. package/lib-esm/TextInputWithTokens.js +291 -0
  586. package/lib-esm/ThemeProvider.js +161 -0
  587. package/lib-esm/Timeline.js +26 -81
  588. package/lib-esm/Token/AvatarToken.js +43 -0
  589. package/lib-esm/Token/IssueLabelToken.js +124 -0
  590. package/lib-esm/Token/Token.js +84 -0
  591. package/lib-esm/Token/TokenBase.js +83 -0
  592. package/lib-esm/Token/_RemoveTokenButton.js +69 -0
  593. package/lib-esm/Token/_TokenTextContainer.js +6 -0
  594. package/lib-esm/Token/index.js +3 -0
  595. package/lib-esm/Tooltip.js +4 -19
  596. package/lib-esm/Truncate.js +2 -15
  597. package/lib-esm/UnderlineNav.js +5 -28
  598. package/lib-esm/_TextInputWrapper.js +31 -0
  599. package/lib-esm/_UnstyledTextInput.js +7 -0
  600. package/lib-esm/behaviors/anchoredPosition.js +309 -0
  601. package/lib-esm/behaviors/focusTrap.js +170 -0
  602. package/lib-esm/behaviors/focusZone.js +560 -0
  603. package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
  604. package/lib-esm/constants.js +9 -23
  605. package/lib-esm/drafts.js +9 -0
  606. package/lib-esm/hooks/index.js +7 -0
  607. package/lib-esm/hooks/useAnchoredPosition.js +35 -0
  608. package/lib-esm/hooks/useCombinedRefs.js +37 -0
  609. package/lib-esm/hooks/useDetails.js +10 -3
  610. package/lib-esm/hooks/useDialog.js +21 -6
  611. package/lib-esm/hooks/useFocusTrap.js +54 -0
  612. package/lib-esm/hooks/useFocusZone.js +37 -0
  613. package/lib-esm/hooks/useOnEscapePress.js +59 -0
  614. package/lib-esm/hooks/useOnOutsideClick.js +79 -0
  615. package/lib-esm/hooks/useOpenAndCloseFocus.js +27 -0
  616. package/lib-esm/hooks/useOverlay.js +30 -0
  617. package/lib-esm/hooks/useProvidedRefOrCreate.js +14 -0
  618. package/lib-esm/hooks/useProvidedStateOrCreate.js +20 -0
  619. package/lib-esm/hooks/useRenderForcingRef.js +18 -0
  620. package/lib-esm/hooks/useResizeObserver.js +10 -0
  621. package/lib-esm/hooks/useSafeTimeout.js +31 -0
  622. package/lib-esm/hooks/useScrollFlash.js +22 -0
  623. package/lib-esm/index.js +29 -7
  624. package/lib-esm/polyfills/eventListenerSignal.js +57 -0
  625. package/lib-esm/script/component-status-project/build.d.ts +1 -0
  626. package/lib-esm/src/ActionList/Divider.d.ts +9 -0
  627. package/lib-esm/src/ActionList/Group.d.ts +28 -0
  628. package/lib-esm/src/ActionList/Header.d.ts +29 -0
  629. package/lib-esm/src/ActionList/Item.d.ts +98 -0
  630. package/lib-esm/src/ActionList/List.d.ts +88 -0
  631. package/lib-esm/src/ActionList/index.d.ts +17 -0
  632. package/lib-esm/src/ActionList2/Description.d.ts +12 -0
  633. package/lib-esm/src/ActionList2/Divider.d.ts +5 -0
  634. package/lib-esm/src/ActionList2/Group.d.ts +37 -0
  635. package/lib-esm/src/ActionList2/Item.d.ts +63 -0
  636. package/lib-esm/src/ActionList2/LinkItem.d.ts +17 -0
  637. package/lib-esm/src/ActionList2/List.d.ts +26 -0
  638. package/lib-esm/src/ActionList2/Selection.d.ts +5 -0
  639. package/lib-esm/src/ActionList2/Visuals.d.ts +9 -0
  640. package/lib-esm/src/ActionList2/index.d.ts +36 -0
  641. package/lib-esm/src/ActionMenu.d.ts +40 -0
  642. package/lib-esm/src/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  643. package/lib-esm/src/AnchoredOverlay/index.d.ts +2 -0
  644. package/lib-esm/src/Autocomplete/Autocomplete.d.ts +305 -0
  645. package/lib-esm/src/Autocomplete/AutocompleteContext.d.ts +17 -0
  646. package/lib-esm/src/Autocomplete/AutocompleteInput.d.ts +293 -0
  647. package/lib-esm/src/Autocomplete/AutocompleteMenu.d.ts +72 -0
  648. package/lib-esm/src/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  649. package/lib-esm/src/Autocomplete/index.d.ts +2 -0
  650. package/lib-esm/src/Avatar.d.ts +14 -0
  651. package/lib-esm/src/AvatarPair.d.ts +8 -0
  652. package/lib-esm/src/AvatarStack.d.ts +8 -0
  653. package/lib-esm/src/BaseStyles.d.ts +14 -0
  654. package/lib-esm/src/BorderBox.d.ts +7 -0
  655. package/lib-esm/src/Box.d.ts +6 -0
  656. package/lib-esm/src/BranchName.d.ts +5 -0
  657. package/lib-esm/src/Breadcrumbs.d.ts +41 -0
  658. package/lib-esm/src/Button/Button.d.ts +284 -0
  659. package/lib-esm/src/Button/ButtonBase.d.ts +9 -0
  660. package/lib-esm/src/Button/ButtonClose.d.ts +279 -0
  661. package/lib-esm/src/Button/ButtonDanger.d.ts +284 -0
  662. package/lib-esm/src/Button/ButtonGroup.d.ts +4 -0
  663. package/lib-esm/src/Button/ButtonInvisible.d.ts +284 -0
  664. package/lib-esm/src/Button/ButtonOutline.d.ts +284 -0
  665. package/lib-esm/src/Button/ButtonPrimary.d.ts +284 -0
  666. package/lib-esm/src/Button/ButtonStyles.d.ts +2 -0
  667. package/lib-esm/src/Button/ButtonTableList.d.ts +5 -0
  668. package/lib-esm/src/Button/index.d.ts +16 -0
  669. package/lib-esm/src/Caret.d.ts +21 -0
  670. package/lib-esm/src/Checkbox.d.ts +29 -0
  671. package/lib-esm/src/CircleBadge.d.ts +24 -0
  672. package/lib-esm/src/CircleOcticon.d.ts +392 -0
  673. package/lib-esm/src/CounterLabel.d.ts +7 -0
  674. package/lib-esm/src/Details.d.ts +5 -0
  675. package/lib-esm/src/Dialog/ConfirmationDialog.d.ts +44 -0
  676. package/lib-esm/src/Dialog/Dialog.d.ts +163 -0
  677. package/lib-esm/src/Dialog.d.ts +406 -0
  678. package/lib-esm/src/Dropdown.d.ts +1113 -0
  679. package/lib-esm/src/DropdownMenu/DropdownButton.d.ts +280 -0
  680. package/lib-esm/src/DropdownMenu/DropdownMenu.d.ts +43 -0
  681. package/lib-esm/src/DropdownMenu/index.d.ts +4 -0
  682. package/lib-esm/src/DropdownStyles.d.ts +3 -0
  683. package/lib-esm/src/FilterList.d.ts +283 -0
  684. package/lib-esm/src/FilteredActionList/FilteredActionList.d.ts +16 -0
  685. package/lib-esm/src/FilteredActionList/index.d.ts +2 -0
  686. package/lib-esm/src/FilteredSearch.d.ts +5 -0
  687. package/lib-esm/src/Flash.d.ts +8 -0
  688. package/lib-esm/src/Flex.d.ts +7 -0
  689. package/lib-esm/src/FormGroup.d.ts +11 -0
  690. package/lib-esm/src/Grid.d.ts +7 -0
  691. package/lib-esm/src/Header.d.ts +23 -0
  692. package/lib-esm/src/Heading.d.ts +5 -0
  693. package/lib-esm/src/Label.d.ts +10 -0
  694. package/lib-esm/src/LabelGroup.d.ts +5 -0
  695. package/lib-esm/src/Link.d.ts +9 -0
  696. package/lib-esm/src/NewButton/button-counter.d.ts +6 -0
  697. package/lib-esm/src/NewButton/button.d.ts +13 -0
  698. package/lib-esm/src/NewButton/index.d.ts +14 -0
  699. package/lib-esm/src/NewButton/types.d.ts +32 -0
  700. package/lib-esm/src/Overlay.d.ts +66 -0
  701. package/lib-esm/src/Pagehead.d.ts +5 -0
  702. package/lib-esm/src/Pagination/Pagination.d.ts +24 -0
  703. package/lib-esm/src/Pagination/index.d.ts +3 -0
  704. package/lib-esm/src/Pagination/model.d.ts +26 -0
  705. package/lib-esm/src/PointerBox.d.ts +11 -0
  706. package/lib-esm/src/Popover.d.ts +20 -0
  707. package/lib-esm/src/Portal/Portal.d.ts +25 -0
  708. package/lib-esm/src/Portal/index.d.ts +4 -0
  709. package/lib-esm/src/Position.d.ts +34 -0
  710. package/lib-esm/src/ProgressBar.d.ts +26 -0
  711. package/lib-esm/src/SelectMenu/SelectMenu.d.ts +1670 -0
  712. package/lib-esm/src/SelectMenu/SelectMenuContext.d.ts +8 -0
  713. package/lib-esm/src/SelectMenu/SelectMenuDivider.d.ts +5 -0
  714. package/lib-esm/src/SelectMenu/SelectMenuFilter.d.ts +9 -0
  715. package/lib-esm/src/SelectMenu/SelectMenuFooter.d.ts +5 -0
  716. package/lib-esm/src/SelectMenu/SelectMenuHeader.d.ts +10 -0
  717. package/lib-esm/src/SelectMenu/SelectMenuItem.d.ts +14 -0
  718. package/lib-esm/src/SelectMenu/SelectMenuList.d.ts +5 -0
  719. package/lib-esm/src/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  720. package/lib-esm/src/SelectMenu/SelectMenuModal.d.ts +14 -0
  721. package/lib-esm/src/SelectMenu/SelectMenuTab.d.ts +13 -0
  722. package/lib-esm/src/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  723. package/lib-esm/src/SelectMenu/SelectMenuTabs.d.ts +10 -0
  724. package/lib-esm/src/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  725. package/lib-esm/src/SelectMenu/index.d.ts +2 -0
  726. package/lib-esm/src/SelectPanel/SelectPanel.d.ts +25 -0
  727. package/lib-esm/src/SelectPanel/index.d.ts +2 -0
  728. package/lib-esm/src/SideNav.d.ts +34 -0
  729. package/lib-esm/src/Spinner.d.ts +16 -0
  730. package/lib-esm/src/StateLabel.d.ts +15 -0
  731. package/lib-esm/src/StyledOcticon.d.ts +11 -0
  732. package/lib-esm/src/SubNav.d.ts +26 -0
  733. package/lib-esm/src/TabNav.d.ts +19 -0
  734. package/lib-esm/src/Text.d.ts +6 -0
  735. package/lib-esm/src/TextInput.d.ts +14 -0
  736. package/lib-esm/src/TextInputWithTokens.d.ts +328 -0
  737. package/lib-esm/src/ThemeProvider.d.ts +26 -0
  738. package/lib-esm/src/Timeline.d.ts +33 -0
  739. package/lib-esm/src/Token/AvatarToken.d.ts +7 -0
  740. package/lib-esm/src/Token/IssueLabelToken.d.ts +14 -0
  741. package/lib-esm/src/Token/Token.d.ts +15 -0
  742. package/lib-esm/src/Token/TokenBase.d.ts +31 -0
  743. package/lib-esm/src/Token/_RemoveTokenButton.d.ts +12 -0
  744. package/lib-esm/src/Token/_TokenTextContainer.d.ts +3 -0
  745. package/lib-esm/src/Token/index.d.ts +3 -0
  746. package/lib-esm/src/Tooltip.d.ts +17 -0
  747. package/lib-esm/src/Truncate.d.ts +10 -0
  748. package/lib-esm/src/UnderlineNav.d.ts +24 -0
  749. package/lib-esm/src/_TextInputWrapper.d.ts +10 -0
  750. package/lib-esm/src/_UnstyledTextInput.d.ts +2 -0
  751. package/lib-esm/src/__tests__/ActionList.test.d.ts +1 -0
  752. package/lib-esm/src/__tests__/ActionList.types.test.d.ts +6 -0
  753. package/lib-esm/src/__tests__/ActionList2.test.d.ts +2 -0
  754. package/lib-esm/src/__tests__/ActionMenu.test.d.ts +1 -0
  755. package/lib-esm/src/__tests__/AnchoredOverlay.test.d.ts +1 -0
  756. package/lib-esm/src/__tests__/Autocomplete.test.d.ts +1 -0
  757. package/lib-esm/src/__tests__/Avatar.test.d.ts +1 -0
  758. package/lib-esm/src/__tests__/Avatar.types.test.d.ts +3 -0
  759. package/lib-esm/src/__tests__/AvatarStack.test.d.ts +1 -0
  760. package/lib-esm/src/__tests__/BorderBox.test.d.ts +1 -0
  761. package/lib-esm/src/__tests__/Box.test.d.ts +1 -0
  762. package/lib-esm/src/__tests__/BranchName.test.d.ts +1 -0
  763. package/lib-esm/src/__tests__/BranchName.types.test.d.ts +3 -0
  764. package/lib-esm/src/__tests__/Breadcrumbs.test.d.ts +1 -0
  765. package/lib-esm/src/__tests__/Breadcrumbs.types.test.d.ts +3 -0
  766. package/lib-esm/src/__tests__/BreadcrumbsItem.test.d.ts +1 -0
  767. package/lib-esm/src/__tests__/Button.test.d.ts +1 -0
  768. package/lib-esm/src/__tests__/Caret.test.d.ts +1 -0
  769. package/lib-esm/src/__tests__/Checkbox.test.d.ts +2 -0
  770. package/lib-esm/src/__tests__/CircleBadge.test.d.ts +1 -0
  771. package/lib-esm/src/__tests__/CircleBadge.types.test.d.ts +3 -0
  772. package/lib-esm/src/__tests__/CircleOcticon.test.d.ts +1 -0
  773. package/lib-esm/src/__tests__/ConfirmationDialog.test.d.ts +1 -0
  774. package/lib-esm/src/__tests__/CounterLabel.test.d.ts +1 -0
  775. package/lib-esm/src/__tests__/CounterLabel.types.test.d.ts +3 -0
  776. package/lib-esm/src/__tests__/Details.test.d.ts +1 -0
  777. package/lib-esm/src/__tests__/Details.types.test.d.ts +3 -0
  778. package/lib-esm/src/__tests__/Dialog.test.d.ts +1 -0
  779. package/lib-esm/src/__tests__/Dialog.types.test.d.ts +3 -0
  780. package/lib-esm/src/__tests__/Dialog2.types.test.d.ts +3 -0
  781. package/lib-esm/src/__tests__/Dropdown.test.d.ts +1 -0
  782. package/lib-esm/src/__tests__/Dropdown.types.test.d.ts +3 -0
  783. package/lib-esm/src/__tests__/DropdownMenu.test.d.ts +1 -0
  784. package/lib-esm/src/__tests__/FilterList.test.d.ts +1 -0
  785. package/lib-esm/src/__tests__/FilterList.types.test.d.ts +3 -0
  786. package/lib-esm/src/__tests__/FilterListItem.test.d.ts +1 -0
  787. package/lib-esm/src/__tests__/FilteredSearch.test.d.ts +1 -0
  788. package/lib-esm/src/__tests__/FilteredSearch.types.test.d.ts +3 -0
  789. package/lib-esm/src/__tests__/Flash.test.d.ts +1 -0
  790. package/lib-esm/src/__tests__/Flash.types.test.d.ts +3 -0
  791. package/lib-esm/src/__tests__/Flex.test.d.ts +1 -0
  792. package/lib-esm/src/__tests__/FormGroup.test.d.ts +1 -0
  793. package/lib-esm/src/__tests__/FormGroup.types.test.d.ts +3 -0
  794. package/lib-esm/src/__tests__/Grid.test.d.ts +1 -0
  795. package/lib-esm/src/__tests__/Header.test.d.ts +1 -0
  796. package/lib-esm/src/__tests__/Header.types.test.d.ts +3 -0
  797. package/lib-esm/src/__tests__/Heading.test.d.ts +1 -0
  798. package/lib-esm/src/__tests__/Heading.types.test.d.ts +3 -0
  799. package/lib-esm/src/__tests__/KeyPaths.types.test.d.ts +11 -0
  800. package/lib-esm/src/__tests__/Label.test.d.ts +1 -0
  801. package/lib-esm/src/__tests__/Label.types.test.d.ts +3 -0
  802. package/lib-esm/src/__tests__/LabelGroup.test.d.ts +1 -0
  803. package/lib-esm/src/__tests__/LabelGroup.types.test.d.ts +3 -0
  804. package/lib-esm/src/__tests__/Link.test.d.ts +1 -0
  805. package/lib-esm/src/__tests__/Link.types.test.d.ts +3 -0
  806. package/lib-esm/src/__tests__/Merge.types.test.d.ts +30 -0
  807. package/lib-esm/src/__tests__/NewButton.test.d.ts +1 -0
  808. package/lib-esm/src/__tests__/Overlay.test.d.ts +1 -0
  809. package/lib-esm/src/__tests__/Overlay.types.test.d.ts +6 -0
  810. package/lib-esm/src/__tests__/Pagehead.test.d.ts +1 -0
  811. package/lib-esm/src/__tests__/Pagehead.types.test.d.ts +3 -0
  812. package/lib-esm/src/__tests__/Pagination/Pagination.test.d.ts +1 -0
  813. package/lib-esm/src/__tests__/Pagination/PaginationModel.test.d.ts +1 -0
  814. package/lib-esm/src/__tests__/Pagination.types.test.d.ts +3 -0
  815. package/lib-esm/src/__tests__/PointerBox.test.d.ts +1 -0
  816. package/lib-esm/src/__tests__/Popover.test.d.ts +1 -0
  817. package/lib-esm/src/__tests__/Popover.types.test.d.ts +3 -0
  818. package/lib-esm/src/__tests__/Portal.test.d.ts +1 -0
  819. package/lib-esm/src/__tests__/Position.test.d.ts +1 -0
  820. package/lib-esm/src/__tests__/ProgressBar.test.d.ts +1 -0
  821. package/lib-esm/src/__tests__/SelectMenu.test.d.ts +1 -0
  822. package/lib-esm/src/__tests__/SelectMenu.types.test.d.ts +3 -0
  823. package/lib-esm/src/__tests__/SelectPanel.test.d.ts +1 -0
  824. package/lib-esm/src/__tests__/SelectPanel.types.test.d.ts +3 -0
  825. package/lib-esm/src/__tests__/SideNav.test.d.ts +1 -0
  826. package/lib-esm/src/__tests__/SideNav.types.test.d.ts +3 -0
  827. package/lib-esm/src/__tests__/Spinner.test.d.ts +1 -0
  828. package/lib-esm/src/__tests__/StateLabel.test.d.ts +1 -0
  829. package/lib-esm/src/__tests__/StateLabel.types.test.d.ts +3 -0
  830. package/lib-esm/src/__tests__/StyledOcticon.test.d.ts +1 -0
  831. package/lib-esm/src/__tests__/StyledOcticon.types.test.d.ts +3 -0
  832. package/lib-esm/src/__tests__/SubNav.test.d.ts +1 -0
  833. package/lib-esm/src/__tests__/SubNav.types.test.d.ts +3 -0
  834. package/lib-esm/src/__tests__/SubNavLink.test.d.ts +1 -0
  835. package/lib-esm/src/__tests__/TabNav.test.d.ts +1 -0
  836. package/lib-esm/src/__tests__/TabNav.types.test.d.ts +3 -0
  837. package/lib-esm/src/__tests__/Text.test.d.ts +1 -0
  838. package/lib-esm/src/__tests__/TextInput.test.d.ts +1 -0
  839. package/lib-esm/src/__tests__/TextInputWithTokens.test.d.ts +1 -0
  840. package/lib-esm/src/__tests__/ThemeProvider.test.d.ts +1 -0
  841. package/lib-esm/src/__tests__/Timeline.test.d.ts +1 -0
  842. package/lib-esm/src/__tests__/Timeline.types.test.d.ts +3 -0
  843. package/lib-esm/src/__tests__/Token.test.d.ts +1 -0
  844. package/lib-esm/src/__tests__/Tooltip.test.d.ts +1 -0
  845. package/lib-esm/src/__tests__/Tooltip.types.test.d.ts +3 -0
  846. package/lib-esm/src/__tests__/Truncate.test.d.ts +1 -0
  847. package/lib-esm/src/__tests__/Truncate.types.test.d.ts +3 -0
  848. package/lib-esm/src/__tests__/UnderlineNav.test.d.ts +1 -0
  849. package/lib-esm/src/__tests__/UnderlineNav.types.test.d.ts +3 -0
  850. package/lib-esm/src/__tests__/UnderlineNavLink.test.d.ts +1 -0
  851. package/lib-esm/src/__tests__/behaviors/anchoredPosition.test.d.ts +1 -0
  852. package/lib-esm/src/__tests__/behaviors/focusTrap.test.d.ts +1 -0
  853. package/lib-esm/src/__tests__/behaviors/focusZone.test.d.ts +1 -0
  854. package/lib-esm/src/__tests__/behaviors/iterateFocusableElements.test.d.ts +1 -0
  855. package/lib-esm/src/__tests__/behaviors/scrollIntoViewingArea.test.d.ts +1 -0
  856. package/lib-esm/src/__tests__/filterObject.test.d.ts +1 -0
  857. package/lib-esm/src/__tests__/hooks/useAnchoredPosition.test.d.ts +1 -0
  858. package/lib-esm/src/__tests__/hooks/useOnEscapePress.test.d.ts +1 -0
  859. package/lib-esm/src/__tests__/hooks/useOnOutsideClick.test.d.ts +1 -0
  860. package/lib-esm/src/__tests__/hooks/useOpenAndCloseFocus.test.d.ts +1 -0
  861. package/lib-esm/src/__tests__/hooks/useProvidedStateOrCreate.test.d.ts +1 -0
  862. package/lib-esm/src/__tests__/theme.test.d.ts +1 -0
  863. package/lib-esm/src/__tests__/themeGet.test.d.ts +1 -0
  864. package/lib-esm/src/__tests__/themePreval.test.d.ts +1 -0
  865. package/lib-esm/src/__tests__/useSafeTimeout.test.d.ts +1 -0
  866. package/lib-esm/src/__tests__/utils/createSlots.test.d.ts +1 -0
  867. package/lib-esm/src/behaviors/anchoredPosition.d.ts +89 -0
  868. package/lib-esm/src/behaviors/focusTrap.d.ts +12 -0
  869. package/lib-esm/src/behaviors/focusZone.d.ts +137 -0
  870. package/lib-esm/src/behaviors/scrollIntoViewingArea.d.ts +1 -0
  871. package/lib-esm/src/constants.d.ts +20 -0
  872. package/lib-esm/src/drafts.d.ts +8 -0
  873. package/lib-esm/src/hooks/index.d.ts +11 -0
  874. package/lib-esm/src/hooks/useAnchoredPosition.d.ts +20 -0
  875. package/lib-esm/src/hooks/useCombinedRefs.d.ts +10 -0
  876. package/lib-esm/src/hooks/useDetails.d.ts +17 -0
  877. package/lib-esm/src/hooks/useDialog.d.ts +16 -0
  878. package/lib-esm/src/hooks/useFocusTrap.d.ts +32 -0
  879. package/lib-esm/src/hooks/useFocusZone.d.ts +23 -0
  880. package/lib-esm/src/hooks/useOnEscapePress.d.ts +23 -0
  881. package/lib-esm/src/hooks/useOnOutsideClick.d.ts +8 -0
  882. package/lib-esm/src/hooks/useOpenAndCloseFocus.d.ts +8 -0
  883. package/lib-esm/src/hooks/useOverlay.d.ts +15 -0
  884. package/lib-esm/src/hooks/useProvidedRefOrCreate.d.ts +10 -0
  885. package/lib-esm/src/hooks/useProvidedStateOrCreate.d.ts +10 -0
  886. package/lib-esm/src/hooks/useRenderForcingRef.d.ts +8 -0
  887. package/lib-esm/src/hooks/useResizeObserver.d.ts +1 -0
  888. package/lib-esm/src/hooks/useSafeTimeout.d.ts +12 -0
  889. package/lib-esm/src/hooks/useScrollFlash.d.ts +6 -0
  890. package/lib-esm/src/index.d.ts +120 -0
  891. package/lib-esm/src/polyfills/eventListenerSignal.d.ts +6 -0
  892. package/lib-esm/src/sx.d.ts +14 -0
  893. package/lib-esm/src/theme-preval.d.ts +49 -0
  894. package/lib-esm/src/theme.d.ts +80 -0
  895. package/lib-esm/src/utils/create-slots.d.ts +17 -0
  896. package/lib-esm/src/utils/deprecate.d.ts +18 -0
  897. package/lib-esm/src/utils/isNumeric.d.ts +1 -0
  898. package/lib-esm/src/utils/iterateFocusableElements.d.ts +42 -0
  899. package/lib-esm/src/utils/ssr.d.ts +1 -0
  900. package/lib-esm/src/utils/test-deprecations.d.ts +1 -0
  901. package/lib-esm/{utils/types.js → src/utils/test-helpers.d.ts} +0 -0
  902. package/lib-esm/src/utils/test-matchers.d.ts +1 -0
  903. package/lib-esm/src/utils/testing.d.ts +545 -0
  904. package/lib-esm/src/utils/theme.d.ts +9 -0
  905. package/lib-esm/src/utils/types/AriaRole.d.ts +1 -0
  906. package/lib-esm/src/utils/types/ComponentProps.d.ts +9 -0
  907. package/lib-esm/src/utils/types/Flatten.d.ts +4 -0
  908. package/lib-esm/src/utils/types/KeyPaths.d.ts +3 -0
  909. package/lib-esm/src/utils/types/MandateProps.d.ts +3 -0
  910. package/lib-esm/src/utils/types/Merge.d.ts +19 -0
  911. package/lib-esm/src/utils/types/index.d.ts +5 -0
  912. package/lib-esm/src/utils/uniqueId.d.ts +1 -0
  913. package/lib-esm/src/utils/use-force-update.d.ts +1 -0
  914. package/lib-esm/src/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  915. package/lib-esm/src/utils/userAgent.d.ts +1 -0
  916. package/lib-esm/sx.js +3 -5
  917. package/lib-esm/theme-preval.js +3119 -357
  918. package/lib-esm/theme.js +3 -8
  919. package/lib-esm/utils/create-slots.js +84 -0
  920. package/lib-esm/utils/deprecate.js +6 -5
  921. package/lib-esm/utils/isNumeric.js +1 -0
  922. package/lib-esm/utils/iterateFocusableElements.js +102 -0
  923. package/lib-esm/utils/ssr.js +1 -0
  924. package/lib-esm/utils/test-deprecations.js +1 -1
  925. package/lib-esm/utils/test-helpers.js +7 -0
  926. package/lib-esm/utils/test-matchers.js +7 -49
  927. package/lib-esm/utils/testing.js +60 -46
  928. package/lib-esm/utils/theme.js +66 -0
  929. package/lib-esm/utils/types/AriaRole.js +1 -0
  930. package/lib-esm/utils/types/ComponentProps.js +1 -0
  931. package/lib-esm/utils/types/Flatten.js +1 -0
  932. package/lib-esm/utils/types/KeyPaths.js +1 -0
  933. package/lib-esm/utils/types/MandateProps.js +1 -0
  934. package/lib-esm/utils/types/Merge.js +1 -0
  935. package/lib-esm/utils/types/index.js +5 -0
  936. package/lib-esm/utils/uniqueId.js +5 -0
  937. package/lib-esm/utils/use-force-update.js +6 -0
  938. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  939. package/lib-esm/utils/userAgent.js +8 -0
  940. package/package.json +116 -93
  941. package/index.d.ts +0 -828
  942. package/lib/Breadcrumb.js +0 -96
  943. package/lib/hooks/useMouseIntent.js +0 -58
  944. package/lib/stories/Button.stories.js +0 -100
  945. package/lib-esm/Breadcrumb.js +0 -70
  946. package/lib-esm/hooks/useMouseIntent.js +0 -50
  947. package/lib-esm/stories/Button.stories.js +0 -65
package/lib-esm/theme.js CHANGED
@@ -1,8 +1,3 @@
1
- const themeExport = require('./theme-preval');
2
-
3
- const {
4
- theme,
5
- colors
6
- } = themeExport;
7
- export default theme;
8
- export { colors };
1
+ import { theme } from './theme-preval';
2
+ export default theme; // NOTE: for now, ThemeColors and ThemeShadows are handcrafted types. It would be nice if these
3
+ // were exports from primitives (or a different shape but derived from those exports).
@@ -0,0 +1,84 @@
1
+ import React from 'react';
2
+ import { useForceUpdate } from './use-force-update';
3
+ /** createSlots is a factory that can create a
4
+ * typesafe Slots + Slot pair to use in a component definition
5
+ * For example: ActionList.Item uses createSlots to get a Slots wrapper
6
+ * + Slot component that is used by LeadingVisual, Description
7
+ */
8
+
9
+ const createSlots = slotNames => {
10
+ const SlotsContext = /*#__PURE__*/React.createContext({
11
+ registerSlot: () => null,
12
+ unregisterSlot: () => null,
13
+ context: {}
14
+ });
15
+ /** Slots uses a Double render strategy inspired by [reach-ui/descendants](https://github.com/reach/reach-ui/tree/develop/packages/descendants)
16
+ * Slot registers themself with the Slots parent.
17
+ * When all the children have mounted = registered themselves in slot,
18
+ * we re-render the parent component to render with slots
19
+ */
20
+
21
+ const Slots = ({
22
+ context = {},
23
+ children
24
+ }) => {
25
+ // initialise slots
26
+ const slotsDefinition = {};
27
+ slotNames.map(name => slotsDefinition[name] = null);
28
+ const slotsRef = React.useRef(slotsDefinition);
29
+ const rerenderWithSlots = useForceUpdate();
30
+ const [isMounted, setIsMounted] = React.useState(false); // fires after all the effects in children
31
+
32
+ React.useEffect(() => {
33
+ rerenderWithSlots();
34
+ setIsMounted(true);
35
+ }, [rerenderWithSlots]);
36
+ const registerSlot = React.useCallback((name, contents) => {
37
+ slotsRef.current[name] = contents; // don't render until the component mounts = all slots are registered
38
+
39
+ if (isMounted) rerenderWithSlots();
40
+ }, [isMounted, rerenderWithSlots]); // Slot can be removed from the tree as well,
41
+ // we need to unregister them from the slot
42
+
43
+ const unregisterSlot = React.useCallback(name => {
44
+ slotsRef.current[name] = null;
45
+ rerenderWithSlots();
46
+ }, [rerenderWithSlots]);
47
+ /**
48
+ * Slots uses a render prop API so abstract the
49
+ * implementation detail of using a context provider.
50
+ */
51
+
52
+ const slots = slotsRef.current;
53
+ return /*#__PURE__*/React.createElement(SlotsContext.Provider, {
54
+ value: {
55
+ registerSlot,
56
+ unregisterSlot,
57
+ context
58
+ }
59
+ }, children(slots));
60
+ };
61
+
62
+ const Slot = ({
63
+ name,
64
+ children
65
+ }) => {
66
+ const {
67
+ registerSlot,
68
+ unregisterSlot,
69
+ context
70
+ } = React.useContext(SlotsContext);
71
+ React.useEffect(() => {
72
+ registerSlot(name, typeof children === 'function' ? children(context) : children);
73
+ return () => unregisterSlot(name);
74
+ }, [name, children, registerSlot, unregisterSlot, context]);
75
+ return null;
76
+ };
77
+
78
+ return {
79
+ Slots,
80
+ Slot
81
+ };
82
+ };
83
+
84
+ export default createSlots;
@@ -1,10 +1,10 @@
1
- /* eslint-disable no-console */
2
1
  import { useRef, useCallback } from 'react';
3
2
 
3
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
4
4
  const noop = () => {}; // eslint-disable-next-line import/no-mutable-exports
5
5
 
6
6
 
7
- let deprecate = null;
7
+ let deprecate = noop;
8
8
 
9
9
  if (process.env.NODE_ENV !== 'production') {
10
10
  deprecate = ({
@@ -18,8 +18,6 @@ if (process.env.NODE_ENV !== 'production') {
18
18
  version
19
19
  });
20
20
  };
21
- } else {
22
- deprecate = noop;
23
21
  }
24
22
 
25
23
  export { deprecate }; // eslint-disable-next-line import/no-mutable-exports
@@ -53,6 +51,8 @@ if (process.env.NODE_ENV !== 'production') {
53
51
 
54
52
  export { useDeprecation };
55
53
  export class Deprecations {
54
+ static instance = null;
55
+
56
56
  static get() {
57
57
  if (!Deprecations.instance) {
58
58
  Deprecations.instance = new Deprecations();
@@ -70,7 +70,8 @@ export class Deprecations {
70
70
  message,
71
71
  version
72
72
  }) {
73
- const msg = `WARNING! ${name} is deprecated and will be removed in version ${version}. ${message}`;
73
+ const msg = `WARNING! ${name} is deprecated and will be removed in version ${version}. ${message}`; // eslint-disable-next-line no-console
74
+
74
75
  console.warn(msg);
75
76
  this.get().deprecations.push({
76
77
  name,
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1
2
  export default function isNumeric(n) {
2
3
  return !isNaN(parseFloat(n)) && isFinite(n);
3
4
  }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Options to the focusable elements iterator
3
+ */
4
+
5
+ /**
6
+ * Returns an iterator over all of the focusable elements within `container`.
7
+ * Note: If `container` is itself focusable it will be included in the results.
8
+ * @param container The container over which to find focusable elements.
9
+ * @param reverse If true, iterate backwards through focusable elements.
10
+ */
11
+ export function* iterateFocusableElements(container, options = {}) {
12
+ var _options$strict, _options$onlyTabbable;
13
+
14
+ const strict = (_options$strict = options.strict) !== null && _options$strict !== void 0 ? _options$strict : false;
15
+ const acceptFn = ((_options$onlyTabbable = options.onlyTabbable) !== null && _options$onlyTabbable !== void 0 ? _options$onlyTabbable : false) ? isTabbable : isFocusable;
16
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
17
+ acceptNode: node => node instanceof HTMLElement && acceptFn(node, strict) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
18
+ });
19
+ let nextNode = null; // Allow the container to participate
20
+
21
+ if (!options.reverse && acceptFn(container, strict)) {
22
+ yield container;
23
+ } // If iterating in reverse, continue traversing down into the last child until we reach
24
+ // a leaf DOM node
25
+
26
+
27
+ if (options.reverse) {
28
+ let lastChild = walker.lastChild();
29
+
30
+ while (lastChild) {
31
+ nextNode = lastChild;
32
+ lastChild = walker.lastChild();
33
+ }
34
+ } else {
35
+ nextNode = walker.firstChild();
36
+ }
37
+
38
+ while (nextNode instanceof HTMLElement) {
39
+ yield nextNode;
40
+ nextNode = options.reverse ? walker.previousNode() : walker.nextNode();
41
+ } // Allow the container to participate (in reverse)
42
+
43
+
44
+ if (options.reverse && acceptFn(container, strict)) {
45
+ yield container;
46
+ }
47
+
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Determines whether the given element is focusable. If `strict` is true, we may
52
+ * perform additional checks that require a reflow (less performant).
53
+ * @param elem
54
+ * @param strict
55
+ */
56
+
57
+ export function isFocusable(elem, strict = false) {
58
+ // Certain conditions cause an element to never be focusable, even if they have tabindex="0"
59
+ const disabledAttrInert = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'OPTGROUP', 'OPTION', 'FIELDSET'].includes(elem.tagName) && elem.disabled;
60
+ const hiddenInert = elem.hidden;
61
+ const hiddenInputInert = elem instanceof HTMLInputElement && elem.type === 'hidden';
62
+
63
+ if (disabledAttrInert || hiddenInert || hiddenInputInert) {
64
+ return false;
65
+ } // Each of the conditions checked below require a reflow, thus are gated by the `strict`
66
+ // argument. If any are true, the element is not focusable, even if tabindex is set.
67
+
68
+
69
+ if (strict) {
70
+ const sizeInert = elem.offsetWidth === 0 || elem.offsetHeight === 0;
71
+ const visibilityInert = ['hidden', 'collapse'].includes(getComputedStyle(elem).visibility);
72
+ const clientRectsInert = elem.getClientRects().length === 0;
73
+
74
+ if (sizeInert || visibilityInert || clientRectsInert) {
75
+ return false;
76
+ }
77
+ } // Any element with `tabindex` explicitly set can be focusable, even if it's set to "-1"
78
+
79
+
80
+ if (elem.getAttribute('tabindex') != null) {
81
+ return true;
82
+ } // One last way `elem.tabIndex` can be wrong.
83
+
84
+
85
+ if (elem instanceof HTMLAnchorElement && elem.getAttribute('href') == null) {
86
+ return false;
87
+ }
88
+
89
+ return elem.tabIndex !== -1;
90
+ }
91
+ /**
92
+ * Determines whether the given element is tabbable. If `strict` is true, we may
93
+ * perform additional checks that require a reflow (less performant). This check
94
+ * ensures that the element is focusable and that its tabindex is not explicitly
95
+ * set to "-1" (which makes it focusable, but removes it from the tab order).
96
+ * @param elem
97
+ * @param strict
98
+ */
99
+
100
+ export function isTabbable(elem, strict = false) {
101
+ return isFocusable(elem, strict) && elem.getAttribute('tabindex') !== '-1';
102
+ }
@@ -0,0 +1 @@
1
+ export { SSRProvider, useSSRSafeId } from '@react-aria/ssr';
@@ -1,5 +1,5 @@
1
1
  import semver from 'semver';
2
- import { Deprecations } from '../utils/deprecate';
2
+ import { Deprecations } from './deprecate'; // eslint-disable-next-line @typescript-eslint/no-var-requires
3
3
 
4
4
  const ourVersion = require('../../package.json').version;
5
5
 
@@ -0,0 +1,7 @@
1
+ // JSDOM doesn't mock ResizeObserver
2
+ global.ResizeObserver = jest.fn().mockImplementation(() => {
3
+ return {
4
+ observe: jest.fn(),
5
+ disconnect: jest.fn()
6
+ };
7
+ });
@@ -1,19 +1,11 @@
1
- import React from 'react';
2
1
  import 'jest-styled-components';
3
2
  import { styleSheetSerializer } from 'jest-styled-components/serializer';
4
- import theme from '../theme';
5
- import { getClasses, mount, getComputedStyles, render } from './testing';
3
+ import React from 'react';
4
+ import { getClasses, getComputedStyles, render } from './testing';
6
5
  expect.addSnapshotSerializer(styleSheetSerializer);
7
6
 
8
7
  const stringify = d => JSON.stringify(d, null, ' ');
9
- /**
10
- * These are props that styled-system aliases for backwards compatibility.
11
- * For some reason, they don't show up in our toImplementSystemProps() matcher,
12
- * so we skip over them.
13
- */
14
-
15
8
 
16
- const ALIAS_PROP_TYPES = ['w', 'align', 'justify', 'wrap'];
17
9
  expect.extend({
18
10
  toMatchKeys(obj, values) {
19
11
  return {
@@ -40,23 +32,6 @@ expect.extend({
40
32
  };
41
33
  },
42
34
 
43
- toImplementSystemProps(Component, propNames) {
44
- const propKeys = new Set(Object.keys(Component.propTypes));
45
- const expectedPropKeys = Object.keys(propNames.propTypes);
46
- const missing = expectedPropKeys.filter(key => !propKeys.has(key)).filter(key => !ALIAS_PROP_TYPES.includes(key));
47
- return {
48
- pass: missing.length === 0,
49
- message: () => `Missing prop${missing.length === 1 ? '' : 's'}: ${stringify(missing)}`
50
- };
51
- },
52
-
53
- toImplementSxProp(Component) {
54
- return {
55
- pass: !!Component.propTypes.sx,
56
- message: () => 'Missing sx propTypes'
57
- };
58
- },
59
-
60
35
  toImplementSxBehavior(element) {
61
36
  const mediaKey = '@media (max-width:123px)';
62
37
  const sxPropValue = {
@@ -64,16 +39,16 @@ expect.extend({
64
39
  color: 'red.5'
65
40
  }
66
41
  };
67
- const elem = React.cloneElement(element, {
42
+ const elem = /*#__PURE__*/React.cloneElement(element, {
68
43
  sx: sxPropValue
69
44
  });
70
- const rendered = render(elem);
71
45
 
72
46
  function checkStylesDeep(rendered) {
73
- const className = rendered.props ? rendered.props.className : '';
47
+ const className = rendered.props.className;
74
48
  const styles = getComputedStyles(className);
49
+ const mediaStyles = styles[mediaKey];
75
50
 
76
- if (styles[mediaKey] && styles[mediaKey].color) {
51
+ if (mediaStyles && mediaStyles.color) {
77
52
  return true;
78
53
  } else if (rendered.children) {
79
54
  return rendered.children.some(child => checkStylesDeep(child));
@@ -83,28 +58,11 @@ expect.extend({
83
58
  }
84
59
 
85
60
  return {
86
- pass: checkStylesDeep(rendered),
61
+ pass: checkStylesDeep(render(elem)),
87
62
  message: () => 'sx prop values did not change styles of component nor of any sub-components'
88
63
  };
89
64
  },
90
65
 
91
- toSetDefaultTheme(Component) {
92
- let comp;
93
-
94
- if (Component.type) {
95
- comp = Component;
96
- } else {
97
- comp = /*#__PURE__*/React.createElement(Component, null);
98
- }
99
-
100
- const wrapper = mount(comp);
101
- const pass = this.equals(wrapper.prop('theme'), theme);
102
- return {
103
- pass,
104
- message: () => 'default theme is not set'
105
- };
106
- },
107
-
108
66
  toSetExports(mod, expectedExports) {
109
67
  if (!Object.keys(expectedExports).includes('default')) {
110
68
  return {
@@ -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,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 {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -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
+ // 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,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, 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,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
+ }