@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
@@ -1,22 +1,39 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.scrollIntoViewingArea = void 0;
7
+
4
8
  const scrollIntoViewingArea = (child, viewingArea, direction = 'vertical', startMargin = 8, endMargin = 0, behavior = 'smooth') => {
5
- const startSide = direction === 'vertical' ? 'top' : 'left';
6
- const endSide = direction === 'vertical' ? 'bottom' : 'right';
7
- const scrollSide = direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
8
- const { [startSide]: childStart, [endSide]: childEnd } = child.getBoundingClientRect();
9
- const { [startSide]: viewingAreaStart, [endSide]: viewingAreaEnd } = viewingArea.getBoundingClientRect();
10
- const isChildStartAboveViewingArea = childStart < viewingAreaStart + endMargin;
11
- const isChildBottomBelowViewingArea = childEnd > viewingAreaEnd - startMargin;
12
- if (isChildStartAboveViewingArea) {
13
- const scrollHeightToChildStart = childStart - viewingAreaStart + viewingArea[scrollSide];
14
- viewingArea.scrollTo({ behavior, [startSide]: scrollHeightToChildStart - endMargin });
15
- }
16
- else if (isChildBottomBelowViewingArea) {
17
- const scrollHeightToChildBottom = childEnd - viewingAreaEnd + viewingArea[scrollSide];
18
- viewingArea.scrollTo({ behavior, [startSide]: scrollHeightToChildBottom + startMargin });
19
- }
20
- // either completely in view or outside viewing area on both ends, don't scroll
9
+ const startSide = direction === 'vertical' ? 'top' : 'left';
10
+ const endSide = direction === 'vertical' ? 'bottom' : 'right';
11
+ const scrollSide = direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
12
+ const {
13
+ [startSide]: childStart,
14
+ [endSide]: childEnd
15
+ } = child.getBoundingClientRect();
16
+ const {
17
+ [startSide]: viewingAreaStart,
18
+ [endSide]: viewingAreaEnd
19
+ } = viewingArea.getBoundingClientRect();
20
+ const isChildStartAboveViewingArea = childStart < viewingAreaStart + endMargin;
21
+ const isChildBottomBelowViewingArea = childEnd > viewingAreaEnd - startMargin;
22
+
23
+ if (isChildStartAboveViewingArea) {
24
+ const scrollHeightToChildStart = childStart - viewingAreaStart + viewingArea[scrollSide];
25
+ viewingArea.scrollTo({
26
+ behavior,
27
+ [startSide]: scrollHeightToChildStart - endMargin
28
+ });
29
+ } else if (isChildBottomBelowViewingArea) {
30
+ const scrollHeightToChildBottom = childEnd - viewingAreaEnd + viewingArea[scrollSide];
31
+ viewingArea.scrollTo({
32
+ behavior,
33
+ [startSide]: scrollHeightToChildBottom + startMargin
34
+ });
35
+ } // either completely in view or outside viewing area on both ends, don't scroll
36
+
21
37
  };
22
- exports.scrollIntoViewingArea = scrollIntoViewingArea;
38
+
39
+ exports.scrollIntoViewingArea = scrollIntoViewingArea;
package/lib/constants.js CHANGED
@@ -1,52 +1,56 @@
1
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;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
13
5
  });
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
6
  exports.GRID = exports.FLEX = exports.POSITION = exports.LAYOUT = exports.BORDER = exports.TYPOGRAPHY = exports.COMMON = exports.get = void 0;
26
- const theme_get_1 = require("@styled-system/theme-get");
7
+
8
+ var _themeGet = require("@styled-system/theme-get");
9
+
10
+ var styledSystem = _interopRequireWildcard(require("styled-system"));
11
+
12
+ var _theme = _interopRequireDefault(require("./theme"));
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
27
20
  // eslint-disable-next-line import/no-namespace
28
- const styledSystem = __importStar(require("styled-system"));
29
- const theme_1 = __importDefault(require("./theme"));
30
- const { get: getKey, compose, system } = styledSystem;
31
- const get = (key) => theme_get_1.themeGet(key, getKey(theme_1.default, key));
21
+ const {
22
+ get: getKey,
23
+ compose,
24
+ system
25
+ } = styledSystem;
26
+
27
+ const get = key => (0, _themeGet.themeGet)(key, getKey(_theme.default, key)); // Common props
28
+
29
+
32
30
  exports.get = get;
33
- // Common props
34
- exports.COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display);
31
+ const COMMON = compose(styledSystem.space, styledSystem.color, styledSystem.display);
32
+ exports.COMMON = COMMON;
35
33
  // Typography props
