diff --git a/addons/info/README.md b/addons/info/README.md
index e6504e7da09b..c3fdf1c69d2a 100644
--- a/addons/info/README.md
+++ b/addons/info/README.md
@@ -80,7 +80,7 @@ setDefaults({
inline: true, // Displays info inline vs click button to view
source: true, // Displays the source of story Component
propTables: [/* Components used in story */], // displays Prop Tables with this components
- propTablesExclude: [], // Exclude Components from being shoun in Prop Tables section
+ propTablesExclude: [], // Exclude Components from being shown in Prop Tables section
styles: {}, // Overrides styles of addon
marksyConf: {}, // Overrides components used to display markdown. Warning! This option's name will be likely deprecated in favor to "components" with the same API in 3.3 release. Follow this PR #1501 for details
maxPropsIntoLine: 1, // Max props to display per line in source code
diff --git a/addons/knobs/README.md b/addons/knobs/README.md
index 4c3788d9d0ae..8869ab26ef48 100644
--- a/addons/knobs/README.md
+++ b/addons/knobs/README.md
@@ -231,6 +231,18 @@ const value = date(label, defaultValue);
> Note: the default value must not change - e.g., do not do `date('Label', new Date())` or `date('Label')`
+### button
+
+Allows you to include a button and associated handler.
+
+```js
+import { button } from '@storybook/addon-knobs';
+
+const label = 'Do Something';
+const handler = () => doSomething('foobar');
+button(label, handler);
+```
+
### withKnobs vs withKnobsOptions
If you feel like this addon is not performing well enough there is an option to use `withKnobsOptions` instead of `withKnobs`.
diff --git a/addons/knobs/package.json b/addons/knobs/package.json
index 4b7f77ee9f4c..03f065699eb0 100644
--- a/addons/knobs/package.json
+++ b/addons/knobs/package.json
@@ -28,8 +28,8 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
- "@types/node": "^7.0.12",
- "@types/react": "^16.0.11",
+ "@types/node": "^7.0.46",
+ "@types/react": "^16.0.15",
"git-url-parse": "^6.2.2",
"raw-loader": "^0.5.1",
"react": "^16.0.0",
diff --git a/addons/knobs/src/components/Panel.js b/addons/knobs/src/components/Panel.js
index 429958e71b29..062f660c23a1 100644
--- a/addons/knobs/src/components/Panel.js
+++ b/addons/knobs/src/components/Panel.js
@@ -46,6 +46,7 @@ export default class Panel extends React.Component {
constructor(props) {
super(props);
this.handleChange = this.handleChange.bind(this);
+ this.handleClick = this.handleClick.bind(this);
this.setKnobs = this.setKnobs.bind(this);
this.reset = this.reset.bind(this);
this.setOptions = this.setOptions.bind(this);
@@ -133,6 +134,10 @@ export default class Panel extends React.Component {
this.setState({ knobs: newKnobs }, this.emitChange(changedKnob));
}
+ handleClick(knob) {
+ this.props.channel.emit('addon:knobs:knobClick', knob);
+ }
+
render() {
const { knobs } = this.state;
const knobsArray = Object.keys(knobs)
@@ -146,7 +151,11 @@ export default class Panel extends React.Component {
return (
RESET
diff --git a/addons/knobs/src/components/PropField.js b/addons/knobs/src/components/PropField.js
index a9bf1ac80b60..47fba74d7729 100644
--- a/addons/knobs/src/components/PropField.js
+++ b/addons/knobs/src/components/PropField.js
@@ -46,16 +46,16 @@ export default class PropField extends React.Component {
}
render() {
- const { onChange, knob } = this.props;
+ const { onChange, onClick, knob } = this.props;
const InputType = TypeMap[knob.type] || InvalidType;
return (
- {`${knob.name}`}
+ {!knob.hideLabel && `${knob.name}`}
-
+
);
}
@@ -67,4 +67,5 @@ PropField.propTypes = {
value: PropTypes.any,
}).isRequired,
onChange: PropTypes.func.isRequired,
+ onClick: PropTypes.func.isRequired,
};
diff --git a/addons/knobs/src/components/PropForm.js b/addons/knobs/src/components/PropForm.js
index f645b02354be..39f24fc6eca0 100644
--- a/addons/knobs/src/components/PropForm.js
+++ b/addons/knobs/src/components/PropForm.js
@@ -46,6 +46,7 @@ export default class propForm extends React.Component {
value={knob.value}
knob={knob}
onChange={changeHandler}
+ onClick={this.props.onFieldClick}
/>
);
})}
@@ -68,4 +69,5 @@ propForm.propTypes = {
})
),
onFieldChange: PropTypes.func.isRequired,
+ onFieldClick: PropTypes.func.isRequired,
};
diff --git a/addons/knobs/src/components/types/Button.js b/addons/knobs/src/components/types/Button.js
new file mode 100644
index 000000000000..8335cfbab77c
--- /dev/null
+++ b/addons/knobs/src/components/types/Button.js
@@ -0,0 +1,41 @@
+import PropTypes from 'prop-types';
+import React from 'react';
+
+const styles = {
+ height: '26px',
+};
+
+class ButtonType extends React.Component {
+ render() {
+ const { knob, onClick } = this.props;
+ return (
+ {
+ this.input = c;
+ }}
+ style={styles}
+ onClick={() => onClick(knob)}
+ >
+ {knob.name}
+
+ );
+ }
+}
+
+ButtonType.defaultProps = {
+ knob: {},
+};
+
+ButtonType.propTypes = {
+ knob: PropTypes.shape({
+ name: PropTypes.string,
+ }),
+ onClick: PropTypes.func.isRequired,
+};
+
+ButtonType.serialize = value => value;
+ButtonType.deserialize = value => value;
+
+export default ButtonType;
diff --git a/addons/knobs/src/components/types/index.js b/addons/knobs/src/components/types/index.js
index a74e2459eaa6..ebd51deb858e 100644
--- a/addons/knobs/src/components/types/index.js
+++ b/addons/knobs/src/components/types/index.js
@@ -6,6 +6,7 @@ import ObjectType from './Object';
import SelectType from './Select';
import ArrayType from './Array';
import DateType from './Date';
+import ButtonType from './Button';
export default {
text: TextType,
@@ -16,4 +17,5 @@ export default {
select: SelectType,
array: ArrayType,
date: DateType,
+ button: ButtonType,
};
diff --git a/addons/knobs/src/index.js b/addons/knobs/src/index.js
index 2f4c16dcddca..84df833e5c5a 100644
--- a/addons/knobs/src/index.js
+++ b/addons/knobs/src/index.js
@@ -58,6 +58,10 @@ export function date(name, value = new Date()) {
return manager.knob(name, { type: 'date', value: proxyValue });
}
+export function button(name, callback) {
+ return manager.knob(name, { type: 'button', callback, hideLabel: true });
+}
+
// "Higher order component" / wrapper style API
// In 3.3, this will become `withKnobs`, once our decorator API supports it.
// See https://github.com/storybooks/storybook/pull/1527
diff --git a/addons/knobs/src/react/WrapStory.js b/addons/knobs/src/react/WrapStory.js
index 29568e2950ad..d3f7652c9678 100644
--- a/addons/knobs/src/react/WrapStory.js
+++ b/addons/knobs/src/react/WrapStory.js
@@ -7,6 +7,7 @@ export default class WrapStory extends React.Component {
constructor(props) {
super(props);
this.knobChanged = this.knobChanged.bind(this);
+ this.knobClicked = this.knobClicked.bind(this);
this.resetKnobs = this.resetKnobs.bind(this);
this.setPaneKnobs = this.setPaneKnobs.bind(this);
this._knobsAreReset = false;
@@ -16,6 +17,8 @@ export default class WrapStory extends React.Component {
componentDidMount() {
// Watch for changes in knob editor.
this.props.channel.on('addon:knobs:knobChange', this.knobChanged);
+ // Watch for clicks in knob editor.
+ this.props.channel.on('addon:knobs:knobClick', this.knobClicked);
// Watch for the reset event and reset knobs.
this.props.channel.on('addon:knobs:reset', this.resetKnobs);
// Watch for any change in the knobStore and set the panel again for those
@@ -31,6 +34,7 @@ export default class WrapStory extends React.Component {
componentWillUnmount() {
this.props.channel.removeListener('addon:knobs:knobChange', this.knobChanged);
+ this.props.channel.removeListener('addon:knobs:knobClick', this.knobClicked);
this.props.channel.removeListener('addon:knobs:reset', this.resetKnobs);
this.props.knobStore.unsubscribe(this.setPaneKnobs);
}
@@ -45,11 +49,17 @@ export default class WrapStory extends React.Component {
const { knobStore, storyFn, context } = this.props;
// Update the related knob and it's value.
const knobOptions = knobStore.get(name);
+
knobOptions.value = value;
knobStore.markAllUnused();
this.setState({ storyContent: storyFn(context) });
}
+ knobClicked(knob) {
+ const knobOptions = this.props.knobStore.get(knob.name);
+ knobOptions.callback();
+ }
+
resetKnobs() {
const { knobStore, storyFn, context } = this.props;
knobStore.reset();
diff --git a/addons/knobs/src/vue/index.js b/addons/knobs/src/vue/index.js
index ae99e44f1c1a..a59285819aa5 100644
--- a/addons/knobs/src/vue/index.js
+++ b/addons/knobs/src/vue/index.js
@@ -8,10 +8,16 @@ export const vueHandler = (channel, knobStore) => getStory => context => ({
const { name, value } = change;
// Update the related knob and it's value.
const knobOptions = knobStore.get(name);
+
knobOptions.value = value;
this.$forceUpdate();
},
+ onKnobClick(knob) {
+ const knobOptions = knobStore.get(knob.name);
+ knobOptions.callback();
+ },
+
onKnobReset() {
knobStore.reset();
this.setPaneKnobs(false);
@@ -26,12 +32,14 @@ export const vueHandler = (channel, knobStore) => getStory => context => ({
created() {
channel.on('addon:knobs:reset', this.onKnobReset);
channel.on('addon:knobs:knobChange', this.onKnobChange);
+ channel.on('addon:knobs:knobClick', this.onKnobClick);
knobStore.subscribe(this.setPaneKnobs);
},
beforeDestroy() {
channel.removeListener('addon:knobs:reset', this.onKnobReset);
channel.removeListener('addon:knobs:knobChange', this.onKnobChange);
+ channel.removeListener('addon:knobs:knobClick', this.onKnobClick);
knobStore.unsubscribe(this.setPaneKnobs);
},
});
diff --git a/addons/knobs/src/vue/index.test.js b/addons/knobs/src/vue/index.test.js
index dcf2528ce45d..9e2b4ca7a3d3 100644
--- a/addons/knobs/src/vue/index.test.js
+++ b/addons/knobs/src/vue/index.test.js
@@ -32,8 +32,9 @@ describe('Vue handler', () => {
const testStore = new KnobStore();
new Vue(vueHandler(testChannel, testStore)(testStory)(testContext)).$mount();
- expect(testChannel.on).toHaveBeenCalledTimes(2);
+ expect(testChannel.on).toHaveBeenCalledTimes(3);
expect(testChannel.on).toHaveBeenCalledWith('addon:knobs:reset', expect.any(Function));
expect(testChannel.on).toHaveBeenCalledWith('addon:knobs:knobChange', expect.any(Function));
+ expect(testChannel.on).toHaveBeenCalledWith('addon:knobs:knobClick', expect.any(Function));
});
});
diff --git a/app/react-native/package.json b/app/react-native/package.json
index 545f1fc64d29..0c4cd9b0fc03 100644
--- a/app/react-native/package.json
+++ b/app/react-native/package.json
@@ -40,7 +40,7 @@
"babel-plugin-transform-regenerator": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
- "babel-preset-env": "^1.6.0",
+ "babel-preset-env": "^1.6.1",
"babel-preset-minify": "^0.2.0",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
@@ -64,7 +64,7 @@
"url-parse": "^1.1.9",
"util-deprecate": "^1.0.2",
"uuid": "^3.1.0",
- "webpack": "^3.7.1",
+ "webpack": "^3.8.1",
"webpack-dev-middleware": "^1.12.0",
"webpack-hot-middleware": "^2.20.0",
"ws": "^3.0.0"
diff --git a/app/react/package.json b/app/react/package.json
index 3a34bdef0886..db703e1c42c6 100644
--- a/app/react/package.json
+++ b/app/react/package.json
@@ -34,14 +34,14 @@
"babel-plugin-react-docgen": "^1.8.0",
"babel-plugin-transform-regenerator": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
- "babel-preset-env": "^1.6.0",
+ "babel-preset-env": "^1.6.1",
"babel-preset-minify": "^0.2.0",
"babel-preset-react": "^6.24.1",
"babel-preset-react-app": "^3.0.3",
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "chalk": "^2.1.0",
+ "chalk": "^2.2.0",
"commander": "^2.11.0",
"common-tags": "^1.4.0",
"configstore": "^3.1.1",
@@ -71,7 +71,7 @@
"url-loader": "^0.6.2",
"util-deprecate": "^1.0.2",
"uuid": "^3.1.0",
- "webpack": "^3.7.1",
+ "webpack": "^3.8.1",
"webpack-dev-middleware": "^1.12.0",
"webpack-hot-middleware": "^2.20.0"
},
diff --git a/app/vue/package.json b/app/vue/package.json
index 25f105463486..f4f857ea5140 100644
--- a/app/vue/package.json
+++ b/app/vue/package.json
@@ -41,7 +41,7 @@
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",
"case-sensitive-paths-webpack-plugin": "^2.1.1",
- "chalk": "^2.1.0",
+ "chalk": "^2.2.0",
"commander": "^2.11.0",
"common-tags": "^1.4.0",
"configstore": "^3.1.1",
diff --git a/dependencies.yml b/dependencies.yml
index 3520b7e252cb..bd6995784eac 100644
--- a/dependencies.yml
+++ b/dependencies.yml
@@ -29,9 +29,10 @@ collectors:
bootstrap_command: yarn
actors:
# pull requests for updates to our major version
- - type: js-lerna
+ - type: js-lerna:0.9.0-beta
versions: "L.Y.Y"
settings:
+ batch_mode: true
bootstrap_command: yarn
github_labels:
- dependencies:update
diff --git a/docs/package.json b/docs/package.json
index 7b2bdb99d10a..95bf6e18d1e1 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -25,7 +25,7 @@
"babel-core": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
- "babel-preset-env": "^1.6.0",
+ "babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
"bootstrap": "^3.3.7",
diff --git a/docs/yarn.lock b/docs/yarn.lock
index dc0f12abc65b..5b2aef3a88ee 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -1364,6 +1364,41 @@ babel-preset-env@^1.6.0:
invariant "^2.2.2"
semver "^5.3.0"
+babel-preset-env@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
+ dependencies:
+ babel-plugin-check-es2015-constants "^6.22.0"
+ babel-plugin-syntax-trailing-function-commas "^6.22.0"
+ babel-plugin-transform-async-to-generator "^6.22.0"
+ babel-plugin-transform-es2015-arrow-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoping "^6.23.0"
+ babel-plugin-transform-es2015-classes "^6.23.0"
+ babel-plugin-transform-es2015-computed-properties "^6.22.0"
+ babel-plugin-transform-es2015-destructuring "^6.23.0"
+ babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
+ babel-plugin-transform-es2015-for-of "^6.23.0"
+ babel-plugin-transform-es2015-function-name "^6.22.0"
+ babel-plugin-transform-es2015-literals "^6.22.0"
+ babel-plugin-transform-es2015-modules-amd "^6.22.0"
+ babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-umd "^6.23.0"
+ babel-plugin-transform-es2015-object-super "^6.22.0"
+ babel-plugin-transform-es2015-parameters "^6.23.0"
+ babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
+ babel-plugin-transform-es2015-spread "^6.22.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.22.0"
+ babel-plugin-transform-es2015-template-literals "^6.22.0"
+ babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.22.0"
+ babel-plugin-transform-exponentiation-operator "^6.22.0"
+ babel-plugin-transform-regenerator "^6.22.0"
+ browserslist "^2.1.2"
+ invariant "^2.2.2"
+ semver "^5.3.0"
+
babel-preset-es2015@^6.24.1:
version "6.24.1"
resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
diff --git a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap
index 61ad984c0719..ffe4f769c193 100644
--- a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap
+++ b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap
@@ -1318,6 +1318,13 @@ exports[`Storyshots Button with knobs 1`] = `
Nice to meet you!
+
+
+ PS. My shirt pocket contains:
+
+
+ No items!
+
`;
diff --git a/examples/cra-kitchen-sink/src/stories/index.js b/examples/cra-kitchen-sink/src/stories/index.js
index 6668fb687166..b067b63ffa14 100644
--- a/examples/cra-kitchen-sink/src/stories/index.js
+++ b/examples/cra-kitchen-sink/src/stories/index.js
@@ -1,4 +1,5 @@
import React from 'react';
+import PropTypes from 'prop-types';
import EventEmiter from 'eventemitter3';
import { storiesOf } from '@storybook/react';
@@ -16,6 +17,7 @@ import {
select,
array,
date,
+ button,
object,
} from '@storybook/addon-knobs';
import centered from '@storybook/addon-centered';
@@ -59,6 +61,23 @@ const InfoButton = () => (
);
+class AsyncItemLoader extends React.Component {
+ constructor() {
+ super();
+ this.state = { items: [] };
+ }
+
+ loadItems() {
+ setTimeout(() => this.setState({ items: ['pencil', 'pen', 'eraser'] }), 1500);
+ }
+
+ render() {
+ button('Load the items', () => this.loadItems());
+ return this.props.children(this.state.items);
+ }
+}
+AsyncItemLoader.propTypes = { children: PropTypes.func.isRequired };
+
storiesOf('Button', module)
.addDecorator(withKnobs)
.add('with text', () => (
@@ -118,6 +137,14 @@ storiesOf('Button', module)
In my backpack, I have:
{items.map(item => {item} )}
{salutation}
+
+ PS. My shirt pocket contains:
+
+ {loadedItems => {
+ if (!loadedItems.length) return No items! ;
+ return {loadedItems.map(i => {i} )} ;
+ }}
+
);
})
diff --git a/examples/vue-kitchen-sink/src/stories/index.js b/examples/vue-kitchen-sink/src/stories/index.js
index 82c9820433c8..9ea6dfdd6ceb 100644
--- a/examples/vue-kitchen-sink/src/stories/index.js
+++ b/examples/vue-kitchen-sink/src/stories/index.js
@@ -14,6 +14,7 @@ import {
select,
color,
date,
+ button,
} from '@storybook/addon-knobs';
import Centered from '@storybook/addon-centered';
@@ -231,6 +232,8 @@ storiesOf('Addon Knobs', module)
: `I'm out of ${fruit}${nice ? ', Sorry!' : '.'}`;
const salutation = nice ? 'Nice to meet you!' : 'Leave me alone!';
+ button('Arbitrary action', action('You clicked it!'));
+
return {
template: `
diff --git a/lib/cli/package.json b/lib/cli/package.json
index 96033e021f3c..20fb6de2096d 100644
--- a/lib/cli/package.json
+++ b/lib/cli/package.json
@@ -22,7 +22,7 @@
},
"dependencies": {
"@storybook/codemod": "^3.2.12",
- "chalk": "^2.1.0",
+ "chalk": "^2.2.0",
"child-process-promise": "^2.2.1",
"commander": "^2.11.0",
"cross-spawn": "^5.0.1",
diff --git a/lib/ui/package.json b/lib/ui/package.json
index 36819df84c42..138c80f97eb1 100644
--- a/lib/ui/package.json
+++ b/lib/ui/package.json
@@ -16,7 +16,7 @@
"dependencies": {
"@hypnosphi/fuse.js": "^3.0.9",
"@storybook/components": "^3.2.12",
- "@storybook/react-fuzzy": "^0.4.0",
+ "@storybook/react-fuzzy": "^0.4.1",
"babel-runtime": "^6.26.0",
"deep-equal": "^1.0.1",
"events": "^1.1.1",
diff --git a/package.json b/package.json
index 7d2fea5df9b0..57634c6f8934 100644
--- a/package.json
+++ b/package.json
@@ -44,19 +44,19 @@
"babel-plugin-transform-md-import-to-string": "^1.0.6",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
- "babel-preset-env": "^1.6.0",
+ "babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-0": "^6.24.1",
- "chalk": "^2.1.0",
+ "chalk": "^2.2.0",
"codecov": "^2.3.1",
"commander": "^2.11.0",
"danger": "^1.2.0",
"enzyme": "^3.1.0",
- "enzyme-adapter-react-16": "^1.0.1",
+ "enzyme-adapter-react-16": "^1.0.2",
"eslint": "^4.9.0",
"eslint-config-airbnb": "^15.1.0",
"eslint-config-prettier": "^2.4.0",
- "eslint-plugin-import": "^2.7.0",
+ "eslint-plugin-import": "^2.8.0",
"eslint-plugin-jest": "^21.0.0",
"eslint-plugin-json": "^1.2.0",
"eslint-plugin-jsx-a11y": "^6.0.2",
@@ -71,7 +71,7 @@
"jest": "^21.2.0",
"jest-enzyme": "^4.0.1",
"lerna": "^2.4.0",
- "lint-staged": "^4.1.0",
+ "lint-staged": "^4.3.0",
"lodash": "^4.17.4",
"nodemon": "^1.12.1",
"npmlog": "^4.1.2",
diff --git a/yarn.lock b/yarn.lock
index b3a88bd23b88..2abe25e6db80 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -21,9 +21,9 @@
git-url-parse "^6.0.2"
shelljs "^0.7.0"
-"@storybook/react-fuzzy@^0.4.0":
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/@storybook/react-fuzzy/-/react-fuzzy-0.4.0.tgz#2961e8a1f6c1afcce97e9e9a14d1dfe9d9061087"
+"@storybook/react-fuzzy@^0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@storybook/react-fuzzy/-/react-fuzzy-0.4.1.tgz#612bdf7768585ad6e086b4738efbf204e94290a0"
dependencies:
babel-runtime "^6.23.0"
classnames "^2.2.5"
@@ -44,17 +44,17 @@
version "6.0.88"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.88.tgz#f618f11a944f6a18d92b5c472028728a3e3d4b66"
-"@types/node@^7.0.12":
- version "7.0.43"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
+"@types/node@^7.0.46":
+ version "7.0.46"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.46.tgz#c3dedd25558c676b3d6303e51799abb9c3f8f314"
"@types/react@^15.0.24":
version "15.6.4"
resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.4.tgz#3bb57bd43183a05919ceb025a264287348f47e9d"
-"@types/react@^16.0.11":
- version "16.0.11"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.11.tgz#ab505dc60bd1dcd6113577d71d1c96e58b6bd9f0"
+"@types/react@^16.0.15":
+ version "16.0.15"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.15.tgz#1b1eba408fc75735b3e53a83333c346eeeb0022b"
JSONStream@^1.0.4:
version "1.3.1"
@@ -1651,6 +1651,41 @@ babel-preset-env@^1.6.0:
invariant "^2.2.2"
semver "^5.3.0"
+babel-preset-env@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
+ dependencies:
+ babel-plugin-check-es2015-constants "^6.22.0"
+ babel-plugin-syntax-trailing-function-commas "^6.22.0"
+ babel-plugin-transform-async-to-generator "^6.22.0"
+ babel-plugin-transform-es2015-arrow-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
+ babel-plugin-transform-es2015-block-scoping "^6.23.0"
+ babel-plugin-transform-es2015-classes "^6.23.0"
+ babel-plugin-transform-es2015-computed-properties "^6.22.0"
+ babel-plugin-transform-es2015-destructuring "^6.23.0"
+ babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
+ babel-plugin-transform-es2015-for-of "^6.23.0"
+ babel-plugin-transform-es2015-function-name "^6.22.0"
+ babel-plugin-transform-es2015-literals "^6.22.0"
+ babel-plugin-transform-es2015-modules-amd "^6.22.0"
+ babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
+ babel-plugin-transform-es2015-modules-umd "^6.23.0"
+ babel-plugin-transform-es2015-object-super "^6.22.0"
+ babel-plugin-transform-es2015-parameters "^6.23.0"
+ babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
+ babel-plugin-transform-es2015-spread "^6.22.0"
+ babel-plugin-transform-es2015-sticky-regex "^6.22.0"
+ babel-plugin-transform-es2015-template-literals "^6.22.0"
+ babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
+ babel-plugin-transform-es2015-unicode-regex "^6.22.0"
+ babel-plugin-transform-exponentiation-operator "^6.22.0"
+ babel-plugin-transform-regenerator "^6.22.0"
+ browserslist "^2.1.2"
+ invariant "^2.2.2"
+ semver "^5.3.0"
+
babel-preset-es2015-node@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz#60b23157024b0cfebf3a63554cb05ee035b4e55f"
@@ -2471,6 +2506,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0:
escape-string-regexp "^1.0.5"
supports-color "^4.0.0"
+chalk@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.0.tgz#477b3bf2f9b8fd5ca9e429747e37f724ee7af240"
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
chalk@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
@@ -3896,15 +3939,16 @@ entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
-enzyme-adapter-react-16@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.1.tgz#066cb1735e65d8d95841a023f94dab3ce6109e17"
+enzyme-adapter-react-16@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.2.tgz#8c6f431f17c69e1e9eeb25ca4bd92f31971eb2dd"
dependencies:
enzyme-adapter-utils "^1.0.0"
lodash "^4.17.4"
object.assign "^4.0.4"
object.values "^1.0.4"
prop-types "^15.5.10"
+ react-test-renderer "^16.0.0-0"
enzyme-adapter-utils@^1.0.0:
version "1.0.0"
@@ -4130,7 +4174,7 @@ eslint-plugin-flowtype@2.35.0:
dependencies:
lodash "^4.15.0"
-eslint-plugin-import@2.7.0, eslint-plugin-import@^2.7.0:
+eslint-plugin-import@2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
dependencies:
@@ -4145,6 +4189,21 @@ eslint-plugin-import@2.7.0, eslint-plugin-import@^2.7.0:
minimatch "^3.0.3"
read-pkg-up "^2.0.0"
+eslint-plugin-import@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894"
+ dependencies:
+ builtin-modules "^1.1.1"
+ contains-path "^0.1.0"
+ debug "^2.6.8"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.3.1"
+ eslint-module-utils "^2.1.1"
+ has "^1.0.1"
+ lodash.cond "^4.3.0"
+ minimatch "^3.0.3"
+ read-pkg-up "^2.0.0"
+
eslint-plugin-jest@^21.0.0:
version "21.2.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-21.2.0.tgz#292044df9cf0866ad9c530e78e6528fae287b926"
@@ -7197,12 +7256,13 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-lint-staged@^4.1.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.2.3.tgz#5a1f12256af06110b96225f109dbf215009a37a9"
+lint-staged@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.3.0.tgz#ed0779ad9a42c0dc62bb3244e522870b41125879"
dependencies:
app-root-path "^2.0.0"
chalk "^2.1.0"
+ commander "^2.11.0"
cosmiconfig "^1.1.0"
execa "^0.8.0"
is-glob "^4.0.0"
@@ -9686,7 +9746,7 @@ react-style-proptype@^3.0.0:
dependencies:
prop-types "^15.5.4"
-react-test-renderer@^16.0.0:
+react-test-renderer@^16.0.0, react-test-renderer@^16.0.0-0:
version "16.0.0"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.0.0.tgz#9fe7b8308f2f71f29fc356d4102086f131c9cb15"
dependencies:
@@ -12376,9 +12436,9 @@ webpack@^3.6.0:
webpack-sources "^1.0.1"
yargs "^8.0.2"
-webpack@^3.7.1:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.7.1.tgz#6046b5c415ff7df7a0dc54c5b6b86098e8b952da"
+webpack@^3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"