From f237fc30947c006cf2b17404c1685cd4f97301e1 Mon Sep 17 00:00:00 2001 From: Nicolas Gallagher Date: Sat, 24 Jun 2017 10:11:29 -0700 Subject: [PATCH] Add styled-components/primitives to benchmarks --- benchmarks/README.md | 33 +-- benchmarks/index.js | 5 +- benchmarks/package.json | 7 +- .../Box/styled-components-primitives.js | 30 +++ .../src/styled-components-primitives.js | 7 + benchmarks/yarn.lock | 219 ++++++++++++++++-- 6 files changed, 266 insertions(+), 35 deletions(-) create mode 100644 benchmarks/src/components/Box/styled-components-primitives.js create mode 100644 benchmarks/src/styled-components-primitives.js diff --git a/benchmarks/README.md b/benchmarks/README.md index 07f9380b..b852b9cb 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -11,30 +11,37 @@ open ./performance/index.html The components used in the render benchmarks are simple enough to be implemented by multiple UI or style libraries. The implementations are not -equivalent in functionality. +equivalent in functionality. For example, React Native for Web's stylesheet is +unique in that it also converts React Native styles to DOM styles, has +deterministic resolution, and supports RTL layout. `react-native-web/stylesheet` is a comparative baseline that implements a simple `View` without much of React Native's functionality. ## Benchmark results -Typical render timings*: mean ± two standard deviations +Typical render timings*: mean ± two standard deviations. -| Implementation | Deep tree (ms) | Wide tree (ms) | Tweets (ms) | +| Implementation | Deep tree (ms) | Wide tree (ms) | Tweets (ms) | | :--- | ---: | ---: | ---: | -| `css-modules` | `87.67` `±15.22` | `170.85` `±16.87` | | -| `react-native-web/stylesheet@0.0.84` | `90.02` `±13.16` | `186.66` `±19.23` | | -| `react-native-web@0.0.84` | `102.72` `±19.26` | `222.35` `±18.95` | `12.81` `±5.45ms` | +| `css-modules` | `94.96` `±31.01` | `200.43` `±38.90` | | +| `react-native-web/stylesheet@0.0.107` | `98.58` `±10.83` | `218.59` `±36.52` | | +| `react-native-web@0.0.107` | `117.45` `±18.76` | `288.27` `±33.50` | `15.10` `±5.45ms` | Other libraries | Implementation | Deep tree (ms) | Wide tree (ms) | | :--- | ---: | ---: | -| `styletron@2.5.1` | `88.48` `±12.00` | `171.89` `±13.28` | -| `aphrodite@1.2.0` | `101.32` `±20.33` | `220.33` `±31.41` | -| `glamor@3.0.0-1` | `129.00` `±14.92` | `264.57` `±28.54` | -| `react-jss@5.4.1` | `137.33` `±21.55` | `314.91` `±29.03` | -| `reactxp@0.34.3` | `223.82` `±32.77` | `461.56` `±34.43` | -| `styled-components@2.0.0-11` | `277.53` `±28.83` | `627.91` `±43.13` | +| `styletron@2.5.1` | `90.38` `±15.15` | `197.40` `±29.02` | +| `aphrodite@1.2.0` | `88.65` `±19.62` | `187.35` `±24.60` | +| `glamor@3.0.0-1` | `145.64` `±21.93` | `283.60` `±23.26` | +| `react-jss@5.4.1` | `143.17` `±19.14` | `361.80` `±33.39` | +| `reactxp@0.34.3` | `227.18` `±28.75` | `496.08` `±59.96` | +| `styled-components@2.1.0` | `262.85` `±46.12` | `578.43` `±35.86` | +| `styled-components/primitives@2.1.0` | `261.43` `±44.14` | `569.65` `±22.19` | -*MacBook Pro (13-inch, Early 2011); 2.7 GHz Intel Core i7; 16 GB 1600 MHz DDR3. Google Chrome 56. +These results indicate that render performance is not a significant +differentiating factor between `aphrodite`, `styletron`, and +`react-native-web/stylesheet`. + +*MacBook Pro (13-inch, Early 2015); 3.1 GHz Intel Core i7; 16 GB 1867 MHz DDR3. Google Chrome 58 (2x CPU slowdown). diff --git a/benchmarks/index.js b/benchmarks/index.js index 7f375f01..ee2c170d 100644 --- a/benchmarks/index.js +++ b/benchmarks/index.js @@ -5,6 +5,7 @@ import jss from './src/jss'; import reactNative from './src/react-native'; import reactNativeStyleSheet from './src/react-native-stylesheet'; import styledComponents from './src/styled-components'; +import styledComponentsPrimitives from './src/styled-components-primitives'; import styletron from './src/styletron'; import xp from './src/reactxp'; @@ -40,7 +41,9 @@ const extraTests = [ () => renderDeepTree('reactxp', xp), () => renderWideTree('reactxp', xp), () => renderDeepTree('styled-components', styledComponents), - () => renderWideTree('styled-components', styledComponents) + () => renderWideTree('styled-components', styledComponents), + () => renderDeepTree('styled-components/primitives', styledComponentsPrimitives), + () => renderWideTree('styled-components/primitives', styledComponentsPrimitives) ]; const tests = testAll ? coreTests.concat(extraTests) : coreTests; diff --git a/benchmarks/package.json b/benchmarks/package.json index fcd9f629..1035a3fd 100644 --- a/benchmarks/package.json +++ b/benchmarks/package.json @@ -7,14 +7,15 @@ "glamor": "2.20.25", "marky": "^1.2.0", "react-jss": "^6.1.1", + "react-primitives": "^0.4.2", "reactxp": "^0.34.3", - "styled-components": "2.0.0-17", + "styled-components": "^2.1.0", "styletron-client": "^2.5.7", "styletron-utils": "^2.5.4" }, "devDependencies": { - "css-loader": "^0.28.1", + "css-loader": "^0.28.4", "react-addons-perf": "^15.4.2", - "style-loader": "^0.17.0" + "style-loader": "^0.18.2" } } diff --git a/benchmarks/src/components/Box/styled-components-primitives.js b/benchmarks/src/components/Box/styled-components-primitives.js new file mode 100644 index 00000000..fb7a5a19 --- /dev/null +++ b/benchmarks/src/components/Box/styled-components-primitives.js @@ -0,0 +1,30 @@ +import styled from 'styled-components/primitives'; + +const getColor = color => { + switch (color) { + case 0: + return '#222'; + case 1: + return '#666'; + case 2: + return '#999'; + case 3: + return 'blue'; + case 4: + return 'orange'; + case 5: + return 'red'; + default: + return 'transparent'; + } +}; + +const Box = styled.View` + flex-direction: ${props => (props.layout === 'column' ? 'column' : 'row')}; + padding: ${props => (props.outer ? '4px' : '0')}; + height: ${props => (props.fixed ? '20px' : 'auto')}; + width: ${props => (props.fixed ? '20px' : 'auto')}; + background-color: ${props => getColor(props.color)}; +`; + +module.exports = Box; diff --git a/benchmarks/src/styled-components-primitives.js b/benchmarks/src/styled-components-primitives.js new file mode 100644 index 00000000..14e0e298 --- /dev/null +++ b/benchmarks/src/styled-components-primitives.js @@ -0,0 +1,7 @@ +import Box from './components/Box/styled-components'; +import styled from 'styled-components/primitives'; + +export default { + Box, + View: styled.View +}; diff --git a/benchmarks/yarn.lock b/benchmarks/yarn.lock index 1a711dad..c0940434 100644 --- a/benchmarks/yarn.lock +++ b/benchmarks/yarn.lock @@ -2,10 +2,33 @@ # yarn lockfile v1 +ajv@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.0.tgz#c1735024c5da2ef75cc190713073d44f098bf486" + dependencies: + co "^4.6.0" + fast-deep-equal "^0.1.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" +animated@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/animated/-/animated-0.1.5.tgz#83df8dc443d57abab7b0bb04818b0b655b31c9b9" + dependencies: + invariant "^2.2.0" + normalize-css-color "^1.0.1" + +animated@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/animated/-/animated-0.2.0.tgz#1a0e96f097b3fbc5b64d7eddc723bcc0a6f97633" + dependencies: + invariant "^2.2.0" + normalize-css-color "^1.0.1" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -28,7 +51,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -asap@^2.0.3, asap@~2.0.3: +array-find-index@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +asap@^2.0.3, asap@^2.0.5, asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" @@ -57,7 +84,7 @@ babel-code-frame@^6.11.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-runtime@^6.18.0: +babel-runtime@^6.18.0, babel-runtime@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -131,6 +158,10 @@ clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + coa@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" @@ -181,6 +212,14 @@ core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" +create-react-class@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.0.tgz#ab448497c26566e1e29413e883207d57cfe7bed4" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + css-color-keywords@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" @@ -195,13 +234,14 @@ css-in-js-utils@^1.0.3: dependencies: hyphenate-style-name "^1.0.2" -css-loader@^0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.1.tgz#220325599f8f00452d9ceb4c3ca6c8a66798642d" +css-loader@^0.28.4: + version "0.28.4" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.4.tgz#6cf3579192ce355e8b38d5f42dd7a1f2ec898d0f" dependencies: babel-code-frame "^6.11.0" css-selector-tokenizer "^0.7.0" cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" object-assign "^4.0.1" @@ -291,14 +331,28 @@ csso@~2.3.1: clap "^1.0.9" source-map "^0.5.3" +debounce@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.0.2.tgz#503cc674d8d7f737099664fb75ddbd36b9626dc6" + decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +deep-assign@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-2.0.0.tgz#ebe06b1f07f08dae597620e3dd1622f371a1c572" + dependencies: + is-obj "^1.0.0" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" +deline@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/deline/-/deline-1.0.4.tgz#6c05c87836926e1a1c63e47882f3d2eb2c6f14c9" + electron-to-chromium@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.4.tgz#9751cbea89fa120bf88c226ba41eb8d0b6f1b597" @@ -325,10 +379,26 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +fast-deep-equal@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz#5c6f4599aba6b333ee3342e2ed978672f1001f8d" + fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" +fbjs@^0.8.12: + version "0.8.12" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.8, fbjs@^0.8.9: version "0.8.9" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.9.tgz#180247fbd347dcc9004517b904f865400a0c8f14" @@ -345,6 +415,10 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flexibility@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flexibility/-/flexibility-2.0.1.tgz#ad323aafc40f469ce624286518fc4d7cd72b7c77" + function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -368,6 +442,10 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -394,6 +472,12 @@ icss-replace-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -424,6 +508,19 @@ inline-style-prefixer@^3.0.1: bowser "^1.6.0" css-in-js-utils "^1.0.3" +inline-style-prefixer@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.6.tgz#b27fe309b4168a31eaf38c8e8c60ab9e7c11731f" + dependencies: + bowser "^1.6.0" + css-in-js-utils "^1.0.3" + +invariant@^2.2.0, invariant@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -436,6 +533,10 @@ is-in-browser@1.0.2, is-in-browser@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.0.2.tgz#f688bea8f1e5aadc3244ebc870d188cfb9b613cf" +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -486,10 +587,24 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + jss-camel-case@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-4.0.0.tgz#39ef2a137aaa1e2f160ab826845305f8efabcfd5" @@ -579,7 +694,7 @@ lodash@^4.17.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -loose-envify@^1.0.0: +loose-envify@^1.0.0, loose-envify@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: @@ -614,6 +729,10 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +normalize-css-color@^1.0.1, normalize-css-color@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d" + normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" @@ -631,7 +750,7 @@ num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -873,6 +992,14 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 source-map "^0.5.6" supports-color "^3.2.3" +postcss@^6.0.1: + version "6.0.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.3.tgz#b7f565b3d956fbb8565ca7c1e239d0506e427d8b" + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^4.0.0" + prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -883,6 +1010,13 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prop-types@^15.5.10: + version "15.5.10" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + prop-types@^15.5.4, prop-types@^15.5.8: version "15.5.8" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" @@ -916,6 +1050,43 @@ react-jss@^6.1.1: jss-preset-default "^2.0.0" prop-types "^15.5.8" +react-native-web@0.0.x: + version "0.0.106" + resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.0.106.tgz#928427320b5963548b372a32b62459154f1e1d7e" + dependencies: + animated "^0.2.0" + array-find-index "^1.0.2" + babel-runtime "^6.23.0" + create-react-class "^15.6.0" + debounce "1.0.2" + deep-assign "^2.0.0" + fbjs "^0.8.12" + hyphenate-style-name "^1.0.2" + inline-style-prefixer "^3.0.6" + normalize-css-color "^1.0.2" + prop-types "^15.5.10" + react-timer-mixin "^0.13.3" + +react-primitives@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/react-primitives/-/react-primitives-0.4.2.tgz#cb001c1122734f177559f5bf590aadd5129b0914" + dependencies: + animated "^0.1.5" + asap "^2.0.5" + deline "^1.0.4" + flexibility "^2.0.1" + inline-style-prefixer "^2.0.5" + invariant "^2.2.1" + normalize-css-color "^1.0.1" + prop-types "^15.5.10" + react-native-web "0.0.x" + react-timer-mixin "^0.13.3" + string-hash "^1.1.3" + +react-timer-mixin@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/react-timer-mixin/-/react-timer-mixin-0.13.3.tgz#0da8b9f807ec07dc3e854d082c737c65605b3d22" + reactxp@^0.34.3: version "0.34.3" resolved "https://registry.yarnpkg.com/reactxp/-/reactxp-0.34.3.tgz#6481992e57758ae6ffffbfde3d497527bb495032" @@ -974,6 +1145,12 @@ sax@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -1010,25 +1187,25 @@ strip-ansi@^3.0.0: dependencies: ansi-regex "^2.0.0" -style-loader@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.17.0.tgz#e8254bccdb7af74bd58274e36107b4d5ab4df310" +style-loader@^0.18.2: + version "0.18.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.18.2.tgz#cc31459afbcd6d80b7220ee54b291a9fd66ff5eb" dependencies: loader-utils "^1.0.2" + schema-utils "^0.3.0" -styled-components@2.0.0-17: - version "2.0.0-17" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-17.tgz#9d49e5b351f2c3e13698ee00d189a3c951735088" +styled-components@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.1.0.tgz#425805fca7efa5880aad2171f986bfd8a2f0808f" dependencies: buffer "^5.0.3" css-to-react-native "^2.0.3" fbjs "^0.8.9" hoist-non-react-statics "^1.2.0" - inline-style-prefixer "^2.0.5" is-function "^1.0.1" is-plain-object "^2.0.1" prop-types "^15.5.4" - stylis "^2.0.0" + stylis "^3.0.19" supports-color "^3.2.3" styletron-client@^2.5.7: @@ -1047,9 +1224,9 @@ styletron-utils@^2.5.4: dependencies: inline-style-prefixer "^2.0.1" -stylis@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.3.tgz#054b0ad1f636181664246c103adf506c84b502e7" +stylis@^3.0.19: + version "3.1.9" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.1.9.tgz#638370451f980437f57c59e58d2e296be29fafb7" supports-color@^2.0.0: version "2.0.0" @@ -1061,6 +1238,12 @@ supports-color@^3.2.3: dependencies: has-flag "^1.0.0" +supports-color@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.0.0.tgz#33a7c680aa512c9d03ef929cacbb974d203d2790" + dependencies: + has-flag "^2.0.0" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"