@primer/components 0.0.0-20219922627 → 0.0.0-2022530201059

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 (531) hide show
  1. package/CHANGELOG.md +105 -492
  2. package/README.md +16 -16
  3. package/codemods/lib/modifyProps.js +7 -9
  4. package/codemods/lib/prettify.js +1 -1
  5. package/codemods/lib/replaceImportSource.js +5 -5
  6. package/dist/browser.esm.js +801 -1115
  7. package/dist/browser.esm.js.map +1 -1
  8. package/dist/browser.umd.js +815 -1134
  9. package/dist/browser.umd.js.map +1 -1
  10. package/index.d.ts +940 -0
  11. package/lib/AvatarPair.js +5 -6
  12. package/lib/AvatarStack.js +10 -10
  13. package/lib/BaseStyles.js +19 -18
  14. package/lib/BorderBox.js +5 -4
  15. package/lib/Box.js +2 -2
  16. package/lib/BranchName.js +1 -1
  17. package/lib/{Breadcrumbs.js → Breadcrumb.js} +23 -33
  18. package/lib/Button/Button.js +3 -3
  19. package/lib/Button/ButtonClose.js +4 -4
  20. package/lib/Button/ButtonDanger.js +2 -2
  21. package/lib/Button/ButtonInvisible.js +3 -3
  22. package/lib/Button/ButtonOutline.js +2 -2
  23. package/lib/Button/ButtonPrimary.js +2 -2
  24. package/lib/Button/ButtonTableList.js +1 -1
  25. package/lib/CircleBadge.js +1 -1
  26. package/lib/CircleOcticon.js +7 -9
  27. package/lib/CounterLabel.js +2 -2
  28. package/lib/Dialog.js +14 -13
  29. package/lib/Dropdown.js +2 -2
  30. package/lib/DropdownStyles.js +6 -6
  31. package/lib/FilterList.js +1 -1
  32. package/lib/Flash.js +1 -1
  33. package/lib/Flex.js +0 -3
  34. package/lib/Grid.js +3 -4
  35. package/lib/Header.js +2 -3
  36. package/lib/Label.js +4 -4
  37. package/lib/Link.js +12 -1
  38. package/lib/Overlay.js +35 -120
  39. package/lib/Pagehead.js +1 -1
  40. package/lib/Pagination/Pagination.js +2 -3
  41. package/lib/Popover.js +3 -3
  42. package/lib/Portal/Portal.js +12 -20
  43. package/lib/Position.js +27 -46
  44. package/lib/ProgressBar.js +1 -1
  45. package/lib/SelectMenu/SelectMenu.js +4 -4
  46. package/lib/SelectMenu/SelectMenuContext.js +1 -1
  47. package/lib/SelectMenu/SelectMenuDivider.js +3 -3
  48. package/lib/SelectMenu/SelectMenuFilter.js +6 -6
  49. package/lib/SelectMenu/SelectMenuFooter.js +3 -3
  50. package/lib/SelectMenu/SelectMenuHeader.js +2 -2
  51. package/lib/SelectMenu/SelectMenuItem.js +4 -4
  52. package/lib/SelectMenu/SelectMenuList.js +3 -3
  53. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +15 -4
  54. package/lib/SelectMenu/SelectMenuModal.js +7 -7
  55. package/lib/SelectMenu/SelectMenuTab.js +3 -3
  56. package/lib/SelectMenu/SelectMenuTabPanel.js +3 -3
  57. package/lib/SelectMenu/SelectMenuTabs.js +2 -2
  58. package/lib/SelectMenu/hooks/useKeyboardNav.js +0 -2
  59. package/lib/SideNav.js +12 -20
  60. package/lib/StateLabel.js +4 -4
  61. package/lib/SubNav.js +3 -5
  62. package/lib/TabNav.js +3 -3
  63. package/lib/TextInput.js +19 -24
  64. package/lib/ThemeProvider.js +15 -32
  65. package/lib/Timeline.js +29 -24
  66. package/lib/Tooltip.js +1 -2
  67. package/lib/UnderlineNav.js +2 -2
  68. package/lib/behaviors/anchoredPosition.js +9 -17
  69. package/lib/behaviors/focusTrap.js +14 -32
  70. package/lib/behaviors/focusZone.js +148 -218
  71. package/lib/constants.js +2 -3
  72. package/lib/hooks/index.js +1 -9
  73. package/lib/hooks/useAnchoredPosition.js +4 -11
  74. package/lib/hooks/useDialog.js +1 -1
  75. package/lib/hooks/useFocusTrap.js +8 -26
  76. package/lib/hooks/useFocusZone.js +7 -7
  77. package/lib/hooks/useMouseIntent.js +58 -0
  78. package/lib/hooks/useOnEscapePress.js +10 -53
  79. package/lib/hooks/useOnOutsideClick.js +35 -62
  80. package/lib/hooks/useOpenAndCloseFocus.js +1 -1
  81. package/lib/hooks/useOverlay.js +17 -5
  82. package/lib/hooks/useSafeTimeout.js +0 -1
  83. package/lib/index.js +12 -76
  84. package/lib/polyfills/eventListenerSignal.js +1 -6
  85. package/lib/stories/Button.stories.js +114 -0
  86. package/lib/stories/Overlay.stories.js +102 -0
  87. package/lib/stories/Portal.stories.js +108 -0
  88. package/lib/stories/ThemeProvider.stories.js +95 -0
  89. package/lib/stories/useAnchoredPosition.stories.js +349 -0
  90. package/lib/stories/useFocusTrap.stories.js +278 -0
  91. package/lib/stories/useFocusZone.stories.js +490 -0
  92. package/lib/theme-preval.js +2057 -5148
  93. package/lib/utils/deprecate.js +2 -3
  94. package/lib/utils/isNumeric.js +0 -1
  95. package/lib/utils/iterateFocusableElements.js +1 -1
  96. package/lib/utils/test-deprecations.js +0 -1
  97. package/lib/utils/test-matchers.js +12 -3
  98. package/lib/utils/testing.js +4 -4
  99. package/lib/utils/theme.js +1 -1
  100. package/lib/utils/uniqueId.js +0 -1
  101. package/lib-esm/AvatarPair.js +5 -6
  102. package/lib-esm/AvatarStack.js +11 -11
  103. package/lib-esm/BaseStyles.js +16 -16
  104. package/lib-esm/BorderBox.js +3 -5
  105. package/lib-esm/Box.js +2 -2
  106. package/lib-esm/BranchName.js +1 -1
  107. package/lib-esm/{Breadcrumbs.js → Breadcrumb.js} +22 -32
  108. package/lib-esm/Button/Button.js +1 -1
  109. package/lib-esm/Button/ButtonClose.js +2 -2
  110. package/lib-esm/Button/ButtonInvisible.js +1 -1
  111. package/lib-esm/Button/ButtonTableList.js +1 -1
  112. package/lib-esm/CircleBadge.js +1 -1
  113. package/lib-esm/CircleOcticon.js +6 -9
  114. package/lib-esm/CounterLabel.js +2 -2
  115. package/lib-esm/Dialog.js +12 -10
  116. package/lib-esm/Dropdown.js +2 -2
  117. package/lib-esm/DropdownStyles.js +6 -6
  118. package/lib-esm/FilterList.js +1 -1
  119. package/lib-esm/Flash.js +1 -1
  120. package/lib-esm/Flex.js +0 -4
  121. package/lib-esm/Grid.js +2 -5
  122. package/lib-esm/Header.js +0 -1
  123. package/lib-esm/Label.js +2 -2
  124. package/lib-esm/Link.js +12 -1
  125. package/lib-esm/Overlay.js +37 -115
  126. package/lib-esm/Pagehead.js +1 -1
  127. package/lib-esm/Pagination/Pagination.js +2 -3
  128. package/lib-esm/Popover.js +3 -3
  129. package/lib-esm/Portal/Portal.js +12 -19
  130. package/lib-esm/Portal/index.js +1 -1
  131. package/lib-esm/Position.js +20 -45
  132. package/lib-esm/ProgressBar.js +1 -1
  133. package/lib-esm/SelectMenu/SelectMenu.js +3 -3
  134. package/lib-esm/SelectMenu/SelectMenuContext.js +1 -1
  135. package/lib-esm/SelectMenu/SelectMenuDivider.js +1 -1
  136. package/lib-esm/SelectMenu/SelectMenuFilter.js +4 -4
  137. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  138. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  139. package/lib-esm/SelectMenu/SelectMenuItem.js +2 -2
  140. package/lib-esm/SelectMenu/SelectMenuList.js +1 -1
  141. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +10 -5
  142. package/lib-esm/SelectMenu/SelectMenuModal.js +5 -5
  143. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  144. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  145. package/lib-esm/SelectMenu/hooks/useKeyboardNav.js +0 -2
  146. package/lib-esm/SideNav.js +7 -16
  147. package/lib-esm/StateLabel.js +4 -4
  148. package/lib-esm/SubNav.js +4 -7
  149. package/lib-esm/TabNav.js +4 -5
  150. package/lib-esm/TextInput.js +17 -23
  151. package/lib-esm/ThemeProvider.js +16 -31
  152. package/lib-esm/Timeline.js +24 -19
  153. package/lib-esm/Tooltip.js +1 -2
  154. package/lib-esm/UnderlineNav.js +3 -4
  155. package/lib-esm/behaviors/anchoredPosition.js +9 -17
  156. package/lib-esm/behaviors/focusTrap.js +14 -32
  157. package/lib-esm/behaviors/focusZone.js +148 -213
  158. package/lib-esm/constants.js +1 -2
  159. package/lib-esm/hooks/index.js +1 -2
  160. package/lib-esm/hooks/useAnchoredPosition.js +5 -10
  161. package/lib-esm/hooks/useDialog.js +1 -1
  162. package/lib-esm/hooks/useFocusTrap.js +8 -25
  163. package/lib-esm/hooks/useFocusZone.js +5 -5
  164. package/lib-esm/hooks/useMouseIntent.js +50 -0
  165. package/lib-esm/hooks/useOnEscapePress.js +10 -53
  166. package/lib-esm/hooks/useOnOutsideClick.js +37 -62
  167. package/lib-esm/hooks/useOpenAndCloseFocus.js +1 -1
  168. package/lib-esm/hooks/useOverlay.js +16 -5
  169. package/lib-esm/hooks/useSafeTimeout.js +0 -1
  170. package/lib-esm/index.js +10 -19
  171. package/lib-esm/polyfills/eventListenerSignal.js +1 -6
  172. package/lib-esm/stories/Button.stories.js +79 -0
  173. package/lib-esm/stories/Overlay.stories.js +80 -0
  174. package/lib-esm/stories/Portal.stories.js +72 -0
  175. package/lib-esm/stories/ThemeProvider.stories.js +76 -0
  176. package/lib-esm/stories/useAnchoredPosition.stories.js +311 -0
  177. package/lib-esm/stories/useFocusTrap.stories.js +234 -0
  178. package/lib-esm/stories/useFocusZone.stories.js +445 -0
  179. package/lib-esm/theme-preval.js +2057 -5148
  180. package/lib-esm/utils/deprecate.js +2 -3
  181. package/lib-esm/utils/isNumeric.js +0 -1
  182. package/lib-esm/utils/iterateFocusableElements.js +1 -1
  183. package/lib-esm/utils/test-deprecations.js +1 -1
  184. package/lib-esm/utils/test-matchers.js +11 -3
  185. package/lib-esm/utils/testing.js +6 -6
  186. package/lib-esm/utils/theme.js +1 -1
  187. package/lib-esm/utils/types.js +0 -1
  188. package/lib-esm/utils/uniqueId.js +0 -1
  189. package/package.json +95 -103
  190. package/codemods/__tests__/deprecateUtilityComponents.js +0 -200
  191. package/codemods/__tests__/removeSystemProps.js +0 -225
  192. package/codemods/deprecateUtilityComponents.js +0 -111
  193. package/codemods/removeSystemProps.js +0 -312
  194. package/lib/ActionList/Divider.d.ts +0 -9
  195. package/lib/ActionList/Divider.js +0 -40
  196. package/lib/ActionList/Group.d.ts +0 -28
  197. package/lib/ActionList/Group.js +0 -35
  198. package/lib/ActionList/Header.d.ts +0 -29
  199. package/lib/ActionList/Header.js +0 -51
  200. package/lib/ActionList/Item.d.ts +0 -92
  201. package/lib/ActionList/Item.js +0 -288
  202. package/lib/ActionList/List.d.ts +0 -87
  203. package/lib/ActionList/List.js +0 -199
  204. package/lib/ActionList/index.d.ts +0 -17
  205. package/lib/ActionList/index.js +0 -29
  206. package/lib/ActionMenu.d.ts +0 -40
  207. package/lib/ActionMenu.js +0 -103
  208. package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +0 -61
  209. package/lib/AnchoredOverlay/AnchoredOverlay.js +0 -116
  210. package/lib/AnchoredOverlay/index.d.ts +0 -2
  211. package/lib/AnchoredOverlay/index.js +0 -13
  212. package/lib/Avatar.d.ts +0 -15
  213. package/lib/AvatarPair.d.ts +0 -8
  214. package/lib/AvatarStack.d.ts +0 -8
  215. package/lib/BaseStyles.d.ts +0 -14
  216. package/lib/BorderBox.d.ts +0 -7
  217. package/lib/Box.d.ts +0 -6
  218. package/lib/BranchName.d.ts +0 -6
  219. package/lib/Breadcrumbs.d.ts +0 -40
  220. package/lib/Button/Button.d.ts +0 -284
  221. package/lib/Button/ButtonBase.d.ts +0 -12
  222. package/lib/Button/ButtonClose.d.ts +0 -321
  223. package/lib/Button/ButtonDanger.d.ts +0 -284
  224. package/lib/Button/ButtonGroup.d.ts +0 -4
  225. package/lib/Button/ButtonInvisible.d.ts +0 -284
  226. package/lib/Button/ButtonOutline.d.ts +0 -284
  227. package/lib/Button/ButtonPrimary.d.ts +0 -284
  228. package/lib/Button/ButtonStyles.d.ts +0 -2
  229. package/lib/Button/ButtonTableList.d.ts +0 -6
  230. package/lib/Button/index.d.ts +0 -16
  231. package/lib/Caret.d.ts +0 -21
  232. package/lib/CircleBadge.d.ts +0 -25
  233. package/lib/CircleOcticon.d.ts +0 -391
  234. package/lib/CounterLabel.d.ts +0 -8
  235. package/lib/DatePicker/DatePicker.d.ts +0 -35
  236. package/lib/DatePicker/DatePicker.js +0 -37
  237. package/lib/DatePicker/DatePickerPanel.d.ts +0 -0
  238. package/lib/DatePicker/DatePickerPanel.js +0 -1
  239. package/lib/DatePicker/Day.d.ts +0 -12
  240. package/lib/DatePicker/Day.js +0 -44
  241. package/lib/DatePicker/Month.d.ts +0 -10
  242. package/lib/DatePicker/Month.js +0 -28
  243. package/lib/DatePicker/index.d.ts +0 -2
  244. package/lib/DatePicker/index.js +0 -13
  245. package/lib/Details.d.ts +0 -6
  246. package/lib/Dialog/ConfirmationDialog.d.ts +0 -44
  247. package/lib/Dialog/ConfirmationDialog.js +0 -191
  248. package/lib/Dialog/Dialog.d.ts +0 -167
  249. package/lib/Dialog/Dialog.js +0 -304
  250. package/lib/Dialog.d.ts +0 -406
  251. package/lib/Dropdown.d.ts +0 -1262
  252. package/lib/DropdownMenu/DropdownButton.d.ts +0 -323
  253. package/lib/DropdownMenu/DropdownButton.js +0 -31
  254. package/lib/DropdownMenu/DropdownMenu.d.ts +0 -43
  255. package/lib/DropdownMenu/DropdownMenu.js +0 -94
  256. package/lib/DropdownMenu/index.d.ts +0 -4
  257. package/lib/DropdownMenu/index.js +0 -21
  258. package/lib/DropdownStyles.d.ts +0 -3
  259. package/lib/FilterList.d.ts +0 -321
  260. package/lib/FilteredActionList/FilteredActionList.d.ts +0 -16
  261. package/lib/FilteredActionList/FilteredActionList.js +0 -163
  262. package/lib/FilteredActionList/index.d.ts +0 -2
  263. package/lib/FilteredActionList/index.js +0 -13
  264. package/lib/FilteredSearch.d.ts +0 -6
  265. package/lib/Flash.d.ts +0 -9
  266. package/lib/Flex.d.ts +0 -7
  267. package/lib/FormGroup.d.ts +0 -12
  268. package/lib/Grid.d.ts +0 -7
  269. package/lib/Header.d.ts +0 -24
  270. package/lib/Heading.d.ts +0 -6
  271. package/lib/Label.d.ts +0 -11
  272. package/lib/LabelGroup.d.ts +0 -6
  273. package/lib/Link.d.ts +0 -10
  274. package/lib/Overlay.d.ts +0 -62
  275. package/lib/Pagehead.d.ts +0 -6
  276. package/lib/Pagination/Pagination.d.ts +0 -24
  277. package/lib/Pagination/index.d.ts +0 -3
  278. package/lib/Pagination/model.d.ts +0 -26
  279. package/lib/PointerBox.d.ts +0 -11
  280. package/lib/Popover.d.ts +0 -21
  281. package/lib/Portal/Portal.d.ts +0 -25
  282. package/lib/Portal/index.d.ts +0 -4
  283. package/lib/Position.d.ts +0 -34
  284. package/lib/ProgressBar.d.ts +0 -21
  285. package/lib/SelectMenu/SelectMenu.d.ts +0 -1832
  286. package/lib/SelectMenu/SelectMenuContext.d.ts +0 -8
  287. package/lib/SelectMenu/SelectMenuDivider.d.ts +0 -6
  288. package/lib/SelectMenu/SelectMenuFilter.d.ts +0 -9
  289. package/lib/SelectMenu/SelectMenuFooter.d.ts +0 -6
  290. package/lib/SelectMenu/SelectMenuHeader.d.ts +0 -11
  291. package/lib/SelectMenu/SelectMenuItem.d.ts +0 -15
  292. package/lib/SelectMenu/SelectMenuList.d.ts +0 -6
  293. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +0 -7
  294. package/lib/SelectMenu/SelectMenuModal.d.ts +0 -15
  295. package/lib/SelectMenu/SelectMenuTab.d.ts +0 -14
  296. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +0 -13
  297. package/lib/SelectMenu/SelectMenuTabs.d.ts +0 -11
  298. package/lib/SelectMenu/hooks/useKeyboardNav.d.ts +0 -2
  299. package/lib/SelectMenu/index.d.ts +0 -2
  300. package/lib/SelectPanel/SelectPanel.d.ts +0 -25
  301. package/lib/SelectPanel/SelectPanel.js +0 -147
  302. package/lib/SelectPanel/index.d.ts +0 -2
  303. package/lib/SelectPanel/index.js +0 -13
  304. package/lib/SideNav.d.ts +0 -31
  305. package/lib/Spinner.d.ts +0 -17
  306. package/lib/Spinner.js +0 -60
  307. package/lib/StateLabel.d.ts +0 -16
  308. package/lib/StyledOcticon.d.ts +0 -12
  309. package/lib/SubNav.d.ts +0 -32
  310. package/lib/TabNav.d.ts +0 -20
  311. package/lib/Text.d.ts +0 -6
  312. package/lib/TextInput.d.ts +0 -22
  313. package/lib/ThemeProvider.d.ts +0 -26
  314. package/lib/Timeline.d.ts +0 -407
  315. package/lib/Tooltip.d.ts +0 -18
  316. package/lib/Truncate.d.ts +0 -11
  317. package/lib/UnderlineNav.d.ts +0 -25
  318. package/lib/behaviors/anchoredPosition.d.ts +0 -89
  319. package/lib/behaviors/focusTrap.d.ts +0 -12
  320. package/lib/behaviors/focusZone.d.ts +0 -137
  321. package/lib/constants.d.ts +0 -20
  322. package/lib/hooks/index.d.ts +0 -11
  323. package/lib/hooks/useAnchoredPosition.d.ts +0 -20
  324. package/lib/hooks/useCombinedRefs.d.ts +0 -10
  325. package/lib/hooks/useCombinedRefs.js +0 -49
  326. package/lib/hooks/useDetails.d.ts +0 -17
  327. package/lib/hooks/useDialog.d.ts +0 -16
  328. package/lib/hooks/useFocusTrap.d.ts +0 -32
  329. package/lib/hooks/useFocusZone.d.ts +0 -23
  330. package/lib/hooks/useOnEscapePress.d.ts +0 -23
  331. package/lib/hooks/useOnOutsideClick.d.ts +0 -8
  332. package/lib/hooks/useOpenAndCloseFocus.d.ts +0 -7
  333. package/lib/hooks/useOverlay.d.ts +0 -14
  334. package/lib/hooks/useProvidedRefOrCreate.d.ts +0 -10
  335. package/lib/hooks/useProvidedStateOrCreate.d.ts +0 -10
  336. package/lib/hooks/useProvidedStateOrCreate.js +0 -27
  337. package/lib/hooks/useRenderForcingRef.d.ts +0 -8
  338. package/lib/hooks/useRenderForcingRef.js +0 -25
  339. package/lib/hooks/useResizeObserver.d.ts +0 -1
  340. package/lib/hooks/useResizeObserver.js +0 -20
  341. package/lib/hooks/useSafeTimeout.d.ts +0 -12
  342. package/lib/hooks/useScrollFlash.d.ts +0 -6
  343. package/lib/hooks/useScrollFlash.js +0 -29
  344. package/lib/index.d.ts +0 -111
  345. package/lib/polyfills/eventListenerSignal.d.ts +0 -6
  346. package/lib/sx.d.ts +0 -6
  347. package/lib/theme-preval.d.ts +0 -49
  348. package/lib/theme.d.ts +0 -2
  349. package/lib/utils/deprecate.d.ts +0 -18
  350. package/lib/utils/isNumeric.d.ts +0 -1
  351. package/lib/utils/iterateFocusableElements.d.ts +0 -42
  352. package/lib/utils/ssr.d.ts +0 -1
  353. package/lib/utils/ssr.js +0 -19
  354. package/lib/utils/test-deprecations.d.ts +0 -1
  355. package/lib/utils/test-helpers.d.ts +0 -0
  356. package/lib/utils/test-helpers.js +0 -9
  357. package/lib/utils/test-matchers.d.ts +0 -1
  358. package/lib/utils/testing.d.ts +0 -1028
  359. package/lib/utils/theme.d.ts +0 -9
  360. package/lib/utils/types.d.ts +0 -14
  361. package/lib/utils/uniqueId.d.ts +0 -1
  362. package/lib/utils/userAgent.d.ts +0 -1
  363. package/lib-esm/ActionList/Divider.d.ts +0 -9
  364. package/lib-esm/ActionList/Divider.js +0 -23
  365. package/lib-esm/ActionList/Group.d.ts +0 -28
  366. package/lib-esm/ActionList/Group.js +0 -24
  367. package/lib-esm/ActionList/Header.d.ts +0 -29
  368. package/lib-esm/ActionList/Header.js +0 -33
  369. package/lib-esm/ActionList/Item.d.ts +0 -92
  370. package/lib-esm/ActionList/Item.js +0 -253
  371. package/lib-esm/ActionList/List.d.ts +0 -87
  372. package/lib-esm/ActionList/List.js +0 -181
  373. package/lib-esm/ActionList/index.d.ts +0 -17
  374. package/lib-esm/ActionList/index.js +0 -18
  375. package/lib-esm/ActionMenu.d.ts +0 -40
  376. package/lib-esm/ActionMenu.js +0 -82
  377. package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +0 -61
  378. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +0 -96
  379. package/lib-esm/AnchoredOverlay/index.d.ts +0 -2
  380. package/lib-esm/AnchoredOverlay/index.js +0 -1
  381. package/lib-esm/Avatar.d.ts +0 -15
  382. package/lib-esm/AvatarPair.d.ts +0 -8
  383. package/lib-esm/AvatarStack.d.ts +0 -8
  384. package/lib-esm/BaseStyles.d.ts +0 -14
  385. package/lib-esm/BorderBox.d.ts +0 -7
  386. package/lib-esm/Box.d.ts +0 -6
  387. package/lib-esm/BranchName.d.ts +0 -6
  388. package/lib-esm/Breadcrumbs.d.ts +0 -40
  389. package/lib-esm/Button/Button.d.ts +0 -284
  390. package/lib-esm/Button/ButtonBase.d.ts +0 -12
  391. package/lib-esm/Button/ButtonClose.d.ts +0 -321
  392. package/lib-esm/Button/ButtonDanger.d.ts +0 -284
  393. package/lib-esm/Button/ButtonGroup.d.ts +0 -4
  394. package/lib-esm/Button/ButtonInvisible.d.ts +0 -284
  395. package/lib-esm/Button/ButtonOutline.d.ts +0 -284
  396. package/lib-esm/Button/ButtonPrimary.d.ts +0 -284
  397. package/lib-esm/Button/ButtonStyles.d.ts +0 -2
  398. package/lib-esm/Button/ButtonTableList.d.ts +0 -6
  399. package/lib-esm/Button/index.d.ts +0 -16
  400. package/lib-esm/Caret.d.ts +0 -21
  401. package/lib-esm/CircleBadge.d.ts +0 -25
  402. package/lib-esm/CircleOcticon.d.ts +0 -391
  403. package/lib-esm/CounterLabel.d.ts +0 -8
  404. package/lib-esm/DatePicker/DatePicker.d.ts +0 -35
  405. package/lib-esm/DatePicker/DatePicker.js +0 -24
  406. package/lib-esm/DatePicker/DatePickerPanel.d.ts +0 -0
  407. package/lib-esm/DatePicker/DatePickerPanel.js +0 -0
  408. package/lib-esm/DatePicker/Day.d.ts +0 -12
  409. package/lib-esm/DatePicker/Day.js +0 -26
  410. package/lib-esm/DatePicker/Month.d.ts +0 -10
  411. package/lib-esm/DatePicker/Month.js +0 -13
  412. package/lib-esm/DatePicker/index.d.ts +0 -2
  413. package/lib-esm/DatePicker/index.js +0 -1
  414. package/lib-esm/Details.d.ts +0 -6
  415. package/lib-esm/Dialog/ConfirmationDialog.d.ts +0 -44
  416. package/lib-esm/Dialog/ConfirmationDialog.js +0 -169
  417. package/lib-esm/Dialog/Dialog.d.ts +0 -167
  418. package/lib-esm/Dialog/Dialog.js +0 -274
  419. package/lib-esm/Dialog.d.ts +0 -406
  420. package/lib-esm/Dropdown.d.ts +0 -1262
  421. package/lib-esm/DropdownMenu/DropdownButton.d.ts +0 -323
  422. package/lib-esm/DropdownMenu/DropdownButton.js +0 -16
  423. package/lib-esm/DropdownMenu/DropdownMenu.d.ts +0 -43
  424. package/lib-esm/DropdownMenu/DropdownMenu.js +0 -77
  425. package/lib-esm/DropdownMenu/index.d.ts +0 -4
  426. package/lib-esm/DropdownMenu/index.js +0 -2
  427. package/lib-esm/DropdownStyles.d.ts +0 -3
  428. package/lib-esm/FilterList.d.ts +0 -321
  429. package/lib-esm/FilteredActionList/FilteredActionList.d.ts +0 -16
  430. package/lib-esm/FilteredActionList/FilteredActionList.js +0 -137
  431. package/lib-esm/FilteredActionList/index.d.ts +0 -2
  432. package/lib-esm/FilteredActionList/index.js +0 -1
  433. package/lib-esm/FilteredSearch.d.ts +0 -6
  434. package/lib-esm/Flash.d.ts +0 -9
  435. package/lib-esm/Flex.d.ts +0 -7
  436. package/lib-esm/FormGroup.d.ts +0 -12
  437. package/lib-esm/Grid.d.ts +0 -7
  438. package/lib-esm/Header.d.ts +0 -24
  439. package/lib-esm/Heading.d.ts +0 -6
  440. package/lib-esm/Label.d.ts +0 -11
  441. package/lib-esm/LabelGroup.d.ts +0 -6
  442. package/lib-esm/Link.d.ts +0 -10
  443. package/lib-esm/Overlay.d.ts +0 -62
  444. package/lib-esm/Pagehead.d.ts +0 -6
  445. package/lib-esm/Pagination/Pagination.d.ts +0 -24
  446. package/lib-esm/Pagination/index.d.ts +0 -3
  447. package/lib-esm/Pagination/model.d.ts +0 -26
  448. package/lib-esm/PointerBox.d.ts +0 -11
  449. package/lib-esm/Popover.d.ts +0 -21
  450. package/lib-esm/Portal/Portal.d.ts +0 -25
  451. package/lib-esm/Portal/index.d.ts +0 -4
  452. package/lib-esm/Position.d.ts +0 -34
  453. package/lib-esm/ProgressBar.d.ts +0 -21
  454. package/lib-esm/SelectMenu/SelectMenu.d.ts +0 -1832
  455. package/lib-esm/SelectMenu/SelectMenuContext.d.ts +0 -8
  456. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +0 -6
  457. package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +0 -9
  458. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +0 -6
  459. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +0 -11
  460. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +0 -15
  461. package/lib-esm/SelectMenu/SelectMenuList.d.ts +0 -6
  462. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +0 -7
  463. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +0 -15
  464. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +0 -14
  465. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +0 -13
  466. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +0 -11
  467. package/lib-esm/SelectMenu/hooks/useKeyboardNav.d.ts +0 -2
  468. package/lib-esm/SelectMenu/index.d.ts +0 -2
  469. package/lib-esm/SelectPanel/SelectPanel.d.ts +0 -25
  470. package/lib-esm/SelectPanel/SelectPanel.js +0 -127
  471. package/lib-esm/SelectPanel/index.d.ts +0 -2
  472. package/lib-esm/SelectPanel/index.js +0 -1
  473. package/lib-esm/SideNav.d.ts +0 -31
  474. package/lib-esm/Spinner.d.ts +0 -17
  475. package/lib-esm/Spinner.js +0 -46
  476. package/lib-esm/StateLabel.d.ts +0 -16
  477. package/lib-esm/StyledOcticon.d.ts +0 -12
  478. package/lib-esm/SubNav.d.ts +0 -32
  479. package/lib-esm/TabNav.d.ts +0 -20
  480. package/lib-esm/Text.d.ts +0 -6
  481. package/lib-esm/TextInput.d.ts +0 -22
  482. package/lib-esm/ThemeProvider.d.ts +0 -26
  483. package/lib-esm/Timeline.d.ts +0 -407
  484. package/lib-esm/Tooltip.d.ts +0 -18
  485. package/lib-esm/Truncate.d.ts +0 -11
  486. package/lib-esm/UnderlineNav.d.ts +0 -25
  487. package/lib-esm/behaviors/anchoredPosition.d.ts +0 -89
  488. package/lib-esm/behaviors/focusTrap.d.ts +0 -12
  489. package/lib-esm/behaviors/focusZone.d.ts +0 -137
  490. package/lib-esm/constants.d.ts +0 -20
  491. package/lib-esm/hooks/index.d.ts +0 -11
  492. package/lib-esm/hooks/useAnchoredPosition.d.ts +0 -20
  493. package/lib-esm/hooks/useCombinedRefs.d.ts +0 -10
  494. package/lib-esm/hooks/useCombinedRefs.js +0 -36
  495. package/lib-esm/hooks/useDetails.d.ts +0 -17
  496. package/lib-esm/hooks/useDialog.d.ts +0 -16
  497. package/lib-esm/hooks/useFocusTrap.d.ts +0 -32
  498. package/lib-esm/hooks/useFocusZone.d.ts +0 -23
  499. package/lib-esm/hooks/useOnEscapePress.d.ts +0 -23
  500. package/lib-esm/hooks/useOnOutsideClick.d.ts +0 -8
  501. package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +0 -7
  502. package/lib-esm/hooks/useOverlay.d.ts +0 -14
  503. package/lib-esm/hooks/useProvidedRefOrCreate.d.ts +0 -10
  504. package/lib-esm/hooks/useProvidedStateOrCreate.d.ts +0 -10
  505. package/lib-esm/hooks/useProvidedStateOrCreate.js +0 -20
  506. package/lib-esm/hooks/useRenderForcingRef.d.ts +0 -8
  507. package/lib-esm/hooks/useRenderForcingRef.js +0 -18
  508. package/lib-esm/hooks/useResizeObserver.d.ts +0 -1
  509. package/lib-esm/hooks/useResizeObserver.js +0 -10
  510. package/lib-esm/hooks/useSafeTimeout.d.ts +0 -12
  511. package/lib-esm/hooks/useScrollFlash.d.ts +0 -6
  512. package/lib-esm/hooks/useScrollFlash.js +0 -22
  513. package/lib-esm/index.d.ts +0 -111
  514. package/lib-esm/polyfills/eventListenerSignal.d.ts +0 -6
  515. package/lib-esm/sx.d.ts +0 -6
  516. package/lib-esm/theme-preval.d.ts +0 -49
  517. package/lib-esm/theme.d.ts +0 -2
  518. package/lib-esm/utils/deprecate.d.ts +0 -18
  519. package/lib-esm/utils/isNumeric.d.ts +0 -1
  520. package/lib-esm/utils/iterateFocusableElements.d.ts +0 -42
  521. package/lib-esm/utils/ssr.d.ts +0 -1
  522. package/lib-esm/utils/ssr.js +0 -1
  523. package/lib-esm/utils/test-deprecations.d.ts +0 -1
  524. package/lib-esm/utils/test-helpers.d.ts +0 -0
  525. package/lib-esm/utils/test-helpers.js +0 -7
  526. package/lib-esm/utils/test-matchers.d.ts +0 -1
  527. package/lib-esm/utils/testing.d.ts +0 -1028
  528. package/lib-esm/utils/theme.d.ts +0 -9
  529. package/lib-esm/utils/types.d.ts +0 -14
  530. package/lib-esm/utils/uniqueId.d.ts +0 -1
  531. package/lib-esm/utils/userAgent.d.ts +0 -1
