@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
@@ -0,0 +1,29 @@
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.Divider = exports.StyledDivider = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const constants_1 = require("../constants");
10
+ exports.StyledDivider = styled_components_1.default.div `
11
+ height: 1px;
12
+ background: ${constants_1.get('colors.border.muted')};
13
+ margin-top: calc(${constants_1.get('space.2')} - 1px);
14
+ margin-bottom: ${constants_1.get('space.2')};
15
+ `;
16
+ /**
17
+ * Visually separates `Item`s or `Group`s in an `ActionList`.
18
+ */
19
+ function Divider() {
20
+ return <exports.StyledDivider />;
21
+ }
22
+ exports.Divider = Divider;
23
+ /**
24
+ * `Divider` fulfills the `ItemPropsWithCustomRenderer` contract,
25
+ * so it can be used inline in an `ActionList`’s `items` prop.
26
+ * In other words, `items={[ActionList.Divider]}` is supported as a concise
27
+ * alternative to `items={[{renderItem: () => <ActionList.Divider />}]}`.
28
+ */
29
+ Divider.renderItem = Divider;
@@ -0,0 +1,23 @@
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.Group = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const sx_1 = __importDefault(require("../sx"));
10
+ const Header_1 = require("./Header");
11
+ const StyledGroup = styled_components_1.default.div `
12
+ ${sx_1.default}
13
+ `;
14
+ /**
15
+ * Collects related `Items` in an `ActionList`.
16
+ */
17
+ function Group({ header, items, ...props }) {
18
+ return (<StyledGroup {...props}>
19
+ {header && <Header_1.Header {...header}/>}
20
+ {items}
21
+ </StyledGroup>);
22
+ }
23
+ exports.Group = Group;
@@ -24,7 +24,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
24
24
 
25
25
  const StyledHeader = _styledComponents.default.div.withConfig({
26
26
  displayName: "Header__StyledHeader",
27
- componentId: "sc-qmofje-0"
27
+ componentId: "qmofje-0"
28
28
  })(["{}padding:6px ", ";font-size:", ";font-weight:", ";color:", ";", " ", ""], (0, _constants.get)('space.3'), (0, _constants.get)('fontSizes.0'), (0, _constants.get)('fontWeights.bold'), (0, _constants.get)('colors.fg.muted'), ({
29
29
  variant
30
30
  }) => variant === 'filled' && (0, _styledComponents.css)(["background:", ";margin:", " 0;border-top:1px solid ", ";border-bottom:1px solid ", ";&:first-child{margin-top:0;}"], (0, _constants.get)('colors.canvas.subtle'), (0, _constants.get)('space.2'), (0, _constants.get)('colors.neutral.muted'), (0, _constants.get)('colors.neutral.muted')), _sx.default);
@@ -0,0 +1,66 @@
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.Header = exports.StyledHeader = void 0;
26
+ const react_1 = __importDefault(require("react"));
27
+ const styled_components_1 = __importStar(require("styled-components"));
28
+ const constants_1 = require("../constants");
29
+ const sx_1 = __importDefault(require("../sx"));
30
+ exports.StyledHeader = styled_components_1.default.div `
31
+ {
32
+ /* 6px vertical padding + 20px line height = 32px total height
33
+ *
34
+ * TODO: When rem-based spacing on a 4px scale lands, replace
35
+ * hardcoded '6px' with 'calc((${constants_1.get('space.s32')} - ${constants_1.get('space.20')}) / 2)'.
36
+ */
37
+ }
38
+ padding: 6px ${constants_1.get('space.3')};
39
+ font-size: ${constants_1.get('fontSizes.0')};
40
+ font-weight: ${constants_1.get('fontWeights.bold')};
41
+ color: ${constants_1.get('colors.fg.muted')};
42
+
43
+ ${({ variant }) => variant === 'filled' &&
44
+ styled_components_1.css `
45
+ background: ${constants_1.get('colors.canvas.subtle')};
46
+ margin: ${constants_1.get('space.2')} 0;
47
+ border-top: 1px solid ${constants_1.get('colors.neutral.muted')};
48
+ border-bottom: 1px solid ${constants_1.get('colors.neutral.muted')};
49
+
50
+ &:first-child {
51
+ margin-top: 0;
52
+ }
53
+ `}
54
+
55
+ ${sx_1.default}
56
+ `;
57
+ /**
58
+ * Displays the name and description of a `Group`.
59
+ */
60
+ function Header({ variant = 'subtle', title, auxiliaryText, children: _children, ...props }) {
61
+ return (<exports.StyledHeader role="heading" variant={variant} {...props}>
62
+ {title}
63
+ {auxiliaryText && <span>{auxiliaryText}</span>}
64
+ </exports.StyledHeader>);
65
+ }
66
+ exports.Header = Header;
@@ -35,6 +35,39 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
35
35
 
