@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,278 @@
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.Button = void 0;
26
+ const react_1 = __importStar(require("react"));
27
+ const Box_1 = __importDefault(require("../Box"));
28
+ const styled_components_1 = __importDefault(require("styled-components"));
29
+ const sx_1 = __importStar(require("../sx"));
30
+ const ThemeProvider_1 = require("../ThemeProvider");
31
+ const getVariantStyles = (variant = 'default', theme) => {
32
+ const style = {
33
+ default: {
34
+ color: 'btn.text',
35
+ backgroundColor: 'btn.bg',
36
+ boxShadow: `${theme?.shadows.btn.shadow}, ${theme?.shadows.btn.insetShadow}`,
37
+ '&:hover:not([disabled])': {
38
+ backgroundColor: 'btn.hoverBg'
39
+ },
40
+ // focus must come before :active so that the active box shadow overrides
41
+ '&:focus:not([disabled])': {
42
+ boxShadow: `${theme?.shadows.btn.focusShadow}`
43
+ },
44
+ '&:active:not([disabled])': {
45
+ backgroundColor: 'btn.selectedBg',
46
+ boxShadow: `${theme?.shadows.btn.shadowActive}`
47
+ },
48
+ '&:disabled': {
49
+ color: 'primer.fg.disabled',
50
+ backgroundColor: 'btn.disabledBg'
51
+ }
52
+ },
53
+ primary: {
54
+ color: 'btn.primary.text',
55
+ backgroundColor: 'btn.primary.bg',
56
+ borderColor: 'border.subtle',
57
+ boxShadow: `${theme?.shadows.btn.primary.shadow}`,
58
+ '&:hover:not([disabled])': {
59
+ color: 'btn.primary.hoverText',
60
+ backgroundColor: 'btn.primary.hoverBg'
61
+ },
62
+ // focus must come before :active so that the active box shadow overrides
63
+ '&:focus:not([disabled])': {
64
+ boxShadow: `${theme?.shadows.btn.primary.focusShadow}`
65
+ },
66
+ '&:active:not([disabled])': {
67
+ backgroundColor: 'btn.primary.selectedBg',
68
+ boxShadow: `${theme?.shadows.btn.primary.selectedShadow}`
69
+ },
70
+ '&:disabled': {
71
+ color: 'btn.primary.disabledText',
72
+ backgroundColor: 'btn.primary.disabledBg'
73
+ },
74
+ '[data-component="ButtonCounter"]': {
75
+ backgroundColor: 'btn.primary.counterBg',
76
+ color: 'btn.primary.text'
77
+ }
78
+ },
79
+ danger: {
80
+ color: 'btn.danger.text',
81
+ backgroundColor: 'btn.bg',
82
+ boxShadow: `${theme?.shadows.btn.shadow}`,
83
+ '&:hover:not([disabled])': {
84
+ color: 'btn.danger.hoverText',
85
+ backgroundColor: 'btn.danger.hoverBg',
86
+ borderColor: 'btn.danger.hoverBorder',
87
+ boxShadow: `${theme?.shadows.btn.danger.hoverShadow}`,
88
+ '[data-component="ButtonCounter"]': {
89
+ backgroundColor: 'btn.danger.hoverCounterBg',
90
+ color: 'btn.danger.hoverText'
91
+ }
92
+ },
93
+ // focus must come before :active so that the active box shadow overrides
94
+ '&:focus:not([disabled])': {
95
+ borderColor: 'btn.danger.focusBorder',
96
+ boxShadow: `${theme?.shadows.btn.danger.focusShadow}`
97
+ },
98
+ '&:active:not([disabled])': {
99
+ color: 'btn.danger.selectedText',
100
+ backgroundColor: 'btn.danger.selectedBg',
101
+ boxShadow: `${theme?.shadows.btn.danger.selectedShadow}`,
102
+ borderColor: 'btn.danger.selectedBorder'
103
+ },
104
+ '&:disabled': {
105
+ color: 'btn.danger.disabledText',
106
+ backgroundColor: 'btn.danger.disabledBg',
107
+ borderColor: 'btn.danger.disabledBorder',
108
+ '[data-component="ButtonCounter"]': {
109
+ backgroundColor: 'btn.danger.disabledCounterBg'
110
+ }
111
+ },
112
+ '[data-component="ButtonCounter"]': {
113
+ color: 'btn.danger.text',
114
+ backgroundColor: 'btn.danger.counterBg'
115
+ }
116
+ },
117
+ invisible: {
118
+ color: 'accent.fg',
119
+ backgroundColor: 'transparent',
120
+ border: '0',
121
+ boxShadow: 'none',
122
+ '&:hover:not([disabled])': {
123
+ backgroundColor: 'btn.hoverBg'
124
+ },
125
+ // focus must come before :active so that the active box shadow overrides
126
+ '&:focus:not([disabled])': {
127
+ boxShadow: `${theme?.shadows.btn.focusShadow}`
128
+ },
129
+ '&:active:not([disabled])': {
130
+ backgroundColor: 'btn.selectedBg'
131
+ },
132
+ '&:disabled': {
133
+ color: 'primer.fg.disabled'
134
+ }
135
+ },
136
+ outline: {
137
+ color: 'btn.outline.text',
138
+ boxShadow: `${theme?.shadows.btn.shadow}`,
139
+ '&:hover': {
140
+ color: 'btn.outline.hoverText',
141
+ backgroundColor: 'btn.outline.hoverBg',
142
+ borderColor: 'outline.hoverBorder',
143
+ boxShadow: `${theme?.shadows.btn.outline.hoverShadow}`,
144
+ '[data-component="ButtonCounter"]': {
145
+ backgroundColor: 'btn.outline.hoverCounterBg',
146
+ color: 'btn.outline.hoverText'
147
+ }
148
+ },
149
+ // focus must come before :active so that the active box shadow overrides
150
+ '&:focus': {
151
+ borderColor: 'btn.outline.focusBorder',
152
+ boxShadow: `${theme?.shadows.btn.outline.focusShadow}`
153
+ },
154
+ '&:active': {
155
+ color: 'btn.outline.selectedText',
156
+ backgroundColor: 'btn.outline.selectedBg',
157
+ boxShadow: `${theme?.shadows.btn.outline.selectedShadow}`,
158
+ borderColor: 'btn.outline.selectedBorder'
159
+ },
160
+ '&:disabled': {
161
+ color: 'btn.outline.disabledText',
162
+ backgroundColor: 'btn.outline.disabledBg',
163
+ borderColor: 'btn.border',
164
+ '[data-component="ButtonCounter"]': {
165
+ backgroundColor: 'btn.outline.disabledCounterBg'
166
+ }
167
+ },
168
+ '[data-component="ButtonCounter"]': {
169
+ backgroundColor: 'btn.outline.counterBg',
170
+ color: 'btn.outline.text'
171
+ }
172
+ }
173
+ };
174
+ return style[variant];
175
+ };
176
+ const getSizeStyles = (size = 'medium', variant = 'default', iconOnly) => {
177
+ let paddingY, paddingX, fontSize;
178
+ switch (size) {
179
+ case 'small':
180
+ paddingY = 3;
181
+ paddingX = 12;
182
+ fontSize = 0;
183
+ break;
184
+ case 'large':
185
+ paddingY = 9;
186
+ paddingX = 20;
187
+ fontSize = 2;
188
+ break;
189
+ case 'medium':
190
+ default:
191
+ paddingY = 5;
192
+ paddingX = 16;
193
+ fontSize = 1;
194
+ }
195
+ if (iconOnly) {
196
+ paddingX = paddingY + 2;
197
+ }
198
+ if (variant === 'invisible') {
199
+ paddingY = paddingY + 1;
200
+ }
201
+ return {
202
+ paddingY: `${paddingY}px`,
203
+ paddingX: `${paddingX}px`,
204
+ fontSize,
205
+ '[data-component="ButtonCounter"]': {
206
+ fontSize
207
+ }
208
+ };
209
+ };
210
+ const ButtonBase = styled_components_1.default.button(sx_1.default);
211
+ const Button = react_1.forwardRef(({ children, ...props }, forwardedRef) => {
212
+ const { icon: Icon, leadingIcon: LeadingIcon, trailingIcon: TrailingIcon, variant = 'default', size = 'medium', sx: sxProp = {} } = props;
213
+ const iconOnly = !!Icon;
214
+ const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
215
+ const { theme } = ThemeProvider_1.useTheme();
216
+ const styles = {
217
+ borderRadius: '2',
218
+ border: '1px solid',
219
+ borderColor: theme?.colors.btn.border,
220
+ display: 'grid',
221
+ gridTemplateAreas: '"leadingIcon text trailingIcon"',
222
+ fontWeight: 'bold',
223
+ lineHeight: TEXT_ROW_HEIGHT,
224
+ whiteSpace: 'nowrap',
225
+ verticalAlign: 'middle',
226
+ cursor: 'pointer',
227
+ appearance: 'none',
228
+ userSelect: 'none',
229
+ textDecoration: 'none',
230
+ textAlign: 'center',
231
+ '& > :not(:last-child)': {
232
+ mr: '2'
233
+ },
234
+ '&:focus': {
235
+ outline: 'none'
236
+ },
237
+ '&:disabled': {
238
+ cursor: 'default'
239
+ },
240
+ '&:disabled svg': {
241
+ opacity: '0.6'
242
+ },
243
+ '[data-component="leadingIcon"]': {
244
+ gridArea: 'leadingIcon'
245
+ },
246
+ '[data-component="text"]': {
247
+ gridArea: 'text'
248
+ },
249
+ '[data-component="trailingIcon"]': {
250
+ gridArea: 'trailingIcon'
251
+ }
252
+ };
253
+ const variableStyles = { ...getSizeStyles(size, variant, iconOnly), ...getVariantStyles(variant, theme) };
254
+ const componentStyles = { ...styles, ...variableStyles };
255
+ const iconWrapStyles = {
256
+ display: 'inline-block'
257
+ };
258
+ return (
259
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
260
+ // @ts-ignore Why wont it accept the sx prop?
261
+ <ButtonBase sx={sx_1.merge(componentStyles, sxProp)} ref={forwardedRef} {...props}>
262
+ {LeadingIcon && (<Box_1.default as="span" data-component="leadingIcon" sx={iconWrapStyles} aria-hidden={!iconOnly}>
263
+ <LeadingIcon />
264
+ </Box_1.default>)}
265
+ <span data-component="text" hidden={Icon ? true : undefined}>
266
+ {children}
267
+ </span>
268
+ {Icon && (<Box_1.default data-component="icon-only" as="span" sx={{ display: 'inline-block' }} aria-hidden={!iconOnly}>
269
+ <Icon />
270
+ </Box_1.default>)}
271
+ {TrailingIcon && (<Box_1.default as="span" data-component="trailingIcon" sx={{ ...iconWrapStyles, ml: 2 }} aria-hidden={!iconOnly}>
272
+ <TrailingIcon />
273
+ </Box_1.default>)}
274
+ </ButtonBase>);
275
+ });
276
+ exports.Button = Button;
277
+ Button.displayName = 'Button';
278
+ Object.assign(Button, {});
@@ -1,15 +1,8 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.NewButton = void 0;
7
-
8
- var _button = require("./button");
9
-
10
- var _buttonCounter = require("./button-counter");
11
-
12
- const NewButton = Object.assign(_button.Button, {
13
- Counter: _buttonCounter.Counter
4
+ const button_1 = require("./button");
5
+ const button_counter_1 = require("./button-counter");
6
+ exports.NewButton = Object.assign(button_1.Button, {
7
+ Counter: button_counter_1.Counter
14
8
  });
15
- exports.NewButton = NewButton;
@@ -1 +1,2 @@
1
- "use strict";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/lib/Overlay.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import React, { ComponentPropsWithRef } from 'react';
2
- import { AriaRole, Merge } from './utils/types';
1
+ import React from 'react';
2
+ import { SystemPositionProps, SystemCommonProps } from './constants';
3
+ import { ComponentProps } from './utils/types';
3
4
  import { TouchOrMouseEvent } from './hooks';
4
5
  import { SxProp } from './sx';
5
6
  import { AnchorSide } from './behaviors/anchoredPosition';
6
- import { ForwardRefComponent as PolymorphicForwardRefComponent } from '@radix-ui/react-polymorphic';
7
7
  declare type StyledOverlayProps = {
8
8
  width?: keyof typeof widthMap;
9
9
  height?: keyof typeof heightMap;
10
10
  maxHeight?: keyof Omit<typeof heightMap, 'auto' | 'initial'>;
11
11
  visibility?: 'visible' | 'hidden';
12
12
  anchorSide?: AnchorSide;
13
- } & SxProp;
13
+ };
14
14
  declare const heightMap: {
15
15
  xsmall: string;
16
16
  small: string;
@@ -28,22 +28,20 @@ declare const widthMap: {
28
28
  xxlarge: string;
29
29
  auto: string;
30
30
  };
31
- declare type BaseOverlayProps = {
31
+ declare const StyledOverlay: import("styled-components").StyledComponent<"div", any, StyledOverlayProps & SystemCommonProps & SxProp, never>;
32
+ export declare type OverlayProps = {
32
33
  ignoreClickRefs?: React.RefObject<HTMLElement>[];
33
34
  initialFocusRef?: React.RefObject<HTMLElement>;
34
35
  returnFocusRef: React.RefObject<HTMLElement>;
35
36
  onClickOutside: (e: TouchOrMouseEvent) => void;
36
37
  onEscape: (e: KeyboardEvent) => void;
37
38
  visibility?: 'visible' | 'hidden';
38
- 'data-test-id'?: unknown;
39
- top?: number;
40
- left?: number;
39
+ [additionalKey: string]: unknown;
40
+ top: number;
41
+ left: number;
41
42
  portalContainerName?: string;
42
43
  preventFocusOnOpen?: boolean;
43
- role?: AriaRole;
44
- children?: React.ReactNode;
45
- };
46
- declare type OwnOverlayProps = Merge<StyledOverlayProps, BaseOverlayProps>;
44
+ } & Omit<ComponentProps<typeof StyledOverlay>, 'visibility' | keyof SystemPositionProps>;
47
45
  /**
48
46
  * An `Overlay` is a flexible floating surface, used to display transient content such as menus,
49
47
  * selection options, dialogs, and more. Overlays use shadows to express elevation. The `Overlay`
@@ -61,6 +59,5 @@ declare type OwnOverlayProps = Merge<StyledOverlayProps, BaseOverlayProps>;
61
59
  * @param left Optional. Horizontal position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
62
60
  * @param portalContainerName Optional. The name of the portal container to render the Overlay into.
63
61
  */
64
- declare const Overlay: PolymorphicForwardRefComponent<"div", OwnOverlayProps>;
65
- export declare type OverlayProps = ComponentPropsWithRef<typeof Overlay>;
62
+ declare const Overlay: React.ForwardRefExoticComponent<Pick<OverlayProps, string | number> & React.RefAttributes<HTMLDivElement>>;
66
63
  export default Overlay;
package/lib/Overlay.js CHANGED
@@ -9,10 +9,10 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
- var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./utils/useIsomorphicLayoutEffect"));
13
-
14
12
  var _constants = require("./constants");
15
13
 
14
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("./utils/useIsomorphicLayoutEffect"));
15
+
16
16
  var _hooks = require("./hooks");
17
17
 
18
18
  var _Portal = _interopRequireDefault(require("./Portal"));
@@ -82,8 +82,8 @@ function getSlideAnimationStartingVector(anchorSide) {
82
82
 
83
83
  const StyledOverlay = _styledComponents.default.div.withConfig({
84
84
  displayName: "Overlay__StyledOverlay",
85
- componentId: "sc-jhwkzw-0"
86
- })(["background-color:", ";box-shadow:", ";position:absolute;min-width:192px;max-width:640px;height:", ";max-height:", ";width:", ";border-radius:12px;overflow:hidden;animation:overlay-appear ", "ms ", ";@keyframes overlay-appear{0%{opacity:0;}100%{opacity:1;}}visibility:var(--styled-overlay-visibility);:focus{outline:none;}", ";"], (0, _constants.get)('colors.canvas.overlay'), (0, _constants.get)('shadows.overlay.shadow'), props => heightMap[props.height || 'auto'], props => props.maxHeight && heightMap[props.maxHeight], props => widthMap[props.width || 'auto'], animationDuration, (0, _constants.get)('animation.easeOutCubic'), _sx.default);
85
+ componentId: "jhwkzw-0"
86
+ })(["background-color:", ";box-shadow:", ";position:absolute;min-width:192px;max-width:640px;height:", ";max-height:", ";width:", ";border-radius:12px;overflow:hidden;animation:overlay-appear ", "ms ", ";@keyframes overlay-appear{0%{opacity:0;}100%{opacity:1;}}visibility:var(--styled-overlay-visibility);:focus{outline:none;}", ";", ";"], (0, _constants.get)('colors.canvas.overlay'), (0, _constants.get)('shadows.overlay.shadow'), props => heightMap[props.height || 'auto'], props => props.maxHeight && heightMap[props.maxHeight], props => widthMap[props.width || 'auto'], animationDuration, (0, _constants.get)('animation.easeOutCubic'), _constants.COMMON, _sx.default);
87
87
 
