diff --git a/.circleci/config.yml b/.circleci/config.yml
index ed8d38cfe75..211098ee841 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -51,7 +51,55 @@ jobs:
command: yarn chromatic --storybook-build-dir="built-storybooks/official-storybook" --exit-zero-on-changes --app-code="ab7m45tp9p"
- run:
name: Run chromatic on the pre-built angular example
- command: yarn chromatic --storybook-build-dir="built-storybooks/angular-cli" --exit-zero-on-changes --app-code="tl92yzsj6w"
+ command: yarn chromatic --storybook-build-dir="built-storybooks/angular-cli" --app-code="tl92yzsj6w"
+ - run:
+ name: Run chromatic on the pre-built cra-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/cra-kitchen-sink" --app-code="tg55gajmdt"
+ - run:
+ name: Run chromatic on the pre-built cra-react15 example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/cra-react15" --app-code="gxk7iqej3wt"
+ - run:
+ name: Run chromatic on the pre-built cra-ts-essentials example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/cra-ts-essentials" --app-code="b311ypk6of"
+ - run:
+ name: Run chromatic on the pre-built cra-ts-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/cra-ts-kitchen-sink" --app-code="19whyj1tlac"
+ - run:
+ name: Run chromatic on the pre-built dev-kits example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/dev-kits" --app-code="7yykp9ifdxx"
+ - run:
+ name: Run chromatic on the pre-built ember-cli example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/ember-cli" --app-code="19z23qxndju"
+ - run:
+ name: Run chromatic on the pre-built html-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/html-kitchen-sink" --app-code="e8zolxoyg8o"
+ - run:
+ name: Run chromatic on the pre-built marko-cli example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/marko-cli" --app-code="qaegx64axu"
+ - run:
+ name: Run chromatic on the pre-built mithril-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/mithril-kitchen-sink" --app-code="8adgm46jzk8"
+ - run:
+ name: Run chromatic on the pre-built polymer-cli example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/polymer-cli" --app-code="o6jl9kmh0qd"
+ - run:
+ name: Run chromatic on the pre-built preact-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/preact-kitchen-sink" --app-code="ls0ikhnwqt"
+ - run:
+ name: Run chromatic on the pre-built rax-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/rax-kitchen-sink" --app-code="4co6vptx8qo"
+ - run:
+ name: Run chromatic on the pre-built riot-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/riot-kitchen-sink" --app-code="g2dp3lnr34a"
+ - run:
+ name: Run chromatic on the pre-built svelte-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/svelte-kitchen-sink" --app-code="8ob73wgl995"
+ - run:
+ name: Run chromatic on the pre-built vue-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/vue-kitchen-sink" --app-code="cyxj0e38bqj"
+ - run:
+ name: Run chromatic on the pre-built web-components-kitchen-sink example
+ command: yarn chromatic --storybook-build-dir="built-storybooks/web-components-kitchen-sink" --app-code="npm5gsofwkf"
packtracker:
<<: *defaults
diff --git a/.eslintignore b/.eslintignore
index 4b921681522..ad542e10775 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -15,8 +15,9 @@ scripts/storage
examples/ember-cli/.storybook/preview-head.html
examples/official-storybook/tests/addon-jest.test.js
examples/cra-ts-kitchen-sink/*.json
-examples/cra-ts-kitchen-sink/public/*.json
-examples/cra-ts-kitchen-sink/public/*.html
+examples/cra-ts-kitchen-sink/public/*
+examples/cra-ts-essentials/*.json
+examples/cra-ts-essentials/public/*
!.remarkrc.js
!.babelrc.js
diff --git a/.github/automention.yml b/.github/automention.yml
index 177c7086be9..4e3688c40d4 100644
--- a/.github/automention.yml
+++ b/.github/automention.yml
@@ -7,7 +7,7 @@
'app: react-native': ['benoitdion', 'gongreg']
'app: react-native-server': ['benoitdion', 'gongreg']
'app: svelte': ['rixo', 'cam-stitt', 'plumpNation']
-'app: vue': ['backbone87', 'elevatebart', 'pksunkara', 'Aaron-Pool']
+'app: vue': ['backbone87', 'elevatebart', 'pksunkara', 'Aaron-Pool', 'pocka']
'app: web-components': ['daKmoR']
'api: addons': ['ndelangen']
'addon: a11y': ['CodeByAlex', 'Armanio', 'jsomsanith']
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 299f26a6ea9..5e34b8bb52c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,147 @@
+## 5.3.0-rc.0 (December 19, 2019)
+
+### Features
+
+* CSF: Use `__orderedExports` in loader if provided ([#9181](https://github.com/storybookjs/storybook/pull/9181))
+
+### Bug Fixes
+
+* Addon-a11y: Fix selected blindness color filter ([#9179](https://github.com/storybookjs/storybook/pull/9179))
+
+### Maintenance
+
+* Addon-essentials: Remove actions, links, knobs ([#9184](https://github.com/storybookjs/storybook/pull/9184))
+
+## 5.3.0-beta.31 (December 16, 2019)
+
+### Features
+
+* React: Add support for CRA without overrides ([#9157](https://github.com/storybookjs/storybook/pull/9157))
+* Addon-docs: Add fontFamily prop to Typeset component ([#9158](https://github.com/storybookjs/storybook/pull/9158))
+
+### Bug Fixes
+
+* Core: Emit store render event synchronously if we can ([#9087](https://github.com/storybookjs/storybook/pull/9087))
+
+## 5.3.0-beta.30 (December 16, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.29 (December 16, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.28 (December 16, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.27 (December 16, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.26 (December 16, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.25 (December 15, 2019)
+
+### Bug Fixes
+
+* Addon-docs: Hide addons on docs-only stories ([#9125](https://github.com/storybookjs/storybook/pull/9125))
+
+### Dependency Upgrades
+
+* Upgrade vue-docgen-loader to 1.3.0-beta.0 ([#9155](https://github.com/storybookjs/storybook/pull/9155))
+
+## 5.3.0-beta.24 (December 15, 2019)
+
+Failed NPM publish
+
+## 5.3.0-beta.23 (December 14, 2019)
+
+### Features
+
+* Addon-docs: Render components as leaves in `--docs` mode ([#7700](https://github.com/storybookjs/storybook/pull/7700))
+
+### Bug Fixes
+
+* Addon-viewport: Allow viewports config to be optional ([#9137](https://github.com/storybookjs/storybook/pull/9137))
+
+## 5.3.0-beta.22 (December 12, 2019)
+
+### Bug Fixes
+
+* React: Fix CRA preset check ([#9142](https://github.com/storybookjs/storybook/pull/9142))
+
+### Maintenance
+
+* Build: Change CI to chromatic on all examples ([#9114](https://github.com/storybookjs/storybook/pull/9114))
+* Web-components: Clean up example `custom-elements.json` and expose `defaultValue` ([#9107](https://github.com/storybookjs/storybook/pull/9107))
+
+### Dependency Upgrades
+
+* Restore main jscodeshift package ([#9140](https://github.com/storybookjs/storybook/pull/9140))
+
+## 5.3.0-beta.21 (December 11, 2019)
+
+### Features
+
+* CLI: Add Yarn workspaces support for init command ([#9104](https://github.com/storybookjs/storybook/pull/9104))
+
+### Bug Fixes
+
+* Addon-docs: Update MDX compiler to fix knobs ([#9118](https://github.com/storybookjs/storybook/pull/9118))
+* CLI: Add web-components to sb init ([#9106](https://github.com/storybookjs/storybook/pull/9106))
+
+### Maintenance
+
+* UI: Remove css usage ([#9003](https://github.com/storybookjs/storybook/pull/9003))
+
+## 5.3.0-beta.20 (December 9, 2019)
+
+### Features
+
+* Addon-essentials: Remove docs from essentials ([#9093](https://github.com/storybookjs/storybook/pull/9093))
+
+### Bug Fixes
+
+* Source-loader: Handle includeStories/excludeStories in CSF ([#9100](https://github.com/storybookjs/storybook/pull/9100))
+* Source-loader: Support function declaration story exports ([#9092](https://github.com/storybookjs/storybook/pull/9092))
+
+### Maintenance
+
+* CSF: Refactor router utils into CSF library ([#9099](https://github.com/storybookjs/storybook/pull/9099))
+
+## 5.3.0-beta.19 (December 7, 2019)
+
+### Features
+
+* Addon-essentials ([#9019](https://github.com/storybookjs/storybook/pull/9019))
+
+### Bug Fixes
+
+* Addon-docs: Fix prop table default value for web-components ([#9086](https://github.com/storybookjs/storybook/pull/9086))
+
+## 5.3.0-beta.18 (December 6, 2019)
+
+### Features
+
+* CLI: Change generators to Triconfig ([#9075](https://github.com/storybookjs/storybook/pull/9075))
+* Addon-docs: Add Props for Ember ([#9067](https://github.com/storybookjs/storybook/pull/9067))
+* MDX: Handle quotes / template literals in title ([#9069](https://github.com/storybookjs/storybook/pull/9069))
+
+### Bug Fixes
+
+* Addon-docs: MDX Octicon anchors should not be tabbable ([#9063](https://github.com/storybookjs/storybook/pull/9063))
+
+### Dependency Upgrades
+
+* Addon-docs: Upgrade vue-docgen-loader ([#9082](https://github.com/storybookjs/storybook/pull/9082))
+
+## 5.3.0-beta.17 (December 6, 2019)
+
+NPM publish failed
+
## 5.3.0-beta.16 (December 5, 2019)
### Features
diff --git a/MIGRATION.md b/MIGRATION.md
index 93f7f54e39a..ae7149b87b8 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -2,6 +2,7 @@
- [Migration](#migration)
- [From version 5.2.x to 5.3.x](#from-version-52x-to-53x)
+ - [To tri-config configuration](#to-triconfig-configuration)
- [Create React App preset](#create-react-app-preset)
- [Description doc block](#description-doc-block)
- [React Native Async Storage](#react-native-async-storage)
@@ -74,8 +75,76 @@
- [Packages renaming](#packages-renaming)
- [Deprecated embedded addons](#deprecated-embedded-addons)
+
## From version 5.2.x to 5.3.x
+### To tri-config configuration
+
+In storybook 5.3 3 new files for configuration were introduced, that replaced some previous files.
+
+These files are now soft-deprecated, (*they still work, but over time we will promote users to migrate*):
+
+- `config.js` has been renamed to `preview.js`.
+- `addons.js` has been renamed to `manager.js`.
+- `presets.js` has been renamed to `main.js`.
+
+#### Using main.js
+
+`main.js` is now the main point of configuration for Storybook. This is what a basic `main.js` looks like:
+
+```js
+module.exports = {
+ stories: ['../**/*.stories.js'],
+ addons: [
+ '@storybook/addon-docs/register',
+ ],
+};
+```
+
+You remove all "register" import from `addons.js` and place them inside the array. If this means `addons.js` is now empty for you, it's safe to remove.
+
+Next you remove the code that imports/requires all your stories from `config.js`, and change it to a glob-pattern and place that glob in the `stories` array. If this means `config.js` is empty, it's safe to remove.
+
+If you had a `presets.js` file before you can add the array of presets to the main.js file and remove `presets.js` like so:
+
+```js
+module.exports = {
+ stories: ['../**/*.stories.js'],
+ presets: ['@storybook/addon-docs/preset'],
+};
+```
+
+#### Using preview.js
+
+If after migrating the imports/requires of your stories to `main.js` you're left with some code in `config.js` it's likely the usage of `addParameters` & `addDecorator`.
+
+This is fine, rename `config.js` to `preview.js`.
+
+This file can also be used to inject global stylesheets, fonts etc, into the preview bundle.
+
+#### Using manager.js
+
+If you are setting storybook options in `config.js`, especially `theme`, you should migrate it to `manager.js`:
+
+```js
+import { addons } from '@storybook/addons';
+import { create } from '@storybook/theming/create';
+
+const theme = create({
+ base: 'light',
+ brandTitle: 'My custom title',
+});
+
+addons.setConfig({
+ showRoots: true,
+ panelPosition: 'bottom',
+ theme,
+});
+```
+
+This makes storybook load and use the theme in the manager directly.
+This allows for richer theming in the future, and has a much better performance!
+
### Create React App preset
You can now move to the new preset for [Create React App](https://create-react-app.dev/). The in-built preset for Create React App will be disabled in Storybook 6.0.
@@ -187,7 +256,7 @@ For example, here's how to sort by story ID using `storySort`:
addParameters({
options: {
storySort: (a, b) =>
- a[1].kind === b[1].kind ? 0 : a[1].id.localeCompare(b[1].id, { numeric: true }),
+ a[1].kind === b[1].kind ? 0 : a[1].id.localeCompare(b[1].id, undefined, { numeric: true }),
},
});
```
diff --git a/__mocks__/inject-decorator.ts.csf.txt b/__mocks__/inject-decorator.ts.csf.txt
index 47e60534ac8..b3a3d900dcc 100644
--- a/__mocks__/inject-decorator.ts.csf.txt
+++ b/__mocks__/inject-decorator.ts.csf.txt
@@ -3,7 +3,9 @@ import { action } from "@storybook/addon-actions";
import { Button } from "@storybook/react/demo";
export default {
- title: "Button"
+ title: "Button",
+ excludeStories: ["text"],
+ includeStories: /emoji.*/
};
export const text = () => (
@@ -17,3 +19,13 @@ export const emoji = () => (
);
+
+export function emojiFn() {
+ return (
+
+ )
+};
diff --git a/addons/a11y/package.json b/addons/a11y/package.json
index e745f7d5f7f..772ba9dfdad 100644
--- a/addons/a11y/package.json
+++ b/addons/a11y/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "a11y addon for storybook",
"keywords": [
"a11y",
@@ -33,12 +33,12 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/api": "5.3.0-beta.16",
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/components": "5.3.0-beta.16",
- "@storybook/core-events": "5.3.0-beta.16",
- "@storybook/theming": "5.3.0-beta.16",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/api": "5.3.0-rc.0",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/components": "5.3.0-rc.0",
+ "@storybook/core-events": "5.3.0-rc.0",
+ "@storybook/theming": "5.3.0-rc.0",
"axe-core": "^3.3.2",
"core-js": "^3.0.1",
"global": "^4.3.2",
@@ -55,5 +55,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/addons/a11y/src/components/A11YPanel.tsx b/addons/a11y/src/components/A11YPanel.tsx
index 89d916a71f5..f278877edc5 100644
--- a/addons/a11y/src/components/A11YPanel.tsx
+++ b/addons/a11y/src/components/A11YPanel.tsx
@@ -21,9 +21,9 @@ export enum RuleType {
}
const RotatingIcons = styled(Icons)(({ theme }) => ({
- height: '12px',
- width: '12px',
- marginRight: '4px',
+ height: 12,
+ width: 12,
+ marginRight: 4,
animation: `${theme.animation.rotate360} 1s linear infinite;`,
}));
diff --git a/addons/a11y/src/components/ColorBlindness.tsx b/addons/a11y/src/components/ColorBlindness.tsx
index 9d643a797f4..35edc2bd15c 100644
--- a/addons/a11y/src/components/ColorBlindness.tsx
+++ b/addons/a11y/src/components/ColorBlindness.tsx
@@ -87,9 +87,7 @@ export const ColorBlindness: FunctionComponent = () => {
if (iframe) {
iframe.style.filter = getFilter(activeState);
- setActiveState({
- active: activeState,
- });
+ setActiveState(activeState);
} else {
logger.error('Cannot find Storybook iframe');
}
diff --git a/addons/a11y/src/components/Report/Elements.tsx b/addons/a11y/src/components/Report/Elements.tsx
index ce713ec948a..d2fc529b8d0 100644
--- a/addons/a11y/src/components/Report/Elements.tsx
+++ b/addons/a11y/src/components/Report/Elements.tsx
@@ -15,15 +15,15 @@ const ItemTitle = styled.span<{}>(({ theme }) => ({
borderBottom: `1px solid ${theme.appBorderColor}`,
width: '100%',
display: 'flex',
- paddingBottom: '6px',
- marginBottom: '6px',
+ paddingBottom: 6,
+ marginBottom: 6,
justifyContent: 'space-between',
}));
const HighlightToggleElement = styled.span({
fontWeight: 'normal',
alignSelf: 'center',
- paddingRight: '15px',
+ paddingRight: 15,
input: { margin: 0 },
});
diff --git a/addons/a11y/src/components/Report/Info.tsx b/addons/a11y/src/components/Report/Info.tsx
index 5b1995fe414..743a617c02f 100644
--- a/addons/a11y/src/components/Report/Info.tsx
+++ b/addons/a11y/src/components/Report/Info.tsx
@@ -4,14 +4,14 @@ import { styled } from '@storybook/theming';
import { Result } from 'axe-core';
const Wrapper = styled.div({
- padding: '12px',
- marginBottom: '10px',
+ padding: 12,
+ marginBottom: 10,
});
const Help = styled.p({
margin: '0 0 12px',
});
const Link = styled.a({
- marginTop: '12px',
+ marginTop: 12,
textDecoration: 'underline',
color: 'inherit',
display: 'block',
diff --git a/addons/a11y/src/components/Report/Item.tsx b/addons/a11y/src/components/Report/Item.tsx
index 9122ff53c67..2ece16f74a1 100644
--- a/addons/a11y/src/components/Report/Item.tsx
+++ b/addons/a11y/src/components/Report/Item.tsx
@@ -24,7 +24,7 @@ const Icon = styled
+ Edit
+
+
src/App.tsx
and save to reload.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -112,7 +112,7 @@ const StoryLink = {
color: '#1474f3',
textDecoration: 'none',
borderBottom: '1px solid #1474f3',
- paddingBottom: '2px',
+ paddingBottom: 2,
}}
onClick={vnode.state.onclick}
>
diff --git a/lib/cli/generators/POLYMER/template-csf/.storybook/config.js b/lib/cli/generators/POLYMER/template-csf/.storybook/config.js
deleted file mode 100644
index 89ffce5d2c3..00000000000
--- a/lib/cli/generators/POLYMER/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/polymer';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../src/stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/POLYMER/template-csf/.storybook/main.js b/lib/cli/generators/POLYMER/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..c0c5891e74c
--- /dev/null
+++ b/lib/cli/generators/POLYMER/template-csf/.storybook/main.js
@@ -0,0 +1,3 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.js'],
+};
diff --git a/lib/cli/generators/PREACT/template-csf/.storybook/addons.js b/lib/cli/generators/PREACT/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/PREACT/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/PREACT/template-csf/.storybook/config.js b/lib/cli/generators/PREACT/template-csf/.storybook/config.js
deleted file mode 100644
index 564558bd8d7..00000000000
--- a/lib/cli/generators/PREACT/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/preact';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/PREACT/template-csf/.storybook/main.js b/lib/cli/generators/PREACT/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..448921317f4
--- /dev/null
+++ b/lib/cli/generators/PREACT/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/RAX/template-csf/.storybook/manager.js b/lib/cli/generators/RAX/template-csf/.storybook/manager.js
deleted file mode 100644
index 3cf5981c4be..00000000000
--- a/lib/cli/generators/RAX/template-csf/.storybook/manager.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
-
-import { create } from '@storybook/theming/create';
-import { addons } from '@storybook/addons';
-
-const theme = create({
- base: 'light',
-
- brandTitle: 'Rax Kitchen Sink',
- brandUrl: 'https://github.com/storybookjs/storybook/tree/master/examples/rax-kitchen-sink',
-});
-
-addons.setConfig({ theme });
diff --git a/lib/cli/generators/REACT/template-csf/.storybook/addons.js b/lib/cli/generators/REACT/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/REACT/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/REACT/template-csf/.storybook/config.js b/lib/cli/generators/REACT/template-csf/.storybook/config.js
deleted file mode 100644
index 0603ed51131..00000000000
--- a/lib/cli/generators/REACT/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/REACT/template-csf/.storybook/main.js b/lib/cli/generators/REACT/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..448921317f4
--- /dev/null
+++ b/lib/cli/generators/REACT/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/REACT/template-mdx/.storybook/addons.js b/lib/cli/generators/REACT/template-mdx/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/REACT/template-mdx/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/REACT/template-mdx/.storybook/config.js b/lib/cli/generators/REACT/template-mdx/.storybook/config.js
deleted file mode 100644
index e178df98fe4..00000000000
--- a/lib/cli/generators/REACT/template-mdx/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.(js|mdx)$/), module);
diff --git a/lib/cli/generators/REACT/template-mdx/.storybook/main.js b/lib/cli/generators/REACT/template-mdx/.storybook/main.js
new file mode 100644
index 00000000000..a54a6695456
--- /dev/null
+++ b/lib/cli/generators/REACT/template-mdx/.storybook/main.js
@@ -0,0 +1,10 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.(js|mdx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: [
+ {
+ name: '@storybook/addon-docs/preset',
+ options: { configureJSX: true },
+ },
+ ],
+};
diff --git a/lib/cli/generators/REACT/template-mdx/.storybook/presets.js b/lib/cli/generators/REACT/template-mdx/.storybook/presets.js
deleted file mode 100644
index 8c1b9d4e5ba..00000000000
--- a/lib/cli/generators/REACT/template-mdx/.storybook/presets.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = [
- {
- name: '@storybook/addon-docs/preset',
- options: { configureJSX: true },
- },
-];
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/addons.ts b/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/addons.ts
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/addons.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/config.ts b/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/config.ts
deleted file mode 100644
index 0a0a64e2816..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/config.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.(tsx|jsx)
-configure(require.context('../src/stories', true, /\.stories\.[tj]sx?$/), module);
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/main.js b/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/main.js
new file mode 100644
index 00000000000..e7ecf26a2e1
--- /dev/null
+++ b/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/main.js
@@ -0,0 +1,5 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.(ts|tsx|js|jsx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: ['@storybook/preset-create-react-app'],
+};
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/presets.js b/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/presets.js
deleted file mode 100644
index ccbce829866..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf-ts/.storybook/presets.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = ['@storybook/preset-create-react-app'];
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/addons.js b/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/config.js b/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/config.js
deleted file mode 100644
index 342071747f2..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../src/stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/main.js b/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..42e0f55b0b7
--- /dev/null
+++ b/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/main.js
@@ -0,0 +1,5 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: ['@storybook/preset-create-react-app'],
+};
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/presets.js b/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/presets.js
deleted file mode 100644
index ccbce829866..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-csf/.storybook/presets.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = ['@storybook/preset-create-react-app'];
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/addons.js b/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/config.js b/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/config.js
deleted file mode 100644
index f3a1df13159..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../src/stories', true, /\.stories\.(js|mdx)$/), module);
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/main.js b/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/main.js
new file mode 100644
index 00000000000..edbb63e2de4
--- /dev/null
+++ b/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/main.js
@@ -0,0 +1,13 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.(js|mdx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: [
+ '@storybook/preset-create-react-app',
+ {
+ name: '@storybook/addon-docs/preset',
+ options: {
+ configureJSX: true,
+ },
+ },
+ ],
+};
diff --git a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/presets.js b/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/presets.js
deleted file mode 100644
index b92aeeb8fca..00000000000
--- a/lib/cli/generators/REACT_SCRIPTS/template-mdx/.storybook/presets.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = [
- '@storybook/preset-create-react-app',
- {
- name: '@storybook/addon-docs/preset',
- options: {
- configureJSX: true,
- },
- },
-];
diff --git a/lib/cli/generators/RIOT/template-csf/.storybook/addons.js b/lib/cli/generators/RIOT/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/RIOT/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/RIOT/template-csf/.storybook/config.js b/lib/cli/generators/RIOT/template-csf/.storybook/config.js
deleted file mode 100644
index 99e7d848f2f..00000000000
--- a/lib/cli/generators/RIOT/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/riot';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/RIOT/template-csf/.storybook/main.js b/lib/cli/generators/RIOT/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..448921317f4
--- /dev/null
+++ b/lib/cli/generators/RIOT/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/SFC_VUE/template-csf/.storybook/addons.js b/lib/cli/generators/SFC_VUE/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/SFC_VUE/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/SFC_VUE/template-csf/.storybook/config.js b/lib/cli/generators/SFC_VUE/template-csf/.storybook/config.js
deleted file mode 100644
index 145eb83c09a..00000000000
--- a/lib/cli/generators/SFC_VUE/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/vue';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../src/stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/SFC_VUE/template-csf/.storybook/main.js b/lib/cli/generators/SFC_VUE/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..6c7d25e7583
--- /dev/null
+++ b/lib/cli/generators/SFC_VUE/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/addons.js b/lib/cli/generators/SFC_VUE/template-mdx/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/config.js b/lib/cli/generators/SFC_VUE/template-mdx/.storybook/config.js
deleted file mode 100644
index 08a361c9a9b..00000000000
--- a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/vue';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../src/stories', true, /\.stories\.(js|mdx)$/), module);
diff --git a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/main.js b/lib/cli/generators/SFC_VUE/template-mdx/.storybook/main.js
new file mode 100644
index 00000000000..2f8d2982005
--- /dev/null
+++ b/lib/cli/generators/SFC_VUE/template-mdx/.storybook/main.js
@@ -0,0 +1,5 @@
+module.exports = {
+ stories: ['../src/stories/**/*.stories.(js|mdx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: ['@storybook/addon-docs/preset'],
+};
diff --git a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/presets.js b/lib/cli/generators/SFC_VUE/template-mdx/.storybook/presets.js
deleted file mode 100644
index a04174c7a33..00000000000
--- a/lib/cli/generators/SFC_VUE/template-mdx/.storybook/presets.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = ['@storybook/addon-docs/preset'];
diff --git a/lib/cli/generators/SVELTE/template-csf/.storybook/addons.js b/lib/cli/generators/SVELTE/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/SVELTE/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/SVELTE/template-csf/.storybook/config.js b/lib/cli/generators/SVELTE/template-csf/.storybook/config.js
deleted file mode 100644
index 1fdc85eecd1..00000000000
--- a/lib/cli/generators/SVELTE/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/svelte';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/SVELTE/template-csf/.storybook/main.js b/lib/cli/generators/SVELTE/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..448921317f4
--- /dev/null
+++ b/lib/cli/generators/SVELTE/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/VUE/template-csf/.storybook/addons.js b/lib/cli/generators/VUE/template-csf/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/VUE/template-csf/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/VUE/template-csf/.storybook/config.js b/lib/cli/generators/VUE/template-csf/.storybook/config.js
deleted file mode 100644
index 1516685de79..00000000000
--- a/lib/cli/generators/VUE/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/vue';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/VUE/template-csf/.storybook/main.js b/lib/cli/generators/VUE/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..448921317f4
--- /dev/null
+++ b/lib/cli/generators/VUE/template-csf/.storybook/main.js
@@ -0,0 +1,4 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+};
diff --git a/lib/cli/generators/VUE/template-mdx/.storybook/addons.js b/lib/cli/generators/VUE/template-mdx/.storybook/addons.js
deleted file mode 100644
index 6aed412d04a..00000000000
--- a/lib/cli/generators/VUE/template-mdx/.storybook/addons.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import '@storybook/addon-actions/register';
-import '@storybook/addon-links/register';
diff --git a/lib/cli/generators/VUE/template-mdx/.storybook/config.js b/lib/cli/generators/VUE/template-mdx/.storybook/config.js
deleted file mode 100644
index f770a9332fd..00000000000
--- a/lib/cli/generators/VUE/template-mdx/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/vue';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.(js|mdx)$/), module);
diff --git a/lib/cli/generators/VUE/template-mdx/.storybook/main.js b/lib/cli/generators/VUE/template-mdx/.storybook/main.js
new file mode 100644
index 00000000000..78bc24049ae
--- /dev/null
+++ b/lib/cli/generators/VUE/template-mdx/.storybook/main.js
@@ -0,0 +1,5 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.(js|mdx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: ['@storybook/addon-docs/preset'],
+};
diff --git a/lib/cli/generators/VUE/template-mdx/.storybook/presets.js b/lib/cli/generators/VUE/template-mdx/.storybook/presets.js
deleted file mode 100644
index a04174c7a33..00000000000
--- a/lib/cli/generators/VUE/template-mdx/.storybook/presets.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = ['@storybook/addon-docs/preset'];
diff --git a/lib/cli/generators/WEB-COMPONENTS/index.js b/lib/cli/generators/WEB-COMPONENTS/index.js
index 52094627135..fbcd51d8176 100755
--- a/lib/cli/generators/WEB-COMPONENTS/index.js
+++ b/lib/cli/generators/WEB-COMPONENTS/index.js
@@ -8,10 +8,14 @@ import {
installDependencies,
} from '../../lib/helpers';
-export default async npmOptions => {
+export default async (npmOptions, { storyFormat = 'csf' }) => {
const storybookVersion = await getVersion(npmOptions, '@storybook/web-components');
fse.copySync(path.resolve(__dirname, 'template/'), '.', { overwrite: true });
+ if (storyFormat === 'mdx') {
+ // TODO: handle adding of docs mode
+ }
+
const packageJson = await retrievePackageJson();
packageJson.dependencies = packageJson.dependencies || {};
diff --git a/lib/cli/generators/WEB-COMPONENTS/template/.storybook/config.js b/lib/cli/generators/WEB-COMPONENTS/template/.storybook/config.js
deleted file mode 100644
index 055d4e30181..00000000000
--- a/lib/cli/generators/WEB-COMPONENTS/template/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/html';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/WEB-COMPONENTS/template/.storybook/main.js b/lib/cli/generators/WEB-COMPONENTS/template/.storybook/main.js
new file mode 100644
index 00000000000..77857c48de3
--- /dev/null
+++ b/lib/cli/generators/WEB-COMPONENTS/template/.storybook/main.js
@@ -0,0 +1,3 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+};
diff --git a/lib/cli/generators/WEB-COMPONENTS/template/.storybook/preview.js b/lib/cli/generators/WEB-COMPONENTS/template/.storybook/preview.js
new file mode 100644
index 00000000000..08bb9bc215d
--- /dev/null
+++ b/lib/cli/generators/WEB-COMPONENTS/template/.storybook/preview.js
@@ -0,0 +1,30 @@
+/* global window */
+
+import {
+ configure,
+ addParameters,
+ // setCustomElements,
+} from '@storybook/web-components';
+
+// import customElements from '../custom-elements.json';
+
+// setCustomElements(customElements);
+
+addParameters({
+ docs: {
+ iframeHeight: '200px',
+ },
+});
+
+// configure(require.context('../stories', true, /\.stories\.(js|mdx)$/), module);
+
+// force full reload to not reregister web components
+const req = require.context('../stories', true, /\.stories\.(js|mdx)$/);
+configure(req, module);
+if (module.hot) {
+ module.hot.accept(req.id, () => {
+ const currentLocationHref = window.location.href;
+ window.history.pushState(null, null, currentLocationHref);
+ window.location.reload();
+ });
+}
diff --git a/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/config.js b/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/config.js
deleted file mode 100644
index 0603ed51131..00000000000
--- a/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.js$/), module);
diff --git a/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/main.js b/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/main.js
new file mode 100644
index 00000000000..437d40a17c9
--- /dev/null
+++ b/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/main.js
@@ -0,0 +1,9 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.js'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ webpack: async config => {
+ // do mutation to the config
+
+ return config;
+ },
+};
diff --git a/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/webpack.config.js b/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/webpack.config.js
deleted file mode 100644
index e010e2f2b81..00000000000
--- a/lib/cli/generators/WEBPACK_REACT/template-csf/.storybook/webpack.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// you can use this file to add your custom webpack plugins, loaders and anything you like.
-// This is just the basic way to add additional webpack configurations.
-// For more information refer the docs: https://storybook.js.org/configurations/custom-webpack-config
-
-// IMPORTANT
-// When you add this file, we won't add the default configurations which is similar
-// to "React Create App". This only has babel loader to load JavaScript.
-
-module.exports = {
- plugins: [
- // your custom plugins
- ],
- module: {
- rules: [
- // add your custom rules.
- ],
- },
-};
diff --git a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/config.js b/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/config.js
deleted file mode 100644
index e178df98fe4..00000000000
--- a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { configure } from '@storybook/react';
-
-// automatically import all files ending in *.stories.js
-configure(require.context('../stories', true, /\.stories\.(js|mdx)$/), module);
diff --git a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/main.js b/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/main.js
new file mode 100644
index 00000000000..936fe48e798
--- /dev/null
+++ b/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/main.js
@@ -0,0 +1,15 @@
+module.exports = {
+ stories: ['../stories/**/*.stories.(js|mdx)'],
+ addons: ['@storybook/addon-actions/register', '@storybook/addon-links/register'],
+ presets: [
+ {
+ name: '@storybook/addon-docs/preset',
+ options: { configureJSX: true },
+ },
+ ],
+ webpack: async config => {
+ // do mutation to the config
+
+ return config;
+ },
+};
diff --git a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/presets.js b/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/presets.js
deleted file mode 100644
index 8c1b9d4e5ba..00000000000
--- a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/presets.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = [
- {
- name: '@storybook/addon-docs/preset',
- options: { configureJSX: true },
- },
-];
diff --git a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/webpack.config.js b/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/webpack.config.js
deleted file mode 100644
index e010e2f2b81..00000000000
--- a/lib/cli/generators/WEBPACK_REACT/template-mdx/.storybook/webpack.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// you can use this file to add your custom webpack plugins, loaders and anything you like.
-// This is just the basic way to add additional webpack configurations.
-// For more information refer the docs: https://storybook.js.org/configurations/custom-webpack-config
-
-// IMPORTANT
-// When you add this file, we won't add the default configurations which is similar
-// to "React Create App". This only has babel loader to load JavaScript.
-
-module.exports = {
- plugins: [
- // your custom plugins
- ],
- module: {
- rules: [
- // add your custom rules.
- ],
- },
-};
diff --git a/lib/cli/lib/detect.js b/lib/cli/lib/detect.js
index 0e2237404ae..bb8c5ad9535 100644
--- a/lib/cli/lib/detect.js
+++ b/lib/cli/lib/detect.js
@@ -83,6 +83,13 @@ function detectFramework(dependencies) {
return types.POLYMER;
}
+ if (
+ (dependencies.dependencies && dependencies.dependencies['lit-element']) ||
+ (dependencies.devDependencies && dependencies.devDependencies['lit-element'])
+ ) {
+ return types.WEB_COMPONENTS;
+ }
+
if (
(dependencies.dependencies && dependencies.dependencies.mithril) ||
(dependencies.devDependencies && dependencies.devDependencies.mithril)
diff --git a/lib/cli/lib/has_yarn.js b/lib/cli/lib/has_yarn.js
index 7aff347ae37..ce7bdd251d9 100644
--- a/lib/cli/lib/has_yarn.js
+++ b/lib/cli/lib/has_yarn.js
@@ -1,12 +1,15 @@
import { sync as spawnSync } from 'cross-spawn';
import path from 'path';
-import fs from 'fs';
+import findUp from 'find-up';
export default function hasYarn() {
const yarnAvailable = spawnSync('yarn', ['--version'], { silent: true });
const npmAvailable = spawnSync('npm', ['--version'], { silent: true });
- const yarnLockPath = path.resolve('yarn.lock');
- if ((fs.existsSync(yarnLockPath) || npmAvailable.status !== 0) && yarnAvailable.status === 0) {
+
+ const lockFile = findUp.sync(['yarn.lock', 'package-lock.json']);
+ const hasYarnLock = lockFile && path.basename(lockFile) === 'yarn.lock';
+
+ if (yarnAvailable.status === 0 && (hasYarnLock || npmAvailable.status !== 0)) {
return true;
}
return false;
diff --git a/lib/cli/lib/initiate.js b/lib/cli/lib/initiate.js
index 87eb2ce2889..a2ba31d55e8 100644
--- a/lib/cli/lib/initiate.js
+++ b/lib/cli/lib/initiate.js
@@ -25,6 +25,7 @@ import webpackReactGenerator from '../generators/WEBPACK_REACT';
import mithrilGenerator from '../generators/MITHRIL';
import markoGenerator from '../generators/MARKO';
import htmlGenerator from '../generators/HTML';
+import webComponentsGenerator from '../generators/WEB-COMPONENTS';
import riotGenerator from '../generators/RIOT';
import preactGenerator from '../generators/PREACT';
import svelteGenerator from '../generators/SVELTE';
@@ -172,6 +173,11 @@ const installStorybook = (projectType, options) => {
.then(commandLog('Adding storybook support to your "HTML" app'))
.then(end);
+ case types.WEB_COMPONENTS:
+ return webComponentsGenerator(npmOptions, generatorOptions)
+ .then(commandLog('Adding storybook support to your "web components" app'))
+ .then(end);
+
case types.RIOT:
return riotGenerator(npmOptions, generatorOptions)
.then(commandLog('Adding storybook support to your "riot.js" app'))
diff --git a/lib/cli/lib/project_types.js b/lib/cli/lib/project_types.js
index b605f349f9f..639e2620f6b 100644
--- a/lib/cli/lib/project_types.js
+++ b/lib/cli/lib/project_types.js
@@ -13,6 +13,7 @@ const projectTypes = {
ALREADY_HAS_STORYBOOK: 'ALREADY_HAS_STORYBOOK',
UPDATE_PACKAGE_ORGANIZATIONS: 'UPDATE_PACKAGE_ORGANIZATIONS',
POLYMER: 'POLYMER',
+ WEB_COMPONENTS: 'WEB_COMPONENTS',
MITHRIL: 'MITHRIL',
MARKO: 'MARKO',
HTML: 'HTML',
diff --git a/lib/cli/package.json b/lib/cli/package.json
index 8780c45cf49..2959c0797a4 100644
--- a/lib/cli/package.json
+++ b/lib/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
"keywords": [
"cli",
@@ -38,7 +38,7 @@
"dependencies": {
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
- "@storybook/codemod": "5.3.0-beta.16",
+ "@storybook/codemod": "5.3.0-rc.0",
"chalk": "^3.0.0",
"commander": "^4.0.1",
"core-js": "^3.0.1",
@@ -46,6 +46,7 @@
"didyoumean": "^1.2.1",
"envinfo": "^7.5.0",
"esm": "3.2.25",
+ "find-up": "^4.1.0",
"fs-extra": "^8.0.1",
"inquirer": "^7.0.0",
"jscodeshift": "^0.6.3",
@@ -57,35 +58,37 @@
"update-notifier": "^3.0.0"
},
"devDependencies": {
- "@storybook/addon-actions": "5.3.0-beta.16",
- "@storybook/addon-centered": "5.3.0-beta.16",
- "@storybook/addon-graphql": "5.3.0-beta.16",
- "@storybook/addon-info": "5.3.0-beta.16",
- "@storybook/addon-knobs": "5.3.0-beta.16",
- "@storybook/addon-links": "5.3.0-beta.16",
- "@storybook/addon-notes": "5.3.0-beta.16",
- "@storybook/addon-options": "5.3.0-beta.16",
- "@storybook/addon-storyshots": "5.3.0-beta.16",
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/angular": "5.3.0-beta.16",
- "@storybook/channel-postmessage": "5.3.0-beta.16",
- "@storybook/channel-websocket": "5.3.0-beta.16",
- "@storybook/channels": "5.3.0-beta.16",
- "@storybook/ember": "5.3.0-beta.16",
- "@storybook/html": "5.3.0-beta.16",
- "@storybook/marko": "5.3.0-beta.16",
- "@storybook/mithril": "5.3.0-beta.16",
- "@storybook/polymer": "5.3.0-beta.16",
- "@storybook/preact": "5.3.0-beta.16",
- "@storybook/rax": "5.3.0-beta.16",
- "@storybook/react": "5.3.0-beta.16",
- "@storybook/react-native": "5.3.0-beta.16",
- "@storybook/riot": "5.3.0-beta.16",
- "@storybook/svelte": "5.3.0-beta.16",
- "@storybook/ui": "5.3.0-beta.16",
- "@storybook/vue": "5.3.0-beta.16"
+ "@storybook/addon-actions": "5.3.0-rc.0",
+ "@storybook/addon-centered": "5.3.0-rc.0",
+ "@storybook/addon-graphql": "5.3.0-rc.0",
+ "@storybook/addon-info": "5.3.0-rc.0",
+ "@storybook/addon-knobs": "5.3.0-rc.0",
+ "@storybook/addon-links": "5.3.0-rc.0",
+ "@storybook/addon-notes": "5.3.0-rc.0",
+ "@storybook/addon-options": "5.3.0-rc.0",
+ "@storybook/addon-storyshots": "5.3.0-rc.0",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/angular": "5.3.0-rc.0",
+ "@storybook/channel-postmessage": "5.3.0-rc.0",
+ "@storybook/channel-websocket": "5.3.0-rc.0",
+ "@storybook/channels": "5.3.0-rc.0",
+ "@storybook/ember": "5.3.0-rc.0",
+ "@storybook/html": "5.3.0-rc.0",
+ "@storybook/marko": "5.3.0-rc.0",
+ "@storybook/mithril": "5.3.0-rc.0",
+ "@storybook/polymer": "5.3.0-rc.0",
+ "@storybook/preact": "5.3.0-rc.0",
+ "@storybook/rax": "5.3.0-rc.0",
+ "@storybook/react": "5.3.0-rc.0",
+ "@storybook/react-native": "5.3.0-rc.0",
+ "@storybook/riot": "5.3.0-rc.0",
+ "@storybook/svelte": "5.3.0-rc.0",
+ "@storybook/ui": "5.3.0-rc.0",
+ "@storybook/vue": "5.3.0-rc.0",
+ "@storybook/web-components": "5.3.0-rc.0"
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/client-api/package.json b/lib/client-api/package.json
index fb74550243d..43a5dfc513f 100644
--- a/lib/client-api/package.json
+++ b/lib/client-api/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/client-api",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Storybook Client API",
"keywords": [
"storybook"
@@ -27,12 +27,12 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/channel-postmessage": "5.3.0-beta.16",
- "@storybook/channels": "5.3.0-beta.16",
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/core-events": "5.3.0-beta.16",
- "@storybook/router": "5.3.0-beta.16",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/channel-postmessage": "5.3.0-rc.0",
+ "@storybook/channels": "5.3.0-rc.0",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/core-events": "5.3.0-rc.0",
+ "@storybook/csf": "0.0.1",
"core-js": "^3.0.1",
"eventemitter3": "^4.0.0",
"global": "^4.3.2",
@@ -46,5 +46,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/client-api/src/client_api.ts b/lib/client-api/src/client_api.ts
index 67ca6dc77f0..af2c9db0844 100644
--- a/lib/client-api/src/client_api.ts
+++ b/lib/client-api/src/client_api.ts
@@ -4,7 +4,7 @@ import isPlainObject from 'is-plain-object';
import { logger } from '@storybook/client-logger';
import addons, { StoryContext, StoryFn, Parameters } from '@storybook/addons';
import Events from '@storybook/core-events';
-import { toId } from '@storybook/router/utils';
+import { toId } from '@storybook/csf';
import mergeWith from 'lodash/mergeWith';
import isEqual from 'lodash/isEqual';
diff --git a/lib/client-api/src/hooks.ts b/lib/client-api/src/hooks.ts
index 3017db5d2af..05d6776031a 100644
--- a/lib/client-api/src/hooks.ts
+++ b/lib/client-api/src/hooks.ts
@@ -1,4 +1,7 @@
+import { ADDON_STATE_CHANGED, ADDON_STATE_SET } from '@storybook/core-events';
+
import {
+ addons,
HooksContext,
applyHooks,
useMemo,
@@ -25,3 +28,39 @@ export {
useStoryContext,
useParameter,
};
+
+export function useAddonState(addonId: string, defaultState?: S): [S, (s: S) => void] {
+ const channel = addons.getChannel();
+
+ const [lastValue] =
+ channel.last(`${ADDON_STATE_CHANGED}-manager-${addonId}`) ||
+ channel.last(`${ADDON_STATE_SET}-manager-${addonId}`) ||
+ [];
+
+ const [state, setState] = useState(lastValue || defaultState);
+
+ const allListeners = useMemo(
+ () => ({
+ [`${ADDON_STATE_CHANGED}-manager-${addonId}`]: (s: S) => setState(s),
+ [`${ADDON_STATE_SET}-manager-${addonId}`]: (s: S) => setState(s),
+ }),
+ [addonId]
+ );
+
+ const emit = useChannel(allListeners, [addonId]);
+
+ useEffect(() => {
+ // init
+ if (defaultState !== undefined && !lastValue) {
+ emit(`${ADDON_STATE_SET}-client-${addonId}`, defaultState);
+ }
+ }, [addonId]);
+
+ return [
+ state,
+ s => {
+ setState(s);
+ emit(`${ADDON_STATE_CHANGED}-client-${addonId}`, s);
+ },
+ ];
+}
diff --git a/lib/client-api/src/story_store.test.ts b/lib/client-api/src/story_store.test.ts
index 96baf327023..20c61f2893f 100644
--- a/lib/client-api/src/story_store.test.ts
+++ b/lib/client-api/src/story_store.test.ts
@@ -1,6 +1,7 @@
import createChannel from '@storybook/channel-postmessage';
-import { toId } from '@storybook/router/utils';
+import { toId } from '@storybook/csf';
import addons from '@storybook/addons';
+import Events from '@storybook/core-events';
import StoryStore from './story_store';
import { defaultDecorateStory } from './client_api';
@@ -39,7 +40,7 @@ describe('preview.story_store', () => {
const extracted = store.extract();
- // We need exact key ordering, even if in theory JS doesns't guarantee it
+ // We need exact key ordering, even if in theory JS doesn't guarantee it
expect(Object.keys(extracted)).toEqual(['a--1', 'a--2', 'b--1']);
// content of item should be correct
@@ -52,6 +53,80 @@ describe('preview.story_store', () => {
});
});
+ describe('storySort', () => {
+ it('sorts stories using given function', () => {
+ const parameters = {
+ options: {
+ // Test function does alphabetical ordering.
+ storySort: (a: any, b: any): number =>
+ a[1].kind === b[1].kind
+ ? 0
+ : a[1].id.localeCompare(b[1].id, undefined, { numeric: true }),
+ },
+ };
+ const store = new StoryStore({ channel });
+ store.addStory(...make('a/a', '1', () => 0, parameters));
+ store.addStory(...make('a/a', '2', () => 0, parameters));
+ store.addStory(...make('a/b', '1', () => 0, parameters));
+ store.addStory(...make('b/b1', '1', () => 0, parameters));
+ store.addStory(...make('b/b10', '1', () => 0, parameters));
+ store.addStory(...make('b/b9', '1', () => 0, parameters));
+ store.addStory(...make('c', '1', () => 0, parameters));
+
+ const extracted = store.extract();
+
+ expect(Object.keys(extracted)).toEqual([
+ 'a-a--1',
+ 'a-a--2',
+ 'a-b--1',
+ 'b-b1--1',
+ 'b-b9--1',
+ 'b-b10--1',
+ 'c--1',
+ ]);
+ });
+ });
+
+ describe('emitting behaviour', () => {
+ it('is syncronously emits STORY_RENDER if the channel is defined', async () => {
+ const onChannelRender = jest.fn();
+ const testChannel = createChannel({ page: 'preview' });
+ testChannel.on(Events.STORY_RENDER, onChannelRender);
+
+ const onStoreRender = jest.fn();
+ const store = new StoryStore({ channel: testChannel });
+ store.on(Events.STORY_RENDER, onStoreRender);
+
+ store.setSelection({ storyId: 'storyId', viewMode: 'viewMode' }, undefined);
+ expect(onChannelRender).toHaveBeenCalled();
+ expect(onStoreRender).not.toHaveBeenCalled();
+
+ onChannelRender.mockClear();
+ await new Promise(r => setTimeout(r, 10));
+ expect(onChannelRender).not.toHaveBeenCalled();
+ expect(onStoreRender).toHaveBeenCalled();
+ });
+
+ it('is asychronously emits STORY_RENDER if the channel is not yet defined', async () => {
+ const onChannelRender = jest.fn();
+ const testChannel = createChannel({ page: 'preview' });
+ testChannel.on(Events.STORY_RENDER, onChannelRender);
+
+ const onStoreRender = jest.fn();
+ const store = new StoryStore({ channel: undefined });
+ store.on(Events.STORY_RENDER, onStoreRender);
+
+ store.setSelection({ storyId: 'storyId', viewMode: 'viewMode' }, undefined);
+ expect(onChannelRender).not.toHaveBeenCalled();
+ expect(onStoreRender).not.toHaveBeenCalled();
+
+ store.setChannel(testChannel);
+ await new Promise(r => setTimeout(r, 10));
+ expect(onChannelRender).toHaveBeenCalled();
+ expect(onStoreRender).toHaveBeenCalled();
+ });
+ });
+
describe('dumpStoryBook', () => {
it('should return nothing when empty', () => {
const store = new StoryStore({ channel });
diff --git a/lib/client-api/src/story_store.ts b/lib/client-api/src/story_store.ts
index 9fe704f5bdc..d2ba13df81f 100644
--- a/lib/client-api/src/story_store.ts
+++ b/lib/client-api/src/story_store.ts
@@ -145,9 +145,16 @@ export default class StoryStore extends EventEmitter {
data === undefined ? this._selection : { storyId: data.storyId, viewMode: data.viewMode };
this._error = error === undefined ? this._error : error;
+ // Try and emit the STORY_RENDER event synchronously, but if the channel is not ready (RN),
+ // we'll try again later.
+ let isStarted = false;
+ if (this._channel) {
+ this._channel.emit(Events.STORY_RENDER);
+ isStarted = true;
+ }
+
setTimeout(() => {
- // preferred method to emit event.
- if (this._channel) {
+ if (this._channel && !isStarted) {
this._channel.emit(Events.STORY_RENDER);
}
diff --git a/lib/client-logger/package.json b/lib/client-logger/package.json
index 1e91fde54ee..8d367406fbf 100644
--- a/lib/client-logger/package.json
+++ b/lib/client-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "",
"keywords": [
"storybook"
@@ -31,5 +31,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/client-logger/tsconfig.json b/lib/client-logger/tsconfig.json
index 4894223ce82..e2c88041df6 100644
--- a/lib/client-logger/tsconfig.json
+++ b/lib/client-logger/tsconfig.json
@@ -1,7 +1,8 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
- "rootDir": "./src"
+ "rootDir": "./src",
+ "types": ["node"]
},
"include": ["src/**/*"],
"exclude": ["src/**/*.test.ts"]
diff --git a/lib/codemod/package.json b/lib/codemod/package.json
index 71cd6873820..b6786bac7c3 100644
--- a/lib/codemod/package.json
+++ b/lib/codemod/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "A collection of codemod scripts written with JSCodeshift",
"keywords": [
"storybook"
@@ -27,14 +27,14 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@hypnosphi/jscodeshift": "^0.6.4",
"@mdx-js/mdx": "^1.5.1",
- "@storybook/node-logger": "5.3.0-beta.16",
- "@storybook/router": "5.3.0-beta.16",
+ "@storybook/csf": "0.0.1",
+ "@storybook/node-logger": "5.3.0-rc.0",
"core-js": "^3.0.1",
"cross-spawn": "^7.0.0",
"globby": "^10.0.1",
"jest-specific-snapshot": "^2.0.0",
+ "jscodeshift": "^0.7.0",
"lodash": "^4.17.15",
"prettier": "^1.16.4",
"recast": "^0.16.1",
@@ -42,5 +42,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/codemod/src/transforms/__tests__/transforms.tests.js b/lib/codemod/src/transforms/__tests__/transforms.tests.js
index aa607a3c091..2ac56a0a385 100644
--- a/lib/codemod/src/transforms/__tests__/transforms.tests.js
+++ b/lib/codemod/src/transforms/__tests__/transforms.tests.js
@@ -1,8 +1,7 @@
import path from 'path';
import fs from 'fs';
import 'jest-specific-snapshot';
-// TODO move back to original 'jscodeshift' package as soon as https://github.com/facebook/jscodeshift/pull/297 is released
-import { applyTransform } from '@hypnosphi/jscodeshift/dist/testUtils';
+import { applyTransform } from 'jscodeshift/dist/testUtils';
jest.mock('@storybook/node-logger');
diff --git a/lib/codemod/src/transforms/csf-to-mdx.js b/lib/codemod/src/transforms/csf-to-mdx.js
index fffa371bfc7..020426e1ba3 100644
--- a/lib/codemod/src/transforms/csf-to-mdx.js
+++ b/lib/codemod/src/transforms/csf-to-mdx.js
@@ -1,18 +1,5 @@
import recast from 'recast';
-
-// FIXME: duplicate code from @storybook/core start.js
-function isExportStory(key, { includeStories, excludeStories }) {
- function matches(storyKey, arrayOrRegex) {
- if (Array.isArray(arrayOrRegex)) {
- return arrayOrRegex.includes(storyKey);
- }
- return storyKey.match(arrayOrRegex);
- }
- return (
- (!includeStories || matches(key, includeStories)) &&
- (!excludeStories || !matches(key, excludeStories))
- );
-}
+import { isExportStory } from '@storybook/csf';
function exportMdx(root, options) {
// eslint-disable-next-line no-underscore-dangle
diff --git a/lib/codemod/src/transforms/storiesof-to-csf.js b/lib/codemod/src/transforms/storiesof-to-csf.js
index 482cf6819a7..77e46900cdc 100644
--- a/lib/codemod/src/transforms/storiesof-to-csf.js
+++ b/lib/codemod/src/transforms/storiesof-to-csf.js
@@ -1,6 +1,6 @@
import prettier from 'prettier';
import { logger } from '@storybook/node-logger';
-import { storyNameFromExport } from '@storybook/router';
+import { storyNameFromExport } from '@storybook/csf';
import { sanitizeName } from '../lib/utils';
/**
diff --git a/lib/components/package.json b/lib/components/package.json
index 05c93e007bf..085aac4930c 100644
--- a/lib/components/package.json
+++ b/lib/components/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/components",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Core Storybook Components",
"keywords": [
"storybook"
@@ -27,8 +27,8 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/theming": "5.3.0-beta.16",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/theming": "5.3.0-rc.0",
"@types/react-syntax-highlighter": "11.0.2",
"@types/react-textarea-autosize": "^4.3.3",
"core-js": "^3.0.1",
@@ -60,5 +60,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/components/src/Button/Button.tsx b/lib/components/src/Button/Button.tsx
index d5ee1387457..e5ca2f38533 100644
--- a/lib/components/src/Button/Button.tsx
+++ b/lib/components/src/Button/Button.tsx
@@ -1,226 +1,7 @@
import React, { FunctionComponent, forwardRef } from 'react';
-import { styled, css } from '@storybook/theming';
+import { styled } from '@storybook/theming';
import { darken, lighten, rgba, transparentize } from 'polished';
-type ButtonWrapperProps = ButtonProps;
-
-const ButtonWrapper = styled.button`
- border: 0;
- border-radius: 3em;
- cursor: pointer;
- display: inline-block;
- overflow: hidden;
- padding: ${props => (props.small ? '10px 16px' : '13px 20px')};
- position: relative;
- text-align: center;
- text-decoration: none;
- transition: all 150ms ease-out;
- transform: translate3d(0,0,0);
- vertical-align: top;
- white-space: nowrap;
- user-select: none;
- opacity: 1;
- margin: 0;
- background: transparent;
-
-
- font-size: ${props =>
- props.small ? props.theme.typography.size.s1 : props.theme.typography.size.s2 - 1}px;
- font-weight: ${props => props.theme.typography.weight.bold};
- line-height: 1;
-
-
- svg {
- display: inline-block;
- height: ${props => (props.small ? '14' : '16')}px;
- width: ${props => (props.small ? '14' : '16')}px;
- vertical-align: top;
- margin-right: ${props => (props.small ? '4' : '6')}px;
- margin-top: ${props => (props.small ? '-1' : '-2')}px;
- margin-bottom: ${props => (props.small ? '-1' : '-2')}px;
-
- /* Necessary for js mouse events to not glitch out when hovering on svgs */
- pointer-events: none;
-
- path { fill: currentColor; }
- }
-
- ${props =>
- props.disabled &&
- css`
- cursor: not-allowed !important;
- opacity: 0.5;
- &:hover {
- transform: none;
- }
- `}
-
- ${props =>
- props.containsIcon &&
- css`
- svg {
- display: block;
- margin: 0;
- }
-
- ${props.small &&
- css`
- padding: 9px;
- `}
-
- ${!props.small &&
- css`
- padding: 12px;
- `}
- `}
-
- /* Colored button for primary CTAs */
- ${props =>
- props.primary &&
- css`
- background: ${props.theme.color.primary};
- color: ${props.theme.color.lightest};
-
- &:hover {
- background: ${darken(0.05, props.theme.color.primary)};
- }
- &:active {
- box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 3em inset;
- }
- &:focus {
- box-shadow: ${rgba(props.theme.color.primary, 0.4)} 0 1px 9px 2px;
- }
- &:focus:hover {
- box-shadow: ${rgba(props.theme.color.primary, 0.2)} 0 8px 18px 0px;
- }
- `}
-
-
- /* Colored button for secondary CTAs */
- ${props =>
- props.secondary &&
- css`
- background: ${props.theme.color.secondary};
- color: ${props.theme.color.lightest};
-
- &:hover {
- background: ${darken(0.05, props.theme.color.secondary)};
- }
- &:active {
- box-shadow: rgba(0, 0, 0, 0.1) 0 0 0 3em inset;
- }
- &:focus {
- box-shadow: ${rgba(props.theme.color.secondary, 0.4)} 0 1px 9px 2px;
- }
- &:focus:hover {
- box-shadow: ${rgba(props.theme.color.secondary, 0.2)} 0 8px 18px 0px;
- }
- `}
-
- /* Button for tertiary CTAs and forms that responds to theme */
- ${props =>
- props.tertiary &&
- css`
- background: ${props.theme.base === 'light'
- ? darken(0.02, props.theme.input.background)
- : lighten(0.02, props.theme.input.background)};
- color: ${props.theme.input.color};
- box-shadow: ${props.theme.input.border} 0 0 0 1px inset;
- border-radius: ${props.theme.input.borderRadius}px;
-
- &:hover {
- background: ${props.theme.base === 'light'
- ? darken(0.05, props.theme.input.background)
- : lighten(0.05, props.theme.input.background)};
- ${props.inForm
- ? ''
- : 'box-shadow: rgba(0,0,0,.2) 0 2px 6px 0, rgba(0,0,0,.1) 0 0 0 1px inset'}
- }
- &:active {
- background: ${props.theme.base === 'light'
- ? props.theme.input.background
- : props.theme.input.background};
- }
- &:focus {
- box-shadow: ${rgba(props.theme.color.secondary, 0.4)} 0 0 0 1px inset;
- }
- `}
-
- /* Button that's outlined */
- ${props =>
- props.outline &&
- css`
- box-shadow: ${transparentize(0.8, props.theme.color.defaultText)} 0 0 0 1px inset;
- color: ${transparentize(0.3, props.theme.color.defaultText)};
- background: transparent;
-
- &:hover {
- box-shadow: ${transparentize(0.5, props.theme.color.defaultText)} 0 0 0 1px inset;
- }
-
- &:active {
- box-shadow: ${transparentize(0.5, props.theme.color.defaultText)} 0 0 0 2px inset;
- color: ${transparentize(0, props.theme.color.defaultText)};
- }
-
- ${props.primary &&
- css`
- box-shadow: ${props.theme.color.primary} 0 0 0 1px inset;
- color: ${props.theme.color.primary};
-
- svg path {
- fill: ${props.theme.color.primary};
- }
-
- &:hover {
- box-shadow: ${props.theme.color.primary} 0 0 0 1px inset;
- background: transparent;
- }
-
- &:active {
- background: ${props.theme.color.primary};
- box-shadow: ${props.theme.color.primary} 0 0 0 1px inset;
- color: ${props.theme.color.lightest};
- }
- &:focus {
- box-shadow: ${props.theme.color.primary} 0 0 0 1px inset,
- ${rgba(props.theme.color.primary, 0.4)} 0 1px 9px 2px;
- }
- &:focus:hover {
- box-shadow: ${props.theme.color.primary} 0 0 0 1px inset,
- ${rgba(props.theme.color.primary, 0.2)} 0 8px 18px 0px;
- }
- `};
-
- ${props.secondary &&
- css`
- box-shadow: ${props.theme.color.secondary} 0 0 0 1px inset;
- color: ${props.theme.color.secondary};
-
- &:hover {
- box-shadow: ${props.theme.color.secondary} 0 0 0 1px inset;
- background: transparent;
- }
-
- &:active {
- background: ${props.theme.color.secondary};
- box-shadow: ${props.theme.color.secondary} 0 0 0 1px inset;
- color: ${props.theme.color.lightest};
- }
- &:focus {
- box-shadow: ${props.theme.color.secondary} 0 0 0 1px inset,
- ${rgba(props.theme.color.secondary, 0.4)} 0 1px 9px 2px;
- }
- &:focus:hover {
- box-shadow: ${props.theme.color.secondary} 0 0 0 1px inset,
- ${rgba(props.theme.color.secondary, 0.2)} 0 8px 18px 0px;
- }
- `};
- `}
-`;
-
-const ButtonLink = ButtonWrapper.withComponent('a');
-
export interface ButtonProps {
isLink?: boolean;
primary?: boolean;
@@ -233,6 +14,218 @@ export interface ButtonProps {
containsIcon?: boolean;
}
+type ButtonWrapperProps = ButtonProps;
+
+const ButtonWrapper = styled.button(
+ ({ small, theme }) => ({
+ border: 0,
+ borderRadius: '3em',
+ cursor: 'pointer',
+ display: 'inline-block',
+ overflow: 'hidden',
+ padding: small ? '10px 16px' : '13px 20px',
+ position: 'relative',
+ textAlign: 'center',
+ textDecoration: 'none',
+ transition: 'all 150ms ease-out',
+ transform: 'translate3d(0,0,0)',
+ verticalAlign: 'top',
+ whiteSpace: 'nowrap',
+ userSelect: 'none',
+ opacity: 1,
+ margin: 0,
+ background: 'transparent',
+
+ fontSize: `${small ? theme.typography.size.s1 : theme.typography.size.s2 - 1}px`,
+ fontWeight: theme.typography.weight.bold,
+ lineHeight: '1',
+
+ svg: {
+ display: 'inline-block',
+ height: small ? 14 : 16,
+ width: small ? 14 : 16,
+
+ verticalAlign: 'top',
+ marginRight: small ? 4 : 6,
+ marginTop: small ? -1 : -2,
+ marginBottom: small ? -1 : -2,
+
+ /* Necessary for js mouse events to not glitch out when hovering on svgs */
+ pointerEvents: 'none',
+
+ path: {
+ fill: 'currentColor }',
+ },
+ },
+ }),
+ ({ disabled }) =>
+ disabled
+ ? {
+ cursor: 'not-allowed !important',
+ opacity: 0.5,
+ '&:hover': {
+ transform: 'none',
+ },
+ }
+ : {},
+ ({ containsIcon, small }) =>
+ containsIcon
+ ? {
+ svg: {
+ display: 'block',
+ margin: 0,
+ },
+ ...(small ? { padding: 9 } : { padding: 12 }),
+ }
+ : {},
+ ({ theme, primary, secondary }) => {
+ let color;
+
+ if (primary) {
+ color = theme.color.primary;
+ }
+ if (secondary) {
+ color = theme.color.secondary;
+ }
+
+ return color
+ ? {
+ background: color,
+ color: theme.color.lightest,
+
+ '&:hover': {
+ background: darken(0.05, color),
+ },
+ '&:active': {
+ boxShadow: 'rgba(0, 0, 0, 0.1) 0 0 0 3em inset',
+ },
+ '&:focus': {
+ boxShadow: `${rgba(color, 0.4)} 0 1px 9px 2px`,
+ },
+ '&:focus:hover': {
+ boxShadow: `${rgba(color, 0.2)} 0 8px 18px 0px`,
+ },
+ }
+ : {};
+ },
+ ({ theme, tertiary, inForm }) =>
+ tertiary
+ ? {
+ background:
+ theme.base === 'light'
+ ? darken(0.02, theme.input.background)
+ : lighten(0.02, theme.input.background),
+ color: theme.input.color,
+ boxShadow: `${theme.input.border} 0 0 0 1px inset`,
+ borderRadius: theme.input.borderRadius,
+
+ '&:hover': {
+ background:
+ theme.base === 'light'
+ ? darken(0.05, theme.input.background)
+ : lighten(0.05, theme.input.background),
+ ...(inForm
+ ? {}
+ : {
+ boxShadow: 'rgba(0,0,0,.2) 0 2px 6px 0, rgba(0,0,0,.1) 0 0 0 1px inset',
+ }),
+ },
+ '&:active': {
+ background: theme.input.background,
+ },
+ '&:focus': {
+ boxShadow: `${rgba(theme.color.secondary, 0.4)} 0 0 0 1px inset`,
+ },
+ }
+ : {},
+ ({ theme, outline }) =>
+ outline
+ ? {
+ boxShadow: `${transparentize(0.8, theme.color.defaultText)} 0 0 0 1px inset`,
+ color: transparentize(0.3, theme.color.defaultText),
+ background: 'transparent',
+
+ '&:hover': {
+ boxShadow: `${transparentize(0.5, theme.color.defaultText)} 0 0 0 1px inset`,
+ },
+
+ '&:active': {
+ boxShadow: `${transparentize(0.5, theme.color.defaultText)} 0 0 0 2px inset`,
+ color: transparentize(0, theme.color.defaultText),
+ },
+ }
+ : {},
+ ({ theme, outline, primary }) => {
+ const color = theme.color.primary;
+
+ return outline && primary
+ ? {
+ boxShadow: `${color} 0 0 0 1px inset`,
+ color,
+
+ 'svg path': {
+ fill: color,
+ },
+
+ '&:hover': {
+ boxShadow: `${color} 0 0 0 1px inset`,
+ background: 'transparent',
+ },
+
+ '&:active': {
+ background: color,
+ boxShadow: `${color} 0 0 0 1px inset`,
+ color: theme.color.lightest,
+ },
+ '&:focus': {
+ boxShadow: `${color} 0 0 0 1px inset, ${rgba(color, 0.4)} 0 1px 9px 2px`,
+ },
+ '&:focus:hover': {
+ boxShadow: `${color} 0 0 0 1px inset, ${rgba(color, 0.2)} 0 8px 18px 0px`,
+ },
+ }
+ : {};
+ },
+ ({ theme, outline, primary, secondary }) => {
+ let color;
+ if (primary) {
+ color = theme.color.primary;
+ }
+ if (secondary) {
+ color = theme.color.secondary;
+ }
+ return outline && color
+ ? {
+ boxShadow: `${color} 0 0 0 1px inset`,
+ color,
+
+ 'svg path': {
+ fill: color,
+ },
+
+ '&:hover': {
+ boxShadow: `${color} 0 0 0 1px inset`,
+ background: 'transparent',
+ },
+
+ '&:active': {
+ background: color,
+ boxShadow: `${color} 0 0 0 1px inset`,
+ color: theme.color.lightest,
+ },
+ '&:focus': {
+ boxShadow: `${color} 0 0 0 1px inset, ${rgba(color, 0.4)} 0 1px 9px 2px`,
+ },
+ '&:focus:hover': {
+ boxShadow: `${color} 0 0 0 1px inset, ${rgba(color, 0.2)} 0 8px 18px 0px`,
+ },
+ }
+ : {};
+ }
+);
+
+const ButtonLink = ButtonWrapper.withComponent('a');
+
export const Button = Object.assign(
forwardRef(({ isLink, children, ...props }, ref) => {
if (isLink) {
diff --git a/lib/components/src/blocks/DocsPage.tsx b/lib/components/src/blocks/DocsPage.tsx
index d2d723ec431..e6897e7d23f 100644
--- a/lib/components/src/blocks/DocsPage.tsx
+++ b/lib/components/src/blocks/DocsPage.tsx
@@ -29,18 +29,15 @@ export const Subtitle = styled.h2<{}>(withReset, ({ theme }: { theme: Theme }) =
fontSize: theme.typography.size.s3,
lineHeight: '20px',
borderBottom: 'none',
- marginBottom: '15px',
+ marginBottom: 15,
[`@media (min-width: ${breakpoint}px)`]: {
fontSize: theme.typography.size.m1,
lineHeight: '28px',
- marginBottom: '24px',
+ marginBottom: 24,
},
- color:
- theme.base === 'light'
- ? transparentize(0.25, theme.color.defaultText)
- : transparentize(0.25, theme.color.defaultText),
+ color: transparentize(0.25, theme.color.defaultText),
}));
export const DocsContent = styled.div({
diff --git a/lib/components/src/blocks/EmptyBlock.tsx b/lib/components/src/blocks/EmptyBlock.tsx
index 39dba076bd2..39e117943ec 100644
--- a/lib/components/src/blocks/EmptyBlock.tsx
+++ b/lib/components/src/blocks/EmptyBlock.tsx
@@ -11,7 +11,7 @@ const Wrapper = styled.div<{}>(withReset, ({ theme }) => ({
fontSize: `${theme.typography.size.s2}px`,
alignItems: 'center',
justifyContent: 'center',
- padding: '20px',
+ padding: 20,
margin: '25px 0 40px',
color:
diff --git a/lib/components/src/blocks/PropsTable/PropJsDoc.tsx b/lib/components/src/blocks/PropsTable/PropJsDoc.tsx
index 0eae9a2f434..5dbb8e98818 100644
--- a/lib/components/src/blocks/PropsTable/PropJsDoc.tsx
+++ b/lib/components/src/blocks/PropsTable/PropJsDoc.tsx
@@ -27,8 +27,8 @@ export const Table = styled.table(({ theme }) => ({
},
// End escape
- marginTop: '0',
- marginBottom: '0',
+ marginTop: 0,
+ marginBottom: 0,
'th:first-of-type, td:first-of-type': {
paddingLeft: 0,
@@ -39,8 +39,8 @@ export const Table = styled.table(({ theme }) => ({
},
td: {
- paddingTop: '0',
- paddingBottom: '4px',
+ paddingTop: 0,
+ paddingBottom: 4,
'&:not(:first-of-type)': {
paddingLeft: 10,
diff --git a/lib/components/src/blocks/PropsTable/PropRow.tsx b/lib/components/src/blocks/PropsTable/PropRow.tsx
index 425b1d46298..83d45fb841e 100644
--- a/lib/components/src/blocks/PropsTable/PropRow.tsx
+++ b/lib/components/src/blocks/PropsTable/PropRow.tsx
@@ -23,7 +23,7 @@ const Required = styled.span(({ theme }) => ({
const Description = styled.div(({ theme }) => ({
'&&': {
p: {
- margin: '0',
+ margin: 0,
},
},
@@ -40,7 +40,7 @@ const Type = styled.div<{ hasDescription: boolean }>(({ theme, hasDescription })
theme.base === 'light'
? transparentize(0.1, theme.color.defaultText)
: transparentize(0.2, theme.color.defaultText),
- marginTop: hasDescription ? '4px' : '0',
+ marginTop: hasDescription ? 4 : 0,
}));
const TypeWithJsDoc = styled.div<{ hasDescription: boolean }>(({ theme, hasDescription }) => ({
@@ -48,8 +48,8 @@ const TypeWithJsDoc = styled.div<{ hasDescription: boolean }>(({ theme, hasDescr
theme.base === 'light'
? transparentize(0.1, theme.color.defaultText)
: transparentize(0.2, theme.color.defaultText),
- marginTop: hasDescription ? '12px' : '0',
- marginBottom: '12px',
+ marginTop: hasDescription ? 12 : 0,
+ marginBottom: 12,
}));
export const PropRow: FC = ({
diff --git a/lib/components/src/blocks/PropsTable/PropValue.tsx b/lib/components/src/blocks/PropsTable/PropValue.tsx
index 7c1c5705624..f86e8dec98b 100644
--- a/lib/components/src/blocks/PropsTable/PropValue.tsx
+++ b/lib/components/src/blocks/PropsTable/PropValue.tsx
@@ -36,9 +36,9 @@ const Expandable = styled.div<{}>(codeCommon, ({ theme }) => ({
const Detail = styled.div<{ width: string }>(({ theme, width }) => ({
width,
- minWidth: '200px',
- maxWidth: '800px',
- padding: '15px',
+ minWidth: 200,
+ maxWidth: 800,
+ padding: 15,
// Dont remove the mono fontFamily here even if it seem useless, this is used by the browser to calculate the length of a "ch" unit.
fontFamily: theme.typography.fonts.mono,
fontSize: theme.typography.size.s2 - 1,
@@ -54,7 +54,7 @@ const ArrowIcon = styled(Icons)({
height: 10,
width: 10,
minWidth: 10,
- marginLeft: '4px',
+ marginLeft: 4,
});
const EmptyProp = () => {
diff --git a/lib/components/src/blocks/PropsTable/PropsTable.tsx b/lib/components/src/blocks/PropsTable/PropsTable.tsx
index ca2ac324635..d2914eb3561 100644
--- a/lib/components/src/blocks/PropsTable/PropsTable.tsx
+++ b/lib/components/src/blocks/PropsTable/PropsTable.tsx
@@ -31,15 +31,15 @@ export const Table = styled.table<{}>(({ theme }) => ({
width: '100%',
// Margin collapse
- marginTop: '25px',
- marginBottom: '40px',
+ marginTop: 25,
+ marginBottom: 40,
'th:first-of-type, td:first-of-type': {
paddingLeft: 20,
},
'th:last-of-type, td:last-of-type': {
- paddingRight: '20px',
+ paddingRight: 20,
width: '20%',
},
@@ -67,7 +67,7 @@ export const Table = styled.table<{}>(({ theme }) => ({
},
'&:last-of-type': {
- paddingRight: '20px',
+ paddingRight: 20,
},
},
diff --git a/lib/components/src/blocks/Typeset.stories.tsx b/lib/components/src/blocks/Typeset.stories.tsx
index 39779e174e6..9945b12555c 100644
--- a/lib/components/src/blocks/Typeset.stories.tsx
+++ b/lib/components/src/blocks/Typeset.stories.tsx
@@ -8,9 +8,11 @@ export default {
const fontSizes = ['12px', '14px', '16px', '20px', '24px', '32px', '40px', '48px'];
const fontWeight = 900;
+const fontFamily = 'monospace';
export const withFontSizes = () => ;
export const withFontWeight = () => ;
+export const withFontFamily = () => ;
export const withWeightText = () => (
);
diff --git a/lib/components/src/blocks/Typeset.tsx b/lib/components/src/blocks/Typeset.tsx
index 4a9150695a2..d88c7d6791e 100644
--- a/lib/components/src/blocks/Typeset.tsx
+++ b/lib/components/src/blocks/Typeset.tsx
@@ -35,6 +35,7 @@ const Wrapper = styled.div<{}>(withReset, ({ theme }) => ({
}));
export interface TypesetProps {
+ fontFamily?: string;
fontSizes: string[];
fontWeight?: number;
sampleText?: string;
@@ -45,6 +46,7 @@ export interface TypesetProps {
* with different sizes and weights and configurable sample text.
*/
export const Typeset: FunctionComponent = ({
+ fontFamily,
fontSizes,
fontWeight,
sampleText,
@@ -56,6 +58,7 @@ export const Typeset: FunctionComponent = ({
(
{
'& svg': {
transition: 'all 200ms ease-out',
- opacity: '0',
- height: '12px',
- width: '12px',
+ opacity: 0,
+ height: 12,
+ width: 12,
margin: '3px 0',
verticalAlign: 'top',
- } as any,
+ },
'& path': {
fill: 'inherit',
},
diff --git a/lib/components/src/tooltip/Tooltip.stories.tsx b/lib/components/src/tooltip/Tooltip.stories.tsx
index 99cec614ec6..925cd6e5301 100644
--- a/lib/components/src/tooltip/Tooltip.stories.tsx
+++ b/lib/components/src/tooltip/Tooltip.stories.tsx
@@ -4,7 +4,7 @@ import { styled } from '@storybook/theming';
import { Tooltip } from './Tooltip';
// Popper would position the tooltip absolutely. We just need to make sure we are pos:rel
-const mockPopperProps = { style: { position: 'relative', top: '20px', left: '20px' } };
+const mockPopperProps = { style: { position: 'relative', top: 20, left: 20 } };
const Content = styled.div({
width: '100px',
diff --git a/lib/components/src/tooltip/WithTooltip.stories.tsx b/lib/components/src/tooltip/WithTooltip.stories.tsx
index eb1b05ca1b3..d73cbefb815 100644
--- a/lib/components/src/tooltip/WithTooltip.stories.tsx
+++ b/lib/components/src/tooltip/WithTooltip.stories.tsx
@@ -5,28 +5,28 @@ import { styled } from '@storybook/theming';
import { TooltipMessage } from './TooltipMessage';
import { WithToolTipState as WithTooltip } from './WithTooltip';
-const ViewPort = styled.div`
- height: 300px;
-`;
+const ViewPort = styled.div({
+ height: 300,
+});
-const BackgroundBox = styled.div`
- width: 500px;
- height: 500px;
- overflow-y: scroll;
- background: #eee;
- position: relative;
-`;
+const BackgroundBox = styled.div({
+ width: 500,
+ height: 500,
+ overflowY: 'scroll',
+ background: '#eee',
+ position: 'relative',
+});
-const Spacer = styled.div`
- height: 100px;
-`;
+const Spacer = styled.div({
+ height: 100,
+});
-const Trigger = styled.div`
- width: 200px;
- height: 100px;
- background-color: red;
- color: white;
-`;
+const Trigger = styled.div({
+ width: 200,
+ height: 100,
+ backgroundColor: 'red',
+ color: 'white',
+});
interface TooltipProps {
onHide?: () => void;
diff --git a/lib/components/src/typography/DocumentFormatting.tsx b/lib/components/src/typography/DocumentFormatting.tsx
index 778bb9e4056..6c136299e28 100644
--- a/lib/components/src/typography/DocumentFormatting.tsx
+++ b/lib/components/src/typography/DocumentFormatting.tsx
@@ -9,7 +9,7 @@ export const H1 = styled.h1<{}>(withReset, headerCommon, ({ theme }) => ({
export const H2 = styled.h2<{}>(withReset, headerCommon, ({ theme }) => ({
fontSize: `${theme.typography.size.m2}px`,
- paddingBottom: '4px',
+ paddingBottom: 4,
borderBottom: `1px solid ${theme.appBorderColor}`,
}));
@@ -87,28 +87,28 @@ export const A = styled(Link)<{}>(withReset, ({ theme }) => ({
fontSize: theme.typography.size.s2,
lineHeight: '24px',
- color: `${theme.color.secondary}`,
+ color: theme.color.secondary,
textDecoration: 'none',
'&.absent': {
color: '#cc0000',
},
'&.anchor': {
display: 'block',
- paddingLeft: '30px',
- marginLeft: '-30px',
+ paddingLeft: 30,
+ marginLeft: -30,
cursor: 'pointer',
position: 'absolute',
- top: '0',
- left: '0',
- bottom: '0',
+ top: 0,
+ left: 0,
+ bottom: 0,
},
}));
export const HR = styled.hr<{}>(({ theme }) => ({
border: '0 none',
borderTop: `1px solid ${theme.appBorderColor}`,
- height: '4px',
- padding: '0',
+ height: 4,
+ padding: 0,
}));
export const DL = styled.dl<{}>(withReset, {
@@ -151,7 +151,7 @@ export const Blockquote = styled.blockquote<{}>(withReset, withMargin, ({ theme
padding: '0 15px',
color: theme.color.dark,
'& > :first-of-type': {
- marginTop: '0',
+ marginTop: 0,
},
'& > :last-child': {
marginBottom: 0,
@@ -166,8 +166,8 @@ export const Table = styled.table<{}>(withReset, withMargin, ({ theme }) => ({
'& tr': {
borderTop: `1px solid ${theme.appBorderColor}`,
backgroundColor: 'white',
- margin: '0',
- padding: '0',
+ margin: 0,
+ padding: 0,
},
'& tr:nth-of-type(2n)': {
backgroundColor: `${theme.color.lighter}`,
@@ -176,20 +176,20 @@ export const Table = styled.table<{}>(withReset, withMargin, ({ theme }) => ({
fontWeight: 'bold',
border: `1px solid ${theme.appBorderColor}`,
textAlign: 'left',
- margin: '0',
+ margin: 0,
padding: '6px 13px',
},
'& tr td': {
border: `1px solid ${theme.appBorderColor}`,
textAlign: 'left',
- margin: '0',
+ margin: 0,
padding: '6px 13px',
},
'& tr th :first-of-type, & tr td :first-of-type': {
- marginTop: '0',
+ marginTop: 0,
},
'& tr th :last-child, & tr td :last-child': {
- marginBottom: '0',
+ marginBottom: 0,
},
}));
@@ -203,81 +203,85 @@ export const Span = styled.span<{}>(withReset, ({ theme }) => ({
'&.frame': {
display: 'block',
overflow: 'hidden',
- },
- '&.frame > span': {
- border: `1px solid ${theme.color.medium}`,
- display: 'block',
- float: 'left',
- overflow: 'hidden',
- margin: '13px 0 0',
- padding: '7px',
- width: 'auto',
- },
- '&.frame span img': {
- display: 'block',
- float: 'left',
- },
- '&.frame span span': {
- clear: 'both',
- color: theme.color.darkest,
- display: 'block',
- padding: '5px 0 0',
+
+ '& > span': {
+ border: `1px solid ${theme.color.medium}`,
+ display: 'block',
+ float: 'left',
+ overflow: 'hidden',
+ margin: '13px 0 0',
+ padding: 7,
+ width: 'auto',
+ },
+ '& span img': {
+ display: 'block',
+ float: 'left',
+ },
+ '& span span': {
+ clear: 'both',
+ color: theme.color.darkest,
+ display: 'block',
+ padding: '5px 0 0',
+ },
},
'&.align-center': {
display: 'block',
overflow: 'hidden',
clear: 'both',
- },
- '&.align-center > span': {
- display: 'block',
- overflow: 'hidden',
- margin: '13px auto 0',
- textAlign: 'center',
- },
- '&.align-center span img': {
- margin: '0 auto',
- textAlign: 'center',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px auto 0',
+ textAlign: 'center',
+ },
+ '& span img': {
+ margin: '0 auto',
+ textAlign: 'center',
+ },
},
'&.align-right': {
display: 'block',
overflow: 'hidden',
clear: 'both',
- },
- '&.align-right > span': {
- display: 'block',
- overflow: 'hidden',
- margin: '13px 0 0',
- textAlign: 'right',
- },
- '&.align-right span img': {
- margin: '0',
- textAlign: 'right',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px 0 0',
+ textAlign: 'right',
+ },
+ '& span img': {
+ margin: 0,
+ textAlign: 'right',
+ },
},
'&.float-left': {
display: 'block',
- marginRight: '13px',
+ marginRight: 13,
overflow: 'hidden',
float: 'left',
- },
- '&.float-left span': {
- margin: '13px 0 0',
+ '& span': {
+ margin: '13px 0 0',
+ },
},
'&.float-right': {
display: 'block',
- marginLeft: '13px',
+ marginLeft: 13,
overflow: 'hidden',
float: 'right',
- },
- '&.float-right > span': {
- display: 'block',
- overflow: 'hidden',
- margin: '13px auto 0',
- textAlign: 'right',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px auto 0',
+ textAlign: 'right',
+ },
},
}));
const listCommon: CSSObject = {
- paddingLeft: '30px',
+ paddingLeft: 30,
'& :first-of-type': {
marginTop: 0,
},
diff --git a/lib/components/src/typography/DocumentWrapper.tsx b/lib/components/src/typography/DocumentWrapper.tsx
index 7576d8a2271..2351bc3955d 100644
--- a/lib/components/src/typography/DocumentWrapper.tsx
+++ b/lib/components/src/typography/DocumentWrapper.tsx
@@ -1,442 +1,308 @@
-import { styled, css } from '@storybook/theming';
-
-export const DocumentWrapper = styled.div(
- ({ theme }) => css`
- /* Custom styles atop GitHub base theme (see below) */
- font-size: ${theme.typography.size.s2}px;
- line-height: 1.6;
-
- h1 {
- font-size: ${theme.typography.size.l1}px;
- font-weight: ${theme.typography.weight.black};
- }
-
- h2 {
- font-size: ${theme.typography.size.m2}px;
- border-bottom: 1px solid ${theme.appBorderColor};
- }
-
- h3 {
- font-size: ${theme.typography.size.m1}px;
- }
-
- h4 {
- font-size: ${theme.typography.size.s3}px;
- }
-
- h5 {
- font-size: ${theme.typography.size.s2}px;
- }
-
- h6 {
- font-size: ${theme.typography.size.s2}px;
- color: ${theme.color.dark};
- }
-
- /* Custom for SB SyntaxHighlighter */
-
- pre:not(.hljs) {
- background: transparent;
- border: none;
- border-radius: 0;
- padding: 0;
- margin: 0;
- }
-
- pre pre,
- pre.hljs {
- padding: 15px;
- margin: 0;
-
- white-space: pre-wrap;
- color: inherit;
-
- font-size: 13px;
- line-height: 19px;
-
- code {
- color: inherit;
- font-size: inherit;
- }
- }
-
- pre code {
- margin: 0;
- padding: 0;
- white-space: pre;
- border: none;
- background: transparent;
- }
-
- pre code,
- pre tt {
- background-color: transparent;
- border: none;
- }
-
- /* GitHub inspired Markdown styles loosely from https://gist.github.com/tuzz/3331384 */
-
- body > *:first-of-type {
- margin-top: 0 !important;
- }
-
- body > *:last-child {
- margin-bottom: 0 !important;
- }
-
- a {
- color: ${theme.color.secondary};
- text-decoration: none;
- }
-
- a.absent {
- color: #cc0000;
- }
-
- a.anchor {
- display: block;
- padding-left: 30px;
- margin-left: -30px;
- cursor: pointer;
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- margin: 20px 0 10px;
- padding: 0;
- cursor: text;
- position: relative;
- }
-
- h2:first-of-type,
- h1:first-of-type,
- h1:first-of-type + h2,
- h3:first-of-type,
- h4:first-of-type,
- h5:first-of-type,
- h6:first-of-type {
- margin-top: 0;
- padding-top: 0;
- }
-
- h1:hover a.anchor,
- h2:hover a.anchor,
- h3:hover a.anchor,
- h4:hover a.anchor,
- h5:hover a.anchor,
- h6:hover a.anchor {
- text-decoration: none;
- }
-
- h1 tt,
- h1 code {
- font-size: inherit;
- }
-
- h2 tt,
- h2 code {
- font-size: inherit;
- }
-
- h3 tt,
- h3 code {
- font-size: inherit;
- }
-
- h4 tt,
- h4 code {
- font-size: inherit;
- }
-
- h5 tt,
- h5 code {
- font-size: inherit;
- }
-
- h6 tt,
- h6 code {
- font-size: inherit;
- }
-
- p,
- blockquote,
- ul,
- ol,
- dl,
- li,
- table,
- pre {
- margin: 15px 0;
- }
-
- hr {
- border: 0 none;
- border-top: 1px solid ${theme.appBorderColor};
- height: 4px;
- padding: 0;
- }
-
- body > h2:first-of-type {
- margin-top: 0;
- padding-top: 0;
- }
-
- body > h1:first-of-type {
- margin-top: 0;
- padding-top: 0;
- }
-
- body > h1:first-of-type + h2 {
- margin-top: 0;
- padding-top: 0;
- }
-
- body > h3:first-of-type,
- body > h4:first-of-type,
- body > h5:first-of-type,
- body > h6:first-of-type {
- margin-top: 0;
- padding-top: 0;
- }
-
- a:first-of-type h1,
- a:first-of-type h2,
- a:first-of-type h3,
- a:first-of-type h4,
- a:first-of-type h5,
- a:first-of-type h6 {
- margin-top: 0;
- padding-top: 0;
- }
-
- h1 p,
- h2 p,
- h3 p,
- h4 p,
- h5 p,
- h6 p {
- margin-top: 0;
- }
-
- li p.first {
- display: inline-block;
- }
-
- ul,
- ol {
- padding-left: 30px;
- }
-
- ul :first-of-type,
- ol :first-of-type {
- margin-top: 0;
- }
-
- ul :last-child,
- ol :last-child {
- margin-bottom: 0;
- }
-
- dl {
- padding: 0;
- }
-
- dl dt {
- font-size: 14px;
- font-weight: bold;
- font-style: italic;
- padding: 0;
- margin: 15px 0 5px;
- }
-
- dl dt:first-of-type {
- padding: 0;
- }
-
- dl dt > :first-of-type {
- margin-top: 0;
- }
-
- dl dt > :last-child {
- margin-bottom: 0;
- }
-
- dl dd {
- margin: 0 0 15px;
- padding: 0 15px;
- }
-
- dl dd > :first-of-type {
- margin-top: 0;
- }
-
- dl dd > :last-child {
- margin-bottom: 0;
- }
-
- blockquote {
- border-left: 4px solid ${theme.color.medium};
- padding: 0 15px;
- color: ${theme.color.dark};
- }
-
- blockquote > :first-of-type {
- margin-top: 0;
- }
-
- blockquote > :last-child {
- margin-bottom: 0;
- }
-
- table {
- padding: 0;
- border-collapse: collapse;
- }
- table tr {
- border-top: 1px solid ${theme.appBorderColor};
- background-color: white;
- margin: 0;
- padding: 0;
- }
-
- table tr:nth-of-type(2n) {
- background-color: ${theme.color.lighter};
- }
-
- table tr th {
- font-weight: bold;
- border: 1px solid ${theme.appBorderColor};
- text-align: left;
- margin: 0;
- padding: 6px 13px;
- }
-
- table tr td {
- border: 1px solid ${theme.appBorderColor};
- text-align: left;
- margin: 0;
- padding: 6px 13px;
- }
-
- table tr th :first-of-type,
- table tr td :first-of-type {
- margin-top: 0;
- }
-
- table tr th :last-child,
- table tr td :last-child {
- margin-bottom: 0;
- }
-
- img {
- max-width: 100%;
- }
-
- span.frame {
- display: block;
- overflow: hidden;
- }
-
- span.frame > span {
- border: 1px solid ${theme.color.medium};
- display: block;
- float: left;
- overflow: hidden;
- margin: 13px 0 0;
- padding: 7px;
- width: auto;
- }
-
- span.frame span img {
- display: block;
- float: left;
- }
-
- span.frame span span {
- clear: both;
- color: ${theme.color.darkest};
- display: block;
- padding: 5px 0 0;
- }
-
- span.align-center {
- display: block;
- overflow: hidden;
- clear: both;
- }
-
- span.align-center > span {
- display: block;
- overflow: hidden;
- margin: 13px auto 0;
- text-align: center;
- }
-
- span.align-center span img {
- margin: 0 auto;
- text-align: center;
- }
-
- span.align-right {
- display: block;
- overflow: hidden;
- clear: both;
- }
-
- span.align-right > span {
- display: block;
- overflow: hidden;
- margin: 13px 0 0;
- text-align: right;
- }
-
- span.align-right span img {
- margin: 0;
- text-align: right;
- }
-
- span.float-left {
- display: block;
- margin-right: 13px;
- overflow: hidden;
- float: left;
- }
-
- span.float-left span {
- margin: 13px 0 0;
- }
-
- span.float-right {
- display: block;
- margin-left: 13px;
- overflow: hidden;
- float: right;
- }
-
- span.float-right > span {
- display: block;
- overflow: hidden;
- margin: 13px auto 0;
- text-align: right;
- }
-
- code,
- tt {
- margin: 0 2px;
- padding: 0 5px;
- white-space: nowrap;
- border: 1px solid ${theme.color.mediumlight};
- background-color: ${theme.color.lighter};
- border-radius: 3px;
- color: ${theme.base === 'dark' && theme.color.darkest};
- }
- `
-);
+import { styled } from '@storybook/theming';
+
+export const DocumentWrapper = styled.div<{}>(({ theme }) => ({
+ fontSize: `${theme.typography.size.s2}px`,
+ lineHeight: '1.6',
+
+ h1: {
+ fontSize: `${theme.typography.size.l1}px`,
+ fontWeight: theme.typography.weight.black,
+ },
+ h2: {
+ fontSize: `${theme.typography.size.m2}px`,
+ borderBottom: `1px solid ${theme.appBorderColor}`,
+ },
+ h3: {
+ fontSize: `${theme.typography.size.m1}px`,
+ },
+ h4: {
+ fontSize: `${theme.typography.size.s3}px`,
+ },
+ h5: {
+ fontSize: `${theme.typography.size.s2}px`,
+ },
+ h6: {
+ fontSize: `${theme.typography.size.s2}px`,
+ color: theme.color.dark,
+ },
+ 'pre:not(.hljs)': {
+ background: 'transparent',
+ border: 'none',
+ borderRadius: 0,
+ padding: 0,
+ margin: 0,
+ },
+ 'pre pre, pre.hljs': {
+ padding: 15,
+ margin: 0,
+ whiteSpace: 'pre-wrap',
+ color: 'inherit',
+ fontSize: '13px',
+ lineHeight: '19px',
+ },
+ 'pre pre code, pre.hljs code': {
+ color: 'inherit',
+ fontSize: 'inherit',
+ },
+ 'pre code': {
+ margin: 0,
+ padding: 0,
+ whiteSpace: 'pre',
+ border: 'none',
+ background: 'transparent',
+ },
+ 'pre code, pre tt': {
+ backgroundColor: 'transparent',
+ border: 'none',
+ },
+ /* GitHub inspired Markdown styles loosely from https://gist.github.com/tuzz/3331384 */
+ 'body > *:first-of-type': {
+ marginTop: '0 !important',
+ },
+ 'body > *:last-child': {
+ marginBottom: '0 !important',
+ },
+ a: {
+ color: theme.color.secondary,
+ textDecoration: 'none',
+ },
+ 'a.absent': {
+ color: '#cc0000',
+ },
+ 'a.anchor': {
+ display: 'block',
+ paddingLeft: 30,
+ marginLeft: -30,
+ cursor: 'pointer',
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ bottom: 0,
+ },
+ 'h1, h2, h3, h4, h5, h6': {
+ margin: '20px 0 10px',
+ padding: 0,
+ cursor: 'text',
+ position: 'relative',
+
+ '&:first-of-type': {
+ marginTop: 0,
+ paddingTop: 0,
+ },
+ '&:hover a.anchor': {
+ textDecoration: 'none',
+ },
+ '& tt, & code': {
+ fontSize: 'inherit',
+ },
+ },
+ 'h1:first-of-type + h2': {
+ marginTop: 0,
+ paddingTop: 0,
+ },
+ 'p, blockquote, ul, ol, dl, li, table, pre': {
+ margin: '15px 0',
+ },
+ hr: {
+ border: '0 none',
+ borderTop: `1px solid ${theme.appBorderColor}`,
+ height: 4,
+ padding: 0,
+ },
+ 'body > h1:first-of-type, body > h2:first-of-type, body > h3:first-of-type, body > h4:first-of-type, body > h5:first-of-type, body > h6:first-of-type': {
+ marginTop: 0,
+ paddingTop: 0,
+ },
+ 'body > h1:first-of-type + h2': {
+ marginTop: 0,
+ paddingTop: 0,
+ },
+ 'a:first-of-type h1, a:first-of-type h2, a:first-of-type h3, a:first-of-type h4, a:first-of-type h5, a:first-of-type h6': {
+ marginTop: 0,
+ paddingTop: 0,
+ },
+ 'h1 p, h2 p, h3 p, h4 p, h5 p, h6 p': {
+ marginTop: 0,
+ },
+ 'li p.first': {
+ display: 'inline-block',
+ },
+ 'ul, ol': {
+ paddingLeft: 30,
+
+ '& :first-of-type': {
+ marginTop: 0,
+ },
+ '& :last-child': {
+ marginBottom: 0,
+ },
+ },
+ dl: {
+ padding: 0,
+ },
+
+ 'dl dt': {
+ fontSize: '14px',
+ fontWeight: 'bold',
+ fontStyle: 'italic',
+ margin: '0 0 15px',
+ padding: '0 15px',
+
+ '&:first-of-type': {
+ padding: 0,
+ },
+ '& > :first-of-type': {
+ marginTop: 0,
+ },
+ '& > :last-child': {
+ marginBottom: 0,
+ },
+ },
+
+ blockquote: {
+ borderLeft: `4px solid ${theme.color.medium}`,
+ padding: '0 15px',
+ color: theme.color.dark,
+
+ '& > :first-of-type': {
+ marginTop: 0,
+ },
+
+ '& > :last-child': {
+ marginBottom: 0,
+ },
+ },
+
+ table: {
+ padding: 0,
+ borderCollapse: 'collapse',
+
+ '& tr': {
+ borderTop: `1px solid ${theme.appBorderColor}`,
+ backgroundColor: 'white',
+ margin: 0,
+ padding: 0,
+
+ '& th': {
+ fontWeight: 'bold',
+ border: `1px solid ${theme.appBorderColor}`,
+ textAlign: 'left',
+ margin: 0,
+ padding: '6px 13px',
+ },
+
+ '& td': {
+ border: `1px solid ${theme.appBorderColor}`,
+ textAlign: 'left',
+ margin: 0,
+ padding: '6px 13px',
+ },
+ '&:nth-of-type(2n)': {
+ backgroundColor: theme.color.lighter,
+ },
+
+ '& th :first-of-type, & td :first-of-type': {
+ marginTop: 0,
+ },
+ '& th :last-child, & td :last-child': {
+ marginBottom: 0,
+ },
+ },
+ },
+ img: {
+ maxWidth: '100%',
+ },
+ 'span.frame': {
+ display: 'block',
+ overflow: 'hidden',
+
+ '& > span': {
+ border: `1px solid ${theme.color.medium}`,
+ display: 'block',
+ float: 'left',
+ overflow: 'hidden',
+ margin: '13px 0 0',
+ padding: 7,
+ width: 'auto',
+ },
+
+ '& span img': {
+ display: 'block',
+ float: 'left',
+ },
+
+ '& span span': {
+ clear: 'both',
+ color: theme.color.darkest,
+ display: 'block',
+ padding: '5px 0 0',
+ },
+ },
+ 'span.align-center': {
+ display: 'block',
+ overflow: 'hidden',
+ clear: 'both',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px auto 0',
+ textAlign: 'center',
+ },
+ '& span img': {
+ margin: '0 auto',
+ textAlign: 'center',
+ },
+ },
+ 'span.align-right': {
+ display: 'block',
+ overflow: 'hidden',
+ clear: 'both',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px 0 0',
+ textAlign: 'right',
+ },
+
+ '& span img': {
+ margin: 0,
+ textAlign: 'right',
+ },
+ },
+
+ 'span.float-left': {
+ display: 'block',
+ marginRight: 13,
+ overflow: 'hidden',
+ float: 'left',
+
+ '& span': {
+ margin: '13px 0 0',
+ },
+ },
+
+ 'span.float-right': {
+ display: 'block',
+ marginLeft: 13,
+ overflow: 'hidden',
+ float: 'right',
+
+ '& > span': {
+ display: 'block',
+ overflow: 'hidden',
+ margin: '13px auto 0',
+ textAlign: 'right',
+ },
+ },
+ 'code, tt': {
+ margin: '0 2px',
+ padding: '0 5px',
+ whiteSpace: 'nowrap',
+ border: `1px solid ${theme.color.mediumlight}`,
+ backgroundColor: theme.color.lighter,
+ borderRadius: 3,
+ color: theme.base === 'dark' && theme.color.darkest,
+ },
+}));
diff --git a/lib/components/src/typography/link/link.tsx b/lib/components/src/typography/link/link.tsx
index c37e9ebba94..2c5ff953e59 100644
--- a/lib/components/src/typography/link/link.tsx
+++ b/lib/components/src/typography/link/link.tsx
@@ -1,10 +1,10 @@
import React, { AnchorHTMLAttributes, FunctionComponent, MouseEvent } from 'react';
-import { styled, css, Theme } from '@storybook/theming';
+import { styled } from '@storybook/theming';
import { darken } from 'polished';
import { Icons } from '../../icon/icon';
-// Cmd/Ctrl/Shift/Alt + Click should trigger default browser behaviour. Same applies to non-left clicks
+// Cmd/Ctrl/Shift/Alt + Click should trigger default browser behavior. Same applies to non-left clicks
const LEFT_BUTTON = 0;
const isPlainLeftClick = (e: MouseEvent) =>
@@ -25,166 +25,155 @@ export interface LinkStylesProps {
isButton?: boolean;
}
-const linkStyles = (props: LinkStylesProps & { theme: Theme }) => css`
- display: inline-block;
- transition: all 150ms ease-out;
- text-decoration: none;
-
- color: ${props.theme.color.secondary};
- svg path {
- fill: ${props.theme.color.secondary};
- }
-
- &:hover,
- &:focus {
- cursor: pointer;
- color: ${darken(0.07, props.theme.color.secondary)};
- svg path {
- fill: ${darken(0.07, props.theme.color.secondary)};
- }
- }
- &:active {
- color: ${darken(0.1, props.theme.color.secondary)};
- svg path {
- fill: ${darken(0.1, props.theme.color.secondary)};
- }
- }
-
- svg {
- display: inline-block;
- height: 1em;
- width: 1em;
- vertical-align: text-top;
- position: relative;
- bottom: -0.125em;
- margin-right: 0.4em;
- }
-
- ${props.secondary &&
- css`
- color: ${props.theme.color.mediumdark};
- svg path {
- fill: ${props.theme.color.mediumdark};
- }
-
- &:hover {
- color: ${props.theme.color.dark};
- svg path {
- fill: ${props.theme.color.dark};
- }
- }
-
- &:active {
- color: ${props.theme.color.darker};
- svg path {
- fill: ${props.theme.color.darker};
- }
- }
- `};
-
- ${props.tertiary &&
- css`
- color: ${props.theme.color.dark};
- svg path {
- fill: ${props.theme.color.dark};
- }
-
- &:hover {
- color: ${props.theme.color.darkest};
- svg path {
- fill: ${props.theme.color.darkest};
- }
- }
-
- &:active {
- color: ${props.theme.color.mediumdark};
- svg path {
- fill: ${props.theme.color.mediumdark};
- }
- }
- `};
-
- ${props.nochrome &&
- css`
- color: inherit;
-
- &:hover,
- &:active {
- color: inherit;
- text-decoration: underline;
- }
- `};
-
- ${props.inverse &&
- css`
- color: ${props.theme.color.lightest};
- svg path {
- fill: ${props.theme.color.lightest};
- }
-
- &:hover {
- color: ${props.theme.color.lighter};
- svg path {
- fill: ${props.theme.color.lighter};
- }
- }
-
- &:active {
- color: ${props.theme.color.light};
- svg path {
- fill: ${props.theme.color.light};
- }
- }
- `};
-
- ${props.isButton &&
- css`
- border: 0;
- border-radius: 0;
- background: none;
- padding: 0;
- font-size: inherit;
- `};
-`;
-
export interface LinkInnerProps {
withArrow?: boolean;
containsIcon?: boolean;
}
-const LinkInner = styled.span`
- ${(props: LinkInnerProps) =>
- props.withArrow &&
- css`
- > svg:last-of-type {
- height: 0.7em;
- width: 0.7em;
- margin-right: 0;
- margin-left: 0.25em;
- bottom: auto;
- vertical-align: inherit;
- }
- `};
-
- ${props =>
- props.containsIcon &&
- css`
- svg {
- height: 1em;
- width: 1em;
- vertical-align: middle;
- position: relative;
- bottom: 0;
- margin-right: 0;
- }
- `};
-`;
+const LinkInner = styled.span(
+ ({ withArrow }) =>
+ withArrow
+ ? {
+ '> svg:last-of-type': {
+ height: '0.7em',
+ width: '0.7em',
+ marginRight: 0,
+ marginLeft: '0.25em',
+ bottom: 'auto',
+ verticalAlign: 'inherit',
+ },
+ }
+ : {},
+ ({ containsIcon }) =>
+ containsIcon
+ ? {
+ svg: {
+ height: '1em',
+ width: '1em',
+ verticalAlign: 'middle',
+ position: 'relative',
+ bottom: 0,
+ marginRight: 0,
+ },
+ }
+ : {}
+);
type AProps = AnchorHTMLAttributes;
-const A = styled.a`
- ${linkStyles};
-`;
+const A = styled.a(
+ ({ theme }) => ({
+ display: 'inline-block',
+ transition: 'all 150ms ease-out',
+ textDecoration: 'none',
+
+ color: theme.color.secondary,
+
+ '&:hover, &:focus': {
+ cursor: 'pointer',
+ color: darken(0.07, theme.color.secondary),
+ 'svg path': {
+ fill: darken(0.07, theme.color.secondary),
+ },
+ },
+ '&:active': {
+ color: darken(0.1, theme.color.secondary),
+ 'svg path': {
+ fill: darken(0.1, theme.color.secondary),
+ },
+ },
+
+ svg: {
+ display: 'inline-block',
+ height: '1em',
+ width: '1em',
+ verticalAlign: 'text-top',
+ position: 'relative',
+ bottom: '-0.125em',
+ marginRight: '0.4em',
+
+ '& path': {
+ fill: theme.color.secondary,
+ },
+ },
+ }),
+ ({ theme, secondary, tertiary }) => {
+ let colors;
+ if (secondary) {
+ colors = [theme.color.mediumdark, theme.color.dark, theme.color.darker];
+ }
+ if (tertiary) {
+ colors = [theme.color.dark, theme.color.darkest, theme.color.mediumdark];
+ }
+
+ return colors
+ ? {
+ color: colors[0],
+ 'svg path': {
+ fill: colors[0],
+ },
+
+ '&:hover': {
+ color: colors[1],
+ 'svg path': {
+ fill: colors[1],
+ },
+ },
+
+ '&:active': {
+ color: colors[2],
+ 'svg path': {
+ fill: colors[2],
+ },
+ },
+ }
+ : {};
+ },
+ ({ nochrome }) =>
+ nochrome
+ ? {
+ color: 'inherit',
+
+ '&:hover, &:active': {
+ color: 'inherit',
+ textDecoration: 'underline',
+ },
+ }
+ : {},
+ ({ theme, inverse }) =>
+ inverse
+ ? {
+ color: theme.color.lightest,
+ 'svg path': {
+ fill: theme.color.lightest,
+ },
+
+ '&:hover': {
+ color: theme.color.lighter,
+ 'svg path': {
+ fill: theme.color.lighter,
+ },
+ },
+
+ '&:active': {
+ color: theme.color.light,
+ 'svg path': {
+ fill: theme.color.light,
+ },
+ },
+ }
+ : {},
+ ({ isButton }) =>
+ isButton
+ ? {
+ border: 0,
+ borderRadius: 0,
+ background: 'none',
+ padding: 0,
+ fontSize: 'inherit',
+ }
+ : {}
+);
export interface LinkProps extends LinkInnerProps, LinkStylesProps {
cancel?: boolean;
diff --git a/lib/components/src/typography/shared.tsx b/lib/components/src/typography/shared.tsx
index 0ec259df0a5..4ff39c0bf94 100644
--- a/lib/components/src/typography/shared.tsx
+++ b/lib/components/src/typography/shared.tsx
@@ -25,11 +25,9 @@ export const codeCommon = ({ theme }: { theme: Theme }): CSSObject => ({
padding: '3px 5px',
whiteSpace: 'nowrap',
- borderRadius: '3px',
+ borderRadius: 3,
fontSize: theme.typography.size.s2 - 1,
- // color: theme.base === 'dark' && theme.color.darkest,
-
border:
theme.base === 'light'
? `1px solid ${theme.color.mediumlight}`
diff --git a/lib/core-events/package.json b/lib/core-events/package.json
index c8f136fcbec..2918de45a9c 100644
--- a/lib/core-events/package.json
+++ b/lib/core-events/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Event names used in storybook core",
"keywords": [
"storybook"
@@ -31,5 +31,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/core-events/src/index.ts b/lib/core-events/src/index.ts
index 843a920b805..1b776491d7e 100644
--- a/lib/core-events/src/index.ts
+++ b/lib/core-events/src/index.ts
@@ -21,6 +21,8 @@ enum events {
STORIES_COLLAPSE_ALL = 'storiesCollapseAll',
STORIES_EXPAND_ALL = 'storiesExpandAll',
DOCS_RENDERED = 'docsRendered',
+ ADDON_STATE_CHANGED = 'addonStateChanged',
+ ADDON_STATE_SET = 'addonStateSet',
}
// Enables: `import Events from ...`
@@ -50,4 +52,6 @@ export const {
STORIES_EXPAND_ALL,
STORY_THREW_EXCEPTION,
DOCS_RENDERED,
+ ADDON_STATE_CHANGED,
+ ADDON_STATE_SET,
} = events;
diff --git a/lib/core/package.json b/lib/core/package.json
index 56e17007e51..61c7a752703 100644
--- a/lib/core/package.json
+++ b/lib/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/core",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@@ -32,15 +32,16 @@
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-transform-react-constant-elements": "^7.2.0",
"@babel/preset-env": "^7.4.5",
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/channel-postmessage": "5.3.0-beta.16",
- "@storybook/client-api": "5.3.0-beta.16",
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/core-events": "5.3.0-beta.16",
- "@storybook/node-logger": "5.3.0-beta.16",
- "@storybook/router": "5.3.0-beta.16",
- "@storybook/theming": "5.3.0-beta.16",
- "@storybook/ui": "5.3.0-beta.16",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/channel-postmessage": "5.3.0-rc.0",
+ "@storybook/client-api": "5.3.0-rc.0",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/core-events": "5.3.0-rc.0",
+ "@storybook/csf": "0.0.1",
+ "@storybook/node-logger": "5.3.0-rc.0",
+ "@storybook/router": "5.3.0-rc.0",
+ "@storybook/theming": "5.3.0-rc.0",
+ "@storybook/ui": "5.3.0-rc.0",
"airbnb-js-shims": "^2.2.1",
"ansi-to-html": "^0.6.11",
"autoprefixer": "^9.7.2",
@@ -111,5 +112,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/core/src/client/preview/NoDocs.js b/lib/core/src/client/preview/NoDocs.js
index 9394b8b4e4d..b9a57da4fc8 100644
--- a/lib/core/src/client/preview/NoDocs.js
+++ b/lib/core/src/client/preview/NoDocs.js
@@ -8,8 +8,8 @@ const wrapper = {
const main = {
margin: 'auto',
- padding: '30px',
- borderRadius: '10px',
+ padding: 30,
+ borderRadius: 10,
background: 'rgba(0,0,0,0.03)',
};
diff --git a/lib/core/src/client/preview/index.js b/lib/core/src/client/preview/index.js
index 5fd9ec35687..0197cec7d3b 100644
--- a/lib/core/src/client/preview/index.js
+++ b/lib/core/src/client/preview/index.js
@@ -1,5 +1,5 @@
import { ClientApi, StoryStore, ConfigApi } from '@storybook/client-api';
-import { toId } from '@storybook/router/utils';
+import { toId } from '@storybook/csf';
import start from './start';
export default {
diff --git a/lib/core/src/client/preview/start.js b/lib/core/src/client/preview/start.js
index 9318203dae5..cee43477545 100644
--- a/lib/core/src/client/preview/start.js
+++ b/lib/core/src/client/preview/start.js
@@ -7,7 +7,7 @@ import AnsiToHtml from 'ansi-to-html';
import addons from '@storybook/addons';
import createChannel from '@storybook/channel-postmessage';
import { ClientApi, StoryStore, ConfigApi } from '@storybook/client-api';
-import { toId, storyNameFromExport } from '@storybook/router/utils';
+import { toId, storyNameFromExport, isExportStory } from '@storybook/csf';
import { logger } from '@storybook/client-logger';
import Events from '@storybook/core-events';
@@ -24,22 +24,6 @@ const classes = {
ERROR: 'sb-show-errordisplay',
};
-function matches(storyKey, arrayOrRegex) {
- if (Array.isArray(arrayOrRegex)) {
- return arrayOrRegex.includes(storyKey);
- }
- return storyKey.match(arrayOrRegex);
-}
-
-export function isExportStory(key, { includeStories, excludeStories }) {
- return (
- // https://babeljs.io/docs/en/babel-plugin-transform-modules-commonjs
- key !== '__esModule' &&
- (!includeStories || matches(key, includeStories)) &&
- (!excludeStories || !matches(key, excludeStories))
- );
-}
-
function showMain() {
document.body.classList.remove(classes.NOPREVIEW);
document.body.classList.remove(classes.ERROR);
@@ -194,7 +178,7 @@ export default function start(render, { decorateStory } = {}) {
return;
}
- if (!forceRender && previousKind && previousStory) {
+ if (!forceRender && previousKind && previousStory && revision === previousRevision) {
addons.getChannel().emit(Events.STORY_CHANGED, id);
}
@@ -395,7 +379,10 @@ export default function start(render, { decorateStory } = {}) {
);
}
- const { default: meta, ...exports } = fileExports;
+ const { default: meta, __orderedExports, ...namedExports } = fileExports;
+ // prefer a user/loader provided `__orderedExports` object if supplied as es module exports
+ // are ordered alphabetically - see https://github.com/storybookjs/storybook/issues/9136
+ const exports = __orderedExports || namedExports;
const {
title: kindName,
id: componentId,
diff --git a/lib/core/src/client/preview/start.test.js b/lib/core/src/client/preview/start.test.js
index 4b64ec026b4..bf56348e50f 100644
--- a/lib/core/src/client/preview/start.test.js
+++ b/lib/core/src/client/preview/start.test.js
@@ -2,7 +2,7 @@
import { history, document, window } from 'global';
import Events from '@storybook/core-events';
-import start, { isExportStory } from './start';
+import start from './start';
jest.mock('@storybook/client-logger');
jest.mock('global', () => ({
@@ -143,41 +143,3 @@ describe('STORY_INIT', () => {
expect(store.setSelection).toHaveBeenCalledWith({ storyId: 'kind--story' });
});
});
-
-describe('story filters for module exports', () => {
- it('should exclude __esModule', () => {
- expect(isExportStory('__esModule', {})).toBeFalsy();
- });
-
- it('should include all stories when there are no filters', () => {
- expect(isExportStory('a', {})).toBeTruthy();
- });
-
- it('should filter stories by arrays', () => {
- expect(isExportStory('a', { includeStories: ['a'] })).toBeTruthy();
- expect(isExportStory('a', { includeStories: [] })).toBeFalsy();
- expect(isExportStory('a', { includeStories: ['b'] })).toBeFalsy();
-
- expect(isExportStory('a', { excludeStories: ['a'] })).toBeFalsy();
- expect(isExportStory('a', { excludeStories: [] })).toBeTruthy();
- expect(isExportStory('a', { excludeStories: ['b'] })).toBeTruthy();
-
- expect(isExportStory('a', { includeStories: ['a'], excludeStories: ['a'] })).toBeFalsy();
- expect(isExportStory('a', { includeStories: [], excludeStories: [] })).toBeFalsy();
- expect(isExportStory('a', { includeStories: ['a'], excludeStories: ['b'] })).toBeTruthy();
- });
-
- it('should filter stories by regex', () => {
- expect(isExportStory('a', { includeStories: /a/ })).toBeTruthy();
- expect(isExportStory('a', { includeStories: /.*/ })).toBeTruthy();
- expect(isExportStory('a', { includeStories: /b/ })).toBeFalsy();
-
- expect(isExportStory('a', { excludeStories: /a/ })).toBeFalsy();
- expect(isExportStory('a', { excludeStories: /.*/ })).toBeFalsy();
- expect(isExportStory('a', { excludeStories: /b/ })).toBeTruthy();
-
- expect(isExportStory('a', { includeStories: /a/, excludeStories: ['a'] })).toBeFalsy();
- expect(isExportStory('a', { includeStories: /.*/, excludeStories: /.*/ })).toBeFalsy();
- expect(isExportStory('a', { includeStories: /a/, excludeStories: /b/ })).toBeTruthy();
- });
-});
diff --git a/lib/core/src/client/preview/url.js b/lib/core/src/client/preview/url.js
index 47daf2130de..93f81c42678 100644
--- a/lib/core/src/client/preview/url.js
+++ b/lib/core/src/client/preview/url.js
@@ -1,6 +1,6 @@
import { history, document } from 'global';
import qs from 'qs';
-import { toId } from '@storybook/router/utils';
+import { toId } from '@storybook/csf';
export function pathToId(path) {
const match = (path || '').match(/^\/story\/(.+)/);
diff --git a/lib/core/src/server/common/babel.js b/lib/core/src/server/common/babel.js
index e942fbc74b2..8c5d84c4161 100644
--- a/lib/core/src/server/common/babel.js
+++ b/lib/core/src/server/common/babel.js
@@ -15,6 +15,7 @@ export default ({ configType }) => {
const prodPresets = isProd ? createProdPresets() : [];
return {
+ sourceType: 'unambiguous',
presets: [
[
require.resolve('@babel/preset-env'),
diff --git a/lib/core/src/server/config/utils.js b/lib/core/src/server/config/utils.js
index c8e5ff29343..ee4fc7a2e02 100644
--- a/lib/core/src/server/config/utils.js
+++ b/lib/core/src/server/config/utils.js
@@ -1,9 +1,31 @@
import path from 'path';
import { getEnvironment } from 'lazy-universal-dotenv';
+import findUp from 'find-up';
-export const includePaths = [path.resolve('./')];
+const projectRoot = () => {
+ let result;
+ try {
+ result = result || path.join(findUp.sync('.git', { type: 'directory' }), '..');
+ } catch (e) {
+ //
+ }
+ try {
+ result = result || path.join(findUp.sync('.svn', { type: 'directory' }), '..');
+ } catch (e) {
+ //
+ }
+ try {
+ result = result || __dirname.split('node-modules')[0];
+ } catch (e) {
+ //
+ }
+
+ return result || process.cwd();
+};
+
+export const includePaths = [projectRoot()];
export const nodeModulesPaths = path.resolve('./node_modules');
-export const excludePaths = [nodeModulesPaths];
+export const excludePaths = [/node_modules/];
const nodePathsToArray = nodePath =>
nodePath
diff --git a/lib/core/src/server/presets.js b/lib/core/src/server/presets.js
index 027a13ad8c5..411573f2e1e 100644
--- a/lib/core/src/server/presets.js
+++ b/lib/core/src/server/presets.js
@@ -43,7 +43,7 @@ function loadPreset(input, level, storybookOptions) {
return [
...loadPresets(subPresets, level + 1, storybookOptions),
{
- name: input,
+ name,
preset: rest,
options: presetOptions,
},
@@ -100,7 +100,7 @@ function applyPresets(presets, extension, config, args) {
const context = {
extensionFn,
preset,
- combinedOptions: { ...args, ...options },
+ combinedOptions: { ...args, ...options, presetsList: presets },
};
return accumulationPromise.then(newConfig =>
diff --git a/lib/core/src/server/presets.test.js b/lib/core/src/server/presets.test.js
index 977c463f099..613f4cddd5a 100644
--- a/lib/core/src/server/presets.test.js
+++ b/lib/core/src/server/presets.test.js
@@ -166,11 +166,17 @@ describe('presets', () => {
await expect(testPresets()).resolves.toBeUndefined();
- expect(mockPresetFooExtendWebpack).toHaveBeenCalledWith(expect.anything(), { foo: 1 });
- expect(mockPresetBarExtendBabel).toHaveBeenCalledWith(expect.anything(), { bar: 'a' });
+ expect(mockPresetFooExtendWebpack).toHaveBeenCalledWith(expect.anything(), {
+ foo: 1,
+ presetsList: expect.anything(),
+ });
+ expect(mockPresetBarExtendBabel).toHaveBeenCalledWith(expect.anything(), {
+ bar: 'a',
+ presetsList: expect.anything(),
+ });
});
- it('loads and applies presets when they are declared as a string and as an object', async () => {
+ it('loads and applies presets when they are declared as a string and as an object', async () => {
const mockPresetFooExtendWebpack = jest.fn();
const mockPresetBarExtendBabel = jest.fn();
@@ -184,7 +190,15 @@ describe('presets', () => {
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(
- getPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
+ getPresets([
+ 'preset-foo',
+ {
+ name: 'preset-bar',
+ options: {
+ bar: 'a',
+ },
+ },
+ ])
);
async function testPresets() {
@@ -195,7 +209,13 @@ describe('presets', () => {
await expect(testPresets()).resolves.toBeUndefined();
expect(mockPresetFooExtendWebpack).toHaveBeenCalled();
- expect(mockPresetBarExtendBabel).toHaveBeenCalledWith(expect.anything(), { bar: 'a' });
+ expect(mockPresetBarExtendBabel).toHaveBeenCalledWith(expect.anything(), {
+ bar: 'a',
+ presetsList: expect.arrayContaining([
+ expect.objectContaining({ name: 'preset-foo' }),
+ expect.objectContaining({ name: 'preset-bar' }),
+ ]),
+ });
});
it('applies presets in chain', async () => {
@@ -212,7 +232,19 @@ describe('presets', () => {
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(
- getPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
+ getPresets([
+ 'preset-foo',
+ {
+ name: 'preset-bar',
+ options: {
+ bar: 'a',
+ presetsList: expect.arrayContaining([
+ expect.objectContaining({ name: 'preset-foo' }),
+ expect.objectContaining({ name: 'preset-bar' }),
+ ]),
+ },
+ },
+ ])
);
async function testPresets() {
@@ -223,7 +255,13 @@ describe('presets', () => {
await expect(testPresets()).resolves.toBeUndefined();
expect(mockPresetFooExtendWebpack).toHaveBeenCalled();
- expect(mockPresetBarExtendWebpack).toHaveBeenCalledWith(expect.anything(), { bar: 'a' });
+ expect(mockPresetBarExtendWebpack).toHaveBeenCalledWith(expect.anything(), {
+ bar: 'a',
+ presetsList: expect.arrayContaining([
+ expect.objectContaining({ name: 'preset-foo' }),
+ expect.objectContaining({ name: 'preset-bar' }),
+ ]),
+ });
});
it('allows for presets to export presets array', async () => {
diff --git a/lib/core/src/server/preview/base-webpack.config.js b/lib/core/src/server/preview/base-webpack.config.js
index ef707aae285..87a87972683 100644
--- a/lib/core/src/server/preview/base-webpack.config.js
+++ b/lib/core/src/server/preview/base-webpack.config.js
@@ -3,7 +3,11 @@ import findUp from 'find-up';
import path from 'path';
import { logger } from '@storybook/node-logger';
-export async function createDefaultWebpackConfig(storybookBaseConfig) {
+export async function createDefaultWebpackConfig(storybookBaseConfig, options) {
+ if (options.presetsList.some(({ name }) => name === '@storybook/preset-create-react-app')) {
+ return storybookBaseConfig;
+ }
+
const postcssConfigFiles = [
'.postcssrc',
'.postcssrc.json',
diff --git a/lib/core/src/server/preview/custom-webpack-preset.js b/lib/core/src/server/preview/custom-webpack-preset.js
index a26b82c8cee..5b408c53f9e 100644
--- a/lib/core/src/server/preview/custom-webpack-preset.js
+++ b/lib/core/src/server/preview/custom-webpack-preset.js
@@ -6,7 +6,7 @@ import mergeConfigs from '../utils/merge-webpack-config';
import { createDefaultWebpackConfig } from './base-webpack.config';
async function createFinalDefaultConfig(presets, config, options) {
- const defaultConfig = await createDefaultWebpackConfig(config);
+ const defaultConfig = await createDefaultWebpackConfig(config, options);
return presets.apply('webpackFinal', defaultConfig, options);
}
diff --git a/lib/core/src/server/preview/iframe-webpack.config.js b/lib/core/src/server/preview/iframe-webpack.config.js
index 6ce4caa9c60..937704ad09d 100644
--- a/lib/core/src/server/preview/iframe-webpack.config.js
+++ b/lib/core/src/server/preview/iframe-webpack.config.js
@@ -10,9 +10,9 @@ import VirtualModulePlugin from 'webpack-virtual-modules';
import resolveFrom from 'resolve-from';
-import babelLoader from '../common/babel-loader';
-import { loadEnv, nodeModulesPaths } from '../config/utils';
-import { getPreviewBodyHtml, getPreviewHeadHtml } from '../utils/template';
+import createBabelLoader from '../common/babel-loader';
+import { nodeModulesPaths, loadEnv } from '../config/utils';
+import { getPreviewHeadHtml, getPreviewBodyHtml } from '../utils/template';
import { toRequireContextString } from './to-require-context';
const reactPaths = {};
@@ -35,6 +35,7 @@ export default ({
framework,
}) => {
const { raw, stringified } = loadEnv({ production: true });
+ const babelLoader = createBabelLoader(babelOptions);
const isProd = configType === 'PRODUCTION';
return {
@@ -88,7 +89,7 @@ export default ({
].filter(Boolean),
module: {
rules: [
- babelLoader(babelOptions),
+ babelLoader,
{
test: /\.md$/,
use: [
diff --git a/lib/node-logger/package.json b/lib/node-logger/package.json
index 6ec509e72fd..e786cd7caa8 100644
--- a/lib/node-logger/package.json
+++ b/lib/node-logger/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "",
"keywords": [
"storybook"
@@ -39,5 +39,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/postinstall/package.json b/lib/postinstall/package.json
index af2e8986596..644be1f51fe 100644
--- a/lib/postinstall/package.json
+++ b/lib/postinstall/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/postinstall",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Storybook addons postinstall utilities",
"keywords": [
"api",
@@ -36,5 +36,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/router/package.json b/lib/router/package.json
index aada61ce6c2..4b3842d88f5 100644
--- a/lib/router/package.json
+++ b/lib/router/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/router",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Core Storybook Router",
"keywords": [
"storybook"
@@ -28,6 +28,7 @@
},
"dependencies": {
"@reach/router": "^1.2.1",
+ "@storybook/csf": "0.0.1",
"@types/reach__router": "^1.2.3",
"core-js": "^3.0.1",
"global": "^4.3.2",
@@ -41,5 +42,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/router/src/utils.test.js b/lib/router/src/utils.test.js
deleted file mode 100644
index 57a9bf40edf..00000000000
--- a/lib/router/src/utils.test.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import { toId, storyNameFromExport } from './utils';
-
-describe('toId', () => {
- [
- // name, kind, story, output
- ['handles simple cases', 'kind', 'story', 'kind--story'],
- ['handles basic substitution', 'a b$c?d😀e', '1-2:3', 'a-b-c-d😀e--1-2-3'],
- ['handles runs of non-url chars', 'a?&*b', 'story', 'a-b--story'],
- ['removes non-url chars from start and end', '?ab-', 'story', 'ab--story'],
- ['downcases', 'KIND', 'STORY', 'kind--story'],
- ['non-latin', 'Кнопки', 'нормальный', 'кнопки--нормальный'],
- ['korean', 'kind', '바보 (babo)', 'kind--바보-babo'],
- ['all punctuation', 'kind', 'unicorns,’–—―′¿`"<>()!.!!!{}[]%^&$*#&', 'kind--unicorns'],
- ].forEach(([name, kind, story, output]) => {
- it(name, () => {
- expect(toId(kind, story)).toBe(output);
- });
- });
-
- it('does not allow kind with *no* url chars', () => {
- expect(() => toId('?', 'asdf')).toThrow(
- `Invalid kind '?', must include alphanumeric characters`
- );
- });
-
- it('does not allow empty kind', () => {
- expect(() => toId('', 'asdf')).toThrow(`Invalid kind '', must include alphanumeric characters`);
- });
-
- it('does not allow story with *no* url chars', () => {
- expect(() => toId('kind', '?')).toThrow(
- `Invalid name '?', must include alphanumeric characters`
- );
- });
-
- it('does not allow empty story', () => {
- expect(() => toId('kind', '')).toThrow(`Invalid name '', must include alphanumeric characters`);
- });
-});
-
-describe('storyNameFromExport', () => {
- it('should format CSF exports with sensible defaults', () => {
- const testCases = {
- name: 'Name',
- someName: 'Some Name',
- someNAME: 'Some NAME',
- some_custom_NAME: 'Some Custom NAME',
- someName1234: 'Some Name 1234',
- someName1_2_3_4: 'Some Name 1 2 3 4',
- };
- Object.entries(testCases).forEach(([key, val]) => expect(storyNameFromExport(key)).toBe(val));
- });
-});
diff --git a/lib/router/src/utils.ts b/lib/router/src/utils.ts
index c094db1d092..97bac2a40ea 100644
--- a/lib/router/src/utils.ts
+++ b/lib/router/src/utils.ts
@@ -1,43 +1,16 @@
import qs from 'qs';
import memoize from 'memoizerific';
-import startCase from 'lodash/startCase';
+
+// FIXME: Remove in SB 6.0
+export { toId, parseKind, sanitize } from '@storybook/csf';
interface StoryData {
viewMode?: string;
storyId?: string;
}
-interface SeparatorOptions {
- rootSeparator: string | RegExp;
- groupSeparator: string | RegExp;
-}
-
const splitPathRegex = /\/([^/]+)\/([^/]+)?/;
-// Remove punctuation https://gist.github.com/davidjrice/9d2af51100e41c6c4b4a
-export const sanitize = (string: string) => {
- return (
- string
- .toLowerCase()
- // eslint-disable-next-line no-useless-escape
- .replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, '-')
- .replace(/-+/g, '-')
- .replace(/^-+/, '')
- .replace(/-+$/, '')
- );
-};
-
-const sanitizeSafe = (string: string, part: string) => {
- const sanitized = sanitize(string);
- if (sanitized === '') {
- throw new Error(`Invalid ${part} '${string}', must include alphanumeric characters`);
- }
- return sanitized;
-};
-
-export const toId = (kind: string, name: string) =>
- `${sanitizeSafe(kind, 'kind')}--${sanitizeSafe(name, 'name')}`;
-
export const parsePath: (path?: string) => StoryData = memoize(1000)(
(path: string | undefined | null) => {
const result: StoryData = {
@@ -83,17 +56,3 @@ export const getMatch = memoize(1000)((current: string, target: string, startsWi
}
return null;
});
-
-export const parseKind = (kind: string, { rootSeparator, groupSeparator }: SeparatorOptions) => {
- const [root, remainder] = kind.split(rootSeparator, 2);
- const groups = (remainder || kind).split(groupSeparator).filter(i => !!i);
-
- // when there's no remainder, it means the root wasn't found/split
- return {
- root: remainder ? root : null,
- groups,
- };
-};
-
-// Transform the CSF named export into a readable story name
-export const storyNameFromExport = (key: string) => startCase(key);
diff --git a/lib/source-loader/package.json b/lib/source-loader/package.json
index bc7c9f6c91b..30bbf95bab2 100644
--- a/lib/source-loader/package.json
+++ b/lib/source-loader/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/source-loader",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Source loader",
"keywords": [
"lib",
@@ -28,9 +28,9 @@
"prepare": "node ../../scripts/prepare.js"
},
"dependencies": {
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/router": "5.3.0-beta.16",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/csf": "0.0.1",
"core-js": "^3.0.1",
"estraverse": "^4.2.0",
"global": "^4.3.2",
@@ -41,5 +41,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/source-loader/src/server/abstract-syntax-tree/__snapshots__/inject-decorator.csf.test.js.snap b/lib/source-loader/src/server/abstract-syntax-tree/__snapshots__/inject-decorator.csf.test.js.snap
index 3721312e035..f9a49b512b4 100644
--- a/lib/source-loader/src/server/abstract-syntax-tree/__snapshots__/inject-decorator.csf.test.js.snap
+++ b/lib/source-loader/src/server/abstract-syntax-tree/__snapshots__/inject-decorator.csf.test.js.snap
@@ -5,13 +5,15 @@ exports[`inject-decorator positive - ts - csf includes storySource parameter in
import { action } from \\"@storybook/addon-actions\\";
import { Button } from \\"@storybook/react/demo\\";
-export default {parameters: {\\"storySource\\":{\\"source\\":\\"import React from \\\\\\"react\\\\\\";\\\\nimport { action } from \\\\\\"@storybook/addon-actions\\\\\\";\\\\nimport { Button } from \\\\\\"@storybook/react/demo\\\\\\";\\\\n\\\\nexport default {\\\\n title: \\\\\\"Button\\\\\\"\\\\n};\\\\n\\\\nexport const text = () => (\\\\n Hello Button \\\\n);\\\\n\\\\nexport const emoji = () => (\\\\n \\\\n \\\\n 😀 😎 👍 💯\\\\n \\\\n \\\\n);\\\\n\\",\\"locationsMap\\":{\\"button--text\\":{\\"startLoc\\":{\\"col\\":20,\\"line\\":9},\\"endLoc\\":{\\"col\\":1,\\"line\\":11},\\"startBody\\":{\\"col\\":20,\\"line\\":9},\\"endBody\\":{\\"col\\":1,\\"line\\":11}},\\"button--emoji\\":{\\"startLoc\\":{\\"col\\":21,\\"line\\":13},\\"endLoc\\":{\\"col\\":1,\\"line\\":19},\\"startBody\\":{\\"col\\":21,\\"line\\":13},\\"endBody\\":{\\"col\\":1,\\"line\\":19}}}},},
- title: \\"Button\\"
+export default {parameters: {\\"storySource\\":{\\"source\\":\\"import React from \\\\\\"react\\\\\\";\\\\nimport { action } from \\\\\\"@storybook/addon-actions\\\\\\";\\\\nimport { Button } from \\\\\\"@storybook/react/demo\\\\\\";\\\\n\\\\nexport default {\\\\n title: \\\\\\"Button\\\\\\",\\\\n excludeStories: [\\\\\\"text\\\\\\"],\\\\n includeStories: /emoji.*/\\\\n};\\\\n\\\\nexport const text = () => (\\\\n Hello Button \\\\n);\\\\n\\\\nexport const emoji = () => (\\\\n \\\\n \\\\n 😀 😎 👍 💯\\\\n \\\\n \\\\n);\\\\n\\\\nexport function emojiFn() {\\\\n return (\\\\n \\\\n \\\\n 😀 😎 👍 💯\\\\n \\\\n \\\\n )\\\\n};\\\\n\\",\\"locationsMap\\":{\\"button--text\\":{\\"startLoc\\":{\\"col\\":20,\\"line\\":11},\\"endLoc\\":{\\"col\\":1,\\"line\\":13},\\"startBody\\":{\\"col\\":20,\\"line\\":11},\\"endBody\\":{\\"col\\":1,\\"line\\":13}},\\"button--emoji\\":{\\"startLoc\\":{\\"col\\":21,\\"line\\":15},\\"endLoc\\":{\\"col\\":1,\\"line\\":21},\\"startBody\\":{\\"col\\":21,\\"line\\":15},\\"endBody\\":{\\"col\\":1,\\"line\\":21}},\\"button--emoji-fn\\":{\\"startLoc\\":{\\"col\\":7,\\"line\\":23},\\"endLoc\\":{\\"col\\":1,\\"line\\":31},\\"startBody\\":{\\"col\\":7,\\"line\\":23},\\"endBody\\":{\\"col\\":1,\\"line\\":31}}}},},
+ title: \\"Button\\",
+ excludeStories: [\\"text\\"],
+ includeStories: /emoji.*/
};
-export const text = addSourceDecorator(() => (
+export const text = () => (
Hello Button
-), {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});;
+);
export const emoji = addSourceDecorator(() => (
@@ -19,6 +21,16 @@ export const emoji = addSourceDecorator(() => (
😀 😎 👍 💯
-), {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});
+), {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});;
+
+export const emojiFn = addSourceDecorator(function emojiFn() {
+ return (
+
+
+ 😀 😎 👍 💯
+
+
+ )
+}, {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});
"
`;
diff --git a/lib/source-loader/src/server/abstract-syntax-tree/generate-helpers.js b/lib/source-loader/src/server/abstract-syntax-tree/generate-helpers.js
index 4f1ec791427..5c77a0b0846 100644
--- a/lib/source-loader/src/server/abstract-syntax-tree/generate-helpers.js
+++ b/lib/source-loader/src/server/abstract-syntax-tree/generate-helpers.js
@@ -68,7 +68,9 @@ const STORY_DECORATOR_STATEMENT =
const ADD_PARAMETERS_STATEMENT =
'.addParameters({ storySource: { source: __STORY__, locationsMap: __ADDS_MAP__ } })';
const applyExportDecoratorStatement = part =>
- ` addSourceDecorator(${part}, {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});`;
+ part.declaration.isVariableDeclaration
+ ? ` addSourceDecorator(${part.source}, {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});`
+ : ` const ${part.declaration.ident} = addSourceDecorator(${part.source}, {__STORY__, __ADDS_MAP__,__MAIN_FILE_LOCATION__,__MODULE_DEPENDENCIES__,__LOCAL_DEPENDENCIES__,__SOURCE_PREFIX__,__IDS_TO_FRAMEWORKS__});`;
export function generateSourceWithDecorators(source, ast, withParameters) {
const { comments = [] } = ast;
@@ -91,7 +93,7 @@ export function generateSourceWithDecorators(source, ast, withParameters) {
const partsUsingExports = splitExports(ast, source);
const newSource = partsUsingExports
- .map((part, i) => (i % 2 === 0 ? part : applyExportDecoratorStatement(part)))
+ .map((part, i) => (i % 2 === 0 ? part.source : applyExportDecoratorStatement(part)))
.join('');
return {
diff --git a/lib/source-loader/src/server/abstract-syntax-tree/parse-helpers.js b/lib/source-loader/src/server/abstract-syntax-tree/parse-helpers.js
index a96ed14b094..7da7f744c78 100644
--- a/lib/source-loader/src/server/abstract-syntax-tree/parse-helpers.js
+++ b/lib/source-loader/src/server/abstract-syntax-tree/parse-helpers.js
@@ -1,4 +1,4 @@
-const { toId } = require('@storybook/router/utils');
+const { toId } = require('@storybook/csf');
const STORIES_OF = 'storiesOf';
diff --git a/lib/source-loader/src/server/abstract-syntax-tree/traverse-helpers.js b/lib/source-loader/src/server/abstract-syntax-tree/traverse-helpers.js
index be8ba109600..f80ae30b22f 100644
--- a/lib/source-loader/src/server/abstract-syntax-tree/traverse-helpers.js
+++ b/lib/source-loader/src/server/abstract-syntax-tree/traverse-helpers.js
@@ -1,4 +1,4 @@
-import { storyNameFromExport } from '@storybook/router/utils';
+import { storyNameFromExport, isExportStory } from '@storybook/csf';
import { handleADD, handleSTORYOF, patchNode, handleExportedName } from './parse-helpers';
const estraverse = require('estraverse');
@@ -20,36 +20,119 @@ export function splitSTORYOF(ast, source) {
return parts;
}
+
+function isFunctionVariable(declarations, includeExclude) {
+ return (
+ declarations &&
+ declarations.length === 1 &&
+ declarations[0].type === 'VariableDeclarator' &&
+ declarations[0].id &&
+ declarations[0].id.name &&
+ declarations[0].init &&
+ ['CallExpression', 'ArrowFunctionExpression', 'FunctionExpression'].includes(
+ declarations[0].init.type
+ ) &&
+ isExportStory(declarations[0].id.name, includeExclude)
+ );
+}
+
+function isFunctionDeclaration(declaration, includeExclude) {
+ return (
+ declaration.type === 'FunctionDeclaration' &&
+ declaration.id &&
+ declaration.id.name &&
+ isExportStory(declaration.id.name, includeExclude)
+ );
+}
+
+function getDescriptor(metaDeclaration, propertyName) {
+ const property =
+ metaDeclaration &&
+ metaDeclaration.declaration &&
+ metaDeclaration.declaration.properties.find(p => p.key && p.key.name === propertyName);
+ if (!property) {
+ return undefined;
+ }
+
+ const { type } = property.value;
+
+ switch (type) {
+ case 'ArrayExpression':
+ return property.value.elements.map(t => {
+ if (!['StringLiteral', 'Literal'].includes(t.type)) {
+ throw new Error(`Unexpected descriptor element: ${t.type}`);
+ }
+ return t.value;
+ });
+ case 'Literal':
+ case 'RegExpLiteral':
+ return property.value.value;
+ default:
+ throw new Error(`Unexpected descriptor: ${type}`);
+ }
+}
+
+function findIncludeExclude(ast) {
+ const program = (ast && ast.program) || ast;
+ const metaDeclaration =
+ program &&
+ program.body &&
+ program.body.find(
+ d =>
+ d.type === 'ExportDefaultDeclaration' &&
+ d.declaration.type === 'ObjectExpression' &&
+ (d.declaration.properties || []).length
+ );
+
+ const includeStories = getDescriptor(metaDeclaration, 'includeStories');
+ const excludeStories = getDescriptor(metaDeclaration, 'excludeStories');
+
+ return {
+ includeStories,
+ excludeStories,
+ };
+}
+
export function splitExports(ast, source) {
const parts = [];
let lastIndex = 0;
+ const includeExclude = findIncludeExclude(ast);
+
estraverse.traverse(ast, {
fallback: 'iteration',
enter: node => {
patchNode(node);
- if (
- node.type === 'ExportNamedDeclaration' &&
- node.declaration &&
- node.declaration.declarations &&
- node.declaration.declarations.length === 1 &&
- node.declaration.declarations[0].type === 'VariableDeclarator' &&
- node.declaration.declarations[0].id &&
- node.declaration.declarations[0].id.name &&
- node.declaration.declarations[0].init &&
- ['CallExpression', 'ArrowFunctionExpression', 'FunctionExpression'].includes(
- node.declaration.declarations[0].init.type
- )
- ) {
- const functionNode = node.declaration.declarations[0].init;
- parts.push(source.substring(lastIndex, functionNode.start - 1));
- parts.push(source.substring(functionNode.start, functionNode.end));
+
+ const isNamedExport = node.type === 'ExportNamedDeclaration' && node.declaration;
+
+ const isFunctionVariableExport =
+ isNamedExport && isFunctionVariable(node.declaration.declarations, includeExclude);
+ const isFunctionDeclarationExport =
+ isNamedExport && isFunctionDeclaration(node.declaration, includeExclude);
+
+ if (isFunctionDeclarationExport || isFunctionVariableExport) {
+ const functionNode = isFunctionVariableExport
+ ? node.declaration.declarations[0].init
+ : node.declaration;
+ parts.push({
+ source: source.substring(lastIndex, functionNode.start - 1),
+ });
+ parts.push({
+ source: source.substring(functionNode.start, functionNode.end),
+ declaration: {
+ isVariableDeclaration: isFunctionVariableExport,
+ ident: isFunctionVariableExport
+ ? node.declaration.declarations[0].id.name
+ : functionNode.id.name,
+ },
+ });
lastIndex = functionNode.end;
}
},
});
- if (source.length > lastIndex + 1) parts.push(source.substring(lastIndex + 1));
+ if (source.length > lastIndex + 1) parts.push({ source: source.substring(lastIndex + 1) });
if (parts.length === 1) return [source];
return parts;
}
@@ -110,9 +193,11 @@ export function findExportsMap(ast) {
fallback: 'iteration',
enter: node => {
patchNode(node);
- if (
- node.type === 'ExportNamedDeclaration' &&
- node.declaration &&
+
+ const isNamedExport = node.type === 'ExportNamedDeclaration' && node.declaration;
+
+ const isFunctionVariableExport =
+ isNamedExport &&
node.declaration.declarations &&
node.declaration.declarations.length === 1 &&
node.declaration.declarations[0].type === 'VariableDeclarator' &&
@@ -121,10 +206,24 @@ export function findExportsMap(ast) {
node.declaration.declarations[0].init &&
['CallExpression', 'ArrowFunctionExpression', 'FunctionExpression'].includes(
node.declaration.declarations[0].init.type
- )
- ) {
- const storyName = storyNameFromExport(node.declaration.declarations[0].id.name);
- const toAdd = handleExportedName(title, storyName, node.declaration.declarations[0].init);
+ );
+
+ const isFunctionDeclarationExport =
+ isNamedExport &&
+ node.declaration.type === 'FunctionDeclaration' &&
+ node.declaration.id &&
+ node.declaration.id.name;
+
+ if (isFunctionDeclarationExport || isFunctionVariableExport) {
+ const exportDeclaration = isFunctionVariableExport
+ ? node.declaration.declarations[0]
+ : node.declaration;
+ const storyName = storyNameFromExport(exportDeclaration.id.name);
+ const toAdd = handleExportedName(
+ title,
+ storyName,
+ exportDeclaration.init || exportDeclaration
+ );
Object.assign(addsMap, toAdd);
}
},
diff --git a/lib/theming/package.json b/lib/theming/package.json
index c5e20a3b653..81ea79c8eaa 100644
--- a/lib/theming/package.json
+++ b/lib/theming/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/theming",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Core Storybook Components",
"keywords": [
"storybook"
@@ -29,7 +29,7 @@
"dependencies": {
"@emotion/core": "^10.0.20",
"@emotion/styled": "^10.0.17",
- "@storybook/client-logger": "5.3.0-beta.16",
+ "@storybook/client-logger": "5.3.0-rc.0",
"core-js": "^3.0.1",
"deep-object-diff": "^1.1.0",
"emotion-theming": "^10.0.19",
@@ -46,5 +46,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/ui/package.json b/lib/ui/package.json
index a424ea59ad7..1a5c0f0cd17 100644
--- a/lib/ui/package.json
+++ b/lib/ui/package.json
@@ -1,6 +1,6 @@
{
"name": "@storybook/ui",
- "version": "5.3.0-beta.16",
+ "version": "5.3.0-rc.0",
"description": "Core Storybook UI",
"keywords": [
"storybook"
@@ -28,14 +28,14 @@
},
"dependencies": {
"@emotion/core": "^10.0.20",
- "@storybook/addons": "5.3.0-beta.16",
- "@storybook/api": "5.3.0-beta.16",
- "@storybook/channels": "5.3.0-beta.16",
- "@storybook/client-logger": "5.3.0-beta.16",
- "@storybook/components": "5.3.0-beta.16",
- "@storybook/core-events": "5.3.0-beta.16",
- "@storybook/router": "5.3.0-beta.16",
- "@storybook/theming": "5.3.0-beta.16",
+ "@storybook/addons": "5.3.0-rc.0",
+ "@storybook/api": "5.3.0-rc.0",
+ "@storybook/channels": "5.3.0-rc.0",
+ "@storybook/client-logger": "5.3.0-rc.0",
+ "@storybook/components": "5.3.0-rc.0",
+ "@storybook/core-events": "5.3.0-rc.0",
+ "@storybook/router": "5.3.0-rc.0",
+ "@storybook/theming": "5.3.0-rc.0",
"copy-to-clipboard": "^3.0.8",
"core-js": "^3.0.1",
"core-js-pure": "^3.0.1",
@@ -63,8 +63,8 @@
"util-deprecate": "^1.0.2"
},
"devDependencies": {
- "@storybook/addon-actions": "5.3.0-beta.16",
- "@storybook/addon-knobs": "5.3.0-beta.16",
+ "@storybook/addon-actions": "5.3.0-rc.0",
+ "@storybook/addon-knobs": "5.3.0-rc.0",
"corejs-upgrade-webpack-plugin": "^2.2.0",
"flush-promises": "^1.0.2",
"terser-webpack-plugin": "^2.1.2",
@@ -72,5 +72,6 @@
},
"publishConfig": {
"access": "public"
- }
+ },
+ "gitHead": "6ad2664adf18b50ea3ce015cbae2ff3e9a60cc4a"
}
diff --git a/lib/ui/src/app.js b/lib/ui/src/app.js
index a090fc16c73..39459c5437a 100644
--- a/lib/ui/src/app.js
+++ b/lib/ui/src/app.js
@@ -41,7 +41,7 @@ const View = styled.div({
width: '100vw',
});
-const App = React.memo(({ viewMode, layout, panelCount, size: { width, height } }) => {
+const App = React.memo(({ viewMode, docsOnly, layout, panelCount, size: { width, height } }) => {
const props = createProps();
let content;
@@ -60,6 +60,7 @@ const App = React.memo(({ viewMode, layout, panelCount, size: { width, height }
{...props}
viewMode={viewMode}
options={layout}
+ docsOnly={docsOnly}
{...{ width, height }}
panelCount={panelCount}
/>
@@ -81,9 +82,11 @@ App.propTypes = {
width: PropTypes.number,
height: PropTypes.number,
}).isRequired,
+ docsOnly: PropTypes.bool,
};
App.defaultProps = {
viewMode: undefined,
+ docsOnly: false,
};
const SizedApp = sizeMe({ monitorHeight: true })(App);
diff --git a/lib/ui/src/components/layout/container.js b/lib/ui/src/components/layout/container.js
index 8bd3d5b4a11..72fbf2cf33f 100644
--- a/lib/ui/src/components/layout/container.js
+++ b/lib/ui/src/components/layout/container.js
@@ -88,7 +88,7 @@ const Paper = styled.div(
isFullscreen
? {
boxShadow: 'none',
- borderRadius: '0',
+ borderRadius: 0,
}
: {
background: theme.background.content,
@@ -405,13 +405,17 @@ class Layout extends Component {
};
render() {
- const { children, bounds, options, theme, viewMode, panelCount } = this.props;
+ const { children, bounds, options, theme, viewMode, docsOnly, panelCount } = this.props;
const { isDragging, resizerNav, resizerPanel } = this.state;
const margin = theme.layoutMargin;
const isNavHidden = options.isFullscreen || !options.showNav;
const isPanelHidden =
- options.isFullscreen || !options.showPanel || viewMode !== 'story' || panelCount === 0;
+ options.isFullscreen ||
+ !options.showPanel ||
+ docsOnly ||
+ viewMode !== 'story' ||
+ panelCount === 0;
const isFullscreen = options.isFullscreen || (isNavHidden && isPanelHidden);
const { isToolshown } = options;
@@ -494,6 +498,7 @@ class Layout extends Component {
},
previewProps: {
viewMode,
+ docsOnly,
animate: !isDragging,
isFullscreen,
isToolshown,
@@ -554,10 +559,12 @@ Layout.propTypes = {
isToolshown: PropTypes.bool.isRequired,
}).isRequired,
viewMode: PropTypes.string,
+ docsOnly: PropTypes.bool,
theme: PropTypes.shape({ layoutMargin: PropTypes.number }).isRequired,
};
Layout.defaultProps = {
viewMode: undefined,
+ docsOnly: false,
};
const ThemedLayout = withTheme(Layout);
diff --git a/lib/ui/src/components/layout/desktop.js b/lib/ui/src/components/layout/desktop.js
index 0fc282a57cc..5e2cc88a25f 100644
--- a/lib/ui/src/components/layout/desktop.js
+++ b/lib/ui/src/components/layout/desktop.js
@@ -4,7 +4,19 @@ import PropTypes from 'prop-types';
import * as S from './container';
const Desktop = React.memo(
- ({ Panel, Nav, Preview, Notifications, pages, options, viewMode, width, height, panelCount }) => (
+ ({
+ Panel,
+ Nav,
+ Preview,
+ Notifications,
+ pages,
+ options,
+ viewMode,
+ width,
+ height,
+ panelCount,
+ docsOnly,
+ }) => (
{({ navProps, mainProps, panelProps, previewProps }) => (
@@ -72,9 +85,11 @@ Desktop.propTypes = {
isToolshown: PropTypes.bool.isRequired,
}).isRequired,
viewMode: PropTypes.string,
+ docsOnly: PropTypes.bool,
};
Desktop.defaultProps = {
viewMode: undefined,
+ docsOnly: false,
height: 0,
width: 0,
};
diff --git a/lib/ui/src/components/preview/preview.js b/lib/ui/src/components/preview/preview.js
index 22d703ea924..aa1461ad04e 100644
--- a/lib/ui/src/components/preview/preview.js
+++ b/lib/ui/src/components/preview/preview.js
@@ -84,7 +84,19 @@ const defaultWrappers = [
];
const getTools = memoize(10)(
- (getElements, queryParams, panels, api, options, storyId, viewMode, location, path, baseUrl) => {
+ (
+ getElements,
+ queryParams,
+ panels,
+ api,
+ options,
+ storyId,
+ viewMode,
+ docsOnly,
+ location,
+ path,
+ baseUrl
+ ) => {
const tools = getElementList(getElements, types.TOOL, [
panels.filter(p => p.id !== 'canvas').length
? {
@@ -169,9 +181,16 @@ const getTools = memoize(10)(
),
},
]);
-
+ // if its a docsOnly page, even the 'story' view mode is considered 'docs'
const filter = item =>
- item && (!item.match || item.match({ storyId, viewMode, location, path }));
+ item &&
+ (!item.match ||
+ item.match({
+ storyId,
+ viewMode: docsOnly && viewMode === 'story' ? 'docs' : viewMode,
+ location,
+ path,
+ }));
const displayItems = list =>
list.reduce(
@@ -199,13 +218,14 @@ const getDocumentTitle = description => {
};
class Preview extends Component {
- shouldComponentUpdate({ storyId, viewMode, options, queryParams }) {
+ shouldComponentUpdate({ storyId, viewMode, docsOnly, options, queryParams }) {
const { props } = this;
return (
options.isFullscreen !== props.options.isFullscreen ||
options.isToolshown !== props.options.isToolshown ||
viewMode !== props.viewMode ||
+ docsOnly !== props.docsOnly ||
storyId !== props.storyId ||
queryParams !== props.queryParams
);
@@ -225,6 +245,7 @@ class Preview extends Component {
path,
location,
viewMode,
+ docsOnly,
storyId,
queryParams,
getElements,
@@ -272,6 +293,7 @@ class Preview extends Component {
options,
storyId,
viewMode,
+ docsOnly,
location,
path,
baseUrl
@@ -322,10 +344,12 @@ Preview.propTypes = {
isToolshown: PropTypes.bool,
}).isRequired,
baseUrl: PropTypes.string,
+ docsOnly: PropTypes.bool,
};
Preview.defaultProps = {
viewMode: undefined,
+ docsOnly: false,
storyId: undefined,
path: undefined,
description: undefined,
diff --git a/lib/ui/src/components/sidebar/Sidebar.tsx b/lib/ui/src/components/sidebar/Sidebar.tsx
index 071cf207f01..544661d6a02 100644
--- a/lib/ui/src/components/sidebar/Sidebar.tsx
+++ b/lib/ui/src/components/sidebar/Sidebar.tsx
@@ -13,7 +13,7 @@ const Heading = styled(SidebarHeading)({
const Stories = styled(({ className, ...rest }) => (
-))(({ loading }) => (loading ? { marginTop: 8 } : {}));
+))(({ loading }) => (loading ? { marginTop: 8, overflow: 'hidden' } : { overflow: 'hidden' }));
const Container = styled.nav({
position: 'absolute',
@@ -28,7 +28,7 @@ const Container = styled.nav({
const CustomScrollArea = styled(ScrollArea)({
'.simplebar-track.simplebar-vertical': {
- right: '4px',
+ right: 4,
},
});
diff --git a/lib/ui/src/components/sidebar/SidebarHeading.tsx b/lib/ui/src/components/sidebar/SidebarHeading.tsx
index 94c92abb488..47fa203795f 100644
--- a/lib/ui/src/components/sidebar/SidebarHeading.tsx
+++ b/lib/ui/src/components/sidebar/SidebarHeading.tsx
@@ -49,12 +49,12 @@ export type MenuButtonProps = ComponentProps &
highlighted: boolean;
};
-const MenuButton = styled(Button)(props => ({
+const MenuButton = styled(Button)(({ highlighted, theme }) => ({
position: 'relative',
overflow: 'visible',
padding: 7,
- ...(props.highlighted && {
+ ...(highlighted && {
'&:after': {
content: '""',
position: 'absolute',
@@ -63,7 +63,7 @@ const MenuButton = styled(Button)(props => ({
width: 8,
height: 8,
borderRadius: 8,
- background: `${props.theme.color.positive}`,
+ background: theme.color.positive,
},
}),
}));
diff --git a/lib/ui/src/components/sidebar/SidebarItem.tsx b/lib/ui/src/components/sidebar/SidebarItem.tsx
index 3e9da2e8a36..60e3c15b238 100644
--- a/lib/ui/src/components/sidebar/SidebarItem.tsx
+++ b/lib/ui/src/components/sidebar/SidebarItem.tsx
@@ -2,6 +2,7 @@ import React, { ComponentProps } from 'react';
import { styled } from '@storybook/theming';
import { opacify, transparentize } from 'polished';
import { Icons } from '@storybook/components';
+import { DOCS_MODE } from 'global';
export type ExpanderProps = ComponentProps<'span'> & {
isExpanded?: boolean;
@@ -50,7 +51,7 @@ const Icon = styled(Icons)(
if (icon === 'component') {
return { color: '#1ea7fd' };
}
- if (icon === 'bookmarkhollow') {
+ if (icon === 'bookmarkhollow' || (DOCS_MODE && icon === 'document')) {
return { color: '#37d5d3' };
}
if (icon === 'document') {
diff --git a/lib/ui/src/components/sidebar/SidebarSearch.tsx b/lib/ui/src/components/sidebar/SidebarSearch.tsx
index ace8f79c689..ee83b3b2805 100644
--- a/lib/ui/src/components/sidebar/SidebarSearch.tsx
+++ b/lib/ui/src/components/sidebar/SidebarSearch.tsx
@@ -66,45 +66,42 @@ export type FilterFormProps = ComponentProps<'form'> & {
focussed: boolean;
};
-const FilterForm = styled.form(
- ({ theme, focussed }) =>
- ({
+const FilterForm = styled.form(({ theme, focussed }) => ({
+ transition: 'all 150ms ease-out',
+ borderBottom: '1px solid transparent',
+ borderBottomColor: focussed
+ ? opacify(0.3, theme.appBorderColor)
+ : opacify(0.1, theme.appBorderColor),
+ outline: 0,
+ position: 'relative',
+
+ input: {
+ color: theme.input.color,
+ fontSize: theme.typography.size.s2 - 1,
+ lineHeight: '20px',
+ paddingTop: 2,
+ paddingBottom: 2,
+ paddingLeft: 20,
+ },
+
+ '> svg': {
+ transition: 'all 150ms ease-out',
+ position: 'absolute',
+ top: '50%',
+ height: 12,
+ width: 12,
+ transform: 'translateY(-50%)',
+ zIndex: 1,
+
+ background: 'transparent',
+
+ path: {
transition: 'all 150ms ease-out',
- borderBottom: '1px solid transparent',
- borderBottomColor: focussed
- ? opacify(0.3, theme.appBorderColor)
- : opacify(0.1, theme.appBorderColor),
- outline: 0,
- position: 'relative',
-
- input: {
- color: theme.input.color,
- fontSize: theme.typography.size.s2 - 1,
- lineHeight: '20px',
- paddingTop: '2px',
- paddingBottom: '2px',
- paddingLeft: '20px',
- },
-
- '> svg': {
- transition: 'all 150ms ease-out',
- position: 'absolute',
- top: '50%',
- height: '12px',
- width: '12px',
- transform: 'translateY(-50%)',
- zIndex: '1',
-
- background: 'transparent',
-
- path: {
- transition: 'all 150ms ease-out',
- fill: 'currentColor',
- opacity: focussed ? 1 : 0.3,
- },
- },
- } as any) // FIXME: emotion have hard time to provide '> svg' typing
-);
+ fill: 'currentColor',
+ opacity: focussed ? 1 : 0.3,
+ },
+ },
+}));
export type PureSidebarSearchProps = FilterFieldProps & {
onChange: (arg: string) => void;
diff --git a/lib/ui/src/components/sidebar/treeview/treeview.js b/lib/ui/src/components/sidebar/treeview/treeview.js
index a65d761b12d..a8f3e28c3e2 100644
--- a/lib/ui/src/components/sidebar/treeview/treeview.js
+++ b/lib/ui/src/components/sidebar/treeview/treeview.js
@@ -361,58 +361,50 @@ class TreeState extends PureComponent {
return (
{Filter ? : null}
- {roots.length || others.length ? (
-
- {roots.map(({ id, name, children }) => (
-
-
- {name}
-
- {children.map(key => (
-
- ))}
-
+ {!roots.length && !others.length && This filter resulted in 0 results }
+
+ {others.length ? (
+
+ {others.map(({ id }) => (
+
))}
- {others.length ? (
-
- {roots.length ? (
-
- Others
-
- ) : null}
- {others.map(({ id }) => (
-
- ))}
-
- ) : null}
-
- ) : (
- This filter resulted in 0 results
- )}
+
+ ) : null}
+
+ {roots.map(({ id, name, children }) => (
+
+
+ {name}
+
+ {children.map(key => (
+
+ ))}
+
+ ))}
);
}
diff --git a/lib/ui/src/components/sidebar/treeview/utils.js b/lib/ui/src/components/sidebar/treeview/utils.js
index 84a77494a3f..79811c808ff 100644
--- a/lib/ui/src/components/sidebar/treeview/utils.js
+++ b/lib/ui/src/components/sidebar/treeview/utils.js
@@ -1,5 +1,6 @@
import memoize from 'memoizerific';
import Fuse from 'fuse.js';
+import { DOCS_MODE } from 'global';
const FUZZY_SEARCH_THRESHOLD = 0.4;
@@ -25,10 +26,10 @@ export const keyEventToAction = ({ keyCode, ctrlKey, shiftKey, altKey, metaKey }
return 'DOWN';
}
case 37: {
- return 'LEFT';
+ return DOCS_MODE ? 'UP' : 'LEFT';
}
case 39: {
- return 'RIGHT';
+ return DOCS_MODE ? 'DOWN' : 'RIGHT';
}
default: {
return false;
diff --git a/lib/ui/src/containers/nav.js b/lib/ui/src/containers/nav.js
index c50d79cf390..9bc5dc0533e 100755
--- a/lib/ui/src/containers/nav.js
+++ b/lib/ui/src/containers/nav.js
@@ -1,8 +1,10 @@
+import { DOCS_MODE } from 'global';
import React from 'react';
import memoize from 'memoizerific';
import { Badge } from '@storybook/components';
import { Consumer } from '@storybook/api';
+import { logger } from '@storybook/client-logger';
import { shortcutToHumanString } from '../libs/shortcut';
@@ -107,7 +109,66 @@ const createMenu = memoize(1)(
]
);
-const collapseDocsOnlyStories = storiesHash => {
+export const collapseAllStories = stories => {
+ // keep track of component IDs that have been rewritten to the ID of their first leaf child
+ const componentIdToLeafId = {};
+
+ // 1) remove all leaves
+ const leavesRemoved = Object.values(stories).filter(item => !item.isLeaf);
+
+ // 2) make all components leaves and rewrite their ID's to the first leaf child
+ const componentsFlattened = leavesRemoved.map(item => {
+ const { id, isComponent, children, ...rest } = item;
+ const nonLeafChildren = [];
+ const leafChildren = [];
+ children.forEach(child => (stories[child].isLeaf ? leafChildren : nonLeafChildren).push(child));
+
+ if (leafChildren.length === 0) {
+ return item; // pass through, we'll handle you later
+ }
+
+ const leafId = leafChildren[0];
+ const component = { ...rest, id: leafId, isLeaf: true, isComponent: true };
+ componentIdToLeafId[id] = leafId;
+
+ if (
+ (isComponent && nonLeafChildren.length > 0) ||
+ (!isComponent && nonLeafChildren.length === 0)
+ ) {
+ throw new Error(
+ `Unexpected '${item.id}': ${JSON.stringify({ isComponent, nonLeafChildren })}`
+ );
+ }
+
+ if (nonLeafChildren.length > 0) {
+ logger.error(
+ `Node ${item.id} contains non-leaf nodes that are getting removed: ${nonLeafChildren}!`
+ );
+ }
+
+ return component;
+ });
+
+ // 3) rewrite all the children as needed
+ const childrenRewritten = componentsFlattened.map(item => {
+ if (item.isLeaf) {
+ return item;
+ }
+
+ const { children, ...rest } = item;
+ const rewritten = children.map(child => componentIdToLeafId[child] || child);
+
+ return { children: rewritten, ...rest };
+ });
+
+ const result = {};
+ childrenRewritten.forEach(item => {
+ result[item.id] = item;
+ });
+ return result;
+};
+
+export const collapseDocsOnlyStories = storiesHash => {
// keep track of component IDs that have been rewritten to the ID of their first leaf child
const componentIdToLeafId = {};
const docsOnlyStoriesRemoved = Object.values(storiesHash).filter(item => {
@@ -159,7 +220,10 @@ export const mapper = ({ state, api }) => {
storiesHash,
storiesConfigured,
} = state;
- const stories = collapseDocsOnlyStories(storiesHash);
+ const stories = DOCS_MODE
+ ? collapseAllStories(storiesHash)
+ : collapseDocsOnlyStories(storiesHash);
+
const shortcutKeys = api.getShortcutKeys();
return {
loading: !storiesConfigured,
diff --git a/lib/ui/src/containers/nav.test.js b/lib/ui/src/containers/nav.test.js
new file mode 100644
index 00000000000..91ece2ac1fe
--- /dev/null
+++ b/lib/ui/src/containers/nav.test.js
@@ -0,0 +1,69 @@
+import { collapseDocsOnlyStories, collapseAllStories } from './nav';
+
+const docsOnly = { parameters: { docsOnly: true } };
+const root = { id: 'root', parent: false, children: ['a', 'b'] };
+const a = { id: 'a', isComponent: true, parent: 'root', children: ['a1'] };
+const a1 = { id: 'a1', isLeaf: true, parent: 'a' };
+const b = { id: 'b', isComponent: true, parent: 'root', children: ['b1', 'b2'] };
+const b1 = { id: 'b1', isLeaf: true, parent: 'b' };
+const b2 = { id: 'b2', isLeaf: true, parent: 'b' };
+const stories = { root, a, a1, b, b1, b2 };
+
+describe('collapse docs-only stories', () => {
+ it('ignores normal stories', () => {
+ const filtered = collapseDocsOnlyStories(stories);
+ expect(filtered).toEqual(stories);
+ });
+
+ it('filters out docs-only stories', () => {
+ const hasDocsOnly = {
+ ...stories,
+ a1: { ...a1, ...docsOnly },
+ };
+ const filtered = collapseDocsOnlyStories(hasDocsOnly);
+ expect(filtered.a1).toEqual({
+ id: 'a1',
+ isComponent: true,
+ isLeaf: true,
+ parent: 'root',
+ });
+ });
+});
+
+describe('collapse all stories', () => {
+ it('collapses normal stories', () => {
+ const collapsed = collapseAllStories(stories);
+ expect(collapsed).toEqual({
+ a1: {
+ id: 'a1',
+ isComponent: true,
+ isLeaf: true,
+ parent: 'root',
+ },
+ b1: {
+ id: 'b1',
+ isComponent: true,
+ isLeaf: true,
+ parent: 'root',
+ },
+ root: {
+ children: ['a1', 'b1'],
+ id: 'root',
+ parent: false,
+ },
+ });
+ });
+ it('collapses docs-only stories', () => {
+ const hasDocsOnly = {
+ ...stories,
+ a1: { ...a1, ...docsOnly },
+ };
+ const filtered = collapseAllStories(hasDocsOnly);
+ expect(filtered.a1).toEqual({
+ id: 'a1',
+ isComponent: true,
+ isLeaf: true,
+ parent: 'root',
+ });
+ });
+});
diff --git a/lib/ui/src/containers/preview.js b/lib/ui/src/containers/preview.js
index 4d7771f935d..3ecad17872a 100644
--- a/lib/ui/src/containers/preview.js
+++ b/lib/ui/src/containers/preview.js
@@ -15,15 +15,19 @@ const getDescription = (storiesHash, storyId) => {
return storyInfo ? addExtraWhiteSpace(`${storyInfo.kind} - ${storyInfo.name}`) : '';
};
-const mapper = ({ api, state: { layout, location, customQueryParams, storiesHash, storyId } }) => ({
- api,
- getElements: api.getElements,
- options: layout,
- description: getDescription(storiesHash, storyId),
- ...api.getUrlState(),
- queryParams: customQueryParams,
- location,
-});
+const mapper = ({ api, state: { layout, location, customQueryParams, storiesHash, storyId } }) => {
+ const story = storiesHash[storyId];
+ return {
+ api,
+ getElements: api.getElements,
+ options: layout,
+ description: getDescription(storiesHash, storyId),
+ ...api.getUrlState(),
+ queryParams: customQueryParams,
+ docsOnly: story && story.parameters && story.parameters.docsOnly,
+ location,
+ };
+};
function getBaseUrl() {
try {
diff --git a/lib/ui/src/index.js b/lib/ui/src/index.js
index f6f59c76684..245a7e2d9bc 100644
--- a/lib/ui/src/index.js
+++ b/lib/ui/src/index.js
@@ -39,6 +39,7 @@ export const Root = ({ provider }) => (
>
{({ state, api }) => {
const panelCount = Object.keys(api.getPanels()).length;
+ const story = state.storiesHash[state.storyId];
return (
(
viewMode={state.viewMode}
layout={state.layout}
panelCount={panelCount}
+ docsOnly={story && story.parameters && story.parameters.docsOnly}
/>
);
diff --git a/lib/ui/src/settings/shortcuts.js b/lib/ui/src/settings/shortcuts.js
index 7a940e77649..7abf235f0b8 100644
--- a/lib/ui/src/settings/shortcuts.js
+++ b/lib/ui/src/settings/shortcuts.js
@@ -46,7 +46,7 @@ export const GridWrapper = styled.div({
display: 'grid',
gridTemplateColumns: '1fr',
gridAutoRows: 'minmax(auto, auto)',
- marginBottom: '20px',
+ marginBottom: 20,
});
// Form
diff --git a/tsconfig.json b/tsconfig.json
index a2454a3af84..0f4719660e9 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -13,7 +13,7 @@
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"target": "es5",
- "types": ["node", "jest"],
+ "types": ["jest"],
"lib": ["es2017", "dom"]
},
"exclude": [
diff --git a/yarn.lock b/yarn.lock
index 09a984fbb4c..eff412bb994 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -298,7 +298,7 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.2.2", "@babel/core@^7.3.3", "@babel/core@^7.3.4", "@babel/core@^7.4.3", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.6.2", "@babel/core@^7.7.0":
+"@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.2.2", "@babel/core@^7.3.3", "@babel/core@^7.3.4", "@babel/core@^7.4.4", "@babel/core@^7.4.5", "@babel/core@^7.6.2", "@babel/core@^7.7.0":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.4.tgz#37e864532200cb6b50ee9a4045f5f817840166ab"
integrity sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==
@@ -446,6 +446,18 @@
"@babel/types" "^7.7.4"
lodash "^4.17.13"
+"@babel/helper-module-transforms@^7.7.5":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835"
+ integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.7.4"
+ "@babel/helper-simple-access" "^7.7.4"
+ "@babel/helper-split-export-declaration" "^7.7.4"
+ "@babel/template" "^7.7.4"
+ "@babel/types" "^7.7.4"
+ lodash "^4.17.13"
+
"@babel/helper-optimise-call-expression@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2"
@@ -534,6 +546,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb"
integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==
+"@babel/parser@^7.4.5":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71"
+ integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==
+
"@babel/plugin-external-helpers@^7.0.0":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-external-helpers/-/plugin-external-helpers-7.7.4.tgz#8aa7aa402f0e2ecb924611cbf30942a497dfd17e"
@@ -674,10 +691,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.2.0"
-"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.2.0", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71"
- integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==
+"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.2.0", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370"
+ integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-object-rest-spread" "^7.7.4"
@@ -698,10 +715,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-optional-chaining" "^7.7.4"
-"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb"
- integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==
+"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e"
+ integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -869,7 +886,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.5.5", "@babel/plugin-transform-block-scoping@^7.6.0", "@babel/plugin-transform-block-scoping@^7.7.4":
+"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.5.5", "@babel/plugin-transform-block-scoping@^7.6.0", "@babel/plugin-transform-block-scoping@^7.6.2", "@babel/plugin-transform-block-scoping@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224"
integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==
@@ -912,10 +929,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96"
- integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==
+"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b"
+ integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
@@ -980,21 +997,21 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.5.0", "@babel/plugin-transform-modules-amd@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71"
- integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==
+"@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.5.0", "@babel/plugin-transform-modules-amd@^7.7.5":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c"
+ integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==
dependencies:
- "@babel/helper-module-transforms" "^7.7.4"
+ "@babel/helper-module-transforms" "^7.7.5"
"@babel/helper-plugin-utils" "^7.0.0"
babel-plugin-dynamic-import-node "^2.3.0"
-"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.5.0", "@babel/plugin-transform-modules-commonjs@^7.6.0", "@babel/plugin-transform-modules-commonjs@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3"
- integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==
+"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.4", "@babel/plugin-transform-modules-commonjs@^7.5.0", "@babel/plugin-transform-modules-commonjs@^7.6.0", "@babel/plugin-transform-modules-commonjs@^7.7.5":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345"
+ integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==
dependencies:
- "@babel/helper-module-transforms" "^7.7.4"
+ "@babel/helper-module-transforms" "^7.7.5"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-simple-access" "^7.7.4"
babel-plugin-dynamic-import-node "^2.3.0"
@@ -1030,7 +1047,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
-"@babel/plugin-transform-object-assign@^7.0.0":
+"@babel/plugin-transform-object-assign@^7.0.0", "@babel/plugin-transform-object-assign@^7.2.0":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.7.4.tgz#a31b70c434a00a078b2d4d10dbd59992fa70afca"
integrity sha512-0TpeUlnhQDwKxPLTIckdaWt46L2s61c/5w5snw1OUod5ehOJywZD98Ha3dFHVjeqkfOFtOTH7cqxddjxUuvcmg==
@@ -1045,10 +1062,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/helper-replace-supers" "^7.7.4"
-"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.4", "@babel/plugin-transform-parameters@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce"
- integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==
+"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.4", "@babel/plugin-transform-parameters@^7.7.7":
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007"
+ integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==
dependencies:
"@babel/helper-call-delegate" "^7.7.4"
"@babel/helper-get-function-arity" "^7.7.4"
@@ -1108,10 +1125,10 @@
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-syntax-jsx" "^7.7.4"
-"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.5", "@babel/plugin-transform-regenerator@^7.7.4":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0"
- integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==
+"@babel/plugin-transform-regenerator@^7.0.0", "@babel/plugin-transform-regenerator@^7.4.5", "@babel/plugin-transform-regenerator@^7.7.5":
+ version "7.7.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9"
+ integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==
dependencies:
regenerator-transform "^0.14.0"
@@ -1372,18 +1389,18 @@
semver "^5.5.0"
"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.3.1", "@babel/preset-env@^7.4.1", "@babel/preset-env@^7.4.4", "@babel/preset-env@^7.4.5", "@babel/preset-env@^7.7.0":
- version "7.7.4"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8"
- integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==
+ version "7.7.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac"
+ integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==
dependencies:
"@babel/helper-module-imports" "^7.7.4"
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-async-generator-functions" "^7.7.4"
"@babel/plugin-proposal-dynamic-import" "^7.7.4"
"@babel/plugin-proposal-json-strings" "^7.7.4"
- "@babel/plugin-proposal-object-rest-spread" "^7.7.4"
+ "@babel/plugin-proposal-object-rest-spread" "^7.7.7"
"@babel/plugin-proposal-optional-catch-binding" "^7.7.4"
- "@babel/plugin-proposal-unicode-property-regex" "^7.7.4"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.7.7"
"@babel/plugin-syntax-async-generators" "^7.7.4"
"@babel/plugin-syntax-dynamic-import" "^7.7.4"
"@babel/plugin-syntax-json-strings" "^7.7.4"
@@ -1397,23 +1414,23 @@
"@babel/plugin-transform-classes" "^7.7.4"
"@babel/plugin-transform-computed-properties" "^7.7.4"
"@babel/plugin-transform-destructuring" "^7.7.4"
- "@babel/plugin-transform-dotall-regex" "^7.7.4"
+ "@babel/plugin-transform-dotall-regex" "^7.7.7"
"@babel/plugin-transform-duplicate-keys" "^7.7.4"
"@babel/plugin-transform-exponentiation-operator" "^7.7.4"
"@babel/plugin-transform-for-of" "^7.7.4"
"@babel/plugin-transform-function-name" "^7.7.4"
"@babel/plugin-transform-literals" "^7.7.4"
"@babel/plugin-transform-member-expression-literals" "^7.7.4"
- "@babel/plugin-transform-modules-amd" "^7.7.4"
- "@babel/plugin-transform-modules-commonjs" "^7.7.4"
+ "@babel/plugin-transform-modules-amd" "^7.7.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.7.5"
"@babel/plugin-transform-modules-systemjs" "^7.7.4"
"@babel/plugin-transform-modules-umd" "^7.7.4"
"@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4"
"@babel/plugin-transform-new-target" "^7.7.4"
"@babel/plugin-transform-object-super" "^7.7.4"
- "@babel/plugin-transform-parameters" "^7.7.4"
+ "@babel/plugin-transform-parameters" "^7.7.7"
"@babel/plugin-transform-property-literals" "^7.7.4"
- "@babel/plugin-transform-regenerator" "^7.7.4"
+ "@babel/plugin-transform-regenerator" "^7.7.5"
"@babel/plugin-transform-reserved-words" "^7.7.4"
"@babel/plugin-transform-shorthand-properties" "^7.7.4"
"@babel/plugin-transform-spread" "^7.7.4"
@@ -1423,7 +1440,7 @@
"@babel/plugin-transform-unicode-regex" "^7.7.4"
"@babel/types" "^7.7.4"
browserslist "^4.6.0"
- core-js-compat "^3.1.1"
+ core-js-compat "^3.6.0"
invariant "^2.2.2"
js-levenshtein "^1.1.3"
semver "^5.5.0"
@@ -1516,7 +1533,7 @@
"@babel/parser" "^7.7.4"
"@babel/types" "^7.7.4"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3", "@babel/traverse@^7.7.4":
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3", "@babel/traverse@^7.7.4":
version "7.7.4"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558"
integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==
@@ -1682,6 +1699,11 @@
resolved "https://registry.yarnpkg.com/@egoist/vue-to-react/-/vue-to-react-1.1.0.tgz#83c884b8608e8ee62e76c03e91ce9c26063a91ad"
integrity sha512-MwfwXHDh6ptZGLEtNLPXp2Wghteav7mzpT2Mcwl3NZWKF814i5hhHnNkVrcQQEuxUroSWQqzxLkMKSb+nhPang==
+"@ember/edition-utils@^1.1.1":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ember/edition-utils/-/edition-utils-1.2.0.tgz#a039f542dc14c8e8299c81cd5abba95e2459cfa6"
+ integrity sha512-VmVq/8saCaPdesQmftPqbFtxJWrzxNGSQ+e8x8LLe3Hjm36pJ04Q8LeORGZkAeOhldoUX9seLGmSaHeXkIqoog==
+
"@ember/test-helpers@^1.5.0":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@ember/test-helpers/-/test-helpers-1.7.1.tgz#cc22a954b3b46856518f034bd492a74e0482389f"
@@ -3563,6 +3585,23 @@
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
+"@storybook/csf@0.0.1":
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.1.tgz#95901507dc02f0bc6f9ac8ee1983e2fc5bb98ce6"
+ integrity sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==
+ dependencies:
+ lodash "^4.17.15"
+
+"@storybook/ember-cli-storybook@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@storybook/ember-cli-storybook/-/ember-cli-storybook-0.2.0.tgz#c9b0a2512266e9c1a9cb443048c8defa2f00c035"
+ integrity sha512-367fsOCf9bw7tQHDVU1RBL7qc+f5d3dfj8l0hkAbelFSzcRkH3D2aFXXdBmNHd3NBb2b++mCK5EcWIqvYLOq0w==
+ dependencies:
+ broccoli-funnel "^2.0.2"
+ cheerio "^1.0.0-rc.2"
+ ember-cli-addon-docs-yuidoc "^0.2.3"
+ ember-cli-babel "^7.1.2"
+
"@storybook/eslint-config-storybook@^2.0.0":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@storybook/eslint-config-storybook/-/eslint-config-storybook-2.1.0.tgz#db785ebad0d0e6194e3497e1600ff5be936f943f"
@@ -3591,10 +3630,10 @@
remark-lint "^6.0.4"
remark-preset-lint-recommended "^3.0.2"
-"@storybook/node-logger@^5.2.6":
- version "5.2.6"
- resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.2.6.tgz#e353aff14375bef9e922c217a0afb50f93e2ceb1"
- integrity sha512-Z3mn9CUSiG7kR2OBoz4lNeoeBS094h5d9wufZSp5S+M47L6KEXmTgNcuePKj+t8Z8KT/Ph8B63bjChseKp3DNw==
+"@storybook/node-logger@^5.2.8":
+ version "5.2.8"
+ resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.2.8.tgz#4a3df21d731014d54b9ca53d5b9a72dd350bb075"
+ integrity sha512-3TK5mx6VWbfJO+WUrqwPhTbTQ4qESTnwJY/02xPzOhvuC6tIG1QOxzi+Rq6rFlwxTpUuWh6iyDYnGIqFFQywkA==
dependencies:
chalk "^2.4.2"
core-js "^3.0.1"
@@ -3602,14 +3641,15 @@
pretty-hrtime "^1.0.3"
regenerator-runtime "^0.12.1"
-"@storybook/preset-create-react-app@^1.3.1":
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/@storybook/preset-create-react-app/-/preset-create-react-app-1.3.1.tgz#1a7cb7d58b64a2254c566f9907eab8340a531506"
- integrity sha512-atJ4Jbq5QYXRa+8wscfN1kCnDk3/Dn8RZy/xm1OVrozptjlRz2CuiJEDqfmKeIEi81fBuUs41Uc3M+VWocSklg==
+"@storybook/preset-create-react-app@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@storybook/preset-create-react-app/-/preset-create-react-app-1.5.0.tgz#214c023790545a36bb6b551d317a8dacbb7bc1a1"
+ integrity sha512-HkVmduGBPiCdtpq+rNZDzjJXEt7+KxszePDkCvnXfQMKKe+OusvmiuHwNB1A7apB7fGXPysbAgST/1G96sn61Q==
dependencies:
- "@storybook/node-logger" "^5.2.6"
- "@types/webpack" "^4.39.8"
- react-docgen-typescript-loader "^3.3.0"
+ "@storybook/node-logger" "^5.2.8"
+ "@types/webpack" "^4.41.0"
+ react-docgen-typescript-loader "^3.6.0"
+ semver "7.0.0"
"@stroncium/procfs@^1.0.0":
version "1.0.0"
@@ -3986,6 +4026,13 @@
"@types/istanbul-lib-coverage" "*"
"@types/istanbul-lib-report" "*"
+"@types/jest-diff@*":
+ version "24.3.0"
+ resolved "https://registry.yarnpkg.com/@types/jest-diff/-/jest-diff-24.3.0.tgz#29e237a3d954babfe6e23cc59b57ecd8ca8d858d"
+ integrity sha512-vx1CRDeDUwQ0Pc7v+hS61O1ETA81kD04IMEC0hS1kPyVtHDdZrokAvpF7MT9VI/fVSzicelUZNCepDvhRV1PeA==
+ dependencies:
+ jest-diff "*"
+
"@types/jest-image-snapshot@^2.8.0":
version "2.11.0"
resolved "https://registry.yarnpkg.com/@types/jest-image-snapshot/-/jest-image-snapshot-2.11.0.tgz#cd5d0188e2733df7903fa0f5fbc408b0fcf3998f"
@@ -4007,6 +4054,13 @@
dependencies:
jest-diff "^24.3.0"
+"@types/jest@24.0.22":
+ version "24.0.22"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.22.tgz#08a50be08e78aba850a1185626e71d31e2336145"
+ integrity sha512-t2OvhNZnrNjlzi2i0/cxbLVM59WN15I2r1Qtb7wDv28PnV9IzrPtagFRey/S9ezdLD0zyh1XGMQIEQND2YEfrw==
+ dependencies:
+ "@types/jest-diff" "*"
+
"@types/jest@^23.0.2", "@types/jest@^23.3.1":
version "23.3.14"
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.14.tgz#37daaf78069e7948520474c87b80092ea912520a"
@@ -4066,6 +4120,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.11.tgz#bec2961975888d964196bf0016a2f984d793d3ce"
integrity sha512-O+x6uIpa6oMNTkPuHDa9MhMMehlxLAd5QcOvKRjAFsBVpeFWTOPnXbDvILvFgFFZfQ1xh1EZi1FbXxUix+zpsQ==
+"@types/node@12.12.6":
+ version "12.12.6"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253"
+ integrity sha512-FjsYUPzEJdGXjwKqSpE0/9QEh6kzhTAeObA54rn6j3rR4C/mzpI9L0KNfoeASSPMMdxIsoJuCLDWcM/rVjIsSA==
+
"@types/node@^6.0.0":
version "6.14.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.14.9.tgz#733583e21ef0eab85a9737dfafbaa66345a92ef0"
@@ -4331,7 +4390,7 @@
"@types/source-list-map" "*"
source-map "^0.6.1"
-"@types/webpack@*", "@types/webpack@^4.39.8", "@types/webpack@^4.41.0":
+"@types/webpack@*", "@types/webpack@^4.41.0":
version "4.41.0"
resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.0.tgz#b813a044d8b0dec7dfcd7622fdbe327bde06eb9a"
integrity sha512-tWkdf9nO0zFgAY/EumUKwrDUhraHKDqCPhwfFR/R8l0qnPdgb9le0Gzhvb7uzVpouuDGBgiE//ZdY+5jcZy2TA==
@@ -5093,7 +5152,7 @@ any-observable@^0.3.0:
resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
-any-promise@^1.0.0, any-promise@^1.3.0:
+any-promise@^1.0.0, any-promise@^1.1.0, any-promise@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
@@ -5201,7 +5260,7 @@ argly@^1.0.0:
resolved "https://registry.yarnpkg.com/argly/-/argly-1.2.0.tgz#2b274e4551a29ff5e7199d2ed9788eb66ed36e60"
integrity sha1-KydORVGin/XnGZ0u2XiOtm7TbmA=
-argparse@^1.0.7:
+argparse@^1.0.7, argparse@~1.0.2:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -5433,6 +5492,11 @@ asn1.js@^4.0.0:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
+asn1@0.1.11:
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7"
+ integrity sha1-VZvhg3bQik7E2+gId9J4GGObLfc=
+
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
@@ -5445,6 +5509,11 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+assert-plus@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
+ integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
+
assert@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
@@ -5547,7 +5616,7 @@ async-limiter@^1.0.0, async-limiter@~1.0.0:
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-async-promise-queue@^1.0.3, async-promise-queue@^1.0.4:
+async-promise-queue@^1.0.3, async-promise-queue@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/async-promise-queue/-/async-promise-queue-1.0.5.tgz#cb23bce9fce903a133946a700cc85f27f09ea49d"
integrity sha512-xi0aQ1rrjPWYmqbwr18rrSKbSaXIeIwSd1J4KAgVfkq8utNbdZoht7GfvfY6swFUAMJ9obkc4WPJmtGwl+B8dw==
@@ -5576,7 +5645,7 @@ async@2.6.1:
dependencies:
lodash "^4.17.10"
-async@^0.9.0, async@^0.9.2:
+async@^0.9.0, async@^0.9.2, async@~0.9.0:
version "0.9.2"
resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
@@ -5639,6 +5708,11 @@ autoprefixer@^9.4.9, autoprefixer@^9.6.1, autoprefixer@^9.7.2:
postcss "^7.0.23"
postcss-value-parser "^4.0.2"
+aws-sign2@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63"
+ integrity sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -6048,7 +6122,7 @@ babel-plugin-debug-macros@^0.2.0-beta.6:
dependencies:
semver "^5.3.0"
-babel-plugin-debug-macros@^0.3.0:
+babel-plugin-debug-macros@^0.3.0, babel-plugin-debug-macros@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/babel-plugin-debug-macros/-/babel-plugin-debug-macros-0.3.3.tgz#29c3449d663f61c7385f5b8c72d8015b069a5cb7"
integrity sha512-E+NI8TKpxJDBbVkdWkwHrKgJi696mnRL8XYrOPYw82veNHPDORM9WIQifl6TpIo8PNy2tU2skPqbfkmHXrHKQA==
@@ -6092,6 +6166,14 @@ babel-plugin-extract-import-names@^1.5.1:
dependencies:
"@babel/helper-plugin-utils" "7.0.0"
+babel-plugin-filter-imports@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-3.0.0.tgz#a849683837ad29960da17492fb32789ab6b09a11"
+ integrity sha512-p/chjzVTgCxUqyLM0q/pfWVZS7IJTwGQMwNg0LOvuQpKiTftQgZDtkGB8XvETnUw19rRcL7bJCTopSwibTN2tA==
+ dependencies:
+ "@babel/types" "^7.4.0"
+ lodash "^4.17.11"
+
babel-plugin-htmlbars-inline-precompile@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-htmlbars-inline-precompile/-/babel-plugin-htmlbars-inline-precompile-1.0.0.tgz#a9d2f6eaad8a3f3d361602de593a8cbef8179c22"
@@ -7243,6 +7325,13 @@ boolbase@^1.0.0, boolbase@~1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+boom@0.4.x:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b"
+ integrity sha1-emNune1O/O+xnO9JR6PGffrukRs=
+ dependencies:
+ hoek "0.9.x"
+
bower-config@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/bower-config/-/bower-config-1.4.1.tgz#85fd9df367c2b8dbbd0caa4c5f2bad40cd84c2cc"
@@ -7418,7 +7507,7 @@ broccoli-babel-transpiler@^6.5.0:
rsvp "^4.8.2"
workerpool "^2.3.0"
-broccoli-babel-transpiler@^7.2.0, broccoli-babel-transpiler@^7.3.0:
+broccoli-babel-transpiler@^7.3.0:
version "7.3.0"
resolved "https://registry.yarnpkg.com/broccoli-babel-transpiler/-/broccoli-babel-transpiler-7.3.0.tgz#a0ad3a37dbf74469664bbca403d652070c2c1317"
integrity sha512-tsXNvDf3gp6g8rGkz234AhbaIRUsCdd6CM3ikfkJVB0EpC8ZAczGsFKTjENLy1etx4s7FkruW/QjI7Wfdhx6Ng==
@@ -7482,7 +7571,7 @@ broccoli-clean-css@^1.1.0:
inline-source-map-comment "^1.0.5"
json-stable-stringify "^1.0.0"
-broccoli-concat@^3.7.3:
+broccoli-concat@^3.7.4:
version "3.7.5"
resolved "https://registry.yarnpkg.com/broccoli-concat/-/broccoli-concat-3.7.5.tgz#223beda8c1184252cf08ae020a3d45ffa6a48218"
integrity sha512-rDs1Mej3Ej0Cy5yIO9oIQq5+BCv0opAwS2NW7M0BeCsAMeFM42Z/zacDUC6jKc5OV5wiHvGTyCPLnZkMe0h6kQ==
@@ -7608,7 +7697,7 @@ broccoli-merge-trees@^3.0.0, broccoli-merge-trees@^3.0.1, broccoli-merge-trees@^
broccoli-plugin "^1.3.0"
merge-trees "^2.0.0"
-broccoli-middleware@^2.0.1:
+broccoli-middleware@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/broccoli-middleware/-/broccoli-middleware-2.1.1.tgz#183635bbef4dc1241533ee001a162f013d776cb9"
integrity sha512-BK8aPhQpOLsHWiftrqXQr84XsvzUqeaN4PlCQOYg5yM0M+WKAHtX2WFXmicSQZOVgKDyh5aeoNTFkHjBAEBzwQ==
@@ -7637,6 +7726,11 @@ broccoli-module-unification-reexporter@^1.0.0:
mkdirp "^0.5.1"
walk-sync "^0.3.2"
+broccoli-node-api@^1.6.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/broccoli-node-api/-/broccoli-node-api-1.7.0.tgz#391aa6edecd2a42c63c111b4162956b2fa288cb6"
+ integrity sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==
+
broccoli-node-info@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/broccoli-node-info/-/broccoli-node-info-1.1.0.tgz#3aa2e31e07e5bdb516dd25214f7c45ba1c459412"
@@ -7666,7 +7760,7 @@ broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3:
symlink-or-copy "^1.0.1"
walk-sync "^0.3.1"
-broccoli-persistent-filter@^2.1.1, broccoli-persistent-filter@^2.2.1, broccoli-persistent-filter@^2.3.1:
+broccoli-persistent-filter@^2.2.1, broccoli-persistent-filter@^2.3.0, broccoli-persistent-filter@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-2.3.1.tgz#4a052e0e0868b344c3a2977e35a3d497aa9eca72"
integrity sha512-hVsmIgCDrl2NFM+3Gs4Cr2TA6UPaIZip99hN8mtkaUPgM8UeVnCbxelCvBjUBHo0oaaqP5jzqqnRVvb568Yu5g==
@@ -7696,7 +7790,7 @@ broccoli-plugin@1.1.0:
rimraf "^2.3.4"
symlink-or-copy "^1.0.1"
-broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0, broccoli-plugin@^1.3.1:
+broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli-plugin@^1.2.1, broccoli-plugin@^1.3.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.1.tgz#a26315732fb99ed2d9fb58f12a1e14e986b4fabd"
integrity sha512-DW8XASZkmorp+q7J4EeDEZz+LoyKLAd2XZULXyD9l4m9/hAKV3vjHmB1kiUshcWAYMgTP1m2i4NnqCE/23h6AQ==
@@ -7706,6 +7800,16 @@ broccoli-plugin@^1.0.0, broccoli-plugin@^1.1.0, broccoli-plugin@^1.2.0, broccoli
rimraf "^2.3.4"
symlink-or-copy "^1.1.8"
+broccoli-plugin@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-2.1.0.tgz#2fab6c578219cfcc64f773e9616073313fc8b334"
+ integrity sha512-ElE4caljW4slapyEhSD9jU9Uayc8SoSABWdmY9SqbV8DHNxU6xg1jJsPcMm+cXOvggR3+G+OXAYQeFjWVnznaw==
+ dependencies:
+ promise-map-series "^0.2.1"
+ quick-temp "^0.1.3"
+ rimraf "^2.3.4"
+ symlink-or-copy "^1.1.8"
+
broccoli-slow-trees@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/broccoli-slow-trees/-/broccoli-slow-trees-3.0.1.tgz#9bf2a9e2f8eb3ed3a3f2abdde988da437ccdc9b4"
@@ -7718,6 +7822,13 @@ broccoli-source@^1.1.0:
resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-1.1.0.tgz#54f0e82c8b73f46580cbbc4f578f0b32fca8f809"
integrity sha1-VPDoLItz9GWAy7xPV48LMvyo+Ak=
+broccoli-source@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/broccoli-source/-/broccoli-source-3.0.0.tgz#c7c9ba24505941b72a0244568285bc859f69dfbd"
+ integrity sha512-G4Zc8HngZIdASyQOiz/9H/0Gjc2F02EFwhWF4wiueaI+/FBrM9Ixj6Prno/1aiLIYcN0JvRC3oytN9uOVonTww==
+ dependencies:
+ broccoli-node-api "^1.6.0"
+
broccoli-sri-hash@^2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/broccoli-sri-hash/-/broccoli-sri-hash-2.1.2.tgz#bc69905ed7a381ad325cc0d02ded071328ebf3f3"
@@ -7729,44 +7840,44 @@ broccoli-sri-hash@^2.1.0:
sri-toolbox "^0.2.0"
symlink-or-copy "^1.0.1"
-broccoli-stew@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-2.1.0.tgz#ba73add17fda3b9b01d8cfb343a8b613b7136a0a"
- integrity sha512-tgCkuTWYl4uf7k7ib2D79KFEj2hCgnTUNPMnrCoAha0/4bywcNccmaZVWtL9Ex37yX5h5eAbnM/ak2ULoMwSSw==
+broccoli-stew@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/broccoli-stew/-/broccoli-stew-3.0.0.tgz#fd1d19d162ad9490b42e5c563b78c26eb1e80b95"
+ integrity sha512-NXfi+Vas24n3Ivo21GvENTI55qxKu7OwKRnCLWXld8MiLiQKQlWIq28eoARaFj0lTUFwUa4jKZeA7fW9PiWQeg==
dependencies:
broccoli-debug "^0.6.5"
broccoli-funnel "^2.0.0"
broccoli-merge-trees "^3.0.1"
- broccoli-persistent-filter "^2.1.1"
- broccoli-plugin "^1.3.1"
+ broccoli-persistent-filter "^2.3.0"
+ broccoli-plugin "^2.1.0"
chalk "^2.4.1"
- debug "^3.1.0"
+ debug "^4.1.1"
ensure-posix-path "^1.0.1"
- fs-extra "^6.0.1"
+ fs-extra "^8.0.1"
minimatch "^3.0.4"
- resolve "^1.8.1"
- rsvp "^4.8.4"
+ resolve "^1.11.1"
+ rsvp "^4.8.5"
symlink-or-copy "^1.2.0"
- walk-sync "^0.3.3"
+ walk-sync "^1.1.3"
-broccoli-uglify-sourcemap@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-2.2.0.tgz#2ff49389bdf342a550c3596750ba2dde95a8f7d4"
- integrity sha1-L/STib3zQqVQw1lnULot3pWo99Q=
+broccoli-uglify-sourcemap@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/broccoli-uglify-sourcemap/-/broccoli-uglify-sourcemap-3.2.0.tgz#d96f1d41f6c18e9a5d49af1a5ab9489cdcac1c6c"
+ integrity sha512-kkkn8v7kXdWwnZNekq+3ILuTAGkZoaoEMUYCKoER5/uokuoyTjtdYLHaE7UxHkuPEuLfjvJYv21sCCePZ74/2g==
dependencies:
- async-promise-queue "^1.0.4"
+ async-promise-queue "^1.0.5"
broccoli-plugin "^1.2.1"
- debug "^3.1.0"
- lodash.defaultsdeep "^4.6.0"
- matcher-collection "^1.0.5"
+ debug "^4.1.0"
+ lodash.defaultsdeep "^4.6.1"
+ matcher-collection "^2.0.0"
mkdirp "^0.5.0"
source-map-url "^0.4.0"
symlink-or-copy "^1.0.1"
- terser "^3.7.5"
- walk-sync "^0.3.2"
- workerpool "^2.3.0"
+ terser "^4.3.9"
+ walk-sync "^1.1.3"
+ workerpool "^5.0.1"
-broccoli@^3.1.1:
+broccoli@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/broccoli/-/broccoli-3.2.0.tgz#6b5a89b8d6d0c733d39aa23ac5b43d85f56fafab"
integrity sha512-n58yqAbV2Zbg+HXmBGBOUoDOgbCM0hMJtqvnPDF89Jwk3ZBVhD5/UKW0diY6l3DbB5+j92NCDQVd9HqO+WYFYA==
@@ -8025,14 +8136,14 @@ browserslist@^3.2.6:
caniuse-lite "^1.0.30000844"
electron-to-chromium "^1.3.47"
-browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.7.3:
- version "4.7.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.3.tgz#02341f162b6bcc1e1028e30624815d4924442dc3"
- integrity sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==
+browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.7.3, browserslist@^4.8.2:
+ version "4.8.2"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289"
+ integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==
dependencies:
- caniuse-lite "^1.0.30001010"
- electron-to-chromium "^1.3.306"
- node-releases "^1.1.40"
+ caniuse-lite "^1.0.30001015"
+ electron-to-chromium "^1.3.322"
+ node-releases "^1.1.42"
browserstack@^1.5.1:
version "1.5.3"
@@ -8470,6 +8581,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000939, can
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001012.tgz#653ec635e815b9e0fb801890923b0c2079eb34ec"
integrity sha512-7RR4Uh04t9K1uYRWzOJmzplgEOAXbfK72oVNokCdMzA67trrhPzy93ahKk1AWHiA0c58tD2P+NHqxrA8FZ+Trg==
+caniuse-lite@^1.0.30001015:
+ version "1.0.30001016"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66"
+ integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==
+
canonical-path@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/canonical-path/-/canonical-path-1.0.0.tgz#fcb470c23958def85081856be7a86e904f180d1d"
@@ -8657,7 +8773,7 @@ cheerio@^1.0.0-rc.2, cheerio@^1.0.0-rc.3:
lodash "^4.15.0"
parse5 "^3.0.1"
-"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.1.1:
+"chokidar@>=2.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.1.1, chokidar@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6"
integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==
@@ -9162,6 +9278,13 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
+combined-stream@~0.0.4:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f"
+ integrity sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=
+ dependencies:
+ delayed-stream "0.0.5"
+
comma-separated-tokens@^1.0.0:
version "1.0.7"
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.7.tgz#419cd7fb3258b1ed838dc0953167a25e152f5b59"
@@ -9368,6 +9491,18 @@ configstore@^4.0.0:
write-file-atomic "^2.0.0"
xdg-basedir "^3.0.0"
+configstore@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.0.tgz#37de662c7a49b5fe8dbcf8f6f5818d2d81ed852b"
+ integrity sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ==
+ dependencies:
+ dot-prop "^5.1.0"
+ graceful-fs "^4.1.2"
+ make-dir "^3.0.0"
+ unique-string "^2.0.0"
+ write-file-atomic "^3.0.0"
+ xdg-basedir "^4.0.0"
+
confusing-browser-globals@^1.0.7, confusing-browser-globals@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
@@ -9403,7 +9538,7 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-console-ui@^3.0.2, console-ui@^3.0.4:
+console-ui@^3.0.4, console-ui@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/console-ui/-/console-ui-3.1.1.tgz#681a0414e8b0a23ed679d0a2802e39d920801171"
integrity sha512-22y+uk4AGq9quz6kofKQjkeCIAm86+MTxT/RZMFm8fMArP2lAkzxjUjNyrw7S6wXnnB+qRnC+/2ANMTke68RTQ==
@@ -9666,13 +9801,13 @@ copy-webpack-plugin@^5.0.0:
serialize-javascript "^2.1.0"
webpack-log "^2.0.0"
-core-js-compat@^3.1.1:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.2.tgz#652fa7c54652b7f6586a893e37001df55ea2ac37"
- integrity sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==
+core-js-compat@^3.1.1, core-js-compat@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9"
+ integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==
dependencies:
- browserslist "^4.7.3"
- semver "^6.3.0"
+ browserslist "^4.8.2"
+ semver "7.0.0"
core-js-pure@^3.0.1:
version "3.4.2"
@@ -9902,6 +10037,13 @@ crypt@~0.0.1:
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
+cryptiles@0.2.x:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c"
+ integrity sha1-7ZH/HxetE9N0gohZT4pIoNJvMlw=
+ dependencies:
+ boom "0.4.x"
+
crypto-browserify@^3.0.0, crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -9929,6 +10071,11 @@ crypto-random-string@^1.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
css-blank-pseudo@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5"
@@ -10228,6 +10375,11 @@ csstype@^2.2.0, csstype@^2.5.7:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.7.tgz#20b0024c20b6718f4eda3853a1f5a1cce7f5e4a5"
integrity sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==
+ctype@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f"
+ integrity sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=
+
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -10677,6 +10829,11 @@ delay-async@1.2.0:
resolved "https://registry.yarnpkg.com/delay-async/-/delay-async-1.2.0.tgz#d62f7974868bd91980c6b9c17dc8132c6768709b"
integrity sha512-BDhPL4k42yL2c0b5zTUlMIM3/wmv77HOgZi4ya/8tOHw16GZ1i9Qj7Tmy3xt0jWb4VmpQtklLPReUtOUZUuzuQ==
+delayed-stream@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f"
+ integrity sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -11059,6 +11216,13 @@ dot-prop@^4.1.0, dot-prop@^4.1.1, dot-prop@^4.2.0:
dependencies:
is-obj "^1.0.0"
+dot-prop@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
+ integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
+ dependencies:
+ is-obj "^2.0.0"
+
dot@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/dot/-/dot-1.1.2.tgz#c7377019fc4e550798928b2b9afeb66abfa1f2f9"
@@ -11197,11 +11361,16 @@ ejs@^2.6.1, ejs@^2.7.4:
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
-electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.306, electron-to-chromium@^1.3.47:
+electron-to-chromium@^1.3.191, electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.47:
version "1.3.314"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz#c186a499ed2c9057bce9eb8dca294d6d5450facc"
integrity sha512-IKDR/xCxKFhPts7h+VaSXS02Z1mznP3fli1BbXWXeN89i2gCzKraU8qLpEid8YzKcmZdZD3Mly3cn5/lY9xsBQ==
+electron-to-chromium@^1.3.322:
+ version "1.3.322"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8"
+ integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==
+
elegant-spinner@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
@@ -11227,12 +11396,12 @@ elliptic@^6.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
-ember-ajax@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/ember-ajax/-/ember-ajax-4.0.2.tgz#ce86d52c24289657e0a230140b06a52fe453d655"
- integrity sha512-YeeeAQizQc5ioCeraxFo30y3W6mmUxmndF0ShI/Wvwfe8IhVw40jL42itaUHbo2CxKsNRZzQ8x3re65dGM0CrA==
+ember-ajax@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ember-ajax/-/ember-ajax-5.0.0.tgz#404b17c93194ab37aff86b7b8607d8edab93c9ec"
+ integrity sha512-Pet0S5VuiO7PDOwyTIF28VHdR7BpugL+jp+6PxNHRQvAq3SkKmVnXN0W06rnOgicH3xX29S46fx7czkKOGB3gA==
dependencies:
- ember-cli-babel "^6.16.0"
+ ember-cli-babel "^7.5.0"
najax "^1.0.3"
ember-assign-polyfill@^2.6.0:
@@ -11243,6 +11412,18 @@ ember-assign-polyfill@^2.6.0:
ember-cli-babel "^6.16.0"
ember-cli-version-checker "^2.0.0"
+ember-cli-addon-docs-yuidoc@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/ember-cli-addon-docs-yuidoc/-/ember-cli-addon-docs-yuidoc-0.2.3.tgz#13f7943c7ef1909d74ef9d33a719236117c17262"
+ integrity sha512-W1ASMlYnWS18qkyN4ducCAH/APQ5AljNH4rGXV81Ly6I6XHgh7WnQZdXD5eQqjc9XoruC/92hqBIIl27ykShKQ==
+ dependencies:
+ broccoli-caching-writer "^3.0.3"
+ ember-cli-babel "^7.7.3"
+ fs-extra "^5.0.0"
+ json-api-serializer "^1.11.0"
+ lodash "^4.17.5"
+ yuidocjs "^0.10.2"
+
ember-cli-app-version@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-3.2.0.tgz#7b9ad0e1b63ae0518648356ee24c703e922bc26e"
@@ -11275,7 +11456,7 @@ ember-cli-babel@^6.12.0, ember-cli-babel@^6.16.0:
ember-cli-version-checker "^2.1.2"
semver "^5.5.0"
-ember-cli-babel@^7.1.2, ember-cli-babel@^7.11.0, ember-cli-babel@^7.4.2, ember-cli-babel@^7.6.0, ember-cli-babel@^7.7.3:
+ember-cli-babel@^7.1.2, ember-cli-babel@^7.11.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.6.0, ember-cli-babel@^7.7.3:
version "7.13.0"
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.13.0.tgz#3f2c2ba7a44d7948ec927d41cf072673330f62cd"
integrity sha512-VjagtumwQP+3jsjLR64gpca5iq2o0PS1MT0PdC90COtAYqpOqNM9axYEYBamNLIuv+3vJpAoFKu8EMBC1ZlWGQ==
@@ -11397,14 +11578,6 @@ ember-cli-sri@^2.1.0:
dependencies:
broccoli-sri-hash "^2.1.0"
-ember-cli-storybook@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/ember-cli-storybook/-/ember-cli-storybook-0.1.0.tgz#f652d037c2aa591e269dca873ead6eddd18f4e81"
- integrity sha512-hcigBT1xGWX3n+WPHrOk95DJEyJ1iPhZ1Ha9ySX1vMkXp9oMf6dqrbnXUXrZcNBhZgSr/vzFD1Yjb5PF6uS1sg==
- dependencies:
- cheerio "^1.0.0-rc.2"
- ember-cli-babel "^7.1.2"
-
ember-cli-string-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1"
@@ -11428,12 +11601,12 @@ ember-cli-typescript@^2.0.2:
stagehand "^1.0.0"
walk-sync "^1.0.0"
-ember-cli-uglify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-2.1.0.tgz#4a0641fe4768d7ab7d4807aca9924cc77c544184"
- integrity sha512-lDzdAUfhGx5AMBsgyR54ibENVp/LRQuHNWNaP2SDjkAXDyuYFgW0iXIAfGbxF6+nYaesJ9Tr9AKOfTPlwxZDSg==
+ember-cli-uglify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ember-cli-uglify/-/ember-cli-uglify-3.0.0.tgz#8819665b2cc5fe70e3ba9fe7a94645209bc42fd6"
+ integrity sha512-n3QxdBfAgBdb2Cnso82Kt/nxm3ppIjnYWM8uhOEhF1aYxNXfM7AJrc+yiqTCDUR61Db8aCpHfAMvChz3kyme7g==
dependencies:
- broccoli-uglify-sourcemap "^2.1.1"
+ broccoli-uglify-sourcemap "^3.1.0"
lodash.defaultsdeep "^4.6.0"
ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.2:
@@ -11444,7 +11617,7 @@ ember-cli-version-checker@^2.0.0, ember-cli-version-checker@^2.1.2:
resolve "^1.3.3"
semver "^5.3.0"
-ember-cli-version-checker@^3.0.1, ember-cli-version-checker@^3.1.3:
+ember-cli-version-checker@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-3.1.3.tgz#7c9b4f5ff30fdebcd480b1c06c4de43bb51c522c"
integrity sha512-PZNSvpzwWgv68hcXxyjREpj3WWb81A7rtYNQq1lLEgrWIchF8ApKJjWP3NBpHjaatwILkZAV8klair5WFlXAKg==
@@ -11452,42 +11625,42 @@ ember-cli-version-checker@^3.0.1, ember-cli-version-checker@^3.1.3:
resolve-package-path "^1.2.6"
semver "^5.6.0"
-ember-cli@~3.11.0:
- version "3.11.0"
- resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.11.0.tgz#05c055fde0803b2f4034a3b5a68daaed408e632d"
- integrity sha512-YU+nGUZ3l3MbqW5BiFX9c9k3szgm41EPRGjFFLEXerOXuyFByRWYPBZDtBOGmtdWmZpiqv53JXYRweMANHWLvA==
+ember-cli@~3.14.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.14.0.tgz#9a142da77aa8c95e0bc2c70acc67c9809e9e45cf"
+ integrity sha512-ZZEArSq8ynU6FbVAQnS2Nbx2yr73EgYsAngOHKOGoJwa6YEs3LFh4lHjYsxF26Bt245lH83WnehRcdlLssNF3w==
dependencies:
- "@babel/core" "^7.4.3"
- "@babel/plugin-transform-modules-amd" "^7.2.0"
+ "@babel/core" "^7.6.2"
+ "@babel/plugin-transform-modules-amd" "^7.5.0"
amd-name-resolver "^1.3.1"
babel-plugin-module-resolver "^3.2.0"
bower-config "^1.4.1"
bower-endpoint-parser "0.2.2"
- broccoli "^3.1.1"
+ broccoli "^3.2.0"
broccoli-amd-funnel "^2.0.1"
- broccoli-babel-transpiler "^7.2.0"
+ broccoli-babel-transpiler "^7.3.0"
broccoli-builder "^0.18.14"
- broccoli-concat "^3.7.3"
+ broccoli-concat "^3.7.4"
broccoli-config-loader "^1.0.1"
broccoli-config-replace "^1.1.2"
broccoli-debug "^0.6.5"
broccoli-funnel "^2.0.2"
broccoli-funnel-reducer "^1.0.0"
broccoli-merge-trees "^3.0.2"
- broccoli-middleware "^2.0.1"
+ broccoli-middleware "^2.1.0"
broccoli-module-normalizer "^1.3.0"
broccoli-module-unification-reexporter "^1.0.0"
broccoli-slow-trees "^3.0.1"
- broccoli-source "^1.1.0"
- broccoli-stew "^2.1.0"
+ broccoli-source "^3.0.0"
+ broccoli-stew "^3.0.0"
calculate-cache-key-for-tree "^2.0.0"
capture-exit "^2.0.0"
chalk "^2.4.2"
ci-info "^2.0.0"
clean-base-url "^1.0.0"
compression "^1.7.4"
- configstore "^4.0.0"
- console-ui "^3.0.2"
+ configstore "^5.0.0"
+ console-ui "^3.1.1"
core-object "^3.1.5"
dag-map "^2.0.2"
diff "^4.0.1"
@@ -11497,57 +11670,57 @@ ember-cli@~3.11.0:
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-preprocess-registry "^3.3.0"
ember-cli-string-utils "^1.1.0"
- ember-source-channel-url "^1.1.0"
+ ember-source-channel-url "^2.0.1"
ensure-posix-path "^1.0.2"
execa "^1.0.0"
exit "^0.1.2"
express "^4.16.4"
- filesize "^4.1.2"
- find-up "^3.0.0"
+ filesize "^4.2.0"
+ find-up "^4.1.0"
find-yarn-workspace-root "^1.2.1"
- fs-extra "^7.0.1"
+ fs-extra "^8.1.0"
fs-tree-diff "^2.0.1"
get-caller-file "^2.0.5"
git-repo-info "^2.1.0"
glob "^7.1.4"
heimdalljs "^0.2.6"
- heimdalljs-fs-monitor "^0.2.2"
- heimdalljs-graph "^0.3.5"
+ heimdalljs-fs-monitor "^0.2.3"
+ heimdalljs-graph "^1.0.0"
heimdalljs-logger "^0.1.10"
- http-proxy "^1.17.0"
+ http-proxy "^1.18.0"
inflection "^1.12.0"
is-git-url "^1.0.0"
isbinaryfile "^3.0.3"
js-yaml "^3.13.1"
json-stable-stringify "^1.0.1"
leek "0.0.24"
- lodash.template "^4.4.0"
- markdown-it "^8.4.2"
+ lodash.template "^4.5.0"
+ markdown-it "^9.1.0"
markdown-it-terminal "0.1.0"
minimatch "^3.0.4"
morgan "^1.9.1"
nopt "^3.0.6"
- npm-package-arg "^6.1.0"
- p-defer "^2.1.0"
- portfinder "^1.0.20"
+ npm-package-arg "^6.1.1"
+ p-defer "^3.0.0"
+ portfinder "^1.0.23"
promise-map-series "^0.2.3"
- promise.prototype.finally "^3.1.0"
+ promise.prototype.finally "^3.1.1"
quick-temp "^0.1.8"
- resolve "^1.10.1"
+ resolve "^1.12.0"
resolve-package-path "^1.2.7"
- rsvp "^4.8.4"
+ rsvp "^4.8.5"
sane "^4.1.0"
- semver "^6.0.0"
+ semver "^6.3.0"
silent-error "^1.1.1"
sort-package-json "^1.22.1"
symlink-or-copy "^1.2.0"
temp "0.9.0"
- testem "^2.14.0"
+ testem "^2.17.0"
tiny-lr "^1.1.1"
- tree-sync "^1.4.0"
- uuid "^3.3.2"
- walk-sync "^1.1.3"
- watch-detector "^0.1.0"
+ tree-sync "^2.0.0"
+ uuid "^3.3.3"
+ walk-sync "^2.0.2"
+ watch-detector "^1.0.0"
yam "^1.0.0"
ember-load-initializers@^2.0.0:
@@ -11576,39 +11749,50 @@ ember-rfc176-data@^0.3.1, ember-rfc176-data@^0.3.12:
resolved "https://registry.yarnpkg.com/ember-rfc176-data/-/ember-rfc176-data-0.3.12.tgz#90d82878e69e2ac9a5438e8ce14d12c6031c5bd2"
integrity sha512-g9HeZj/gU5bfIIrGXkP7MhS2b3Vu5DfNUrYr14hy99TgIvtZETO+96QF4WOEUXGjIJdfTRjerVnQlqngPQSv1g==
-ember-router-generator@^1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee"
- integrity sha1-jtLKhv8yM2MSD8FCeBkeno8TFe4=
+ember-router-generator@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-2.0.0.tgz#d04abfed4ba8b42d166477bbce47fccc672dbde0"
+ integrity sha512-89oVHVJwmLDvGvAUWgS87KpBoRhy3aZ6U0Ql6HOmU4TrPkyaa8pM0W81wj9cIwjYprcQtN9EwzZMHnq46+oUyw==
dependencies:
- recast "^0.11.3"
+ "@babel/parser" "^7.4.5"
+ "@babel/traverse" "^7.4.5"
+ recast "^0.18.1"
-ember-source-channel-url@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/ember-source-channel-url/-/ember-source-channel-url-1.2.0.tgz#77eb9d0889e5f5370e6c70fcb2696c63ff4a34a1"
- integrity sha512-CLClcHzVf+8GoFk4176R16nwXoel70bd7DKVAY6D8M0m5fJJhbTrAPYpDA0lY8A60HZo9j/s8A8LWiGh1YmdZg==
+ember-source-channel-url@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ember-source-channel-url/-/ember-source-channel-url-2.0.1.tgz#18b88f8a00b7746e7a456b3551abb3aea18729cc"
+ integrity sha512-YlLUHW9gNvxEaohIj5exykoTZb4xj9ZRTcR4J3svv9S8rjAHJUnHmqC5Fd9onCs+NGxHo7KwR/fDwsfadbDu5Q==
dependencies:
got "^8.0.1"
-ember-source@~3.9.1:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.9.1.tgz#e6c7b08f823f9a55e448af1cc439266cabc3e65e"
- integrity sha512-0rfP1m3KbfylKNnxk4ZWy0jqwqIWGm5rb7ZZFn4zazVJFI6gEmratWadXfzwEgqG2ukRcW9F8frEk0utuaAnMg==
+ember-source@~3.15.0:
+ version "3.15.0"
+ resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.15.0.tgz#f6500c6d289ce58231bf1e6695c4974df2be7390"
+ integrity sha512-daTELJBDMGqAmQb/Puxdk1YR204/zs1DEiEMQWlqbtmhphAoDUbGi9ifJu20ajP/IcOCWw9Vp7aPzguTohWF7w==
dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/plugin-transform-block-scoping" "^7.6.2"
+ "@babel/plugin-transform-object-assign" "^7.2.0"
+ "@ember/edition-utils" "^1.1.1"
+ babel-plugin-debug-macros "^0.3.3"
+ babel-plugin-filter-imports "^3.0.0"
+ broccoli-concat "^3.7.4"
broccoli-funnel "^2.0.2"
broccoli-merge-trees "^3.0.2"
chalk "^2.4.2"
- ember-cli-babel "^7.4.2"
+ ember-cli-babel "^7.11.0"
ember-cli-get-component-path-option "^1.0.0"
ember-cli-is-package-missing "^1.0.0"
ember-cli-normalize-entity-name "^1.0.0"
ember-cli-path-utils "^1.0.0"
ember-cli-string-utils "^1.1.0"
- ember-cli-version-checker "^3.0.1"
- ember-router-generator "^1.2.3"
+ ember-cli-version-checker "^3.1.3"
+ ember-router-generator "^2.0.0"
inflection "^1.12.0"
- jquery "^3.3.1"
- resolve "^1.10.0"
+ jquery "^3.4.1"
+ resolve "^1.11.1"
+ semver "^6.1.1"
+ silent-error "^1.1.1"
ember-template-compiler@^1.9.0-alpha:
version "1.9.0-alpha"
@@ -13351,7 +13535,7 @@ express@4.16.4:
utils-merge "1.0.1"
vary "~1.1.2"
-express@^4.10.7, express@^4.16.2, express@^4.16.3, express@^4.16.4, express@^4.17.0, express@^4.17.1:
+express@^4.10.7, express@^4.13.1, express@^4.16.2, express@^4.16.3, express@^4.16.4, express@^4.17.0, express@^4.17.1:
version "4.17.1"
resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
@@ -13798,7 +13982,7 @@ filesize@3.6.1, filesize@^3.6.0, filesize@^3.6.1:
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
-filesize@^4.1.2:
+filesize@^4.2.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-4.2.1.tgz#ab1cb2069db5d415911c1a13e144c0e743bc89bc"
integrity sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==
@@ -14107,6 +14291,11 @@ foreach@^2.0.5:
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
+forever-agent@~0.5.0:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130"
+ integrity sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -14127,13 +14316,13 @@ fork-ts-checker-webpack-plugin@1.5.0:
worker-rpc "^0.1.0"
fork-ts-checker-webpack-plugin@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.0.tgz#fb411a4b2c3697e1cd7f83436d4feeacbcc70c7b"
- integrity sha512-6OkRfjuNMNqb14f01xokcWcKV5Ekknc2FvziNpcTYru+kxIYFA2MtuuBI19MHThZnjSBhoi35Dcq+I0oUkFjmQ==
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19"
+ integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==
dependencies:
babel-code-frame "^6.22.0"
chalk "^2.4.1"
- chokidar "^2.0.4"
+ chokidar "^3.3.0"
micromatch "^3.1.10"
minimatch "^3.0.4"
semver "^5.6.0"
@@ -14158,6 +14347,15 @@ form-data@^2.5.0:
combined-stream "^1.0.6"
mime-types "^2.1.12"
+form-data@~0.1.0:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12"
+ integrity sha1-kavXiKupcCsaq/qLwBAxoqyeOxI=
+ dependencies:
+ async "~0.9.0"
+ combined-stream "~0.0.4"
+ mime "~1.2.11"
+
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
@@ -15454,12 +15652,22 @@ hasurl@^1.0.0:
resolved "https://registry.yarnpkg.com/hasurl/-/hasurl-1.0.0.tgz#e4c619097ae1e8fc906bee904ce47e94f5e1ea37"
integrity sha512-43ypUd3DbwyCT01UYpA99AEZxZ4aKtRxWGBHEIbjcOsUghd9YUON0C+JF6isNjaiwC/UF5neaUudy6JS9jZPZQ==
+hawk@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9"
+ integrity sha1-h81JH5tG5OKurKM1QWdmiF0tHtk=
+ dependencies:
+ boom "0.4.x"
+ cryptiles "0.2.x"
+ hoek "0.9.x"
+ sntp "0.2.x"
+
he@1.2.x, he@^1.1.0, he@^1.1.1, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-heimdalljs-fs-monitor@^0.2.2:
+heimdalljs-fs-monitor@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/heimdalljs-fs-monitor/-/heimdalljs-fs-monitor-0.2.3.tgz#1aedd4b1c61d86c51f6141fb75c5a3350dc41b15"
integrity sha512-fYAvqSP0CxeOjLrt61B4wux/jqZzdZnS2xfb2oc14NP6BTZ8gtgtR2op6gKFakOR8lm8GN9Xhz1K4A1ZvJ4RQw==
@@ -15467,10 +15675,10 @@ heimdalljs-fs-monitor@^0.2.2:
heimdalljs "^0.2.3"
heimdalljs-logger "^0.1.7"
-heimdalljs-graph@^0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/heimdalljs-graph/-/heimdalljs-graph-0.3.5.tgz#420fbbc8fc3aec5963ddbbf1a5fb47921c4a5927"
- integrity sha512-szOy9WZUc7eUInEBQEsoa1G2d+oYHrn6ndZPf76eh8A9ID1zWUCEEsxP3F+CvQx9+EDrg1srdyLUmfVAr8EB4g==
+heimdalljs-graph@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/heimdalljs-graph/-/heimdalljs-graph-1.0.0.tgz#0059857952988e54f3a74bb23edaf669f8eaf6af"
+ integrity sha512-v2AsTERBss0ukm/Qv4BmXrkwsT5x6M1V5Om6E8NcDQ/ruGkERsfsuLi5T8jx8qWzKMGYlwzAd7c/idymxRaPzA==
heimdalljs-logger@^0.1.10, heimdalljs-logger@^0.1.7, heimdalljs-logger@^0.1.9:
version "0.1.10"
@@ -15506,6 +15714,11 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
+hoek@0.9.x:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505"
+ integrity sha1-PTIkYrrfB3Fup+uFuviAec3c5QU=
+
hoek@4.x.x:
version "4.2.1"
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
@@ -15810,7 +16023,7 @@ http-proxy-middleware@0.19.1, http-proxy-middleware@^0.19.1:
lodash "^4.17.11"
micromatch "^3.1.10"
-http-proxy@^1.13.1, http-proxy@^1.17.0, http-proxy@^1.8.1:
+http-proxy@^1.13.1, http-proxy@^1.17.0, http-proxy@^1.18.0, http-proxy@^1.8.1:
version "1.18.0"
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==
@@ -15847,6 +16060,15 @@ http-server@^0.11.1:
portfinder "^1.0.13"
union "~0.4.3"
+http-signature@~0.10.0:
+ version "0.10.1"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66"
+ integrity sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=
+ dependencies:
+ asn1 "0.1.11"
+ assert-plus "^0.1.5"
+ ctype "0.5.3"
+
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
@@ -16794,6 +17016,11 @@ is-obj@^1.0.0, is-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
is-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
@@ -16996,7 +17223,7 @@ is-type@0.0.1:
dependencies:
core-util-is "~1.0.0"
-is-typedarray@~1.0.0:
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
@@ -17316,7 +17543,7 @@ jest-config@^24.8.0, jest-config@^24.9.0:
pretty-format "^24.9.0"
realpath-native "^1.1.0"
-jest-diff@^24.3.0, jest-diff@^24.8.0, jest-diff@^24.9.0:
+jest-diff@*, jest-diff@^24.3.0, jest-diff@^24.8.0, jest-diff@^24.9.0:
version "24.9.0"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
@@ -17870,6 +18097,15 @@ joi@^11.1.1:
isemail "3.x.x"
topo "2.x.x"
+joi@^12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/joi/-/joi-12.0.0.tgz#46f55e68f4d9628f01bbb695902c8b307ad8d33a"
+ integrity sha512-z0FNlV4NGgjQN1fdtHYXf5kmgludM65fG/JlXzU6+rwkt9U5UWuXVYnXa2FpK0u6+qBuCmrm5byPNuiiddAHvQ==
+ dependencies:
+ hoek "4.x.x"
+ isemail "3.x.x"
+ topo "2.x.x"
+
join-component@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/join-component/-/join-component-1.1.0.tgz#b8417b750661a392bee2c2537c68b2a9d4977cd5"
@@ -17880,7 +18116,7 @@ jquery-deferred@^0.3.0:
resolved "https://registry.yarnpkg.com/jquery-deferred/-/jquery-deferred-0.3.1.tgz#596eca1caaff54f61b110962b23cafea74c35355"
integrity sha1-WW7KHKr/VPYbEQlisjyv6nTDU1U=
-jquery@^3.3.1:
+jquery@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==
@@ -17952,6 +18188,30 @@ jscodeshift@^0.6.3:
temp "^0.8.1"
write-file-atomic "^2.3.0"
+jscodeshift@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.7.0.tgz#4eee7506fd4fdacbd80340287d61575af991fdab"
+ integrity sha512-Kt6rpTa1HVhAWagD6J0y6qxxqRmDgkFvczerLgOsDNSGoUZSmq2CO1vFRcda9OV1BaZKSHCIh+VREPts5tB/Ig==
+ dependencies:
+ "@babel/core" "^7.1.6"
+ "@babel/parser" "^7.1.6"
+ "@babel/plugin-proposal-class-properties" "^7.1.0"
+ "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
+ "@babel/preset-env" "^7.1.6"
+ "@babel/preset-flow" "^7.0.0"
+ "@babel/preset-typescript" "^7.1.0"
+ "@babel/register" "^7.0.0"
+ babel-core "^7.0.0-bridge.0"
+ colors "^1.1.2"
+ flow-parser "0.*"
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ neo-async "^2.5.0"
+ node-dir "^0.1.17"
+ recast "^0.18.1"
+ temp "^0.8.1"
+ write-file-atomic "^2.3.0"
+
jsdom@^11.5.1:
version "11.12.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
@@ -18100,6 +18360,18 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+json-api-serializer@^1.11.0:
+ version "1.15.1"
+ resolved "https://registry.yarnpkg.com/json-api-serializer/-/json-api-serializer-1.15.1.tgz#241ea66dfc5c629ae46d8315c6ee4232b81bb6b7"
+ integrity sha512-dp7d/TLWudViXADFnmdiq80krYZ+zA0WeB1771O1Is8HWdeySZofhp/TPWHCzgFPmGkgwI7oTEgjgZ6Dcxr/2w==
+ dependencies:
+ into-stream "^3.1.0"
+ joi "^12.0.0"
+ lodash "^4.5.1"
+ stream-to-array "^2.3.0"
+ through2 "^2.0.3"
+ unique-stream "^2.2.1"
+
json-buffer@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
@@ -18149,7 +18421,7 @@ json-stable-stringify@~0.0.0:
dependencies:
jsonify "~0.0.0"
-json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1:
+json-stringify-safe@5.0.x, json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
@@ -18811,6 +19083,13 @@ linkify-it@^2.0.0:
dependencies:
uc.micro "^1.0.1"
+linkify-it@~1.2.0:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a"
+ integrity sha1-B3NSbDF8j9E71TTuHRgP+Iq/iBo=
+ dependencies:
+ uc.micro "^1.0.1"
+
lint-staged@^9.4.1:
version "9.4.3"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.4.3.tgz#f55ad5f94f6e105294bfd6499b23142961f7b982"
@@ -19195,7 +19474,7 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
-lodash.defaultsdeep@^4.6.0:
+lodash.defaultsdeep@^4.6.0, lodash.defaultsdeep@^4.6.1:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
@@ -19435,7 +19714,7 @@ lodash.uniqby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=
-lodash@4.17.15, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.6.0, lodash@^4.6.1, lodash@~4.17.10:
+lodash@4.17.15, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.16.2, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.0, lodash@^4.5.1, lodash@^4.6.0, lodash@^4.6.1, lodash@~4.17.10:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@@ -19751,7 +20030,18 @@ markdown-it-terminal@0.1.0:
lodash.merge "^4.6.0"
markdown-it "^8.3.1"
-markdown-it@^8.3.1, markdown-it@^8.4.0, markdown-it@^8.4.2:
+markdown-it@^4.3.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414"
+ integrity sha1-PfNz2+pYepp/7z5WMRtokI91xBQ=
+ dependencies:
+ argparse "~1.0.2"
+ entities "~1.1.1"
+ linkify-it "~1.2.0"
+ mdurl "~1.0.0"
+ uc.micro "^1.0.0"
+
+markdown-it@^8.3.1, markdown-it@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
@@ -19762,6 +20052,17 @@ markdown-it@^8.3.1, markdown-it@^8.4.0, markdown-it@^8.4.2:
mdurl "^1.0.1"
uc.micro "^1.0.5"
+markdown-it@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-9.1.0.tgz#df9601c168568704d554b1fff9af0c5b561168d9"
+ integrity sha512-xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w==
+ dependencies:
+ argparse "^1.0.7"
+ entities "~1.1.1"
+ linkify-it "^2.0.0"
+ mdurl "^1.0.1"
+ uc.micro "^1.0.5"
+
markdown-table@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60"
@@ -19893,13 +20194,21 @@ match-require@2.1.0:
dependencies:
uuid "^3.0.0"
-matcher-collection@^1.0.0, matcher-collection@^1.0.5, matcher-collection@^1.1.1:
+matcher-collection@^1.0.0, matcher-collection@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838"
integrity sha512-YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==
dependencies:
minimatch "^3.0.2"
+matcher-collection@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-2.0.1.tgz#90be1a4cf58d6f2949864f65bb3b0f3e41303b29"
+ integrity sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ minimatch "^3.0.2"
+
material-colors@^1.2.1:
version "1.2.6"
resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46"
@@ -20008,7 +20317,12 @@ mdn-data@2.0.4:
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-mdurl@^1.0.1:
+mdn-links@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/mdn-links/-/mdn-links-0.1.0.tgz#e24c83b97cb4c5886cc39f2f780705fbfe273aa5"
+ integrity sha1-4kyDuXy0xYhsw58veAcF+/4nOqU=
+
+mdurl@^1.0.1, mdurl@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
@@ -20772,6 +21086,11 @@ mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.19, mime-types@~2.1.17,
dependencies:
mime-db "1.42.0"
+mime-types@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce"
+ integrity sha1-mVrhOSq4r/y/yyZB3QVOlDwNXc4=
+
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
@@ -20787,6 +21106,11 @@ mime@^2.0.3, mime@^2.3.1, mime@^2.4.0, mime@^2.4.4:
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
+mime@~1.2.11:
+ version "1.2.11"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10"
+ integrity sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=
+
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -21467,13 +21791,20 @@ node-pre-gyp@^0.12.0:
semver "^5.3.0"
tar "^4"
-node-releases@^1.1.25, node-releases@^1.1.29, node-releases@^1.1.40:
+node-releases@^1.1.25, node-releases@^1.1.29:
version "1.1.41"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.41.tgz#57674a82a37f812d18e3b26118aefaf53a00afed"
integrity sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==
dependencies:
semver "^6.3.0"
+node-releases@^1.1.42:
+ version "1.1.43"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.43.tgz#2c6ca237f88ce11d49631f11190bb01f8d0549f2"
+ integrity sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==
+ dependencies:
+ semver "^6.3.0"
+
node-sass@^4.12.0:
version "4.13.0"
resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066"
@@ -21497,6 +21828,11 @@ node-sass@^4.12.0:
stdout-stream "^1.4.0"
"true-case-path" "^1.0.2"
+node-uuid@~1.4.0:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
+ integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
+
noop-fn@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/noop-fn/-/noop-fn-1.0.0.tgz#5f33d47f13d2150df93e0cb036699e982f78ffbf"
@@ -21631,7 +21967,7 @@ npm-package-arg@6.1.0:
semver "^5.5.0"
validate-npm-package-name "^3.0.0"
-"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0:
+"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0, npm-package-arg@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7"
integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==
@@ -21784,6 +22120,11 @@ nwsapi@^2.0.7, nwsapi@^2.0.9, nwsapi@^2.1.3, nwsapi@^2.2.0:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
+oauth-sign@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e"
+ integrity sha1-y1QPk7srIqfVlBaRoojWDo6pOG4=
+
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
@@ -22191,10 +22532,10 @@ p-defer@^1.0.0:
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-p-defer@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-2.1.0.tgz#d9c97b40f8fb5c256a70b4aabec3c1c8c42f1fae"
- integrity sha512-xMwL9id1bHn/UfNGFEMFwlULOprQUEOg6vhqSfr6oKxPFB0oSh0zhGq/9/tPSE+cyij2+RW6H8+0Ke4xsPdZ7Q==
+p-defer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83"
+ integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==
p-each-series@^1.0.0:
version "1.0.0"
@@ -23201,7 +23542,7 @@ popper.js@^1.14.4, popper.js@^1.14.7:
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3"
integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==
-portfinder@^1.0.13, portfinder@^1.0.20, portfinder@^1.0.25, portfinder@^1.0.9:
+portfinder@^1.0.13, portfinder@^1.0.23, portfinder@^1.0.25, portfinder@^1.0.9:
version "1.0.25"
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca"
integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==
@@ -24303,7 +24644,7 @@ promise.allsettled@^1.0.0:
es-abstract "^1.13.0"
function-bind "^1.1.1"
-promise.prototype.finally@^3.1.0:
+promise.prototype.finally@^3.1.0, promise.prototype.finally@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.1.tgz#cb279d3a5020ca6403b3d92357f8e22d50ed92aa"
integrity sha512-gnt8tThx0heJoI3Ms8a/JdkYBVhYP/wv+T7yQimR+kdOEJL21xTFbiJhMRqnSPcr54UVvMbsscDk2w+ivyaLPw==
@@ -24666,6 +25007,11 @@ qs@^6.2.0, qs@^6.4.0, qs@^6.5.0, qs@^6.6.0:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9"
integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==
+qs@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768"
+ integrity sha1-UKk+K1r2aRwxvOpdrnjubqGQN2g=
+
qs@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404"
@@ -25227,7 +25573,7 @@ react-devtools-core@^3.4.2, react-devtools-core@^3.6.0:
shell-quote "^1.6.1"
ws "^3.3.1"
-react-docgen-typescript-loader@^3.3.0:
+react-docgen-typescript-loader@^3.3.0, react-docgen-typescript-loader@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/react-docgen-typescript-loader/-/react-docgen-typescript-loader-3.6.0.tgz#5515f03f869e66d49e287c5f1e7ec10f2084f7bb"
integrity sha512-+uEsM3VYCdlcBGxF3tBqI5XWL1phvrh8dkiIfdpciKlM1BDHW+d82kKJI9hX6zk9H8TL+3Th/j/JAEaKb5FFNw==
@@ -25265,15 +25611,25 @@ react-dom@^15.4.2:
object-assign "^4.1.0"
prop-types "^15.5.10"
-react-dom@^16.10.2, react-dom@^16.8.3, react-dom@^16.8.4:
- version "16.12.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11"
- integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==
+react-dom@^16.10.2:
+ version "16.10.2"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.10.2.tgz#4840bce5409176bc3a1f2bd8cb10b92db452fda6"
+ integrity sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.18.0"
+ scheduler "^0.16.2"
+
+react-dom@^16.11.0, react-dom@^16.8.3, react-dom@^16.8.4:
+ version "16.11.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.11.0.tgz#7e7c4a5a85a569d565c2462f5d345da2dd849af5"
+ integrity sha512-nrRyIUE1e7j8PaXSPtyRKtz+2y9ubW/ghNgqKFHHAHaeP0fpF5uXR+sq8IMRHC+ZUxw7W9NyCDTBtwWxvkb0iA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.2"
+ scheduler "^0.17.0"
react-draggable@^4.0.3:
version "4.1.0"
@@ -25879,6 +26235,15 @@ react@^15.4.2:
object-assign "^4.1.0"
prop-types "^15.5.10"
+react@^16.11.0:
+ version "16.11.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz#d294545fe62299ccee83363599bf904e4a07fdbb"
+ integrity sha512-M5Y8yITaLmU0ynd0r1Yvfq98Rmll6q8AxaEe88c8e7LxO8fZ2cNgmFt0aGAS9wzf1Ao32NKXtCl+/tVVtkxq6g==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ prop-types "^15.6.2"
+
reactcss@^1.2.0:
version "1.2.3"
resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd"
@@ -26122,16 +26487,6 @@ realpath-native@^1.1.0:
dependencies:
util.promisify "^1.0.0"
-recast@^0.11.3, recast@~0.11.12:
- version "0.11.23"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
- integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=
- dependencies:
- ast-types "0.9.6"
- esprima "~3.1.0"
- private "~0.1.5"
- source-map "~0.5.0"
-
recast@^0.14.7:
version "0.14.7"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d"
@@ -26172,6 +26527,16 @@ recast@^0.18.1:
private "^0.1.8"
source-map "~0.6.1"
+recast@~0.11.12:
+ version "0.11.23"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3"
+ integrity sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=
+ dependencies:
+ ast-types "0.9.6"
+ esprima "~3.1.0"
+ private "~0.1.5"
+ source-map "~0.5.0"
+
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
@@ -26853,6 +27218,26 @@ request@2.88.0, "request@>=2.76.0 <3.0.0", request@^2.81.0, request@^2.83.0, req
tunnel-agent "^0.6.0"
uuid "^3.3.2"
+request@~2.40.0:
+ version "2.40.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67"
+ integrity sha1-TdZw9pbx5uhC5mtLXoOTAaub62c=
+ dependencies:
+ forever-agent "~0.5.0"
+ json-stringify-safe "~5.0.0"
+ mime-types "~1.0.1"
+ node-uuid "~1.4.0"
+ qs "~1.0.0"
+ optionalDependencies:
+ aws-sign2 "~0.5.0"
+ form-data "~0.1.0"
+ hawk "1.1.1"
+ http-signature "~0.10.0"
+ oauth-sign "~0.3.0"
+ stringstream "~0.0.4"
+ tough-cookie ">=0.12.0"
+ tunnel-agent "~0.4.0"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -27001,10 +27386,10 @@ resolve@1.12.0:
dependencies:
path-parse "^1.0.6"
-resolve@1.x, resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.2.tgz#08b12496d9aa8659c75f534a8f05f0d892fff594"
- integrity sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==
+resolve@1.x, resolve@^1.1.4, resolve@^1.1.5, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
+ integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
dependencies:
path-parse "^1.0.6"
@@ -27115,7 +27500,7 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@2, rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@2, rimraf@^2.2.8, rimraf@^2.3.4, rimraf@^2.4.1, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -27271,7 +27656,7 @@ rsvp@^3.0.14, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==
-rsvp@^4.7.0, rsvp@^4.8.1, rsvp@^4.8.2, rsvp@^4.8.4:
+rsvp@^4.7.0, rsvp@^4.8.1, rsvp@^4.8.2, rsvp@^4.8.4, rsvp@^4.8.5:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
@@ -27538,6 +27923,14 @@ scheduler@^0.16.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+scheduler@^0.17.0:
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.17.0.tgz#7c9c673e4ec781fac853927916d1c426b6f3ddfe"
+ integrity sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
scheduler@^0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4"
@@ -27689,6 +28082,11 @@ semver@6.3.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
semver@~5.3.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -27748,9 +28146,9 @@ serialize-javascript@^2.1.0:
integrity sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ==
serialize-to-js@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-3.0.0.tgz#1fd8736744819a4df29dc85e9d04a44a4984edc3"
- integrity sha512-WdGgi0jGnWCQXph2p3vkxceDnTfvfyXfYxherQMRcZjSaJzMQdMBAW6i0nojsBKIZ3fFOztZKKVbbm05VbIdRA==
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-3.0.2.tgz#d71834a18135aff742e516d3b2208f662a46a8ac"
+ integrity sha512-o5FqeMyxGx1wkp8p14q9QqGXh1JjXtIDYTr15N/B4ThM5ULqlpXdtOO84m950jFGvBkeRD1utW+WyNKvao2ybQ==
serve-favicon@^2.5.0:
version "2.5.0"
@@ -28187,6 +28585,13 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+sntp@0.2.x:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900"
+ integrity sha1-+4hfGLDzqtGJ+CSGJTa87ux1CQA=
+ dependencies:
+ hoek "0.9.x"
+
socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
@@ -28884,6 +29289,13 @@ stream-splicer@^2.0.0:
inherits "^2.0.1"
readable-stream "^2.0.2"
+stream-to-array@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353"
+ integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=
+ dependencies:
+ any-promise "^1.1.0"
+
stream-to-observable@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe"
@@ -29069,6 +29481,11 @@ stringify-package@^1.0.0:
resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85"
integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==
+stringstream@~0.0.4:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
+ integrity sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==
+
strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -29670,7 +30087,7 @@ terser@4.3.9:
source-map "~0.6.1"
source-map-support "~0.5.12"
-terser@^3.16.1, terser@^3.17.0, terser@^3.7.3, terser@^3.7.5:
+terser@^3.16.1, terser@^3.17.0, terser@^3.7.3:
version "3.17.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2"
integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==
@@ -29709,7 +30126,7 @@ test-exclude@^5.2.3:
read-pkg-up "^4.0.0"
require-main-filename "^2.0.0"
-testem@^2.14.0:
+testem@^2.17.0:
version "2.17.0"
resolved "https://registry.yarnpkg.com/testem/-/testem-2.17.0.tgz#1cb4a2a90524a088803dfe52fbf197a6fd73c883"
integrity sha512-PLkIlT523w5rTJPWwR4TL1EiAEa941ECV7d4pMqsB0YdnH+sCTz0loWMKCUSdhR+VijveAZ6anE/JHehE7KqMQ==
@@ -29788,7 +30205,15 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-through2@^2.0.0, through2@^2.0.2, through2@~2.0.3:
+through2-filter@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
+ integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ dependencies:
+ through2 "~2.0.0"
+ xtend "~4.0.0"
+
+through2@^2.0.0, through2@^2.0.2, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -30021,7 +30446,7 @@ toposort@^2.0.2:
resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
-tough-cookie@>=2.3.3, tough-cookie@^3.0.1:
+tough-cookie@>=0.12.0, tough-cookie@>=2.3.3, tough-cookie@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
@@ -30083,7 +30508,7 @@ tree-kill@1.2.1, tree-kill@^1.1.0, tree-kill@^1.2.1:
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a"
integrity sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==
-tree-sync@^1.2.2, tree-sync@^1.4.0:
+tree-sync@^1.2.2:
version "1.4.0"
resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.4.0.tgz#314598d13abaf752547d9335b8f95d9a137100d6"
integrity sha512-YvYllqh3qrR5TAYZZTXdspnIhlKAYezPYw11ntmweoceu4VK+keN356phHRIIo1d+RDmLpHZrUlmxga2gc9kSQ==
@@ -30094,6 +30519,17 @@ tree-sync@^1.2.2, tree-sync@^1.4.0:
quick-temp "^0.1.5"
walk-sync "^0.3.3"
+tree-sync@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-2.0.0.tgz#e51456731d5ac93b92f9a1d58dd383f76f0f2f39"
+ integrity sha512-AzeJnbmJjGVfWMTJ0T152fv8NDTbQc9ERY4nEs7Lmxd94Xah2bUS56+CcoTh6FB8qn2KjBMjC0mLNc731aVBqw==
+ dependencies:
+ debug "^2.2.0"
+ fs-tree-diff "^0.5.6"
+ mkdirp "^0.5.1"
+ quick-temp "^0.1.5"
+ walk-sync "^0.3.3"
+
trim-lines@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz#c8adbdbdae21bb5c2766240a661f693afe23e59b"
@@ -30372,6 +30808,11 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
+tunnel-agent@~0.4.0:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
+ integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=
+
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
@@ -30442,6 +30883,13 @@ typed-styles@^0.0.7:
resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9"
integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -30472,7 +30920,7 @@ ua-parser-js@^0.7.18, ua-parser-js@^0.7.19:
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.20.tgz#7527178b82f6a62a0f243d1f94fd30e3e3c21098"
integrity sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==
-uc.micro@^1.0.1, uc.micro@^1.0.5:
+uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
@@ -30817,6 +31265,14 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
+unique-stream@^2.2.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
+ integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
+ dependencies:
+ json-stable-stringify-without-jsonify "^1.0.1"
+ through2-filter "^3.0.0"
+
unique-string@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
@@ -30824,6 +31280,13 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+ dependencies:
+ crypto-random-string "^2.0.0"
+
unist-builder@1.0.4, unist-builder@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17"
@@ -31403,12 +31866,13 @@ vue-docgen-api@^4.1.0:
ts-map "^1.0.3"
vue-template-compiler "^2.0.0"
-vue-docgen-loader@^1.0.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/vue-docgen-loader/-/vue-docgen-loader-1.1.1.tgz#209dd9eda337743a9dc70602ca1617eb8ca86848"
- integrity sha512-CBfjAMQ0E4vouUCeT8N8bwZX3k8wHrSS/nKLksAiFY20sH8kc5PWQpmPuhzX4H44QIB8GvR1jr0r3x+I/gh2gw==
+vue-docgen-loader@^1.3.0-beta.0:
+ version "1.3.0-beta.1"
+ resolved "https://registry.yarnpkg.com/vue-docgen-loader/-/vue-docgen-loader-1.3.0-beta.1.tgz#e72972e7d3c1b37679ec303180ec72c1d1d8d13a"
+ integrity sha512-842c/87P4T4wChDzuoFs0Iuni66Fe4ztlRi0XFJg1e7EN0IRZEAvgbkE2vT2BcGkQQkhB7VNFjmYSEEucz7BwQ==
dependencies:
clone "^2.1.2"
+ jscodeshift "^0.7.0"
loader-utils "^1.2.3"
querystring "^0.2.0"
@@ -31523,6 +31987,15 @@ walk-sync@^1.0.0, walk-sync@^1.1.3:
ensure-posix-path "^1.1.0"
matcher-collection "^1.1.1"
+walk-sync@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-2.0.2.tgz#5ea8a28377c8be68c92d50f4007ea381725da14b"
+ integrity sha512-dCZkrxfHjPn7tIvdYrX3uMD/R0beVrHpA8lROQ5wWrl8psJgR6xwCkwqTFes0dNujbS2o/ITpvSYgIFsLsf13A==
+ dependencies:
+ "@types/minimatch" "^3.0.3"
+ ensure-posix-path "^1.1.0"
+ matcher-collection "^2.0.0"
+
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
@@ -31560,6 +32033,16 @@ watch-detector@^0.1.0:
semver "^5.4.1"
silent-error "^1.1.0"
+watch-detector@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/watch-detector/-/watch-detector-1.0.0.tgz#c7b722d8695fee9ab6071e0f38f258e6adb22609"
+ integrity sha512-siywMl3fXK30Tlpu/dUBHhlpxhQmHdguZ8OIb813eU9lrVmmsJa9k0+n1HtJ+7p3SzFCPq2XbmR3GUYpPC3TBA==
+ dependencies:
+ heimdalljs-logger "^0.1.10"
+ semver "^6.3.0"
+ silent-error "^1.1.1"
+ tmp "^0.1.0"
+
watch@~0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986"
@@ -32475,6 +32958,11 @@ workerpool@^3.1.1:
object-assign "4.1.1"
rsvp "^4.8.4"
+workerpool@^5.0.1:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-5.0.2.tgz#8fd8f6c7250710b9c3143d5f7494db3b6633ce6e"
+ integrity sha512-RsXfHGFzbqrfrExTN1TyZobWXCN6+vbn9B1CsZ5zQ2ASA2kQaYONCGOAT88Ew+kNSaRq/XmApRC/HRSv9Z98Ng==
+
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -32540,6 +33028,16 @@ write-file-atomic@^2.0.0, write-file-atomic@^2.3.0, write-file-atomic@^2.4.2:
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
+write-file-atomic@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b"
+ integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw==
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
write-json-file@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f"
@@ -32657,6 +33155,11 @@ xdg-basedir@^3.0.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
+xdg-basedir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+ integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
xdg-trashdir@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/xdg-trashdir/-/xdg-trashdir-2.1.1.tgz#59a60aaf8e6f9240c1daed9a0944b2f514c27d8e"
@@ -32729,7 +33232,7 @@ xregexp@4.0.0:
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
-xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:
+xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -33029,6 +33532,26 @@ yn@^3.0.0:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+yui@^3.18.1:
+ version "3.18.1"
+ resolved "https://registry.yarnpkg.com/yui/-/yui-3.18.1.tgz#e000269ec0a7b6fbc741cbb8fcbd0e65117b014c"
+ integrity sha1-4AAmnsCntvvHQcu4/L0OZRF7AUw=
+ dependencies:
+ request "~2.40.0"
+
+yuidocjs@^0.10.2:
+ version "0.10.2"
+ resolved "https://registry.yarnpkg.com/yuidocjs/-/yuidocjs-0.10.2.tgz#33924967ce619024cd70ef694e267d2f988f73f6"
+ integrity sha1-M5JJZ85hkCTNcO9pTiZ9L5iPc/Y=
+ dependencies:
+ express "^4.13.1"
+ graceful-fs "^4.1.2"
+ markdown-it "^4.3.0"
+ mdn-links "^0.1.0"
+ minimatch "^3.0.2"
+ rimraf "^2.4.1"
+ yui "^3.18.1"
+
yup@^0.27.0:
version "0.27.0"
resolved "https://registry.yarnpkg.com/yup/-/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7"