@@ -0,0 +1,50 @@
1
+ /* adapted from: https://github.com/github/github/blob/a959c0d15c29b98c49b881f520c5947fe24eecb9/app/assets/modules/github/behaviors/button-outline.ts */
2
+ import { useEffect } from 'react';
3
+
4
+ const useMouseIntent = () => {
5
+ useEffect(() => {
6
+ let lastActiveElement = null;
7
+ let currentInputIsMouse = false;
8
+
9
+ function setClass() {
10
+ lastActiveElement = document.activeElement;
11
+
12
+ if (document.body) {
13
+ document.body.classList.toggle('intent-mouse', currentInputIsMouse);
14
+ }
15
+ }
16
+
17
+ function onKeyDown() {
18
+ currentInputIsMouse = false;
19
+ }
20
+
21
+ function onMouseDown() {
22
+ currentInputIsMouse = true;
23
+ if (lastActiveElement === document.activeElement) setClass();
24
+ } // Use mousedown event to make sure outline is remove for holding and dragging
25
+
26
+
27
+ document.addEventListener('mousedown', onMouseDown, {
28
+ capture: true
29
+ });
30
+ document.addEventListener('keydown', onKeyDown, {
31
+ capture: true
32
+ });
33
+ document.addEventListener('focusin', setClass, {
34
+ capture: true
35
+ });
36
+ return () => {
37
+ document.removeEventListener('keydown', onKeyDown, {
38
+ capture: true
39
+ });
40
+ document.removeEventListener('focusin', setClass, {
41
+ capture: true
42
+ });
43
+ document.removeEventListener('mousedown', onMouseDown, {
44
+ capture: true
45
+ });
46
+ };
47
+ }, []);
48
+ };
49
+
50
+ export default useMouseIntent;
@@ -1,59 +1,16 @@
1
1
  import { useEffect, useCallback } from 'react';