36
36
  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); }
37
37
 
38
+ /**
39
+ * These colors are not yet in our default theme. Need to remove this once they are added.
40
+ */
41
+ const customItemThemes = {
42
+ default: {
43
+ hover: {
44
+ light: 'rgba(46, 77, 108, 0.06)',
45
+ dark: 'rgba(201, 206, 212, 0.12)',
46
+ dark_dimmed: 'rgba(201, 206, 212, 0.12)'
47
+ },
48
+ focus: {
49
+ light: 'rgba(54, 77, 100, 0.16)',
50
+ dark: 'rgba(201, 206, 212, 0.24)',
51
+ dark_dimmed: 'rgba(201, 206, 212, 0.24)'
52
+ }
53
+ },
54
+ danger: {
55
+ hover: {
56
+ light: 'rgba(234, 74, 90, 0.08)',
57
+ dark: 'rgba(248, 81, 73, 0.16)',
58
+ dark_dimmed: 'rgba(248, 81, 73, 0.16)'
59
+ },
60
+ focus: {
61
+ light: 'rgba(234, 74, 90, 0.14)',
62
+ dark: 'rgba(248, 81, 73, 0.24)',
63
+ dark_dimmed: 'rgba(248, 81, 73, 0.24)'
64
+ }
65
+ }
66
+ };
67
+ /**
68
+ * Contract for props passed to the `Item` component.
69
+ */
70
+
38
71
  const getItemVariant = (variant = 'default', disabled) => {
39
72
  if (disabled) {
40
73
  return {
@@ -51,10 +84,7 @@ const getItemVariant = (variant = 'default', disabled) => {
51
84
  color: (0, _constants.get)('colors.danger.fg'),
52
85
  iconColor: (0, _constants.get)('colors.danger.fg'),
53
86
  annotationColor: (0, _constants.get)('colors.fg.muted'),
54
- hoverCursor: 'pointer',
55
- hoverBg: (0, _constants.get)('colors.actionListItem.danger.hoverBg'),
56
- focusBg: (0, _constants.get)('colors.actionListItem.danger.activeBg'),
57
- hoverText: (0, _constants.get)('colors.actionListItem.danger.hoverText')
87
+ hoverCursor: 'pointer'
58
88
  };
59
89
 
60
90
  default:
@@ -62,36 +92,30 @@ const getItemVariant = (variant = 'default', disabled) => {
62
92
  color: (0, _constants.get)('colors.fg.default'),
63
93
  iconColor: (0, _constants.get)('colors.fg.muted'),
64
94
  annotationColor: (0, _constants.get)('colors.fg.muted'),
65
- hoverCursor: 'pointer',
66
- hoverBg: (0, _constants.get)('colors.actionListItem.default.hoverBg'),
67
- focusBg: (0, _constants.get)('colors.actionListItem.default.activeBg')
95
+ hoverCursor: 'pointer'
68
96
  };
69
97
  }
70
98
  };
71
99
 
72
100
  const DividedContent = _styledComponents.default.div.withConfig({
73
101
  displayName: "Item__DividedContent",
74
- componentId: "sc-jqpvy8-0"
102
+ componentId: "jqpvy8-0"
75
103
  })(["display:flex;min-width:0;position:relative;flex-grow:1;"]);
76
104
 
77
105
  const MainContent = _styledComponents.default.div.withConfig({
78
106
  displayName: "Item__MainContent",
79
- componentId: "sc-jqpvy8-1"
107
+ componentId: "jqpvy8-1"
80
108
  })(["align-items:baseline;display:flex;min-width:0;flex-direction:var(--main-content-flex-direction);flex-grow:1;"]);
81
109
 
82
110
  const StyledItem = _styledComponents.default.div.withConfig({
83
111
  displayName: "Item__StyledItem",
84
- componentId: "sc-jqpvy8-2"
85
- })(["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:", ";}", ""], (0, _constants.get)('space.2'), (0, _constants.get)('radii.2'), ({
112
+ componentId: "jqpvy8-2"
113
+ })(["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:", ";}", ""], (0, _constants.get)('space.2'), (0, _constants.get)('radii.2'), ({
86
114
  variant,
87
115
  item
88
116
  }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).color, ({
89
- variant,
90
- item
91
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverBg, ({
92
- variant,
93
- item
94
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverText, ({
117
+ hoverBackground
118
+ }) => hoverBackground, ({
95
119
  variant,
96
120
  item
97
121
  }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverCursor, _Divider.StyledDivider, _Header.StyledHeader, ({
@@ -99,45 +123,41 @@ const StyledItem = _styledComponents.default.div.withConfig({
99
123
  }) => showDivider ? `1px` : '0', DividedContent, (0, _constants.get)('colors.border.muted'), ({
100
124
  showDivider
101
125
  }) => showDivider ? `1px` : '0', DividedContent, DividedContent, DividedContent, DividedContent, _focusZone.isActiveDescendantAttribute, DividedContent, _focusZone.isActiveDescendantAttribute, DividedContent, _focusZone.isActiveDescendantAttribute, _focusZone.activeDescendantActivatedDirectly, ({
102
- variant,
103
- item
104
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, _focusZone.isActiveDescendantAttribute, _focusZone.activeDescendantActivatedIndirectly, ({
105
- variant,
106
- item
107
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).hoverBg, ({
108
- variant,
109
- item
110
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, ({
111
- variant,
112
- item
113
- }) => getItemVariant(variant, item === null || item === void 0 ? void 0 : item.disabled).focusBg, _sx.default);
126
+ focusBackground
127
+ }) => focusBackground, _focusZone.isActiveDescendantAttribute, _focusZone.activeDescendantActivatedIndirectly, ({
128
+ hoverBackground
129
+ }) => hoverBackground, ({
130
+ focusBackground
131
+ }) => focusBackground, ({
132
+ focusBackground
133
+ }) => focusBackground, _sx.default);
114
134
 
115
135
  const TextContainer = _styledComponents.default.span.withConfig({
116
136
  displayName: "Item__TextContainer",
117
- componentId: "sc-jqpvy8-3"
137
+ componentId: "jqpvy8-3"
118
138
  })([""]);
119
139
 
120
140
  exports.TextContainer = TextContainer;
121
141
 
122
142
  const BaseVisualContainer = _styledComponents.default.div.withConfig({
123
143
  displayName: "Item__BaseVisualContainer",
124
- componentId: "sc-jqpvy8-4"
125
- })(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;flex-shrink:0;"], (0, _constants.get)('space.3'), (0, _constants.get)('space.2'));
144
+ componentId: "jqpvy8-4"
145
+ })(["height:20px;width:", ";margin-right:", ";display:flex;justify-content:center;align-items:center;"], (0, _constants.get)('space.3'), (0, _constants.get)('space.2'));
126
146
 
127
147
  const ColoredVisualContainer = (0, _styledComponents.default)(BaseVisualContainer).withConfig({
128
148
  displayName: "Item__ColoredVisualContainer",
129
- componentId: "sc-jqpvy8-5"
149
+ componentId: "jqpvy8-5"
130
150
  })(["svg{fill:", ";font-size:", ";}"], ({
131
151
  variant,
132
152
  disabled
133
153
  }) => getItemVariant(variant, disabled).iconColor, (0, _constants.get)('fontSizes.0'));
134
154
  const LeadingVisualContainer = (0, _styledComponents.default)(ColoredVisualContainer).withConfig({
135
155
  displayName: "Item__LeadingVisualContainer",
136
- componentId: "sc-jqpvy8-6"
137
- })(["display:flex;flex-direction:column;justify-content:center;"]);
156
+ componentId: "jqpvy8-6"
157
+ })(["flex-shrink:0;display:flex;flex-direction:column;justify-content:center;"]);
138
158
  const TrailingContent = (0, _styledComponents.default)(ColoredVisualContainer).withConfig({
139
159
  displayName: "Item__TrailingContent",
140
- componentId: "sc-jqpvy8-7"
160
+ componentId: "jqpvy8-7"
141
161
  })(["color:", "};margin-left:", ";margin-right:0;width:auto;div:nth-child(2){margin-left:", ";}"], ({
142
162
  variant,
143
163
  disabled
@@ -145,13 +165,13 @@ const TrailingContent = (0, _styledComponents.default)(ColoredVisualContainer).w
145
165
 
146
166
  const DescriptionContainer = _styledComponents.default.span.withConfig({
147
167
  displayName: "Item__DescriptionContainer",
148
- componentId: "sc-jqpvy8-8"
168
+ componentId: "jqpvy8-8"
149
169
  })(["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);"], (0, _constants.get)('colors.fg.muted'), (0, _constants.get)('fontSizes.0'));
150
170
 
151
171
  const MultiSelectIcon = _styledComponents.default.svg.withConfig({
152
172
  displayName: "Item__MultiSelectIcon",
153
- componentId: "sc-jqpvy8-9"
154
- })(["rect{fill:", ";stroke:", ";shape-rendering:auto;}path{fill:", ";boxshadow:", ";opacity:", ";}"], ({
173
+ componentId: "jqpvy8-9"
174
+ })(["rect{fill:", ";stroke:", ";}path{fill:", ";boxshadow:", ";opacity:", ";}"], ({
155
175
  selected
156
176
  }) => selected ? (0, _constants.get)('colors.accent.fg') : (0, _constants.get)('colors.canvas.default'), ({
157
177
  selected
@@ -209,6 +229,9 @@ const Item = /*#__PURE__*/_react.default.forwardRef((itemProps, ref) => {
209
229
  onAction === null || onAction === void 0 ? void 0 : onAction(itemProps, event);
210
230
  }
211
231
  }, [onAction, disabled, itemProps, onClick]);
232
+ const customItemTheme = customItemThemes[variant];
233
+ const hoverBackground = (0, _ThemeProvider.useColorSchemeVar)(customItemTheme.hover, 'inherit');
234
+ const focusBackground = (0, _ThemeProvider.useColorSchemeVar)(customItemTheme.focus, 'inherit');
212
235
  const {
213
236
  theme
214
237
  } = (0, _ThemeProvider.useTheme)();
@@ -224,7 +247,9 @@ const Item = /*#__PURE__*/_react.default.forwardRef((itemProps, ref) => {
224
247
  }, props, {
225
248
  "data-id": id,
226
249
  onKeyPress: keyPressHandler,
227
- onClick: clickHandler
250
+ onClick: clickHandler,
251
+ hoverBackground: disabled ? 'inherit' : hoverBackground,
252
+ focusBackground: disabled ? 'inherit' : focusBackground
228
253
  }), !!selected === selected && /*#__PURE__*/_react.default.createElement(BaseVisualContainer, null, selectionVariant === 'multiple' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(MultiSelectIcon, {
229
254
  selected: selected,
230
255
  width: "16",
@@ -0,0 +1,311 @@
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.Item = exports.TextContainer = void 0;
26
+ const octicons_react_1 = require("@primer/octicons-react");
27
+ const react_1 = __importStar(require("react"));
28
+ const constants_1 = require("../constants");
29
+ const sx_1 = __importDefault(require("../sx"));
30
+ const Truncate_1 = __importDefault(require("../Truncate"));
31
+ const styled_components_1 = __importDefault(require("styled-components"));
32
+ const Header_1 = require("./Header");
33
+ const Divider_1 = require("./Divider");
34
+ const ThemeProvider_1 = require("../ThemeProvider");
35
+ const focusZone_1 = require("../behaviors/focusZone");
36
+ const ssr_1 = require("@react-aria/ssr");
37
+ /**
38
+ * These colors are not yet in our default theme. Need to remove this once they are added.
39
+ */
40
+ const customItemThemes = {
41
+ default: {
42
+ hover: {
43
+ light: 'rgba(46, 77, 108, 0.06)',
44
+ dark: 'rgba(201, 206, 212, 0.12)',
45
+ dark_dimmed: 'rgba(201, 206, 212, 0.12)'
46
+ },
47
+ focus: {
48
+ light: 'rgba(54, 77, 100, 0.16)',
49
+ dark: 'rgba(201, 206, 212, 0.24)',
50
+ dark_dimmed: 'rgba(201, 206, 212, 0.24)'
51
+ }
52
+ },
53
+ danger: {
54
+ hover: {
55
+ light: 'rgba(234, 74, 90, 0.08)',
56
+ dark: 'rgba(248, 81, 73, 0.16)',
57
+ dark_dimmed: 'rgba(248, 81, 73, 0.16)'
58
+ },
59
+ focus: {
60
+ light: 'rgba(234, 74, 90, 0.14)',
61
+ dark: 'rgba(248, 81, 73, 0.24)',
62
+ dark_dimmed: 'rgba(248, 81, 73, 0.24)'
63
+ }
64
+ }
65
+ };
66
+ const getItemVariant = (variant = 'default', disabled) => {
67
+ if (disabled) {
68
+ return {
69
+ color: constants_1.get('colors.primer.fg.disabled'),
70
+ iconColor: constants_1.get('colors.primer.fg.disabled'),
71
+ annotationColor: constants_1.get('colors.primer.fg.disabled'),
72
+ hoverCursor: 'default'
73
+ };
74
+ }
75
+ switch (variant) {
76
+ case 'danger':
77
+ return {
78
+ color: constants_1.get('colors.danger.fg'),
79
+ iconColor: constants_1.get('colors.danger.fg'),
80
+ annotationColor: constants_1.get('colors.fg.muted'),
81
+ hoverCursor: 'pointer'
82
+ };
83
+ default:
84
+ return {
85
+ color: constants_1.get('colors.fg.default'),
86
+ iconColor: constants_1.get('colors.fg.muted'),
87
+ annotationColor: constants_1.get('colors.fg.muted'),
88
+ hoverCursor: 'pointer'
89
+ };
90
+ }
91
+ };
92
+ const DividedContent = styled_components_1.default.div `
93
+ display: flex;
94
+ min-width: 0;
95
+
96
+ /* Required for dividers */
97
+ position: relative;
98
+ flex-grow: 1;
99
+ `;
100
+ const MainContent = styled_components_1.default.div `
101
+ align-items: baseline;
102
+ display: flex;
103
+ min-width: 0;
104
+ flex-direction: var(--main-content-flex-direction);
105
+ flex-grow: 1;
106
+ `;
107
+ const StyledItem = styled_components_1.default.div `
108
+ /* 6px vertical padding + 20px line height = 32px total height
109
+ *
110
+ * TODO: When rem-based spacing on a 4px scale lands, replace
111
+ * hardcoded '6px' with 'calc((${constants_1.get('space.s32')} - ${constants_1.get('space.20')}) / 2)'.
112
+ */
113
+ padding: 6px ${constants_1.get('space.2')};
114
+ display: flex;
115
+ border-radius: ${constants_1.get('radii.2')};
116
+ color: ${({ variant, item }) => getItemVariant(variant, item?.disabled).color};
117
+ // 2 frames on a 60hz monitor
118
+ transition: background 33.333ms linear;
119
+ text-decoration: none;
120
+
121
+ @media (hover: hover) and (pointer: fine) {
122
+ :hover {
123
+ // allow override in case another item in the list is active/focused
124
+ background: var(--item-hover-bg-override, ${({ hoverBackground }) => hoverBackground});
125
+ cursor: ${({ variant, item }) => getItemVariant(variant, item?.disabled).hoverCursor};
126
+ }
127
+ }
128
+
129
+ // Item dividers
130
+ :not(:first-of-type):not(${Divider_1.StyledDivider} + &):not(${Header_1.StyledHeader} + &) {
131
+ margin-top: ${({ showDivider }) => (showDivider ? `1px` : '0')};
132
+
133
+ ${DividedContent}::before {
134
+ content: ' ';
135
+ display: block;
136
+ position: absolute;
137
+ width: 100%;
138
+ top: -7px;
139
+ // NB: This 'get' won’t execute if it’s moved into the arrow function below.
140
+ border: 0 solid ${constants_1.get('colors.border.muted')};
141
+ border-top-width: ${({ showDivider }) => (showDivider ? `1px` : '0')};
142
+ }
143
+ }
144
+
145
+ // Item dividers should not be visible:
146
+ // - above Hovered
147
+ &:hover ${DividedContent}::before,
148
+ // - below Hovered
149
+ // '*' instead of '&' because '&' maps to separate class names depending on 'variant'
150
+ :hover + * ${DividedContent}::before {
151
+ // allow override in case another item in the list is active/focused
152
+ border-color: var(--item-hover-divider-border-color-override, transparent) !important;
153
+ }
154
+
155
+ // - above Focused
156
+ &:focus ${DividedContent}::before,
157
+ // - below Focused
158
+ // '*' instead of '&' because '&' maps to separate class names depending on 'variant'
159
+ :focus + * ${DividedContent}::before,
160
+ // - above Active Descendent
161
+ &[${focusZone_1.isActiveDescendantAttribute}] ${DividedContent}::before,
162
+ // - below Active Descendent
163
+ [${focusZone_1.isActiveDescendantAttribute}] + & ${DividedContent}::before {
164
+ // '!important' because all the ':not's above give higher specificity
165
+ border-color: transparent !important;
166
+ }
167
+
168
+ // Active Descendant
169
+ &[${focusZone_1.isActiveDescendantAttribute}='${focusZone_1.activeDescendantActivatedDirectly}'] {
170
+ background: ${({ focusBackground }) => focusBackground};
171
+ }
172
+ &[${focusZone_1.isActiveDescendantAttribute}='${focusZone_1.activeDescendantActivatedIndirectly}'] {
173
+ background: ${({ hoverBackground }) => hoverBackground};
174
+ }
175
+
176
+ &:focus {
177
+ background: ${({ focusBackground }) => focusBackground};
178
+ outline: none;
179
+ }
180
+
181
+ &:active {
182
+ background: ${({ focusBackground }) => focusBackground};
183
+ }
184
+
185
+ ${sx_1.default}
186
+ `;
187
+ exports.TextContainer = styled_components_1.default.span ``;
188
+ const BaseVisualContainer = styled_components_1.default.div `
189
+ // Match visual height to adjacent text line height.
190
+ // TODO: When rem-based spacing on a 4px scale lands, replace
191
+ // hardcoded '20px' with '${constants_1.get('space.s20')}'.
192
+ height: 20px;
193
+ width: ${constants_1.get('space.3')};
194
+ margin-right: ${constants_1.get('space.2')};
195
+ display: flex;
196
+ justify-content: center;
197
+ align-items: center;
198
+ `;
199
+ const ColoredVisualContainer = styled_components_1.default(BaseVisualContainer) `
200
+ svg {
201
+ fill: ${({ variant, disabled }) => getItemVariant(variant, disabled).iconColor};
202
+ font-size: ${constants_1.get('fontSizes.0')};
203
+ }
204
+ `;
205
+ const LeadingVisualContainer = styled_components_1.default(ColoredVisualContainer) `
206
+ flex-shrink: 0;
207
+ display: flex;
208
+ flex-direction: column;
209
+ justify-content: center;
210
+ `;
211
+ const TrailingContent = styled_components_1.default(ColoredVisualContainer) `
212
+ color: ${({ variant, disabled }) => getItemVariant(variant, disabled).annotationColor}};
213
+ margin-left: ${constants_1.get('space.2')};
214
+ margin-right: 0;
215
+ width: auto;
216
+ div:nth-child(2) {
217
+ margin-left: ${constants_1.get('space.2')};
218
+ }
219
+ `;
220
+ const DescriptionContainer = styled_components_1.default.span `
221
+ color: ${constants_1.get('colors.fg.muted')};
222
+ font-size: ${constants_1.get('fontSizes.0')};
223
+ // TODO: When rem-based spacing on a 4px scale lands, replace
224
+ // hardcoded '16px' with '${constants_1.get('lh-12')}'.
225
+ line-height: 16px;
226
+ margin-left: var(--description-container-margin-left);
227
+ min-width: 0;
228
+ flex-grow: 1;
229
+ flex-basis: var(--description-container-flex-basis);
230
+ `;
231
+ const MultiSelectIcon = styled_components_1.default.svg `
232
+ rect {
233
+ fill: ${({ selected }) => (selected ? constants_1.get('colors.accent.fg') : constants_1.get('colors.canvas.default'))};
234
+ stroke: ${({ selected }) => (selected ? constants_1.get('colors.accent.fg') : constants_1.get('colors.border.default'))};
235
+ }
236
+ path {
237
+ fill: ${constants_1.get('colors.fg.onEmphasis')};
238
+ boxshadow: ${constants_1.get('shadow.small')};
239
+ opacity: ${({ selected }) => (selected ? 1 : 0)};
240
+ }
241
+ `;
242
+ /**
243
+ * An actionable or selectable `Item` with an optional icon and description.
244
+ */
245
+ exports.Item = react_1.default.forwardRef((itemProps, ref) => {
246
+ const { as: Component, text, description, descriptionVariant = 'inline', selected, selectionVariant, leadingVisual: LeadingVisual, trailingIcon: TrailingIcon, trailingVisual: TrailingVisual, trailingText, variant = 'default', showDivider, disabled, onAction, onKeyPress, children, onClick, id, ...props } = itemProps;
247
+ const labelId = ssr_1.useSSRSafeId();
248
+ const descriptionId = ssr_1.useSSRSafeId();
249
+ const keyPressHandler = react_1.useCallback(event => {
250
+ if (disabled) {
251
+ return;
252
+ }
253
+ onKeyPress?.(event);
254
+ if (!event.defaultPrevented && [' ', 'Enter'].includes(event.key)) {
255
+ onAction?.(itemProps, event);
256
+ }
257
+ }, [onAction, disabled, itemProps, onKeyPress]);
258
+ const clickHandler = react_1.useCallback(event => {
259
+ if (disabled) {
260
+ return;
261
+ }
262
+ onClick?.(event);
263
+ if (!event.defaultPrevented) {
264
+ onAction?.(itemProps, event);
265
+ }
266
+ }, [onAction, disabled, itemProps, onClick]);
267
+ const customItemTheme = customItemThemes[variant];
268
+ const hoverBackground = ThemeProvider_1.useColorSchemeVar(customItemTheme.hover, 'inherit');
269
+ const focusBackground = ThemeProvider_1.useColorSchemeVar(customItemTheme.focus, 'inherit');
270
+ const { theme } = ThemeProvider_1.useTheme();
271
+ return (<StyledItem ref={ref} as={Component} tabIndex={disabled ? undefined : -1} variant={variant} showDivider={showDivider} aria-selected={selected} aria-labelledby={text ? labelId : undefined} aria-describedby={description ? descriptionId : undefined} {...props} data-id={id} onKeyPress={keyPressHandler} onClick={clickHandler} hoverBackground={disabled ? 'inherit' : hoverBackground} focusBackground={disabled ? 'inherit' : focusBackground}>
272
+ {!!selected === selected && (<BaseVisualContainer>
273
+ {selectionVariant === 'multiple' ? (<>
274
+ {/**
275
+ * we use a svg instead of an input because there should not
276
+ * be an interactive element inside an option
277
+ * svg copied from primer/css
278
+ */}
279
+ <MultiSelectIcon selected={selected} width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
280
+ <rect x="2" y="2" width="12" height="12" rx="4"></rect>
281
+ <path fillRule="evenodd" strokeWidth="0" d="M4.03231 8.69862C3.84775 8.20646 4.49385 7.77554 4.95539 7.77554C5.41693 7.77554 6.80154 9.85246 6.80154 9.85246C6.80154 9.85246 10.2631 4.314 10.4938 4.08323C10.7246 3.85246 11.8785 4.08323 11.4169 5.00631C11.0081 5.82388 7.26308 11.4678 7.26308 11.4678C7.26308 11.4678 6.80154 12.1602 6.34 11.4678C5.87846 10.7755 4.21687 9.19077 4.03231 8.69862Z"/>
282
+ </MultiSelectIcon>
283
+ </>) : (selected && <octicons_react_1.CheckIcon fill={theme?.colors.fg.default}/>)}
284
+ </BaseVisualContainer>)}
285
+ {LeadingVisual && (<LeadingVisualContainer variant={variant} disabled={disabled}>
286
+ <LeadingVisual />
287
+ </LeadingVisualContainer>)}
288
+ <DividedContent>
289
+ <MainContent style={{ '--main-content-flex-direction': descriptionVariant === 'inline' ? 'row' : 'column' }}>
290
+ {children}
291
+ {text ? <exports.TextContainer id={labelId}>{text}</exports.TextContainer> : null}
292
+ {description ? (<DescriptionContainer id={descriptionId} style={{
293
+ '--description-container-margin-left': descriptionVariant === 'inline' ? constants_1.get('space.2')(theme) : 0,
294
+ '--description-container-flex-basis': descriptionVariant === 'inline' ? 0 : 'auto'
295
+ }}>
296
+ {descriptionVariant === 'block' ? (description) : (<Truncate_1.default title={description} inline={true} maxWidth="100%">
297
+ {description}
298
+ </Truncate_1.default>)}
299
+ </DescriptionContainer>) : null}
300
+ </MainContent>
301
+ {/* backward compatibility: prefer TrailingVisual but fallback to TrailingIcon */}
302
+ {TrailingVisual ? (<TrailingContent variant={variant} disabled={disabled}>
303
+ {typeof TrailingVisual === 'function' ? <TrailingVisual /> : TrailingVisual}
304
+ </TrailingContent>) : TrailingIcon || trailingText ? (<TrailingContent variant={variant} disabled={disabled}>
305
+ {trailingText}
306
+ {TrailingIcon && <TrailingIcon />}
307
+ </TrailingContent>) : null}
308
+ </DividedContent>
309
+ </StyledItem>);
310
+ });
311
+ exports.Item.displayName = 'ActionList.Item';
@@ -37,7 +37,7 @@ function isGroupedListProps(props) {
37
37
 
38
38
  const StyledList = _styledComponents.default.div.withConfig({
39
39
  displayName: "List__StyledList",
40
- componentId: "sc-yr2k7d-0"
40
+ componentId: "yr2k7d-0"
41
41
  })(["font-size:", ";line-height:20px;&[", "],&:focus-within{--item-hover-bg-override:none;--item-hover-divider-border-color-override:", ";}"], (0, _constants.get)('fontSizes.1'), _focusZone.hasActiveDescendantAttribute, (0, _constants.get)('colors.border.muted'));
42
42
  /**
43
43
  * Returns `sx` prop values for `List` children matching the given `List` style variation.