@primer/components 0.0.0-2021113144816 → 0.0.0-2021113174023

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 (506) hide show
  1. package/CHANGELOG.md +892 -0
  2. package/dist/browser.esm.js +2272 -2
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +2272 -2
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Divider.jsx +29 -0
  7. package/lib/ActionList/Group.jsx +23 -0
  8. package/lib/ActionList/Header.js +1 -1
  9. package/lib/ActionList/Header.jsx +66 -0
  10. package/lib/ActionList/Item.js +65 -40
  11. package/lib/ActionList/Item.jsx +311 -0
  12. package/lib/ActionList/List.js +1 -1
  13. package/lib/ActionList/List.jsx +138 -0
  14. package/lib/ActionList/index.js +12 -23
  15. package/lib/ActionList2/Description.jsx +29 -0
  16. package/lib/ActionList2/Divider.d.ts +2 -3
  17. package/lib/ActionList2/Divider.js +5 -10
  18. package/lib/ActionList2/Divider.jsx +22 -0
  19. package/lib/ActionList2/Group.d.ts +2 -28
  20. package/lib/ActionList2/Group.js +6 -55
  21. package/lib/ActionList2/Group.jsx +25 -0
  22. package/lib/ActionList2/Header.d.ts +26 -0
  23. package/lib/ActionList2/Header.js +55 -0
  24. package/lib/ActionList2/Header.jsx +36 -0
  25. package/lib/ActionList2/Item.js +7 -25
  26. package/lib/ActionList2/Item.jsx +174 -0
  27. package/lib/ActionList2/LinkItem.jsx +28 -0
  28. package/lib/ActionList2/List.d.ts +1 -1
  29. package/lib/ActionList2/List.js +2 -11
  30. package/lib/ActionList2/List.jsx +41 -0
  31. package/lib/ActionList2/Selection.js +1 -14
  32. package/lib/ActionList2/Selection.jsx +50 -0
  33. package/lib/ActionList2/Visuals.jsx +48 -0
  34. package/lib/ActionList2/index.d.ts +2 -1
  35. package/lib/ActionList2/index.js +23 -41
  36. package/lib/ActionMenu.jsx +73 -0
  37. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
  38. package/lib/AnchoredOverlay/index.js +4 -12
  39. package/lib/Autocomplete/Autocomplete.d.ts +4 -6
  40. package/lib/Autocomplete/Autocomplete.jsx +100 -0
  41. package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
  42. package/lib/Autocomplete/AutocompleteInput.d.ts +4 -6
  43. package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
  44. package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
  45. package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
  46. package/lib/Autocomplete/index.js +7 -14
  47. package/lib/Avatar.d.ts +2 -1
  48. package/lib/Avatar.js +1 -1
  49. package/lib/Avatar.jsx +34 -0
  50. package/lib/AvatarPair.jsx +29 -0
  51. package/lib/AvatarStack.jsx +151 -0
  52. package/lib/BaseStyles.js +20 -2
  53. package/lib/BaseStyles.jsx +65 -0
  54. package/lib/BorderBox.js +1 -1
  55. package/lib/BorderBox.jsx +18 -0
  56. package/lib/Box.js +1 -1
  57. package/lib/Box.jsx +10 -0
  58. package/lib/BranchName.d.ts +2 -1
  59. package/lib/BranchName.js +1 -1
  60. package/lib/BranchName.jsx +20 -0
  61. package/lib/Breadcrumbs.d.ts +7 -8
  62. package/lib/Breadcrumbs.js +15 -10
  63. package/lib/Breadcrumbs.jsx +74 -0
  64. package/lib/Button/Button.d.ts +5 -5
  65. package/lib/Button/Button.js +7 -3
  66. package/lib/Button/Button.jsx +60 -0
  67. package/lib/Button/ButtonBase.d.ts +8 -5
  68. package/lib/Button/ButtonBase.js +5 -1
  69. package/lib/Button/ButtonBase.jsx +36 -0
  70. package/lib/Button/ButtonClose.d.ts +47 -5
  71. package/lib/Button/ButtonClose.js +1 -1
  72. package/lib/Button/ButtonClose.jsx +55 -0
  73. package/lib/Button/ButtonDanger.d.ts +5 -5
  74. package/lib/Button/ButtonDanger.js +6 -2
  75. package/lib/Button/ButtonDanger.jsx +63 -0
  76. package/lib/Button/ButtonGroup.js +1 -1
  77. package/lib/Button/ButtonGroup.jsx +55 -0
  78. package/lib/Button/ButtonInvisible.d.ts +5 -5
  79. package/lib/Button/ButtonInvisible.js +6 -2
  80. package/lib/Button/ButtonInvisible.jsx +52 -0
  81. package/lib/Button/ButtonOutline.d.ts +5 -5
  82. package/lib/Button/ButtonOutline.js +6 -2
  83. package/lib/Button/ButtonOutline.jsx +63 -0
  84. package/lib/Button/ButtonPrimary.d.ts +5 -5
  85. package/lib/Button/ButtonPrimary.js +6 -2
  86. package/lib/Button/ButtonPrimary.jsx +62 -0
  87. package/lib/Button/ButtonStyles.jsx +37 -0
  88. package/lib/Button/ButtonTableList.d.ts +2 -1
  89. package/lib/Button/ButtonTableList.js +1 -1
  90. package/lib/Button/ButtonTableList.jsx +49 -0
  91. package/lib/Button/index.js +21 -70
  92. package/lib/Caret.jsx +93 -0
  93. package/lib/CircleBadge.d.ts +5 -4
  94. package/lib/CircleBadge.js +1 -1
  95. package/lib/CircleBadge.jsx +43 -0
  96. package/lib/CircleOcticon.d.ts +36 -37
  97. package/lib/CircleOcticon.jsx +21 -0
  98. package/lib/CounterLabel.d.ts +2 -1
  99. package/lib/CounterLabel.js +1 -1
  100. package/lib/CounterLabel.jsx +44 -0
  101. package/lib/Details.d.ts +2 -1
  102. package/lib/Details.js +4 -2
  103. package/lib/Details.jsx +21 -0
  104. package/lib/Dialog/ConfirmationDialog.jsx +146 -0
  105. package/lib/Dialog/Dialog.d.ts +9 -5
  106. package/lib/Dialog/Dialog.js +11 -17
  107. package/lib/Dialog/Dialog.jsx +273 -0
  108. package/lib/Dialog.d.ts +40 -40
  109. package/lib/Dialog.js +1 -1
  110. package/lib/Dialog.jsx +131 -0
  111. package/lib/Dropdown.d.ts +171 -22
  112. package/lib/Dropdown.js +3 -3
  113. package/lib/Dropdown.jsx +134 -0
  114. package/lib/DropdownMenu/DropdownButton.d.ts +49 -9
  115. package/lib/DropdownMenu/DropdownButton.js +1 -3
  116. package/lib/DropdownMenu/DropdownButton.jsx +14 -0
  117. package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
  118. package/lib/DropdownMenu/index.js +6 -20
  119. package/lib/DropdownStyles.js +18 -26
  120. package/lib/EmojiPicker/EmojiPicker.d.ts +17 -0
  121. package/lib/EmojiPicker/EmojiPicker.js +202 -0
  122. package/lib/EmojiPicker/EmojiPicker.jsx +132 -0
  123. package/lib/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
  124. package/lib/EmojiPicker/EmojiPickerAnchor.js +1 -0
  125. package/lib/EmojiPicker/EmojiPickerAnchor.jsx +1 -0
  126. package/lib/EmojiPicker/EmojiPickerPanel.d.ts +3 -0
  127. package/lib/EmojiPicker/EmojiPickerPanel.js +18 -0
  128. package/lib/EmojiPicker/EmojiPickerPanel.jsx +10 -0
  129. package/lib/EmojiPicker/data.d.ts +9 -0
  130. package/lib/EmojiPicker/data.js +7254 -0
  131. package/lib/EmojiPicker/index.d.ts +2 -0
  132. package/lib/EmojiPicker/index.js +8 -0
  133. package/lib/FilterList.d.ts +303 -265
  134. package/lib/FilterList.js +6 -2
  135. package/lib/FilterList.jsx +63 -0
  136. package/lib/FilteredActionList/FilteredActionList.js +1 -1
  137. package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
  138. package/lib/FilteredActionList/index.js +4 -12
  139. package/lib/FilteredSearch.d.ts +2 -1
  140. package/lib/FilteredSearch.js +1 -1
  141. package/lib/FilteredSearch.jsx +29 -0
  142. package/lib/Flash.d.ts +2 -1
  143. package/lib/Flash.js +1 -1
  144. package/lib/Flash.jsx +70 -0
  145. package/lib/Flex.js +1 -1
  146. package/lib/Flex.jsx +15 -0
  147. package/lib/FormGroup.d.ts +5 -4
  148. package/lib/FormGroup.js +2 -2
  149. package/lib/FormGroup.jsx +25 -0
  150. package/lib/Grid.jsx +15 -0
  151. package/lib/Header.d.ts +7 -6
  152. package/lib/Header.js +4 -4
  153. package/lib/Header.jsx +90 -0
  154. package/lib/Heading.d.ts +2 -1
  155. package/lib/Heading.js +6 -1
  156. package/lib/Heading.jsx +21 -0
  157. package/lib/Label.d.ts +2 -1
  158. package/lib/Label.js +3 -2
  159. package/lib/Label.jsx +84 -0
  160. package/lib/LabelGroup.d.ts +2 -1
  161. package/lib/LabelGroup.js +2 -2
  162. package/lib/LabelGroup.jsx +19 -0
  163. package/lib/Link.d.ts +2 -1
  164. package/lib/Link.js +1 -1
  165. package/lib/Link.jsx +38 -0
  166. package/lib/NewButton/button-counter.jsx +14 -0
  167. package/lib/NewButton/button.js +42 -34
  168. package/lib/NewButton/button.jsx +278 -0
  169. package/lib/NewButton/index.js +5 -12
  170. package/lib/NewButton/types.js +2 -1
  171. package/lib/Overlay.d.ts +11 -14
  172. package/lib/Overlay.js +5 -4
  173. package/lib/Overlay.jsx +156 -0
  174. package/lib/Pagehead.d.ts +2 -1
  175. package/lib/Pagehead.js +1 -1
  176. package/lib/Pagehead.jsx +18 -0
  177. package/lib/Pagination/Pagination.js +3 -3
  178. package/lib/Pagination/Pagination.jsx +163 -0
  179. package/lib/Pagination/index.js +6 -12
  180. package/lib/Pagination/model.jsx +174 -0
  181. package/lib/PointerBox.jsx +25 -0
  182. package/lib/Popover.d.ts +5 -4
  183. package/lib/Popover.js +5 -4
  184. package/lib/Popover.jsx +210 -0
  185. package/lib/Portal/Portal.jsx +79 -0
  186. package/lib/Portal/index.js +5 -16
  187. package/lib/Position.d.ts +4 -4
  188. package/lib/Position.js +1 -1
  189. package/lib/Position.jsx +46 -0
  190. package/lib/ProgressBar.d.ts +11 -16
  191. package/lib/ProgressBar.js +10 -6
  192. package/lib/ProgressBar.jsx +39 -0
  193. package/lib/SelectMenu/SelectMenu.d.ts +195 -34
  194. package/lib/SelectMenu/SelectMenu.js +4 -2
  195. package/lib/SelectMenu/SelectMenu.jsx +114 -0
  196. package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
  197. package/lib/SelectMenu/SelectMenuDivider.d.ts +2 -1
  198. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  199. package/lib/SelectMenu/SelectMenuDivider.jsx +43 -0
  200. package/lib/SelectMenu/SelectMenuFilter.js +2 -2
  201. package/lib/SelectMenu/SelectMenuFilter.jsx +59 -0
  202. package/lib/SelectMenu/SelectMenuFooter.d.ts +2 -1
  203. package/lib/SelectMenu/SelectMenuFooter.js +2 -2
  204. package/lib/SelectMenu/SelectMenuFooter.jsx +46 -0
  205. package/lib/SelectMenu/SelectMenuHeader.d.ts +2 -1
  206. package/lib/SelectMenu/SelectMenuHeader.js +1 -1
  207. package/lib/SelectMenu/SelectMenuHeader.jsx +44 -0
  208. package/lib/SelectMenu/SelectMenuItem.d.ts +3 -2
  209. package/lib/SelectMenu/SelectMenuItem.js +2 -2
  210. package/lib/SelectMenu/SelectMenuItem.jsx +143 -0
  211. package/lib/SelectMenu/SelectMenuList.d.ts +2 -1
  212. package/lib/SelectMenu/SelectMenuList.js +1 -1
  213. package/lib/SelectMenu/SelectMenuList.jsx +60 -0
  214. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  215. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +1 -3
  216. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +21 -0
  217. package/lib/SelectMenu/SelectMenuModal.d.ts +3 -2
  218. package/lib/SelectMenu/SelectMenuModal.js +1 -1
  219. package/lib/SelectMenu/SelectMenuModal.jsx +119 -0
  220. package/lib/SelectMenu/SelectMenuTab.d.ts +2 -1
  221. package/lib/SelectMenu/SelectMenuTab.js +2 -2
  222. package/lib/SelectMenu/SelectMenuTab.jsx +93 -0
  223. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +2 -1
  224. package/lib/SelectMenu/SelectMenuTabPanel.js +2 -2
  225. package/lib/SelectMenu/SelectMenuTabPanel.jsx +43 -0
  226. package/lib/SelectMenu/SelectMenuTabs.d.ts +2 -1
  227. package/lib/SelectMenu/SelectMenuTabs.js +2 -2
  228. package/lib/SelectMenu/SelectMenuTabs.jsx +58 -0
  229. package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
  230. package/lib/SelectMenu/index.js +7 -14
  231. package/lib/SelectPanel/SelectPanel.jsx +105 -0
  232. package/lib/SelectPanel/index.js +4 -12
  233. package/lib/SideNav.d.ts +8 -11
  234. package/lib/SideNav.js +15 -8
  235. package/lib/SideNav.jsx +177 -0
  236. package/lib/Spinner.d.ts +2 -1
  237. package/lib/Spinner.js +3 -1
  238. package/lib/Spinner.jsx +35 -0
  239. package/lib/StateLabel.d.ts +2 -1
  240. package/lib/StateLabel.js +6 -7
  241. package/lib/StateLabel.jsx +94 -0
  242. package/lib/StyledOcticon.d.ts +2 -1
  243. package/lib/StyledOcticon.js +4 -2
  244. package/lib/StyledOcticon.jsx +20 -0
  245. package/lib/SubNav.d.ts +11 -5
  246. package/lib/SubNav.js +13 -8
  247. package/lib/SubNav.jsx +104 -0
  248. package/lib/TabNav.d.ts +4 -3
  249. package/lib/TabNav.js +2 -2
  250. package/lib/TabNav.jsx +60 -0
  251. package/lib/Text.jsx +14 -0
  252. package/lib/TextInput.jsx +23 -0
  253. package/lib/TextInputWithTokens.d.ts +4 -6
  254. package/lib/TextInputWithTokens.jsx +218 -0
  255. package/lib/ThemeProvider.d.ts +0 -1
  256. package/lib/ThemeProvider.js +4 -17
  257. package/lib/ThemeProvider.jsx +130 -0
  258. package/lib/Timeline.d.ts +393 -19
  259. package/lib/Timeline.js +17 -20
  260. package/lib/Timeline.jsx +124 -0
  261. package/lib/Token/AvatarToken.d.ts +1 -1
  262. package/lib/Token/AvatarToken.js +1 -1
  263. package/lib/Token/AvatarToken.jsx +54 -0
  264. package/lib/Token/IssueLabelToken.d.ts +1 -1
  265. package/lib/Token/IssueLabelToken.jsx +125 -0
  266. package/lib/Token/Token.d.ts +1 -1
  267. package/lib/Token/Token.jsx +103 -0
  268. package/lib/Token/TokenBase.js +1 -1
  269. package/lib/Token/TokenBase.jsx +88 -0
  270. package/lib/Token/_RemoveTokenButton.jsx +108 -0
  271. package/lib/Token/_TokenTextContainer.jsx +49 -0
  272. package/lib/Token/index.js +11 -30
  273. package/lib/Tooltip.d.ts +2 -1
  274. package/lib/Tooltip.js +2 -2
  275. package/lib/Tooltip.jsx +246 -0
  276. package/lib/Truncate.d.ts +2 -1
  277. package/lib/Truncate.js +3 -1
  278. package/lib/Truncate.jsx +27 -0
  279. package/lib/UnderlineNav.d.ts +3 -2
  280. package/lib/UnderlineNav.js +4 -4
  281. package/lib/UnderlineNav.jsx +90 -0
  282. package/lib/_TextInputWrapper.jsx +120 -0
  283. package/lib/_UnstyledTextInput.jsx +22 -0
  284. package/lib/behaviors/anchoredPosition.js +205 -234
  285. package/lib/behaviors/focusTrap.js +121 -157
  286. package/lib/behaviors/focusZone.js +434 -509
  287. package/lib/behaviors/scrollIntoViewingArea.js +18 -35
  288. package/lib/constants.js +39 -43
  289. package/lib/drafts.d.ts +0 -1
  290. package/lib/drafts.js +20 -43
  291. package/lib/hooks/index.js +16 -60
  292. package/lib/hooks/useAnchoredPosition.js +32 -40
  293. package/lib/hooks/useCombinedRefs.js +32 -36
  294. package/lib/hooks/useDetails.jsx +39 -0
  295. package/lib/hooks/useDialog.js +72 -96
  296. package/lib/hooks/useFocusTrap.js +43 -60
  297. package/lib/hooks/useFocusZone.js +54 -50
  298. package/lib/hooks/useOnEscapePress.js +25 -36
  299. package/lib/hooks/useOnOutsideClick.jsx +61 -0
  300. package/lib/hooks/useOpenAndCloseFocus.js +22 -34
  301. package/lib/hooks/useOverlay.jsx +15 -0
  302. package/lib/hooks/useProvidedRefOrCreate.js +10 -14
  303. package/lib/hooks/useProvidedStateOrCreate.js +13 -16
  304. package/lib/hooks/useRenderForcingRef.js +13 -17
  305. package/lib/hooks/useResizeObserver.js +15 -18
  306. package/lib/hooks/useSafeTimeout.js +22 -30
  307. package/lib/hooks/useScrollFlash.js +16 -23
  308. package/lib/index.d.ts +2 -2
  309. package/lib/index.js +165 -652
  310. package/lib/polyfills/eventListenerSignal.js +37 -45
  311. package/lib/sx.js +10 -22
  312. package/lib/theme-preval.js +64 -3169
  313. package/lib/theme.js +3 -12
  314. package/lib/utils/create-slots.jsx +65 -0
  315. package/lib/utils/deprecate.jsx +59 -0
  316. package/lib/utils/isNumeric.jsx +7 -0
  317. package/lib/utils/iterateFocusableElements.js +63 -85
  318. package/lib/utils/ssr.jsx +6 -0
  319. package/lib/utils/test-deprecations.jsx +20 -0
  320. package/lib/utils/test-helpers.jsx +8 -0
  321. package/lib/utils/test-matchers.jsx +100 -0
  322. package/lib/utils/testing.d.ts +61 -8
  323. package/lib/utils/testing.js +0 -29
  324. package/lib/utils/testing.jsx +206 -0
  325. package/lib/utils/theme.js +33 -47
  326. package/lib/utils/types/AriaRole.js +2 -1
  327. package/lib/utils/types/ComponentProps.js +2 -1
  328. package/lib/utils/types/Flatten.js +2 -1
  329. package/lib/utils/types/KeyPaths.js +2 -1
  330. package/lib/utils/types/MandateProps.js +16 -1
  331. package/lib/utils/types/Merge.js +2 -1
  332. package/lib/utils/types/index.js +16 -69
  333. package/lib/utils/uniqueId.js +5 -8
  334. package/lib/utils/use-force-update.js +8 -14
  335. package/lib/utils/useIsomorphicLayoutEffect.js +8 -11
  336. package/lib/utils/userAgent.js +8 -12
  337. package/lib-esm/ActionList/Header.js +1 -1
  338. package/lib-esm/ActionList/Item.js +66 -41
  339. package/lib-esm/ActionList/List.js +1 -1
  340. package/lib-esm/ActionList2/Divider.d.ts +2 -3
  341. package/lib-esm/ActionList2/Divider.js +5 -8
  342. package/lib-esm/ActionList2/Group.d.ts +2 -28
  343. package/lib-esm/ActionList2/Group.js +5 -52
  344. package/lib-esm/ActionList2/Header.d.ts +26 -0
  345. package/lib-esm/ActionList2/Header.js +44 -0
  346. package/lib-esm/ActionList2/Item.js +7 -23
  347. package/lib-esm/ActionList2/List.d.ts +1 -1
  348. package/lib-esm/ActionList2/List.js +2 -9
  349. package/lib-esm/ActionList2/Selection.js +1 -12
  350. package/lib-esm/ActionList2/index.d.ts +2 -1
  351. package/lib-esm/Autocomplete/Autocomplete.d.ts +4 -6
  352. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +4 -6
  353. package/lib-esm/Avatar.d.ts +2 -1
  354. package/lib-esm/Avatar.js +2 -2
  355. package/lib-esm/BaseStyles.js +20 -2
  356. package/lib-esm/BorderBox.js +1 -1
  357. package/lib-esm/Box.js +1 -1
  358. package/lib-esm/BranchName.d.ts +2 -1
  359. package/lib-esm/BranchName.js +2 -2
  360. package/lib-esm/Breadcrumbs.d.ts +7 -8
  361. package/lib-esm/Breadcrumbs.js +16 -11
  362. package/lib-esm/Button/Button.d.ts +5 -5
  363. package/lib-esm/Button/Button.js +3 -3
  364. package/lib-esm/Button/ButtonBase.d.ts +8 -5
  365. package/lib-esm/Button/ButtonBase.js +3 -1
  366. package/lib-esm/Button/ButtonClose.d.ts +47 -5
  367. package/lib-esm/Button/ButtonClose.js +2 -2
  368. package/lib-esm/Button/ButtonDanger.d.ts +5 -5
  369. package/lib-esm/Button/ButtonDanger.js +2 -2
  370. package/lib-esm/Button/ButtonGroup.js +1 -1
  371. package/lib-esm/Button/ButtonInvisible.d.ts +5 -5
  372. package/lib-esm/Button/ButtonInvisible.js +2 -2
  373. package/lib-esm/Button/ButtonOutline.d.ts +5 -5
  374. package/lib-esm/Button/ButtonOutline.js +2 -2
  375. package/lib-esm/Button/ButtonPrimary.d.ts +5 -5
  376. package/lib-esm/Button/ButtonPrimary.js +2 -2
  377. package/lib-esm/Button/ButtonTableList.d.ts +2 -1
  378. package/lib-esm/Button/ButtonTableList.js +2 -2
  379. package/lib-esm/CircleBadge.d.ts +5 -4
  380. package/lib-esm/CircleBadge.js +2 -2
  381. package/lib-esm/CircleOcticon.d.ts +36 -37
  382. package/lib-esm/CounterLabel.d.ts +2 -1
  383. package/lib-esm/CounterLabel.js +2 -2
  384. package/lib-esm/Details.d.ts +2 -1
  385. package/lib-esm/Details.js +3 -2
  386. package/lib-esm/Dialog/Dialog.d.ts +9 -5
  387. package/lib-esm/Dialog/Dialog.js +12 -12
  388. package/lib-esm/Dialog.d.ts +40 -40
  389. package/lib-esm/Dialog.js +2 -2
  390. package/lib-esm/Dropdown.d.ts +171 -22
  391. package/lib-esm/Dropdown.js +4 -4
  392. package/lib-esm/DropdownMenu/DropdownButton.d.ts +49 -9
  393. package/lib-esm/DropdownMenu/DropdownButton.js +1 -3
  394. package/lib-esm/EmojiPicker/EmojiPicker.d.ts +17 -0
  395. package/lib-esm/EmojiPicker/EmojiPicker.js +181 -0
  396. package/lib-esm/EmojiPicker/EmojiPickerAnchor.d.ts +0 -0
  397. package/lib-esm/EmojiPicker/EmojiPickerAnchor.js +0 -0
  398. package/lib-esm/EmojiPicker/EmojiPickerPanel.d.ts +3 -0
  399. package/lib-esm/EmojiPicker/EmojiPickerPanel.js +8 -0
  400. package/lib-esm/EmojiPicker/data.d.ts +9 -0
  401. package/lib-esm/EmojiPicker/data.js +5434 -0
  402. package/lib-esm/EmojiPicker/index.d.ts +2 -0
  403. package/lib-esm/EmojiPicker/index.js +1 -0
  404. package/lib-esm/FilterList.d.ts +303 -265
  405. package/lib-esm/FilterList.js +7 -3
  406. package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
  407. package/lib-esm/FilteredSearch.d.ts +2 -1
  408. package/lib-esm/FilteredSearch.js +2 -2
  409. package/lib-esm/Flash.d.ts +2 -1
  410. package/lib-esm/Flash.js +2 -2
  411. package/lib-esm/Flex.js +1 -1
  412. package/lib-esm/FormGroup.d.ts +5 -4
  413. package/lib-esm/FormGroup.js +3 -3
  414. package/lib-esm/Header.d.ts +7 -6
  415. package/lib-esm/Header.js +5 -5
  416. package/lib-esm/Heading.d.ts +2 -1
  417. package/lib-esm/Heading.js +6 -2
  418. package/lib-esm/Label.d.ts +2 -1
  419. package/lib-esm/Label.js +4 -3
  420. package/lib-esm/LabelGroup.d.ts +2 -1
  421. package/lib-esm/LabelGroup.js +3 -3
  422. package/lib-esm/Link.d.ts +2 -1
  423. package/lib-esm/Link.js +2 -2
  424. package/lib-esm/NewButton/button.js +42 -31
  425. package/lib-esm/Overlay.d.ts +11 -14
  426. package/lib-esm/Overlay.js +4 -3
  427. package/lib-esm/Pagehead.d.ts +2 -1
  428. package/lib-esm/Pagehead.js +2 -2
  429. package/lib-esm/Pagination/Pagination.js +4 -4
  430. package/lib-esm/Popover.d.ts +5 -4
  431. package/lib-esm/Popover.js +5 -4
  432. package/lib-esm/Position.d.ts +4 -4
  433. package/lib-esm/Position.js +1 -1
  434. package/lib-esm/ProgressBar.d.ts +11 -16
  435. package/lib-esm/ProgressBar.js +11 -7
  436. package/lib-esm/SelectMenu/SelectMenu.d.ts +195 -34
  437. package/lib-esm/SelectMenu/SelectMenu.js +3 -2
  438. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +2 -1
  439. package/lib-esm/SelectMenu/SelectMenuDivider.js +2 -2
  440. package/lib-esm/SelectMenu/SelectMenuFilter.js +3 -3
  441. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +2 -1
  442. package/lib-esm/SelectMenu/SelectMenuFooter.js +3 -3
  443. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +2 -1
  444. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  445. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +3 -2
  446. package/lib-esm/SelectMenu/SelectMenuItem.js +3 -3
  447. package/lib-esm/SelectMenu/SelectMenuList.d.ts +2 -1
  448. package/lib-esm/SelectMenu/SelectMenuList.js +2 -2
  449. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +2 -2
  450. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +2 -3
  451. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +3 -2
  452. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  453. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +2 -1
  454. package/lib-esm/SelectMenu/SelectMenuTab.js +3 -3
  455. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +2 -1
  456. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +3 -3
  457. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +2 -1
  458. package/lib-esm/SelectMenu/SelectMenuTabs.js +3 -3
  459. package/lib-esm/SideNav.d.ts +8 -11
  460. package/lib-esm/SideNav.js +16 -8
  461. package/lib-esm/Spinner.d.ts +2 -1
  462. package/lib-esm/Spinner.js +2 -1
  463. package/lib-esm/StateLabel.d.ts +2 -1
  464. package/lib-esm/StateLabel.js +7 -8
  465. package/lib-esm/StyledOcticon.d.ts +2 -1
  466. package/lib-esm/StyledOcticon.js +3 -2
  467. package/lib-esm/SubNav.d.ts +11 -5
  468. package/lib-esm/SubNav.js +14 -9
  469. package/lib-esm/TabNav.d.ts +4 -3
  470. package/lib-esm/TabNav.js +3 -3
  471. package/lib-esm/TextInputWithTokens.d.ts +4 -6
  472. package/lib-esm/ThemeProvider.d.ts +0 -1
  473. package/lib-esm/ThemeProvider.js +4 -17
  474. package/lib-esm/Timeline.d.ts +393 -19
  475. package/lib-esm/Timeline.js +17 -16
  476. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  477. package/lib-esm/Token/AvatarToken.js +1 -1
  478. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  479. package/lib-esm/Token/Token.d.ts +1 -1
  480. package/lib-esm/Token/TokenBase.js +1 -1
  481. package/lib-esm/Tooltip.d.ts +2 -1
  482. package/lib-esm/Tooltip.js +3 -3
  483. package/lib-esm/Truncate.d.ts +2 -1
  484. package/lib-esm/Truncate.js +2 -1
  485. package/lib-esm/UnderlineNav.d.ts +3 -2
  486. package/lib-esm/UnderlineNav.js +5 -5
  487. package/lib-esm/drafts.d.ts +0 -1
  488. package/lib-esm/drafts.js +1 -2
  489. package/lib-esm/index.d.ts +2 -2
  490. package/lib-esm/index.js +1 -1
  491. package/lib-esm/theme-preval.js +366 -512
  492. package/lib-esm/utils/testing.d.ts +61 -8
  493. package/lib-esm/utils/testing.js +0 -24
  494. package/package.json +13 -20
  495. package/lib/ActionList2/MenuContext.d.ts +0 -10
  496. package/lib/ActionList2/MenuContext.js +0 -15
  497. package/lib/ActionMenu2.d.ts +0 -313
  498. package/lib/ActionMenu2.js +0 -91
  499. package/lib/Checkbox.d.ts +0 -29
  500. package/lib/Checkbox.js +0 -64
  501. package/lib-esm/ActionList2/MenuContext.d.ts +0 -10
  502. package/lib-esm/ActionList2/MenuContext.js +0 -3
  503. package/lib-esm/ActionMenu2.d.ts +0 -313
  504. package/lib-esm/ActionMenu2.js +0 -67
  505. package/lib-esm/Checkbox.d.ts +0 -29
  506. package/lib-esm/Checkbox.js +0 -44