2
- const handlers = [];
3
- /**
4
- * Calls all handlers in reverse order
5
- * @param event The KeyboardEvent generated by the Escape keydown.
6
- */
7
-
8
- function handleEscape(event) {
9
- if (event.key === 'Escape' && !event.defaultPrevented) {
10
- for (let i = handlers.length - 1; i >= 0; --i) {
11
- handlers[i](event); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
12
-
13
- if (event.defaultPrevented) {
14
- break;
15
- }
2
+ export const useOnEscapePress = ({
3
+ onEscape
4
+ }) => {
5
+ const handleEscape = useCallback(e => {
6
+ if (e.key === 'Escape' && !e.defaultPrevented) {
7
+ onEscape(e);
16
8
  }
17
- }
18
- }
19
- /**
20
- * Sets up a `keydown` listener on `window.document`. If
21
- * 1) The pressed key is "Escape", and
22
- * 2) The event has not had `.preventDefault()` called
23
- * The given callback will be executed.
24
- *
25
- * Note: If multiple `useOnEscapePress` hooks are active simultaneously, the
26
- * callbacks will occur in reverse order. In other words, if a parent component
27
- * and a child component both call `useOnEscapePress`, when the user presses
28
- * Escape, the child component's callback will execute, followed by the parent's
29
- * callback. Each callback has the chance to call `.preventDefault()` on the
30
- * event to prevent further callbacks.
31
- *
32
- * @param callback {(e: KeyboardEvent) => void} The callback that gets executed
33
- * when the Escape key is pressed. The KeyboardEvent generated by the Escape
34
- * keypress is passed as the only argument.
35
- *
36
- * @param callbackDependencies {React.DependencyList} The dependencies of the given
37
- * `onEscape` callback for memoization. Omit this param if the callback is already
38
- * memoized. See `React.useCallback` for more info on memoization.
39
- */
40
-
41
-
42
- export const useOnEscapePress = (onEscape, callbackDependencies = [onEscape]) => {
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
- const escapeCallback = useCallback(onEscape, callbackDependencies);
9
+ }, [onEscape]);
45
10
  useEffect(() => {
46
- if (handlers.length === 0) {
47
- document.addEventListener('keydown', handleEscape);
48
- }
49
-
50
- handlers.push(escapeCallback);
11
+ document.addEventListener('keydown', handleEscape);
51
12
  return () => {
52
- handlers.splice(handlers.findIndex(h => h === escapeCallback), 1);
53
-
54
- if (handlers.length === 0) {
55
- document.removeEventListener('keydown', handleEscape);
56
- }
13
+ document.removeEventListener('keydown', handleEscape);
57
14
  };
58
- }, [escapeCallback]);
15
+ }, [handleEscape]);
59
16
  };