36
34
  const whiteSpace = system({
37
- whiteSpace: {
38
- property: 'whiteSpace'
39
- // cssProperty: 'whiteSpace',
40
- }
35
+ whiteSpace: {
36
+ property: 'whiteSpace' // cssProperty: 'whiteSpace',
37
+
38
+ }
41
39
  });
42
- exports.TYPOGRAPHY = compose(styledSystem.typography, whiteSpace);
40
+ const TYPOGRAPHY = compose(styledSystem.typography, whiteSpace);
41
+ exports.TYPOGRAPHY = TYPOGRAPHY;
43
42
  // Border props
44
- exports.BORDER = compose(styledSystem.border, styledSystem.shadow);
43
+ const BORDER = compose(styledSystem.border, styledSystem.shadow);
44
+ exports.BORDER = BORDER;
45
45
  // Layout props
46
- exports.LAYOUT = styledSystem.layout;
46
+ const LAYOUT = styledSystem.layout;
47
+ exports.LAYOUT = LAYOUT;
47
48
  // Position props
48
- exports.POSITION = styledSystem.position;
49
+ const POSITION = styledSystem.position;
50
+ exports.POSITION = POSITION;
49
51
  // Flex props
50
- exports.FLEX = styledSystem.flexbox;
52
+ const FLEX = styledSystem.flexbox;
53
+ exports.FLEX = FLEX;
51
54
  // Grid props
52
- exports.GRID = styledSystem.grid;
55
+ const GRID = styledSystem.grid;
56
+ exports.GRID = GRID;
package/lib/drafts.js CHANGED
@@ -1,21 +1,31 @@
1
1
  "use strict";
2
- /** This is the place where we keep components that are not part of the public
3
- * api yet (not in main bundle). We don't recommend using it in production.
4
- *
5
- * But, they are published on npm and you can import them for experimentation/feedback.
6
- * example: import {ActionList} from '@primer/components/drafts
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- // Components
20
- __exportStar(require("./ActionList2"), exports);
21
- __exportStar(require("./NewButton"), exports);
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _ActionList = require("./ActionList2");
8
+
9
+ Object.keys(_ActionList).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _ActionList[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ActionList[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _NewButton = require("./NewButton");
21
+
22
+ Object.keys(_NewButton).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _NewButton[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _NewButton[key];
29
+ }
30
+ });
31
+ });
@@ -1,17 +1,61 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useRenderForcingRef = exports.useOverlay = exports.useAnchoredPosition = exports.useOpenAndCloseFocus = exports.useOnEscapePress = exports.useProvidedRefOrCreate = exports.useOnOutsideClick = void 0;
4
- var useOnOutsideClick_1 = require("./useOnOutsideClick");
5
- Object.defineProperty(exports, "useOnOutsideClick", { enumerable: true, get: function () { return useOnOutsideClick_1.useOnOutsideClick; } });
6
- var useProvidedRefOrCreate_1 = require("./useProvidedRefOrCreate");
7
- Object.defineProperty(exports, "useProvidedRefOrCreate", { enumerable: true, get: function () { return useProvidedRefOrCreate_1.useProvidedRefOrCreate; } });
8
- var useOnEscapePress_1 = require("./useOnEscapePress");
9
- Object.defineProperty(exports, "useOnEscapePress", { enumerable: true, get: function () { return useOnEscapePress_1.useOnEscapePress; } });
10
- var useOpenAndCloseFocus_1 = require("./useOpenAndCloseFocus");
11
- Object.defineProperty(exports, "useOpenAndCloseFocus", { enumerable: true, get: function () { return useOpenAndCloseFocus_1.useOpenAndCloseFocus; } });
12
- var useAnchoredPosition_1 = require("./useAnchoredPosition");
13
- Object.defineProperty(exports, "useAnchoredPosition", { enumerable: true, get: function () { return useAnchoredPosition_1.useAnchoredPosition; } });
14
- var useOverlay_1 = require("./useOverlay");
15
- Object.defineProperty(exports, "useOverlay", { enumerable: true, get: function () { return useOverlay_1.useOverlay; } });
16
- var useRenderForcingRef_1 = require("./useRenderForcingRef");
17
- Object.defineProperty(exports, "useRenderForcingRef", { enumerable: true, get: function () { return useRenderForcingRef_1.useRenderForcingRef; } });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useOnOutsideClick", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useOnOutsideClick.useOnOutsideClick;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useProvidedRefOrCreate", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useProvidedRefOrCreate.useProvidedRefOrCreate;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useOnEscapePress", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useOnEscapePress.useOnEscapePress;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useOpenAndCloseFocus", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _useOpenAndCloseFocus.useOpenAndCloseFocus;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useAnchoredPosition", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _useAnchoredPosition.useAnchoredPosition;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "useOverlay", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _useOverlay.useOverlay;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "useRenderForcingRef", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _useRenderForcingRef.useRenderForcingRef;
46
+ }
47
+ });
48
+
49
+ var _useOnOutsideClick = require("./useOnOutsideClick");
50
+
51
+ var _useProvidedRefOrCreate = require("./useProvidedRefOrCreate");
52
+
53
+ var _useOnEscapePress = require("./useOnEscapePress");
54
+
55
+ var _useOpenAndCloseFocus = require("./useOpenAndCloseFocus");
56
+
57
+ var _useAnchoredPosition = require("./useAnchoredPosition");
58
+
59
+ var _useOverlay = require("./useOverlay");
60
+
61
+ var _useRenderForcingRef = require("./useRenderForcingRef");
@@ -1,14 +1,22 @@
1
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
- exports.useAnchoredPosition = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const anchoredPosition_1 = require("../behaviors/anchoredPosition");
9
- const useProvidedRefOrCreate_1 = require("./useProvidedRefOrCreate");
10
- const useResizeObserver_1 = require("./useResizeObserver");
11
- const useIsomorphicLayoutEffect_1 = __importDefault(require("../utils/useIsomorphicLayoutEffect"));
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAnchoredPosition = useAnchoredPosition;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _anchoredPosition = require("../behaviors/anchoredPosition");
11
+
12
+ var _useProvidedRefOrCreate = require("./useProvidedRefOrCreate");
13
+
14
+ var _useResizeObserver = require("./useResizeObserver");
15
+
16
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../utils/useIsomorphicLayoutEffect"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
12
20
  /**
13
21
  * Calculates the top and left values for an absolutely-positioned floating element
14
22
  * to be anchored to some anchor element. Returns refs for the floating element
@@ -19,25 +27,25 @@ const useIsomorphicLayoutEffect_1 = __importDefault(require("../utils/useIsomorp
19
27
  * floating element.
20
28
  */
