diff --git a/components/City.js b/components/City.js
index d88f89d..f1ccc19 100644
--- a/components/City.js
+++ b/components/City.js
@@ -1,16 +1,24 @@
import { createFragmentContainer, graphql } from 'react-relay';
+import Typography from 'material-ui/Typography';
+import List, { ListItem, ListItemIcon, ListItemText } from 'material-ui/List';
+
+const styles = {
+ subItem: {
+ marginLeft: '10px'
+ }
+};
const City = ({ data }) => {
if (!data) return null;
return (
-
- Loaded: {data.allLocations.edges.length}
-
- {data.allLocations.edges.map(({ node, cursor }) =>
- ,
- )}
-
+
+
+
+
+ Locations
+
+
+ Loaded: {data.allLocations.edges.length}
+
+
+
+
+
+ {data.allLocations.edges.map(({ node, cursor }) =>
+
+ )}
+
+
);
};
@@ -27,5 +59,5 @@ export default createFragmentContainer(
}
}
}
- `,
+ `
);
diff --git a/components/withRoot.js b/components/withRoot.js
new file mode 100644
index 0000000..468e6d9
--- /dev/null
+++ b/components/withRoot.js
@@ -0,0 +1,69 @@
+import React, { Component } from 'react';
+import { JssProvider } from 'react-jss';
+import {
+ withStyles,
+ createStyleSheet,
+ MuiThemeProvider
+} from 'material-ui/styles';
+import { getContext } from '../styles/context';
+
+// Apply some reset
+const styleSheet = createStyleSheet(theme => ({
+ '@global': {
+ html: {
+ background: theme.palette.background.default,
+ WebkitFontSmoothing: 'antialiased', // Antialiasing.
+ MozOsxFontSmoothing: 'grayscale' // Antialiasing.
+ },
+ body: {
+ margin: 0
+ }
+ }
+}));
+
+let AppWrapper = props => props.children;
+
+AppWrapper = withStyles(styleSheet)(AppWrapper);
+
+function withRoot(BaseComponent) {
+ class WithRoot extends Component {
+ static getInitialProps(ctx) {
+ if (BaseComponent.getInitialProps) {
+ return BaseComponent.getInitialProps(ctx);
+ }
+
+ return {};
+ }
+
+ componentDidMount() {
+ // Remove the server-side injected CSS.
+ const jssStyles = document.querySelector('#jss-server-side');
+ if (jssStyles && jssStyles.parentNode) {
+ jssStyles.parentNode.removeChild(jssStyles);
+ }
+ }
+
+ render() {
+ const context = getContext();
+
+ return (
+
+
+
+
+
+
+
+ );
+ }
+ }
+
+ WithRoot.displayName = `withRoot(${BaseComponent.displayName})`;
+
+ return WithRoot;
+}
+
+export default withRoot;
diff --git a/package.json b/package.json
index 8e3e46a..cf7f3bf 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,11 @@
{
"dependencies": {
+ "material-ui": "next",
+ "material-ui-icons": "^1.0.0-alpha.19",
"next": "beta",
"react": "^15.6.1",
"react-dom": "^15.6.1",
+ "react-jss": "^7.0.2",
"react-relay": "^1.1.0"
},
"devDependencies": {
diff --git a/pages/_document.js b/pages/_document.js
new file mode 100644
index 0000000..e198584
--- /dev/null
+++ b/pages/_document.js
@@ -0,0 +1,57 @@
+import React from 'react';
+import Document, { Head, Main, NextScript } from 'next/document';
+import { getContext, setContext } from '../styles/context';
+
+export default class MyDocument extends Document {
+ static async getInitialProps(ctx) {
+ // Reset the context for handling a new request.
+ setContext();
+ const page = ctx.renderPage();
+ // Get the context with the collected side effects.
+ const context = getContext();
+ return {
+ ...page,
+ styles: (
+
+ )
+ };
+ }
+
+ render() {
+ const context = getContext();
+ return (
+
+
+
My page
+
+ {/* Use minimum-scale=1 to enable GPU rasterization */}
+
+ {/* PWA primary color */}
+
+
+
+
+
+
+
+
+ );
+ }
+}
diff --git a/pages/index.js b/pages/index.js
index 6da3bb8..498b01b 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -1,3 +1,6 @@
import App from '../components/App';
+import withRoot from '../components/withRoot';
-export default () =>
;
+const Index = () =>
;
+
+export default withRoot(Index);
diff --git a/styles/context.js b/styles/context.js
new file mode 100644
index 0000000..3d5f925
--- /dev/null
+++ b/styles/context.js
@@ -0,0 +1,49 @@
+import { create } from 'jss';
+import preset from 'jss-preset-default';
+import { SheetsRegistry } from 'react-jss';
+import createPalette from 'material-ui/styles/palette';
+import createMuiTheme from 'material-ui/styles/theme';
+import { purple, green } from 'material-ui/colors';
+import createGenerateClassName from 'material-ui/styles/createGenerateClassName';
+
+const theme = createMuiTheme({
+ palette: createPalette({
+ primary: purple,
+ accent: green
+ })
+});
+
+// Configure JSS
+const jss = create(preset());
+jss.options.createGenerateClassName = createGenerateClassName;
+
+function createContext() {
+ return {
+ jss,
+ theme,
+ // This is needed in order to deduplicate the injection of CSS in the page.
+ sheetsManager: new WeakMap(),
+ // This is needed in order to inject the critical CSS.
+ sheetsRegistry: new SheetsRegistry()
+ };
+}
+
+export function setContext() {
+ // Singleton hack as there is no way to pass variables from _document.js to pages yet.
+ global.__INIT_MATERIAL_UI__ = createContext();
+}
+
+export function getContext() {
+ // Make sure to create a new store for every server-side request so that data
+ // isn't shared between connections (which would be bad)
+ if (!process.browser) {
+ return global.__INIT_MATERIAL_UI__;
+ }
+
+ // Reuse context on the client-side
+ if (!global.__INIT_MATERIAL_UI__) {
+ global.__INIT_MATERIAL_UI__ = createContext();
+ }
+
+ return global.__INIT_MATERIAL_UI__;
+}
diff --git a/yarn.lock b/yarn.lock
index cfe8306..87952bb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -738,7 +738,7 @@ babel-runtime@6.23.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0:
+babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.25.0:
version "6.25.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c"
dependencies:
@@ -866,6 +866,10 @@ braces@^1.8.2:
preserve "^0.2.0"
repeat-element "^1.1.2"
+brcast@^2.0.0, brcast@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/brcast/-/brcast-2.0.2.tgz#2db16de44140e418dc37fab10beec0369e78dcef"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -981,6 +985,10 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
+chain-function@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/chain-function/-/chain-function-1.0.0.tgz#0d4ab37e7e18ead0bdc47b920764118ce58733dc"
+
chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -991,6 +999,10 @@ chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
+change-emitter@^0.1.2:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515"
+
chokidar@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
@@ -1013,6 +1025,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+classnames@^2.2.5:
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d"
+
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@@ -1155,6 +1171,12 @@ css-tree@1.0.0-alpha17:
dependencies:
source-map "^0.5.3"
+css-vendor@^0.3.8:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa"
+ dependencies:
+ is-in-browser "^1.0.2"
+
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
@@ -1191,6 +1213,10 @@ deep-extend@~0.4.0:
version "0.4.2"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
+deepmerge@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.0.tgz#00bc5b88fd23b8130f9f5049071c3420e07a5465"
+
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
@@ -1262,6 +1288,10 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+dom-helpers@^3.2.0, dom-helpers@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.2.1.tgz#3203e07fed217bd1f424b019735582fc37b2825a"
+
dom-walk@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
@@ -1488,7 +1518,7 @@ fb-watchman@^2.0.0:
dependencies:
bser "^2.0.0"
-fbjs@^0.8.1, fbjs@^0.8.9:
+fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9:
version "0.8.14"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.14.tgz#d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c"
dependencies:
@@ -1692,7 +1722,7 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global@^4.3.0:
+global@^4.3.0, global@~4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
dependencies:
@@ -1799,6 +1829,10 @@ hoek@2.x.x:
version "2.16.3"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+hoist-non-react-statics@^1.0.0, hoist-non-react-statics@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb"
+
home-or-tmp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
@@ -1949,12 +1983,20 @@ is-fullwidth-code-point@^1.0.0:
dependencies:
number-is-nan "^1.0.0"
+is-function@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
+
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
dependencies:
is-extglob "^1.0.0"
+is-in-browser@^1.0.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
+
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -1983,6 +2025,12 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
+is-plain-object@^2.0.1:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ dependencies:
+ isobject "^3.0.1"
+
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
@@ -2021,6 +2069,10 @@ isobject@^2.0.0:
dependencies:
isarray "1.0.0"
+isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+
isomorphic-fetch@^2.1.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
@@ -2095,10 +2147,79 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.3.6"
+jss-camel-case@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-5.0.0.tgz#886c1fe56a8a11577454d6a8b4133caa6c1f53a0"
+
+jss-compose@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jss-compose/-/jss-compose-4.0.0.tgz#f0109e8e8301a2678279301c24523dbc76115b9b"
+ dependencies:
+ warning "^3.0.0"
+
+jss-default-unit@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/jss-default-unit/-/jss-default-unit-7.0.0.tgz#176c1db91da870e3ad16301f6f4b4cfc6fe1e90a"
+
+jss-expand@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jss-expand/-/jss-expand-4.0.0.tgz#71ec15386d7839bb23892acf9dcaa40b7fe9c785"
+
+jss-extend@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/jss-extend/-/jss-extend-5.0.0.tgz#08a1d4015d05dfe011e3a281457d471226865387"
+ dependencies:
+ warning "^3.0.0"
+
+jss-global@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/jss-global/-/jss-global-2.0.0.tgz#a162f822f17e5d760151d908bdb41d7f2824c28f"
+
+jss-nested@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/jss-nested/-/jss-nested-5.0.0.tgz#c0752f31f2d465110d7de6ac83583dbed669faa0"
+ dependencies:
+ warning "^3.0.0"
+
+jss-preset-default@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-3.0.0.tgz#e43ee1ac526f689baf2bfd28ae95a6fdc3a02663"
+ dependencies:
+ jss-camel-case "^5.0.0"
+ jss-compose "^4.0.0"
+ jss-default-unit "^7.0.0"
+ jss-expand "^4.0.0"
+ jss-extend "^5.0.0"
+ jss-global "^2.0.0"
+ jss-nested "^5.0.0"
+ jss-props-sort "^5.0.0"
+ jss-vendor-prefixer "^6.0.0"
+
+jss-props-sort@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/jss-props-sort/-/jss-props-sort-5.0.0.tgz#8839c88433f64e8c1dab1a7068796f19b84f9195"
+
+jss-vendor-prefixer@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/jss-vendor-prefixer/-/jss-vendor-prefixer-6.0.0.tgz#be58124f0cbed76e98cc8eb5219dbb260f057d0b"
+ dependencies:
+ css-vendor "^0.3.8"
+
+jss@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/jss/-/jss-8.1.0.tgz#b32f15efcce22446dfda4c2be09a04f38431da0a"
+ dependencies:
+ is-in-browser "^1.0.2"
+ warning "^3.0.0"
+
junk@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/junk/-/junk-1.0.3.tgz#87be63488649cbdca6f53ab39bec9ccd2347f592"
+keycode@^2.1.9:
+ version "2.1.9"
+ resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa"
+
kind-of@^3.0.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -2150,7 +2271,7 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
-lodash@^4.14.0, lodash@^4.2.0, lodash@^4.5.1, lodash@^4.6.1:
+lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.5.1, lodash@^4.6.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -2177,6 +2298,35 @@ make-dir@^1.0.0:
dependencies:
pify "^2.3.0"
+material-ui-icons@^1.0.0-alpha.19:
+ version "1.0.0-alpha.19"
+ resolved "https://registry.yarnpkg.com/material-ui-icons/-/material-ui-icons-1.0.0-alpha.19.tgz#a6c5db87be335bbc483189c56804d681b7ea6b54"
+ dependencies:
+ recompose "^0.23.5"
+
+material-ui@next:
+ version "1.0.0-beta.3"
+ resolved "https://registry.yarnpkg.com/material-ui/-/material-ui-1.0.0-beta.3.tgz#95f2fb33dfa6b42f18a5e5d5dc2dbeffa97b790d"
+ dependencies:
+ babel-runtime "^6.25.0"
+ brcast "^2.0.1"
+ classnames "^2.2.5"
+ deepmerge "^1.5.0"
+ dom-helpers "^3.2.1"
+ hoist-non-react-statics "^1.2.0"
+ jss "^8.1.0"
+ jss-preset-default "^3.0.0"
+ keycode "^2.1.9"
+ lodash "^4.17.4"
+ prop-types "^15.5.10"
+ react-event-listener "^0.4.5"
+ react-jss "^7.0.2"
+ react-scrollbar-size "^2.0.0"
+ react-transition-group "^2.2.0"
+ recompose "^0.24.0"
+ scroll "^2.0.0"
+ warning "^3.0.0"
+
maximatch@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/maximatch/-/maximatch-0.1.0.tgz#86cd8d6b04c9f307c05a6b9419906d0360fb13a2"
@@ -2742,6 +2892,12 @@ querystring@0.2.0, querystring@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+rafl@~1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/rafl/-/rafl-1.2.2.tgz#fe930f758211020d47e38815f5196a8be4150740"
+ dependencies:
+ global "~4.3.0"
+
randomatic@^1.1.3:
version "1.1.7"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
@@ -2781,6 +2937,15 @@ react-dom@^15.6.1:
object-assign "^4.1.0"
prop-types "^15.5.10"
+react-event-listener@^0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/react-event-listener/-/react-event-listener-0.4.5.tgz#e3e895a0970cf14ee8f890113af68197abf3d0b1"
+ dependencies:
+ babel-runtime "^6.20.0"
+ fbjs "^0.8.4"
+ prop-types "^15.5.4"
+ warning "^3.0.0"
+
react-hot-loader@3.0.0-beta.7:
version "3.0.0-beta.7"
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz#d5847b8165d731c4d5b30d86d5d4716227a0fa83"
@@ -2792,6 +2957,16 @@ react-hot-loader@3.0.0-beta.7:
redbox-react "^1.3.6"
source-map "^0.4.4"
+react-jss@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-7.0.2.tgz#1939c8c41980dadadf25204953136fbdb6bd1ade"
+ dependencies:
+ hoist-non-react-statics "^1.2.0"
+ jss "^8.1.0"
+ jss-preset-default "^3.0.0"
+ prop-types "^15.5.8"
+ theming "^1.1.0"
+
react-proxy@^3.0.0-alpha.0:
version "3.0.0-alpha.1"
resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07"
@@ -2808,11 +2983,30 @@ react-relay@^1.1.0:
react-static-container "^1.0.1"
relay-runtime "1.1.0"
+react-scrollbar-size@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/react-scrollbar-size/-/react-scrollbar-size-2.0.0.tgz#611215f4105db28f1f56ccace627c3fce137a2f3"
+ dependencies:
+ babel-runtime "^6.23.0"
+ prop-types "^15.5.10"
+ react-event-listener "^0.4.5"
+
react-static-container@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/react-static-container/-/react-static-container-1.0.1.tgz#694c0dd68a896b879519afb548399cc1989c9ab0"
-react@^15.6.1:
+react-transition-group@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.2.0.tgz#793bf8cb15bfe91b3101b24bce1c1d2891659575"
+ dependencies:
+ chain-function "^1.0.0"
+ classnames "^2.2.5"
+ dom-helpers "^3.2.0"
+ loose-envify "^1.3.1"
+ prop-types "^15.5.8"
+ warning "^3.0.0"
+
+react@^15.5.4, react@^15.6.1:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
dependencies:
@@ -2858,6 +3052,24 @@ readdirp@^2.0.0:
readable-stream "^2.0.2"
set-immediate-shim "^1.0.1"
+recompose@^0.23.5:
+ version "0.23.5"
+ resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.23.5.tgz#72ac8261246bec378235d187467d02a721e8b1de"
+ dependencies:
+ change-emitter "^0.1.2"
+ fbjs "^0.8.1"
+ hoist-non-react-statics "^1.0.0"
+ symbol-observable "^1.0.4"
+
+recompose@^0.24.0:
+ version "0.24.0"
+ resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.24.0.tgz#262e93f974439eb17e7779824d88cce90492a5dd"
+ dependencies:
+ change-emitter "^0.1.2"
+ fbjs "^0.8.1"
+ hoist-non-react-statics "^1.0.0"
+ symbol-observable "^1.0.4"
+
recursive-copy@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/recursive-copy/-/recursive-copy-2.0.6.tgz#d590f9eb5f165b96a1b80bc8f9cbcb5c6f9c89e9"
@@ -3036,6 +3248,12 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+scroll@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/scroll/-/scroll-2.0.0.tgz#55cba0d84eb845d98fe3579a801e5722a6a3a81f"
+ dependencies:
+ rafl "~1.2.1"
+
"semver@2 || 3 || 4 || 5", semver@^5.3.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
@@ -3274,6 +3492,10 @@ supports-color@^3.1.0:
dependencies:
has-flag "^1.0.0"
+symbol-observable@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+
tapable@^0.2.7, tapable@~0.2.5:
version "0.2.7"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.7.tgz#e46c0daacbb2b8a98b9b0cea0f4052105817ed5c"
@@ -3299,6 +3521,16 @@ tar@^2.2.1:
fstream "^1.0.2"
inherits "2"
+theming@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/theming/-/theming-1.1.0.tgz#0562760b55a1b919c2d5eeb94130351f8958e13a"
+ dependencies:
+ brcast "^2.0.0"
+ is-function "^1.0.1"
+ is-plain-object "^2.0.1"
+ prop-types "^15.5.8"
+ react "^15.5.4"
+
thenify-all@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -3434,6 +3666,12 @@ walk@^2.3.9:
dependencies:
foreachasync "^3.0.0"
+warning@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c"
+ dependencies:
+ loose-envify "^1.0.0"
+
watchpack@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"