diff --git a/.travis.yml b/.travis.yml index ec039ea180..80743cbcf9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,6 @@ before_install: - sudo apt-get install -y python3-pip - pip3 install --user awscli script: -- yarn build +- travis_wait 30 yarn build - bash ./scripts/prepare-deploy.sh - if [[ -d out && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]]; then bash ./scripts/deploy.sh; fi; diff --git a/packages/patternfly-4/_repos/react-example-styles.css b/packages/patternfly-4/_repos/react-example-styles.css new file mode 100644 index 0000000000..ae69b5f797 --- /dev/null +++ b/packages/patternfly-4/_repos/react-example-styles.css @@ -0,0 +1,134 @@ +.ws-preview > * .area-chart-overflow svg { + overflow: visible; } + +.ws-preview > * .bar-chart-container { + width: 450px; } + +.ws-preview > * .donut-chart-container { + height: 230px; + width: 230px; } + +.ws-preview > * .donut-chart-inline { + display: inline-flex; } + +.ws-preview > * .donut-threshold-chart-horz { + height: 230px; + width: 492px; } + +.ws-preview > * .donut-threshold-chart-horz-sm { + height: 230px; + width: 475px; } + +.ws-preview > * .donut-threshold-chart-vert { + height: 325px; + width: 275px; } + +.ws-preview > * .donut-utilization-chart { + height: 230px; + width: 230px; } + +.ws-preview > * .donut-utilization-chart-horz { + height: 230px; + width: 435px; } + +.ws-preview > * .donut-utilization-chart-horz-sm { + height: 230px; + width: 425px; } + +.ws-preview > * .donut-utilization-chart-vert { + height: 275px; + width: 300px; } + +.ws-preview > * .line-chart-container { + width: 450px; } + +.ws-preview > * .line-chart-inline { + display: inline-flex; } + +.ws-preview > * .line-chart-overflow svg { + overflow: visible; } + +.ws-preview > * .pie-chart-container { + height: 230px; + width: 230px; } + +.ws-preview > * .pie-chart-inline { + display: inline-flex; } + +.ws-preview > * .stack-chart-container { + width: 450px; } + +.ws-preview > .pf-c-alert { + margin-bottom: 0.5rem; } + +.ws-preview .pf-l-bullseye { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-bullseye > div { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-gallery { + padding: 1rem; } + +.ws-preview .pf-l-gallery > div { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-grid { + min-height: 75px; + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-grid > .pf-l-grid__item { + min-height: 75px; + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview { + padding: 9px; } + .ws-preview .pf-l-level { + min-height: 160px; + padding: 9px; + border-width: 2px; + border-style: dashed; } + .ws-preview .pf-l-level > div { + padding: 9px; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-split { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-split > .pf-l-split__item { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-stack { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-stack > .pf-l-stack__item { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-toolbar { + padding: 1rem; + border-width: 2px; + border-style: dashed; } + +.ws-preview .pf-l-toolbar > div { + padding: 1rem; + border-width: 2px; + border-style: dashed; } diff --git a/packages/patternfly-4/package.json b/packages/patternfly-4/package.json index a979d8f0c3..c0616ccd81 100644 --- a/packages/patternfly-4/package.json +++ b/packages/patternfly-4/package.json @@ -5,17 +5,18 @@ "author": "Red Hat", "scripts": { "build:babel": "cross-env babel _repos/react-core/src --out-dir dist/esm --extensions \".js,jsx,.ts,.tsx\"", - "build": "gatsby build --prefix-paths", - "build:root": "gatsby build", + "build": "node --max_old_space_size=4096 ./node_modules/.bin/gatsby build --prefix-paths", + "build:root": "node --max_old_space_size=4096 ./node_modules/.bin/gatsby build", "develop": "gatsby develop", "start": "gatsby develop", "format": "prettier --write \"src/**/*.js\"", "clean": "gatsby clean", - "repos": "node scripts/clean && yarn patternfly-next && yarn patternfly-react && yarn patternfly-styles", + "repos": "node scripts/clean && yarn patternfly-next && yarn patternfly-react && yarn patternfly-styles && yarn compile-examples-css", "patternfly-next": "node ./scripts/patternfly-next.js", "patternfly-react": "node ./scripts/patternfly-react.js", "patternfly-styles": "node ./scripts/copyStyles.js", - "preview-screenshots": "node ./scripts/previewScreenshots.js" + "preview-screenshots": "node ./scripts/previewScreenshots.js", + "compile-examples-css": "node-sass --importer ../../node_modules/node-sass-glob-importer/dist/cli.js -o _repos src/react-example-styles.scss" }, "dependencies": { "@emotion/core": "^10.0.10", @@ -41,7 +42,7 @@ "exenv": "^1.2.2", "file-saver": "^2.0.1", "find-in-files": "^0.5.0", - "gatsby": "~2.6.3", + "gatsby": "~2.9.2", "gatsby-image": "^2.1.0", "gatsby-mdx": "0.6.3", "gatsby-plugin-catch-links": "^2.0.14", @@ -79,8 +80,10 @@ "react-icons": "^3.6.1", "react-live": "2.0.1", "react-pose": "^4.0.8", + "react-shadow": "^16.3.2", "sass-loader": "7.1.0", - "style-loader": "0.23.1" + "style-loader": "0.23.1", + "to-string-loader": "^1.1.5" }, "keywords": [ "gatsby" diff --git a/packages/patternfly-4/src/components/ShadowDomPreview.js b/packages/patternfly-4/src/components/ShadowDomPreview.js new file mode 100644 index 0000000000..e5eb2fa5b2 --- /dev/null +++ b/packages/patternfly-4/src/components/ShadowDomPreview.js @@ -0,0 +1,108 @@ +import React from 'react'; +import ShadowDOM from 'react-shadow'; +import PropTypes from 'prop-types'; +import core from '!raw!@patternfly/patternfly/patternfly.min.css'; +import coreAddons from '!raw!@patternfly/patternfly/patternfly-addons.css'; +import coreIcons from '!raw!@patternfly/patternfly/patternfly-icons.css'; +import coreExampleStyles from '!!to-string-loader!css-loader!sass-loader!./_core/Preview/styles.scss'; +import reactBase from '!raw!@patternfly/react-core/dist/styles/base.css'; +import reactExampleStyles from '!raw!../../_repos/react-example-styles.css'; +import { Location } from '@reach/router'; + +const styles = ` + .ws-example { + padding: calc(1rem - 9px); + background-color: #fff; + } +`; + +// react Toolbar, ToolbarGroup, ToolbarItem, ToolbarSection all inject this css using emotion for some reason +const reactToolbarStyles = ` +.pf-l-toolbar { +--pf-l-toolbar__section--MarginTop: var(--pf-global--spacer--md); +--pf-l-toolbar__group--MarginRight: var(--pf-global--spacer--xl); +--pf-l-toolbar__group--MarginLeft: var(--pf-global--spacer--xl); +--pf-l-toolbar__item--MarginRight: var(--pf-global--spacer--md); +--pf-l-toolbar__item--MarginLeft: var(--pf-global--spacer--md); } + +.pf-l-toolbar, +.pf-l-toolbar__section, +.pf-l-toolbar__group { +display: flex; +flex-wrap: wrap; +align-items: center; } + +.pf-l-toolbar__section { +flex-basis: 100%; } +.pf-l-toolbar__section:not(:first-child) { +margin-top: var(--pf-l-toolbar__section--MarginTop); } + +.pf-l-toolbar__group:not(:last-child) { +margin-right: var(--pf-l-toolbar__group--MarginRight); } + +.pf-l-toolbar__item .pf-l-toolbar:not(:last-child) { +margin-right: var(--pf-l-toolbar__item--MarginRight); } +`; + +const propTypes = { + children: PropTypes.node.isRequired, + className: PropTypes.string, + isReact: PropTypes.bool, + isFull: PropTypes.bool +}; + +const defaultProps = { + className: '', + isReact: false, + isFull: false +}; + +const ShadowDomPreview = ({ children, className, isReact, isFull, ...props }) => { + return ( + + {({ location }) => { + const currentPath = location.pathname; + // TODO: Update dependency of tippy in react-core as newer version supports shadow dom + // Don't shadow dom paths that use tooltip until that is done + if ( + currentPath.indexOf('/documentation/react/components/popover') > -1 || + currentPath.indexOf('/documentation/react/components/tooltip') > -1 || + currentPath.indexOf('/documentation/react/components/applicationlauncher') > -1 || + currentPath.indexOf('/documentation/react/components/chipgroup') > -1 || + currentPath.indexOf('/documentation/react/components/clipboardcopy') > -1 + ) { + return children; + } + return ( + +
+ {isReact && ( + <> + } +
+ {children} +
+
+
+ ) + }} +
+)}; + +ShadowDomPreview.propTypes = propTypes; +ShadowDomPreview.defaultProps = defaultProps; + +export default ShadowDomPreview; diff --git a/packages/patternfly-4/src/components/_core/Documentation/index.js b/packages/patternfly-4/src/components/_core/Documentation/index.js index a13ae70754..9250266472 100644 --- a/packages/patternfly-4/src/components/_core/Documentation/index.js +++ b/packages/patternfly-4/src/components/_core/Documentation/index.js @@ -10,6 +10,8 @@ import SEO from '../../seo'; import './styles.scss'; import Tokens from '../../css-variables'; +export const CoreContext = React.createContext({}); + export default class Documentation extends React.Component { constructor(props) { super(props); @@ -32,45 +34,49 @@ export default class Documentation extends React.Component { } const HTML_DOCS = { __html: changeHeadingLevel(docs, 'h4') }; return !this.state.isFull ? ( - }> - - - HTML - {heading} - {data && data.pageContext && data.pageContext.description && -
- - {data.pageContext.description.code.body} - + + }> + + + HTML + {heading} + {data && data.pageContext && data.pageContext.description && +
+ + {data.pageContext.description.code.body} + +
+ } +
+ Examples + Documentation + {variablesRoot && CSS Variables}
- } -
- Examples - Documentation - {variablesRoot && CSS Variables} -
-
- {children} -
-
- -
-
-
-
- {variablesRoot && -
- -
-
} -
+
+ {children} +
+ + +
+
+
+
+ {variablesRoot && +
+ +
+
} + +
) : ( - -
-

{this.props.heading} full example

- {children} -
-
+ + +
+

{this.props.heading} full example

+ {children} +
+
+
); } } diff --git a/packages/patternfly-4/src/components/_core/Example/index.js b/packages/patternfly-4/src/components/_core/Example/index.js index 2507f1fd99..7164fb8fc8 100644 --- a/packages/patternfly-4/src/components/_core/Example/index.js +++ b/packages/patternfly-4/src/components/_core/Example/index.js @@ -85,10 +85,10 @@ export default class Example extends React.Component { const fullPath = typeof window !== 'undefined' && `${window.location.href.substr(0, window.location.href.length - (endsWithSlash ? 1 : 0))}-full/?component=${heading}`; if (!this.state.isFull) { return ( -
+
{heading} {Boolean(description) &&

} - + {children} diff --git a/packages/patternfly-4/src/components/_core/FullPageExampleLayout/index.js b/packages/patternfly-4/src/components/_core/FullPageExampleLayout/index.js index 3541d6a2cc..61b69a9393 100644 --- a/packages/patternfly-4/src/components/_core/FullPageExampleLayout/index.js +++ b/packages/patternfly-4/src/components/_core/FullPageExampleLayout/index.js @@ -1,10 +1,13 @@ import React from 'react'; import Header from '../../header'; +import ShadowDomPreview from '../../ShadowDomPreview'; // import '../../../../_repos/core/src/patternfly/patternfly-base.scss'; export default ({ children }) => (

-
{children}
+ + {children} +
); diff --git a/packages/patternfly-4/src/components/_core/Preview/index.js b/packages/patternfly-4/src/components/_core/Preview/index.js index d1dbd07ab5..1017291694 100644 --- a/packages/patternfly-4/src/components/_core/Preview/index.js +++ b/packages/patternfly-4/src/components/_core/Preview/index.js @@ -1,6 +1,8 @@ import React from 'react'; import { Location } from '@reach/router'; import LinkPreview from '../../LinkPreview'; +import ShadowDomPreview from '../../ShadowDomPreview'; +import { CoreContext } from '../Documentation'; import './styles.scss'; export default class Preview extends React.Component { @@ -22,7 +24,18 @@ export default class Preview extends React.Component { } render() { - const { children, fullPageOnly, isViewport, viewport = '', lights = true, minHeight, heading, raw, id } = this.props; + const { + children, + fullPageOnly, + isViewport, + viewport = '', + lights = true, + minHeight, + heading, + raw, + id, + className + } = this.props; const { fullPath } = this.state; const output = { __html: children }; const background = lights ? '' : 'pf-t-dark pf-m-opaque-200'; @@ -36,11 +49,17 @@ export default class Preview extends React.Component { } else if (fullPageOnly) { preview = ; } else { - preview =
; + preview =
+ + {({ coreClass }) => ( + +
+
+
+ + )} + +
; } return ( diff --git a/packages/patternfly-4/src/components/_react/liveEdit.js b/packages/patternfly-4/src/components/_react/liveEdit.js index d7e475e2e6..a97ba522a8 100644 --- a/packages/patternfly-4/src/components/_react/liveEdit.js +++ b/packages/patternfly-4/src/components/_react/liveEdit.js @@ -1,7 +1,8 @@ import React from 'react'; -import { LiveProvider, LiveEditor, LiveError, LivePreview } from 'react-live'; +import { LiveProvider, LiveEditor, LiveError, LivePreview, LiveContext } from 'react-live'; import { css } from '@patternfly/react-styles'; import EditorToolbar from '../example/editorToolbar'; +import ShadowDomPreview from '../ShadowDomPreview'; class LiveEdit extends React.Component { constructor(props) { @@ -60,8 +61,11 @@ class LiveEdit extends React.Component { styles: [] }} > - {!noLive && - } + {!noLive && ( + + {({ element: Element }) => Element &&
} +
+ )} fullScope; } - return element; + return isFull ? ( + + {element} + + ) : element }; diff --git a/packages/patternfly-4/src/react-example-styles.scss b/packages/patternfly-4/src/react-example-styles.scss new file mode 100644 index 0000000000..b846176df7 --- /dev/null +++ b/packages/patternfly-4/src/react-example-styles.scss @@ -0,0 +1 @@ +@import '../_repos/react-*/**/*.scss'; \ No newline at end of file diff --git a/packages/patternfly-4/src/templates/mdxFullscreenTemplate.js b/packages/patternfly-4/src/templates/mdxFullscreenTemplate.js index bcc2ad211e..f461a15acc 100644 --- a/packages/patternfly-4/src/templates/mdxFullscreenTemplate.js +++ b/packages/patternfly-4/src/templates/mdxFullscreenTemplate.js @@ -5,7 +5,7 @@ import './template.scss'; const MdxFullscreenTemplate = ({ data }) => { return ( - + {data.mdx.code.body} ); diff --git a/yarn.lock b/yarn.lock index 80c4f22f10..27b897d5d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1976,8 +1976,6 @@ "@patternfly/src-patternfly-react@patternfly/patternfly-react#bb29aa5": version "0.0.0" resolved "https://codeload.github.com/patternfly/patternfly-react/tar.gz/bb29aa5ac0f0a05fb30e204081305bf05ee97b67" - dependencies: - folder-hash "^3.0.0" optionalDependencies: sortabular "^1.5.1" table-resolver "^3.2.0" @@ -3158,7 +3156,7 @@ auto-bind@^2.0.0: dependencies: "@types/react" "^16.8.12" -autoprefixer@^9.4.3: +autoprefixer@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.0.tgz#0111c6bde2ad20c6f17995a33fad7cf6854b4c87" integrity sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ== @@ -8428,10 +8426,10 @@ 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= -gatsby-cli@^2.6.2: - version "2.6.4" - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.6.4.tgz#9d8285e4b020425c88f5ed0986ff8b8124ad2849" - integrity sha512-0HLm88/bYxtfKgBeS+fIUgkYoa4odww6npCPB/ZWo18IcO1/XB0PPTqdGhgYm8juwdR68duOq7UNvIpBauB5hQ== +gatsby-cli@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.6.7.tgz#8e2038c4e35cec3edcb465c16e74c1ae9483eecb" + integrity sha512-ngGOkozh0Wp2R2kblAUnMfMdPT84MoKMmuROqJVw+JUweB9zTrrGQsrH3ii26nw+7DDsrg6+AAkbELjp5SlYNA== dependencies: "@babel/code-frame" "^7.0.0" "@babel/runtime" "^7.0.0" @@ -8471,6 +8469,13 @@ gatsby-cli@^2.6.2: ink "^2.0.5" ink-spinner "^3.0.1" +gatsby-graphiql-explorer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.1.2.tgz#ac85ced2b0653f0c48e26c3eb6b10de3afce21ed" + integrity sha512-DgnRdLbbywwa9YcNecEGBPDn/4zLIEHDjqhxbhmQ8bWiCNqphRwgWPB9HgPWIt8Gn5wx8112Nu72+jXNhLGelw== + dependencies: + "@babel/runtime" "^7.0.0" + gatsby-image@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/gatsby-image/-/gatsby-image-2.1.2.tgz#6c0caf0a4a3eabac5f516cb6e5abf8c95e603d72" @@ -8715,7 +8720,7 @@ gatsby-source-filesystem@2.0.29: valid-url "^1.0.9" xstate "^3.1.0" -gatsby-telemetry@^1.0.10, gatsby-telemetry@^1.0.11: +gatsby-telemetry@^1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.0.11.tgz#18b7fd03080db189f63265637cee333d2b811af8" integrity sha512-pEGt8lpjB52KF2ekdL7TvARTpE+iHzx31f8ILS7r7ZqgCp2v+MhaLGIDh4SiCM801mFYGgsp87mx4q8DCqPeDQ== @@ -8782,10 +8787,10 @@ gatsby-transformer-sharp@2.1.17: probe-image-size "^4.0.0" sharp "^0.21.3" -gatsby@~2.6.3: - version "2.6.4" - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.6.4.tgz#8d4303b2ca3b86acfc005e7aafa0bdd105f18a5c" - integrity sha512-7qSJxSghoxM4QhkxmI5MBZJUMjjPiu+G3p7/IBE9z3AVA/oPv5gFpSlIWZ1tnbkH/WM0mrkR6FVwxY65QQVjxg== +gatsby@~2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.9.2.tgz#caab8b601a2e3e2ba47c486b39ea9a1079060cda" + integrity sha512-lAxfwxBYXO380ZJFN9ygHzjAMw+9GDuRbQer7E6xMbjPB856agnPnbqBuasGAezocsYMRqg3rhaAnIOhnWcOtw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.0.0" @@ -8799,7 +8804,7 @@ gatsby@~2.6.3: "@reach/router" "^1.1.1" "@stefanprobst/lokijs" "^1.5.6-b" address "1.0.3" - autoprefixer "^9.4.3" + autoprefixer "^9.6.0" babel-core "7.0.0-bridge.0" babel-eslint "^9.0.0" babel-loader "^8.0.0" @@ -8843,17 +8848,17 @@ gatsby@~2.6.3: flat "^4.0.0" fs-exists-cached "1.0.0" fs-extra "^5.0.0" - gatsby-cli "^2.6.2" + gatsby-cli "^2.6.7" + gatsby-graphiql-explorer "^0.1.2" gatsby-link "^2.1.1" gatsby-plugin-page-creator "^2.0.13" gatsby-react-router-scroll "^2.0.7" - gatsby-telemetry "^1.0.10" + gatsby-telemetry "^1.0.11" glob "^7.1.1" got "8.0.0" graphql "^14.1.1" graphql-compose "^6.3.2" graphql-playground-middleware-express "^1.7.10" - hash-mod "^0.0.5" invariant "^2.2.4" is-relative "^1.0.0" is-relative-url "^2.0.0" @@ -8862,7 +8867,6 @@ gatsby@~2.6.3: joi "^14.0.0" json-loader "^0.5.7" json-stringify-safe "^5.0.1" - kebab-hash "^0.1.2" lodash "^4.17.10" md5 "^2.2.1" md5-file "^3.1.1" @@ -9788,11 +9792,6 @@ hash-base@^3.0.0: inherits "^2.0.1" safe-buffer "^5.0.1" -hash-mod@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/hash-mod/-/hash-mod-0.0.5.tgz#daf1e4973a9116643467d54ee7690b43ef802ecc" - integrity sha1-2vHklzqRFmQ0Z9VO52kLQ++ALsw= - hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -11580,13 +11579,6 @@ jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: dependencies: array-includes "^3.0.3" -kebab-hash@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/kebab-hash/-/kebab-hash-0.1.2.tgz#dfb7949ba34d8e70114ea7d83e266e5e2a4abaac" - integrity sha512-BTZpq3xgISmQmAVzkISy4eUutsUA7s4IEFlCwOBJjvSFOwyR7I+fza+tBc/rzYWK/NrmFHjfU1IhO3lu29Ib/w== - dependencies: - lodash.kebabcase "^4.1.1" - keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -11875,6 +11867,16 @@ loader-utils@1.0.x: emojis-list "^2.0.0" json5 "^0.5.0" +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" @@ -15505,6 +15507,11 @@ react-reconciler@^0.20.0: prop-types "^15.6.2" scheduler "^0.13.6" +react-shadow@^16.3.2: + version "16.3.2" + resolved "https://registry.yarnpkg.com/react-shadow/-/react-shadow-16.3.2.tgz#a431a7101b0e222dbc669c4070ab395f42dbb675" + integrity sha512-NxFoBvEg2WD3V25jgiWgIltpDfs2XBCbDyi63jEM6Gch8g8r2cqJxSWy2GfG666EfOpRR5Zsrhu0Qn5yze1PrA== + react-side-effect@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.5.tgz#f26059e50ed9c626d91d661b9f3c8bb38cd0ff2d" @@ -17942,6 +17949,13 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +to-string-loader@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/to-string-loader/-/to-string-loader-1.1.5.tgz#7b7aa17891b7bb4947a7a11bfb03b5fde9c6e695" + integrity sha1-e3qheJG3u0lHp6Eb+wO1/enG5pU= + dependencies: + loader-utils "^0.2.16" + to-style@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/to-style/-/to-style-1.3.3.tgz#63a2b70a6f4a7d4fdc2ed57a0be4e7235cb6699c"