@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,273 +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
- exports.Dialog = void 0;
26
- const react_1 = __importStar(require("react"));
27
- const styled_components_1 = __importDefault(require("styled-components"));
28
- const Button_1 = __importStar(require("../Button"));
29
- const Box_1 = __importDefault(require("../Box"));
30
- const constants_1 = require("../constants");
31
- const hooks_1 = require("../hooks");
32
- const useFocusTrap_1 = require("../hooks/useFocusTrap");
33
- const sx_1 = __importDefault(require("../sx"));
34
- const StyledOcticon_1 = __importDefault(require("../StyledOcticon"));
35
- const octicons_react_1 = require("@primer/octicons-react");
36
- const useFocusZone_1 = require("../hooks/useFocusZone");
37
- const focusZone_1 = require("../behaviors/focusZone");
38
- const Portal_1 = __importDefault(require("../Portal"));
39
- const useCombinedRefs_1 = require("../hooks/useCombinedRefs");
40
- const ssr_1 = require("@react-aria/ssr");
41
- const ANIMATION_DURATION = '200ms';
42
- const Backdrop = styled_components_1.default('div') `
43
- position: fixed;
44
- top: 0;
45
- left: 0;
46
- bottom: 0;
47
- right: 0;
48
- display: flex;
49
- align-items: center;
50
- justify-content: center;
51
- background-color: rgba(0, 0, 0, 0.4);
52
- animation: dialog-backdrop-appear ${ANIMATION_DURATION} ${constants_1.get('animation.easeOutCubic')};
53
-
54
- @keyframes dialog-backdrop-appear {
55
- 0% {
56
- opacity: 0;
57
- }
58
- 100% {
59
- opacity: 1;
60
- }
61
- }
62
- `;
63
- const heightMap = {
64
- small: '480px',
65
- large: '640px',
66
- auto: 'auto'
67
- };
68
- const widthMap = {
69
- small: '296px',
70
- medium: '320px',
71
- large: '480px',
72
- xlarge: '640px'
73
- };
74
- const StyledDialog = styled_components_1.default.div `
75
- display: flex;
76
- flex-direction: column;
77
- background-color: ${constants_1.get('colors.canvas.overlay')};
78
- box-shadow: ${constants_1.get('shadows.overlay.shadow')};
79
- min-width: 296px;
80
- max-width: calc(100vw - 64px);
81
- max-height: calc(100vh - 64px);
82
- width: ${props => widthMap[props.width ?? 'xlarge']};
83
- height: ${props => heightMap[props.height ?? 'auto']};
84
- border-radius: 12px;
85
- opacity: 1;
86
- animation: overlay--dialog-appear ${ANIMATION_DURATION} ${constants_1.get('animation.easeOutCubic')};
87
-
88
- @keyframes overlay--dialog-appear {
89
- 0% {
90
- opacity: 0;
91
- transform: scale(0.5);
92
- }
93
- 100% {
94
- opacity: 1;
95
- transform: scale(1);
96
- }
97
- }
98
-
99
- ${constants_1.COMMON};
100
- ${constants_1.POSITION};
101
- ${sx_1.default};
102
- `;
103
- const DefaultHeader = ({ dialogLabelId, title, subtitle, dialogDescriptionId, onClose }) => {
104
- const onCloseClick = react_1.useCallback(() => {
105
- onClose('close-button');
106
- }, [onClose]);
107
- return (<exports.Dialog.Header>
108
- <Box_1.default display="flex">
109
- <Box_1.default display="flex" px={2} py="6px" flexDirection="column" flexGrow={1}>
110
- <exports.Dialog.Title id={dialogLabelId}>{title ?? 'Dialog'}</exports.Dialog.Title>
111
- {subtitle && <exports.Dialog.Subtitle id={dialogDescriptionId}>{subtitle}</exports.Dialog.Subtitle>}
112
- </Box_1.default>
113
- <exports.Dialog.CloseButton onClose={onCloseClick}/>
114
- </Box_1.default>
115
- </exports.Dialog.Header>);
116
- };
117
- const DefaultBody = ({ children }) => {
118
- return <exports.Dialog.Body>{children}</exports.Dialog.Body>;
119
- };
120
- const DefaultFooter = ({ footerButtons }) => {
121
- const { containerRef: footerRef } = useFocusZone_1.useFocusZone({
122
- bindKeys: focusZone_1.FocusKeys.ArrowHorizontal | focusZone_1.FocusKeys.Tab,
123
- focusInStrategy: 'closest'
124
- });
125
- return footerButtons ? (<exports.Dialog.Footer ref={footerRef}>
126
- <exports.Dialog.Buttons buttons={footerButtons}/>
127
- </exports.Dialog.Footer>) : null;
128
- };
129
- const _Dialog = react_1.default.forwardRef((props, forwardedRef) => {
130
- const { title = 'Dialog', subtitle = '', renderHeader, renderBody, renderFooter, onClose, role = 'dialog', width = 'xlarge', height = 'auto', footerButtons = [] } = props;
131
- const dialogLabelId = ssr_1.useSSRSafeId();
132
- const dialogDescriptionId = ssr_1.useSSRSafeId();
133
- const autoFocusedFooterButtonRef = react_1.useRef(null);
134
- for (const footerButton of footerButtons) {
135
- if (footerButton.autoFocus) {
136
- footerButton.ref = autoFocusedFooterButtonRef;
137
- }
138
- }
139
- const defaultedProps = { ...props, title, subtitle, role, dialogLabelId, dialogDescriptionId };
140
- const dialogRef = react_1.useRef(null);
141
- const combinedRef = useCombinedRefs_1.useCombinedRefs(dialogRef, forwardedRef);
142
- const backdropRef = react_1.useRef(null);
143
- useFocusTrap_1.useFocusTrap({ containerRef: dialogRef, restoreFocusOnCleanUp: true, initialFocusRef: autoFocusedFooterButtonRef });
144
- hooks_1.useOnEscapePress((event) => {
145
- onClose('escape');
146
- event.preventDefault();
147
- }, [onClose]);
148
- const header = (renderHeader ?? DefaultHeader)(defaultedProps);
149
- const body = (renderBody ?? DefaultBody)(defaultedProps);
150
- const footer = (renderFooter ?? DefaultFooter)(defaultedProps);
151
- return (<>
152
- <Portal_1.default>
153
- <Backdrop ref={backdropRef}>
154
- <StyledDialog width={width} height={height} ref={combinedRef} role={role} aria-labelledby={dialogLabelId} aria-describedby={dialogDescriptionId}>
155
- {header}
156
- {body}
157
- {footer}
158
- </StyledDialog>
159
- </Backdrop>
160
- </Portal_1.default>
161
- </>);
162
- });
163
- _Dialog.displayName = 'Dialog';
164
- const Header = styled_components_1.default(Box_1.default).attrs({ as: 'header' }) `
165
- box-shadow: 0 1px 0 ${constants_1.get('colors.border.default')};
166
- padding: ${constants_1.get('space.2')};
167
- z-index: 1;
168
- flex-shrink: 0;
169
- `;
170
- const Title = styled_components_1.default(Box_1.default) `
171
- font-size: ${constants_1.get('fontSizes.1')};
172
- font-weight: ${constants_1.get('fontWeights.bold')};
173
- `;
174
- const Subtitle = styled_components_1.default(Box_1.default) `
175
- font-size: ${constants_1.get('fontSizes.0')};
176
- margin-top: ${constants_1.get('space.1')};
177
- color: ${constants_1.get('colors.fg.muted')};
178
- `;
179
- const Body = styled_components_1.default(Box_1.default) `
180
- flex-grow: 1;
181
- overflow: auto;
182
- padding: ${constants_1.get('space.3')};
183
- `;
184
- const Footer = styled_components_1.default(Box_1.default).attrs({ as: 'footer' }) `
185
- box-shadow: 0 -1px 0 ${constants_1.get('colors.border.default')};
186
- padding: ${constants_1.get('space.3')};
187
- display: flex;
188
- flex-flow: wrap;
189
- justify-content: flex-end;
190
- z-index: 1;
191
- flex-shrink: 0;
192
-
193
- button {
194
- margin-left: ${constants_1.get('space.1')};
195
- &:first-child {
196
- margin-left: 0;
197
- }
198
- }
199
- `;
200
- const buttonTypes = {
201
- normal: Button_1.default,
202
- primary: Button_1.ButtonPrimary,
203
- danger: Button_1.ButtonDanger
204
- };
205
- const Buttons = ({ buttons }) => {
206
- const autoFocusRef = hooks_1.useProvidedRefOrCreate(buttons.find(button => button.autoFocus)?.ref);
207
- let autoFocusCount = 0;
208
- const [hasRendered, setHasRendered] = react_1.useState(0);
209
- react_1.useEffect(() => {
210
- // hack to work around dialogs originating from other focus traps.
211
- if (hasRendered === 1) {
212
- autoFocusRef.current?.focus();
213
- }
214
- else {
215
- setHasRendered(hasRendered + 1);
216
- }
217
- }, [autoFocusRef, hasRendered]);
218
- return (<>
219
- {buttons.map((dialogButtonProps, index) => {
220
- const { content, buttonType = 'normal', autoFocus = false, ...buttonProps } = dialogButtonProps;
221
- const ButtonElement = buttonTypes[buttonType];
222
- return (<ButtonElement key={index} {...buttonProps} variant={buttonType} ref={autoFocus && autoFocusCount === 0 ? (autoFocusCount++, autoFocusRef) : null}>
223
- {content}
224
- </ButtonElement>);
225
- })}
226
- </>);
227
- };
228
- const DialogCloseButton = styled_components_1.default(Button_1.default) `
229
- border-radius: 4px;
230
- background: transparent;
231
- border: 0;
232
- vertical-align: middle;
233
- color: ${constants_1.get('colors.fg.muted')};
234
- padding: ${constants_1.get('space.2')};
235
- align-self: flex-start;
236
- line-height: normal;
237
- box-shadow: none;
238
- `;
239
- const CloseButton = ({ onClose }) => {
240
- return (<DialogCloseButton aria-label="Close" onClick={onClose}>
241
- <StyledOcticon_1.default icon={octicons_react_1.XIcon}/>
242
- </DialogCloseButton>);
243
- };
244
- /**
245
- * A dialog is a type of overlay that can be used for confirming actions, asking
246
- * for disambiguation, and presenting small forms. They generally allow the user
247
- * to focus on a quick task without having to navigate to a different page.
248
- *
249
- * Dialogs appear in the page after a direct user interaction. Don't show dialogs
250
- * on page load or as system alerts.
251
- *
252
- * Dialogs appear centered in the page, with a visible backdrop that dims the rest
253
- * of the window for focus.
254
- *
255
- * All dialogs have a title and a close button.
256
- *
257
- * Dialogs are modal. Dialogs can be dismissed by clicking on the close button,
258
- * pressing the escape key, or by interacting with another button in the dialog.
259
- * To avoid losing information and missing important messages, clicking outside
260
- * of the dialog will not close it.
261
- *
262
- * The sub components provided (e.g. Header, Title, etc.) are available for custom
263
- * renderers only. They are not intended to be used otherwise.
264
- */
265
- exports.Dialog = Object.assign(_Dialog, {
266
- Header,
267
- Title,
268
- Subtitle,
269
- Body,
270
- Footer,
271
- Buttons,
272
- CloseButton
273
- });
package/lib/Dialog.jsx DELETED
@@ -1,131 +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 react_1 = __importStar(require("react"));
26
- const styled_components_1 = __importDefault(require("styled-components"));
27
- const ButtonClose_1 = __importDefault(require("./Button/ButtonClose"));
28
- const constants_1 = require("./constants");
29
- const Box_1 = __importDefault(require("./Box"));
30
- const useDialog_1 = __importDefault(require("./hooks/useDialog"));
31
- const sx_1 = __importDefault(require("./sx"));
32
- const Text_1 = __importDefault(require("./Text"));
33
- const useCombinedRefs_1 = require("./hooks/useCombinedRefs");
34
- const noop = () => null;
35
- const DialogBase = styled_components_1.default.div `
36
- box-shadow: ${constants_1.get('shadows.shadow.large')};
37
- border-radius: ${constants_1.get('radii.2')};
38
- position: fixed;
39
- top: 0;
40
- left: 50%;
41
- transform: translateX(-50%);
42
- max-height: 80vh;
43
- z-index: 999;
44
- margin: 10vh auto;
45
- background-color: ${constants_1.get('colors.canvas.default')};
46
- width: ${props => (props.narrow ? '320px' : props.wide ? '640px' : '440px')};
47
- outline: none;
48
-
49
- @media screen and (max-width: 750px) {
50
- width: 100vw;
51
- margin: 0;
52
- border-radius: 0;
53
- height: 100vh;
54
- }
55
-
56
- ${constants_1.LAYOUT};
57
- ${constants_1.COMMON};
58
- ${sx_1.default};
59
- `;
60
- const DialogHeaderBase = styled_components_1.default(Box_1.default) `
61
- border-radius: ${constants_1.get('radii.2')} ${constants_1.get('radii.2')} 0px 0px;
62
- border-bottom: 1px solid ${constants_1.get('colors.border.default')};
63
- display: flex;
64
-
65
- @media screen and (max-width: 750px) {
66
- border-radius: 0px;
67
- }
68
-
69
- ${sx_1.default};
70
- `;
71
- function DialogHeader({ theme, children, backgroundColor = 'gray.1', ...rest }) {
72
- if (react_1.default.Children.toArray(children).every(ch => typeof ch === 'string')) {
73
- children = (<Text_1.default theme={theme} color="fg.default" fontSize={1} fontWeight="bold" fontFamily="sans-serif">
74
- {children}
75
- </Text_1.default>);
76
- }
77
- return (<DialogHeaderBase theme={theme} p={3} backgroundColor={backgroundColor} {...rest}>
78
- {children}
79
- </DialogHeaderBase>);
80
- }
81
- const Overlay = styled_components_1.default.span `
82
- &:before {
83
- position: fixed;
84
- top: 0;
85
- right: 0;
86
- bottom: 0;
87
- left: 0;
88
- display: block;
89
- cursor: default;
90
- content: ' ';
91
- background: transparent;
92
- z-index: 99;
93
- background: ${constants_1.get('colors.primer.canvas.backdrop')};
94
- }
95
- `;
96
- const Dialog = react_1.forwardRef(({ children, onDismiss = noop, isOpen, initialFocusRef, returnFocusRef, ...props }, forwardedRef) => {
97
- const overlayRef = react_1.useRef(null);
98
- const modalRef = useCombinedRefs_1.useCombinedRefs(forwardedRef);
99
- const closeButtonRef = react_1.useRef(null);
100
- const onCloseClick = () => {
101
- onDismiss();
102
- if (returnFocusRef && returnFocusRef.current) {
103
- returnFocusRef.current.focus();
104
- }
105
- };
106
- const { getDialogProps } = useDialog_1.default({
107
- modalRef,
108
- onDismiss: onCloseClick,
109
- isOpen,
110
- initialFocusRef,
111
- closeButtonRef,
112
- returnFocusRef,
113
- overlayRef
114
- });
115
- return isOpen ? (<>
116
- <Overlay ref={overlayRef}/>
117
- <DialogBase tabIndex={-1} ref={modalRef} role="dialog" aria-modal="true" {...props} {...getDialogProps()}>
118
- <ButtonClose_1.default ref={closeButtonRef} onClick={onCloseClick} sx={{ position: 'absolute', top: '16px', right: '16px' }}/>
119
- {children}
120
- </DialogBase>
121
- </>) : null;
122
- });
123
- DialogHeader.defaultProps = {
124
- backgroundColor: 'canvas.subtle'
125
- };
126
- DialogHeader.propTypes = {
127
- ...Box_1.default.propTypes
128
- };
129
- DialogHeader.displayName = 'Dialog.Header';
130
- Dialog.displayName = 'Dialog';
131
- exports.default = Object.assign(Dialog, { Header: DialogHeader });
package/lib/Dropdown.jsx DELETED
@@ -1,134 +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 styled_components_1 = __importDefault(require("styled-components"));
8
- const Button_1 = __importDefault(require("./Button"));
9
- const constants_1 = require("./constants");
10
- const Details_1 = __importDefault(require("./Details"));
11
- const DropdownStyles_1 = __importDefault(require("./DropdownStyles"));
12
- const useDetails_1 = __importDefault(require("./hooks/useDetails"));
13
- const sx_1 = __importDefault(require("./sx"));
14
- const StyledDetails = styled_components_1.default(Details_1.default) `
15
- position: relative;
16
- display: inline-block;
17
- `;
18
- const Dropdown = ({ children, className, ...rest }) => {
19
- const { getDetailsProps } = useDetails_1.default({ closeOnOutsideClick: true });
20
- return (<StyledDetails className={className} {...getDetailsProps()} {...rest}>
21
- {children}
22
- </StyledDetails>);
23
- };
24
- const DropdownButton = ({ children, ...rest }) => {
25
- return (<Button_1.default as="summary" aria-haspopup="true" {...rest}>
26
- {children}
27
- <DropdownCaret />
28
- </Button_1.default>);
29
- };
30
- const DropdownCaret = styled_components_1.default.div `
31
- border: 4px solid transparent;
32
- margin-left: 12px;
33
- border-top-color: currentcolor;
34
- border-bottom-width: 0;
35
- content: '';
36
- display: inline-block;
37
- height: 0;
38
- vertical-align: middle;
39
- width: 0;
40
- ${constants_1.COMMON};
41
- ${sx_1.default};
42
- `;
43
- const DropdownMenu = styled_components_1.default.ul `
44
- background-clip: padding-box;
45
- background-color: ${constants_1.get('colors.canvas.overlay')};
46
- border: 1px solid ${constants_1.get('colors.border.default')};
47
- border-radius: ${constants_1.get('radii.2')};
48
- box-shadow: ${constants_1.get('shadows.shadow.large')};
49
- left: 0;
50
- list-style: none;
51
- margin-top: 2px;
52
- padding: 5px 0 5px 0 !important; //TODO: fix this override on our markdown styles
53
- position: absolute;
54
- top: 100%;
55
- width: 160px;
56
- z-index: 100;
57
-
58
- &::before {
59
- position: absolute;
60
- display: inline-block;
61
- content: '';
62
- }
63
-
64
- &::after {
65
- position: absolute;
66
- display: inline-block;
67
- content: '';
68
- }
69
-
70
- &::before {
71
- border: 8px solid transparent;
72
- border-bottom-color: ${constants_1.get('colors.canvas.overlay')};
73
- }
74
-
75
- &::after {
76
- border: 7px solid transparent;
77
- border-bottom-color: ${constants_1.get('colors.canvas.overlay')};
78
- }
79
-
80
- // stylelint-disable-next-line selector-max-type
81
- > ul {
82
- list-style: none;
83
- }
84
- ${props => (props.direction ? DropdownStyles_1.default(props.theme, props.direction) : '')};
85
- ${constants_1.COMMON};
86
- ${sx_1.default};
87
- `;
88
- const DropdownItem = styled_components_1.default.li `
89
- display: block;
90
- padding: ${constants_1.get('space.1')} 10px ${constants_1.get('space.1')} 15px;
91
- overflow: hidden;
92
- color: ${constants_1.get('colors.fg.default')};
93
- text-overflow: ellipsis;
94
- white-space: nowrap;
95
- a {
96
- color: ${constants_1.get('colors.fg.default')};
97
- text-decoration: none;
98
- display: block;
99
- overflow: hidden;
100
- color: ${constants_1.get('colors.fg.default')};
101
- text-overflow: ellipsis;
102
- white-space: nowrap;
103
- }
104
-
105
- &:focus,
106
- a:focus {
107
- color: ${constants_1.get('colors.fg.onEmphasis')};
108
- text-decoration: none;
109
- background-color: ${constants_1.get('colors.accent.emphasis')};
110
- }
111
-
112
- &:hover,
113
- &:hover a {
114
- color: ${constants_1.get('colors.fg.onEmphasis')};
115
- text-decoration: none;
116
- background-color: ${constants_1.get('colors.accent.emphasis')};
117
- outline: none;
118
- }
119
- ${constants_1.COMMON};
120
- ${sx_1.default};
121
- `;
122
- DropdownMenu.defaultProps = { direction: 'sw' };
123
- DropdownMenu.displayName = 'Dropdown.Menu';
124
- DropdownItem.displayName = 'Dropdown.Item';
125
- DropdownButton.defaultProps = Button_1.default.defaultProps;
126
- DropdownButton.displayName = 'Dropdown.Button';
127
- DropdownCaret.displayName = 'Dropdown.Caret';
128
- Dropdown.defaultProps = Details_1.default.defaultProps;
129
- exports.default = Object.assign(Dropdown, {
130
- Caret: DropdownCaret,
131
- Menu: DropdownMenu,
132
- Item: DropdownItem,
133
- Button: DropdownButton
134
- });
@@ -1,14 +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
- exports.DropdownButton = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const octicons_react_1 = require("@primer/octicons-react");
9
- const Button_1 = __importDefault(require("../Button/Button"));
10
- const StyledOcticon_1 = __importDefault(require("../StyledOcticon"));
11
- exports.DropdownButton = react_1.default.forwardRef(({ children, ...props }, ref) => (<Button_1.default ref={ref} type="button" {...props}>
12
- {children}
13
- <StyledOcticon_1.default icon={octicons_react_1.TriangleDownIcon} ml={1}/>
14
- </Button_1.default>));
@@ -1,70 +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
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.DropdownMenu = void 0;
23
- const react_1 = __importStar(require("react"));
24
- const List_1 = require("../ActionList/List");
25
- const DropdownButton_1 = require("./DropdownButton");
26
- const AnchoredOverlay_1 = require("../AnchoredOverlay");
27
- const useProvidedRefOrCreate_1 = require("../hooks/useProvidedRefOrCreate");
28
- const useProvidedStateOrCreate_1 = require("../hooks/useProvidedStateOrCreate");
29
- /**
30
- * A `DropdownMenu` provides an anchor (button by default) that will open a floating menu of selectable items. The menu can be
31
- * opened and navigated using keyboard or mouse. When an item is selected, the menu will close and the `onChange` callback will be called.
32
- * If the default anchor button is used, the anchor contents will be updated with the selection.
33
- */
34
- function DropdownMenu({ renderAnchor = (props) => <DropdownButton_1.DropdownButton {...props}/>, anchorRef: externalAnchorRef, placeholder, selectedItem, onChange, overlayProps, items, open, onOpenChange, ...listProps }) {
35
- const [combinedOpenState, setCombinedOpenState] = useProvidedStateOrCreate_1.useProvidedStateOrCreate(open, onOpenChange, false);
36
- const onOpen = react_1.useCallback(() => setCombinedOpenState(true), [setCombinedOpenState]);
37
- const onClose = react_1.useCallback(() => setCombinedOpenState(false), [setCombinedOpenState]);
38
- const anchorRef = useProvidedRefOrCreate_1.useProvidedRefOrCreate(externalAnchorRef);
39
- const renderMenuAnchor = react_1.useMemo(() => {
40
- if (renderAnchor === null) {
41
- return null;
42
- }
43
- return (props) => renderAnchor({
44
- ...props,
45
- children: selectedItem?.text ?? placeholder
46
- });
47
- }, [placeholder, renderAnchor, selectedItem?.text]);
48
- const itemsToRender = react_1.useMemo(() => {
49
- return items.map(item => {
50
- return {
51
- ...item,
52
- role: 'option',
53
- selected: item === selectedItem,
54
- onAction: (itemFromAction, event) => {
55
- item.onAction?.(itemFromAction, event);
56
- if (event.defaultPrevented) {
57
- return;
58
- }
59
- onClose();
60
- onChange?.(item === selectedItem ? undefined : item);
61
- }
62
- };
63
- });
64
- }, [items, onChange, onClose, selectedItem]);
65
- return (<AnchoredOverlay_1.AnchoredOverlay renderAnchor={renderMenuAnchor} anchorRef={anchorRef} open={combinedOpenState} onOpen={onOpen} onClose={onClose} overlayProps={overlayProps}>
66
- <List_1.List {...listProps} role="listbox" items={itemsToRender}/>
67
- </AnchoredOverlay_1.AnchoredOverlay>);
68
- }
69
- exports.DropdownMenu = DropdownMenu;
70
- DropdownMenu.displayName = 'DropdownMenu';
@@ -1,15 +0,0 @@
1
- /// <reference types="react" />
2
- export interface EmojiPickerProps {
3
- onSelect?: (emoji: string) => void;
4
- }
5
- export interface Emoji {
6
- name: string;
7
- emoji: string;
8
- }
9
- export interface EmojiCategory {
10
- id: number;
11
- name: string;
12
- emojis: Array<Emoji>;
13
- }
14
- declare const EmojiPicker: ({ onSelect }: EmojiPickerProps) => JSX.Element;
15
- export default EmojiPicker;