88
88
  /**
89
89
  * An `Overlay` is a flexible floating surface, used to display transient content such as menus,
@@ -171,6 +171,7 @@ const Overlay = /*#__PURE__*/_react.default.forwardRef(({
171
171
  style: {
172
172
  top: `${top || 0}px`,
173
173
  left: `${left || 0}px`,
174
+ ...rest.style,
174
175
  '--styled-overlay-visibility': visibility
175
176
  }
176
177
  })));
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const styled_components_1 = __importDefault(require("styled-components"));
26
+ const react_1 = __importStar(require("react"));
27
+ const constants_1 = require("./constants");
28
+ const useIsomorphicLayoutEffect_1 = __importDefault(require("./utils/useIsomorphicLayoutEffect"));
29
+ const hooks_1 = require("./hooks");
30
+ const Portal_1 = __importDefault(require("./Portal"));
31
+ const sx_1 = __importDefault(require("./sx"));
32
+ const useCombinedRefs_1 = require("./hooks/useCombinedRefs");
33
+ const ThemeProvider_1 = require("./ThemeProvider");
34
+ const heightMap = {
35
+ xsmall: '192px',
36
+ small: '256px',
37
+ medium: '320px',
38
+ large: '432px',
39
+ xlarge: '600px',
40
+ auto: 'auto',
41
+ initial: 'auto' // Passing 'initial' initially applies 'auto'
42
+ };
43
+ const widthMap = {
44
+ small: '256px',
45
+ medium: '320px',
46
+ large: '480px',
47
+ xlarge: '640px',
48
+ xxlarge: '960px',
49
+ auto: 'auto'
50
+ };
51
+ const animationDuration = 200;
52
+ function getSlideAnimationStartingVector(anchorSide) {
53
+ if (anchorSide?.endsWith('bottom')) {
54
+ return { x: 0, y: -1 };
55
+ }
56
+ else if (anchorSide?.endsWith('top')) {
57
+ return { x: 0, y: 1 };
58
+ }
59
+ else if (anchorSide?.endsWith('right')) {
60
+ return { x: -1, y: 0 };
61
+ }
62
+ else if (anchorSide?.endsWith('left')) {
63
+ return { x: 1, y: 0 };
64
+ }
65
+ return { x: 0, y: 0 };
66
+ }
67
+ const StyledOverlay = styled_components_1.default.div `
68
+ background-color: ${constants_1.get('colors.canvas.overlay')};
69
+ box-shadow: ${constants_1.get('shadows.overlay.shadow')};
70
+ position: absolute;
71
+ min-width: 192px;
72
+ max-width: 640px;
73
+ height: ${props => heightMap[props.height || 'auto']};
74
+ max-height: ${props => props.maxHeight && heightMap[props.maxHeight]};
75
+ width: ${props => widthMap[props.width || 'auto']};
76
+ border-radius: 12px;
77
+ overflow: hidden;
78
+ animation: overlay-appear ${animationDuration}ms ${constants_1.get('animation.easeOutCubic')};
79
+
80
+ @keyframes overlay-appear {
81
+ 0% {
82
+ opacity: 0;
83
+ }
84
+ 100% {
85
+ opacity: 1;
86
+ }
87
+ }
88
+ visibility: var(--styled-overlay-visibility);
89
+ :focus {
90
+ outline: none;
91
+ }
92
+ ${constants_1.COMMON};
93
+ ${sx_1.default};
94
+ `;
95
+ /**
96
+ * An `Overlay` is a flexible floating surface, used to display transient content such as menus,
97
+ * selection options, dialogs, and more. Overlays use shadows to express elevation. The `Overlay`
98
+ * component handles all behaviors needed by overlay UIs as well as the common styles that all overlays * should have.
99
+ * @param ignoreClickRefs Optional. An array of ref objects to ignore clicks on in the `onOutsideClick` behavior. This is often used to ignore clicking on the element that toggles the open/closed state for the `Overlay` to prevent the `Overlay` from being toggled twice.
100
+ * @param initialFocusRef Optional. Ref for the element to focus when the `Overlay` is opened. If nothing is provided, the first focusable element in the `Overlay` body is focused.
101
+ * @param returnFocusRef Required. Ref for the element to focus when the `Overlay` is closed.
102
+ * @param onClickOutside Required. Function to call when clicking outside of the `Overlay`. Typically this function removes the Overlay.
103
+ * @param onEscape Required. Function to call when user presses `Escape`. Typically this function removes the Overlay.
104
+ * @param width Sets the width of the `Overlay`, pick from our set list of widths, or pass `auto` to automatically set the width based on the content of the `Overlay`. `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `480px`, `xlarge` corresponds to `640px`, `xxlarge` corresponds to `960px`.
105
+ * @param height Sets the height of the `Overlay`, pick from our set list of heights, or pass `auto` to automatically set the height based on the content of the `Overlay`, or pass `initial` to set the height based on the initial content of the `Overlay` (i.e. ignoring content changes). `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
106
+ * @param maxHeight Sets the maximum height of the `Overlay`, pick from our set list of heights. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`.
107
+ * @param anchorSide If provided, the Overlay will slide into position from the side of the anchor with a brief animation
108
+ * @param top Optional. Vertical position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
109
+ * @param left Optional. Horizontal position of the overlay, relative to its closest positioned ancestor (often its `Portal`).
110
+ * @param portalContainerName Optional. The name of the portal container to render the Overlay into.
111
+ */
112
+ const Overlay = react_1.default.forwardRef(({ onClickOutside, role = 'none', initialFocusRef, returnFocusRef, ignoreClickRefs, onEscape, visibility = 'visible', height, top, left, anchorSide, portalContainerName, preventFocusOnOpen, ...rest }, forwardedRef) => {
113
+ const overlayRef = react_1.useRef(null);
114
+ const combinedRef = useCombinedRefs_1.useCombinedRefs(overlayRef, forwardedRef);
115
+ const { theme } = ThemeProvider_1.useTheme();
116
+ const slideAnimationDistance = parseInt(constants_1.get('space.2')(theme).replace('px', ''));
117
+ const slideAnimationEasing = constants_1.get('animation.easeOutCubic')(theme);
118
+ hooks_1.useOverlay({
119
+ overlayRef,
120
+ returnFocusRef,
121
+ onEscape,
122
+ ignoreClickRefs,
123
+ onClickOutside,
124
+ initialFocusRef,
125
+ preventFocusOnOpen
126
+ });
127
+ react_1.useEffect(() => {
128
+ if (height === 'initial' && combinedRef.current?.clientHeight) {
129
+ combinedRef.current.style.height = `${combinedRef.current.clientHeight}px`;
130
+ }
131
+ }, [height, combinedRef]);
132
+ useIsomorphicLayoutEffect_1.default(() => {
133
+ const { x, y } = getSlideAnimationStartingVector(anchorSide);
134
+ if ((!x && !y) || !overlayRef.current?.animate || visibility === 'hidden') {
135
+ return;
136
+ }
137
+ // JS animation is required because Safari does not allow css animations to start paused and then run
138
+ overlayRef.current.animate({ transform: [`translate(${slideAnimationDistance * x}px, ${slideAnimationDistance * y}px)`, `translate(0, 0)`] }, {
139
+ duration: animationDuration,
140
+ easing: slideAnimationEasing
141
+ });
142
+ }, [anchorSide, slideAnimationDistance, slideAnimationEasing, visibility]);
143
+ return (<Portal_1.default containerName={portalContainerName}>
144
+ <StyledOverlay height={height} role={role} {...rest} ref={combinedRef} style={{
145
+ top: `${top || 0}px`,
146
+ left: `${left || 0}px`,
147
+ ...rest.style,
148
+ '--styled-overlay-visibility': visibility
149
+ }}/>
150
+ </Portal_1.default>);
151
+ });
152
+ Overlay.defaultProps = {
153
+ height: 'auto',
154
+ width: 'auto'
155
+ };
156
+ exports.default = Overlay;
package/lib/Pagehead.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import { SystemCommonProps } from './constants';
1
2
  import { SxProp } from './sx';
