@primer/components 0.0.0-2021111223235 → 0.0.0-2021111225614

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 (717) hide show
  1. package/CHANGELOG.md +938 -43
  2. package/README.md +16 -16
  3. package/codemods/__tests__/deprecateUtilityComponents.js +200 -0
  4. package/codemods/__tests__/removeSystemProps.js +225 -0
  5. package/codemods/deprecateUtilityComponents.js +111 -0
  6. package/codemods/lib/modifyProps.js +9 -7
  7. package/codemods/lib/prettify.js +1 -1
  8. package/codemods/lib/replaceImportSource.js +5 -5
  9. package/codemods/removeSystemProps.js +312 -0
  10. package/dist/browser.esm.js +1267 -853
  11. package/dist/browser.esm.js.map +1 -1
  12. package/dist/browser.umd.js +1304 -890
  13. package/dist/browser.umd.js.map +1 -1
  14. package/lib/ActionList/Divider.d.ts +9 -0
  15. package/lib/ActionList/Divider.js +40 -0
  16. package/lib/ActionList/Group.d.ts +28 -0
  17. package/lib/ActionList/Group.js +35 -0
  18. package/lib/ActionList/Header.d.ts +29 -0
  19. package/lib/ActionList/Header.js +51 -0
  20. package/lib/ActionList/Item.d.ts +98 -0
  21. package/lib/ActionList/Item.js +276 -0
  22. package/lib/ActionList/List.d.ts +88 -0
  23. package/lib/ActionList/List.js +199 -0
  24. package/lib/ActionList/index.d.ts +17 -0
  25. package/lib/ActionList/index.js +29 -0
  26. package/lib/ActionList2/Description.d.ts +12 -0
  27. package/lib/ActionList2/Description.js +57 -0
  28. package/lib/ActionList2/Divider.d.ts +6 -0
  29. package/lib/ActionList2/Divider.js +40 -0
  30. package/lib/ActionList2/Group.d.ts +37 -0
  31. package/lib/ActionList2/Group.js +106 -0
  32. package/lib/ActionList2/Item.d.ts +63 -0
  33. package/lib/ActionList2/Item.js +260 -0
  34. package/lib/ActionList2/LinkItem.d.ts +17 -0
  35. package/lib/ActionList2/LinkItem.js +57 -0
  36. package/lib/ActionList2/List.d.ts +26 -0
  37. package/lib/ActionList2/List.js +68 -0
  38. package/lib/ActionList2/MenuContext.d.ts +10 -0
  39. package/lib/ActionList2/MenuContext.js +15 -0
  40. package/lib/ActionList2/Selection.d.ts +5 -0
  41. package/lib/ActionList2/Selection.js +97 -0
  42. package/lib/ActionList2/Visuals.d.ts +9 -0
  43. package/lib/ActionList2/Visuals.js +90 -0
  44. package/lib/ActionList2/index.d.ts +35 -0
  45. package/lib/ActionList2/index.js +47 -0
  46. package/lib/ActionMenu.d.ts +40 -0
  47. package/lib/ActionMenu.js +103 -0
  48. package/lib/ActionMenu2.d.ts +310 -0
  49. package/lib/ActionMenu2.js +91 -0
  50. package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  51. package/lib/AnchoredOverlay/AnchoredOverlay.js +124 -0
  52. package/lib/AnchoredOverlay/index.d.ts +2 -0
  53. package/lib/AnchoredOverlay/index.js +13 -0
  54. package/lib/Autocomplete/Autocomplete.d.ts +305 -0
  55. package/lib/Autocomplete/Autocomplete.js +145 -0
  56. package/lib/Autocomplete/AutocompleteContext.d.ts +17 -0
  57. package/lib/Autocomplete/AutocompleteContext.js +11 -0
  58. package/lib/Autocomplete/AutocompleteInput.d.ts +293 -0
  59. package/lib/Autocomplete/AutocompleteInput.js +157 -0
  60. package/lib/Autocomplete/AutocompleteMenu.d.ts +72 -0
  61. package/lib/Autocomplete/AutocompleteMenu.js +224 -0
  62. package/lib/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  63. package/lib/Autocomplete/AutocompleteOverlay.js +80 -0
  64. package/lib/Autocomplete/index.d.ts +2 -0
  65. package/lib/Autocomplete/index.js +15 -0
  66. package/lib/Avatar.d.ts +14 -0
  67. package/lib/Avatar.js +1 -12
  68. package/lib/AvatarPair.d.ts +8 -0
  69. package/lib/AvatarPair.js +9 -16
  70. package/lib/AvatarStack.d.ts +8 -0
  71. package/lib/AvatarStack.js +12 -23
  72. package/lib/BaseStyles.d.ts +14 -0
  73. package/lib/BaseStyles.js +25 -31
  74. package/lib/BorderBox.d.ts +7 -0
  75. package/lib/BorderBox.js +5 -16
  76. package/lib/Box.d.ts +6 -0
  77. package/lib/Box.js +2 -15
  78. package/lib/BranchName.d.ts +5 -0
  79. package/lib/BranchName.js +1 -14
  80. package/lib/Breadcrumbs.d.ts +41 -0
  81. package/lib/Breadcrumbs.js +82 -0
  82. package/lib/Button/Button.d.ts +284 -0
  83. package/lib/Button/Button.js +3 -15
  84. package/lib/Button/ButtonBase.d.ts +9 -0
  85. package/lib/Button/ButtonBase.js +2 -25
  86. package/lib/Button/ButtonClose.d.ts +279 -0
  87. package/lib/Button/ButtonClose.js +9 -26
  88. package/lib/Button/ButtonDanger.d.ts +284 -0
  89. package/lib/Button/ButtonDanger.js +2 -14
  90. package/lib/Button/ButtonGroup.d.ts +4 -0
  91. package/lib/Button/ButtonGroup.js +2 -8
  92. package/lib/Button/ButtonInvisible.d.ts +284 -0
  93. package/lib/Button/ButtonInvisible.js +3 -15
  94. package/lib/Button/ButtonOutline.d.ts +284 -0
  95. package/lib/Button/ButtonOutline.js +2 -14
  96. package/lib/Button/ButtonPrimary.d.ts +284 -0
  97. package/lib/Button/ButtonPrimary.js +2 -14
  98. package/lib/Button/ButtonStyles.d.ts +2 -0
  99. package/lib/Button/ButtonTableList.d.ts +5 -0
  100. package/lib/Button/ButtonTableList.js +1 -15
  101. package/lib/Button/index.d.ts +16 -0
  102. package/lib/Caret.d.ts +21 -0
  103. package/lib/Caret.js +14 -17
  104. package/lib/Checkbox.d.ts +29 -0
  105. package/lib/Checkbox.js +64 -0
  106. package/lib/CircleBadge.d.ts +24 -0
  107. package/lib/CircleBadge.js +2 -20
  108. package/lib/CircleOcticon.d.ts +392 -0
  109. package/lib/CircleOcticon.js +9 -18
  110. package/lib/CounterLabel.d.ts +7 -0
  111. package/lib/CounterLabel.js +3 -17
  112. package/lib/Details.d.ts +5 -0
  113. package/lib/Details.js +1 -11
  114. package/lib/Dialog/ConfirmationDialog.d.ts +44 -0
  115. package/lib/Dialog/ConfirmationDialog.js +191 -0
  116. package/lib/Dialog/Dialog.d.ts +163 -0
  117. package/lib/Dialog/Dialog.js +311 -0
  118. package/lib/Dialog.d.ts +406 -0
  119. package/lib/Dialog.js +34 -49
  120. package/lib/Dropdown.d.ts +1113 -0
  121. package/lib/Dropdown.js +45 -60
  122. package/lib/DropdownMenu/DropdownButton.d.ts +280 -0
  123. package/lib/DropdownMenu/DropdownButton.js +33 -0
  124. package/lib/DropdownMenu/DropdownMenu.d.ts +43 -0
  125. package/lib/DropdownMenu/DropdownMenu.js +94 -0
  126. package/lib/DropdownMenu/index.d.ts +4 -0
  127. package/lib/DropdownMenu/index.js +21 -0
  128. package/lib/DropdownStyles.d.ts +3 -0
  129. package/lib/DropdownStyles.js +6 -6
  130. package/lib/FilterList.d.ts +283 -0
  131. package/lib/FilterList.js +2 -30
  132. package/lib/FilteredActionList/FilteredActionList.d.ts +16 -0
  133. package/lib/FilteredActionList/FilteredActionList.js +137 -0
  134. package/lib/FilteredActionList/index.d.ts +2 -0
  135. package/lib/FilteredActionList/index.js +13 -0
  136. package/lib/FilteredSearch.d.ts +5 -0
  137. package/lib/FilteredSearch.js +1 -12
  138. package/lib/Flash.d.ts +8 -0
  139. package/lib/Flash.js +35 -14
  140. package/lib/Flex.d.ts +7 -0
  141. package/lib/Flex.js +3 -5
  142. package/lib/FormGroup.d.ts +11 -0
  143. package/lib/FormGroup.js +2 -22
  144. package/lib/Grid.d.ts +7 -0
  145. package/lib/Grid.js +4 -9
  146. package/lib/Header.d.ts +23 -0
  147. package/lib/Header.js +7 -37
  148. package/lib/Heading.d.ts +5 -0
  149. package/lib/Heading.js +1 -13
  150. package/lib/Label.d.ts +10 -0
  151. package/lib/Label.js +5 -19
  152. package/lib/LabelGroup.d.ts +5 -0
  153. package/lib/LabelGroup.js +1 -9
  154. package/lib/Link.d.ts +9 -0
  155. package/lib/Link.js +2 -30
  156. package/lib/NewButton/button-counter.d.ts +6 -0
  157. package/lib/NewButton/button-counter.js +31 -0
  158. package/lib/NewButton/button.d.ts +13 -0
  159. package/lib/NewButton/button.js +308 -0
  160. package/lib/NewButton/index.d.ts +14 -0
  161. package/lib/NewButton/index.js +15 -0
  162. package/lib/NewButton/types.d.ts +32 -0
  163. package/lib/{utils → NewButton}/types.js +0 -0
  164. package/lib/Overlay.d.ts +66 -0
  165. package/lib/Overlay.js +184 -0
  166. package/lib/Pagehead.d.ts +5 -0
  167. package/lib/Pagehead.js +1 -13
  168. package/lib/Pagination/Pagination.d.ts +24 -0
  169. package/lib/Pagination/Pagination.js +14 -29
  170. package/lib/Pagination/index.d.ts +3 -0
  171. package/lib/Pagination/model.d.ts +26 -0
  172. package/lib/Pagination/model.js +1 -1
  173. package/lib/PointerBox.d.ts +11 -0
  174. package/lib/PointerBox.js +4 -13
  175. package/lib/Popover.d.ts +20 -0
  176. package/lib/Popover.js +5 -29
  177. package/lib/Portal/Portal.d.ts +25 -0
  178. package/lib/Portal/Portal.js +101 -0
  179. package/lib/Portal/index.d.ts +4 -0
  180. package/lib/Portal/index.js +17 -0
  181. package/lib/Position.d.ts +34 -0
  182. package/lib/Position.js +46 -46
  183. package/lib/ProgressBar.d.ts +26 -0
  184. package/lib/ProgressBar.js +8 -27
  185. package/lib/SelectMenu/SelectMenu.d.ts +1670 -0
  186. package/lib/SelectMenu/SelectMenu.js +32 -44
  187. package/lib/SelectMenu/SelectMenuContext.d.ts +8 -0
  188. package/lib/SelectMenu/SelectMenuContext.js +1 -1
  189. package/lib/SelectMenu/SelectMenuDivider.d.ts +5 -0
  190. package/lib/SelectMenu/SelectMenuDivider.js +6 -14
  191. package/lib/SelectMenu/SelectMenuFilter.d.ts +9 -0
  192. package/lib/SelectMenu/SelectMenuFilter.js +13 -21
  193. package/lib/SelectMenu/SelectMenuFooter.d.ts +5 -0
  194. package/lib/SelectMenu/SelectMenuFooter.js +6 -14
  195. package/lib/SelectMenu/SelectMenuHeader.d.ts +10 -0
  196. package/lib/SelectMenu/SelectMenuHeader.js +4 -17
  197. package/lib/SelectMenu/SelectMenuItem.d.ts +14 -0
  198. package/lib/SelectMenu/SelectMenuItem.js +13 -21
  199. package/lib/SelectMenu/SelectMenuList.d.ts +5 -0
  200. package/lib/SelectMenu/SelectMenuList.js +6 -14
  201. package/lib/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  202. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +6 -17
  203. package/lib/SelectMenu/SelectMenuModal.d.ts +14 -0
  204. package/lib/SelectMenu/SelectMenuModal.js +11 -23
  205. package/lib/SelectMenu/SelectMenuTab.d.ts +13 -0
  206. package/lib/SelectMenu/SelectMenuTab.js +16 -26
  207. package/lib/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  208. package/lib/SelectMenu/SelectMenuTabPanel.js +14 -25
  209. package/lib/SelectMenu/SelectMenuTabs.d.ts +10 -0
  210. package/lib/SelectMenu/SelectMenuTabs.js +10 -17
  211. package/lib/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  212. package/lib/SelectMenu/hooks/useKeyboardNav.js +2 -0
  213. package/lib/SelectMenu/index.d.ts +2 -0
  214. package/lib/SelectMenu/index.js +7 -5
  215. package/lib/SelectPanel/SelectPanel.d.ts +25 -0
  216. package/lib/SelectPanel/SelectPanel.js +147 -0
  217. package/lib/SelectPanel/index.d.ts +2 -0
  218. package/lib/SelectPanel/index.js +13 -0
  219. package/lib/SideNav.d.ts +34 -0
  220. package/lib/SideNav.js +23 -41
  221. package/lib/Spinner.d.ts +16 -0
  222. package/lib/Spinner.js +58 -0
  223. package/lib/StateLabel.d.ts +15 -0
  224. package/lib/StateLabel.js +53 -23
  225. package/lib/StyledOcticon.d.ts +11 -0
  226. package/lib/StyledOcticon.js +1 -15
  227. package/lib/SubNav.d.ts +26 -0
  228. package/lib/SubNav.js +10 -41
  229. package/lib/TabNav.d.ts +19 -0
  230. package/lib/TabNav.js +15 -37
  231. package/lib/Text.d.ts +6 -0
  232. package/lib/Text.js +0 -12
  233. package/lib/TextInput.d.ts +14 -0
  234. package/lib/TextInput.js +25 -76
  235. package/lib/TextInputWithTokens.d.ts +328 -0
  236. package/lib/TextInputWithTokens.js +318 -0
  237. package/lib/ThemeProvider.d.ts +26 -0
  238. package/lib/ThemeProvider.js +193 -0
  239. package/lib/Timeline.d.ts +33 -0
  240. package/lib/Timeline.js +34 -87
  241. package/lib/Token/AvatarToken.d.ts +7 -0
  242. package/lib/Token/AvatarToken.js +64 -0
  243. package/lib/Token/IssueLabelToken.d.ts +14 -0
  244. package/lib/Token/IssueLabelToken.js +144 -0
  245. package/lib/Token/Token.d.ts +15 -0
  246. package/lib/Token/Token.js +105 -0
  247. package/lib/Token/TokenBase.d.ts +31 -0
  248. package/lib/Token/TokenBase.js +104 -0
  249. package/lib/Token/_RemoveTokenButton.d.ts +12 -0
  250. package/lib/Token/_RemoveTokenButton.js +90 -0
  251. package/lib/Token/_TokenTextContainer.d.ts +3 -0
  252. package/lib/Token/_TokenTextContainer.js +17 -0
  253. package/lib/Token/index.d.ts +3 -0
  254. package/lib/Token/index.js +31 -0
  255. package/lib/Tooltip.d.ts +17 -0
  256. package/lib/Tooltip.js +4 -21
  257. package/lib/Truncate.d.ts +10 -0
  258. package/lib/Truncate.js +2 -18
  259. package/lib/UnderlineNav.d.ts +24 -0
  260. package/lib/UnderlineNav.js +3 -29
  261. package/lib/_TextInputWrapper.d.ts +10 -0
  262. package/lib/_TextInputWrapper.js +51 -0
  263. package/lib/_UnstyledTextInput.d.ts +2 -0
  264. package/lib/_UnstyledTextInput.js +20 -0
  265. package/lib/behaviors/anchoredPosition.d.ts +89 -0
  266. package/lib/behaviors/anchoredPosition.js +316 -0
  267. package/lib/behaviors/focusTrap.d.ts +12 -0
  268. package/lib/behaviors/focusTrap.js +179 -0
  269. package/lib/behaviors/focusZone.d.ts +137 -0
  270. package/lib/behaviors/focusZone.js +578 -0
  271. package/lib/behaviors/scrollIntoViewingArea.d.ts +1 -0
  272. package/lib/behaviors/scrollIntoViewingArea.js +39 -0
  273. package/lib/constants.d.ts +20 -0
  274. package/lib/constants.js +11 -27
  275. package/lib/drafts.d.ts +9 -0
  276. package/lib/drafts.js +44 -0
  277. package/lib/hooks/index.d.ts +11 -0
  278. package/lib/hooks/index.js +61 -0
  279. package/lib/hooks/useAnchoredPosition.d.ts +20 -0
  280. package/lib/hooks/useAnchoredPosition.js +51 -0
  281. package/lib/hooks/useCombinedRefs.d.ts +10 -0
  282. package/lib/hooks/useCombinedRefs.js +47 -0
  283. package/lib/hooks/useDetails.d.ts +17 -0
  284. package/lib/hooks/useDialog.d.ts +16 -0
  285. package/lib/hooks/useDialog.js +21 -6
  286. package/lib/hooks/useFocusTrap.d.ts +32 -0
  287. package/lib/hooks/useFocusTrap.js +69 -0
  288. package/lib/hooks/useFocusZone.d.ts +23 -0
  289. package/lib/hooks/useFocusZone.js +53 -0
  290. package/lib/hooks/useOnEscapePress.d.ts +23 -0
  291. package/lib/hooks/useOnEscapePress.js +69 -0
  292. package/lib/hooks/useOnOutsideClick.d.ts +8 -0
  293. package/lib/hooks/useOnOutsideClick.js +90 -0
  294. package/lib/hooks/useOpenAndCloseFocus.d.ts +8 -0
  295. package/lib/hooks/useOpenAndCloseFocus.js +36 -0
  296. package/lib/hooks/useOverlay.d.ts +15 -0
  297. package/lib/hooks/useOverlay.js +43 -0
  298. package/lib/hooks/useProvidedRefOrCreate.d.ts +10 -0
  299. package/lib/hooks/useProvidedRefOrCreate.js +24 -0
  300. package/lib/hooks/useProvidedStateOrCreate.d.ts +10 -0
  301. package/lib/hooks/useProvidedStateOrCreate.js +27 -0
  302. package/lib/hooks/useRenderForcingRef.d.ts +8 -0
  303. package/lib/hooks/useRenderForcingRef.js +25 -0
  304. package/lib/hooks/useResizeObserver.d.ts +1 -0
  305. package/lib/hooks/useResizeObserver.js +20 -0
  306. package/lib/hooks/useSafeTimeout.d.ts +12 -0
  307. package/lib/hooks/useSafeTimeout.js +38 -0
  308. package/lib/hooks/useScrollFlash.d.ts +6 -0
  309. package/lib/hooks/useScrollFlash.js +29 -0
  310. package/lib/index.d.ts +120 -0
  311. package/lib/index.js +191 -7
  312. package/lib/polyfills/eventListenerSignal.d.ts +6 -0
  313. package/lib/polyfills/eventListenerSignal.js +64 -0
  314. package/lib/sx.d.ts +14 -0
  315. package/lib/sx.js +8 -5
  316. package/lib/theme-preval.d.ts +49 -0
  317. package/lib/theme-preval.js +3119 -357
  318. package/lib/theme.d.ts +80 -0
  319. package/lib/theme.js +5 -8
  320. package/lib/utils/create-slots.d.ts +17 -0
  321. package/lib/utils/create-slots.js +105 -0
  322. package/lib/utils/deprecate.d.ts +18 -0
  323. package/lib/utils/deprecate.js +6 -5
  324. package/lib/utils/isNumeric.d.ts +1 -0
  325. package/lib/utils/isNumeric.js +1 -0
  326. package/lib/utils/iterateFocusableElements.d.ts +42 -0
  327. package/lib/utils/iterateFocusableElements.js +113 -0
  328. package/lib/utils/ssr.d.ts +1 -0
  329. package/lib/utils/ssr.js +19 -0
  330. package/lib/utils/test-deprecations.d.ts +1 -0
  331. package/lib/utils/test-deprecations.js +2 -1
  332. package/lib/utils/test-helpers.d.ts +0 -0
  333. package/lib/utils/test-helpers.js +9 -0
  334. package/lib/utils/test-matchers.d.ts +1 -0
  335. package/lib/utils/test-matchers.js +6 -50
  336. package/lib/utils/testing.d.ts +545 -0
  337. package/lib/utils/testing.js +65 -49
  338. package/lib/utils/theme.d.ts +9 -0
  339. package/lib/utils/theme.js +68 -0
  340. package/lib/utils/types/AriaRole.d.ts +1 -0
  341. package/lib/utils/types/AriaRole.js +1 -0
  342. package/lib/utils/types/ComponentProps.d.ts +9 -0
  343. package/lib/utils/types/ComponentProps.js +1 -0
  344. package/lib/utils/types/Flatten.d.ts +4 -0
  345. package/lib/utils/types/Flatten.js +1 -0
  346. package/lib/utils/types/KeyPaths.d.ts +3 -0
  347. package/lib/utils/types/KeyPaths.js +1 -0
  348. package/lib/utils/types/MandateProps.d.ts +3 -0
  349. package/lib/utils/types/MandateProps.js +1 -0
  350. package/lib/utils/types/Merge.d.ts +19 -0
  351. package/lib/utils/types/Merge.js +1 -0
  352. package/lib/utils/types/index.d.ts +5 -0
  353. package/lib/utils/types/index.js +70 -0
  354. package/lib/utils/uniqueId.d.ts +1 -0
  355. package/lib/utils/uniqueId.js +12 -0
  356. package/lib/utils/use-force-update.d.ts +1 -0
  357. package/lib/utils/use-force-update.js +19 -0
  358. package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  359. package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
  360. package/lib/utils/userAgent.d.ts +1 -0
  361. package/lib/utils/userAgent.js +15 -0
  362. package/lib-esm/ActionList/Divider.d.ts +9 -0
  363. package/lib-esm/ActionList/Divider.js +23 -0
  364. package/lib-esm/ActionList/Group.d.ts +28 -0
  365. package/lib-esm/ActionList/Group.js +24 -0
  366. package/lib-esm/ActionList/Header.d.ts +29 -0
  367. package/lib-esm/ActionList/Header.js +33 -0
  368. package/lib-esm/ActionList/Item.d.ts +98 -0
  369. package/lib-esm/ActionList/Item.js +241 -0
  370. package/lib-esm/ActionList/List.d.ts +88 -0
  371. package/lib-esm/ActionList/List.js +181 -0
  372. package/lib-esm/ActionList/index.d.ts +17 -0
  373. package/lib-esm/ActionList/index.js +18 -0
  374. package/lib-esm/ActionList2/Description.d.ts +12 -0
  375. package/lib-esm/ActionList2/Description.js +41 -0
  376. package/lib-esm/ActionList2/Divider.d.ts +6 -0
  377. package/lib-esm/ActionList2/Divider.js +26 -0
  378. package/lib-esm/ActionList2/Group.d.ts +37 -0
  379. package/lib-esm/ActionList2/Group.js +87 -0
  380. package/lib-esm/ActionList2/Item.d.ts +63 -0
  381. package/lib-esm/ActionList2/Item.js +224 -0
  382. package/lib-esm/ActionList2/LinkItem.d.ts +17 -0
  383. package/lib-esm/ActionList2/LinkItem.js +43 -0
  384. package/lib-esm/ActionList2/List.d.ts +26 -0
  385. package/lib-esm/ActionList2/List.js +44 -0
  386. package/lib-esm/ActionList2/MenuContext.d.ts +10 -0
  387. package/lib-esm/ActionList2/MenuContext.js +3 -0
  388. package/lib-esm/ActionList2/Selection.d.ts +5 -0
  389. package/lib-esm/ActionList2/Selection.js +77 -0
  390. package/lib-esm/ActionList2/Visuals.d.ts +9 -0
  391. package/lib-esm/ActionList2/Visuals.js +68 -0
  392. package/lib-esm/ActionList2/index.d.ts +35 -0
  393. package/lib-esm/ActionList2/index.js +33 -0
  394. package/lib-esm/ActionMenu.d.ts +40 -0
  395. package/lib-esm/ActionMenu.js +82 -0
  396. package/lib-esm/ActionMenu2.d.ts +310 -0
  397. package/lib-esm/ActionMenu2.js +67 -0
  398. package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +62 -0
  399. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +104 -0
  400. package/lib-esm/AnchoredOverlay/index.d.ts +2 -0
  401. package/lib-esm/AnchoredOverlay/index.js +1 -0
  402. package/lib-esm/Autocomplete/Autocomplete.d.ts +305 -0
  403. package/lib-esm/Autocomplete/Autocomplete.js +123 -0
  404. package/lib-esm/Autocomplete/AutocompleteContext.d.ts +17 -0
  405. package/lib-esm/Autocomplete/AutocompleteContext.js +2 -0
  406. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +293 -0
  407. package/lib-esm/Autocomplete/AutocompleteInput.js +138 -0
  408. package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +72 -0
  409. package/lib-esm/Autocomplete/AutocompleteMenu.js +205 -0
  410. package/lib-esm/Autocomplete/AutocompleteOverlay.d.ts +20 -0
  411. package/lib-esm/Autocomplete/AutocompleteOverlay.js +62 -0
  412. package/lib-esm/Autocomplete/index.d.ts +2 -0
  413. package/lib-esm/Autocomplete/index.js +1 -0
  414. package/lib-esm/Avatar.d.ts +14 -0
  415. package/lib-esm/Avatar.js +2 -11
  416. package/lib-esm/AvatarPair.d.ts +8 -0
  417. package/lib-esm/AvatarPair.js +8 -14
  418. package/lib-esm/AvatarStack.d.ts +8 -0
  419. package/lib-esm/AvatarStack.js +12 -21
  420. package/lib-esm/BaseStyles.d.ts +14 -0
  421. package/lib-esm/BaseStyles.js +23 -26
  422. package/lib-esm/BorderBox.d.ts +7 -0
  423. package/lib-esm/BorderBox.js +6 -12
  424. package/lib-esm/Box.d.ts +6 -0
  425. package/lib-esm/Box.js +2 -13
  426. package/lib-esm/BranchName.d.ts +5 -0
  427. package/lib-esm/BranchName.js +2 -13
  428. package/lib-esm/Breadcrumbs.d.ts +41 -0
  429. package/lib-esm/Breadcrumbs.js +58 -0
  430. package/lib-esm/Button/Button.d.ts +284 -0
  431. package/lib-esm/Button/Button.js +3 -10
  432. package/lib-esm/Button/ButtonBase.d.ts +9 -0
  433. package/lib-esm/Button/ButtonBase.js +1 -19
  434. package/lib-esm/Button/ButtonClose.d.ts +279 -0
  435. package/lib-esm/Button/ButtonClose.js +5 -20
  436. package/lib-esm/Button/ButtonDanger.d.ts +284 -0
  437. package/lib-esm/Button/ButtonDanger.js +2 -9
  438. package/lib-esm/Button/ButtonGroup.d.ts +4 -0
  439. package/lib-esm/Button/ButtonGroup.js +2 -7
  440. package/lib-esm/Button/ButtonInvisible.d.ts +284 -0
  441. package/lib-esm/Button/ButtonInvisible.js +3 -10
  442. package/lib-esm/Button/ButtonOutline.d.ts +284 -0
  443. package/lib-esm/Button/ButtonOutline.js +2 -9
  444. package/lib-esm/Button/ButtonPrimary.d.ts +284 -0
  445. package/lib-esm/Button/ButtonPrimary.js +2 -9
  446. package/lib-esm/Button/ButtonStyles.d.ts +2 -0
  447. package/lib-esm/Button/ButtonTableList.d.ts +5 -0
  448. package/lib-esm/Button/ButtonTableList.js +2 -14
  449. package/lib-esm/Button/index.d.ts +16 -0
  450. package/lib-esm/Caret.d.ts +21 -0
  451. package/lib-esm/Caret.js +13 -16
  452. package/lib-esm/Checkbox.d.ts +29 -0
  453. package/lib-esm/Checkbox.js +44 -0
  454. package/lib-esm/CircleBadge.d.ts +24 -0
  455. package/lib-esm/CircleBadge.js +3 -19
  456. package/lib-esm/CircleOcticon.d.ts +392 -0
  457. package/lib-esm/CircleOcticon.js +9 -15
  458. package/lib-esm/CounterLabel.d.ts +7 -0
  459. package/lib-esm/CounterLabel.js +4 -16
  460. package/lib-esm/Details.d.ts +5 -0
  461. package/lib-esm/Details.js +1 -9
  462. package/lib-esm/Dialog/ConfirmationDialog.d.ts +44 -0
  463. package/lib-esm/Dialog/ConfirmationDialog.js +169 -0
  464. package/lib-esm/Dialog/Dialog.d.ts +163 -0
  465. package/lib-esm/Dialog/Dialog.js +275 -0
  466. package/lib-esm/Dialog.d.ts +406 -0
  467. package/lib-esm/Dialog.js +31 -46
  468. package/lib-esm/Dropdown.d.ts +1113 -0
  469. package/lib-esm/Dropdown.js +38 -58
  470. package/lib-esm/DropdownMenu/DropdownButton.d.ts +280 -0
  471. package/lib-esm/DropdownMenu/DropdownButton.js +18 -0
  472. package/lib-esm/DropdownMenu/DropdownMenu.d.ts +43 -0
  473. package/lib-esm/DropdownMenu/DropdownMenu.js +77 -0
  474. package/lib-esm/DropdownMenu/index.d.ts +4 -0
  475. package/lib-esm/DropdownMenu/index.js +2 -0
  476. package/lib-esm/DropdownStyles.d.ts +3 -0
  477. package/lib-esm/DropdownStyles.js +6 -6
  478. package/lib-esm/FilterList.d.ts +283 -0
  479. package/lib-esm/FilterList.js +3 -29
  480. package/lib-esm/FilteredActionList/FilteredActionList.d.ts +16 -0
  481. package/lib-esm/FilteredActionList/FilteredActionList.js +109 -0
  482. package/lib-esm/FilteredActionList/index.d.ts +2 -0
  483. package/lib-esm/FilteredActionList/index.js +1 -0
  484. package/lib-esm/FilteredSearch.d.ts +5 -0
  485. package/lib-esm/FilteredSearch.js +2 -11
  486. package/lib-esm/Flash.d.ts +8 -0
  487. package/lib-esm/Flash.js +36 -13
  488. package/lib-esm/Flex.d.ts +7 -0
  489. package/lib-esm/Flex.js +4 -4
  490. package/lib-esm/FormGroup.d.ts +11 -0
  491. package/lib-esm/FormGroup.js +3 -20
  492. package/lib-esm/Grid.d.ts +7 -0
  493. package/lib-esm/Grid.js +5 -7
  494. package/lib-esm/Header.d.ts +23 -0
  495. package/lib-esm/Header.js +6 -34
  496. package/lib-esm/Heading.d.ts +5 -0
  497. package/lib-esm/Heading.js +2 -12
  498. package/lib-esm/Label.d.ts +10 -0
  499. package/lib-esm/Label.js +3 -15
  500. package/lib-esm/LabelGroup.d.ts +5 -0
  501. package/lib-esm/LabelGroup.js +2 -9
  502. package/lib-esm/Link.d.ts +9 -0
  503. package/lib-esm/Link.js +2 -28
  504. package/lib-esm/NewButton/button-counter.d.ts +6 -0
  505. package/lib-esm/NewButton/button-counter.js +18 -0
  506. package/lib-esm/NewButton/button.d.ts +13 -0
  507. package/lib-esm/NewButton/button.js +287 -0
  508. package/lib-esm/NewButton/index.d.ts +14 -0
  509. package/lib-esm/NewButton/index.js +5 -0
  510. package/lib-esm/NewButton/types.d.ts +32 -0
  511. package/lib-esm/NewButton/types.js +1 -0
  512. package/lib-esm/Overlay.d.ts +66 -0
  513. package/lib-esm/Overlay.js +160 -0
  514. package/lib-esm/Pagehead.d.ts +5 -0
  515. package/lib-esm/Pagehead.js +2 -12
  516. package/lib-esm/Pagination/Pagination.d.ts +24 -0
  517. package/lib-esm/Pagination/Pagination.js +15 -28
  518. package/lib-esm/Pagination/index.d.ts +3 -0
  519. package/lib-esm/Pagination/model.d.ts +26 -0
  520. package/lib-esm/Pagination/model.js +1 -1
  521. package/lib-esm/PointerBox.d.ts +11 -0
  522. package/lib-esm/PointerBox.js +4 -11
  523. package/lib-esm/Popover.d.ts +20 -0
  524. package/lib-esm/Popover.js +5 -27
  525. package/lib-esm/Portal/Portal.d.ts +25 -0
  526. package/lib-esm/Portal/Portal.js +83 -0
  527. package/lib-esm/Portal/index.d.ts +4 -0
  528. package/lib-esm/Portal/index.js +3 -0
  529. package/lib-esm/Position.d.ts +34 -0
  530. package/lib-esm/Position.js +42 -37
  531. package/lib-esm/ProgressBar.d.ts +26 -0
  532. package/lib-esm/ProgressBar.js +9 -25
  533. package/lib-esm/SelectMenu/SelectMenu.d.ts +1670 -0
  534. package/lib-esm/SelectMenu/SelectMenu.js +27 -38
  535. package/lib-esm/SelectMenu/SelectMenuContext.d.ts +8 -0
  536. package/lib-esm/SelectMenu/SelectMenuContext.js +1 -1
  537. package/lib-esm/SelectMenu/SelectMenuDivider.d.ts +5 -0
  538. package/lib-esm/SelectMenu/SelectMenuDivider.js +4 -11
  539. package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +9 -0
  540. package/lib-esm/SelectMenu/SelectMenuFilter.js +13 -19
  541. package/lib-esm/SelectMenu/SelectMenuFooter.d.ts +5 -0
  542. package/lib-esm/SelectMenu/SelectMenuFooter.js +4 -11
  543. package/lib-esm/SelectMenu/SelectMenuHeader.d.ts +10 -0
  544. package/lib-esm/SelectMenu/SelectMenuHeader.js +7 -18
  545. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +14 -0
  546. package/lib-esm/SelectMenu/SelectMenuItem.js +11 -17
  547. package/lib-esm/SelectMenu/SelectMenuList.d.ts +5 -0
  548. package/lib-esm/SelectMenu/SelectMenuList.js +4 -11
  549. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.d.ts +7 -0
  550. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +7 -13
  551. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +14 -0
  552. package/lib-esm/SelectMenu/SelectMenuModal.js +10 -20
  553. package/lib-esm/SelectMenu/SelectMenuTab.d.ts +13 -0
  554. package/lib-esm/SelectMenu/SelectMenuTab.js +13 -21
  555. package/lib-esm/SelectMenu/SelectMenuTabPanel.d.ts +12 -0
  556. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +9 -19
  557. package/lib-esm/SelectMenu/SelectMenuTabs.d.ts +10 -0
  558. package/lib-esm/SelectMenu/SelectMenuTabs.js +8 -15
  559. package/lib-esm/SelectMenu/hooks/useKeyboardNav.d.ts +2 -0
  560. package/lib-esm/SelectMenu/hooks/useKeyboardNav.js +2 -0
  561. package/lib-esm/SelectMenu/index.d.ts +2 -0
  562. package/lib-esm/SelectMenu/index.js +1 -2
  563. package/lib-esm/SelectPanel/SelectPanel.d.ts +25 -0
  564. package/lib-esm/SelectPanel/SelectPanel.js +127 -0
  565. package/lib-esm/SelectPanel/index.d.ts +2 -0
  566. package/lib-esm/SelectPanel/index.js +1 -0
  567. package/lib-esm/SideNav.d.ts +34 -0
  568. package/lib-esm/SideNav.js +20 -36
  569. package/lib-esm/Spinner.d.ts +16 -0
  570. package/lib-esm/Spinner.js +45 -0
  571. package/lib-esm/StateLabel.d.ts +15 -0
  572. package/lib-esm/StateLabel.js +55 -23
  573. package/lib-esm/StyledOcticon.d.ts +11 -0
  574. package/lib-esm/StyledOcticon.js +1 -12
  575. package/lib-esm/SubNav.d.ts +26 -0
  576. package/lib-esm/SubNav.js +10 -38
  577. package/lib-esm/TabNav.d.ts +19 -0
  578. package/lib-esm/TabNav.js +13 -33
  579. package/lib-esm/Text.d.ts +6 -0
  580. package/lib-esm/Text.js +0 -10
  581. package/lib-esm/TextInput.d.ts +14 -0
  582. package/lib-esm/TextInput.js +24 -62
  583. package/lib-esm/TextInputWithTokens.d.ts +328 -0
  584. package/lib-esm/TextInputWithTokens.js +291 -0
  585. package/lib-esm/ThemeProvider.d.ts +26 -0
  586. package/lib-esm/ThemeProvider.js +161 -0
  587. package/lib-esm/Timeline.d.ts +33 -0
  588. package/lib-esm/Timeline.js +26 -81
  589. package/lib-esm/Token/AvatarToken.d.ts +7 -0
  590. package/lib-esm/Token/AvatarToken.js +43 -0
  591. package/lib-esm/Token/IssueLabelToken.d.ts +14 -0
  592. package/lib-esm/Token/IssueLabelToken.js +124 -0
  593. package/lib-esm/Token/Token.d.ts +15 -0
  594. package/lib-esm/Token/Token.js +84 -0
  595. package/lib-esm/Token/TokenBase.d.ts +31 -0
  596. package/lib-esm/Token/TokenBase.js +83 -0
  597. package/lib-esm/Token/_RemoveTokenButton.d.ts +12 -0
  598. package/lib-esm/Token/_RemoveTokenButton.js +69 -0
  599. package/lib-esm/Token/_TokenTextContainer.d.ts +3 -0
  600. package/lib-esm/Token/_TokenTextContainer.js +6 -0
  601. package/lib-esm/Token/index.d.ts +3 -0
  602. package/lib-esm/Token/index.js +3 -0
  603. package/lib-esm/Tooltip.d.ts +17 -0
  604. package/lib-esm/Tooltip.js +4 -19
  605. package/lib-esm/Truncate.d.ts +10 -0
  606. package/lib-esm/Truncate.js +2 -15
  607. package/lib-esm/UnderlineNav.d.ts +24 -0
  608. package/lib-esm/UnderlineNav.js +5 -28
  609. package/lib-esm/_TextInputWrapper.d.ts +10 -0
  610. package/lib-esm/_TextInputWrapper.js +31 -0
  611. package/lib-esm/_UnstyledTextInput.d.ts +2 -0
  612. package/lib-esm/_UnstyledTextInput.js +7 -0
  613. package/lib-esm/behaviors/anchoredPosition.d.ts +89 -0
  614. package/lib-esm/behaviors/anchoredPosition.js +309 -0
  615. package/lib-esm/behaviors/focusTrap.d.ts +12 -0
  616. package/lib-esm/behaviors/focusTrap.js +170 -0
  617. package/lib-esm/behaviors/focusZone.d.ts +137 -0
  618. package/lib-esm/behaviors/focusZone.js +560 -0
  619. package/lib-esm/behaviors/scrollIntoViewingArea.d.ts +1 -0
  620. package/lib-esm/behaviors/scrollIntoViewingArea.js +30 -0
  621. package/lib-esm/constants.d.ts +20 -0
  622. package/lib-esm/constants.js +9 -23
  623. package/lib-esm/drafts.d.ts +9 -0
  624. package/lib-esm/drafts.js +10 -0
  625. package/lib-esm/hooks/index.d.ts +11 -0
  626. package/lib-esm/hooks/index.js +7 -0
  627. package/lib-esm/hooks/useAnchoredPosition.d.ts +20 -0
  628. package/lib-esm/hooks/useAnchoredPosition.js +35 -0
  629. package/lib-esm/hooks/useCombinedRefs.d.ts +10 -0
  630. package/lib-esm/hooks/useCombinedRefs.js +37 -0
  631. package/lib-esm/hooks/useDetails.d.ts +17 -0
  632. package/lib-esm/hooks/useDialog.d.ts +16 -0
  633. package/lib-esm/hooks/useDialog.js +21 -6
  634. package/lib-esm/hooks/useFocusTrap.d.ts +32 -0
  635. package/lib-esm/hooks/useFocusTrap.js +54 -0
  636. package/lib-esm/hooks/useFocusZone.d.ts +23 -0
  637. package/lib-esm/hooks/useFocusZone.js +37 -0
  638. package/lib-esm/hooks/useOnEscapePress.d.ts +23 -0
  639. package/lib-esm/hooks/useOnEscapePress.js +59 -0
  640. package/lib-esm/hooks/useOnOutsideClick.d.ts +8 -0
  641. package/lib-esm/hooks/useOnOutsideClick.js +79 -0
  642. package/lib-esm/hooks/useOpenAndCloseFocus.d.ts +8 -0
  643. package/lib-esm/hooks/useOpenAndCloseFocus.js +27 -0
  644. package/lib-esm/hooks/useOverlay.d.ts +15 -0
  645. package/lib-esm/hooks/useOverlay.js +30 -0
  646. package/lib-esm/hooks/useProvidedRefOrCreate.d.ts +10 -0
  647. package/lib-esm/hooks/useProvidedRefOrCreate.js +14 -0
  648. package/lib-esm/hooks/useProvidedStateOrCreate.d.ts +10 -0
  649. package/lib-esm/hooks/useProvidedStateOrCreate.js +20 -0
  650. package/lib-esm/hooks/useRenderForcingRef.d.ts +8 -0
  651. package/lib-esm/hooks/useRenderForcingRef.js +18 -0
  652. package/lib-esm/hooks/useResizeObserver.d.ts +1 -0
  653. package/lib-esm/hooks/useResizeObserver.js +10 -0
  654. package/lib-esm/hooks/useSafeTimeout.d.ts +12 -0
  655. package/lib-esm/hooks/useSafeTimeout.js +31 -0
  656. package/lib-esm/hooks/useScrollFlash.d.ts +6 -0
  657. package/lib-esm/hooks/useScrollFlash.js +22 -0
  658. package/lib-esm/index.d.ts +120 -0
  659. package/lib-esm/index.js +29 -7
  660. package/lib-esm/polyfills/eventListenerSignal.d.ts +6 -0
  661. package/lib-esm/polyfills/eventListenerSignal.js +57 -0
  662. package/lib-esm/sx.d.ts +14 -0
  663. package/lib-esm/sx.js +3 -5
  664. package/lib-esm/theme-preval.d.ts +49 -0
  665. package/lib-esm/theme-preval.js +3119 -357
  666. package/lib-esm/theme.d.ts +80 -0
  667. package/lib-esm/theme.js +3 -8
  668. package/lib-esm/utils/create-slots.d.ts +17 -0
  669. package/lib-esm/utils/create-slots.js +84 -0
  670. package/lib-esm/utils/deprecate.d.ts +18 -0
  671. package/lib-esm/utils/deprecate.js +6 -5
  672. package/lib-esm/utils/isNumeric.d.ts +1 -0
  673. package/lib-esm/utils/isNumeric.js +1 -0
  674. package/lib-esm/utils/iterateFocusableElements.d.ts +42 -0
  675. package/lib-esm/utils/iterateFocusableElements.js +102 -0
  676. package/lib-esm/utils/ssr.d.ts +1 -0
  677. package/lib-esm/utils/ssr.js +1 -0
  678. package/lib-esm/utils/test-deprecations.d.ts +1 -0
  679. package/lib-esm/utils/test-deprecations.js +1 -1
  680. package/lib-esm/utils/{types.js → test-helpers.d.ts} +0 -0
  681. package/lib-esm/utils/test-helpers.js +7 -0
  682. package/lib-esm/utils/test-matchers.d.ts +1 -0
  683. package/lib-esm/utils/test-matchers.js +7 -49
  684. package/lib-esm/utils/testing.d.ts +545 -0
  685. package/lib-esm/utils/testing.js +60 -46
  686. package/lib-esm/utils/theme.d.ts +9 -0
  687. package/lib-esm/utils/theme.js +66 -0
  688. package/lib-esm/utils/types/AriaRole.d.ts +1 -0
  689. package/lib-esm/utils/types/AriaRole.js +1 -0
  690. package/lib-esm/utils/types/ComponentProps.d.ts +9 -0
  691. package/lib-esm/utils/types/ComponentProps.js +1 -0
  692. package/lib-esm/utils/types/Flatten.d.ts +4 -0
  693. package/lib-esm/utils/types/Flatten.js +1 -0
  694. package/lib-esm/utils/types/KeyPaths.d.ts +3 -0
  695. package/lib-esm/utils/types/KeyPaths.js +1 -0
  696. package/lib-esm/utils/types/MandateProps.d.ts +3 -0
  697. package/lib-esm/utils/types/MandateProps.js +1 -0
  698. package/lib-esm/utils/types/Merge.d.ts +19 -0
  699. package/lib-esm/utils/types/Merge.js +1 -0
  700. package/lib-esm/utils/types/index.d.ts +5 -0
  701. package/lib-esm/utils/types/index.js +5 -0
  702. package/lib-esm/utils/uniqueId.d.ts +1 -0
  703. package/lib-esm/utils/uniqueId.js +5 -0
  704. package/lib-esm/utils/use-force-update.d.ts +1 -0
  705. package/lib-esm/utils/use-force-update.js +6 -0
  706. package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  707. package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
  708. package/lib-esm/utils/userAgent.d.ts +1 -0
  709. package/lib-esm/utils/userAgent.js +8 -0
  710. package/package.json +114 -93
  711. package/index.d.ts +0 -828
  712. package/lib/Breadcrumb.js +0 -96
  713. package/lib/hooks/useMouseIntent.js +0 -58
  714. package/lib/stories/Button.stories.js +0 -100
  715. package/lib-esm/Breadcrumb.js +0 -70
  716. package/lib-esm/hooks/useMouseIntent.js +0 -50
  717. package/lib-esm/stories/Button.stories.js +0 -65
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ /**
3
+ * Props to customize the ConfirmationDialog.
4
+ */
5
+ export interface ConfirmationDialogProps {
6
+ /**
7
+ * Required. This callback is invoked when a gesture to close the dialog
8
+ * is performed. The first argument indicates the gesture.
9
+ */
10
+ onClose: (gesture: 'confirm' | 'cancel' | 'close-button' | 'cancel' | 'escape') => void;
11
+ /**
12
+ * Required. The title of the ConfirmationDialog. This is usually a brief
13
+ * question.
14
+ */
15
+ title: React.ReactNode;
16
+ /**
17
+ * The text to use for the cancel button. Default: "Cancel".
18
+ */
19
+ cancelButtonContent?: React.ReactNode;
20
+ /**
21
+ * The text to use for the confirm button. Default: "OK".
22
+ */
23
+ confirmButtonContent?: React.ReactNode;
24
+ /**
25
+ * The type of button to use for the confirm button. Default: Button.
26
+ */
27
+ confirmButtonType?: 'normal' | 'primary' | 'danger';
28
+ }
29
+ /**
30
+ * A ConfirmationDialog is a special kind of dialog with more rigid behavior. It
31
+ * is used to confirm a user action. ConfirmationDialogs always have exactly
32
+ * two buttons: one to cancel the action and one to confirm it. No custom
33
+ * rendering capabilities are provided for ConfirmationDialog.
34
+ */
35
+ export declare const ConfirmationDialog: React.FC<ConfirmationDialogProps>;
36
+ export declare type ConfirmOptions = Omit<ConfirmationDialogProps, 'onClose'> & {
37
+ content: React.ReactNode;
38
+ };
39
+ /**
40
+ * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
41
+ * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
42
+ * resolved with `true` or `false` depending on whether or not the confirm button was used.
43
+ */
44
+ export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useConfirm = useConfirm;
7
+ exports.ConfirmationDialog = void 0;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _reactDom = _interopRequireDefault(require("react-dom"));
12
+
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+
15
+ var _Box = _interopRequireDefault(require("../Box"));
16
+
17
+ var _ThemeProvider = require("../ThemeProvider");
18
+
19
+ var _focusZone = require("../behaviors/focusZone");
20
+
21
+ var _constants = require("../constants");
22
+
23
+ var _Dialog = require("../Dialog/Dialog");
24
+
25
+ var _useFocusZone = require("../hooks/useFocusZone");
26
+
27
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+
29
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
+
31
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
32
+
33
+ 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); }
34
+
35
+ const StyledConfirmationHeader = _styledComponents.default.header.withConfig({
36
+ displayName: "ConfirmationDialog__StyledConfirmationHeader",
37
+ componentId: "sc-1ub32x2-0"
38
+ })(["padding:", ";display:flex;flex-direction:row;"], (0, _constants.get)('space.2'));
39
+
40
+ const StyledTitle = (0, _styledComponents.default)(_Box.default).withConfig({
41
+ displayName: "ConfirmationDialog__StyledTitle",
42
+ componentId: "sc-1ub32x2-1"
43
+ })(["font-size:", ";font-weight:", ";padding:6px ", ";flex-grow:1;"], (0, _constants.get)('fontSizes.3'), (0, _constants.get)('fontWeights.bold'), (0, _constants.get)('space.2'));
44
+
45
+ const ConfirmationHeader = ({
46
+ title,
47
+ onClose,
48
+ dialogLabelId
49
+ }) => {
50
+ const onCloseClick = (0, _react.useCallback)(() => {
51
+ onClose('close-button');
52
+ }, [onClose]);
53
+ return /*#__PURE__*/_react.default.createElement(StyledConfirmationHeader, null, /*#__PURE__*/_react.default.createElement(StyledTitle, {
54
+ id: dialogLabelId
55
+ }, title), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.CloseButton, {
56
+ onClose: onCloseClick
57
+ }));
58
+ };
59
+
60
+ ConfirmationHeader.displayName = "ConfirmationHeader";
61
+ const StyledConfirmationBody = (0, _styledComponents.default)(_Box.default).withConfig({
62
+ displayName: "ConfirmationDialog__StyledConfirmationBody",
63
+ componentId: "sc-1ub32x2-2"
64
+ })(["font-size:", ";padding:0 ", " ", " ", ";color:", ";flex-grow:1;"], (0, _constants.get)('fontSizes.1'), (0, _constants.get)('space.3'), (0, _constants.get)('space.3'), (0, _constants.get)('space.3'), (0, _constants.get)('colors.fg.muted'));
65
+
66
+ const ConfirmationBody = ({
67
+ children
68
+ }) => {
69
+ return /*#__PURE__*/_react.default.createElement(StyledConfirmationBody, null, children);
70
+ };
71
+
72
+ ConfirmationBody.displayName = "ConfirmationBody";
73
+ const StyledConfirmationFooter = (0, _styledComponents.default)(_Box.default).withConfig({
74
+ displayName: "ConfirmationDialog__StyledConfirmationFooter",
75
+ componentId: "sc-1ub32x2-3"
76
+ })(["display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-gap:", ";align-items:end;justify-content:end;padding:", " ", " ", ";"], (0, _constants.get)('space.2'), (0, _constants.get)('space.1'), (0, _constants.get)('space.3'), (0, _constants.get)('space.3'));
77
+
78
+ const ConfirmationFooter = ({
79
+ footerButtons
80
+ }) => {
81
+ const {
82
+ containerRef: footerRef
83
+ } = (0, _useFocusZone.useFocusZone)({
84
+ bindKeys: _focusZone.FocusKeys.ArrowHorizontal | _focusZone.FocusKeys.Tab,
85
+ focusInStrategy: 'closest'
86
+ }); // Must have exactly 2 buttons!
87
+
88
+ return /*#__PURE__*/_react.default.createElement(StyledConfirmationFooter, {
89
+ ref: footerRef
90
+ }, /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Buttons, {
91
+ buttons: footerButtons !== null && footerButtons !== void 0 ? footerButtons : []
92
+ }));
93
+ };
94
+
95
+ ConfirmationFooter.displayName = "ConfirmationFooter";
96
+
97
+ /**
98
+ * A ConfirmationDialog is a special kind of dialog with more rigid behavior. It
99
+ * is used to confirm a user action. ConfirmationDialogs always have exactly
100
+ * two buttons: one to cancel the action and one to confirm it. No custom
101
+ * rendering capabilities are provided for ConfirmationDialog.
102
+ */
103
+ const ConfirmationDialog = props => {
104
+ const {
105
+ onClose,
106
+ title,
107
+ cancelButtonContent = 'Cancel',
108
+ confirmButtonContent = 'OK',
109
+ confirmButtonType = 'normal',
110
+ children
111
+ } = props;
112
+ const onCancelButtonClick = (0, _react.useCallback)(() => {
113
+ onClose('cancel');
114
+ }, [onClose]);
115
+ const onConfirmButtonClick = (0, _react.useCallback)(() => {
116
+ onClose('confirm');
117
+ }, [onClose]);
118
+ const cancelButton = {
119
+ content: cancelButtonContent,
120
+ onClick: onCancelButtonClick
121
+ };
122
+ const confirmButton = {
123
+ content: confirmButtonContent,
124
+ buttonType: confirmButtonType,
125
+ onClick: onConfirmButtonClick,
126
+ autoFocus: true
127
+ };
128
+ const footerButtons = [cancelButton, confirmButton];
129
+ return /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
130
+ onClose: onClose,
131
+ title: title,
132
+ footerButtons: footerButtons,
133
+ role: "alertdialog",
134
+ width: "medium",
135
+ renderHeader: ConfirmationHeader,
136
+ renderBody: ConfirmationBody,
137
+ renderFooter: ConfirmationFooter
138
+ }, children);
139
+ };
140
+
141
+ exports.ConfirmationDialog = ConfirmationDialog;
142
+ ConfirmationDialog.displayName = "ConfirmationDialog";
143
+
144
+ async function confirm(themeProps, options) {
145
+ const {
146
+ content,
147
+ ...confirmationDialogProps
148
+ } = options;
149
+ return new Promise(resolve => {
150
+ const hostElement = document.createElement('div');
151
+
152
+ const onClose = gesture => {
153
+ _reactDom.default.unmountComponentAtNode(hostElement);
154
+
155
+ if (gesture === 'confirm') {
156
+ resolve(true);
157
+ } else {
158
+ resolve(false);
159
+ }
160
+ };
161
+
162
+ _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_ThemeProvider.ThemeProvider, themeProps, /*#__PURE__*/_react.default.createElement(ConfirmationDialog, _extends({}, confirmationDialogProps, {
163
+ onClose: onClose
164
+ }), content)), hostElement);
165
+ });
166
+ }
167
+ /**
168
+ * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
169
+ * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
170
+ * resolved with `true` or `false` depending on whether or not the confirm button was used.
171
+ */
172
+
173
+
174
+ function useConfirm() {
175
+ const {
176
+ theme,
177
+ colorMode,
178
+ dayScheme,
179
+ nightScheme
180
+ } = (0, _ThemeProvider.useTheme)();
181
+ const result = (0, _react.useCallback)(options => {
182
+ const themeProps = {
183
+ theme,
184
+ colorMode,
185
+ dayScheme,
186
+ nightScheme
187
+ };
188
+ return confirm(themeProps, options);
189
+ }, [theme, colorMode, dayScheme, nightScheme]);
190
+ return result;
191
+ }
@@ -0,0 +1,163 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from '../Button';
3
+ import { SxProp } from '../sx';
4
+ /**
5
+ * Props that characterize a button to be rendered into the footer of
6
+ * a Dialog.
7
+ */
8
+ export declare type DialogButtonProps = ButtonProps & {
9
+ /**
10
+ * The type of Button element to use
11
+ */
12
+ buttonType?: 'normal' | 'primary' | 'danger';
13
+ /**
14
+ * The Button's inner text
15
+ */
16
+ content: React.ReactNode;
17
+ /**
18
+ * If true, and if this is the only button with autoFocus set to true,
19
+ * focus this button automatically when the dialog appears.
20
+ */
21
+ autoFocus?: boolean;
22
+ /**
23
+ * A reference to the rendered Button’s DOM node, used together with
24
+ * `autoFocus` for `focusTrap`’s `initialFocus`.
25
+ */
26
+ ref?: React.RefObject<HTMLButtonElement>;
27
+ };
28
+ /**
29
+ * Props to customize the rendering of the Dialog.
30
+ */
31
+ export interface DialogProps {
32
+ /**
33
+ * Title of the Dialog. Also serves as the aria-label for this Dialog.
34
+ */
35
+ title?: React.ReactNode;
36
+ /**
37
+ * The Dialog's subtitle. Optional. Rendered below the title in smaller
38
+ * type with less contrast. Also serves as the aria-describedby for this
39
+ * Dialog.
40
+ */
41
+ subtitle?: React.ReactNode;
42
+ /**
43
+ * Provide a custom renderer for the dialog header. This content is
44
+ * rendered directly into the dialog body area, full bleed from edge
45
+ * to edge, top to the start of the body element.
46
+ *
47
+ * Warning: using a custom renderer may violate Primer UX principles.
48
+ */
49
+ renderHeader?: React.FunctionComponent<DialogHeaderProps>;
50
+ /**
51
+ * Provide a custom render function for the dialog body. This content is
52
+ * rendered directly into the dialog body area, full bleed from edge to
53
+ * edge, header to footer.
54
+ *
55
+ * Warning: using a custom renderer may violate Primer UX principles.
56
+ */
57
+ renderBody?: React.FunctionComponent<DialogProps>;
58
+ /**
59
+ * Provide a custom render function for the dialog footer. This content is
60
+ * rendered directly into the dialog footer area, full bleed from edge to
61
+ * edge, end of the body element to bottom.
62
+ *
63
+ * Warning: using a custom renderer may violate Primer UX principles.
64
+ */
65
+ renderFooter?: React.FunctionComponent<DialogProps>;
66
+ /**
67
+ * Specifies the buttons to be rendered in the Dialog footer.
68
+ */
69
+ footerButtons?: DialogButtonProps[];
70
+ /**
71
+ * This method is invoked when a gesture to close the dialog is used (either
72
+ * an Escape key press or clicking the "X" in the top-right corner). The
73
+ * gesture argument indicates the gesture that was used to close the dialog
74
+ * (either 'close-button' or 'escape').
75
+ */
76
+ onClose: (gesture: 'close-button' | 'escape') => void;
77
+ /**
78
+ * Default: "dialog". The ARIA role to assign to this dialog.
79
+ * @see https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal
80
+ * @see https://www.w3.org/TR/wai-aria-practices-1.1/#alertdialog
81
+ */
82
+ role?: 'dialog' | 'alertdialog';
83
+ /**
84
+ * The width of the dialog.
85
+ * small: 296px
86
+ * medium: 320px
87
+ * large: 480px
88
+ * xlarge: 640px
89
+ */
90
+ width?: DialogWidth;
91
+ /**
92
+ * The height of the dialog.
93
+ * small: 296x480
94
+ * large: 480x640
95
+ * auto: variable based on contents
96
+ */
97
+ height?: DialogHeight;
98
+ }
99
+ /**
100
+ * Props that are passed to a component that serves as a dialog header
101
+ */
102
+ export interface DialogHeaderProps extends DialogProps {
103
+ /**
104
+ * ID of the element that will be used as the `aria-labelledby` attribute on the
105
+ * dialog. This ID should be set to the element that renders the dialog's title.
106
+ */
107
+ dialogLabelId: string;
108
+ /**
109
+ * ID of the element that will be used as the `aria-describedby` attribute on the
110
+ * dialog. This ID should be set to the element that renders the dialog's subtitle.
111
+ */
112
+ dialogDescriptionId: string;
113
+ }
114
+ declare const heightMap: {
115
+ readonly small: "480px";
116
+ readonly large: "640px";
117
+ readonly auto: "auto";
118
+ };
119
+ declare const widthMap: {
120
+ readonly small: "296px";
121
+ readonly medium: "320px";
122
+ readonly large: "480px";
123
+ readonly xlarge: "640px";
124
+ };
125
+ export declare type DialogWidth = keyof typeof widthMap;
126
+ export declare type DialogHeight = keyof typeof heightMap;
127
+ /**
128
+ * A dialog is a type of overlay that can be used for confirming actions, asking
129
+ * for disambiguation, and presenting small forms. They generally allow the user
130
+ * to focus on a quick task without having to navigate to a different page.
131
+ *
132
+ * Dialogs appear in the page after a direct user interaction. Don't show dialogs
133
+ * on page load or as system alerts.
134
+ *
135
+ * Dialogs appear centered in the page, with a visible backdrop that dims the rest
136
+ * of the window for focus.
137
+ *
138
+ * All dialogs have a title and a close button.
139
+ *
140
+ * Dialogs are modal. Dialogs can be dismissed by clicking on the close button,
141
+ * pressing the escape key, or by interacting with another button in the dialog.
142
+ * To avoid losing information and missing important messages, clicking outside
143
+ * of the dialog will not close it.
144
+ *
145
+ * The sub components provided (e.g. Header, Title, etc.) are available for custom
146
+ * renderers only. They are not intended to be used otherwise.
147
+ */
148
+ export declare const Dialog: React.ForwardRefExoticComponent<DialogProps & {
149
+ children?: React.ReactNode;
150
+ } & React.RefAttributes<HTMLDivElement>> & {
151
+ Header: import("styled-components").StyledComponent<"div", any, {}, never>;
152
+ Title: import("styled-components").StyledComponent<"div", any, SxProp, never>;
153
+ Subtitle: import("styled-components").StyledComponent<"div", any, SxProp, never>;
154
+ Body: import("styled-components").StyledComponent<"div", any, SxProp, never>;
155
+ Footer: import("styled-components").StyledComponent<"div", any, SxProp, never>;
156
+ Buttons: React.FC<{
157
+ buttons: DialogButtonProps[];
158
+ }>;
159
+ CloseButton: React.FC<{
160
+ onClose: () => void;
161
+ }>;
162
+ };
163
+ export {};