@primer/components 0.0.0-202110303104 → 0.0.0-2021103082237

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 (435) hide show
  1. package/CHANGELOG.md +90 -4
  2. package/dist/browser.esm.js +738 -779
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +736 -777
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Item.js +27 -52
  7. package/lib/ActionList/index.js +23 -12
  8. package/lib/ActionList2/Group.d.ts +28 -2
  9. package/lib/ActionList2/Group.js +55 -6
  10. package/lib/ActionList2/List.d.ts +1 -1
  11. package/lib/ActionList2/List.js +1 -2
  12. package/lib/ActionList2/index.js +41 -23
  13. package/lib/AnchoredOverlay/index.js +12 -4
  14. package/lib/Autocomplete/Autocomplete.d.ts +11 -3
  15. package/lib/Autocomplete/AutocompleteInput.d.ts +11 -3
  16. package/lib/Autocomplete/index.js +14 -7
  17. package/lib/Breadcrumbs.d.ts +8 -7
  18. package/lib/Breadcrumbs.js +7 -12
  19. package/lib/Button/Button.d.ts +2 -3
  20. package/lib/Button/Button.js +2 -6
  21. package/lib/Button/ButtonBase.d.ts +5 -8
  22. package/lib/Button/ButtonBase.js +1 -5
  23. package/lib/Button/ButtonClose.d.ts +3 -46
  24. package/lib/Button/ButtonClose.js +1 -1
  25. package/lib/Button/ButtonDanger.d.ts +2 -3
  26. package/lib/Button/ButtonDanger.js +2 -6
  27. package/lib/Button/ButtonInvisible.d.ts +2 -3
  28. package/lib/Button/ButtonInvisible.js +2 -6
  29. package/lib/Button/ButtonOutline.d.ts +2 -3
  30. package/lib/Button/ButtonOutline.js +2 -6
  31. package/lib/Button/ButtonPrimary.d.ts +2 -3
  32. package/lib/Button/ButtonPrimary.js +2 -6
  33. package/lib/Button/ButtonTableList.d.ts +1 -2
  34. package/lib/Button/ButtonTableList.js +1 -1
  35. package/lib/Button/index.js +70 -21
  36. package/lib/Checkbox.d.ts +29 -0
  37. package/lib/Checkbox.js +64 -0
  38. package/lib/CircleBadge.d.ts +4 -5
  39. package/lib/CircleBadge.js +1 -1
  40. package/lib/CircleOcticon.d.ts +1 -1
  41. package/lib/CounterLabel.d.ts +1 -2
  42. package/lib/CounterLabel.js +1 -1
  43. package/lib/Dialog/Dialog.d.ts +5 -9
  44. package/lib/Dialog/Dialog.js +17 -11
  45. package/lib/Dialog.d.ts +4 -5
  46. package/lib/Dialog.js +1 -1
  47. package/lib/Dropdown.d.ts +10 -99
  48. package/lib/Dropdown.js +3 -3
  49. package/lib/DropdownMenu/DropdownButton.d.ts +3 -47
  50. package/lib/DropdownMenu/DropdownButton.js +3 -1
  51. package/lib/DropdownMenu/index.js +20 -6
  52. package/lib/DropdownStyles.js +26 -18
  53. package/lib/FilterList.d.ts +264 -303
  54. package/lib/FilterList.js +2 -6
  55. package/lib/FilteredActionList/index.js +12 -4
  56. package/lib/FilteredSearch.d.ts +1 -2
  57. package/lib/FilteredSearch.js +1 -1
  58. package/lib/Flash.d.ts +1 -2
  59. package/lib/Flash.js +1 -1
  60. package/lib/FormGroup.d.ts +4 -5
  61. package/lib/FormGroup.js +2 -2
  62. package/lib/Header.d.ts +6 -7
  63. package/lib/Header.js +4 -4
  64. package/lib/Label.d.ts +1 -2
  65. package/lib/Label.js +2 -3
  66. package/lib/LabelGroup.d.ts +1 -2
  67. package/lib/LabelGroup.js +1 -1
  68. package/lib/Link.d.ts +1 -2
  69. package/lib/Link.js +1 -1
  70. package/lib/NewButton/button.js +34 -42
  71. package/lib/NewButton/index.js +12 -5
  72. package/lib/NewButton/types.js +1 -2
  73. package/lib/Overlay.d.ts +14 -11
  74. package/lib/Overlay.js +3 -4
  75. package/lib/Pagehead.d.ts +1 -2
  76. package/lib/Pagehead.js +1 -1
  77. package/lib/Pagination/Pagination.js +1 -1
  78. package/lib/Pagination/index.js +12 -6
  79. package/lib/Popover.d.ts +4 -5
  80. package/lib/Popover.js +4 -5
  81. package/lib/Portal/index.js +16 -5
  82. package/lib/Position.d.ts +4 -4
  83. package/lib/SelectMenu/SelectMenu.d.ts +29 -189
  84. package/lib/SelectMenu/SelectMenu.js +1 -3
  85. package/lib/SelectMenu/SelectMenuDivider.d.ts +1 -2
  86. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  87. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  88. package/lib/SelectMenu/SelectMenuFooter.d.ts +1 -2
  89. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  90. package/lib/SelectMenu/SelectMenuHeader.d.ts +1 -2
  91. package/lib/SelectMenu/SelectMenuHeader.js +1 -1
  92. package/lib/SelectMenu/SelectMenuItem.d.ts +2 -3
  93. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  94. package/lib/SelectMenu/SelectMenuList.d.ts +1 -2
  95. package/lib/SelectMenu/SelectMenuList.js +1 -1
  96. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  97. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +3 -1
  98. package/lib/SelectMenu/SelectMenuModal.d.ts +2 -3
  99. package/lib/SelectMenu/SelectMenuModal.js +1 -1
  100. package/lib/SelectMenu/SelectMenuTab.d.ts +1 -2
  101. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  102. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +1 -2
  103. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  104. package/lib/SelectMenu/SelectMenuTabs.d.ts +1 -2
  105. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  106. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  107. package/lib/SelectMenu/index.js +14 -7
  108. package/lib/SelectPanel/index.js +12 -4
  109. package/lib/SideNav.d.ts +11 -8
  110. package/lib/SideNav.js +8 -15
  111. package/lib/StateLabel.d.ts +1 -2
  112. package/lib/StateLabel.js +6 -5
  113. package/lib/StyledOcticon.d.ts +1 -2
  114. package/lib/StyledOcticon.js +1 -3
  115. package/lib/SubNav.d.ts +5 -11
  116. package/lib/SubNav.js +7 -12
  117. package/lib/TabNav.d.ts +3 -4
  118. package/lib/TabNav.js +2 -2
  119. package/lib/TextInput.d.ts +8 -1
  120. package/lib/TextInput.js +17 -5
  121. package/lib/TextInputWithTokens.d.ts +11 -3
  122. package/lib/Timeline.d.ts +19 -393
  123. package/lib/Timeline.js +16 -13
  124. package/lib/Token/Token.d.ts +1 -1
  125. package/lib/Token/index.js +30 -11
  126. package/lib/Tooltip.d.ts +1 -2
  127. package/lib/Tooltip.js +1 -1
  128. package/lib/Truncate.d.ts +1 -2
  129. package/lib/Truncate.js +1 -3
  130. package/lib/UnderlineNav.d.ts +2 -3
  131. package/lib/UnderlineNav.js +2 -2
  132. package/lib/_TextInputWrapper.d.ts +3 -0
  133. package/lib/_TextInputWrapper.js +18 -7
  134. package/lib/behaviors/anchoredPosition.js +234 -205
  135. package/lib/behaviors/focusTrap.js +157 -121
  136. package/lib/behaviors/focusZone.js +509 -434
  137. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  138. package/lib/constants.js +43 -39
  139. package/lib/drafts.js +30 -20
  140. package/lib/hooks/index.js +60 -16
  141. package/lib/hooks/useAnchoredPosition.js +40 -32
  142. package/lib/hooks/useCombinedRefs.js +36 -32
  143. package/lib/hooks/useDialog.js +96 -72
  144. package/lib/hooks/useFocusTrap.js +60 -43
  145. package/lib/hooks/useFocusZone.js +50 -54
  146. package/lib/hooks/useOnEscapePress.js +36 -25
  147. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  148. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  149. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  150. package/lib/hooks/useRenderForcingRef.js +17 -13
  151. package/lib/hooks/useResizeObserver.js +18 -15
  152. package/lib/hooks/useSafeTimeout.js +30 -22
  153. package/lib/hooks/useScrollFlash.js +23 -16
  154. package/lib/index.d.ts +2 -2
  155. package/lib/index.js +652 -165
  156. package/lib/polyfills/eventListenerSignal.js +45 -37
  157. package/lib/sx.js +22 -10
  158. package/lib/theme-preval.js +3169 -64
  159. package/lib/theme.js +12 -3
  160. package/lib/utils/iterateFocusableElements.js +85 -63
  161. package/lib/utils/testing.d.ts +28 -61
  162. package/lib/utils/testing.js +29 -0
  163. package/lib/utils/theme.js +47 -33
  164. package/lib/utils/types/AriaRole.js +1 -2
  165. package/lib/utils/types/ComponentProps.js +1 -2
  166. package/lib/utils/types/Flatten.js +1 -2
  167. package/lib/utils/types/KeyPaths.js +1 -2
  168. package/lib/utils/types/MandateProps.js +1 -16
  169. package/lib/utils/types/Merge.js +1 -2
  170. package/lib/utils/types/index.js +69 -16
  171. package/lib/utils/uniqueId.js +8 -5
  172. package/lib/utils/use-force-update.js +14 -8
  173. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  174. package/lib/utils/userAgent.js +12 -8
  175. package/lib-esm/ActionList/Item.js +28 -53
  176. package/lib-esm/ActionList2/Group.d.ts +28 -2
  177. package/lib-esm/ActionList2/Group.js +52 -5
  178. package/lib-esm/ActionList2/List.d.ts +1 -1
  179. package/lib-esm/ActionList2/List.js +1 -2
  180. package/lib-esm/Autocomplete/Autocomplete.d.ts +11 -3
  181. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +11 -3
  182. package/lib-esm/Breadcrumbs.d.ts +8 -7
  183. package/lib-esm/Breadcrumbs.js +8 -13
  184. package/lib-esm/Button/Button.d.ts +2 -3
  185. package/lib-esm/Button/Button.js +2 -2
  186. package/lib-esm/Button/ButtonBase.d.ts +5 -8
  187. package/lib-esm/Button/ButtonBase.js +1 -3
  188. package/lib-esm/Button/ButtonClose.d.ts +3 -46
  189. package/lib-esm/Button/ButtonClose.js +2 -2
  190. package/lib-esm/Button/ButtonDanger.d.ts +2 -3
  191. package/lib-esm/Button/ButtonDanger.js +2 -2
  192. package/lib-esm/Button/ButtonInvisible.d.ts +2 -3
  193. package/lib-esm/Button/ButtonInvisible.js +2 -2
  194. package/lib-esm/Button/ButtonOutline.d.ts +2 -3
  195. package/lib-esm/Button/ButtonOutline.js +2 -2
  196. package/lib-esm/Button/ButtonPrimary.d.ts +2 -3
  197. package/lib-esm/Button/ButtonPrimary.js +2 -2
  198. package/lib-esm/Button/ButtonTableList.d.ts +1 -2
  199. package/lib-esm/Button/ButtonTableList.js +2 -2
  200. package/lib-esm/Checkbox.d.ts +29 -0
  201. package/lib-esm/Checkbox.js +44 -0
  202. package/lib-esm/CircleBadge.d.ts +4 -5
  203. package/lib-esm/CircleBadge.js +2 -2
  204. package/lib-esm/CircleOcticon.d.ts +1 -1
  205. package/lib-esm/CounterLabel.d.ts +1 -2
  206. package/lib-esm/CounterLabel.js +2 -2
  207. package/lib-esm/Dialog/Dialog.d.ts +5 -9
  208. package/lib-esm/Dialog/Dialog.js +12 -12
  209. package/lib-esm/Dialog.d.ts +4 -5
  210. package/lib-esm/Dialog.js +2 -2
  211. package/lib-esm/Dropdown.d.ts +10 -99
  212. package/lib-esm/Dropdown.js +4 -4
  213. package/lib-esm/DropdownMenu/DropdownButton.d.ts +3 -47
  214. package/lib-esm/DropdownMenu/DropdownButton.js +3 -1
  215. package/lib-esm/FilterList.d.ts +264 -303
  216. package/lib-esm/FilterList.js +3 -7
  217. package/lib-esm/FilteredSearch.d.ts +1 -2
  218. package/lib-esm/FilteredSearch.js +2 -2
  219. package/lib-esm/Flash.d.ts +1 -2
  220. package/lib-esm/Flash.js +2 -2
  221. package/lib-esm/FormGroup.d.ts +4 -5
  222. package/lib-esm/FormGroup.js +3 -3
  223. package/lib-esm/Header.d.ts +6 -7
  224. package/lib-esm/Header.js +5 -5
  225. package/lib-esm/Label.d.ts +1 -2
  226. package/lib-esm/Label.js +3 -4
  227. package/lib-esm/LabelGroup.d.ts +1 -2
  228. package/lib-esm/LabelGroup.js +2 -2
  229. package/lib-esm/Link.d.ts +1 -2
  230. package/lib-esm/Link.js +2 -2
  231. package/lib-esm/NewButton/button.js +31 -42
  232. package/lib-esm/Overlay.d.ts +14 -11
  233. package/lib-esm/Overlay.js +2 -3
  234. package/lib-esm/Pagehead.d.ts +1 -2
  235. package/lib-esm/Pagehead.js +2 -2
  236. package/lib-esm/Pagination/Pagination.js +2 -2
  237. package/lib-esm/Popover.d.ts +4 -5
  238. package/lib-esm/Popover.js +4 -5
  239. package/lib-esm/Position.d.ts +4 -4
  240. package/lib-esm/SelectMenu/SelectMenu.d.ts +29 -189
  241. package/lib-esm/SelectMenu/SelectMenu.js +1 -2
  242. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +1 -2
  243. package/lib-esm/SelectMenu/SelectMenuDivider.js +2 -2
  244. package/lib-esm/SelectMenu/SelectMenuFilter.js +2 -2
  245. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +1 -2
  246. package/lib-esm/SelectMenu/SelectMenuFooter.js +2 -2
  247. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +1 -2
  248. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  249. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +2 -3
  250. package/lib-esm/SelectMenu/SelectMenuItem.js +2 -2
  251. package/lib-esm/SelectMenu/SelectMenuList.d.ts +1 -2
  252. package/lib-esm/SelectMenu/SelectMenuList.js +2 -2
  253. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  254. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +3 -2
  255. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +2 -3
  256. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  257. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +1 -2
  258. package/lib-esm/SelectMenu/SelectMenuTab.js +2 -2
  259. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +1 -2
  260. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +2 -2
  261. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +1 -2
  262. package/lib-esm/SelectMenu/SelectMenuTabs.js +2 -2
  263. package/lib-esm/SideNav.d.ts +11 -8
  264. package/lib-esm/SideNav.js +8 -16
  265. package/lib-esm/StateLabel.d.ts +1 -2
  266. package/lib-esm/StateLabel.js +7 -6
  267. package/lib-esm/StyledOcticon.d.ts +1 -2
  268. package/lib-esm/StyledOcticon.js +1 -2
  269. package/lib-esm/SubNav.d.ts +5 -11
  270. package/lib-esm/SubNav.js +8 -13
  271. package/lib-esm/TabNav.d.ts +3 -4
  272. package/lib-esm/TabNav.js +3 -3
  273. package/lib-esm/TextInput.d.ts +8 -1
  274. package/lib-esm/TextInput.js +17 -5
  275. package/lib-esm/TextInputWithTokens.d.ts +11 -3
  276. package/lib-esm/Timeline.d.ts +19 -393
  277. package/lib-esm/Timeline.js +12 -13
  278. package/lib-esm/Token/Token.d.ts +1 -1
  279. package/lib-esm/Tooltip.d.ts +1 -2
  280. package/lib-esm/Tooltip.js +2 -2
  281. package/lib-esm/Truncate.d.ts +1 -2
  282. package/lib-esm/Truncate.js +1 -2
  283. package/lib-esm/UnderlineNav.d.ts +2 -3
  284. package/lib-esm/UnderlineNav.js +3 -3
  285. package/lib-esm/_TextInputWrapper.d.ts +3 -0
  286. package/lib-esm/_TextInputWrapper.js +18 -7
  287. package/lib-esm/index.d.ts +2 -2
  288. package/lib-esm/index.js +1 -1
  289. package/lib-esm/theme-preval.js +512 -366
  290. package/lib-esm/utils/testing.d.ts +28 -61
  291. package/lib-esm/utils/testing.js +24 -0
  292. package/package.json +5 -6
  293. package/lib/ActionList/Divider.jsx +0 -29
  294. package/lib/ActionList/Group.jsx +0 -23
  295. package/lib/ActionList/Header.jsx +0 -66
  296. package/lib/ActionList/Item.jsx +0 -311
  297. package/lib/ActionList/List.jsx +0 -138
  298. package/lib/ActionList2/Description.jsx +0 -29
  299. package/lib/ActionList2/Divider.jsx +0 -22
  300. package/lib/ActionList2/Group.jsx +0 -25
  301. package/lib/ActionList2/Header.jsx +0 -36
  302. package/lib/ActionList2/Item.jsx +0 -174
  303. package/lib/ActionList2/LinkItem.jsx +0 -28
  304. package/lib/ActionList2/List.jsx +0 -41
  305. package/lib/ActionList2/Selection.jsx +0 -50
  306. package/lib/ActionList2/Visuals.jsx +0 -48
  307. package/lib/ActionMenu.jsx +0 -73
  308. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  309. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  310. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  311. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  312. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  313. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  314. package/lib/Avatar.jsx +0 -34
  315. package/lib/AvatarPair.jsx +0 -29
  316. package/lib/AvatarStack.jsx +0 -151
  317. package/lib/BaseStyles.jsx +0 -65
  318. package/lib/BorderBox.jsx +0 -18
  319. package/lib/Box.jsx +0 -10
  320. package/lib/BranchName.jsx +0 -20
  321. package/lib/Breadcrumbs.jsx +0 -74
  322. package/lib/Button/Button.jsx +0 -60
  323. package/lib/Button/ButtonBase.jsx +0 -36
  324. package/lib/Button/ButtonClose.jsx +0 -55
  325. package/lib/Button/ButtonDanger.jsx +0 -63
  326. package/lib/Button/ButtonGroup.jsx +0 -55
  327. package/lib/Button/ButtonInvisible.jsx +0 -52
  328. package/lib/Button/ButtonOutline.jsx +0 -63
  329. package/lib/Button/ButtonPrimary.jsx +0 -62
  330. package/lib/Button/ButtonStyles.jsx +0 -37
  331. package/lib/Button/ButtonTableList.jsx +0 -49
  332. package/lib/Caret.jsx +0 -93
  333. package/lib/CircleBadge.jsx +0 -43
  334. package/lib/CircleOcticon.jsx +0 -21
  335. package/lib/CounterLabel.jsx +0 -44
  336. package/lib/Details.jsx +0 -21
  337. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  338. package/lib/Dialog/Dialog.jsx +0 -273
  339. package/lib/Dialog.jsx +0 -131
  340. package/lib/Dropdown.jsx +0 -134
  341. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  342. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  343. package/lib/EmojiPicker/EmojiPicker.d.ts +0 -15
  344. package/lib/EmojiPicker/EmojiPicker.js +0 -205
  345. package/lib/EmojiPicker/EmojiPicker.jsx +0 -125
  346. package/lib/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
  347. package/lib/EmojiPicker/EmojiPickerAnchor.js +0 -1
  348. package/lib/EmojiPicker/EmojiPickerAnchor.jsx +0 -1
  349. package/lib/EmojiPicker/EmojiPickerPanel.d.ts +0 -3
  350. package/lib/EmojiPicker/EmojiPickerPanel.js +0 -18
  351. package/lib/EmojiPicker/EmojiPickerPanel.jsx +0 -10
  352. package/lib/EmojiPicker/data.d.ts +0 -9
  353. package/lib/EmojiPicker/data.js +0 -7254
  354. package/lib/EmojiPicker/index.d.ts +0 -2
  355. package/lib/EmojiPicker/index.js +0 -8
  356. package/lib/FilterList.jsx +0 -63
  357. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  358. package/lib/FilteredSearch.jsx +0 -29
  359. package/lib/Flash.jsx +0 -70
  360. package/lib/Flex.jsx +0 -15
  361. package/lib/FormGroup.jsx +0 -25
  362. package/lib/Grid.jsx +0 -15
  363. package/lib/Header.jsx +0 -90
  364. package/lib/Heading.jsx +0 -21
  365. package/lib/Label.jsx +0 -84
  366. package/lib/LabelGroup.jsx +0 -19
  367. package/lib/Link.jsx +0 -38
  368. package/lib/NewButton/button-counter.jsx +0 -14
  369. package/lib/NewButton/button.jsx +0 -278
  370. package/lib/Overlay.jsx +0 -156
  371. package/lib/Pagehead.jsx +0 -18
  372. package/lib/Pagination/Pagination.jsx +0 -163
  373. package/lib/Pagination/model.jsx +0 -174
  374. package/lib/PointerBox.jsx +0 -25
  375. package/lib/Popover.jsx +0 -210
  376. package/lib/Portal/Portal.jsx +0 -79
  377. package/lib/Position.jsx +0 -46
  378. package/lib/ProgressBar.jsx +0 -39
  379. package/lib/SelectMenu/SelectMenu.jsx +0 -114
  380. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  381. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -43
  382. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -59
  383. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -46
  384. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -44
  385. package/lib/SelectMenu/SelectMenuItem.jsx +0 -143
  386. package/lib/SelectMenu/SelectMenuList.jsx +0 -60
  387. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -21
  388. package/lib/SelectMenu/SelectMenuModal.jsx +0 -119
  389. package/lib/SelectMenu/SelectMenuTab.jsx +0 -93
  390. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -43
  391. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -58
  392. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  393. package/lib/SideNav.jsx +0 -177
  394. package/lib/Spinner.jsx +0 -35
  395. package/lib/StateLabel.jsx +0 -94
  396. package/lib/StyledOcticon.jsx +0 -20
  397. package/lib/SubNav.jsx +0 -104
  398. package/lib/TabNav.jsx +0 -60
  399. package/lib/Text.jsx +0 -14
  400. package/lib/TextInput.jsx +0 -23
  401. package/lib/TextInputWithTokens.jsx +0 -218
  402. package/lib/ThemeProvider.jsx +0 -130
  403. package/lib/Timeline.jsx +0 -124
  404. package/lib/Token/AvatarToken.jsx +0 -54
  405. package/lib/Token/IssueLabelToken.jsx +0 -125
  406. package/lib/Token/Token.jsx +0 -103
  407. package/lib/Token/TokenBase.jsx +0 -88
  408. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  409. package/lib/Token/_TokenTextContainer.jsx +0 -49
  410. package/lib/Tooltip.jsx +0 -246
  411. package/lib/Truncate.jsx +0 -27
  412. package/lib/UnderlineNav.jsx +0 -90
  413. package/lib/_TextInputWrapper.jsx +0 -120
  414. package/lib/_UnstyledTextInput.jsx +0 -22
  415. package/lib/hooks/useDetails.jsx +0 -39
  416. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  417. package/lib/hooks/useOverlay.jsx +0 -15
  418. package/lib/utils/create-slots.jsx +0 -65
  419. package/lib/utils/deprecate.jsx +0 -59
  420. package/lib/utils/isNumeric.jsx +0 -7
  421. package/lib/utils/ssr.jsx +0 -6
  422. package/lib/utils/test-deprecations.jsx +0 -20
  423. package/lib/utils/test-helpers.jsx +0 -8
  424. package/lib/utils/test-matchers.jsx +0 -100
  425. package/lib/utils/testing.jsx +0 -206
  426. package/lib-esm/EmojiPicker/EmojiPicker.d.ts +0 -15
  427. package/lib-esm/EmojiPicker/EmojiPicker.js +0 -184
  428. package/lib-esm/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
  429. package/lib-esm/EmojiPicker/EmojiPickerAnchor.js +0 -0
  430. package/lib-esm/EmojiPicker/EmojiPickerPanel.d.ts +0 -3
  431. package/lib-esm/EmojiPicker/EmojiPickerPanel.js +0 -8
  432. package/lib-esm/EmojiPicker/data.d.ts +0 -9
  433. package/lib-esm/EmojiPicker/data.js +0 -5434
  434. package/lib-esm/EmojiPicker/index.d.ts +0 -2
  435. package/lib-esm/EmojiPicker/index.js +0 -1
