Unverified Commit 1b20f1be authored by Jason Quense's avatar Jason Quense Committed by GitHub
Browse files

feat!: bump react-overlays (#5017)



* feat: update to popper v2

BREAKING CHANGE: only breaking if you pass a popperConfig directly to overlay or dropdown components. The config format is now the v2 one. This change only relevant to users of `popperConfig` prop on Overlay, OverlayTrigger, and Dropdown

* docs: update some packages, clean up version dropdown a bit

* Apply suggestions from code review

* fail in the right place

* clean up popper injected props

* fix types
Co-authored-by: default avatarJimmy Jia <tesrin@gmail.com>
parent 724ea6f7
......@@ -35,7 +35,7 @@ const propTypes = {
/**
* Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to
* Popper.js's flip [docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled).
* Popper.js's flip [docs](https://popper.js.org/docs/v2/modifiers/flip/).
*
*/
flip: PropTypes.bool,
......
......@@ -43,7 +43,7 @@ const propTypes = {
as: PropTypes.elementType,
/**
* A set of popper options and props passed directly to react-popper's Popper component.
* A set of popper options and props passed directly to Popper.
*/
popperConfig: PropTypes.object,
};
......
import React from 'react';
import React, { useRef } from 'react';
import { findDOMNode } from 'react-dom';
import classNames from 'classnames';
import PropTypes from 'prop-types';
......@@ -26,7 +26,7 @@ const propTypes = {
show: PropTypes.bool,
/**
* A set of popper options and props passed directly to react-popper's Popper component.
* A set of popper options and props passed directly to Popper.
*/
popperConfig: PropTypes.object,
......@@ -121,25 +121,45 @@ function wrapRefs(props, arrowProps) {
}
function Overlay({ children: overlay, transition, ...outerProps }) {
const popperRef = useRef({});
transition = transition === true ? Fade : transition || null;
return (
<BaseOverlay {...outerProps} transition={transition}>
{({ props: overlayProps, arrowProps, show, ...props }) => {
{({
props: overlayProps,
arrowProps,
show,
state,
scheduleUpdate,
placement,
outOfBoundaries,
...props
}) => {
wrapRefs(overlayProps, arrowProps);
const popper = Object.assign(popperRef.current, {
state,
scheduleUpdate,
placement,
outOfBoundaries,
});
if (typeof overlay === 'function')
return overlay({
...props,
...overlayProps,
placement,
show,
popper,
arrowProps,
});
return React.cloneElement(overlay, {
...props,
...overlayProps,
placement,
arrowProps,
popper,
className: classNames(
overlay.props.className,
!transition && show && 'show',
......
......@@ -192,19 +192,23 @@ function OverlayTrigger({
// We add aria-describedby in the case where the overlay is a role="tooltip"
// for other cases describedby isn't appropriate (e.g. a popover with inputs) so we don't add it.
const ariaModifier = {
name: 'ariaDescribedBy',
enabled: true,
order: 900,
fn: data => {
const { popper } = data.instance;
const target = getTarget();
phase: 'afterWrite',
effect: ({ state }) => {
return () => {
state.elements.reference.removeAttribute('aria-describedby');
};
},
fn: ({ state }) => {
const { popper, reference } = state.elements;
if (!show || !target) return data;
if (!show || !reference) return;
const role = popper.getAttribute('role') || '';
if (popper.id && role.toLowerCase() === 'tooltip') {
target.setAttribute('aria-describedby', popper.id);
reference.setAttribute('aria-describedby', popper.id);
}
return data;
},
};
......@@ -238,10 +242,7 @@ function OverlayTrigger({
{...props}
popperConfig={{
...popperConfig,
modifiers: {
...popperConfig.modifiers,
ariaModifier,
},
modifiers: [ariaModifier].concat(popperConfig.modifiers || []),
}}
show={show}
onHide={handleHide}
......
......@@ -45,9 +45,10 @@ const propTypes = {
content: PropTypes.bool,
/** @private */
scheduleUpdate: PropTypes.func,
popper: PropTypes.object,
/** @private */
outOfBoundaries: PropTypes.bool,
show: PropTypes.bool,
};
const defaultProps = {
......@@ -64,8 +65,8 @@ const Popover = React.forwardRef(
children,
content,
arrowProps,
scheduleUpdate: _,
outOfBoundaries: _1,
popper: _,
show: _1,
...props
},
ref,
......
......@@ -55,10 +55,7 @@ const propTypes = {
}),
/** @private */
scheduleUpdate: PropTypes.func,
/** @private */
outOfBoundaries: PropTypes.any,
popper: PropTypes.object,
/** @private */
show: PropTypes.any,
......@@ -77,8 +74,7 @@ const Tooltip = React.forwardRef(
style,
children,
arrowProps,
scheduleUpdate: _,
outOfBoundaries: _1,
popper: _,
show: _2,
...props
},
......
......@@ -220,7 +220,7 @@ describe('<OverlayTrigger>', () => {
},
].forEach(testCase => {
describe(testCase.name, () => {
it('Should handle trigger without warnings', () => {
it('Should handle trigger without warnings', done => {
mount(
<OverlayTrigger trigger="click" overlay={testCase.overlay}>
<button type="button">button</button>
......@@ -228,6 +228,10 @@ describe('<OverlayTrigger>', () => {
)
.find('button')
.simulate('click');
// The use of Popper means that errors above will show up
// asynchronously.
setTimeout(done, 10);
});
});
});
......
......@@ -20,7 +20,24 @@ export type Placement =
| 'left'
| 'left-start';
export interface OverlayInjectedProps {
show: boolean;
arrowProps: Record<string, any>;
popper: {
state: any;
outOfBoundaries: boolean;
placement: Placement;
scheduleUpdate: () => void;
};
[prop: string]: any;
}
export type OverlayChildren =
| React.ReactElement<OverlayInjectedProps>
| ((injected: OverlayInjectedProps) => React.ReactNode);
export interface OverlayProps extends TransitionCallbacks {
children: OverlayChildren;
container?: ComponentOrElement | ((props: object) => ComponentOrElement);
target?: ComponentOrElement | ((props: object) => ComponentOrElement);
show?: boolean;
......
import * as React from 'react';
import Overlay from './Overlay';
import { OverlayChildren, OverlayProps } from './Overlay';
type TriggerType = 'hover' | 'click' | 'focus';
export interface OverlayTriggerProps
extends React.ComponentPropsWithRef<typeof Overlay> {
export interface OverlayTriggerProps extends Omit<OverlayProps, 'children'> {
children: React.ReactNode;
trigger?: TriggerType | TriggerType[];
delay?: number | { show: number; hide: number };
defaultShow?: boolean;
flip?: boolean;
overlay: React.ReactNode | (() => React.ReactNode);
overlay: OverlayChildren;
target?: never;
onHide?: never;
show?: never;
......
......@@ -20,6 +20,6 @@
// Duong Tran <https://github.com/t49tran>
// Bartosz Łaniewski <https://github.com/Bartozzz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 3.1
// Minimum TypeScript Version: 3.5
export * from './components';
......@@ -30,7 +30,7 @@
"gatsby-plugin-sass": "^2.1.30",
"gatsby-remark-prismjs": "^3.3.35",
"gatsby-source-filesystem": "2.1.55",
"gatsby-transformer-react-docgen": "^4.1.3",
"gatsby-transformer-react-docgen": "^5.0.29",
"gatsby-transformer-remark": "^2.6.58",
"gh-pages": "^2.2.0",
"holderjs": "^2.9.6",
......@@ -42,7 +42,7 @@
"prismjs": "^1.19.0",
"prop-types": "^15.7.2",
"react": "^16.13.0",
"react-docgen": "^4.1.1",
"react-docgen": "^5.3.0",
"react-dom": "^16.13.0",
"react-live": "^2.2.2",
"remark-slug": "^5.1.2",
......@@ -71,5 +71,8 @@
"deploy": "gatsby build --prefix-links && yarn push-docs",
"push-docs": "gh-pages -d public --branch master --repo \"https://github.com/react-bootstrap/react-bootstrap.github.io.git\"",
"sort": "import-sort 'src/pages/**/*.js'"
},
"dependencies": {
"ast-types": "^0.13.2"
}
}
const { camelCase, upperFirst } = require('lodash');
const { resolver, utils } = require('react-docgen');
const { namedTypes: types, visit } = require('ast-types');
const buildParser = require('react-docgen/dist/babelParser').default;
const parser = buildParser();
module.exports = (ast, recast) => {
const {
types: { namedTypes: types },
} = recast;
let components = resolver.findAllComponentDefinitions(ast, recast);
module.exports = ast => {
let components = resolver.findAllComponentDefinitions(ast);
const getComment = path => {
let searchPath = path;
......@@ -26,7 +23,7 @@ module.exports = (ast, recast) => {
return comment;
};
recast.visit(ast, {
visit(ast, {
visitCallExpression(path) {
if (types.ExpressionStatement.check(path.node)) {
path = path.get('expression');
......@@ -52,15 +49,14 @@ module.exports = (ast, recast) => {
: property.value.raw;
}
let comp = recast.parse(
`
const src = `
import React from 'react';
import PropTypes from 'prop-types';
${comment || ''}
export default class ${upperFirst(
camelCase(prefixNode.value),
)} extends React.Component {
camelCase(prefixNode.value),
)} extends React.Component {
static propTypes = {
/** @default ${prefixNode.raw} */
bsPrefix: PropTypes.string.isRequired,
......@@ -73,11 +69,12 @@ export default class ${upperFirst(
return null
}
}
`,
{ esprima: parser },
);
`;
let comp = parser.parse(src);
comp.__src = src;
components = components.concat(
resolver.findExportedComponentDefinition(comp.program, recast),
resolver.findExportedComponentDefinition(comp),
);
return false;
},
......
......@@ -95,15 +95,16 @@ function NavMain({ activePage }) {
</Nav>
<Nav className="ml-auto pr-md-5">
<StyledDropdown id="t-version">
<Dropdown.Toggle id="dropdown-version" variant="outline-light">
v{config.version} (Bootstrap{' '}
<Dropdown.Toggle id="dropdown-version" as={StyledNavLink}>
v{config.version} (
<span className="d-none d-lg-inline">Bootstrap </span>
{config.bootstrapVersion
.split('.')
.slice(0, 2)
.join('.')}
)
</Dropdown.Toggle>
<Dropdown.Menu className="w-100">
<Dropdown.Menu className="w-100" role="menu">
<Dropdown.Item href="https://react-bootstrap-v3.netlify.com">
v0.32.4 (Bootstrap 3)
</Dropdown.Item>
......
function renderTooltip(props) {
return <Tooltip {...props}>Simple tooltip</Tooltip>;
return (
<Tooltip id="button-tooltip" {...props}>
Simple tooltip
</Tooltip>
);
}
const Example = () => (
......
const UpdatingPopover = React.forwardRef(
({ scheduleUpdate, children, ...props }, ref) => {
({ popper, children, show: _, ...props }, ref) => {
useEffect(() => {
console.log('updating!');
scheduleUpdate();
}, [children, scheduleUpdate]);
popper.scheduleUpdate();
}, [children, popper]);
return (
<Popover ref={ref} {...props}>
<Popover ref={ref} content {...props}>
{children}
</Popover>
);
......
......@@ -47,8 +47,6 @@ export default withLayout(function TooltipSection({ data }) {
<ul>
<li>
Overlays rely on the third-party library{' '}
<a href="https://github.com/FezVrasta/react-popper">react-popper</a>,
a tiny React wrapper around{' '}
<a href="https://popper.js.org/">Popper.js</a>. It's included
automatically with React-Bootstrap, but you should reference the API
for more advanced use cases.
......@@ -74,7 +72,7 @@ export default withLayout(function TooltipSection({ data }) {
</LinkedHeading>
<p>
<code>Overlay</code> is the fundamental component for positioning and
controlling tooltip visibility. It's a wrapper around react-popper, that
controlling tooltip visibility. It's a wrapper around Popper.js, that
adds support for transitions, and visibility toggling.
</p>
......@@ -87,10 +85,7 @@ export default withLayout(function TooltipSection({ data }) {
positioned in relation to. You can also also have an "arrow" element,
like the tooltips and popovers, but that is optional. Be sure to{' '}
<strong>
check out the{' '}
<a href="https://github.com/FezVrasta/react-popper#api-documentation">
react-popper
</a>{' '}
check out the <a href="https://popper.js.org/docs/v2/">Popper</a>{' '}
documentation for more details about the injected props.
</strong>
</p>
......@@ -197,9 +192,9 @@ export default withLayout(function TooltipSection({ data }) {
an Overlay in response to a change.
</p>
<p>
For this, the Overlay component also injects a{' '}
<code>scheduleUpdate()</code> method that an overlay component can use
to reposition itself.
For this, the Overlay component also injects a a <code>popper</code>{' '}
prop with a <code>scheduleUpdate()</code> method that an overlay
component can use to reposition itself.
</p>
<ReactPlayground codeText={ScheduleUpdate} />
......
......@@ -16,7 +16,7 @@
dependencies:
"@babel/highlight" "^7.8.3"
 
"@babel/core@7.8.4", "@babel/core@^7.0.0", "@babel/core@^7.2.2", "@babel/core@^7.5.5", "@babel/core@^7.7.5":
"@babel/core@7.8.4", "@babel/core@^7.2.2", "@babel/core@^7.5.5", "@babel/core@^7.7.5":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e"
integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==
......@@ -1715,12 +1715,7 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
 
ast-types@0.12.4:
version "0.12.4"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.4.tgz#71ce6383800f24efc9a1a3308f3a6e420a0974d1"
integrity sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==
ast-types@0.13.2:
ast-types@^0.13.2:
version "0.13.2"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48"
integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==
......@@ -1781,7 +1776,7 @@ async@1.5.2:
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
 
async@^2.1.4, async@^2.6.1, async@^2.6.2:
async@^2.6.1, async@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
......@@ -2900,7 +2895,7 @@ commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
common-tags@^1.4.0, common-tags@^1.8.0:
common-tags@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
......@@ -4469,7 +4464,7 @@ espree@^6.1.2:
acorn-jsx "^5.1.0"
eslint-visitor-keys "^1.1.0"
 
esprima@^4.0.0, esprima@~4.0.0:
esprima@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
......@@ -5142,10 +5137,17 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
 
<<<<<<< HEAD
gatsby-cli@^2.10.10:
version "2.10.10"
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.10.10.tgz#57b3a0b2312f6b989373640975ae0e81477cbb26"
integrity sha512-J7geHpblEho35R47fRTl9QTygfk1FKxfsoNjtXbU1yzSWLAa2Qi46GyeJOxwbGeC1oQ+KhlPDuk6lFXjQ69OPw==
=======
gatsby-cli@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.9.0.tgz#eba30607ca126384676778851460cf1c4bddc631"
integrity sha512-aK8yDAt5S8pj/l/+RHMO2UJeBpsUARmAhC5lDh1dhfRfqdlKXwuAIStw8PY+aLpKAd/oyunvqI0D2y4BH3+eNA==
>>>>>>> docs: update some pacakges, clean up version dropdown a bit
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/runtime" "^7.7.6"
......@@ -5234,18 +5236,32 @@ gatsby-plugin-astroturf@^0.2.1:
resolved "https://registry.yarnpkg.com/gatsby-plugin-astroturf/-/gatsby-plugin-astroturf-0.2.1.tgz#b5ed009f5bb682dc78840a0adf25823c6d539aef"
integrity sha512-BjlGgfMVQVJjAeIKfCy+b+MyWWGAbAQKn20CGBsWcvGl/Yj+dYNUgptLqdpV1mBKA8JKmL5QDx60vnW9ouR7EA==
 
<<<<<<< HEAD
gatsby-plugin-catch-links@^2.1.27:
version "2.1.27"
resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-2.1.27.tgz#c89fdaa631a3618520f5b978522c35d1852d23a0"
integrity sha512-OOujJiiI0F0YtGUq5lDWNqjccBpn+5h253xgqHCaimyy25SUyL/ApL1CBY/mRuPCw+53JYQBpI8hTNAW77wnzA==
=======
gatsby-plugin-catch-links@^2.1.26:
version "2.1.26"
resolved "https://registry.yarnpkg.com/gatsby-plugin-catch-links/-/gatsby-plugin-catch-links-2.1.26.tgz#d1c030e339ff100f53367babf40ecbcff8c03990"
integrity sha512-q+ZVVEXV2eku9w5fu0tHjcIHijcgvQIghsPARCS3oGvykezPZHwXI2JgwvLEv+ZdqdK7pejg/fMEyn8uG7kaUw==
>>>>>>> docs: update some pacakges, clean up version dropdown a bit
dependencies:
"@babel/runtime" "^7.7.6"
escape-string-regexp "^1.0.5"
 
<<<<<<< HEAD
gatsby-plugin-mdx@^1.0.82:
version "1.0.82"
resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.0.82.tgz#2f4819902c84b8507b71563b0401fee65c8fcb36"
integrity sha512-4SAmALVSp1E7VsjwjinSDTdWpUVokB4YgqXWBmovVzlt1SH9PElEvY72LZ+nqjoodvcunof9G4MAo/8cDZIZBw==
=======
gatsby-plugin-mdx@^1.0.74:
version "1.0.74"
resolved "https://registry.yarnpkg.com/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.0.74.tgz#c085082c2070b2f6b60190038caf58e22a199cd3"
integrity sha512-mN+68a1qmsNEC6zDDUFCbEUJ2a/1E7S7tlidFUy7doOAMVYkpvfJBpBI3IPoGHiIaOIreo0jj7BRDI6NA9nlxQ==
>>>>>>> docs: update some pacakges, clean up version dropdown a bit
dependencies:
"@babel/core" "^7.7.5"
"@babel/generator" "^7.7.4"
......@@ -5304,10 +5320,17 @@ gatsby-plugin-sass@^2.1.30:
"@babel/runtime" "^7.7.6"
sass-loader "^7.3.1"
 
<<<<<<< HEAD
gatsby-react-router-scroll@^2.1.23:
version "2.1.23"
resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.23.tgz#ad58ec7b19f5100432c6d9f197503bd2facbd03e"
integrity sha512-yUCWzRYUDgvr3xy5GAYd08gToBfE84SX3zvHWgPunVeL4OfwsYh6eei6GtYbLIjq77bvegd2SZkSujQ4Vgm/Gg==
=======
gatsby-react-router-scroll@^2.1.22:
version "2.1.22"
resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.22.tgz#588b4a23004997481082d89fc4dd746f6a356ab5"
integrity sha512-VSwDrfiUL//eOVqtzBImxDZSQ7PbS4As8IWOP093tOS+r6ddLiSINGW7CewI/0CdYEKwIVGF5fHMWJWgg3gvEQ==
>>>>>>> docs: update some pacakges, clean up version dropdown a bit
dependencies:
"@babel/runtime" "^7.7.6"
scroll-behavior "^0.9.10"
......@@ -5366,17 +5389,17 @@ gatsby-telemetry@^1.1.55:
stack-utils "1.0.2"
uuid "3.3.3"
 
gatsby-transformer-react-docgen@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/gatsby-transformer-react-docgen/-/gatsby-transformer-react-docgen-4.1.3.tgz#47304c19abb32021ca3259ba1b1eae1f1468e5df"
integrity sha512-fqocaqF2R5UTTzp9J/8ClmJf/TawFTBoIAnOG7DMAL4qmxS9r10CbaVYsr+FDvoyfL/flgOSpZMjt4DwoFkoOw==
gatsby-transformer-react-docgen@^5.0.29:
version "5.0.29"
resolved "https://registry.yarnpkg.com/gatsby-transformer-react-docgen/-/gatsby-transformer-react-docgen-5.0.29.tgz#fb0f006c1b5823af92040270aa649790484a9150"
integrity sha512-GCAbAW2+rNj2y7MMi70dE4B8YAXXj3WmKv+GSi07NAX0RpU+0VkSFWzx8+LPVl4qu6tQ9Q80rtKu8lgRQ4Xtqw==
dependencies:
"@babel/code-frame" "^7.0.0"
"@babel/runtime" "^7.0.0"
"@babel/types" "^7.0.0"
common-tags "^1.4.0"
react-docgen "^4.1.0"
react-docgen-displayname-handler " ^2.1.0"
"@babel/code-frame" "^7.5.5"
"@babel/runtime" "^7.7.6"
"@babel/types" "^7.7.4"
ast-types "^0.13.2"
common-tags "^1.8.0"
react-docgen "^5.0.0-beta.1"
 
gatsby-transformer-remark@^2.6.58:
version "2.6.58"
......@@ -5405,10 +5428,17 @@ gatsby-transformer-remark@^2.6.58:
unist-util-select "^1.5.0"
unist-util-visit "^1.4.1"
 
<<<<<<< HEAD
gatsby@^2.19.43:
version "2.19.43"
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.43.tgz#286d00a6494a86992e6e08b13456fe7501c26952"
integrity sha512-lrEENBE907oLptB4rrXAx1ahqxNoI4fjgJdK1zQobEKwgkTSjyNX0YRlWQ+4+2VdgaDjw25ZBGglsk0leifmTA==
=======
gatsby@^2.19.23:
version "2.19.23"
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.23.tgz#cd4abbef59339906b99a55101858d50c8dc91aed"
integrity sha512-mg9ezE9uy0qzv9jpU9OXsOlO1zl0/rggHxtvhiEuvHu+LQogKFfLpffheclmFaLCYXGIjxzZriYnO1LmhoxeWw==
>>>>>>> docs: update some pacakges, clean up version dropdown a bit
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/core" "^7.7.5"
......@@ -5471,6 +5501,7 @@ gatsby@^2.19.43:
flat "^4.1.0"
fs-exists-cached "1.0.0"
fs-extra "^8.1.0"
<<<<<<< HEAD
gatsby-cli "^2.10.10"
gatsby-core-utils "^1.0.33"
gatsby-graphiql-explorer "^0.2.35"
......@@ -5478,6 +5509,15 @@ gatsby@^2.19.43:
gatsby-plugin-page-creator "^2.1.45"
gatsby-react-router-scroll "^2.1.23"
gatsby-telemetry "^1.1.55"