2
3
  import { ComponentProps } from './utils/types';
3
- declare const Pagehead: import("styled-components").StyledComponent<"div", any, SxProp, never>;
4
+ declare const Pagehead: import("styled-components").StyledComponent<"div", any, SystemCommonProps & SxProp, never>;
4
5
  export declare type PageheadProps = ComponentProps<typeof Pagehead>;
5
6
  export default Pagehead;
package/lib/Pagehead.js CHANGED
@@ -16,7 +16,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
16
16
  const Pagehead = _styledComponents.default.div.withConfig({
17
17
  displayName: "Pagehead",
18
18
  componentId: "sc-1ntn78e-0"
19
- })(["position:relative;padding-top:", ";padding-bottom:", ";margin-bottom:", ";border-bottom:1px solid ", ";", ";"], (0, _constants.get)('space.4'), (0, _constants.get)('space.4'), (0, _constants.get)('space.4'), (0, _constants.get)('colors.border.default'), _sx.default);
19
+ })(["position:relative;padding-top:", ";padding-bottom:", ";margin-bottom:", ";border-bottom:1px solid ", ";", ";", ";"], (0, _constants.get)('space.4'), (0, _constants.get)('space.4'), (0, _constants.get)('space.4'), (0, _constants.get)('colors.border.default'), _constants.COMMON, _sx.default);
20
20
 