package/lib/Tooltip.jsx DELETED
@@ -1,246 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const classnames_1 = __importDefault(require("classnames"));
7
- const react_1 = __importDefault(require("react"));
8
- const styled_components_1 = __importDefault(require("styled-components"));
9
- const constants_1 = require("./constants");
10
- const sx_1 = __importDefault(require("./sx"));
11
- const TooltipBase = styled_components_1.default.span `
12
- position: relative;
13
-
14
- &::before {
15
- position: absolute;
16
- z-index: 1000001;
17
- display: none;
18
- width: 0px;
19
- height: 0px;
20
- color: ${constants_1.get('colors.neutral.emphasisPlus')};
21
- pointer-events: none;
22
- content: '';
23
- border: 6px solid transparent;
24
- opacity: 0;
25
- }
26
-
27
- &::after {
28
- position: absolute;
29
- z-index: 1000000;
30
- display: none;
31
- padding: 0.5em 0.75em;
32
- font: normal normal 11px/1.5 ${constants_1.get('fonts.normal')};
33
- -webkit-font-smoothing: subpixel-antialiased;
34
- color: ${constants_1.get('colors.fg.onEmphasis')};
35
- text-align: center;
36
- text-decoration: none;
37
- text-shadow: none;
38
- text-transform: none;
39
- letter-spacing: normal;
40
- word-wrap: break-word;
41
- white-space: pre;
42
- pointer-events: none;
43
- content: attr(aria-label);
44
- background: ${constants_1.get('colors.neutral.emphasisPlus')};
45
- border-radius: ${constants_1.get('radii.1')};
46
- opacity: 0;
47
- }
48
-
49
- // delay animation for tooltip
50
- @keyframes tooltip-appear {
51
- from {
52
- opacity: 0;
53
- }
54
-
55
- to {
56
- opacity: 1;
57
- }
58
- }
59
-
60
- &:hover,
61
- &:active,
62
- &:focus {
63
- &::before,
64
- &::after {
65
- display: inline-block;
66
- text-decoration: none;
67
- animation-name: tooltip-appear;
68
- animation-duration: 0.1s;
69
- animation-fill-mode: forwards;
70
- animation-timing-function: ease-in;
71
- animation-delay: 0.4s;
72
- }
73
- }
74
-
75
- &.tooltipped-no-delay:hover,
76
- &.tooltipped-no-delay:active,
77
- &.tooltipped-no-delay:focus {
78
- &::before,
79
- &::after {
80
- animation-delay: 0s;
81
- }
82
- }
83
-
84
- &.tooltipped-multiline:hover,
85
- &.tooltipped-multiline:active,
86
- &.tooltipped-multiline:focus {
87
- &::after {
88
- display: table-cell;
89
- }
90
- }
91
-
92
- // Tooltipped south
93
- &.tooltipped-s,
94
- &.tooltipped-se,
95
- &.tooltipped-sw {
96
- &::after {
97
- top: 100%;
98
- right: 50%;
99
- margin-top: 6px;
100
- }
101
-
102
- &::before {
103
- top: auto;
104
- right: 50%;
105
- bottom: -7px;
106
- margin-right: -6px;
107
- border-bottom-color: ${constants_1.get('colors.neutral.emphasisPlus')};
108
- }
109
- }
110
-
111
- &.tooltipped-se {
112
- &::after {
113
- right: auto;
114
- left: 50%;
115
- margin-left: -${constants_1.get('space.3')};
116
- }
117
- }
118
-
119
- &.tooltipped-sw::after {
120
- margin-right: -${constants_1.get('space.3')};
121
- }
122
-
123
- // Tooltips above the object
124
- &.tooltipped-n,
125
- &.tooltipped-ne,
126
- &.tooltipped-nw {
127
- &::after {
128
- right: 50%;
129
- bottom: 100%;
130
- margin-bottom: 6px;
131
- }
132
-
133
- &::before {
134
- top: -7px;
135
- right: 50%;
136
- bottom: auto;
137
- margin-right: -6px;
138
- border-top-color: ${constants_1.get('colors.neutral.emphasisPlus')};
139
- }
140
- }
141
-
142
- &.tooltipped-ne {
143
- &::after {
144
- right: auto;
145
- left: 50%;
146
- margin-left: -${constants_1.get('space.3')};
147
- }
148
- }
149
-
150
- &.tooltipped-nw::after {
151
- margin-right: -${constants_1.get('space.3')};
152
- }
153
-
154
- // Move the tooltip body to the center of the object.
155
- &.tooltipped-s::after,
156
- &.tooltipped-n::after {
157
- transform: translateX(50%);
158
- }
159
-
160
- // Tooltipped to the left
161
- &.tooltipped-w {
162
- &::after {
163
- right: 100%;
164
- bottom: 50%;
165
- margin-right: 6px;
166
- transform: translateY(50%);
167
- }
168
-
169
- &::before {
170
- top: 50%;
171
- bottom: 50%;
172
- left: -7px;
173
- margin-top: -6px;
174
- border-left-color: ${constants_1.get('colors.neutral.emphasisPlus')};
175
- }
176
- }
177
-
178
- // tooltipped to the right
179
- &.tooltipped-e {
180
- &::after {
181
- bottom: 50%;
182
- left: 100%;
183
- margin-left: 6px;
184
- transform: translateY(50%);
185
- }
186
-
187
- &::before {
188
- top: 50%;
189
- right: -7px;
190
- bottom: 50%;
191
- margin-top: -6px;
192
- border-right-color: ${constants_1.get('colors.neutral.emphasisPlus')};
193
- }
194
- }
195
-
196
- &.tooltipped-multiline {
197
- &::after {
198
- width: max-content;
199
- max-width: 250px;
200
- word-wrap: break-word;
201
- white-space: pre-line;
202
- border-collapse: separate;
203
- }
204
-
205
- &.tooltipped-s::after,
206
- &.tooltipped-n::after {
207
- right: auto;
208
- left: 50%;
209
- transform: translateX(-50%);
210
- }
211
-
212
- &.tooltipped-w::after,
213
- &.tooltipped-e::after {
214
- right: 100%;
215
- }
216
- }
217
-
218
- &.tooltipped-align-right-2::after {
219
- right: 0;
220
- margin-right: 0;
221
- }
222
-
223
- &.tooltipped-align-right-2::before {
224
- right: 15px;
225
- }
226
-
227
- &.tooltipped-align-left-2::after {
228
- left: 0;
229
- margin-left: 0;
230
- }
231
-
232
- &.tooltipped-align-left-2::before {
233
- left: 10px;
234
- }
235
- ${constants_1.COMMON};
236
- ${sx_1.default};
237
- `;
238
- function Tooltip({ direction = 'n', children, className, text, noDelay, align, wrap, ...rest }) {
239
- const classes = classnames_1.default(className, `tooltipped-${direction}`, align && `tooltipped-align-${align}-2`, noDelay && 'tooltipped-no-delay', wrap && 'tooltipped-multiline');
240
- return (<TooltipBase role="tooltip" aria-label={text} {...rest} className={classes}>
241
- {children}
242
- </TooltipBase>);
243
- }
244
- Tooltip.alignments = ['left', 'right'];
245
- Tooltip.directions = ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'];
246
- exports.default = Tooltip;
package/lib/Truncate.jsx DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const styled_system_1 = require("styled-system");
8
- const constants_1 = require("./constants");
9
- const sx_1 = __importDefault(require("./sx"));
10
- const Truncate = styled_components_1.default.div `
11
- ${constants_1.TYPOGRAPHY}
12
- ${constants_1.COMMON}
13
- display: ${props => (props.inline ? 'inline-block' : 'inherit')};
14
- overflow: hidden;
15
- text-overflow: ellipsis;
16
- vertical-align: ${props => (props.inline ? 'top' : 'initial')};
17
- white-space: nowrap;
18
- ${styled_system_1.maxWidth}
19
- ${props => (props.expandable ? `&:hover { max-width: 10000px; }` : '')}
20
- ${sx_1.default};
21
- `;
22
- Truncate.defaultProps = {
23
- expandable: false,
24
- inline: false,
25
- maxWidth: 125
26
- };
27
- exports.default = Truncate;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const classnames_1 = __importDefault(require("classnames"));
7
- const react_1 = __importDefault(require("react"));
8
- const styled_components_1 = __importDefault(require("styled-components"));
9
- const constants_1 = require("./constants");
10
- const sx_1 = __importDefault(require("./sx"));
11
- const ITEM_CLASS = 'UnderlineNav-item';
12
- const SELECTED_CLASS = 'selected';
13
- const UnderlineNavBase = styled_components_1.default.nav `
14
- display: flex;
15
- justify-content: space-between;
16
- border-bottom: 1px solid ${constants_1.get('colors.border.muted')};
17
- &.UnderlineNav--right {
18
- justify-content: flex-end;
19
-
20
- .UnderlineNav-item {
21
- margin-right: 0;
22
- margin-left: ${constants_1.get('space.3')};
23
- }
24
-
25
- .UnderlineNav-actions {
26
- flex: 1 1 auto;
27
- }
28
- }
29
- &.UnderlineNav--full {
30
- display: block;
31
- }
32
-
33
- .UnderlineNav-body {
34
- display: flex;
35
- margin-bottom: -1px;
36
- }
37
-
38
- .UnderlineNav-actions {
39
- align-self: center;
40
- }
41
-
42
- ${constants_1.COMMON};
43
- ${sx_1.default};
44
- `;
45
- function UnderlineNav({ actions, className, align, children, full, label, theme, ...rest }) {
46
- const classes = classnames_1.default(className, 'UnderlineNav', align && `UnderlineNav--${align}`, full && 'UnderlineNav--full');
47
- return (<UnderlineNavBase className={classes} aria-label={label} theme={theme} {...rest}>
48
- <div className="UnderlineNav-body">{children}</div>
49
- {actions && <div className="UnderlineNav-actions">{actions}</div>}
50
- </UnderlineNavBase>);
51
- }
52
- const UnderlineNavLink = styled_components_1.default.a.attrs(props => ({
53
- activeClassName: typeof props.to === 'string' ? 'selected' : '',
54
- className: classnames_1.default(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
55
- })) `
56
- padding: ${constants_1.get('space.3')} ${constants_1.get('space.2')};
57
- margin-right: ${constants_1.get('space.3')};
58
- font-size: ${constants_1.get('fontSizes.1')};
59
- line-height: ${constants_1.get('lineHeights.default')};
60
- color: ${constants_1.get('colors.fg.default')};
61
- text-align: center;
62
- border-bottom: 2px solid transparent;
63
- text-decoration: none;
64
-
65
- &:hover,
66
- &:focus {
67
- color: ${constants_1.get('colors.fg.default')};
68
- text-decoration: none;
69
- border-bottom-color: ${constants_1.get('colors.neutral.muted')};
70
- transition: 0.2s ease;
71
-
72
- .UnderlineNav-octicon {
73
- color: ${constants_1.get('colors.fg.muted')};
74
- }
75
- }
76
-
77
- &.selected {
78
- color: ${constants_1.get('colors.fg.default')};
79
- border-bottom-color: ${constants_1.get('colors.primer.border.active')};
80
-
81
- .UnderlineNav-octicon {
82
- color: ${constants_1.get('colors.fg.default')};
83
- }
84
- }
85
-
86
- ${constants_1.COMMON};
87
- ${sx_1.default};
88
- `;
89
- UnderlineNavLink.displayName = 'UnderlineNav.Link';
90
- exports.default = Object.assign(UnderlineNav, { Link: UnderlineNavLink });
@@ -1,120 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- const styled_components_1 = __importStar(require("styled-components"));
26
- const styled_system_1 = require("styled-system");
27
- const constants_1 = require("./constants");
28
- const sx_1 = __importDefault(require("./sx"));
29
- const sizeVariants = styled_system_1.variant({
30
- variants: {
31
- small: {
32
- minHeight: '28px',
33
- px: 2,
34
- py: '3px',
35
- fontSize: 0,
36
- lineHeight: '20px'
37
- },
38
- large: {
39
- px: 2,
40
- py: '10px',
41
- fontSize: 3
42
- }
43
- }
44
- });
45
- const TextInputWrapper = styled_components_1.default.span `
46
- display: inline-flex;
47
- align-items: stretch;
48
- min-height: 34px;
49
- font-size: ${constants_1.get('fontSizes.1')};
50
- line-height: 20px;
51
- color: ${constants_1.get('colors.fg.default')};
52
- vertical-align: middle;
53
- background-repeat: no-repeat; // Repeat and position set for form states (success, error, etc)
54
- background-position: right 8px center; // For form validation. This keeps images 8px from right and centered vertically.
55
- border: 1px solid ${constants_1.get('colors.border.default')};
56
- border-radius: ${constants_1.get('radii.2')};
57
- outline: none;
58
- box-shadow: ${constants_1.get('shadows.primer.shadow.inset')};
59
- cursor: text;
60
-
61
- ${props => {
62
- if (props.hasIcon) {
63
- return styled_components_1.css `
64
- padding: 0;
65
- `;
66
- }
67
- else {
68
- return styled_components_1.css `
69
- padding: 6px 12px;
70
- `;
71
- }
72
- }}
73
-
74
- .TextInput-icon {
75
- align-self: center;
76
- color: ${constants_1.get('colors.fg.muted')};
77
- margin: 0 ${constants_1.get('space.2')};
78
- flex-shrink: 0;
79
- }
80
-
81
- &:focus-within {
82
- border-color: ${constants_1.get('colors.accent.emphasis')};
83
- box-shadow: ${constants_1.get('shadows.primer.shadow.focus')};
84
- }
85
-
86
- ${props => props.contrast &&
87
- styled_components_1.css `
88
- background-color: ${constants_1.get('colors.canvas.inset')};
89
- `}
90
-
91
- ${props => props.disabled &&
92
- styled_components_1.css `
93
- color: ${constants_1.get('colors.primer.fg.disabled')};
94
- background-color: ${constants_1.get('colors.input.disabledBg')};
95
- border-color: ${constants_1.get('colors.border.default')};
96
- `}
97
-
98
- ${props => props.block &&
99
- styled_components_1.css `
100
- display: block;
101
- width: 100%;
102
- `}
103
-
104
- ${props => props.block &&
105
- props.hasIcon &&
106
- styled_components_1.css `
107
- display: flex;
108
- `}
109
-
110
- // Ensures inputs don't zoom on mobile but are body-font size on desktop
111
- @media (min-width: ${constants_1.get('breakpoints.1')}) {
112
- font-size: ${constants_1.get('fontSizes.1')};
113
- }
114
- ${styled_system_1.width}
115
- ${styled_system_1.minWidth}
116
- ${styled_system_1.maxWidth}
117
- ${sizeVariants}
118
- ${sx_1.default};
119
- `;
120
- exports.default = TextInputWrapper;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const styled_components_1 = __importDefault(require("styled-components"));
7
- const sx_1 = __importDefault(require("./sx"));
8
- const UnstyledTextInput = styled_components_1.default.input `
9
- border: 0;
10
- font-size: inherit;
11
- font-family: inherit;
12
- background-color: transparent;
13
- -webkit-appearance: none;
14
- color: inherit;
15
- width: 100%;
16
- &:focus {
17
- outline: 0;
18
- }
19
-
20
- ${sx_1.default};
21
- `;
22
- exports.default = UnstyledTextInput;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- function useDetails({ ref, closeOnOutsideClick, defaultOpen, onClickOutside }) {
5
- const [open, setOpen] = react_1.useState(defaultOpen);
6
- const backupRef = react_1.useRef(null);
7
- const customRef = ref ?? backupRef;
8
- const onClickOutsideInternal = react_1.useCallback((event) => {
9
- const { current } = customRef;
10
- const eventTarget = event.target;
11
- const closest = eventTarget.closest('details');
12
- if (closest !== current) {
13
- onClickOutside && onClickOutside(event);
14
- if (!event.defaultPrevented) {
15
- setOpen(false);
16
- }
17
- }
18
- }, [customRef, setOpen, onClickOutside]);
19
- // handles the overlay behavior - closing the menu when clicking outside of it
20
- react_1.useEffect(() => {
21
- if (open && closeOnOutsideClick) {
22
- document.addEventListener('click', onClickOutsideInternal);
23
- return () => {
24
- document.removeEventListener('click', onClickOutsideInternal);
25
- };
26
- }
27
- }, [open, closeOnOutsideClick, onClickOutsideInternal]);
28
- const handleToggle = (e) => {
29
- if (!e.defaultPrevented) {
30
- const eventTarget = e.target;
31
- setOpen(eventTarget.open);
32
- }
33
- };
34
- const getDetailsProps = () => {
35
- return { onToggle: handleToggle, open, ref: customRef };
36
- };
37
- return { open, setOpen, getDetailsProps };
38
- }
39
- exports.default = useDetails;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useOnOutsideClick = void 0;
4
- const react_1 = require("react");
5
- // Because events are handled at the document level, we provide a mechanism for early return.
6
- const stopPropagation = true;
7
- /**
8
- * Calls all handlers in reverse order
9
- * @param event The MouseEvent generated by the click event.
10
- */
11
- function handleClick(event) {
12
- if (!event.defaultPrevented) {
13
- for (const handler of Object.values(registry).reverse()) {
14
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
15
- if (handler(event) === stopPropagation || event.defaultPrevented) {
16
- break;
17
- }
18
- }
19
- }
20
- }
21
- const registry = {};
22
- function register(id, handler) {
23
- registry[id] = handler;
24
- }
25
- function deregister(id) {
26
- delete registry[id];
27
- }
28
- // For auto-incrementing unique identifiers for registered handlers.
29
- let handlerId = 0;
30
- const useOnOutsideClick = ({ containerRef, ignoreClickRefs, onClickOutside }) => {
31
- const id = react_1.useMemo(() => handlerId++, []);
32
- const handler = react_1.useCallback(event => {
33
- // don't call click handler if the mouse event was triggered by an auxiliary button (right click/wheel button/etc)
34
- if (event instanceof MouseEvent && event.button > 0) {
35
- return stopPropagation;
36
- }
37
- // don't call handler if the click happened inside of the container
38
- if (containerRef.current?.contains(event.target)) {
39
- return stopPropagation;
40
- }
41
- // don't call handler if click happened on an ignored ref
42
- if (ignoreClickRefs && ignoreClickRefs.some(({ current }) => current?.contains(event.target))) {
43
- return stopPropagation;
44
- }
45
- onClickOutside(event);
46
- }, [containerRef, ignoreClickRefs, onClickOutside]);
47
- react_1.useEffect(() => {
48
- if (Object.keys(registry).length === 0) {
49
- // use capture to ensure we get all events
50
- document.addEventListener('mousedown', handleClick, { capture: true });
51
- }
52
- register(id, handler);
53
- return () => {
54
- deregister(id);
55
- if (Object.keys(registry).length === 0) {
56
- document.removeEventListener('mousedown', handleClick, { capture: true });
57
- }
58
- };
59
- }, [id, handler]);
60
- };
61
- exports.useOnOutsideClick = useOnOutsideClick;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useOverlay = void 0;
4
- const useOnOutsideClick_1 = require("./useOnOutsideClick");
5
- const useOpenAndCloseFocus_1 = require("./useOpenAndCloseFocus");
6
- const useOnEscapePress_1 = require("./useOnEscapePress");
7
- const useProvidedRefOrCreate_1 = require("./useProvidedRefOrCreate");
8
- const useOverlay = ({ overlayRef: _overlayRef, returnFocusRef, initialFocusRef, onEscape, ignoreClickRefs, onClickOutside, preventFocusOnOpen }) => {
9
- const overlayRef = useProvidedRefOrCreate_1.useProvidedRefOrCreate(_overlayRef);
10
- useOpenAndCloseFocus_1.useOpenAndCloseFocus({ containerRef: overlayRef, returnFocusRef, initialFocusRef, preventFocusOnOpen });
11
- useOnOutsideClick_1.useOnOutsideClick({ containerRef: overlayRef, ignoreClickRefs, onClickOutside });
12
- useOnEscapePress_1.useOnEscapePress(onEscape);
13
- return { ref: overlayRef };
14
- };
15
- exports.useOverlay = useOverlay;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const use_force_update_1 = require("./use-force-update");
8
- /** createSlots is a factory that can create a
9
- * typesafe Slots + Slot pair to use in a component definition
10
- * For example: ActionList.Item uses createSlots to get a Slots wrapper
11
- * + Slot component that is used by LeadingVisual, Description
12
- */
13
- const createSlots = (slotNames) => {
14
- const SlotsContext = react_1.default.createContext({
15
- registerSlot: () => null,
16
- unregisterSlot: () => null,
17
- context: {}
18
- });
19
- /** Slots uses a Double render strategy inspired by [reach-ui/descendants](https://github.com/reach/reach-ui/tree/develop/packages/descendants)
20
- * Slot registers themself with the Slots parent.
21
- * When all the children have mounted = registered themselves in slot,
22
- * we re-render the parent component to render with slots
23
- */
24
- const Slots = ({ context = {}, children }) => {
25
- // initialise slots
26
- const slotsDefinition = {};
27
- slotNames.map(name => (slotsDefinition[name] = null));
28
- const slotsRef = react_1.default.useRef(slotsDefinition);
29
- const rerenderWithSlots = use_force_update_1.useForceUpdate();
30
- const [isMounted, setIsMounted] = react_1.default.useState(false);
31
- // fires after all the effects in children
32
- react_1.default.useEffect(() => {
33
- rerenderWithSlots();
34
- setIsMounted(true);
35
- }, [rerenderWithSlots]);
36
- const registerSlot = react_1.default.useCallback((name, contents) => {
37
- slotsRef.current[name] = contents;
38
- // don't render until the component mounts = all slots are registered
39
- if (isMounted)
40
- rerenderWithSlots();
41
- }, [isMounted, rerenderWithSlots]);
42
- // Slot can be removed from the tree as well,
43
- // we need to unregister them from the slot
44
- const unregisterSlot = react_1.default.useCallback((name) => {
45
- slotsRef.current[name] = null;
46
- rerenderWithSlots();
47
- }, [rerenderWithSlots]);
48
- /**
49
- * Slots uses a render prop API so abstract the
50
- * implementation detail of using a context provider.
51
- */
52
- const slots = slotsRef.current;
53
- return (<SlotsContext.Provider value={{ registerSlot, unregisterSlot, context }}>{children(slots)}</SlotsContext.Provider>);
54
- };
55
- const Slot = ({ name, children }) => {
56
- const { registerSlot, unregisterSlot, context } = react_1.default.useContext(SlotsContext);
57
- react_1.default.useEffect(() => {
58
- registerSlot(name, typeof children === 'function' ? children(context) : children);
59
- return () => unregisterSlot(name);
60
- }, [name, children, registerSlot, unregisterSlot, context]);
61
- return null;
62
- };
63
- return { Slots, Slot };
64
- };
65
- exports.default = createSlots;