@@ -1,79 +1,54 @@
1
- import { useEffect, useCallback, useMemo } from 'react';
2
- // Because events are handled at the document level, we provide a mechanism for early return.
3
- const stopPropagation = true;
4
- /**
5
- * Calls all handlers in reverse order
6
- * @param event The MouseEvent generated by the click event.
7
- */
1
+ import { useEffect, useCallback } from 'react';
2
+
3
+ const shouldCallClickHandler = ({
4
+ ignoreClickRefs,
5
+ containerRef,
6
+ e
7
+ }) => {
8
+ var _containerRef$current;
9
+
10
+ let shouldCallHandler = true; // don't call click handler if the mouse event was triggered by an auxiliary button (right click/wheel button/etc)
11
+
12
+ if (e instanceof MouseEvent && e.button > 0) {
13
+ shouldCallHandler = false;
14
+ } // don't call handler if the click happened inside of the container
15
+
16
+
17
+ if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {
18
+ shouldCallHandler = false; // don't call handler if click happened on an ignored ref
19
+ } else if (ignoreClickRefs) {
20
+ for (const ignoreRef of ignoreClickRefs) {
21
+ var _ignoreRef$current;
22
+
23
+ if (ignoreRef && (_ignoreRef$current = ignoreRef.current) !== null && _ignoreRef$current !== void 0 && _ignoreRef$current.contains(e.target)) {
24
+ shouldCallHandler = false; // if we encounter one, break early, we don't need to go through the rest
8
25
 
9
- function handleClick(event) {
10
- if (!event.defaultPrevented) {
11
- for (const handler of Object.values(registry).reverse()) {
12
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
13
- if (handler(event) === stopPropagation || event.defaultPrevented) {
14
26
  break;
15
27
  }
16
28
  }
17
29
  }
18
- }
19
-
20
- const registry = {};
21
-
22
- function register(id, handler) {
23
- registry[id] = handler;
24
- }
25
30
 
26
- function deregister(id) {
27
- delete registry[id];
28
- } // For auto-incrementing unique identifiers for registered handlers.
31
+ return shouldCallHandler;
32
+ };
29
33
 
30
-
31
- let handlerId = 0;
32
34
  export const useOnOutsideClick = ({
33
35
  containerRef,
34
36
  ignoreClickRefs,
35
37
  onClickOutside
36
38
  }) => {
37
- const id = useMemo(() => handlerId++, []);
38
- const handler = useCallback(event => {
39
- var _containerRef$current;
40
-
41
- // don't call click handler if the mouse event was triggered by an auxiliary button (right click/wheel button/etc)
42
- if (event instanceof MouseEvent && event.button > 0) {
43
- return stopPropagation;
44
- } // don't call handler if the click happened inside of the container
45
-
46
-
47
- if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(event.target)) {
48
- return stopPropagation;
49
- } // don't call handler if click happened on an ignored ref
50
-
51
-
52
- if (ignoreClickRefs && ignoreClickRefs.some(({
53
- current
54
- }) => current === null || current === void 0 ? void 0 : current.contains(event.target))) {
55
- return stopPropagation;
39
+ const onOutsideClickInternal = useCallback(e => {
40
+ if (shouldCallClickHandler({
41
+ ignoreClickRefs,
42
+ containerRef,
43
+ e
44
+ })) {
45
+ onClickOutside(e);
56
46
  }
57
-
58
- onClickOutside(event);
59
- }, [containerRef, ignoreClickRefs, onClickOutside]);
47
+ }, [onClickOutside, containerRef, ignoreClickRefs]);
60
48
  useEffect(() => {
61
- if (Object.keys(registry).length === 0) {
62
- // use capture to ensure we get all events
63
- document.addEventListener('mousedown', handleClick, {
64
- capture: true
65
- });
66
- }
67
-
68
- register(id, handler);
49
+ document.addEventListener('click', onOutsideClickInternal);
69
50
  return () => {
70
- deregister(id);
71
-
72
- if (Object.keys(registry).length === 0) {
73
- document.removeEventListener('mousedown', handleClick, {
74
- capture: true
75
- });
76
- }
51
+ document.removeEventListener('click', onOutsideClickInternal);
77
52
  };
78
- }, [id, handler]);
53
+ }, [onOutsideClickInternal]);
79
54
  };
@@ -10,7 +10,7 @@ export function useOpenAndCloseFocus({
10
10
 
11
11
  if (initialFocusRef && initialFocusRef.current) {
12
12
  initialFocusRef.current.focus();
13
- } else if (containerRef.current) {
13
+ } else if (containerRef && containerRef.current) {
14
14
  const firstItem = iterateFocusableElements(containerRef.current).next().value;
15
15
  firstItem === null || firstItem === void 0 ? void 0 : firstItem.focus();
16
16
  }
@@ -1,16 +1,21 @@
1
1
  import { useOnOutsideClick } from './useOnOutsideClick';
2
2
  import { useOpenAndCloseFocus } from './useOpenAndCloseFocus';
3
3
  import { useOnEscapePress } from './useOnEscapePress';
4
- import { useProvidedRefOrCreate } from './useProvidedRefOrCreate';
4
+ import { useAnchoredPosition } from './useAnchoredPosition';
5
+ import { useRef } from 'react';
5
6
  export const useOverlay = ({
6
- overlayRef: _overlayRef,
7
+ anchorRef,
8
+ positionSettings = {},
9
+ positionDeps,
7
10
  returnFocusRef,
8
11
  initialFocusRef,
9
12
  onEscape,
10
13
  ignoreClickRefs,
11
14
  onClickOutside
12
15
  }) => {
13
- const overlayRef = useProvidedRefOrCreate(_overlayRef);
16
+ const overlayRef = useRef(null);
17
+ positionSettings.anchorElementRef = anchorRef;
18
+ positionSettings.floatingElementRef = overlayRef;
14
19
  useOpenAndCloseFocus({
15
20
  containerRef: overlayRef,
16
21
  returnFocusRef,
@@ -21,8 +26,14 @@ export const useOverlay = ({
21
26
  ignoreClickRefs,
22
27
  onClickOutside
23
28
  });
24
- useOnEscapePress(onEscape);
29
+ useOnEscapePress({
30
+ onEscape
31
+ });
32
+ const {
33
+ position
34
+ } = useAnchoredPosition(positionSettings, positionDeps);
25
35
  return {
26
- ref: overlayRef
36
+ ref: overlayRef,
37
+ position
27
38
  };
28
39
  };
@@ -18,7 +18,6 @@ export default function useSafeTimeout() {
18
18
  }, []);
19
19
  useEffect(() => {
20
20
  return () => {
21
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
21
  for (const id of timers.current) {
23
22
  clearTimeout(id);
24
23
  }
package/lib-esm/index.js CHANGED
@@ -1,29 +1,27 @@
1
1
  export { default as theme } from './theme';
2
2
  export { get as themeGet } from './constants';
3
3
  export { default as BaseStyles } from './BaseStyles';
4
- export { default as ThemeProvider, useTheme, useColorSchemeVar } from './ThemeProvider';
5
- // Layout
4
+ export { default as ThemeProvider, useTheme, useColorSchemeVar } from './ThemeProvider'; // Layout
5
+
6
6
  export { default as BorderBox } from './BorderBox';
7
7
  export { default as Box } from './Box';
8
8
  export { default as Flex } from './Flex';
9
9
  export { default as Grid } from './Grid';
10
- export { default as Position, Absolute, Fixed, Relative, Sticky } from './Position';
11
- // Hooks
10
+ export { default as Position, Absolute, Fixed, Relative, Sticky } from './Position'; // Hooks
11
+
12
12
  export { default as useDetails } from './hooks/useDetails';
13
+ export { default as useMouseIntent } from './hooks/useMouseIntent';
13
14
  export { default as useSafeTimeout } from './hooks/useSafeTimeout';
14
15
  export { useOnOutsideClick } from './hooks/useOnOutsideClick';
15
16
  export { useOpenAndCloseFocus } from './hooks/useOpenAndCloseFocus';
16
17
  export { useOnEscapePress } from './hooks/useOnEscapePress';
17
- export { useOverlay } from './hooks/useOverlay';
18
- export { useConfirm } from './Dialog/ConfirmationDialog'; // Components
18
+ export { useOverlay } from './hooks/useOverlay'; // Components
19
19
 
20
- export { ActionList } from './ActionList';
21
- export { ActionMenu } from './ActionMenu';
22
20
  export { default as Avatar } from './Avatar';
23
21
  export { default as AvatarPair } from './AvatarPair';
24
22
  export { default as AvatarStack } from './AvatarStack';
25
23
  export { default as BranchName } from './BranchName';
26
- export { default as Breadcrumbs, Breadcrumb } from './Breadcrumbs';
24
+ export { default as Breadcrumb } from './Breadcrumb';
27
25
  export { default as Button, ButtonDanger, ButtonOutline, ButtonPrimary, ButtonInvisible, ButtonTableList, ButtonClose, ButtonGroup } from './Button';
28
26
  export { default as Caret } from './Caret';
29
27
  export { default as CircleBadge } from './CircleBadge';
@@ -31,11 +29,7 @@ export { default as CircleOcticon } from './CircleOcticon';
31
29
  export { default as CounterLabel } from './CounterLabel';
32
30
  export { default as Details } from './Details';
33
31
  export { default as Dialog } from './Dialog';
34
- export { ConfirmationDialog } from './Dialog/ConfirmationDialog';
35
32
  export { default as Dropdown } from './Dropdown';
36
- export { DropdownButton, DropdownMenu } from './DropdownMenu'; // not exporting new DropdownMenu types yet due to conflict with Dropdown types above
37
- // export type {DropdownButtonProps, DropdownMenuProps} from './DropdownMenu'
38
-
39
33
  export { default as FilteredSearch } from './FilteredSearch';
40
34
  export { default as FilterList } from './FilterList';
41
35
  export { default as Flash } from './Flash';
@@ -49,13 +43,11 @@ export { default as Overlay } from './Overlay';
49
43
  export { default as Pagehead } from './Pagehead';
50
44
  export { default as Pagination } from './Pagination';
51
45
  export { default as PointerBox } from './PointerBox';
52
- export { default as Popover } from './Popover';
53
- // export {default as Portal, registerPortalRoot} from './Portal'
54
- // export type {PortalProps} from './Portal'
46
+ export { default as Popover } from './Popover'; // export {default as Portal, PortalProps, registerPortalRoot} from './Portal'
47
+
55
48
  export { default as ProgressBar } from './ProgressBar';
56
49
  export { default as SelectMenu } from './SelectMenu';
57
50
  export { default as SideNav } from './SideNav';
58
- export { default as Spinner } from './Spinner';
59
51
  export { default as StateLabel } from './StateLabel';
60
52
  export { default as StyledOcticon } from './StyledOcticon';
61
53
  export { default as SubNav } from './SubNav';
@@ -65,5 +57,4 @@ export { default as Text } from './Text';
65
57
  export { default as Timeline } from './Timeline';
66
58
  export { default as Tooltip } from './Tooltip';
67
59
  export { default as Truncate } from './Truncate';
68
- export { default as UnderlineNav } from './UnderlineNav';
69
- export { SSRProvider, useSSRSafeId } from './utils/ssr';
60
+ export { default as UnderlineNav } from './UnderlineNav';
@@ -15,10 +15,9 @@ function noop() {}
15
15
  try {
16
16
  const options = Object.create({}, {
17
17
  signal: {
18
- get() {
18
+ get: function () {
19
19
  signalSupported = true;
20
20
  }
21
-
22
21
  }
23
22
  });
24
23
  window.addEventListener('test', noop, options);
@@ -32,10 +31,6 @@ function featureSupported() {
32
31
  }
33
32
 
34
33
  function monkeyPatch() {
35
- if (typeof window === 'undefined') {
36
- return;
37
- }
38
-
39
34
  const originalAddEventListener = EventTarget.prototype.addEventListener;
40
35
 
41
36
  EventTarget.prototype.addEventListener = function (name, originalCallback, optionsOrCapture) {
@@ -0,0 +1,79 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
4
+ import React from 'react';
5
+ import { BaseStyles, Button, ButtonClose, ButtonDanger, ButtonGroup, ButtonInvisible, ButtonOutline, ButtonPrimary, ButtonTableList, ThemeProvider } from '..';
6
+ export default {
7
+ title: 'Composite components/Button',
8
+ decorators: [Story => {
9
+ return /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(BaseStyles, null, /*#__PURE__*/React.createElement(Story, null)));
10
+ }],
11
+ argTypes: {
12
+ as: {
13
+ table: {
14
+ disable: true
15
+ }
16
+ },
17
+ theme: {
18
+ table: {
19
+ disable: true
20
+ }
21
+ },
22
+ sx: {
23
+ table: {
24
+ disable: true
25
+ }
26
+ },
27
+ variant: {
28
+ control: {
29
+ type: 'radio',
30
+ options: ['small', 'medium', 'large']
31
+ }
32
+ }
33
+ }
34
+ };
35
+ export const defaultButton = args => /*#__PURE__*/React.createElement(Button, args, "Default Button");
36
+ defaultButton.displayName = "defaultButton";
37
+ export const dangerButton = args => /*#__PURE__*/React.createElement(ButtonDanger, args, "Danger Button");
38
+ dangerButton.displayName = "dangerButton";
39
+ export const outlineButton = args => /*#__PURE__*/React.createElement(ButtonOutline, args, "Outline Button");
40
+ outlineButton.displayName = "outlineButton";
41
+ export const primaryButton = args => /*#__PURE__*/React.createElement(ButtonPrimary, args, "Primary Button");
42
+ primaryButton.displayName = "primaryButton";
43
+ export const invisibleButton = args => /*#__PURE__*/React.createElement(ButtonInvisible, args, "Invisible Button");
44
+ invisibleButton.displayName = "invisibleButton";
45
+ export const closeButton = args => /*#__PURE__*/React.createElement(ButtonClose, _extends({}, args, {
46
+ onClick: () => alert('button clicked.')
47
+ }));
48
+ closeButton.displayName = "closeButton";
49
+ export const buttonGroup = args => /*#__PURE__*/React.createElement(ButtonGroup, {
50
+ display: "block",
51
+ my: 2
52
+ }, /*#__PURE__*/React.createElement(Button, args, "Button 1"), /*#__PURE__*/React.createElement(Button, args, "Button 2"), /*#__PURE__*/React.createElement(Button, args, "Button 3"));
53
+ buttonGroup.displayName = "buttonGroup";
54
+ export const buttonTableList = args => /*#__PURE__*/React.createElement(ButtonTableList, args, "Button Table List");
55
+ buttonTableList.displayName = "buttonTableList";
56
+ defaultButton.args = {
57
+ variant: 'medium'
58
+ };
59
+ dangerButton.args = {
60
+ variant: 'medium'
61
+ };
62
+ outlineButton.args = {
63
+ variant: 'medium'
64
+ };
65
+ primaryButton.args = {
66
+ variant: 'medium'
67
+ };
68
+ invisibleButton.args = {
69
+ variant: 'medium'
70
+ };
71
+ closeButton.args = {
72
+ variant: 'medium'
73
+ };
74
+ buttonGroup.args = {
75
+ variant: 'medium'
76
+ };
77
+ buttonTableList.args = {
78
+ variant: 'medium'
79
+ };
@@ -0,0 +1,80 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ import React, { useState, useRef } from 'react';
3
+ import styled, { ThemeProvider } from 'styled-components';
4
+ import { BaseStyles, Overlay, Button, Text, ButtonDanger, theme, Position, Flex } from '..';
5
+ export default {
6
+ title: 'Internal components/Overlay',
7
+ component: Overlay,
8
+ decorators: [Story => {
9
+ return /*#__PURE__*/React.createElement(ThemeProvider, {
10
+ theme: theme
11
+ }, /*#__PURE__*/React.createElement(BaseStyles, null, /*#__PURE__*/React.createElement(Story, null)));
12
+ }]
13
+ };
14
+ const DummyItem = styled.button.withConfig({
15
+ displayName: "Overlaystories__DummyItem",
16
+ componentId: "sc-92ppmu-0"
17
+ })(["border-radius:6px;font-weight:400;padding:6px 8px;font-weight:400;text-align:left;margin:0;font-size:14px;background:none;border:none;&:hover{background:#f0f3f5;}&:focus{background:red;}"]);
18
+ export const DropdownOverlay = () => {
19
+ const [isOpen, setIsOpen] = useState(false);
20
+ const buttonRef = useRef(null);
21
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
22
+ ref: buttonRef,
23
+ sx: {
24
+ position: 'relative'
25
+ },
26
+ onClick: () => setIsOpen(!isOpen)
27
+ }, "open overlay"), isOpen && /*#__PURE__*/React.createElement(Overlay, {
28
+ anchorRef: buttonRef,
29
+ returnFocusRef: buttonRef,
30
+ height: "auto",
31
+ width: "sm",
32
+ ignoreClickRefs: [buttonRef],
33
+ onEscape: () => setIsOpen(false),
34
+ onClickOutside: () => setIsOpen(false)
35
+ }, /*#__PURE__*/React.createElement(Flex, {
36
+ flexDirection: "column",
37
+ p: 2
38
+ }, /*#__PURE__*/React.createElement(DummyItem, null, "Copy link"), /*#__PURE__*/React.createElement(DummyItem, null, "Quote reply"), /*#__PURE__*/React.createElement(DummyItem, null, "Reference in new issue"), /*#__PURE__*/React.createElement(DummyItem, null, "Edit"), /*#__PURE__*/React.createElement(DummyItem, null, "Delete"))));
39
+ };
40
+ export const DialogOverlay = () => {
41
+ const [isOpen, setIsOpen] = useState(false);
42
+ const buttonRef = useRef(null);
43
+ const confirmButtonRef = useRef(null);
44
+ const anchorRef = useRef(null);
45
+
46
+ const closeOverlay = () => setIsOpen(false);
47
+
48
+ return /*#__PURE__*/React.createElement(Position, {
49
+ position: "absolute",
50
+ top: 0,
51
+ left: 0,
52
+ bottom: 0,
53
+ right: 0,
54
+ ref: anchorRef
55
+ }, /*#__PURE__*/React.createElement(Button, {
56
+ ref: buttonRef,
57
+ onClick: () => setIsOpen(!isOpen)
58
+ }, "open overlay"), isOpen && /*#__PURE__*/React.createElement(Overlay, {
59
+ positionSettings: {
60
+ side: 'inside-center',
61
+ align: 'center'
62
+ },
63
+ anchorRef: anchorRef,
64
+ initialFocusRef: confirmButtonRef,
65
+ returnFocusRef: buttonRef,
66
+ ignoreClickRefs: [buttonRef],
67
+ onEscape: closeOverlay,
68
+ onClickOutside: closeOverlay,
69
+ width: "sm"
70
+ }, /*#__PURE__*/React.createElement(Flex, {
71
+ flexDirection: "column",
72
+ p: 2
73
+ }, /*#__PURE__*/React.createElement(Text, null, "Are you sure?"), /*#__PURE__*/React.createElement(ButtonDanger, {
74
+ onClick: closeOverlay
75
+ }, "Cancel"), /*#__PURE__*/React.createElement(Button, {
76
+ onClick: closeOverlay,
77
+ ref: confirmButtonRef
78
+ }, "Confirm"))));
79
+ };
80
+ DialogOverlay.displayName = "DialogOverlay";
@@ -0,0 +1,72 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ import React from 'react';
3
+ import { BaseStyles, Box, ThemeProvider } from '..';
4
+ import Portal, { registerPortalRoot } from '../Portal';
5
+ export default {
6
+ title: 'Generic behaviors/Portal',
7
+ component: Portal,
8
+ decorators: [Story => {
9
+ // Since portal roots are registered globally, we need this line so that each storybook
10
+ // story works in isolation.
11
+ registerPortalRoot(undefined);
12
+ return /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(BaseStyles, null, /*#__PURE__*/React.createElement(Story, null)));
13
+ }]
14
+ };
15
+ export const defaultPortal = () => /*#__PURE__*/React.createElement(React.Fragment, null, "Root position", /*#__PURE__*/React.createElement(Box, {
16
+ bg: "red.2",
17
+ p: 3
18
+ }, "Outer container", /*#__PURE__*/React.createElement(Box, {
19
+ bg: "green.2",
20
+ p: 3
21
+ }, "Inner container", /*#__PURE__*/React.createElement(Portal, null, "Portaled content rendered at ", /*#__PURE__*/React.createElement("code", null, "<BaseStyles>"), " root."))));
22
+ export const customPortalRootById = () => /*#__PURE__*/React.createElement(React.Fragment, null, "Root position", /*#__PURE__*/React.createElement(Box, {
23
+ bg: "red.2",
24
+ p: 3,
25
+ id: "__primerPortalRoot__"
26
+ }, "Outer container", /*#__PURE__*/React.createElement(Box, {
27
+ bg: "green.2",
28
+ p: 3
29
+ }, "Inner container", /*#__PURE__*/React.createElement(Portal, null, "Portaled content rendered at the outer container."))));
30
+ export const CustomPortalRootByRegistration = () => {
31
+ const outerContainerRef = React.useRef(null);
32
+ const [mounted, setMounted] = React.useState(false);
33
+ React.useEffect(() => {
34
+ if (outerContainerRef.current instanceof HTMLElement) {
35
+ registerPortalRoot(outerContainerRef.current);
36
+ setMounted(true);
37
+ }
38
+ }, []);
39
+ return /*#__PURE__*/React.createElement(React.Fragment, null, "Root position", /*#__PURE__*/React.createElement(Box, {
40
+ bg: "red.2",
41
+ p: 3,
42
+ ref: outerContainerRef
43
+ }, mounted && /*#__PURE__*/React.createElement(React.Fragment, null, "Outer container", /*#__PURE__*/React.createElement(Box, {
44
+ bg: "green.2",
45
+ p: 3
46
+ }, "Inner container", /*#__PURE__*/React.createElement(Portal, null, "Portaled content rendered at the outer container.")))));
47
+ };
48
+ export const MultiplePortalRoots = () => {
49
+ const outerContainerRef = React.useRef(null);
50
+ const innerContainerRef = React.useRef(null);
51
+ const [mounted, setMounted] = React.useState(false);
52
+ React.useEffect(() => {
53
+ if (outerContainerRef.current instanceof HTMLElement && innerContainerRef.current instanceof HTMLElement) {
54
+ registerPortalRoot(outerContainerRef.current, 'outer');
55
+ registerPortalRoot(innerContainerRef.current, 'inner');
56
+ setMounted(true);
57
+ }
58
+ }, [outerContainerRef]);
59
+ return /*#__PURE__*/React.createElement(React.Fragment, null, "Root position", /*#__PURE__*/React.createElement(Box, {
60
+ bg: "red.2",
61
+ p: 3,
62
+ ref: outerContainerRef
63
+ }, "Outer container", /*#__PURE__*/React.createElement(Box, {
64
+ bg: "green.2",
65
+ p: 3,
66
+ ref: innerContainerRef
67
+ }, mounted && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Portal, {
68
+ containerName: "outer"
69
+ }, "Portaled content rendered at the outer container."), /*#__PURE__*/React.createElement(Portal, {
70
+ containerName: "inner"
71
+ }, "Portaled content rendered at the end of the inner container."), /*#__PURE__*/React.createElement(Portal, null, "Portaled content rendered at ", /*#__PURE__*/React.createElement("code", null, "<BaseStyles>"), " root.")), "Inner container")));
72
+ };