21
21
  var _default = Pagehead;
22
22
  exports.default = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const styled_components_1 = __importDefault(require("styled-components"));
7
+ const constants_1 = require("./constants");
8
+ const sx_1 = __importDefault(require("./sx"));
9
+ const Pagehead = styled_components_1.default.div `
10
+ position: relative;
11
+ padding-top: ${constants_1.get('space.4')};
12
+ padding-bottom: ${constants_1.get('space.4')};
13
+ margin-bottom: ${constants_1.get('space.4')};
14
+ border-bottom: 1px solid ${constants_1.get('colors.border.default')};
15
+ ${constants_1.COMMON};
16
+ ${sx_1.default};
17
+ `;
18
+ exports.default = Pagehead;
@@ -23,8 +23,8 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
23
23
 
24
24
  const Page = _styledComponents.default.a.withConfig({
25
25
  displayName: "Pagination__Page",
26
- componentId: "sc-b80nss-0"
27
- })(["display:inline-block;min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:", ";text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;text-decoration:none;margin-right:", ";&:last-child{margin-right:0;}border:", " solid transparent;border-radius:", ";transition:border-color 0.2s cubic-bezier(0.3,0,0.5,1);&:hover,&:focus{text-decoration:none;border-color:", ";outline:0;transition-duration:0.1s;}&:active{border-color:", ";}&[rel='prev'],&[rel='next']{color:", ";}&[aria-current],&[aria-current]:hover{color:", ";background-color:", ";border-color:transparent;}&[aria-disabled],&[aria-disabled]:hover{color:", ";cursor:default;border-color:transparent;}@supports (clip-path:polygon(50% 0,100% 50%,50% 100%)){&[rel='prev']::before,&[rel='next']::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:'';background-color:currentColor;}&[rel='prev']::before{margin-right:", ";clip-path:polygon( 9.8px 12.8px,8.7px 12.8px,4.5px 8.5px,4.5px 7.5px,8.7px 3.2px,9.8px 4.3px,6.1px 8px,9.8px 11.7px,9.8px 12.8px );}&[rel='next']::after{margin-left:", ";clip-path:polygon( 6.2px 3.2px,7.3px 3.2px,11.5px 7.5px,11.5px 8.5px,7.3px 12.8px,6.2px 11.7px,9.9px 8px,6.2px 4.3px,6.2px 3.2px );}}"], (0, _constants.get)('colors.fg.default'), (0, _constants.get)('space.1'), (0, _constants.get)('borderWidths.1'), (0, _constants.get)('radii.2'), (0, _constants.get)('colors.border.default'), (0, _constants.get)('colors.border.muted'), (0, _constants.get)('colors.accent.fg'), (0, _constants.get)('colors.fg.onEmphasis'), (0, _constants.get)('colors.accent.emphasis'), (0, _constants.get)('colors.primer.fg.disabled'), (0, _constants.get)('space.1'), (0, _constants.get)('space.1'));
26
+ componentId: "b80nss-0"
27
+ })(["display:inline-block;min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:", ";text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;text-decoration:none;margin-right:", ";&:last-child{margin-right:0;}border:", " solid transparent;border-radius:", ";transition:border-color 0.2s cubic-bezier(0.3,0,0.5,1);&:hover,&:focus{text-decoration:none;border-color:", ";outline:0;transition-duration:0.1s;}&:active{border-color:", ";}&[rel='prev'],&[rel='next']{color:", ";}&[aria-current],&[aria-current]:hover{color:", ";background-color:", ";border-color:transparent;}&[aria-disabled],&[aria-disabled]:hover{color:", ";cursor:default;border-color:transparent;}@supports (clip-path:polygon(50% 0,100% 50%,50% 100%)){&[rel='prev']::before,&[rel='next']::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:'';background-color:currentColor;}&[rel='prev']::before{margin-right:", ";clip-path:polygon( 9.8px 12.8px,8.7px 12.8px,4.5px 8.5px,4.5px 7.5px,8.7px 3.2px,9.8px 4.3px,6.1px 8px,9.8px 11.7px,9.8px 12.8px );}&[rel='next']::after{margin-left:", ";clip-path:polygon( 6.2px 3.2px,7.3px 3.2px,11.5px 7.5px,11.5px 8.5px,7.3px 12.8px,6.2px 11.7px,9.9px 8px,6.2px 4.3px,6.2px 3.2px );}}", ";"], (0, _constants.get)('colors.fg.default'), (0, _constants.get)('space.1'), (0, _constants.get)('borderWidths.1'), (0, _constants.get)('radii.2'), (0, _constants.get)('colors.border.default'), (0, _constants.get)('colors.border.muted'), (0, _constants.get)('colors.accent.fg'), (0, _constants.get)('colors.fg.onEmphasis'), (0, _constants.get)('colors.accent.emphasis'), (0, _constants.get)('colors.primer.fg.disabled'), (0, _constants.get)('space.1'), (0, _constants.get)('space.1'), _constants.COMMON);
28
28
 
29
29
  function usePaginationPages({
30
30
  theme,
@@ -61,7 +61,7 @@ function usePaginationPages({
61
61
 
62
62
  const PaginationContainer = _styledComponents.default.nav.withConfig({
63
63
  displayName: "Pagination__PaginationContainer",
64
- componentId: "sc-b80nss-1"
64
+ componentId: "b80nss-1"
65
65
  })(["margin-top:20px;margin-bottom:15px;text-align:center;", ";"], _sx.default);
66
66
 
67
67
  function Pagination({