@@ -8,10 +8,43 @@ import Truncate from '../Truncate';
8
8
  import styled from 'styled-components';
9
9
  import { StyledHeader } from './Header';
10
10
  import { StyledDivider } from './Divider';
11
- import { useTheme } from '../ThemeProvider';
11
+ import { useColorSchemeVar, useTheme } from '../ThemeProvider';
12
12
  import { activeDescendantActivatedDirectly, activeDescendantActivatedIndirectly, isActiveDescendantAttribute } from '../behaviors/focusZone';
13
13
  import { useSSRSafeId } from '@react-aria/ssr';
14
14
 
15
+ /**
16
+ * These colors are not yet in our default theme. Need to remove this once they are added.
17
+ */
18
+ const customItemThemes = {
19
+ default: {
20
+ hover: {
21
+ light: 'rgba(46, 77, 108, 0.06)',
22
+ dark: 'rgba(201, 206, 212, 0.12)',
23
+ dark_dimmed: 'rgba(201, 206, 212, 0.12)'
24
+ },
25
+ focus: {
26
+ light: 'rgba(54, 77, 100, 0.16)',
27
+ dark: 'rgba(201, 206, 212, 0.24)',
28
+ dark_dimmed: 'rgba(201, 206, 212, 0.24)'
29
+ }
30
+ },
31
+ danger: {
32
+ hover: {
33
+ light: 'rgba(234, 74, 90, 0.08)',
34
+ dark: 'rgba(248, 81, 73, 0.16)',
35
+ dark_dimmed: 'rgba(248, 81, 73, 0.16)'
36
+ },
37
+ focus: {
38
+ light: 'rgba(234, 74, 90, 0.14)',
39
+ dark: 'rgba(248, 81, 73, 0.24)',
40
+ dark_dimmed: 'rgba(248, 81, 73, 0.24)'
41
+ }
42
+ }
43
+ };
44
+ /**
45
+ * Contract for props passed to the `Item` component.
46
+ */
47
+
15
48
  const getItemVariant = (variant = 'default', disabled) => {
16
49
  if (disabled) {
17
50
  return {
@@ -28,10 +61,7 @@ const getItemVariant = (variant = 'default', disabled) => {
28
61
  color: get('colors.danger.fg'),
29
62
  iconColor: get('colors.danger.fg'),
30
63
  annotationColor: get('colors.fg.muted'),
31
- hoverCursor: 'pointer',
32
- hoverBg: get('colors.actionListItem.danger.hoverBg'),
33
- focusBg: get('colors.actionListItem.danger.activeBg'),
34
- hoverText: get('colors.actionListItem.danger.hoverText')
64
+ hoverCursor: 'pointer'
35
65
  };
36
66
 
37
67
  default:
@@ -39,34 +69,28 @@ const getItemVariant = (variant = 'default', disabled) => {
39
69
  color: get('colors.fg.default'),
40
70
  iconColor: get('colors.fg.muted'),
41
71
  annotationColor: get('colors.fg.muted'),
42
- hoverCursor: 'pointer',
43
- hoverBg: get('colors.actionListItem.default.hoverBg'),
44
- focusBg: get('colors.actionListItem.default.activeBg')
72
+ hoverCursor: 'pointer'
45
73
  };
46
74
  }
47
75
  };
48
76
 
49
77
  const DividedContent = styled.div.withConfig({
50
78
  displayName: "Item__DividedContent",
51
- componentId: "sc-jqpvy8-0"
79
+ componentId: "jqpvy8-0"
52
80
  })(["display:flex;min-width:0;position:relative;flex-grow:1;"]);
53
81
  const MainContent = styled.div.withConfig({
54
82
  displayName: "Item__MainContent",
55
- componentId: "sc-jqpvy8-1"
83
+ componentId: "jqpvy8-1"
56
84
  })(["align-items:baseline;display:flex;min-width:0;flex-direction:var(--main-content-flex-direction);flex-grow:1;"]);
57
85
  const StyledItem = styled.div.withConfig({
58
86
  displayName: "Item__StyledItem",
59
- componentId: "sc-jqpvy8-2"
60
- })(["padding:6px ", ";display:flex;border-radius:", ";color:", ";transition:background 33.333ms linear;text-decoration:none;@media (hover:hover) and (pointer:fine){:hover{background:var( --item-hover-bg-override,", " );color:", ";cursor:", ";}}:not(:first-of-type):not(", " + &):not(", " + &){margin-top:", ";", "::before{content:' ';display:block;position:absolute;width:100%;top:-7px;border:0 solid ", ";border-top-width:", ";}}&:hover ", "::before,:hover + * ", "::before{border-color:var(--item-hover-divider-border-color-override,transparent) !important;}&:focus ", "::before,:focus + * ", "::before,&[", "] ", "::before,[", "] + & ", "::before{border-color:transparent !important;}&[", "='", "']{background:", ";}&[", "='", "']{background:", ";}&:focus{background:", ";outline:none;}&:active{background:", ";}", ""], get('space.2'), get('radii.2'), ({
87
+ componentId: "jqpvy8-2"
88
+ })(["padding:6px ", ";display:flex;border-radius:", ";color:", ";transition:background 33.333ms linear;text-decoration:none;@media (hover:hover) and (pointer:fine){:hover{background:var(--item-hover-bg-override,", ");cursor:", ";}}:not(:first-of-type):not(", " + &):not(", " + &){margin-top:", ";", "::before{content:' ';display:block;position:absolute;width:100%;top:-7px;border:0 solid ", ";border-top-width:", ";}}&:hover ", "::before,:hover + * ", "::before{border-color:var(--item-hover-divider-border-color-override,transparent) !important;}&:focus ", "::before,:focus + * ", "::before,&[", "] ", "::before,[", "] + & ", "::before{border-color:transparent !important;}&[", "='", "']{background:", ";}&[", "='", "']{background:", ";}&:focus{background:", ";outline:none;}&:active{background:", ";}", ""], get('space.2'), get('radii.2'), ({
61
89
  variant,
62
90
  item
63
91
  }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).color, ({
64
- variant,
65
- item
66
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverBg, ({
67
- variant,
68
- item
69
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverText, ({
92
+ hoverBackground
93
+ }) => hoverBackground, ({
70
94
  variant,
71
95
  item
72
96
  }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverCursor, StyledDivider, StyledHeader, ({
@@ -74,52 +98,48 @@ const StyledItem = styled.div.withConfig({
74
98
  }) => showDivider ? `1px` : '0', DividedContent, get('colors.border.muted'), ({
75
99
  showDivider
76
100
  }) => showDivider ? `1px` : '0', DividedContent, DividedContent, DividedContent, DividedContent, isActiveDescendantAttribute, DividedContent, isActiveDescendantAttribute, DividedContent, isActiveDescendantAttribute, activeDescendantActivatedDirectly, ({
77
- variant,
78
- item
79
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, isActiveDescendantAttribute, activeDescendantActivatedIndirectly, ({
80
- variant,
81
- item
82
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverBg, ({
83
- variant,
84
- item
85
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, ({
86
- variant,
87
- item
88
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, sx);
101
+ focusBackground
102
+ }) => focusBackground, isActiveDescendantAttribute, activeDescendantActivatedIndirectly, ({
103
+ hoverBackground
104
+ }) => hoverBackground, ({
105
+ focusBackground
106
+ }) => focusBackground, ({
107
+ focusBackground
108
+ }) => focusBackground, sx);
89
109
  export const TextContainer = styled.span.withConfig({
90
110
  displayName: "Item__TextContainer",
91
- componentId: "sc-jqpvy8-3"
111
+ componentId: "jqpvy8-3"
92
112
  })([""]);
93
113
  const BaseVisualContainer = styled.div.withConfig({
94
114
  displayName: "Item__BaseVisualContainer",
95
- componentId: "sc-jqpvy8-4"
96
- })(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;flex-shrink:0;"], get('space.3'), get('space.2'));
115
+ componentId: "jqpvy8-4"
116
+ })(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;"], get('space.3'), get('space.2'));
97
117
  const ColoredVisualContainer = styled(BaseVisualContainer).withConfig({
98
118
  displayName: "Item__ColoredVisualContainer",
99
- componentId: "sc-jqpvy8-5"
119
+ componentId: "jqpvy8-5"
100
120
  })(["svg{fill:", ";font-size:", ";}"], ({
101
121
  variant,
102
122
  disabled
103
123
  }) => getItemVariant(variant, disabled).iconColor, get('fontSizes.0'));
104
124
  const LeadingVisualContainer = styled(ColoredVisualContainer).withConfig({
105
125
  displayName: "Item__LeadingVisualContainer",
106
- componentId: "sc-jqpvy8-6"
107
- })(["display:flex;flex-direction:column;justify-content:center;"]);
126
+ componentId: "jqpvy8-6"
127
+ })(["flex-shrink:0;display:flex;flex-direction:column;justify-content:center;"]);
108
128
  const TrailingContent = styled(ColoredVisualContainer).withConfig({
109
129
  displayName: "Item__TrailingContent",
110
- componentId: "sc-jqpvy8-7"
130
+ componentId: "jqpvy8-7"
111
131
  })(["color:", "};margin-left:", ";margin-right:0;width:auto;div:nth-child(2){margin-left:", ";}"], ({
112
132
  variant,
113
133
  disabled
114
134
  }) => getItemVariant(variant, disabled).annotationColor, get('space.2'), get('space.2'));
115
135
  const DescriptionContainer = styled.span.withConfig({
116
136
  displayName: "Item__DescriptionContainer",
117
- componentId: "sc-jqpvy8-8"
137
+ componentId: "jqpvy8-8"
118
138
  })(["color:", ";font-size:", ";line-height:16px;margin-left:var(--description-container-margin-left);min-width:0;flex-grow:1;flex-basis:var(--description-container-flex-basis);"], get('colors.fg.muted'), get('fontSizes.0'));
119
139
  const MultiSelectIcon = styled.svg.withConfig({
120
140
  displayName: "Item__MultiSelectIcon",
121
- componentId: "sc-jqpvy8-9"
122
- })(["rect{fill:", ";stroke:", ";shape-rendering:auto;}path{fill:", ";boxshadow:", ";opacity:", ";}"], ({
141
+ componentId: "jqpvy8-9"
142
+ })(["rect{fill:", ";stroke:", ";}path{fill:", ";boxshadow:", ";opacity:", ";}"], ({
123
143
  selected
124
144
  }) => selected ? get('colors.accent.fg') : get('colors.canvas.default'), ({
125
145
  selected
@@ -176,6 +196,9 @@ export const Item = /*#__PURE__*/React.forwardRef((itemProps, ref) => {
176
196
  onAction === null || onAction === void 0 ? void 0 : onAction(itemProps, event);
177
197
  }
178
198
  }, [onAction, disabled, itemProps, onClick]);
199
+ const customItemTheme = customItemThemes[variant];
200
+ const hoverBackground = useColorSchemeVar(customItemTheme.hover, 'inherit');
201
+ const focusBackground = useColorSchemeVar(customItemTheme.focus, 'inherit');
179
202
  const {
180
203
  theme
181
204
  } = useTheme();
@@ -191,7 +214,9 @@ export const Item = /*#__PURE__*/React.forwardRef((itemProps, ref) => {
191
214
  }, props, {
192
215
  "data-id": id,
193
216
  onKeyPress: keyPressHandler,
194
- onClick: clickHandler
217
+ onClick: clickHandler,
218
+ hoverBackground: disabled ? 'inherit' : hoverBackground,
219
+ focusBackground: disabled ? 'inherit' : focusBackground
195
220
  }), !!selected === selected && /*#__PURE__*/React.createElement(BaseVisualContainer, null, selectionVariant === 'multiple' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MultiSelectIcon, {
196
221
  selected: selected,
197
222
  width: "16",
@@ -22,7 +22,7 @@ function isGroupedListProps(props) {
22
22
 
23
23
  const StyledList = styled.div.withConfig({
24
24
  displayName: "List__StyledList",
25
- componentId: "sc-yr2k7d-0"
25
+ componentId: "yr2k7d-0"
26
26
  })(["font-size:", ";line-height:20px;&[", "],&:focus-within{--item-hover-bg-override:none;--item-hover-divider-border-color-override:", ";}"], get('fontSizes.1'), hasActiveDescendantAttribute, get('colors.border.muted'));
27
27
  /**
28
28
  * Returns `sx` prop values for `List` children matching the given `List` style variation.
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { SxProp } from '../sx';
1
+ /// <reference types="react" />
3
2
  /**
4
3
  * Visually separates `Item`s or `Group`s in an `ActionList`.
5
4
  */
6
- export declare const Divider: React.FC<SxProp>;
5
+ export declare function Divider(): JSX.Element;
@@ -1,26 +1,23 @@
1
1
  import React from 'react';
2
2
  import Box from '../Box';
3
3
  import { get } from '../constants';
4
- import { merge } from '../sx';
4
+
5
5
  /**
6
6
  * Visually separates `Item`s or `Group`s in an `ActionList`.
7
7
  */
8
-
9
- export const Divider = ({
10
- sx = {}
11
- }) => {
8
+ export function Divider() {
12
9
  return /*#__PURE__*/React.createElement(Box, {
13
10
  as: "li",
14
11
  role: "separator",
15
- sx: merge({
12
+ sx: {
16
13
  height: 1,
17
14
  backgroundColor: 'actionListItem.inlineDivider',
18
15
  marginTop: theme => `calc(${get('space.2')(theme)} - 1px)`,
19
16
  marginBottom: 2,
20
17
  listStyle: 'none' // hide the ::marker inserted by browser's stylesheet
21
18
 
22
- }, sx),
19
+ },
23
20
  "data-component": "ActionList.Divider"
24
21
  });
25
- };
22
+ }
26
23
  Divider.displayName = "Divider";
@@ -1,37 +1,11 @@
1
1
  import React from 'react';
2
2
  import { SxProp } from '../sx';
3
+ import { HeaderProps } from './Header';
3
4
  import { ListProps } from './List';
4
- import { AriaRole } from '../utils/types';
5
- export declare type GroupProps = {
6
- /**
7
- * Style variations. Usage is discretionary.
8
- *
9
- * - `"filled"` - Superimposed on a background, offset from nearby content
10
- * - `"subtle"` - Relatively less offset from nearby content
11
- */
12
- variant?: 'subtle' | 'filled';
13
- /**
14
- * Primary text which names a `Group`.
15
- */
16
- title?: string;
17
- /**
18
- * Secondary text which provides additional information about a `Group`.
19
- */
20
- auxiliaryText?: string;
21
- /**
22
- * The ARIA role describing the function of the list inside `Group` component. `listbox` or `menu` are a common values.
23
- */
24
- role?: AriaRole;
25
- } & SxProp & {
26
- /**
27
- * Whether multiple Items or a single Item can be selected in the Group. Overrides value on ActionList root.
28
- */
5
+ export declare type GroupProps = HeaderProps & SxProp & {
29
6
  selectionVariant?: ListProps['selectionVariant'] | false;
30
7
  };
31
8
  declare type ContextProps = Pick<GroupProps, 'selectionVariant'>;
32
9
  export declare const GroupContext: React.Context<ContextProps>;
33
10
  export declare const Group: React.FC<GroupProps>;
34
- export declare type HeaderProps = Pick<GroupProps, 'variant' | 'title' | 'auxiliaryText'> & {
35
- labelId: string;
36
- };
37
11
  export {};
@@ -1,20 +1,17 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  import React from 'react';
4
- import { useSSRSafeId } from '@react-aria/ssr';
5
4
  import Box from '../Box';
6
- import { ListContext } from './List';
5
+ import { Header } from './Header';
7
6
  export const GroupContext = /*#__PURE__*/React.createContext({});
8
7
  export const Group = ({
9
8
  title,
10
- variant = 'subtle',
9
+ variant,
11
10
  auxiliaryText,
12
11
  selectionVariant,
13
- role,
14
12
  sx = {},
15
13
  ...props
16
14
  }) => {
17
- const labelId = useSSRSafeId();
18
15
  return /*#__PURE__*/React.createElement(Box, _extends({
19
16
  as: "li",
20
17
  sx: {
@@ -28,8 +25,7 @@ export const Group = ({
28
25
  }, props), title && /*#__PURE__*/React.createElement(Header, {
29
26
  title: title,
30
27
  variant: variant,
31
- auxiliaryText: auxiliaryText,
32
- labelId: labelId
28
+ auxiliaryText: auxiliaryText
33
29
  }), /*#__PURE__*/React.createElement(GroupContext.Provider, {
34
30
  value: {
35
31
  selectionVariant
@@ -38,50 +34,7 @@ export const Group = ({
38
34
  as: "ul",
39
35
  sx: {
40
36
  paddingInlineStart: 0
41
- },
42
- "aria-labelledby": title ? labelId : undefined,
43
- role: role
37
+ }
44
38
  }, props.children)));
45
39
  };
46
- Group.displayName = "Group";
47
-
48
- /**
49
- * Displays the name and description of a `Group`.
50
- *
51
- * For visual presentation only. It's hidden from screen readers.
52
- */
53
- const Header = ({
54
- variant,
55
- title,
56
- auxiliaryText,
57
- labelId,
58
- ...props
59
- }) => {
60
- const {
61
- variant: listVariant
62
- } = React.useContext(ListContext);
63
- const styles = {
64
- paddingY: '6px',
65
- paddingX: listVariant === 'full' ? 2 : 3,
66
- fontSize: 0,
67
- fontWeight: 'bold',
68
- color: 'fg.muted',
69
- ...(variant === 'filled' && {
70
- backgroundColor: 'canvas.subtle',
71
- marginX: 0,
72
- marginBottom: 2,
73
- borderTop: '1px solid',
74
- borderBottom: '1px solid',
75
- borderColor: 'neutral.muted'
76
- })
77
- };
78
- return /*#__PURE__*/React.createElement(Box, _extends({
79
- sx: styles,
80
- role: "presentation",
81
- "aria-hidden": "true"
82
- }, props), /*#__PURE__*/React.createElement("span", {
83
- id: labelId
84
- }, title), auxiliaryText && /*#__PURE__*/React.createElement("span", null, auxiliaryText));
85
- };
86
-
87
- Header.displayName = "Header";
40
+ Group.displayName = "Group";
@@ -0,0 +1,26 @@
1
+ /// <reference types="react" />
2
+ import { SxProp } from '../sx';
3
+ /**
4
+ * Contract for props passed to the `Header` component.
5
+ */
6
+ export declare type HeaderProps = {
7
+ /**
8
+ * Style variations. Usage is discretionary.
9
+ *
10
+ * - `"filled"` - Superimposed on a background, offset from nearby content
11
+ * - `"subtle"` - Relatively less offset from nearby content
12
+ */
13
+ variant?: 'subtle' | 'filled';
14
+ /**
15
+ * Primary text which names a `Group`.
16
+ */
17
+ title?: string;
18
+ /**
19
+ * Secondary text which provides additional information about a `Group`.
20
+ */
21
+ auxiliaryText?: string;
22
+ } & SxProp;
23
+ /**
24
+ * Displays the name and description of a `Group`.
25
+ */
26
+ export declare const Header: ({ variant, title, auxiliaryText, sx, ...props }: HeaderProps) => JSX.Element;
@@ -0,0 +1,44 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import Box from '../Box';
5
+ import { ListContext } from './List';
6
+ /**
7
+ * Contract for props passed to the `Header` component.
8
+ */
9
+
10
+ /**
11
+ * Displays the name and description of a `Group`.
12
+ */
13
+ export const Header = ({
14
+ variant = 'subtle',
15
+ title,
16
+ auxiliaryText,
17
+ sx = {},
18
+ ...props
19
+ }) => {
20
+ const {
21
+ variant: listVariant
22
+ } = React.useContext(ListContext);
23
+ const styles = {
24
+ paddingY: '6px',
25
+ paddingX: listVariant === 'full' ? 2 : 3,
26
+ fontSize: 0,
27
+ fontWeight: 'bold',
28
+ color: 'fg.muted',
29
+ ...(variant === 'filled' && {
30
+ backgroundColor: 'canvas.subtle',
31
+ marginX: 0,
32
+ marginBottom: 2,
33
+ borderTop: '1px solid',
34
+ borderBottom: '1px solid',
35
+ borderColor: 'neutral.muted'
36
+ }),
37
+ ...sx
38
+ };
39
+ return /*#__PURE__*/React.createElement(Box, _extends({
40
+ sx: styles,
41
+ role: "heading"
42
+ }, props), title, auxiliaryText && /*#__PURE__*/React.createElement("span", null, auxiliaryText));
43
+ };
44
+ Header.displayName = "Header";
@@ -8,7 +8,6 @@ import Box from '../Box';
8
8
  import sx, { merge } from '../sx';
9
9
  import createSlots from '../utils/create-slots';
10
10
  import { ListContext } from './List';
11
- import { MenuContext } from './MenuContext';
12
11
  import { Selection } from './Selection';
13
12
  export const getVariantStyles = (variant, disabled) => {
14
13
  if (disabled) {
@@ -44,7 +43,7 @@ const {
44
43
  export { Slot };
45
44
  const LiBox = styled.li.withConfig({
46
45
  displayName: "Item__LiBox",
47
- componentId: "sc-c3scat-0"
46
+ componentId: "c3scat-0"
48
47
  })(sx);
49
48
  export const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
50
49
 
@@ -52,10 +51,9 @@ export const Item = /*#__PURE__*/React.forwardRef(({
52
51
  variant = 'default',
53
52
  disabled = false,
54
53
  selected = undefined,
55
- onSelect,
54
+ onSelect = () => null,
56
55
  sx: sxProp = {},
57
56
  id,
58
- role,
59
57
  _PrivateItemWrapper,
60
58
  ...props
61
59
  }, forwardedRef) => {
@@ -63,10 +61,6 @@ export const Item = /*#__PURE__*/React.forwardRef(({
63
61
  variant: listVariant,
64
62
  showDividers
65
63
  } = React.useContext(ListContext);
66
- const {
67
- itemRole,
68
- afterSelect
69
- } = React.useContext(MenuContext);
70
64
  const {
71
65
  theme
72
66
  } = useTheme();
@@ -139,25 +133,16 @@ export const Item = /*#__PURE__*/React.forwardRef(({
139
133
  }
140
134
  };
141
135
  const clickHandler = React.useCallback(event => {
142
- if (typeof onSelect !== 'function') return;
143
136
  if (disabled) return;
144
-
145
- if (!event.defaultPrevented) {
146
- onSelect(event); // if this Item is inside a Menu, close the Menu
147
-
148
- if (typeof afterSelect === 'function') afterSelect();
149
- }
150
- }, [onSelect, disabled, afterSelect]);
137
+ if (!event.defaultPrevented) onSelect(event);
138
+ }, [onSelect, disabled]);
151
139
  const keyPressHandler = React.useCallback(event => {
152
- if (typeof onSelect !== 'function') return;
153
140
  if (disabled) return;
154
141
 
155
142
  if (!event.defaultPrevented && [' ', 'Enter'].includes(event.key)) {
156
- onSelect(event); // if this Item is inside a Menu, close the Menu
157
-
158
- if (typeof afterSelect === 'function') afterSelect();
143
+ onSelect(event);
159
144
  }
160
- }, [onSelect, disabled, afterSelect]); // use props.id if provided, otherwise generate one.
145
+ }, [onSelect, disabled]); // use props.id if provided, otherwise generate one.
161
146
 
162
147
  const labelId = useSSRSafeId(id);
163
148
  const inlineDescriptionId = useSSRSafeId(id && `${id}--inline-description`);
@@ -179,8 +164,7 @@ export const Item = /*#__PURE__*/React.forwardRef(({
179
164
  "aria-disabled": disabled ? true : undefined,
180
165
  tabIndex: disabled || _PrivateItemWrapper ? undefined : 0,
181
166
  "aria-labelledby": `${labelId} ${slots.InlineDescription ? inlineDescriptionId : ''}`,
182
- "aria-describedby": slots.BlockDescription ? blockDescriptionId : undefined,
183
- role: role || itemRole
167
+ "aria-describedby": slots.BlockDescription ? blockDescriptionId : undefined
184
168
  }, props), /*#__PURE__*/React.createElement(ItemWrapper, null, /*#__PURE__*/React.createElement(Selection, {
185
169
  selected: selected
186
170
  }), slots.LeadingVisual, /*#__PURE__*/React.createElement(Box, {
@@ -20,7 +20,7 @@ export declare type ListProps = {
20
20
  */
21
21
  role?: AriaRole;
22
22
  } & SxProp;
23
- declare type ContextProps = Pick<ListProps, 'variant' | 'selectionVariant' | 'showDividers'>;
23
+ declare type ContextProps = Omit<ListProps, 'sx'>;
24
24
  export declare const ListContext: React.Context<ContextProps>;
25
25
  export declare const List: PolymorphicForwardRefComponent<"ul", ListProps>;
26
26
  export {};
@@ -3,17 +3,15 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
3
3
  import React from 'react';
4
4
  import styled from 'styled-components';
5
5
  import sx, { merge } from '../sx';
6
- import { MenuContext } from './MenuContext';
7
6
  export const ListContext = /*#__PURE__*/React.createContext({});
8
7
  const ListBox = styled.ul.withConfig({
9
8
  displayName: "List__ListBox",
10
- componentId: "sc-cvbq60-0"
9
+ componentId: "cvbq60-0"
11
10
  })(sx);
12
11
  export const List = /*#__PURE__*/React.forwardRef(({
13
12
  variant = 'inset',
14
13
  selectionVariant,
15
14
  showDividers = false,
16
- role,
17
15
  sx: sxProp = {},
18
16
  ...props
19
17
  }, forwardedRef) => {
@@ -23,14 +21,9 @@ export const List = /*#__PURE__*/React.forwardRef(({
23
21
  // reset ul styles
24
22
  paddingY: variant === 'inset' ? 2 : 0
25
23
  };
26
- /** if list is inside a Menu, it will get a role from the Menu */
27
-
28
- const {
29
- listRole
30
- } = React.useContext(MenuContext);
31
24
  return /*#__PURE__*/React.createElement(ListBox, _extends({
32
25
  sx: merge(styles, sxProp),
33
- role: role || listRole
26
+ "aria-multiselectable": selectionVariant === 'multiple' ? true : undefined
34
27
  }, props, {
35
28
  ref: forwardedRef
36
29
  }), /*#__PURE__*/React.createElement(ListContext.Provider, {
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import { CheckIcon } from '@primer/octicons-react';
3
3
  import { ListContext } from './List';
4
4
  import { GroupContext } from './Group';
5
- import { MenuContext } from './MenuContext';
6
5
  import { LeadingVisualContainer } from './Visuals';
7
6
  export const Selection = ({
8
7
  selected
@@ -13,9 +12,6 @@ export const Selection = ({
13
12
  const {
14
13
  selectionVariant: groupSelectionVariant
15
14
  } = React.useContext(GroupContext);
16
- const {
17
- parent
18
- } = React.useContext(MenuContext);
19
15
  /** selectionVariant in Group can override the selectionVariant in List root */
20
16
 
21
17
  const selectionVariant = typeof groupSelectionVariant !== 'undefined' ? groupSelectionVariant : listSelectionVariant; // if selectionVariant is not set on List, don't show selection
@@ -26,11 +22,6 @@ export const Selection = ({
26
22
  return null;
27
23
  }
28
24
 
29
- if (parent === 'ActionMenu') {
30
- throw new Error('ActionList cannot have a selectionVariant inside ActionMenu, please use DropdownMenu or SelectPanel instead. More information: https://primer.style/design/components/action-list#application');
31
- return null;
32
- }
33
-
34
25
  if (selectionVariant === 'single') {
35
26
  return /*#__PURE__*/React.createElement(LeadingVisualContainer, null, selected && /*#__PURE__*/React.createElement(CheckIcon, null));
36
27
  }
@@ -46,9 +37,7 @@ export const Selection = ({
46
37
  sx: {
47
38
  rect: {
48
39
  fill: selected ? 'accent.fg' : 'canvas.default',
49
- stroke: selected ? 'accent.fg' : 'border.default',
50
- shapeRendering: 'auto' // this is a workaround to override global style in github/github, see primer/react#1666
51
-
40
+ stroke: selected ? 'accent.fg' : 'border.default'
52
41
  },
53
42
  path: {
54
43
  fill: 'fg.onEmphasis',
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ import { Divider } from './Divider';
2
3
  export type { ListProps as ActionListProps } from './List';
3
4
  export type { GroupProps } from './Group';
4
5
  export type { ItemProps } from './Item';
@@ -25,7 +26,7 @@ export declare const ActionList: import("@radix-ui/react-polymorphic").ForwardRe
25
26
  referrerPolicy?: import("react").HTMLAttributeReferrerPolicy | undefined;
26
27
  }>;
27
28
  /** Visually separates `Item`s or `Group`s in an `ActionList`. */
28
- Divider: import("react").FC<import("../sx").SxProp>;
29
+ Divider: typeof Divider;
29
30
  /** Secondary text which provides additional information about an `Item`. */
30
31
  Description: import("react").FC<import("./Description").DescriptionProps>;
31
32
  /** Icon (or similar) positioned before `Item` text. */