diff --git a/.gitignore b/.gitignore
index 41358cc..14b4743 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
+# Ignore .css files
+/src/**/*.css
diff --git a/package.json b/package.json
index b664a8a..0441391 100644
--- a/package.json
+++ b/package.json
@@ -6,10 +6,13 @@
"colorable": "^1.0.5",
"mobx": "^3.1.11",
"mobx-react": "^4.2.1",
+ "node-sass-chokidar": "^0.0.3",
+ "npm-run-all": "^4.0.2",
"prop-types": "^15.5.10",
"rc-tooltip": "^3.4.7",
"react": "^15.5.4",
"react-clipboard.js": "^1.1.2",
+ "react-css-collapse": "^3.0.2",
"react-dom": "^15.5.4",
"react-markdown": "^2.5.0",
"react-router-dom": "^4.1.1",
@@ -21,8 +24,11 @@
"react-scripts": "^1.0.7"
},
"scripts": {
- "start": "react-scripts start",
- "build": "react-scripts build",
+ "build-css": "node-sass-chokidar src/ -o src/",
+ "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
+ "start-js": "react-scripts start",
+ "start": "npm-run-all -p watch-css start-js",
+ "build": "npm run build-css && react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
diff --git a/src/components/App/App.css b/src/components/App/App.css
deleted file mode 100644
index c6fc10e..0000000
--- a/src/components/App/App.css
+++ /dev/null
@@ -1,22 +0,0 @@
-.tlbx-body {
- background: #f0f0f0;
-}
-
-.tlbx-h2 { text-align: center; }
-
-.styleguide {
- display: grid;
- grid-template-columns: minmax(200px, 20vw) 1fr;
- min-height: 100vh;
-}
-
-.tlbx-sidebar-wrapper {
- grid-column: 1;
- background-color: #F0F0F2;
-}
-
-.tlbx-content-wrapper {
- grid-column: 2;
- align-self: start;
- margin-left: 18px;
-}
diff --git a/src/components/App/App.js b/src/components/App/App.js
index 3384909..359ea4d 100644
--- a/src/components/App/App.js
+++ b/src/components/App/App.js
@@ -35,11 +35,14 @@ class App extends Component {
const path = `components/${group}/${slug}/`;
const config = yaml.load(`${path}/${slug}.yml`);
const content = this.getMarkup(path, slug);
- const variants = config && config.variants ? Object.keys(config.variants).map(key => {
- const variantSlug = `${slug}-${key}`;
+ const variants = config && config.variants ? config.variants.map(key => {
+ // Make sure we put the slug to lowercase, to avoid issues on
+ // Case Sensitive systems (GH Pages)
+ const variantSlug = (`${slug}-${key}`).toLowerCase();
+
return {
slug: variantSlug,
- title: config.variants[key],
+ title: key,
content: this.getMarkup(path, variantSlug),
};
}) : null;
@@ -88,6 +91,9 @@ class App extends Component {
if (hasStyleguideShell) {
return (
+
+ Tools
+
diff --git a/src/components/App/App.scss b/src/components/App/App.scss
new file mode 100644
index 0000000..7c04bce
--- /dev/null
+++ b/src/components/App/App.scss
@@ -0,0 +1,32 @@
+@import '../../variables.scss';
+
+.tlbx-body {
+ background: $body-bg;
+}
+
+.tlbx-h2 { text-align: center; }
+
+.styleguide {
+ display: grid;
+ grid-template-columns: 60px 240px 1fr;
+ min-height: 100vh;
+ max-width: 100%;
+}
+
+.tlbx-toolbar-wrapper {
+ grid-column: 1;
+ background-color: $color-primary;
+ color: white;
+}
+
+.tlbx-sidebar-wrapper {
+ grid-column: 2;
+ background-color: $gray-lighter;
+}
+
+.tlbx-content-wrapper {
+ grid-column: 3;
+ align-self: start;
+ padding: 0 1rem;
+ overflow: hidden;
+}
diff --git a/src/components/Item/Item.css b/src/components/Item/Item.css
deleted file mode 100644
index e7f8f80..0000000
--- a/src/components/Item/Item.css
+++ /dev/null
@@ -1,8 +0,0 @@
-.tlbx-item-code {
- margin: 2rem 0 0;
-}
-
-.tlbx-item-code pre {
- padding: 0.6rem;
- box-shadow: inset 0 0 0 2px rgba(255,255,255,0.4);
-}
\ No newline at end of file
diff --git a/src/components/Item/Item.js b/src/components/Item/Item.js
index 44c4ded..f4d2a95 100644
--- a/src/components/Item/Item.js
+++ b/src/components/Item/Item.js
@@ -1,5 +1,6 @@
import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';
+import PropTypes from 'prop-types';
import SyntaxHighlighter, { registerLanguage } from 'react-syntax-highlighter/dist/light';
import xml from 'react-syntax-highlighter/dist/languages/xml';
@@ -18,7 +19,7 @@ class Item extends Component {
{title}
@@ -26,6 +27,15 @@ class Item extends Component {
language='html'
style={atomOneDark}
wrapLines={true}
+ showLineNumbers={true}
+ lineNumberContainerStyle={{
+ padding: '0.5em 0.5em 1em 0.5em',
+ float: 'left',
+ margin: '-0.5em 0 -0.5em -0.5em',
+ textAlign: 'right',
+ backgroundColor: 'rgba(255,255,255,0.1)',
+ marginRight: '0.5em'
+ }}
>
{this.props.children}
@@ -35,4 +45,12 @@ class Item extends Component {
}
}
+Item.PropTypes = {
+ title: PropTypes.string,
+ wrapper: PropTypes.string,
+ slug: PropTypes.string,
+ background: PropTypes.string,
+ children: PropTypes.string.isRequired,
+}
+
export default inject('store')(observer(Item));
diff --git a/src/components/Item/Item.scss b/src/components/Item/Item.scss
new file mode 100644
index 0000000..49db112
--- /dev/null
+++ b/src/components/Item/Item.scss
@@ -0,0 +1,19 @@
+@import '../../variables.scss';
+
+.tlbx-item-code {
+
+ margin: 2rem 0 0;
+}
+
+.tlbx-item-code pre {
+ padding: 0.6rem;
+ box-shadow: inset 0 0 0 2px rgba(255,255,255,0.4);
+
+ // Code sample
+ code:last-child {
+ // Hide last empty line (:empty not working, because React)
+ > span:last-of-type {
+ display: none;
+ }
+ }
+}
diff --git a/src/components/Sidebar/Sidebar.css b/src/components/Sidebar/Sidebar.css
deleted file mode 100644
index ea4dfc1..0000000
--- a/src/components/Sidebar/Sidebar.css
+++ /dev/null
@@ -1,9 +0,0 @@
-.toolbox-sidebar {
- height: 100vh;
- padding: 0 2em;
- border-right: 1px solid #333;
-}
-
-/* .tlbx-sidebar {
- padding: 2em;
-} */
diff --git a/src/components/Sidebar/Sidebar.js b/src/components/Sidebar/Sidebar.js
index c5840a1..23e5fa4 100644
--- a/src/components/Sidebar/Sidebar.js
+++ b/src/components/Sidebar/Sidebar.js
@@ -1,25 +1,20 @@
import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';
-import { NavLink } from 'react-router-dom'
-import PropTypes from 'prop-types';
+import { NavLink, withRouter } from 'react-router-dom'
+
+import SidebarItem from '../SidebarItem/SidebarItem';
import './Sidebar.css';
class Sidebar extends Component {
render() {
- const noComponents = (
-
-
- No components yet.
- Run $ yo toolbox:generate
-
-
- );
return (
-
+ Toolbox Design System
+
+
-
- Home
+ Home
-
Colors
@@ -29,34 +24,11 @@ class Sidebar extends Component {
{Object.keys(this.props.store.components).map((group, key) => {
if (group === 'docs') return null;
- return (
-
-
{group}
-
- {this.props.store.components[group].map((component, key) => {
- const path = `/${group}/${component.name}`;
-
- return (
- -
-
- {component.title}
-
-
- )
- })}
- {this.props.store.components[group].length === 0 && noComponents}
-
-
- )
+ return
})}
-
);
}
}
-Sidebar.propTypes = {
- components: PropTypes.object,
-};
-
-export default inject('store')(observer(Sidebar));
+export default withRouter(inject('store')(observer(Sidebar)));
diff --git a/src/components/Sidebar/Sidebar.scss b/src/components/Sidebar/Sidebar.scss
new file mode 100644
index 0000000..acc124b
--- /dev/null
+++ b/src/components/Sidebar/Sidebar.scss
@@ -0,0 +1,20 @@
+@import '../../variables.scss';
+
+.tlbx-sidebar {
+ padding: 1em 0;
+
+ a {
+ color: $body-color;
+ text-decoration: none;
+ }
+}
+
+.tlbx-sidebar-title {
+ font-size: 1rem;
+ margin: 0 1rem 1rem;
+
+ span {
+ font-weight: 200;
+ }
+}
+
diff --git a/src/components/SidebarItem/SidebarItem.js b/src/components/SidebarItem/SidebarItem.js
new file mode 100644
index 0000000..9de4049
--- /dev/null
+++ b/src/components/SidebarItem/SidebarItem.js
@@ -0,0 +1,79 @@
+import React, { Component } from 'react';
+import { inject, observer } from 'mobx-react';
+import { NavLink, withRouter } from 'react-router-dom'
+import Collapse from 'react-css-collapse';
+import PropTypes from 'prop-types';
+
+import './SidebarItem.css';
+
+class SidebarItem extends Component {
+ constructor() {
+ super();
+
+ this.state = {
+ active: false,
+ }
+
+ this.toggleComponentsList = this.toggleComponentsList.bind(this);
+ }
+
+ toggleComponentsList() {
+ this.setState({
+ active: !this.state.active,
+ });
+ }
+
+ componentDidMount() {
+ const regex = new RegExp(`^/${this.props.group}/`);
+ const isCurrent = this.props.location.pathname.match(regex);
+
+ this.setState({
+ active: !!isCurrent
+ })
+ }
+
+ render() {
+ const noComponents = (
+
+
+ No components yet.
+ Run $ yo toolbox:generate
+
+
+ );
+
+
+ return (
+
+
+
+
+ {this.props.store.components[this.props.group].map((component, key) => {
+ const path = `/${this.props.group}/${component.name}`;
+
+ return (
+ -
+
+ {component.title}
+
+
+ )
+ })}
+ {this.props.store.components[this.props.group].length === 0 && noComponents}
+
+
+
+ );
+ }
+}
+
+SidebarItem.propTypes = {
+ group: PropTypes.string.isRequired,
+ match: PropTypes.object.isRequired,
+ location: PropTypes.object.isRequired,
+ history: PropTypes.object.isRequired
+};
+
+export default withRouter(inject('store')(observer(SidebarItem)));
diff --git a/src/components/SidebarItem/SidebarItem.scss b/src/components/SidebarItem/SidebarItem.scss
new file mode 100644
index 0000000..7ed3a7f
--- /dev/null
+++ b/src/components/SidebarItem/SidebarItem.scss
@@ -0,0 +1,87 @@
+@import '../../variables.scss';
+
+.tlbx-sidebar-item {
+ display: flex;
+ margin: 0 0 0.5rem 0;
+ width: 100%;
+ padding-right: 1rem;
+ padding-left: 1rem;
+ border: 0;
+ background: none;
+ cursor: pointer;
+ text-transform: capitalize;
+ font-size: 1rem;
+
+ &:hover {
+ color: $link-hover-color;
+ }
+
+ &:after {
+ content: '';
+ line-height: 0;
+ align-self: center;
+ margin-left: auto;
+ margin-right: 1rem;
+ display: block;
+ width: 0;
+ height: 0;
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ border-top: 5px solid $link-color;
+ font-size: 0;
+ line-height: 0;
+ }
+
+ .tlbx-open & {
+ &:after {
+ transform: rotate(180deg);
+ }
+ }
+}
+
+.tlbx-sidebar-collapse {
+ transition: height 250ms cubic-bezier(.4, 0, .2, 1);
+}
+
+.tlbx-sidebar-item-list {
+ margin-top: 0;
+ list-style: none;
+ padding: 0;
+
+ a {
+ display: block;
+ position: relative;
+ padding: 0.25rem 0.5rem 0.25rem 2rem;
+ color: $body-color;
+ transition: color 250ms ease;
+
+ &:before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ border-left: 0 solid $link-color;
+ transition: border-width 100ms ease;
+ }
+
+ &.active,
+ &:hover {
+ color: $link-color;
+ text-decoration: none;
+
+ &:before {
+ border-left-width: 4px;
+ }
+ }
+
+ &.active {
+ font-weight: bold;
+ }
+ }
+}
+
+.tlbx-sidebar-item-list-empty {
+ display: block;
+ margin-left: 1rem;
+}
diff --git a/src/index.css b/src/index.css
deleted file mode 100644
index ea1e941..0000000
--- a/src/index.css
+++ /dev/null
@@ -1,4 +0,0 @@
-body {
- margin: 0;
- padding: 0;
-}
diff --git a/src/index.scss b/src/index.scss
new file mode 100644
index 0000000..899fe1f
--- /dev/null
+++ b/src/index.scss
@@ -0,0 +1,8 @@
+@import 'variables.scss';
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ color: $body-color;
+}
diff --git a/src/variables.scss b/src/variables.scss
new file mode 100644
index 0000000..9ff0900
--- /dev/null
+++ b/src/variables.scss
@@ -0,0 +1,14 @@
+
+// Colors
+$black: #010a15;
+$white: #f0f0f0;
+$color-primary: #003baf;
+$color-secondary-light: #3474a8;
+$color-secondary-dark: #012f4d;
+$gray-lighter: #f3f4f7;
+
+
+$body-color: $black;
+$body-bg: $white;
+$link-color: $color-secondary-light;
+$link-hover-color: $color-secondary-dark;
diff --git a/src/views/Colors/Colors.js b/src/views/Colors/Colors.js
index 4d321e1..5005442 100644
--- a/src/views/Colors/Colors.js
+++ b/src/views/Colors/Colors.js
@@ -106,22 +106,6 @@ class Colors extends Component {
Aa
- {/*
{
- return (
-
- {Object.keys(combination.accessibility).map(color => {
- return (
-
- {`${color}: ${combination.accessibility[color] ? '✔︎' : '✘'}`}
-
- )})}
- Contrast: {Math.round(combination.contrast * 10) / 10}:1
-
- );
- }}
- /> */}
)
diff --git a/src/views/Colors/Colors.css b/src/views/Colors/Colors.scss
similarity index 100%
rename from src/views/Colors/Colors.css
rename to src/views/Colors/Colors.scss
diff --git a/src/views/Page/Page.css b/src/views/Page/Page.scss
similarity index 100%
rename from src/views/Page/Page.css
rename to src/views/Page/Page.scss
diff --git a/src/views/Single/Single.js b/src/views/Single/Single.js
index ee24877..fcd68e9 100644
--- a/src/views/Single/Single.js
+++ b/src/views/Single/Single.js
@@ -72,7 +72,7 @@ class Single extends Component {
title={variant.title}
slug={`tlbx-${this.state.component.slug}-${variant.slug}`}
>
- {variant.markup}
+ {variant.markup}
);
})}
@@ -92,7 +92,9 @@ class Single extends Component {
wrapper={this.state.component.wrapper || ''}
background={this.state.component.background}
slug={`tlbx-${this.state.component.slug}`}
- >{this.state.content}
+ >
+ {this.state.content}
+
{variants}
diff --git a/src/views/Single/Single.css b/src/views/Single/Single.scss
similarity index 100%
rename from src/views/Single/Single.css
rename to src/views/Single/Single.scss
diff --git a/yarn.lock b/yarn.lock
index 24626bf..95b9f4c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -285,6 +285,10 @@ async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+async-foreach@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542"
+
async@^1.4.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
@@ -1282,7 +1286,7 @@ cheerio@^0.18.0:
htmlparser2 "~3.8.1"
lodash "~2.4.1"
-chokidar@^1.6.0, chokidar@^1.7.0:
+chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
dependencies:
@@ -1656,6 +1660,21 @@ cross-spawn@4.0.2:
lru-cache "^4.0.1"
which "^1.2.9"
+cross-spawn@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
+ dependencies:
+ lru-cache "^4.0.1"
+ which "^1.2.9"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
cryptiles@2.x.x:
version "2.0.5"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
@@ -2070,7 +2089,7 @@ duplexer2@^0.1.4:
dependencies:
readable-stream "^2.0.2"
-duplexer@^0.1.1:
+duplexer@^0.1.1, duplexer@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -2147,6 +2166,16 @@ error-ex@^1.2.0:
dependencies:
is-arrayish "^0.2.1"
+es-abstract@^1.4.3:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914"
+ dependencies:
+ es-to-primitive "^1.1.1"
+ function-bind "^1.1.0"
+ has "^1.0.1"
+ is-callable "^1.1.3"
+ is-regex "^1.0.4"
+
es-abstract@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
@@ -2414,6 +2443,18 @@ event-emitter@~0.3.5:
d "1"
es5-ext "~0.10.14"
+event-stream@~3.3.0:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+ dependencies:
+ duplexer "~0.1.1"
+ from "~0"
+ map-stream "~0.1.0"
+ pause-stream "0.0.11"
+ split "0.3"
+ stream-combiner "~0.0.4"
+ through "~2.3.1"
+
eventemitter3@1.x.x:
version "1.2.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508"
@@ -2707,6 +2748,10 @@ fresh@0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
+from@~0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+
fs-extra@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
@@ -2770,6 +2815,12 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
+gaze@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
+ dependencies:
+ globule "^1.0.0"
+
generate-function@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
@@ -2829,7 +2880,7 @@ glob-parent@^2.0.0:
dependencies:
is-glob "^2.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -2865,6 +2916,14 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+globule@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
+ dependencies:
+ glob "~7.1.1"
+ lodash "~4.17.4"
+ minimatch "~3.0.2"
+
good-listener@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
@@ -3456,7 +3515,7 @@ is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-is-regex@^1.0.3:
+is-regex@^1.0.3, is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
dependencies:
@@ -3815,7 +3874,7 @@ jest@20.0.4:
dependencies:
jest-cli "^20.0.4"
-js-base64@^2.1.9, js-base64@~2.1.8:
+js-base64@^2.1.8, js-base64@^2.1.9, js-base64@~2.1.8:
version "2.1.9"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce"
@@ -3999,6 +4058,15 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
loader-fs-cache@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
@@ -4054,6 +4122,10 @@ lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+lodash.clonedeep@^4.3.2:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+
lodash.cond@^4.3.0:
version "4.5.2"
resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
@@ -4086,6 +4158,10 @@ lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+lodash.mergewith@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
+
lodash.template@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
@@ -4103,7 +4179,7 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.2.0, lodash@^4.3.0:
+"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -4167,6 +4243,10 @@ map-obj@^1.0.0, map-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+map-stream@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@@ -4274,7 +4354,7 @@ minimatch@3.0.3:
dependencies:
brace-expansion "^1.0.0"
-minimatch@3.0.x, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+minimatch@3.0.x, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -4327,7 +4407,7 @@ mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
-nan@^2.3.0:
+nan@^2.3.0, nan@^2.3.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
@@ -4362,6 +4442,24 @@ node-forge@0.6.33:
version "0.6.33"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc"
+node-gyp@^3.3.1:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
+ dependencies:
+ fstream "^1.0.0"
+ glob "^7.0.3"
+ graceful-fs "^4.1.2"
+ minimatch "^3.0.2"
+ mkdirp "^0.5.0"
+ nopt "2 || 3"
+ npmlog "0 || 1 || 2 || 3 || 4"
+ osenv "0"
+ request "2"
+ rimraf "2"
+ semver "~5.3.0"
+ tar "^2.0.0"
+ which "1"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -4417,10 +4515,52 @@ node-pre-gyp@^0.6.36:
tar "^2.2.1"
tar-pack "^3.4.0"
+node-sass-chokidar@^0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/node-sass-chokidar/-/node-sass-chokidar-0.0.3.tgz#ba460efe41c8f14ce800aaa3606a7acbb1e630d1"
+ dependencies:
+ async-foreach "^0.1.3"
+ chokidar "^1.6.1"
+ get-stdin "^4.0.1"
+ glob "^7.0.3"
+ meow "^3.7.0"
+ node-sass "^4.5.3"
+ sass-graph "^2.1.1"
+ stdout-stream "^1.4.0"
+
+node-sass@^4.5.3:
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568"
+ dependencies:
+ async-foreach "^0.1.3"
+ chalk "^1.1.1"
+ cross-spawn "^3.0.0"
+ gaze "^1.0.0"
+ get-stdin "^4.0.1"
+ glob "^7.0.3"
+ in-publish "^2.0.0"
+ lodash.assign "^4.2.0"
+ lodash.clonedeep "^4.3.2"
+ lodash.mergewith "^4.6.0"
+ meow "^3.7.0"
+ mkdirp "^0.5.1"
+ nan "^2.3.2"
+ node-gyp "^3.3.1"
+ npmlog "^4.0.0"
+ request "^2.79.0"
+ sass-graph "^2.1.1"
+ stdout-stream "^1.4.0"
+
node-status-codes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
+"nopt@2 || 3":
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -4456,7 +4596,19 @@ normalize-url@^1.4.0:
query-string "^4.1.0"
sort-keys "^1.0.0"
-npmlog@^4.0.2:
+npm-run-all@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.0.2.tgz#a84669348e6db6ccbe052200b4cdb6bfe034a4fe"
+ dependencies:
+ chalk "^1.1.3"
+ cross-spawn "^5.0.1"
+ minimatch "^3.0.2"
+ ps-tree "^1.0.1"
+ read-pkg "^2.0.0"
+ shell-quote "^1.6.1"
+ string.prototype.padend "^3.0.0"
+
+"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
dependencies:
@@ -4591,7 +4743,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-osenv@^0.1.0, osenv@^0.1.4:
+osenv@0, osenv@^0.1.0, osenv@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
dependencies:
@@ -4712,6 +4864,18 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
+pause-stream@0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+ dependencies:
+ through "~2.3"
+
pbkdf2@^3.0.3:
version "3.0.12"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2"
@@ -5136,6 +5300,12 @@ prr@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+ps-tree@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014"
+ dependencies:
+ event-stream "~3.3.0"
+
pseudo-classes@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/pseudo-classes/-/pseudo-classes-0.0.1.tgz#dec983d94a68d03ddfdef3f07c44af9f6c223a5b"
@@ -5273,6 +5443,10 @@ react-clipboard.js@^1.1.2:
clipboard "^1.6.1"
prop-types "^15.5.0"
+react-css-collapse@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/react-css-collapse/-/react-css-collapse-3.0.2.tgz#26958b0545dfdc62d49701e51ff1f931ee199950"
+
react-dev-utils@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-3.0.2.tgz#1a42263e9b6aa11dcb45d69dfe5eb1b354bd5531"
@@ -5429,6 +5603,14 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
readable-stream@1.0:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
@@ -5603,7 +5785,7 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
-request@^2.48.0, request@^2.79.0, request@^2.81.0:
+request@2, request@^2.48.0, request@^2.79.0, request@^2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
@@ -5754,6 +5936,15 @@ sane@~1.6.0:
walker "~1.0.5"
watch "~0.10.0"
+sass-graph@^2.1.1:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49"
+ dependencies:
+ glob "^7.0.0"
+ lodash "^4.0.0"
+ scss-tokenizer "^0.2.3"
+ yargs "^7.0.0"
+
sax@^1.2.1, sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -5764,6 +5955,13 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
+scss-tokenizer@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1"
+ dependencies:
+ js-base64 "^2.1.8"
+ source-map "^0.4.2"
+
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
@@ -5788,6 +5986,10 @@ semver-diff@^2.0.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
+semver@~5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
send@0.15.3:
version "0.15.3"
resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309"
@@ -5863,7 +6065,17 @@ shallowequal@^0.2.2:
dependencies:
lodash.keys "^3.1.2"
-shell-quote@1.6.1:
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+shell-quote@1.6.1, shell-quote@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
dependencies:
@@ -5963,7 +6175,7 @@ source-map@0.5.6, source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source
version "0.5.6"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-source-map@^0.4.4, source-map@~0.4.2:
+source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.2:
version "0.4.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
dependencies:
@@ -6016,6 +6228,12 @@ specificity@^0.1.4:
version "0.1.6"
resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.1.6.tgz#aa501048f96e69485ddc95ef9f7a5b77f01232aa"
+split@0.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
+ dependencies:
+ through "2"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -6042,6 +6260,12 @@ stdin@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/stdin/-/stdin-0.0.1.tgz#d3041981aaec3dfdbc77a1b38d6372e38f5fb71e"
+stdout-stream@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b"
+ dependencies:
+ readable-stream "^2.0.1"
+
stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
@@ -6049,6 +6273,12 @@ stream-browserify@^2.0.1:
inherits "~2.0.1"
readable-stream "^2.0.2"
+stream-combiner@~0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+ dependencies:
+ duplexer "~0.1.1"
+
stream-http@^2.3.1:
version "2.7.2"
resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad"
@@ -6084,6 +6314,14 @@ string-width@^2.0.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
+string.prototype.padend@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.4.3"
+ function-bind "^1.0.2"
+
string.prototype.repeat@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf"
@@ -6231,7 +6469,7 @@ tar-pack@^3.4.0:
tar "^2.2.1"
uid-number "^0.0.6"
-tar@^2.2.1:
+tar@^2.0.0, tar@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
dependencies:
@@ -6257,7 +6495,7 @@ throat@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836"
-through@^2.3.6:
+through@2, through@^2.3.6, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -6703,6 +6941,12 @@ which-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+which@1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
which@^1.2.12, which@^1.2.9:
version "1.2.14"
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
@@ -6832,7 +7076,7 @@ yargs@^6.0.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
-yargs@^7.0.2:
+yargs@^7.0.0, yargs@^7.0.2:
version "7.1.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
dependencies: