-
-
-
+
+
+
+
```
diff --git a/ashes/src/components/utils/currency/currency.css b/ashes/src/components/utils/currency/currency.css
new file mode 100644
index 0000000000..e03dcc9b50
--- /dev/null
+++ b/ashes/src/components/utils/currency/currency.css
@@ -0,0 +1,4 @@
+
+.currency {
+ display: inline-block;
+}
diff --git a/ashes/src/components/utils/currency/currency.jsx b/ashes/src/components/utils/currency/currency.jsx
new file mode 100644
index 0000000000..94df9b5d10
--- /dev/null
+++ b/ashes/src/components/utils/currency/currency.jsx
@@ -0,0 +1,62 @@
+/* @flow */
+
+// libs
+import { curryRight } from 'lodash';
+import React from 'react';
+import classNames from 'classnames';
+
+// components
+import formatCurrency from 'lib/format-currency';
+import Change from 'components/utils/change';
+
+// styles
+import s from './currency.css';
+
+type Props = {
+ /** element's id */
+ id: number,
+ /** passing value */
+ value: number | string,
+ /** fraction base */
+ fractionBase?: number,
+ /** currency abbreviation (e.g. 'EUR') */
+ currency?: string,
+ /** set true if value is big number */
+ bigNumber?: boolean,
+ /** transaction mode renders colored positive/negative values */
+ isTransaction?: boolean,
+ /** additional className */
+ className?: string
+}
+
+/**
+ * Currency component serves to format passed value
+ * and render it with currency symbol
+ *
+ * @function Change
+ */
+
+const Currency = (props: Props) => {
+ const { isTransaction, id, className, ...rest } = props;
+ let value;
+
+ if (isTransaction) {
+ value =
;
+ } else {
+ value = formatCurrency(props.value, rest);
+ }
+
+ return (
+
+ {value}
+
+ );
+};
+
+Currency.defaultProps = {
+ fractionBase: 2,
+ currency: 'USD',
+ bigNumber: false
+};
+
+export default Currency;
diff --git a/ashes/src/components/utils/currency/currency.md b/ashes/src/components/utils/currency/currency.md
new file mode 100644
index 0000000000..56a49ddc84
--- /dev/null
+++ b/ashes/src/components/utils/currency/currency.md
@@ -0,0 +1,65 @@
+##### Basic usage
+
+```javascript
+import Currency from 'components/utils/currency';
+
+
+```
+
+### States
+```
+
+
+
+
+
+
+
+```
+
+### Example
+```
+class CurrencyExample extends React.Component {
+ constructor() {
+ this.state = {
+ value: 0,
+ isTransaction: false
+ };
+ }
+
+ checkboxChange() {
+ this.setState({ isTransaction: !this.state.isTransaction });
+ }
+
+ inputChange(value) {
+ this.setState({ value });
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+ Result:
+
+
+
+ );
+ }
+}
+
+
+```
diff --git a/ashes/src/components/utils/currency/currency.spec.jsx b/ashes/src/components/utils/currency/currency.spec.jsx
new file mode 100644
index 0000000000..a3eae83e52
--- /dev/null
+++ b/ashes/src/components/utils/currency/currency.spec.jsx
@@ -0,0 +1,97 @@
+import React from 'react';
+import { mount } from 'enzyme';
+
+import Currency from './currency';
+
+describe('Currency', function () {
+
+ it('should render non-empty tag by default', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('$0.00');
+ });
+
+ it('should render empty string when get incorrect value', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('');
+ });
+
+ it('should render correct currency', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('$1.23');
+ });
+
+ it('should render correct negative value', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('-$1.23');
+ });
+
+ it('should render value with delimiter', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('$12,345,678.90');
+ });
+
+ it('should support another fractionBase', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('$123.00');
+ });
+
+ it('should support another currency', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('€1.23');
+ });
+
+ it('should support big integers', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.text()).to.equal('$151,515,425,195,151,845.15');
+ });
+
+ it('should render positive style in Transaction mode', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.find('Change').hasClass('positive')).to.be.true;
+ });
+
+ it('should render negative style in Transaction mode', function () {
+
+ const currency = mount(
+
+ );
+
+ expect(currency.find('Change').hasClass('negative')).to.be.true;
+ });
+});
diff --git a/ashes/src/components/utils/currency/index.js b/ashes/src/components/utils/currency/index.js
new file mode 100644
index 0000000000..db6389a25b
--- /dev/null
+++ b/ashes/src/components/utils/currency/index.js
@@ -0,0 +1 @@
+export default from './currency';
diff --git a/ashes/src/components/utils/datetime/datetime.jsx b/ashes/src/components/utils/datetime/datetime.jsx
new file mode 100644
index 0000000000..d3a945f928
--- /dev/null
+++ b/ashes/src/components/utils/datetime/datetime.jsx
@@ -0,0 +1,60 @@
+/* @flow */
+
+// libs
+import React from 'react';
+import moment from 'moment';
+
+type DateTimeProps = {
+ /** time string */
+ value: string,
+ /** set UTC time*/
+ utc?: boolean,
+ /** set empty value text */
+ emptyValue?: string,
+ /** className */
+ className?: string
+}
+
+type MomentProps = DateTimeProps & {
+ /** set time format */
+ format: string,
+};
+
+/**
+ * `DateTime`, `Date`, and `Time` - are simple components
+ * build on the top of generic `Moment`
+ * and serve to show date/time data
+ *
+ * @function DateTime
+ */
+export const DateTime = (props: DateTimeProps) =>
;
+export const Date = (props: DateTimeProps) =>
;
+export const Time = (props: DateTimeProps) =>
;
+
+const Moment = ({
+ utc,
+ value,
+ format,
+ emptyValue,
+ className,
+ ...rest
+}: MomentProps) => {
+
+ if (!value) {
+ return
{emptyValue} ;
+ }
+
+ const timeValue = utc ? moment.utc(value) : moment(value);
+
+ return (
+
+ {timeValue.local().format(format)}
+
+ );
+};
+
+Moment.defaultProps = {
+ format: 'L LTS',
+ utc: true,
+ emptyValue: 'not set',
+};
diff --git a/ashes/src/components/utils/datetime/datetime.md b/ashes/src/components/utils/datetime/datetime.md
new file mode 100644
index 0000000000..6e9149dfa7
--- /dev/null
+++ b/ashes/src/components/utils/datetime/datetime.md
@@ -0,0 +1,37 @@
+#### Basic usage
+
+```javascript
+
+```
+
+### States
+
+```javascript
+import { DateTime } from 'components/utils/datetime'
+```
+
+```
+
+
+
+```
+
+```javascript
+import { Date } from 'components/utils/datetime'
+```
+
+```
+
+
+
+```
+
+```javascript
+import { Time } from 'components/utils/datetime'
+```
+
+```
+
+
+
+```
diff --git a/ashes/src/components/utils/datetime/datetime.spec.jsx b/ashes/src/components/utils/datetime/datetime.spec.jsx
new file mode 100644
index 0000000000..054097afdb
--- /dev/null
+++ b/ashes/src/components/utils/datetime/datetime.spec.jsx
@@ -0,0 +1,109 @@
+import React from 'react';
+import { mount } from 'enzyme';
+import { DateTime, Date, Time } from './datetime';
+
+describe('DateTime', () => {
+
+ describe('#DateTime', () => {
+ it('should render date/time in (L LT) format', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('12/29/2017 3:10 PM');
+ });
+
+ it('should render default emptyValue when value is not defined', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('not set');
+ });
+
+ it('should render custom emptyValue ', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('date is not set');
+ });
+
+ it('should render passed className', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.hasClass('test')).to.be.true;
+ });
+
+ });
+
+ describe('#Date', () => {
+ it('should render date/time in (L) format', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('12/29/2017');
+ });
+
+ it('should render default emptyValue when value is not defined', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('not set');
+ });
+
+ it('should render custom emptyValue ', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('date is not set');
+ });
+
+ it('should render passed className', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.hasClass('test')).to.be.true;
+ });
+ });
+
+ describe('#Date', () => {
+ it('should render date/time in (LT) format', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('3:10 PM');
+ });
+
+ it('should render default emptyValue when value is not defined', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('not set');
+ });
+
+ it('should render custom emptyValue ', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.text()).to.equal('time is not set');
+ });
+
+ it('should render passed className', () => {
+ const datetime = mount(
+
+ );
+
+ expect(datetime.hasClass('test')).to.be.true;
+ });
+ });
+});
diff --git a/ashes/src/components/utils/datetime/index.jsx b/ashes/src/components/utils/datetime/index.jsx
new file mode 100644
index 0000000000..bb1c9cca2a
--- /dev/null
+++ b/ashes/src/components/utils/datetime/index.jsx
@@ -0,0 +1 @@
+export * from './datetime';
diff --git a/ashes/src/components/utils/errors/api-errors.md b/ashes/src/components/utils/errors/api-errors.md
index e5604d94b8..4c0abbedca 100644
--- a/ashes/src/components/utils/errors/api-errors.md
+++ b/ashes/src/components/utils/errors/api-errors.md
@@ -1,4 +1,4 @@
-#### Basic usage
+##### Basic usage
```javascript
import { ApiErrors } from 'components/utils/errors';
@@ -41,7 +41,7 @@ class ApiErrorsExample extends React.Component {
render() {
return (
-
+
error + '!'}
diff --git a/ashes/src/components/utils/errors/errors.md b/ashes/src/components/utils/errors/errors.md
index 3108a0a036..fe6f5bd869 100644
--- a/ashes/src/components/utils/errors/errors.md
+++ b/ashes/src/components/utils/errors/errors.md
@@ -1,4 +1,4 @@
-#### Basic usage
+##### Basic usage
```javascript
import Errors from 'components/utils/errors';
@@ -28,7 +28,7 @@ class ErrorsExample extends React.Component {
render() {
return (
-
+
error + '!'}
diff --git a/ashes/src/css/base.css b/ashes/src/css/base.css
index 72add9755a..229f512ac9 100644
--- a/ashes/src/css/base.css
+++ b/ashes/src/css/base.css
@@ -2,7 +2,7 @@
@import 'fontello.css';
@import 'transitions.css';
@import 'normalize.css';
-@import 'colors.css';
+@import 'variables.css';
* {
outline: 0;
diff --git a/ashes/src/css/common.css b/ashes/src/css/common.css
index 55938b219f..41fca6a65b 100644
--- a/ashes/src/css/common.css
+++ b/ashes/src/css/common.css
@@ -2,7 +2,7 @@
:root {
--loading-caramel: {
- background-image: inline(caramel.png);
+ background-image: url('../images/caramel.png');
animation: caramel .5s linear infinite;
};
}
diff --git a/ashes/src/css/normalize.css b/ashes/src/css/normalize.css
index b0d14c2e9a..adb61004e4 100644
--- a/ashes/src/css/normalize.css
+++ b/ashes/src/css/normalize.css
@@ -1,4 +1,4 @@
-@import 'colors.css';
+@import 'variables.css';
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
diff --git a/ashes/src/css/colors.css b/ashes/src/css/variables.css
similarity index 77%
rename from ashes/src/css/colors.css
rename to ashes/src/css/variables.css
index 015f3f53c0..55a524d56d 100644
--- a/ashes/src/css/colors.css
+++ b/ashes/src/css/variables.css
@@ -34,5 +34,14 @@
/* all other background colors are damned! */
+ /* allowed fonts */
+ --font-page-title: 300 30px/41px 'Open Sans';
+ --font-section-title: 600 16px/22px 'Open Sans';
+ --font-labels: 600 14px/20px 'Open Sans';
+ --font-nav: 400 14px/20px 'Open Sans';
+ --font-body: 400 13px/18px 'Open Sans';
+
+ /* all other background colors are damned! */
+
--decor24: #ffbb3c;
}
diff --git a/ashes/src/less/_variables.less b/ashes/src/less/_variables.less
index 290ab1323b..59b93be146 100644
--- a/ashes/src/less/_variables.less
+++ b/ashes/src/less/_variables.less
@@ -1,4 +1,4 @@
-// Copy set of 'colors.css'
+// Copy set of 'variables.css'
@color-text: #363636;
@color-additional-text: rgba(54, 54, 54, 0.5);
diff --git a/ashes/src/less/base.less b/ashes/src/less/base.less
index ff2e4d9f4f..2dc8654c5a 100644
--- a/ashes/src/less/base.less
+++ b/ashes/src/less/base.less
@@ -12,7 +12,6 @@
/* Modules */
@import 'modules/_buttons.less';
-@import 'modules/_currency.less';
@import 'modules/_dropdown.less';
@import 'modules/_content-box.less';
@import 'modules/_editable-content-box.less';
diff --git a/ashes/src/less/modules/_currency.less b/ashes/src/less/modules/_currency.less
deleted file mode 100644
index 668ed57741..0000000000
--- a/ashes/src/less/modules/_currency.less
+++ /dev/null
@@ -1,25 +0,0 @@
-
-.fc-currency {
- display: inline-block;
- &._transaction {
- color: @color-link;
-
- &._negative {
- color: @color-error-text;
-
- &::first-letter {
- padding-right: 0.35em;
- }
-
- &:before {
- display: none;
- }
- }
-
- &:before {
- content: "+";
- color: @color-link;
- padding-right: 0.35em;
- }
- }
-}
diff --git a/ashes/styleguide/config.styleguide.js b/ashes/styleguide/config.styleguide.js
index 76496e90c3..a8a79a91e0 100644
--- a/ashes/styleguide/config.styleguide.js
+++ b/ashes/styleguide/config.styleguide.js
@@ -2,12 +2,14 @@ const path = require('path');
const { camelCase, upperFirst } = require('lodash');
module.exports = {
- title: `Version: ${process.env.GIT_COMMIT} `,
+ title: `${process.env.GIT_COMMIT}`,
template: path.join(__dirname, 'template.html'),
showCode: false,
+ showUsage: true,
ignore: [path.join(__dirname, '../src/components/core/**/*.spec.jsx')],
webpackConfig: require('./webpack.styleguide.js'),
styleguideDir: path.resolve('build/admin/styleguide'),
+ highlightTheme: 'neo',
getComponentPathLine: componentPath => {
const dirname = path.dirname(componentPath, '.jsx');
const name = dirname.split('/').slice(-1)[0];
@@ -22,17 +24,10 @@ module.exports = {
name: 'Documentation',
sections: [
{
- name: 'Colors and Typo',
- sections: [
- {
- content: '../docs/colors-and-typos.md',
- },
- {
- components: () => [
- path.resolve(__dirname, '../src/components/docs/colors/text-colors.jsx'),
- path.resolve(__dirname, '../src/components/docs/colors/bg-colors.jsx'),
- ],
- },
+ name: 'Colors and Typography',
+ components: () => [
+ path.resolve(__dirname, '../src/components/docs/colors/colors.jsx'),
+ path.resolve(__dirname, '../src/components/docs/fonts/fonts.jsx'),
],
},
{
@@ -43,107 +38,86 @@ module.exports = {
path.resolve(__dirname, '../src/components/docs/logos/logos.jsx'),
],
},
+ ],
+ },
+ {
+ name: 'Core Components',
+ sections: [
+ {
+ name: 'Alerts',
+ components: () => [path.resolve(__dirname, '../src/components/core/alert/alert.jsx')],
+ },
+ {
+ name: 'Buttons',
+ components: () => [
+ path.resolve(__dirname, '../src/components/core/button/button.jsx'),
+ path.resolve(__dirname, '../src/components/core/button-with-menu/button-with-menu.jsx'),
+ path.resolve(__dirname, '../src/components/core/save-cancel/save-cancel.jsx'),
+ ],
+ },
{
- name: 'Components',
- content: '../docs/components.md',
+ name: 'Navigation',
+ components: () => [path.resolve(__dirname, '../src/components/core/page-nav/page-nav.jsx')],
},
{
- name: 'Styles',
- content: '../docs/styles.md',
+ name: 'Forms',
+ components: () => [
+ path.resolve(__dirname, '../src/components/core/text-mask/text-mask.jsx'),
+ path.resolve(__dirname, '../src/components/core/swatch-input/swatch-input.jsx'),
+ path.resolve(__dirname, '../src/components/core/radio-button/radio-button.jsx'),
+ path.resolve(__dirname, '../src/components/core/checkbox/checkbox.jsx'),
+ path.resolve(__dirname, '../src/components/core/counter/counter.jsx'),
+ path.resolve(__dirname, '../src/components/core/text-input/text-input.jsx'),
+ ],
},
{
- name: 'Flow',
- content: '../docs/flow.md',
+ name: 'Modal',
+ components: () => [
+ path.resolve(__dirname, '../src/components/core/modal-container/modal-container.jsx'),
+ path.resolve(__dirname, '../src/components/core/modal/modal.jsx'),
+ path.resolve(__dirname, '../src/components/core/confirmation-modal/confirmation-modal.jsx'),
+ ],
},
{
- name: 'Tests',
- content: '../docs/tests.md',
+ name: 'Other',
+ components: () => [
+ path.resolve(__dirname, '../src/components/core/rounded-pill/rounded-pill.jsx'),
+ path.resolve(__dirname, '../src/components/core/spinner/spinner.jsx'),
+ path.resolve(__dirname, '../src/components/core/countdown/countdown.jsx'),
+ path.resolve(__dirname, '../src/components/core/svg-icon/svg-icon.jsx'),
+ path.resolve(__dirname, '../src/components/core/icon/icon.jsx'),
+ ],
},
],
},
{
- name: 'Components',
+ name: 'Utils Components',
sections: [
{
- name: 'Core',
- sections: [
- {
- name: 'Alerts',
- components: () => [path.resolve(__dirname, '../src/components/core/alert/alert.jsx')],
- },
- {
- name: 'Buttons',
- components: () => [
- path.resolve(__dirname, '../src/components/core/button/button.jsx'),
- path.resolve(__dirname, '../src/components/core/button-with-menu/button-with-menu.jsx'),
- path.resolve(__dirname, '../src/components/core/save-cancel/save-cancel.jsx'),
- ],
- },
- {
- name: 'Navigation',
- components: () => [path.resolve(__dirname, '../src/components/core/page-nav/page-nav.jsx')],
- },
- {
- name: 'Forms',
- components: () => [
- path.resolve(__dirname, '../src/components/core/text-mask/text-mask.jsx'),
- path.resolve(__dirname, '../src/components/core/swatch-input/swatch-input.jsx'),
- path.resolve(__dirname, '../src/components/core/radio-button/radio-button.jsx'),
- path.resolve(__dirname, '../src/components/core/checkbox/checkbox.jsx'),
- path.resolve(__dirname, '../src/components/core/counter/counter.jsx'),
- path.resolve(__dirname, '../src/components/core/text-input/text-input.jsx'),
- ],
- },
- {
- name: 'Modal',
- components: () => [
- path.resolve(__dirname, '../src/components/core/modal-container/modal-container.jsx'),
- path.resolve(__dirname, '../src/components/core/modal/modal.jsx'),
- path.resolve(__dirname, '../src/components/core/confirmation-modal/confirmation-modal.jsx'),
- ],
- },
- {
- name: 'Other',
- components: () => [
- path.resolve(__dirname, '../src/components/core/rounded-pill/rounded-pill.jsx'),
- path.resolve(__dirname, '../src/components/core/spinner/spinner.jsx'),
- path.resolve(__dirname, '../src/components/core/countdown/countdown.jsx'),
- path.resolve(__dirname, '../src/components/core/svg-icon/svg-icon.jsx'),
- path.resolve(__dirname, '../src/components/core/icon/icon.jsx'),
- ],
- },
+ name: 'Errors',
+ components: () => [
+ path.resolve(__dirname, '../src/components/utils/errors/errors.jsx'),
+ path.resolve(__dirname, '../src/components/utils/errors/api-errors.jsx'),
+ ],
+ },
+ {
+ name: 'Activity Notifications',
+ components: () => [
+ path.resolve(__dirname, '../src/components/activity-notifications/item.jsx'),
+ path.resolve(__dirname, '../src/components/activity-notifications/panel.jsx'),
+ path.resolve(__dirname, '../src/components/activity-notifications/indicator.jsx'),
],
},
{
- name: 'Utils',
- sections: [
- {
- name: 'Errors',
- components: () => [
- path.resolve(__dirname, '../src/components/utils/errors/errors.jsx'),
- path.resolve(__dirname, '../src/components/utils/errors/api-errors.jsx'),
- ],
- },
- {
- name: 'Activity Notifications',
- components: () => [
- path.resolve(__dirname, '../src/components/activity-notifications/item.jsx'),
- path.resolve(__dirname, '../src/components/activity-notifications/panel.jsx'),
- path.resolve(__dirname, '../src/components/activity-notifications/indicator.jsx'),
- ],
- },
- {
- name: 'Other',
- components: () => [path.resolve(__dirname, '../src/components/utils/change/change.jsx')],
- },
+ name: 'Other',
+ components: () => [
+ path.resolve(__dirname, '../src/components/utils/change/change.jsx'),
+ path.resolve(__dirname, '../src/components/utils/currency/currency.jsx'),
+ path.resolve(__dirname, '../src/components/utils/datetime/datetime.jsx'),
],
},
],
},
],
- require: [
- path.join(__dirname, '../src/css/base.css'),
- path.join(__dirname, '../src/images/favicons/favicon.ico'),
- path.join(__dirname, 'styleguide.less'),
- ],
+ require: [path.join(__dirname, '../src/images/favicons/favicon.ico'), path.join(__dirname, 'styleguide.css')],
};
diff --git a/ashes/styleguide/rsg-components/ComponentsList.jsx b/ashes/styleguide/rsg-components/ComponentsList.jsx
new file mode 100644
index 0000000000..9920797cdc
--- /dev/null
+++ b/ashes/styleguide/rsg-components/ComponentsList.jsx
@@ -0,0 +1,99 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import cx from 'classnames';
+import Link from 'rsg-components/Link';
+import Styled from 'rsg-components/Styled';
+import ListItem from './ComponentsListItem';
+
+const styles = ({ font, small }) => ({
+ list: {
+ margin: 0,
+ paddingLeft: 15,
+ },
+ item: {
+ display: 'block',
+ margin: [[7, 0, 7, 0]],
+ fontFamily: font,
+ fontSize: 15,
+ listStyle: 'none',
+ overflow: 'hidden',
+ textOverflow: 'ellipsis',
+ },
+ isChild: {
+ [small]: {
+ display: 'inline-block',
+ margin: [[0, 7, 0, 0]],
+ },
+ },
+ isActive: {
+ opacity: 1,
+ },
+ activeParent: {
+ opacity: 1,
+ },
+ heading: {
+ marginTop: 7,
+ fontFamily: font,
+ fontWeight: 'bold',
+ },
+});
+
+export class ComponentsListRenderer extends React.Component {
+ static defaultProps = {
+ expanded: false,
+ };
+
+ isActiveSlug(slug) {
+ return slug === window.location.hash.substr(2);
+ }
+
+ render() {
+ let { classes, items } = this.props;
+ items = items.filter(item => item.name);
+
+ if (!items.length) {
+ return null;
+ }
+
+ return (
+
+ {items.map(item => {
+ const { heading, name, slug, content, collapsible, expanded, isLeaf } = item;
+ const activeParent = !isLeaf && content.props.items.some(({ slug }) => this.isActiveSlug(slug));
+
+ const cls = cx(classes.item, {
+ [classes.isChild]: isLeaf,
+ [classes.isActive]: isLeaf && this.isActiveSlug(slug),
+ [classes.activeParent]: activeParent,
+ });
+
+ const TitleElement = isLeaf || collapsible ? Link : 'span';
+
+ return (
+
+ this.props.onItemClick(slug, e)}
+ >
+ {name}
+
+ {!!content && }
+
+ );
+ })}
+
+ );
+ }
+}
+
+ComponentsListRenderer.propTypes = {
+ items: PropTypes.array.isRequired,
+ level: PropTypes.number.isRequired,
+ isLeaves: PropTypes.bool.isRequired,
+ expanded: PropTypes.bool.isRequired,
+ onItemClick: PropTypes.func.isRequired,
+ classes: PropTypes.object.isRequired,
+};
+
+export default Styled(styles)(ComponentsListRenderer);
diff --git a/ashes/styleguide/rsg-components/ComponentsListItem.jsx b/ashes/styleguide/rsg-components/ComponentsListItem.jsx
new file mode 100644
index 0000000000..6041143b14
--- /dev/null
+++ b/ashes/styleguide/rsg-components/ComponentsListItem.jsx
@@ -0,0 +1,57 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+
+class ComponentsListItem extends Component {
+ _content;
+ mounted: bool;
+
+ componentDidMount() {
+ this.mounted = true;
+
+ this.recalculateHeight();
+ }
+
+ componentWillUnmount() {
+ this.mounted = false;
+ }
+
+ componentDidUpdate() {
+ this.recalculateHeight();
+ }
+
+ recalculateHeight() {
+ if (!this.props.collapsible) {
+ this._content.style.opacity = 1;
+ this._content.style.overflow = 'visible';
+
+ return;
+ }
+
+ let maxHeight = 0;
+ let opacity = 0;
+
+ if (this.props.open) {
+ maxHeight = this._content.scrollHeight;
+ opacity = 1;
+ }
+
+ this._content.style.maxHeight = `${maxHeight}px`;
+ this._content.style.opacity = opacity;
+ }
+
+ render() {
+ return (
+ (this._content = c)} style={{ transition: 'all .4s', opacity: 0, overflow: 'hidden', }}>
+ {React.cloneElement(this.props.content)}
+
+ );
+ }
+}
+
+ComponentsListItem.propTypes = {
+ collapsible: PropTypes.bool.isRequired,
+ open: PropTypes.bool.isRequired,
+ content: PropTypes.node.isRequired,
+};
+
+export default ComponentsListItem;
diff --git a/ashes/styleguide/rsg-components/Playground.jsx b/ashes/styleguide/rsg-components/Playground.jsx
new file mode 100644
index 0000000000..614b0a2eb6
--- /dev/null
+++ b/ashes/styleguide/rsg-components/Playground.jsx
@@ -0,0 +1,81 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import debounce from 'lodash/debounce';
+import Preview from 'rsg-components/Preview';
+import Slot from 'rsg-components/Slot';
+import PlaygroundRenderer from './PlaygroundRenderer';
+import { EXAMPLE_TAB_CODE_EDITOR } from 'rsg-components/slots';
+
+export default class Playground extends Component {
+ static propTypes = {
+ code: PropTypes.string.isRequired,
+ evalInContext: PropTypes.func.isRequired,
+ index: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ };
+ static contextTypes = {
+ config: PropTypes.object.isRequired,
+ isolatedExample: PropTypes.bool,
+ };
+
+ constructor(props, context) {
+ super(props, context);
+ const { code } = props;
+ const { previewDelay, showCode } = context.config;
+
+ this.handleChange = this.handleChange.bind(this);
+ this.handleTabChange = this.handleTabChange.bind(this);
+ this.handleChange = debounce(this.handleChange, previewDelay);
+
+ this.state = {
+ code,
+ activeTab: showCode ? EXAMPLE_TAB_CODE_EDITOR : undefined,
+ };
+ }
+
+ componentWillReceiveProps(nextProps) {
+ const { code } = nextProps;
+ this.setState({
+ code,
+ });
+ }
+
+ shouldComponentUpdate(nextProps, nextState) {
+ return nextState.code !== this.state.code || nextState.activeTab !== this.state.activeTab;
+ }
+
+ componentWillUnmount() {
+ // Clear pending changes
+ this.handleChange.cancel();
+ }
+
+ handleChange(code) {
+ this.setState({
+ code,
+ });
+ }
+
+ handleTabChange(name) {
+ this.setState(state => ({
+ activeTab: state.activeTab !== name ? name : undefined,
+ }));
+ }
+
+ render() {
+ const { code, activeTab } = this.state;
+ const { evalInContext, index, name } = this.props;
+ const { isolatedExample } = this.context;
+ return (
+ }
+ tabButtons={ }
+ tabBody={
+
+ }
+ toolbar={ }
+ />
+ );
+ }
+}
diff --git a/ashes/styleguide/rsg-components/PlaygroundRenderer.jsx b/ashes/styleguide/rsg-components/PlaygroundRenderer.jsx
new file mode 100644
index 0000000000..6f34abf790
--- /dev/null
+++ b/ashes/styleguide/rsg-components/PlaygroundRenderer.jsx
@@ -0,0 +1,50 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import cx from 'classnames';
+import Styled from 'rsg-components/Styled';
+
+const styles = ({ space, color, borderRadius }) => ({
+ root: {
+ marginBottom: space[4],
+ },
+ preview: {
+ padding: space[2],
+ border: [[1, color.border, 'solid']],
+ borderRadius,
+ },
+ controls: {
+ display: 'flex',
+ alignItems: 'center',
+ },
+ toolbar: {
+ marginLeft: 'auto',
+ },
+ codeActive: {
+ borderBottom: 'none',
+ },
+});
+
+export function PlaygroundRenderer({ classes, name, preview, codeActive, tabButtons, tabBody, toolbar }) {
+ return (
+
+
{preview}
+
+
{tabButtons}
+
{toolbar}
+
+
{tabBody}
+
+ );
+}
+
+PlaygroundRenderer.propTypes = {
+ classes: PropTypes.object.isRequired,
+ name: PropTypes.string.isRequired,
+ preview: PropTypes.node.isRequired,
+ codeActive: PropTypes.bool.isRequired,
+ tabButtons: PropTypes.node.isRequired,
+ tabBody: PropTypes.node.isRequired,
+ toolbar: PropTypes.node.isRequired,
+};
+
+export default Styled(styles)(PlaygroundRenderer);
diff --git a/ashes/styleguide/rsg-components/TabButton.jsx b/ashes/styleguide/rsg-components/TabButton.jsx
new file mode 100644
index 0000000000..a7af16f7f2
--- /dev/null
+++ b/ashes/styleguide/rsg-components/TabButton.jsx
@@ -0,0 +1,65 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import Styled from 'rsg-components/Styled';
+import cx from 'classnames';
+
+export const styles = ({ space, color, fontFamily, fontSize }) => ({
+ button: {
+ padding: [[space[1], 0]],
+ fontFamily: fontFamily.base,
+ fontSize: fontSize.base,
+ color: color.light,
+ background: 'transparent',
+ textTransform: 'uppercase',
+ transition: 'color 750ms ease-out',
+ border: 'none',
+ cursor: 'pointer',
+ '&:hover, &:focus': {
+ isolate: false,
+ outline: 0,
+ color: color.linkHover,
+ transition: 'color 150ms ease-in',
+ },
+ '&:focus:not($isActive)': {
+ isolate: false,
+ outline: [[1, 'dotted', color.linkHover]],
+ },
+ '& + &': {
+ isolate: false,
+ marginLeft: space[1],
+ },
+ },
+ isActive: {
+ borderBottom: [[2, color.linkHover, 'solid']],
+ },
+});
+
+export function TabButtonRenderer({ classes, name, className, onClick, active, children }) {
+ const classNames = cx(classes.button, className, {
+ [classes.isActive]: active,
+ });
+
+ let label = children;
+
+ if (children === 'Code') {
+ // super dirty hack, as component that provides children here can't be customized with webpack aliases
+ label = active ? 'Hide code' : 'Show code';
+ }
+
+ return (
+
+ {label}
+
+ );
+}
+
+TabButtonRenderer.propTypes = {
+ classes: PropTypes.object.isRequired,
+ name: PropTypes.string,
+ className: PropTypes.string,
+ onClick: PropTypes.func,
+ active: PropTypes.bool,
+ children: PropTypes.node,
+};
+
+export default Styled(styles)(TabButtonRenderer);
diff --git a/ashes/styleguide/rsg-components/TableOfContents.jsx b/ashes/styleguide/rsg-components/TableOfContents.jsx
new file mode 100644
index 0000000000..89685497c6
--- /dev/null
+++ b/ashes/styleguide/rsg-components/TableOfContents.jsx
@@ -0,0 +1,174 @@
+import { pick } from 'lodash';
+import { assoc } from 'sprout-data';
+import { autobind, debounce } from 'core-decorators';
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+import { filterSectionsByName } from 'react-styleguidist/lib/utils/utils';
+import ComponentsList from 'rsg-components/ComponentsList';
+import TableOfContentsRenderer from 'react-styleguidist/lib/rsg-components/TableOfContents/TableOfContentsRenderer';
+
+require('smoothscroll-polyfill').polyfill();
+
+function isElementWithSlugInViewport(slug) {
+ const el = document.getElementById(slug);
+ if (!el) {
+ console.warn(`element "${slug}" not found`);
+
+ return false;
+ }
+ const elementTop = el.offsetTop;
+ const elementBottom = elementTop + el.offsetHeight;
+ const pageTop = window.scrollY;
+
+ return elementTop + 50 <= pageTop + 200 && elementBottom >= pageTop;
+}
+
+function updateHash(hash) {
+ if (history.pushState) {
+ history.pushState(null, null, `#/${hash}`);
+ } else {
+ location.hash = `#/${hash}`;
+ }
+}
+
+export default class TableOfContents extends Component {
+ static propTypes = {
+ sections: PropTypes.array.isRequired,
+ };
+
+ state = {
+ sections: [],
+ searchTerm: '',
+ components: [],
+ expandedItems: {},
+ };
+
+ componentWillMount() {
+ const buildItems = level => (res, section) => {
+ const children = [...(section.sections || []), ...(section.components || [])];
+
+ const item = {
+ ...pick(section, ['sections', 'components', 'name', 'slug']),
+ heading: !!section.name && children.length > 0,
+ items: children.length > 0 && children.reduce(buildItems(level + 1), []),
+ isLeaf: !children.length,
+ collapsible: level > 0 && children.length > 0,
+ level,
+ };
+
+ return [...res, item];
+ };
+
+ const sections = this.props.sections.reduce(buildItems(0), []);
+
+ this.setState({ sections });
+ }
+
+ componentDidMount() {
+ window.addEventListener('scroll', this.handleScroll);
+ }
+
+ getExpandedState(slug, expand = true) {
+ return {
+ ...Object.keys(this.state.expandedItems).reduce((res, item) => assoc(res, item, false), {}),
+ [slug]: expand,
+ };
+ }
+
+ @autobind
+ handleScroll() {
+ const _reduce = parent => (res, item) => {
+ if (res) return res;
+
+ if (item.isLeaf) {
+ if (isElementWithSlugInViewport(item.slug)) {
+ return { parent, element: item };
+ } else {
+ return null;
+ }
+ } else {
+ return item.items.reduce(_reduce(item), res);
+ }
+ };
+
+ const res = this.state.sections.reduce(_reduce(null), null);
+
+ if (!res) {
+ return;
+ }
+
+ if (this.activeItem !== res.element.slug) {
+ updateHash(res.element.slug);
+
+ this.setState({
+ expandedItems: this.getExpandedState(parent.slug, true),
+ });
+ } else {
+ this.setState({
+ expandedItems: this.getExpandedState(parent.slug, false),
+ });
+ }
+ }
+
+ @autobind
+ @debounce(150)
+ handleSmoothScroll() {
+ window.addEventListener('scroll', this.handleScroll);
+ // trigger scroll function manually to get active element
+ this.handleScroll();
+ }
+
+ @autobind
+ handleClick(slug, e) {
+ e.preventDefault();
+
+ window.removeEventListener('scroll', this.handleScroll);
+ window.addEventListener('scroll', this.handleSmoothScroll);
+
+ document.querySelector(e.target.hash).scrollIntoView({
+ behavior: 'smooth',
+ });
+
+ const itemExpanded = this.state.expandedItems[slug];
+
+ this.setState({ expandedItems: this.getExpandedState(slug, !itemExpanded) });
+ }
+
+ get activeItem() {
+ return window.location.hash.substr(2);
+ }
+
+ renderLevel(sections, level = 0) {
+ const items = sections.map(section => {
+ return {
+ ...pick(section, ['heading', 'isLeaf', 'name', 'slug', 'collapsible']),
+ content: section.items.length > 0 && this.renderLevel(section.items, level + 1),
+ expanded: this.state.expandedItems[section.slug],
+ };
+ });
+
+ const hasLeaves = items.some(({ content }) => !content);
+
+ return ;
+ }
+
+ renderSections() {
+ const { searchTerm } = this.state;
+ const { sections } = this.state;
+
+ // If there is only one section, we treat it as a root section
+ // In this case the name of the section won't be rendered and it won't get left padding
+ const filtered = filterSectionsByName(sections, searchTerm);
+
+ return this.renderLevel(filtered, 0);
+ }
+
+ render() {
+ const { searchTerm } = this.state;
+ return (
+ this.setState({ searchTerm })}>
+ {this.renderSections()}
+
+ );
+ }
+}
diff --git a/ashes/styleguide/styleguide.css b/ashes/styleguide/styleguide.css
new file mode 100644
index 0000000000..c3379284dc
--- /dev/null
+++ b/ashes/styleguide/styleguide.css
@@ -0,0 +1,376 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,400,600);
+@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,600);
+@import 'base.css';
+@import 'variables.css';
+
+:global {
+ #app {
+ [class*=para-], [class*=a-], [class*=button-] {
+ font-family: 'Open Sans', sans-serif;
+ }
+
+ main > section > section > h1 {
+ border-bottom: 1px solid #d8d8d8;
+
+ a[class*=isPrimary-] {
+ display: inline-block;
+ padding: 10px 0;
+ font-size: 12px;
+ font-weight: 600;
+ color: #aaa;
+ text-transform: uppercase;
+ letter-spacing: 2px;
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+ }
+
+ h1 [class*=heading-], h2 [class*=heading-], h3 [class*=heading-], [class*=h3] {
+ font-family: Raleway, sans-serif;
+ }
+
+ h1 [class*=heading-], h2 [class*=heading-], [class*=h1-], [class*=h2-] {
+ font-weight: 300;
+ }
+
+ background: #f7f7f7;
+ font: var(--font-body);
+
+ [class*=root-] {
+ background: #f7f7f7;
+
+ & > [class*=toolbar-] {
+ display: none;
+ }
+ }
+
+ .version {
+ font-size: 12px;
+ color: var(--color-subtitle-text) !important;
+ text-align: center;
+ margin-top: -10px;
+ }
+
+ .sidebar-0-4 {
+ width: 260px;
+ border-color: var(--color-border);
+
+ [class*=root-] {
+ [class*=search-] {
+ padding: 0 16px 8px;
+ }
+
+ & > [class^=list-] > [class*=item-] > [class*=heading-] {
+ color: #aaa;
+ }
+
+ *, input::placeholder {
+ font-size: 12px;
+ line-height: 20px;
+ }
+
+ input {
+ padding: 2px 8px;
+ }
+
+ [class*=heading-], [class*=para-], [class*=a-], [class*=button-] {
+ font-weight: 600;
+ }
+
+ & > div > div > ul > li > a {
+ color: #aaa !important;
+ }
+ }
+
+ ul[class^=list-] {
+ padding-left: 0;
+ }
+
+ li[class*=item-] {
+ position: relative;
+ overflow: visible;
+ padding-left: 16px;
+
+ &::before {
+ content: '';
+ position: absolute;
+ left: -100%;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ background: #eee;
+ opacity: 0;
+ transition: all .5s;
+ }
+
+ &[class*=activeParent-]:before {
+ opacity: 1;
+ }
+
+ &[class*=isActive-] {
+ [class*=link-] {
+ color: #fff;
+
+ &::before {
+ opacity: 1;
+ }
+ }
+ }
+
+ &[class*=isChild-] {
+ &:last-child {
+ padding-bottom: 5px;
+ }
+
+ [class*=link-] {
+ font-weight: 400;
+ }
+ }
+ }
+
+ [class*=link-] {
+ position: relative;
+ display: inline-block;
+ color: #666;
+ font-weight: 600;
+ z-index: 1;
+
+ &::before {
+ content: '';
+ position: absolute;
+ width: calc(100% + 20px);
+ height: 100%;
+ margin-left: -10px;
+ border-radius: 100px;
+ background-color: #49cab9;
+ color: #fff;
+ opacity: 0;
+ z-index: -1;
+ transition: all .2s;
+ }
+ }
+ }
+
+ .demo > * {
+ margin-bottom: 10px;
+ }
+
+ .demo-inline > * {
+ margin-left: 10px;
+
+ &:first-child {
+ margin-left: 0;
+ }
+ }
+
+ .hash {
+ font-weight: bold;
+ }
+
+ .logo-0-5 {
+ border: none;
+ }
+
+ .hasSidebar-0-2 {
+ padding-left: 260px;
+ }
+
+ [class*=item-] {
+ margin: 0;
+ }
+
+ .link-0-54, .link-0-54:link, .link-0-54:visited {
+ display: block;
+ padding: 6px 14px;
+ color: #000;
+ transition: color .2s;
+
+ &:hover {
+ color: #dc8027;
+ }
+ }
+
+ .CodeMirror {
+ background: #fafafa;
+ }
+
+ .CodeMirror .CodeMirror-lines pre.CodeMirror-line {
+ font-size: 12px;
+ line-height: 16px;
+ animation: fadeIn .7s;
+ }
+
+ .root-0-80 > ul.list-0-83 {
+ padding-left: 16px;
+ }
+
+ a.link-0-54.heading-0-87 {
+ font-size: 14px;
+ font-weight: 600;
+ }
+
+ [class*=table-] {
+ animation: fadeIn .7s;
+ }
+
+ [class*=table-] [class*=cell-] {
+ padding-bottom: 0;
+ vertical-align: middle;
+
+ [class*=para-] {
+ font-size: 13px;
+ margin-bottom: 0;
+ }
+ }
+
+ [class*=tabButtons-] [class*=button-] {
+ position: relative;
+ outline: none;
+ font-size: 10px;
+ font-weight: 600;
+ letter-spacing: 2.4px;
+ text-align: left;
+ color: #888888;
+ text-transform: uppercase;
+
+ transition: all .2s;
+
+ &::after {
+ font-family: 'fontello';
+ content: '\e805';
+ position: absolute;
+ top: 12px;
+ right: -12px;
+ font-size: 6px;
+ transition: transform .2s ease-out;
+ }
+
+ &:hover {
+ color: var(--color-additional-text);
+ }
+
+ &[class*=isActive-] {
+ border: none;
+
+ &::after {
+ transform: rotateX(180deg);
+ }
+ }
+ }
+
+ [class*=para-] {
+ font-size: 14px;
+
+ a {
+ color: var(--color-link);
+ transition: all .2s;
+
+ &:hover {
+ opacity: .7;
+ }
+ }
+ }
+
+ h3[class*=para-], h4[class*=para-] {
+ font-size: 20px;
+ }
+
+ h5[class*=para-] {
+ font-size: 10px;
+ font-weight: 600;
+ letter-spacing: 2.4px;
+ color: #888888;
+ text-transform: uppercase;
+ }
+
+ [class*=pre-] {
+ padding: 10px 16px;
+ background-color: var(--bg-white);
+ border: solid 1px var(--color-border);
+ border-radius: 4px;
+ font-size: 12px;
+ }
+
+ [class*=preview-] {
+ padding: 16px;
+ background-color: var(--bg-white);
+ border: solid 1px var(--color-border);
+ border-bottom: none;
+ border-radius: 4px 4px 0 0;
+ }
+
+ [class*=controls-] {
+ padding: 9px 8px 8px 16px;
+ background-color: var(--bg-white);
+ border: solid 1px var(--color-border);
+ border-top: none;
+ border-radius: 0 0 4px 4px;
+
+ button {
+ padding: 4px 9px;
+ border-radius: 2px;
+ border: solid 1px var(--bg-green-buttons);
+ font-size: 12px;
+ color: var(--bg-green-buttons);
+ text-transform: none;
+ outline: none;
+ transition: all .2s;
+
+ &:hover, &[class*=isActive-] {
+ background: var(--bg-green-buttons);
+ color: var(--bg-white);
+ }
+ }
+
+ a {
+ color: var(--bg-green-buttons);
+ transition: all .2s;
+
+ &:hover {
+ opacity: .7;
+ }
+ }
+ }
+
+ [class*=codeActive-] [class*=controls-] {
+ border-radius: 0;
+ }
+
+ .ReactCodeMirror {
+ background: #fafafa;
+ border: solid 1px var(--color-border);
+ border-top: none;
+ border-radius: 0 0 4px 4px;
+ font-size: 12px;
+
+ .CodeMirror {
+ border-radius: 0 0 4px 4px;
+ }
+ }
+
+ @media (max-width: 600px) {
+ .sidebar-0-4 {
+ width: 100%;
+ }
+
+ .hasSidebar-0-2 {
+ padding-left: 0;
+ }
+
+ [class*=isChild-] {
+ display: block;
+ }
+ }
+ }
+}
+
+@-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
diff --git a/ashes/styleguide/styleguide.less b/ashes/styleguide/styleguide.less
deleted file mode 100644
index 3633f2e86f..0000000000
--- a/ashes/styleguide/styleguide.less
+++ /dev/null
@@ -1,101 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,700);
-@import '../src/less/base.less';
-
-#app {
-
- .demo > * {
- margin-left: 10px;
- margin-bottom: 10px;
- }
-
- .demo-blocked > * {
- margin-bottom: 10px;
- }
-
- .version {
- font-size: 12px;
- color: #777;
- text-align: center;
- }
-
- .hash {
- font-weight: bold;
- }
-
- .logo-0-5 {
- border: none;
- }
-
- .sidebar-0-4 {
- width: 260px;
- }
-
- .hasSidebar-0-2 {
- padding-left: 260px;
- }
-
- [class^=item-] {
- margin: 0;
- font-family: Raleway, Helvetica, sans-serif;
- font-size: 12px;
- line-height: 18px;
- }
-
- .link-0-54, .link-0-54:link, .link-0-54:visited {
- display: block;
- padding: 6px 14px;
- color: #000;
- transition: color .2s;
-
- &:hover {
- color: #dc8027;
- }
- }
-
- [class*=heading-],
- [class*=para-] {
- font-family: Raleway, Helvetica, sans-serif;
- }
-
- .CodeMirror .CodeMirror-lines pre.CodeMirror-line {
- font-size: 12px;
- line-height: 16px;
- }
-
- ul[class^=list-] {
- padding-left: 12px;
- }
-
- .root-0-80 > ul.list-0-83 {
- padding-left: 16px;
- }
-
- a.link-0-54.heading-0-87 {
- font-size: 14px;
- font-weight: 600;
- }
-
- [class*=cellDesc-] [class*=para-] {
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
- }
-
- [class*=preview-] {
- padding: 30px 16px 16px;
- }
-
- @media (max-width: 600px) {
- .sidebar-0-4 {
- width: 100%;
- }
-
- .hasSidebar-0-2 {
- padding-left: 0;
- }
-
- [class*=isChild-] {
- display: block;
- }
- }
-
-}
diff --git a/ashes/styleguide/webpack.styleguide.js b/ashes/styleguide/webpack.styleguide.js
index 2de0e0aba9..303f99e1bd 100644
--- a/ashes/styleguide/webpack.styleguide.js
+++ b/ashes/styleguide/webpack.styleguide.js
@@ -27,6 +27,11 @@ module.exports = {
resolve: {
alias: {
'rsg-components/Logo': path.join(__dirname, 'rsg-components/Logo'),
+ 'rsg-components/ComponentsList': path.join(__dirname, 'rsg-components/ComponentsList'),
+ 'rsg-components/TabButton': path.join(__dirname, 'rsg-components/TabButton'),
+ 'rsg-components/TableOfContents': path.join(__dirname, 'rsg-components/TableOfContents'),
+ 'rsg-components/Playground': path.join(__dirname, 'rsg-components/Playground'),
+ 'rsg-components/PlaygroundRenderer': path.join(__dirname, 'rsg-components/PlaygroundRenderer'),
},
},
diff --git a/ashes/test/acceptance/currency/currency.jsx b/ashes/test/acceptance/currency/currency.jsx
deleted file mode 100644
index e546643998..0000000000
--- a/ashes/test/acceptance/currency/currency.jsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React from 'react';
-
-describe('Currency', function() {
- const Currency = requireComponent('common/currency.jsx');
-
- it('should render not empty tag by default', function() {
- expect(Currency({}), 'to equal', 0.00 );
- });
-
- it('should render empty tag with incorrect value', function() {
- expect(Currency({ value: 'abc' }), 'to equal', );
- });
-
- it('should render correct value', function() {
- expect(Currency({ value: 123, currency: 'USD' }), 'to equal', $1.23 );
- });
-
- it('should render correct negative value', function() {
- expect(
- Currency({ value: -123, currency: 'USD' }),
- 'to equal',
- -$1.23
- );
- });
-
- it('should render value with delimiter', function() {
- expect(
- Currency({ value: 1234567890, currency: 'USD' }),
- 'to equal',
- $12,345,678.90
- );
- });
-
- it('should support another fractionBase', function() {
- expect(
- Currency({ value: 123, fractionBase: 0, currency: 'USD' }),
- 'to equal',
- $123.00
- );
- });
-
- it('should support another currency', function() {
- expect(Currency({ value: 123, currency: 'EUR' }), 'to equal', €1.23 );
- });
-
- it('should support big integers', function() {
- expect(
- Currency({ value: '15151542519515184515', currency: 'USD', bigNumber: true }),
- 'to equal',
- $151,515,425,195,151,845.15
- );
- });
-});
diff --git a/ashes/yarn.lock b/ashes/yarn.lock
index 16515a965e..f124c45d17 100644
--- a/ashes/yarn.lock
+++ b/ashes/yarn.lock
@@ -3,8 +3,8 @@
"@foxcomm/wings@^1.9.12":
- version "1.9.12"
- resolved "https://npm.foxcommerce.com:4873/@foxcomm%2fwings/-/wings-1.9.12.tgz#d6ffc325a416a898aae3c1635f1618ea0c453911"
+ version "1.9.13"
+ resolved "https://npm.foxcommerce.com:4873/@foxcomm%2fwings/-/wings-1.9.13.tgz#68c559e3a737b6dca6527b36a521a19d6ead357e"
dependencies:
classnames "^2.2.5"
flow-bin "^0.36.0"
@@ -14,9 +14,8 @@
postcss "^5.0.21"
postcss-cli "^2.5.2"
postcss-cssnext "^2.7.0"
- react "^15.2.0"
- react-dom "^15.2.0"
- react-imgix "^5.2.1"
+ prop-types "^15.5.8"
+ react-imgix "^6.0.0"
reduce-reducers "^0.1.2"
redux "^3.6.0"
redux-act "^1.1.0"
@@ -35,8 +34,8 @@ abab@^1.0.3:
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
abbrev@1:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
accepts@^1.2.2, accepts@~1.3.3:
version "1.3.3"
@@ -129,22 +128,18 @@ ansi-html@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
-ansi-regex@^0.2.0, ansi-regex@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
-
ansi-regex@^2.0.0, ansi-regex@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
ansi-styles@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.0.0.tgz#432b26162fea1b63c878896abc8cc5548f25063e"
-ansi-styles@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
-
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -235,11 +230,13 @@ array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+array-flatten@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+
array-iterate@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.0.tgz#4f13148ffffa5f2756b50460e5eac8eed31a14e6"
- dependencies:
- has "^1.0.1"
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-iterate/-/array-iterate-1.1.1.tgz#865bf7f8af39d6b0982c60902914ac76bc0108f6"
array-union@^1.0.1:
version "1.0.2"
@@ -247,7 +244,7 @@ array-union@^1.0.1:
dependencies:
array-uniq "^1.0.1"
-array-uniq@^1.0.1:
+array-uniq@^1.0.1, array-uniq@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
@@ -301,22 +298,6 @@ assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-assets@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/assets/-/assets-2.1.0.tgz#bfae98717974d66636eed26b18eb7120608816f5"
- dependencies:
- async "^1.5.0"
- bluebird "^3.0.6"
- calipers "^2.0.0"
- calipers-gif "^2.0.0"
- calipers-jpeg "^2.0.0"
- calipers-png "^2.0.0"
- calipers-svg "^2.0.0"
- calipers-webp "^2.0.0"
- glob "^6.0.4"
- lodash "^3.10.1"
- mime "^1.3.4"
-
ast-types@0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.0.tgz#c8721c8747ae4d5b29b929e99c5317b4e8745623"
@@ -343,13 +324,13 @@ async@2.1.4:
dependencies:
lodash "^4.14.0"
-async@^1.5.0, async@^1.5.2:
+async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.1.2, async@^2.1.4:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7"
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
dependencies:
lodash "^4.14.0"
@@ -578,10 +559,10 @@ babel-helpers@^6.24.1:
babel-template "^6.24.1"
babel-loader@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7"
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.0.tgz#3fbf2581f085774bd9642dca9990e6d6c1491144"
dependencies:
- find-cache-dir "^0.1.1"
+ find-cache-dir "^1.0.0"
loader-utils "^1.0.2"
mkdirp "^0.5.1"
@@ -1191,8 +1172,8 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
base64-js@^1.0.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
base64url@2.0.0, base64url@^2.0.0:
version "2.0.0"
@@ -1208,6 +1189,10 @@ bcrypt-pbkdf@^1.0.0:
dependencies:
tweetnacl "^0.14.3"
+beeper@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
+
big.js@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
@@ -1228,13 +1213,24 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
-bluebird@3.x.x, bluebird@^3.0.6, bluebird@^3.4.7:
+bluebird@^3.4.7:
version "3.5.0"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
- version "4.11.6"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
+ version "4.11.7"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46"
+
+bonjour@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ dependencies:
+ array-flatten "^2.1.0"
+ deep-equal "^1.0.1"
+ dns-equal "^1.0.0"
+ dns-txt "^2.0.2"
+ multicast-dns "^6.0.1"
+ multicast-dns-service-types "^1.1.0"
boolbase@~1.0.0:
version "1.0.0"
@@ -1346,6 +1342,10 @@ buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+buffer-indexof@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.0.tgz#f54f647c4f4e25228baa656a2e57e43d5f270982"
+
buffer-xor@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
@@ -1378,42 +1378,6 @@ bytes@2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339"
-calipers-gif@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers-gif/-/calipers-gif-2.0.0.tgz#b5eefec3064a77c6dcdbd5bdc51735a01bafdc37"
- dependencies:
- bluebird "3.x.x"
-
-calipers-jpeg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers-jpeg/-/calipers-jpeg-2.0.0.tgz#06d56a53f62717dd809cb956cf64423ce693465b"
- dependencies:
- bluebird "3.x.x"
-
-calipers-png@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers-png/-/calipers-png-2.0.0.tgz#1d0d20e5c1ae5f79b74d5286a2e97f59bb70b658"
- dependencies:
- bluebird "3.x.x"
-
-calipers-svg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers-svg/-/calipers-svg-2.0.0.tgz#666254d5f1ea66d2052ed82d6d79b8bf10acbb71"
- dependencies:
- bluebird "3.x.x"
-
-calipers-webp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers-webp/-/calipers-webp-2.0.0.tgz#e126ece2f84cd71779612bfa2b2653cd95cea77a"
- dependencies:
- bluebird "3.x.x"
-
-calipers@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/calipers/-/calipers-2.0.0.tgz#bdf221c6a62f603b8ddd9340cacd9c79c1a03fce"
- dependencies:
- bluebird "3.x.x"
-
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
@@ -1464,12 +1428,12 @@ caniuse-api@^1.5.2, caniuse-api@^1.5.3:
lodash.uniq "^4.5.0"
caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
- version "1.0.30000692"
- resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000692.tgz#3da9a99353adbcea1e142b99f60ecc6216df47a5"
+ version "1.0.30000696"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000696.tgz#e71f5c61e1f96c7a3af4e791ac5db55e11737604"
caniuse-lite@^1.0.30000684:
- version "1.0.30000692"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000692.tgz#34600fd7152352d85a47f4662a3b51b02d8b646f"
+ version "1.0.30000696"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000696.tgz#30f2695d2a01a0dfd779a26ab83f4d134b3da5cc"
cardinal@^1.0.0:
version "1.0.0"
@@ -1522,16 +1486,6 @@ chalk@*, chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174"
- dependencies:
- ansi-styles "^1.1.0"
- escape-string-regexp "^1.0.0"
- has-ansi "^0.1.0"
- strip-ansi "^0.3.0"
- supports-color "^0.2.0"
-
chance@^0.7.6:
version "0.7.7"
resolved "https://registry.yarnpkg.com/chance/-/chance-0.7.7.tgz#cedae6cb6b8faa6ce5f635a9fa64fea333b5da99"
@@ -1700,7 +1654,7 @@ clone-regexp@^1.0.0:
is-regexp "^1.0.0"
is-supported-regexp-flag "^1.0.0"
-clone-stats@^0.0.1, clone-stats@~0.0.1:
+clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
@@ -1708,7 +1662,7 @@ clone@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
-clone@^1.0.2:
+clone@^1.0.0, clone@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
@@ -1753,12 +1707,12 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
codemirror@^5.18.2, codemirror@^5.26.0:
- version "5.26.0"
- resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.26.0.tgz#bcbee86816ed123870c260461c2b5c40b68746e5"
+ version "5.27.2"
+ resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.27.2.tgz#a292d42f079d5b98c68c3146fab99844f3d8776c"
collapse-white-space@^1.0.0, collapse-white-space@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.2.tgz#9c463fb9c6d190d2dcae21a356a01bcae9eeef6d"
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c"
color-convert@^0.5.3:
version "0.5.3"
@@ -1854,12 +1808,18 @@ commander@2.8.x:
dependencies:
graceful-readlink ">= 1.0.0"
-commander@2.9.x, commander@^2.8.1, commander@^2.9.0, commander@~2.9.0:
+commander@2.9.x, commander@~2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
graceful-readlink ">= 1.0.0"
+commander@^2.8.1, commander@^2.9.0:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.10.0.tgz#e1f5d3245de246d1a5ca04702fa1ad1bd7e405fe"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
commander@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
@@ -2226,6 +2186,10 @@ cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
dependencies:
cssom "0.3.x"
+cuint@latest:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
+
currency-symbol-map@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz#2b3c1872ff1ac2ce595d8273e58e1fff0272aea2"
@@ -2241,8 +2205,8 @@ d3-array@^1.2.0:
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.0.tgz#147d269720e174c4057a7f42be8b0f3f2ba53108"
d3-collection@1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.3.tgz#00bdea94fbc1628d435abbae2f4dc2164e37dd34"
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz#342dfd12837c90974f33f1cc0a785aea570dcdc2"
d3-color@1:
version "1.0.3"
@@ -2322,12 +2286,9 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-dateformat@^1.0.7-1.2.3:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.3.0"
+dateformat@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
debug@*, debug@2.6.8, debug@^2.1.0, debug@^2.1.1, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
version "2.6.8"
@@ -2365,7 +2326,7 @@ deep-eql@^0.1.3:
dependencies:
type-detect "0.1.1"
-deep-equal@^1.0.0, deep-equal@~1.0.1:
+deep-equal@^1.0.0, deep-equal@^1.0.1, deep-equal@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
@@ -2400,6 +2361,17 @@ del@^2.0.2:
pinkie-promise "^2.0.0"
rimraf "^2.2.8"
+del@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+ dependencies:
+ globby "^6.1.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ p-map "^1.1.1"
+ pify "^3.0.0"
+ rimraf "^2.2.8"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -2474,6 +2446,23 @@ dnd-core@^2.4.0:
lodash "^4.2.0"
redux "^3.2.0"
+dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+
+dns-packet@^1.0.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.1.1.tgz#2369d45038af045f3898e6fa56862aed3f40296c"
+ dependencies:
+ ip "^1.1.0"
+ safe-buffer "^5.0.1"
+
+dns-txt@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ dependencies:
+ buffer-indexof "^1.0.0"
+
doctrine@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
@@ -2723,19 +2712,19 @@ entity-wharf@^0.1.1:
resolved "https://registry.yarnpkg.com/entity-wharf/-/entity-wharf-0.1.1.tgz#4f66334ca1f69e5f18f0a4c8f1d689a5506cc9fd"
enzyme@^2.8.2:
- version "2.8.2"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.8.2.tgz#6c8bcb05012abc4aa4bc3213fb23780b9b5b1714"
+ version "2.9.1"
+ resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-2.9.1.tgz#07d5ce691241240fb817bf2c4b18d6e530240df6"
dependencies:
cheerio "^0.22.0"
function.prototype.name "^1.0.0"
is-subset "^0.1.1"
- lodash "^4.17.2"
+ lodash "^4.17.4"
object-is "^1.0.1"
object.assign "^4.0.4"
- object.entries "^1.0.3"
- object.values "^1.0.3"
- prop-types "^15.5.4"
- uuid "^2.0.3"
+ object.entries "^1.0.4"
+ object.values "^1.0.4"
+ prop-types "^15.5.10"
+ uuid "^3.0.1"
errno@^0.1.1, errno@^0.1.3:
version "0.1.4"
@@ -2842,7 +2831,7 @@ escape-string-regexp@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -2956,24 +2945,20 @@ esquery@^1.0.0:
estraverse "^4.0.0"
esrecurse@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
dependencies:
- estraverse "~4.1.0"
+ estraverse "^4.1.0"
object-assign "^4.0.1"
estraverse@^1.9.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0:
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-estraverse@~4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
-
esutils@^2.0.0, esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -3111,6 +3096,13 @@ extsprintf@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+fancy-log@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
+ dependencies:
+ chalk "^1.1.1"
+ time-stamp "^1.0.0"
+
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"
@@ -3214,13 +3206,13 @@ find-babel-config@^1.0.1:
json5 "^0.5.1"
path-exists "^3.0.0"
-find-cache-dir@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+find-cache-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
dependencies:
commondir "^1.0.1"
- mkdirp "^0.5.1"
- pkg-dir "^1.0.0"
+ make-dir "^1.0.0"
+ pkg-dir "^2.0.0"
find-up@^1.0.0:
version "1.1.2"
@@ -3229,6 +3221,12 @@ find-up@^1.0.0:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
+find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
findup@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb"
@@ -3452,17 +3450,7 @@ glob@3.2.11:
inherits "2"
minimatch "0.3"
-glob@^5.0.15:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^6.0.1, glob@^6.0.4:
+glob@^6.0.1:
version "6.0.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
dependencies:
@@ -3523,6 +3511,12 @@ globjoin@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
+glogg@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
+ dependencies:
+ sparkles "^1.0.0"
+
good-listener@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
@@ -3565,17 +3559,33 @@ growly@^1.2.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
gulp-util@*:
- version "2.2.20"
- resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-2.2.20.tgz#d7146e5728910bd8f047a6b0b1e549bc22dbd64c"
- dependencies:
- chalk "^0.5.0"
- dateformat "^1.0.7-1.2.3"
- lodash._reinterpolate "^2.4.1"
- lodash.template "^2.4.1"
- minimist "^0.2.0"
- multipipe "^0.1.0"
- through2 "^0.5.0"
- vinyl "^0.2.1"
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
+ dependencies:
+ array-differ "^1.0.0"
+ array-uniq "^1.0.2"
+ beeper "^1.0.0"
+ chalk "^1.0.0"
+ dateformat "^2.0.0"
+ fancy-log "^1.1.0"
+ gulplog "^1.0.0"
+ has-gulplog "^0.1.0"
+ lodash._reescape "^3.0.0"
+ lodash._reevaluate "^3.0.0"
+ lodash._reinterpolate "^3.0.0"
+ lodash.template "^3.0.0"
+ minimist "^1.1.0"
+ multipipe "^0.1.2"
+ object-assign "^3.0.0"
+ replace-ext "0.0.1"
+ through2 "^2.0.0"
+ vinyl "^0.5.0"
+
+gulplog@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
+ dependencies:
+ glogg "^1.0.0"
gzip-size@3.0.0, gzip-size@^3.0.0:
version "3.0.0"
@@ -3598,12 +3608,6 @@ har-validator@~4.2.1:
ajv "^4.9.1"
har-schema "^1.0.5"
-has-ansi@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e"
- dependencies:
- ansi-regex "^0.2.0"
-
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@@ -3614,6 +3618,16 @@ 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-gulplog@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
+ dependencies:
+ sparkles "^1.0.0"
+
has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@@ -3631,10 +3645,11 @@ hash-base@^2.0.0:
inherits "^2.0.1"
hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573"
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.2.tgz#bf5c887825cfe40b9efde7bf11bd2db26e6bf01b"
dependencies:
- inherits "^2.0.1"
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.0"
hawk@~3.1.3:
version "3.1.3"
@@ -3686,8 +3701,8 @@ home-or-tmp@^2.0.0:
os-tmpdir "^1.0.1"
hosted-git-info@^2.1.4:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
hpack.js@^2.1.6:
version "2.1.6"
@@ -3733,9 +3748,13 @@ html-tags@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98"
+html-tags@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
+
html-webpack-plugin@^2.28.0:
- version "2.28.0"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009"
+ version "2.29.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23"
dependencies:
bluebird "^3.4.7"
html-minifier "^3.2.3"
@@ -3939,6 +3958,12 @@ inquirer@^0.12.0:
strip-ansi "^3.0.0"
through "^2.3.6"
+internal-ip@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
+ dependencies:
+ meow "^3.3.0"
+
interpret@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
@@ -3953,6 +3978,10 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ip@^1.1.0:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
ipaddr.js@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec"
@@ -4349,8 +4378,8 @@ json-loader@^0.5.4:
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
json-schema-traverse@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.0.tgz#0016c0b1ca1efe46d44d37541bcdfc19dcfae0db"
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
json-schema@0.2.3:
version "0.2.3"
@@ -4538,6 +4567,10 @@ koa-compose@^3.0.0:
dependencies:
any-promise "^1.1.0"
+koa-compose@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c"
+
koa-convert@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
@@ -4573,8 +4606,8 @@ koa-proxy@^0.8.0:
iconv-lite "^0.2.11"
koa@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/koa/-/koa-2.2.0.tgz#b055933187849d540ad8b9f731baaa4be97c652d"
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/koa/-/koa-2.3.0.tgz#9e1e8e4da401839c57b8527eadc57f76127555a7"
dependencies:
accepts "^1.2.2"
content-disposition "~0.5.0"
@@ -4590,7 +4623,7 @@ koa@^2.2.0:
http-assert "^1.1.0"
http-errors "^1.2.8"
is-generator-function "^1.0.3"
- koa-compose "^3.0.0"
+ koa-compose "^4.0.0"
koa-convert "^1.2.0"
koa-is-json "^1.0.0"
mime-types "^2.0.7"
@@ -4699,6 +4732,13 @@ localStorage@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/localStorage/-/localStorage-1.0.3.tgz#e6b89a57bb760a156a38cc87e0f2550f6ed413d8"
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
lodash-es@^4.2.0, lodash-es@^4.2.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
@@ -4743,6 +4783,14 @@ lodash._basefor@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2"
+lodash._basetostring@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
+
+lodash._basevalues@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
+
lodash._bindcallback@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
@@ -4755,56 +4803,29 @@ lodash._createassigner@^3.0.0:
lodash._isiterateecall "^3.0.0"
lodash.restparam "^3.0.0"
-lodash._escapehtmlchar@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz#df67c3bb6b7e8e1e831ab48bfa0795b92afe899d"
- dependencies:
- lodash._htmlescapes "~2.4.1"
-
-lodash._escapestringchar@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz#ecfe22618a2ade50bfeea43937e51df66f0edb72"
-
lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-lodash._htmlescapes@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz#32d14bf0844b6de6f8b62a051b4f67c228b624cb"
-
lodash._isiterateecall@^3.0.0:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-lodash._isnative@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c"
-
-lodash._objecttypes@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11"
+lodash._reescape@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
-lodash._reinterpolate@^2.4.1, lodash._reinterpolate@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz#4f1227aa5a8711fc632f5b07a1f4607aab8b3222"
+lodash._reevaluate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
-lodash._reinterpolate@~3.0.0:
+lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
-lodash._reunescapedhtml@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz#747c4fc40103eb3bb8a0976e571f7a2659e93ba7"
- dependencies:
- lodash._htmlescapes "~2.4.1"
- lodash.keys "~2.4.1"
-
-lodash._shimkeys@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203"
- dependencies:
- lodash._objecttypes "~2.4.1"
+lodash._root@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
lodash.assign@^3.0.0:
version "3.2.0"
@@ -4852,20 +4873,11 @@ lodash.defaults@^4.0.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
-lodash.defaults@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54"
- dependencies:
- lodash._objecttypes "~2.4.1"
- lodash.keys "~2.4.1"
-
-lodash.escape@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.4.1.tgz#2ce12c5e084db0a57dda5e5d1eeeb9f5d175a3b4"
+lodash.escape@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
dependencies:
- lodash._escapehtmlchar "~2.4.1"
- lodash._reunescapedhtml "~2.4.1"
- lodash.keys "~2.4.1"
+ lodash._root "^3.0.0"
lodash.filter@^4.4.0:
version "4.6.0"
@@ -4904,12 +4916,6 @@ lodash.isequal@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
-lodash.isobject@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5"
- dependencies:
- lodash._objecttypes "~2.4.1"
-
lodash.keys@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
@@ -4918,14 +4924,6 @@ lodash.keys@^3.0.0:
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
-lodash.keys@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727"
- dependencies:
- lodash._isnative "~2.4.1"
- lodash._shimkeys "~2.4.1"
- lodash.isobject "~2.4.1"
-
lodash.map@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
@@ -4962,17 +4960,19 @@ lodash.some@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
-lodash.template@^2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.4.1.tgz#9e611007edf629129a974ab3c48b817b3e1cf20d"
+lodash.template@^3.0.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
dependencies:
- lodash._escapestringchar "~2.4.1"
- lodash._reinterpolate "~2.4.1"
- lodash.defaults "~2.4.1"
- lodash.escape "~2.4.1"
- lodash.keys "~2.4.1"
- lodash.templatesettings "~2.4.1"
- lodash.values "~2.4.1"
+ lodash._basecopy "^3.0.0"
+ lodash._basetostring "^3.0.0"
+ lodash._basevalues "^3.0.0"
+ lodash._isiterateecall "^3.0.0"
+ lodash._reinterpolate "^3.0.0"
+ lodash.escape "^3.0.0"
+ lodash.keys "^3.0.0"
+ lodash.restparam "^3.0.0"
+ lodash.templatesettings "^3.0.0"
lodash.template@^4.2.4:
version "4.4.0"
@@ -4981,29 +4981,23 @@ lodash.template@^4.2.4:
lodash._reinterpolate "~3.0.0"
lodash.templatesettings "^4.0.0"
+lodash.templatesettings@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
+ dependencies:
+ lodash._reinterpolate "^3.0.0"
+ lodash.escape "^3.0.0"
+
lodash.templatesettings@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
dependencies:
lodash._reinterpolate "~3.0.0"
-lodash.templatesettings@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz#ea76c75d11eb86d4dbe89a83893bb861929ac699"
- dependencies:
- lodash._reinterpolate "~2.4.1"
- lodash.escape "~2.4.1"
-
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash.values@~2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4"
- dependencies:
- lodash.keys "~2.4.1"
-
lodash@4.17.2:
version "4.17.2"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42"
@@ -5012,10 +5006,6 @@ lodash@4.17.2:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-lodash@^3.10.1:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-
log-symbols@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@@ -5089,6 +5079,12 @@ magicpen@5.12.0:
color-diff "0.1.7"
supports-color "1.2.0"
+make-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
+ dependencies:
+ pify "^2.3.0"
+
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"
@@ -5133,8 +5129,8 @@ math-expression-evaluator@^1.2.14:
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
mathml-tag-names@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.0.0.tgz#eee615112a2b127e70f558d69c9ebe14076503d7"
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz#8d41268168bf86d1102b98109e28e531e7a34578"
mdast-util-compact@^1.0.0:
version "1.0.1"
@@ -5208,6 +5204,18 @@ micromatch@^2.1.5, micromatch@^2.3.11:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
+midas@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/midas/-/midas-1.2.2.tgz#2e863e52023f619435f5395dac362beb16beece3"
+ dependencies:
+ html-tags "^1.1.1"
+ minimist "^1.2.0"
+ postcss "^5.0.4"
+ postcss-selector-parser "^2.0.0"
+ postcss-value-parser "^3.3.0"
+ read-file-stdin "^0.2.0"
+ write-file-stdout "0.0.2"
+
miller-rabin@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d"
@@ -5264,10 +5272,6 @@ minimist@0.0.8, minimist@~0.0.1:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-minimist@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce"
-
minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
@@ -5309,6 +5313,17 @@ ms@2.0.0, ms@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+multicast-dns-service-types@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+
+multicast-dns@^6.0.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde"
+ dependencies:
+ dns-packet "^1.0.1"
+ thunky "^0.1.0"
+
multimatch@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
@@ -5318,7 +5333,7 @@ multimatch@^2.0.0:
arrify "^1.0.0"
minimatch "^3.0.0"
-multipipe@^0.1.0:
+multipipe@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
dependencies:
@@ -5398,6 +5413,10 @@ node-fetch@^1.0.1:
encoding "^0.1.11"
is-stream "^1.0.1"
+node-forge@0.6.33:
+ version "0.6.33"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc"
+
node-libs-browser@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646"
@@ -5481,8 +5500,8 @@ nopt@~1.0.10:
abbrev "1"
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb"
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
dependencies:
hosted-git-info "^2.1.4"
is-builtin-module "^1.0.0"
@@ -5513,8 +5532,8 @@ normalize-url@^1.4.0:
sort-keys "^1.0.0"
npmlog@^4.0.2:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5"
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
dependencies:
are-we-there-yet "~1.1.2"
console-control-strings "~1.1.0"
@@ -5567,7 +5586,7 @@ object.assign@^4.0.4:
function-bind "^1.1.0"
object-keys "^1.0.10"
-object.entries@^1.0.3:
+object.entries@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
dependencies:
@@ -5583,7 +5602,7 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
-object.values@^1.0.3:
+object.values@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
dependencies:
@@ -5638,7 +5657,7 @@ open@0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
-opener@^1.4.3:
+opener@^1.4.1, opener@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
@@ -5714,6 +5733,20 @@ output-file-sync@^1.1.0:
mkdirp "^0.5.1"
object-assign "^4.1.0"
+p-limit@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-map@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
+
package-json@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0"
@@ -5845,6 +5878,10 @@ pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
pinkie-promise@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
@@ -5870,11 +5907,11 @@ pixrem@^3.0.0:
postcss "^5.0.0"
reduce-css-calc "^1.2.7"
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
dependencies:
- find-up "^1.0.0"
+ find-up "^2.1.0"
pleeease-filters@^3.0.0:
version "3.0.1"
@@ -5908,14 +5945,6 @@ postcss-apply@^0.3.0:
balanced-match "^0.4.1"
postcss "^5.0.21"
-postcss-assets@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/postcss-assets/-/postcss-assets-4.1.0.tgz#341f30d6ac0fbb314d82a28cc1ea753a986ffed7"
- dependencies:
- assets "^2.0.0"
- postcss "^5.0.12"
- postcss-functions "^2.1.0"
-
postcss-attribute-case-insensitive@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz#ceb73777e106167eb233f1938c9bd9f2e697308d"
@@ -6090,6 +6119,15 @@ postcss-custom-selectors@^3.0.0:
postcss "^5.0.0"
postcss-selector-matches "^2.0.0"
+postcss-debug@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/postcss-debug/-/postcss-debug-0.4.2.tgz#8b161ba2f7f2c55f3549e4b2fa0e95197baa2e3d"
+ dependencies:
+ midas "^1.2.1"
+ opener "^1.4.1"
+ postcss "^5.0.19"
+ yargs "^4.7.1"
+
postcss-discard-comments@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
@@ -6142,15 +6180,6 @@ postcss-font-variant@^2.0.0:
dependencies:
postcss "^5.0.4"
-postcss-functions@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/postcss-functions/-/postcss-functions-2.1.1.tgz#f9b64d3b5690f6795fe42a180496805375b7a840"
- dependencies:
- glob "^5.0.15"
- object-assign "^4.0.1"
- postcss "^5.0.10"
- postcss-value-parser "^3.1.3"
-
postcss-image-set-polyfill@^0.3.3:
version "0.3.5"
resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181"
@@ -6492,7 +6521,17 @@ postcss-unique-selectors@^2.0.2:
postcss "^5.0.4"
uniqs "^2.0.0"
-postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.1.3, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
+postcss-url@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-7.0.0.tgz#11c6a1103e527ae914c3bab48415273d027d9508"
+ dependencies:
+ mime "^1.2.11"
+ minimatch "^3.0.0"
+ mkdirp "^0.5.0"
+ postcss "^6.0.1"
+ xxhashjs "^0.2.1"
+
+postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
@@ -6514,12 +6553,12 @@ postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.
supports-color "^3.2.3"
postcss@^6.0.1:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.2.tgz#5c4fea589f0ac3b00caa75b1cbc3a284195b7e5d"
+ 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 "^3.2.3"
+ supports-color "^4.0.0"
prelude-ls@~1.1.2:
version "1.1.2"
@@ -6534,8 +6573,8 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
prettier@^1.4.4:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.4.4.tgz#a8d1447b14c9bf67e6d420dcadd10fb9a4fad65a"
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.5.0.tgz#f3476164f9a532a218a1337b1032638275d82614"
pretty-error@^2.0.2:
version "2.1.1"
@@ -6580,8 +6619,8 @@ promise-each@^2.2.0:
any-promise "^0.1.0"
promise@^7.0.1, promise@^7.1.1:
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.0.tgz#e7feec5aa87a2cbb81acf47d9a3adbd9d4642d7b"
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
dependencies:
asap "~2.0.3"
@@ -6880,7 +6919,7 @@ react-docgen@^2.15.0:
node-dir "^0.1.10"
recast "^0.11.5"
-react-dom@^15.2.0, react-dom@^15.5.4:
+react-dom@^15.5.4:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470"
dependencies:
@@ -6918,17 +6957,12 @@ react-icons@^2.2.5:
dependencies:
react-icon-base "2.0.7"
-react-imgix@^5.2.1:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/react-imgix/-/react-imgix-5.4.0.tgz#f9c89273c8d55c61d68d4536f9b83bbaf13b99e5"
+react-imgix@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/react-imgix/-/react-imgix-6.0.0.tgz#01fcfb2df036c3fa36a55adfeb987fc0f1ce2160"
dependencies:
js-base64 "~2.1.9"
jsuri "^1.3.1"
- react-is-deprecated "^0.1.2"
-
-react-is-deprecated@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/react-is-deprecated/-/react-is-deprecated-0.1.2.tgz#301148f86ea428fe8e673eca7a372160b7579dbd"
react-motion@^0.5.0:
version "0.5.0"
@@ -6971,8 +7005,8 @@ react-shallow-testutils@^2.0.0:
resolved "https://registry.yarnpkg.com/react-shallow-testutils/-/react-shallow-testutils-2.0.0.tgz#9087b40b368b124674c7bfcf9fdd6ad983914a97"
react-styleguidist@^5.3.2:
- version "5.4.5"
- resolved "https://registry.yarnpkg.com/react-styleguidist/-/react-styleguidist-5.4.5.tgz#1f3add477d884bc09b274c1b4906d767435803c0"
+ version "5.4.8"
+ resolved "https://registry.yarnpkg.com/react-styleguidist/-/react-styleguidist-5.4.8.tgz#98ee7e020122d9139c1808bac016b4438af3cee2"
dependencies:
ast-types "^0.9.11"
buble "^0.15.2"
@@ -7046,7 +7080,7 @@ react-transition-group@^1.1.2:
prop-types "^15.5.6"
warning "^3.0.0"
-react@^15.2.0, react@^15.5.4:
+react@^15.5.4:
version "15.6.1"
resolved "https://registry.yarnpkg.com/react/-/react-15.6.1.tgz#baa8434ec6780bde997cdc380b79cd33b96393df"
dependencies:
@@ -7090,7 +7124,7 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
-readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.26:
+readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.26:
version "1.0.34"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
dependencies:
@@ -7099,9 +7133,9 @@ readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.0.tgz#640f5dcda88c91a8dc60787145629170813a1ed2"
+readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.2.tgz#5a04df05e4f57fe3f0dc68fdd11dc5c97c7e6f4d"
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -7217,8 +7251,8 @@ redux-thunk@^2.1.0:
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
redux@^3.2.0, redux@^3.6.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.0.tgz#07a623cafd92eee8abe309d13d16538f6707926f"
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.1.tgz#bfc535c757d3849562ead0af18ac52122cd7268e"
dependencies:
lodash "^4.2.1"
lodash-es "^4.2.1"
@@ -7366,6 +7400,10 @@ repeating@^2.0.0:
dependencies:
is-finite "^1.0.0"
+replace-ext@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
+
replace-ext@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
@@ -7511,8 +7549,8 @@ rx-lite@^3.1.2:
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223"
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
safe-buffer@~5.0.1:
version "5.0.1"
@@ -7523,8 +7561,8 @@ samsam@1.1.2, samsam@~1.1:
resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.1.2.tgz#bec11fdc83a9fda063401210e40176c3024d1567"
sax@^1.2.1, sax@~1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828"
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
schema-utils@^0.3.0:
version "0.3.0"
@@ -7544,6 +7582,12 @@ select@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+selfsigned@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.9.1.tgz#cdda4492d70d486570f87c65546023558e1dfa5a"
+ dependencies:
+ node-forge "0.6.33"
+
semver-diff@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
@@ -7668,6 +7712,10 @@ slide@^1.1.5:
version "1.1.6"
resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+smoothscroll-polyfill@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.5.tgz#466e6039b51cb525d70e1a5077ef81e064678eae"
+
sntp@1.x.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
@@ -7749,6 +7797,10 @@ source-map@~0.2.0:
dependencies:
amdefine ">=0.0.4"
+sparkles@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
+
spdx-correct@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
@@ -7896,11 +7948,11 @@ string-width@^1.0.1, string-width@^1.0.2:
strip-ansi "^3.0.0"
string-width@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0"
dependencies:
is-fullwidth-code-point "^2.0.0"
- strip-ansi "^3.0.0"
+ strip-ansi "^4.0.0"
string.prototype.codepointat@^0.2.0:
version "0.2.0"
@@ -7911,10 +7963,10 @@ string_decoder@^0.10.25, string_decoder@~0.10.x:
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
string_decoder@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.2.tgz#b29e1f4e1125fa97a10382b8a533737b7491e179"
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
dependencies:
- safe-buffer "~5.0.1"
+ safe-buffer "~5.1.0"
stringify-entities@^1.0.1:
version "1.3.1"
@@ -7942,11 +7994,11 @@ strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1:
dependencies:
ansi-regex "^2.0.0"
-strip-ansi@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
dependencies:
- ansi-regex "^0.2.1"
+ ansi-regex "^3.0.0"
strip-bom@^2.0.0:
version "2.0.0"
@@ -8009,8 +8061,8 @@ stylelint-config-standard@^16.0.0:
resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-16.0.0.tgz#bb7387bff1d7dd7186a52b3ebf885b2405d691bf"
stylelint@^7.11.1:
- version "7.11.1"
- resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.11.1.tgz#c816c658baf7d9e5d167d82273fead37c97ae49d"
+ version "7.12.0"
+ resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.12.0.tgz#bf302c265d7c2d6fe79b154a9fd873a80f8b4aa4"
dependencies:
autoprefixer "^6.0.0"
balanced-match "^0.4.0"
@@ -8024,7 +8076,7 @@ stylelint@^7.11.1:
get-stdin "^5.0.0"
globby "^6.0.0"
globjoin "^0.1.4"
- html-tags "^1.1.1"
+ html-tags "^2.0.0"
ignore "^3.2.0"
imurmurhash "^0.1.4"
known-css-properties "^0.2.0"
@@ -8077,10 +8129,6 @@ supports-color@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e"
-supports-color@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a"
-
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -8091,6 +8139,12 @@ supports-color@^3.1.0, supports-color@^3.1.1, 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"
+
svg-tags@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
@@ -8176,13 +8230,6 @@ text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-through2@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7"
- dependencies:
- readable-stream "~1.0.17"
- xtend "~3.0.0"
-
through2@^0.6.1, through2@^0.6.3, through2@~0.6.1:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
@@ -8190,6 +8237,13 @@ through2@^0.6.1, through2@^0.6.3, through2@~0.6.1:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
+through2@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
+ dependencies:
+ readable-stream "^2.1.5"
+ xtend "~4.0.1"
+
through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -8200,6 +8254,14 @@ thunkify-wrap@^1.0.4:
dependencies:
enable "1"
+thunky@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e"
+
+time-stamp@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
+
timed-out@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a"
@@ -8342,12 +8404,12 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
ua-parser-js@^0.7.9:
- version "0.7.12"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb"
+ version "0.7.13"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.13.tgz#cd9dd2f86493b3f44dbeeef3780fda74c5ee14be"
uglify-js@3.0.x:
- version "3.0.18"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.18.tgz#d67a3e5a0a08356b787fb1c9bddf3a807630902e"
+ version "3.0.20"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.20.tgz#cb35b2bcfe478051b6f3282be8db4e4add49a1e5"
dependencies:
commander "~2.9.0"
source-map "~0.5.1"
@@ -8544,11 +8606,11 @@ utils-merge@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
-uuid@^2.0.1, uuid@^2.0.2, uuid@^2.0.3:
+uuid@^2.0.1, uuid@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-uuid@^3.0.0:
+uuid@^3.0.0, uuid@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
@@ -8644,12 +8706,6 @@ vinyl-source-stream@^1.1.0:
through2 "^0.6.1"
vinyl "^0.4.3"
-vinyl@^0.2.1:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.2.3.tgz#bca938209582ec5a49ad538a00fa1f125e513252"
- dependencies:
- clone-stats "~0.0.1"
-
vinyl@^0.4.3:
version "0.4.6"
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
@@ -8657,6 +8713,14 @@ vinyl@^0.4.3:
clone "^0.2.0"
clone-stats "^0.0.1"
+vinyl@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
+ dependencies:
+ clone "^1.0.0"
+ clone-stats "^0.0.1"
+ replace-ext "0.0.1"
+
vlq@^0.2.1:
version "0.2.2"
resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1"
@@ -8716,8 +8780,8 @@ webpack-bundle-analyzer@^2.8.1:
ws "^2.3.1"
webpack-dev-middleware@^1.10.2:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz#2e252ce1dfb020dbda1ccb37df26f30ab014dbd1"
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz#09691d0973a30ad1f82ac73a12e2087f0a4754f9"
dependencies:
memory-fs "~0.4.1"
mime "^1.3.4"
@@ -8743,18 +8807,22 @@ webpack-dev-server@^1.16.3:
webpack-dev-middleware "^1.10.2"
webpack-dev-server@^2.4.5:
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz#31384ce81136be1080b4b4cde0eb9b90e54ee6cf"
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.5.0.tgz#4d36a728b03b8b2afa48ed302428847cea2840ad"
dependencies:
ansi-html "0.0.7"
+ bonjour "^3.5.0"
chokidar "^1.6.0"
compression "^1.5.2"
connect-history-api-fallback "^1.3.0"
+ del "^3.0.0"
express "^4.13.3"
html-entities "^1.2.0"
http-proxy-middleware "~0.17.4"
+ internal-ip "^1.2.0"
opn "4.0.2"
portfinder "^1.0.9"
+ selfsigned "^1.9.1"
serve-index "^1.7.2"
sockjs "0.3.18"
sockjs-client "1.1.2"
@@ -8967,13 +9035,15 @@ xml-name-validator@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635"
-"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1:
+"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-xtend@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a"
+xxhashjs@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.1.tgz#9bbe9be896142976dfa34c061b2d068c43d30de0"
+ dependencies:
+ cuint latest
y18n@^3.2.1:
version "3.2.1"