21
29
  function useAnchoredPosition(settings, dependencies = []) {
22
- const floatingElementRef = useProvidedRefOrCreate_1.useProvidedRefOrCreate(settings?.floatingElementRef);
23
- const anchorElementRef = useProvidedRefOrCreate_1.useProvidedRefOrCreate(settings?.anchorElementRef);
24
- const [position, setPosition] = react_1.default.useState(undefined);
25
- const updatePosition = react_1.default.useCallback(() => {
26
- if (floatingElementRef.current instanceof Element && anchorElementRef.current instanceof Element) {
27
- setPosition(anchoredPosition_1.getAnchoredPosition(floatingElementRef.current, anchorElementRef.current, settings));
28
- }
29
- else {
30
- setPosition(undefined);
31
- }
32
- },
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
34
- [floatingElementRef, anchorElementRef, ...dependencies]);
35
- useIsomorphicLayoutEffect_1.default(updatePosition, [updatePosition]);
36
- useResizeObserver_1.useResizeObserver(updatePosition);
37
- return {
38
- floatingElementRef,
39
- anchorElementRef,
40
- position
41
- };
42
- }
43
- exports.useAnchoredPosition = useAnchoredPosition;
30
+ const floatingElementRef = (0, _useProvidedRefOrCreate.useProvidedRefOrCreate)(settings === null || settings === void 0 ? void 0 : settings.floatingElementRef);
31
+ const anchorElementRef = (0, _useProvidedRefOrCreate.useProvidedRefOrCreate)(settings === null || settings === void 0 ? void 0 : settings.anchorElementRef);
32
+
33
+ const [position, setPosition] = _react.default.useState(undefined);
34
+
35
+ const updatePosition = _react.default.useCallback(() => {
36
+ if (floatingElementRef.current instanceof Element && anchorElementRef.current instanceof Element) {
37
+ setPosition((0, _anchoredPosition.getAnchoredPosition)(floatingElementRef.current, anchorElementRef.current, settings));
38
+ } else {
39
+ setPosition(undefined);
40
+ }
41
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ [floatingElementRef, anchorElementRef, ...dependencies]);
43
+
44
+ (0, _useIsomorphicLayoutEffect.default)(updatePosition, [updatePosition]);
45
+ (0, _useResizeObserver.useResizeObserver)(updatePosition);
46
+ return {
47
+ floatingElementRef,
48
+ anchorElementRef,
49
+ position
50
+ };
51
+ }
@@ -1,11 +1,16 @@
1
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
- exports.useCombinedRefs = void 0;
7
- const react_1 = require("react");
8
- const useIsomorphicLayoutEffect_1 = __importDefault(require("../utils/useIsomorphicLayoutEffect"));
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCombinedRefs = useCombinedRefs;
7
+
8
+ var _react = require("react");
9
+
10
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("../utils/useIsomorphicLayoutEffect"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
9
14
  /**
10
15
  * Creates a ref by combining multiple constituent refs. The ref returned by this hook
11
16
  * should be passed as the ref for the element that needs to be shared. This is
@@ -15,29 +20,28 @@ const useIsomorphicLayoutEffect_1 = __importDefault(require("../utils/useIsomorp
15
20
  * @param refs
16
21
  */
17
22
  function useCombinedRefs(...refs) {
18
- const combinedRef = react_1.useRef(null);
19
- useIsomorphicLayoutEffect_1.default(() => {
20
- function setRefs(current = null) {
21
- for (const ref of refs) {
22
- if (!ref) {
23
- return;
24
- }
25
- if (typeof ref === 'function') {
26
- ref(current);
27
- }
28
- else {
29
- ref.current = current;
30
- }
31
- }
23
+ const combinedRef = (0, _react.useRef)(null);
24
+ (0, _useIsomorphicLayoutEffect.default)(() => {
25
+ function setRefs(current = null) {
26
+ for (const ref of refs) {
27
+ if (!ref) {
28
+ return;
32
29
  }
33
- setRefs(combinedRef.current);
34
- return () => {
35
- // ensure the refs get updated on unmount
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
37
- setRefs(combinedRef.current);
38
- };
39
- // eslint-disable-next-line react-hooks/exhaustive-deps
40
- }, [...refs, combinedRef.current]);
41
- return combinedRef;
42
- }
43
- exports.useCombinedRefs = useCombinedRefs;
30
+
31
+ if (typeof ref === 'function') {
32
+ ref(current);
33
+ } else {
34
+ ref.current = current;
35
+ }
36
+ }
37
+ }
38
+
39
+ setRefs(combinedRef.current);
40
+ return () => {
41
+ // ensure the refs get updated on unmount
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ setRefs(combinedRef.current);
44
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ }, [...refs, combinedRef.current]);
46
+ return combinedRef;
47
+ }
@@ -1,80 +1,104 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
4
10
  const noop = () => null;
11
+
5
12
  function visible(el) {
6
- return !el.hidden && (!el.type || el.type !== 'hidden') && (el.offsetWidth > 0 || el.offsetHeight > 0);
13
+ return !el.hidden && (!el.type || el.type !== 'hidden') && (el.offsetWidth > 0 || el.offsetHeight > 0);
7
14
  }
15
+
8
16
  function focusable(el) {
9
- const inputEl = el;
10
- return inputEl.tabIndex >= 0 && !inputEl.disabled && visible(inputEl);
17
+ const inputEl = el;
18
+ return inputEl.tabIndex >= 0 && !inputEl.disabled && visible(inputEl);
11
19
  }
12
- function useDialog({ modalRef, overlayRef, isOpen, onDismiss = noop, initialFocusRef, closeButtonRef }) {
13
- const onClickOutside = react_1.useCallback(e => {
14
- if (modalRef.current &&
15
- overlayRef.current &&
16
- !modalRef.current.contains(e.target) &&
17
- overlayRef.current.contains(e.target)) {
18
- onDismiss();
19
- }
20
- }, [onDismiss, modalRef, overlayRef]);
21
- react_1.useEffect(() => {
22
- if (isOpen) {
23
- document.addEventListener('click', onClickOutside);
24
- return () => {
25
- document.removeEventListener('click', onClickOutside);
26
- };
27
- }
28
- }, [isOpen, onClickOutside]);
29
- react_1.useEffect(() => {
30
- if (isOpen) {
31
- if (initialFocusRef && initialFocusRef.current) {
32
- initialFocusRef.current.focus();
33
- }
34
- else if (closeButtonRef && closeButtonRef.current) {
35
- closeButtonRef.current.focus();
36
- }
37
- }
38
- }, [isOpen, initialFocusRef, closeButtonRef]);
39
- const getFocusableItem = react_1.useCallback((e, movement) => {
40
- if (modalRef.current) {
41
- const items = Array.from(modalRef.current.querySelectorAll('*')).filter(focusable);
42
- if (items.length === 0)
43
- return;
44
- e.preventDefault();
45
- const focusedElement = document.activeElement;
46
- if (!focusedElement) {
47
- return;
48
- }
49
- const index = items.indexOf(focusedElement);
50
- const offsetIndex = index + movement;
51
- const fallbackIndex = movement === 1 ? 0 : items.length - 1;
52
- const focusableItem = items[offsetIndex] || items[fallbackIndex];
53
- return focusableItem;
54
- }
55
- }, [modalRef]);
56
- const handleTab = react_1.useCallback(e => {
57
- const movement = e.shiftKey ? -1 : 1;
58
- const focusableItem = getFocusableItem(e, movement);
59
- if (!focusableItem) {
60
- return;
61
- }
62
- focusableItem.focus();
63
- }, [getFocusableItem]);
64
- const onKeyDown = react_1.useCallback(event => {
65
- switch (event.key) {
66
- case 'Tab':
67
- handleTab(event);
68
- break;
69
- case 'Escape':
70
- onDismiss();
71
- event.stopPropagation();
72
- break;
73
- }
74
- }, [handleTab, onDismiss]);
75
- const getDialogProps = () => {
76
- return { onKeyDown };
20
+
21
+ function useDialog({
22
+ modalRef,
23
+ overlayRef,
24
+ isOpen,
25
+ onDismiss = noop,
26
+ initialFocusRef,
27
+ closeButtonRef
28
+ }) {
29
+ const onClickOutside = (0, _react.useCallback)(e => {
30
+ if (modalRef.current && overlayRef.current && !modalRef.current.contains(e.target) && overlayRef.current.contains(e.target)) {
31
+ onDismiss();
32
+ }
33
+ }, [onDismiss, modalRef, overlayRef]);
34
+ (0, _react.useEffect)(() => {
35
+ if (isOpen) {
36
+ document.addEventListener('click', onClickOutside);
37
+ return () => {
38
+ document.removeEventListener('click', onClickOutside);
39
+ };
40
+ }
41
+ }, [isOpen, onClickOutside]);
42
+ (0, _react.useEffect)(() => {
43
+ if (isOpen) {
44
+ if (initialFocusRef && initialFocusRef.current) {
45
+ initialFocusRef.current.focus();
46
+ } else if (closeButtonRef && closeButtonRef.current) {
47
+ closeButtonRef.current.focus();
48
+ }
49
+ }
50
+ }, [isOpen, initialFocusRef, closeButtonRef]);
51
+ const getFocusableItem = (0, _react.useCallback)((e, movement) => {
52
+ if (modalRef.current) {
53
+ const items = Array.from(modalRef.current.querySelectorAll('*')).filter(focusable);
54
+ if (items.length === 0) return;
55
+ e.preventDefault();
56
+ const focusedElement = document.activeElement;
57
+
58
+ if (!focusedElement) {
59
+ return;
60
+ }
61
+
62
+ const index = items.indexOf(focusedElement);
63
+ const offsetIndex = index + movement;
64
+ const fallbackIndex = movement === 1 ? 0 : items.length - 1;
65
+ const focusableItem = items[offsetIndex] || items[fallbackIndex];
66
+ return focusableItem;
67
+ }
68
+ }, [modalRef]);
69
+ const handleTab = (0, _react.useCallback)(e => {
70
+ const movement = e.shiftKey ? -1 : 1;
71
+ const focusableItem = getFocusableItem(e, movement);
72
+
73
+ if (!focusableItem) {
74
+ return;
75
+ }
76
+
77
+ focusableItem.focus();
78
+ }, [getFocusableItem]);
79
+ const onKeyDown = (0, _react.useCallback)(event => {
80
+ switch (event.key) {
81
+ case 'Tab':
82
+ handleTab(event);
83
+ break;
84
+
85
+ case 'Escape':
86
+ onDismiss();
87
+ event.stopPropagation();
88
+ break;
89
+ }
90
+ }, [handleTab, onDismiss]);
91
+
92
+ const getDialogProps = () => {
93
+ return {
94
+ onKeyDown
77
95
  };
78
- return { getDialogProps };
96
+ };
97
+
98
+ return {
99
+ getDialogProps
100
+ };
79
101
  }
80
- exports.default = useDialog;
102
+
103
+ var _default = useDialog;
104
+ exports.default = _default;