diff --git a/package.json b/package.json index c9fb4f57c34..2220f0f076b 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "babel-loader": "8.0.5", "babel-plugin-angularjs-annotate": "0.10.0", "clean-webpack-plugin": "2.0.0", - "core-js": "2.6.9", "css-loader": "2.1.1", "enzyme": "3.9.0", "enzyme-adapter-react-16": "1.11.2", @@ -209,6 +208,7 @@ "calculate-size": "1.1.1", "classnames": "2.2.6", "clipboard": "2.0.4", + "core-js": "2.6.9", "d3": "4.13.0", "d3-scale-chromatic": "1.5.0", "eventemitter3": "2.0.3", diff --git a/packages/grafana-ui/.storybook/config.ts b/packages/grafana-ui/.storybook/config.ts index 9c32f3c7e34..d1e434f0d5f 100644 --- a/packages/grafana-ui/.storybook/config.ts +++ b/packages/grafana-ui/.storybook/config.ts @@ -1,7 +1,3 @@ -import { configure, addDecorator } from '@storybook/react'; -import { withKnobs } from '@storybook/addon-knobs'; -import { withTheme } from '../src/utils/storybook/withTheme'; -import { withPaddedStory } from '../src/utils/storybook/withPaddedStory'; import 'jquery'; import '../../../public/vendor/flot/jquery.flot.js'; import '../../../public/vendor/flot/jquery.flot.selection'; @@ -13,12 +9,16 @@ import '../../../public/vendor/flot/jquery.flot.fillbelow'; import '../../../public/vendor/flot/jquery.flot.crosshair'; import '../../../public/vendor/flot/jquery.flot.dashes'; import '../../../public/vendor/flot/jquery.flot.gauge'; +import { withTheme } from '../src/utils/storybook/withTheme'; +import { withPaddedStory } from '../src/utils/storybook/withPaddedStory'; // @ts-ignore import lightTheme from '../../../public/sass/grafana.light.scss'; // @ts-ignore import darkTheme from '../../../public/sass/grafana.dark.scss'; +import { configure, addDecorator, addParameters } from '@storybook/react'; +import { withKnobs } from '@storybook/addon-knobs'; -const handleThemeChange = (theme: string) => { +const handleThemeChange = (theme: any) => { if (theme !== 'light') { lightTheme.unuse(); darkTheme.use(); @@ -27,15 +27,24 @@ const handleThemeChange = (theme: string) => { lightTheme.use(); } }; -// automatically import all files ending in *.stories.tsx -const req = require.context('../src', true, /.story.tsx$/); +addDecorator(withTheme(handleThemeChange)); addDecorator(withKnobs); addDecorator(withPaddedStory); -addDecorator(withTheme(handleThemeChange)); -function loadStories() { - req.keys().forEach(req); -} +addParameters({ + options: { + showPanel: true, + panelPosition: 'bottom', + showNav: true, + isFullscreen: false, + isToolshown: true, + storySort: (a: any, b: any) => a[1].id.localeCompare(b[1].id), + }, + knobs: { + escapeHTML: false, + }, +}); -configure(loadStories, module); +// @ts-ignore +configure(require.context('../src', true, /\.story\.(js|jsx|ts|tsx|mdx)$/), module); diff --git a/packages/grafana-ui/.storybook/presets.ts b/packages/grafana-ui/.storybook/presets.ts new file mode 100644 index 00000000000..52b38df35b2 --- /dev/null +++ b/packages/grafana-ui/.storybook/presets.ts @@ -0,0 +1,8 @@ +const path = require('path'); + +module.exports = [ + { + name: '@storybook/addon-docs/react/preset', + options: { configureJSX: true, babelOptions: {}, sourceLoaderOptions: null }, + }, +]; diff --git a/packages/grafana-ui/.storybook/webpack.config.js b/packages/grafana-ui/.storybook/webpack.config.js index 3bcdca087a0..37d6ed67edc 100644 --- a/packages/grafana-ui/.storybook/webpack.config.js +++ b/packages/grafana-ui/.storybook/webpack.config.js @@ -1,15 +1,35 @@ const path = require('path'); +module.exports = ({ config, mode }) => { + config.module.rules = [ + ...(config.module.rules || []), + { + test: /\.tsx?$/, + use: [ + { + loader: require.resolve('ts-loader'), + options: { + // transpileOnly: true, + configFile: path.resolve(__dirname, '../tsconfig.json'), + }, + }, + { + loader: require.resolve('react-docgen-typescript-loader'), + options: { + tsconfigPath: path.resolve(__dirname, '../tsconfig.json'), + // https://github.com/styleguidist/react-docgen-typescript#parseroptions + // @ts-ignore + propFilter: prop => { + if (prop.parent) { + return !prop.parent.fileName.includes('node_modules/@types/react/'); + } -module.exports = ({config, mode}) => { - config.module.rules.push({ - test: /\.(ts|tsx)$/, - use: [ - { - loader: require.resolve('ts-loader'), - options: {} - }, - ], - }); + return true; + }, + }, + }, + ], + }, + ]; config.module.rules.push({ test: /\.scss$/, @@ -54,6 +74,8 @@ module.exports = ({config, mode}) => { }); config.resolve.extensions.push('.ts', '.tsx'); - + config.stats = { + warningsFilter: /export .* was not found in/, + }; return config; }; diff --git a/packages/grafana-ui/package.json b/packages/grafana-ui/package.json index dd0d1b6bd69..c234399e4fc 100644 --- a/packages/grafana-ui/package.json +++ b/packages/grafana-ui/package.json @@ -55,6 +55,7 @@ }, "devDependencies": { "@storybook/addon-actions": "5.2.4", + "@storybook/addon-docs": "^5.2.4", "@storybook/addon-info": "5.2.4", "@storybook/addon-knobs": "5.2.4", "@storybook/react": "5.2.4", @@ -77,8 +78,7 @@ "@types/tinycolor2": "1.4.1", "common-tags": "^1.8.0", "pretty-format": "24.9.0", - "react-docgen-typescript-loader": "3.0.1", - "react-docgen-typescript-webpack-plugin": "1.1.0", + "react-docgen-typescript-loader": "3.3.0", "react-test-renderer": "16.8.4", "rollup": "1.6.0", "rollup-plugin-commonjs": "9.2.1", diff --git a/packages/grafana-ui/src/Intro.story.mdx b/packages/grafana-ui/src/Intro.story.mdx new file mode 100644 index 00000000000..937b84e3ed2 --- /dev/null +++ b/packages/grafana-ui/src/Intro.story.mdx @@ -0,0 +1,5 @@ + + +# @grafana/ui + +Welcome to @grafana/ui diff --git a/packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx b/packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx index 227a8876a0e..6854090e324 100644 --- a/packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx +++ b/packages/grafana-ui/src/components/DataLinks/DataLinksEditor.tsx @@ -1,5 +1,5 @@ // Libraries -import React, { FC, useContext } from 'react'; +import React, { FC, useContext, useEffect } from 'react'; // @ts-ignore import Prism from 'prismjs'; // Components @@ -17,15 +17,21 @@ interface DataLinksEditorProps { maxLinks?: number; } -Prism.languages['links'] = { - builtInVariable: { - pattern: /(\${\S+?})/, - }, +export const enableDatalinksPrismSyntax = () => { + Prism.languages['links'] = { + builtInVariable: { + pattern: /(\${\S+?})/, + }, + }; }; export const DataLinksEditor: FC = React.memo(({ value, onChange, suggestions, maxLinks }) => { const theme = useContext(ThemeContext); + useEffect(() => { + enableDatalinksPrismSyntax(); + }); + const onAdd = () => { onChange(value ? [...value, { url: '', title: '' }] : [{ url: '', title: '' }]); }; diff --git a/packages/grafana-ui/src/components/DataSourceSettings/DataSourceHttpSettings.tsx b/packages/grafana-ui/src/components/DataSourceSettings/DataSourceHttpSettings.tsx index 0373fe03db1..4e55ef93281 100644 --- a/packages/grafana-ui/src/components/DataSourceSettings/DataSourceHttpSettings.tsx +++ b/packages/grafana-ui/src/components/DataSourceSettings/DataSourceHttpSettings.tsx @@ -1,13 +1,18 @@ import React, { useState, useCallback } from 'react'; import { SelectableValue } from '@grafana/data'; import { css, cx } from 'emotion'; -import { FormField, FormLabel, Input, Select, Switch, TagsInput } from '..'; import { useTheme } from '../../themes'; import { BasicAuthSettings } from './BasicAuthSettings'; import { HttpProxySettings } from './HttpProxySettings'; import { TLSAuthSettings } from './TLSAuthSettings'; import { DataSourceSettings } from '../../types'; import { HttpSettingsProps } from './types'; +import { Select } from '../Select/Select'; +import { Input } from '../Input/Input'; +import { FormField } from '../FormField/FormField'; +import { FormLabel } from '../FormLabel/FormLabel'; +import { Switch } from '../Switch/Switch'; +import { TagsInput } from '../TagsInput/TagsInput'; const ACCESS_OPTIONS: Array> = [ { diff --git a/packages/grafana-ui/src/components/DataSourceSettings/TLSAuthSettings.tsx b/packages/grafana-ui/src/components/DataSourceSettings/TLSAuthSettings.tsx index aeaa4880c7c..6112c866a8e 100644 --- a/packages/grafana-ui/src/components/DataSourceSettings/TLSAuthSettings.tsx +++ b/packages/grafana-ui/src/components/DataSourceSettings/TLSAuthSettings.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { KeyValue } from '@grafana/data'; import { css, cx } from 'emotion'; -import { Tooltip } from '..'; +import { Tooltip } from '../Tooltip/Tooltip'; import { CertificationKey } from './CertificationKey'; import { HttpSettingsBaseProps } from './types'; diff --git a/packages/grafana-ui/src/components/Modal/Modal.tsx b/packages/grafana-ui/src/components/Modal/Modal.tsx index 739fa3ea9bf..925bdf4f9d2 100644 --- a/packages/grafana-ui/src/components/Modal/Modal.tsx +++ b/packages/grafana-ui/src/components/Modal/Modal.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { Portal } from '../Portal/Portal'; import { css, cx } from 'emotion'; -import { GrafanaTheme, ThemeContext } from '../..'; +import { GrafanaTheme } from '../../types/theme'; +import { ThemeContext } from '../../themes/ThemeContext'; const getStyles = (theme: GrafanaTheme) => ({ modal: css` diff --git a/packages/grafana-ui/src/components/SecretFormFied/SecretFormField.tsx b/packages/grafana-ui/src/components/SecretFormFied/SecretFormField.tsx index 0ed46ce2486..b16308e1799 100644 --- a/packages/grafana-ui/src/components/SecretFormFied/SecretFormField.tsx +++ b/packages/grafana-ui/src/components/SecretFormFied/SecretFormField.tsx @@ -1,6 +1,6 @@ import omit from 'lodash/omit'; import React, { InputHTMLAttributes, FunctionComponent } from 'react'; -import { FormField } from '..'; +import { FormField } from '../FormField/FormField'; interface Props extends InputHTMLAttributes { // Function to use when reset is clicked. Means you have to reset the input value yourself as this is uncontrolled diff --git a/packages/grafana-ui/src/components/Select/SingleValue.tsx b/packages/grafana-ui/src/components/Select/SingleValue.tsx index 5b40f633cb3..5eb62df644b 100644 --- a/packages/grafana-ui/src/components/Select/SingleValue.tsx +++ b/packages/grafana-ui/src/components/Select/SingleValue.tsx @@ -4,10 +4,11 @@ import { css, cx } from 'emotion'; // Ignoring because I couldn't get @types/react-select work wih Torkel's fork // @ts-ignore import { components } from '@torkelo/react-select'; -import { FadeTransition, Spinner } from '..'; import { useDelayedSwitch } from '../../utils/useDelayedSwitch'; import { stylesFactory } from '../../themes'; import { SlideOutTransition } from '../transitions/SlideOutTransition'; +import { FadeTransition } from '../transitions/FadeTransition'; +import { Spinner } from '../Spinner/Spinner'; const getStyles = stylesFactory(() => { const container = css` diff --git a/packages/grafana-ui/src/components/StatsPicker/StatsPicker.tsx b/packages/grafana-ui/src/components/StatsPicker/StatsPicker.tsx index 11946a7bb14..1030956a52b 100644 --- a/packages/grafana-ui/src/components/StatsPicker/StatsPicker.tsx +++ b/packages/grafana-ui/src/components/StatsPicker/StatsPicker.tsx @@ -3,7 +3,7 @@ import React, { PureComponent } from 'react'; import isArray from 'lodash/isArray'; import difference from 'lodash/difference'; -import { Select } from '../index'; +import { Select } from '../Select/Select'; import { fieldReducers, SelectableValue } from '@grafana/data'; diff --git a/packages/grafana-ui/src/components/Switch/Switch.story.tsx b/packages/grafana-ui/src/components/Switch/Switch.story.tsx index 97efdc783db..5d6daadd3ca 100644 --- a/packages/grafana-ui/src/components/Switch/Switch.story.tsx +++ b/packages/grafana-ui/src/components/Switch/Switch.story.tsx @@ -1,10 +1,19 @@ import React, { useState } from 'react'; -import { storiesOf } from '@storybook/react'; -import { withCenteredStory } from '../../utils/storybook/withCenteredStory'; +// import { storiesOf } from '@storybook/react'; +// import { withCenteredStory } from '../../utils/storybook/withCenteredStory'; import { Switch } from './Switch'; import { text } from '@storybook/addon-knobs'; +const getStory = (title: string, component: any) => ({ + title, + parameters: { + component, + }, +}); + +export default getStory('UI|Switch', Switch); + const getKnobs = () => { return { label: text('Label Text', 'Label'), @@ -18,6 +27,4 @@ const SwitchWrapper = () => { return setChecked(!checked)} tooltip={tooltip} />; }; -const story = storiesOf('UI/Switch', module); -story.addDecorator(withCenteredStory); -story.add('switch', () => ); +export const basic = () => ; diff --git a/packages/grafana-ui/src/components/Table/Table.story.tsx b/packages/grafana-ui/src/components/Table/Table.story.tsx index 2d2c3d2d51b..1fb59d32522 100644 --- a/packages/grafana-ui/src/components/Table/Table.story.tsx +++ b/packages/grafana-ui/src/components/Table/Table.story.tsx @@ -4,7 +4,7 @@ import { Table } from './Table'; import { getTheme } from '../../themes'; import { migratedTestTable, migratedTestStyles, simpleTable } from './examples'; -import { GrafanaThemeType } from '../../types/index'; +import { GrafanaThemeType } from '../../types/theme'; import { DataFrame, FieldType, ArrayVector, ScopedVars } from '@grafana/data'; import { withFullSizeStory } from '../../utils/storybook/withFullSizeStory'; import { number, boolean } from '@storybook/addon-knobs'; diff --git a/packages/grafana-ui/src/components/TagsInput/TagsInput.tsx b/packages/grafana-ui/src/components/TagsInput/TagsInput.tsx index aaa6b54cbd3..6d6e560aea5 100644 --- a/packages/grafana-ui/src/components/TagsInput/TagsInput.tsx +++ b/packages/grafana-ui/src/components/TagsInput/TagsInput.tsx @@ -1,7 +1,8 @@ import React, { ChangeEvent, KeyboardEvent, PureComponent } from 'react'; import { css, cx } from 'emotion'; import { stylesFactory } from '../../themes/stylesFactory'; -import { Button, Input } from '..'; +import { Button } from '../Button/Button'; +import { Input } from '../Input/Input'; import { TagItem } from './TagItem'; interface Props { diff --git a/packages/grafana-ui/src/components/TimePicker/TimeZonePicker.tsx b/packages/grafana-ui/src/components/TimePicker/TimeZonePicker.tsx index 0f58cc43881..7d50a7fc738 100644 --- a/packages/grafana-ui/src/components/TimePicker/TimeZonePicker.tsx +++ b/packages/grafana-ui/src/components/TimePicker/TimeZonePicker.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; import { getTimeZoneGroups, SelectableValue } from '@grafana/data'; -import { Select } from '..'; +import { Select } from '../Select/Select'; interface Props { value: string; diff --git a/packages/grafana-ui/src/components/UnitPicker/UnitPicker.tsx b/packages/grafana-ui/src/components/UnitPicker/UnitPicker.tsx index 3a34df02a39..50e04481ad6 100644 --- a/packages/grafana-ui/src/components/UnitPicker/UnitPicker.tsx +++ b/packages/grafana-ui/src/components/UnitPicker/UnitPicker.tsx @@ -1,6 +1,6 @@ import React, { PureComponent } from 'react'; -import { Select } from '..'; +import { Select } from '../Select/Select'; import { getValueFormats } from '../../utils'; diff --git a/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx b/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx index d1a1720fa7f..7aac4db238a 100644 --- a/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx +++ b/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx @@ -1,6 +1,9 @@ import React, { ChangeEvent, PureComponent } from 'react'; -import { FormField, FormLabel, Input, Select } from '..'; +import { FormField } from '../FormField/FormField'; +import { FormLabel } from '../FormLabel/FormLabel'; +import { Input } from '../Input/Input'; +import { Select } from '../Select/Select'; import { MappingType, ValueMapping } from '@grafana/data'; diff --git a/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx b/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx index 5f187ee2a44..b6c57b28a62 100644 --- a/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx +++ b/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.tsx @@ -2,7 +2,7 @@ import React, { PureComponent } from 'react'; import MappingRow from './MappingRow'; import { MappingType, ValueMapping } from '@grafana/data'; -import { Button } from '../index'; +import { Button } from '../Button/Button'; import { PanelOptionsGroup } from '../PanelOptionsGroup/PanelOptionsGroup'; export interface Props { diff --git a/packages/grafana-ui/src/utils/storybook/withPaddedStory.tsx b/packages/grafana-ui/src/utils/storybook/withPaddedStory.tsx index 23036e59d8a..84b16b538ee 100644 --- a/packages/grafana-ui/src/utils/storybook/withPaddedStory.tsx +++ b/packages/grafana-ui/src/utils/storybook/withPaddedStory.tsx @@ -5,7 +5,6 @@ const PaddedStory: React.FunctionComponent<{}> = ({ children }) => { return (
void; const ThemableStory: React.FunctionComponent<{ handleSassThemeChange: SassThemeChangeHandler }> = ({ diff --git a/yarn.lock b/yarn.lock index 8ba19225a41..0dc08ead74a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -254,7 +254,7 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-plugin-utils@^7.0.0": +"@babel/helper-plugin-utils@7.0.0", "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== @@ -452,14 +452,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-jsx@^7.2.0": +"@babel/plugin-syntax-jsx@7.2.0", "@babel/plugin-syntax-jsx@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": +"@babel/plugin-syntax-object-rest-spread@7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== @@ -713,7 +713,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" -"@babel/plugin-transform-react-jsx@^7.0.0": +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== @@ -2113,6 +2113,49 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" +"@mdx-js/loader@^1.1.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.5.1.tgz#d66a00b757345540c1530f750459de39b0fb7b96" + integrity sha512-g7BGfMdJY5ZnDjUEdGz4cfMs9Je0hGZAItGZ1rCBHtJt6SCKMy5N8qml6FJYo3pxNxWkbOCQbX85F6qsetwlAA== + dependencies: + "@mdx-js/mdx" "^1.5.1" + "@mdx-js/react" "^1.5.1" + loader-utils "1.2.3" + +"@mdx-js/mdx@^1.1.0", "@mdx-js/mdx@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.5.1.tgz#470ce07e01cef4f7b1d5051640e5235d5e75aebb" + integrity sha512-VNc2U8G6RlAYGmZfFj9dRTXcyWIo7rfxuAJtjupTqdddMx5HeLOmsWBLkZt5K76Nmn/bOg6d7zwR1+5FuvjAtg== + dependencies: + "@babel/core" "7.6.2" + "@babel/plugin-syntax-jsx" "7.2.0" + "@babel/plugin-syntax-object-rest-spread" "7.2.0" + "@mdx-js/util" "^1.5.1" + babel-plugin-apply-mdx-type-prop "^1.5.1" + babel-plugin-extract-import-names "^1.5.1" + camelcase-css "2.0.1" + detab "2.0.2" + hast-util-raw "5.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "6.0.2" + remark-mdx "^1.5.1" + remark-parse "7.0.1" + remark-squeeze-paragraphs "3.0.4" + style-to-object "0.2.3" + unified "8.3.2" + unist-builder "1.0.4" + unist-util-visit "2.0.0" + +"@mdx-js/react@^1.0.27", "@mdx-js/react@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.5.1.tgz#e0a9dbdc03826198abd82b29dcee91d661faf8a5" + integrity sha512-eF05YysHqtyXerLId0kPKtxmJ3PE60GJJvx1gOguEQndbs94fUeYTVSfBlnXPPAAzvOmVKrZmktIYsBQlVjpOw== + +"@mdx-js/util@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.1.tgz#f5f29bde5b09f8da3f4a4b43fa0a34bcf8ffc7cb" + integrity sha512-8F8E5FPWKP/cHjjI+O6Sh4KLUktk0KKS1xrxqVoBQd14/PBDH+kUgSJVE99p9jSRGh+OjCBmqx0tXN+m32w1tA== + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -2233,6 +2276,29 @@ react-inspector "^3.0.2" uuid "^3.3.2" +"@storybook/addon-docs@^5.2.4": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-5.2.4.tgz#aac2b46854a07977952d7b7533de274e6633742f" + integrity sha512-rfzoQUseb3G1WanQckjH85OXJJXMigod/YEEqJv68vo7GVY5PdVkOISy9nSldjrnwH6ikT3pcfJKPuHWRKAx/A== + dependencies: + "@babel/generator" "^7.4.0" + "@babel/parser" "^7.4.2" + "@babel/plugin-transform-react-jsx" "^7.3.0" + "@mdx-js/loader" "^1.1.0" + "@mdx-js/mdx" "^1.1.0" + "@mdx-js/react" "^1.0.27" + "@storybook/addons" "5.2.4" + "@storybook/api" "5.2.4" + "@storybook/components" "5.2.4" + "@storybook/router" "5.2.4" + "@storybook/source-loader" "5.2.4" + "@storybook/theming" "5.2.4" + core-js "^3.0.1" + global "^4.3.2" + js-string-escape "^1.0.1" + lodash "^4.17.11" + prop-types "^15.7.2" + "@storybook/addon-info@5.2.4": version "5.2.4" resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-5.2.4.tgz#9484c0b20feabe8971112f7c55398ba090cb130e" @@ -2518,6 +2584,21 @@ memoizerific "^1.11.3" qs "^6.6.0" +"@storybook/source-loader@5.2.4": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-5.2.4.tgz#3ccfbc6a93a3d09f0af630f3ecd5449bbc2897e7" + integrity sha512-TXqJhj0oSnUp4w5dyh2sf3OXt/ShF9m7ceTzI8H8ZfuI8kljVsv+KvGdv+Q4f4jrO3br4Qz7bE9Wvp70i9BY1g== + dependencies: + "@storybook/addons" "5.2.4" + "@storybook/router" "5.2.4" + core-js "^3.0.1" + estraverse "^4.2.0" + global "^4.3.2" + loader-utils "^1.2.3" + prettier "^1.16.4" + prop-types "^15.7.2" + regenerator-runtime "^0.12.1" + "@storybook/theming@5.2.4": version "5.2.4" resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-5.2.4.tgz#79c99f65992082fdb4d39fb652db435dd6bebaca" @@ -4762,6 +4843,14 @@ babel-plugin-angularjs-annotate@0.10.0: "@babel/types" "^7.2.0" simple-is "~0.2.0" +babel-plugin-apply-mdx-type-prop@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.1.tgz#d6c10f756a428a3724047662503257c74878c721" + integrity sha512-IFw+JDoWizgor39KsCB+Hqm/77tRSkHMRmKukDA4ul3sygZh33QtoirIpsdWWMPP9XBeOQdxuJUQdVQYrd6iOQ== + dependencies: + "@babel/helper-plugin-utils" "7.0.0" + "@mdx-js/util" "^1.5.1" + babel-plugin-dynamic-import-node@2.3.0, babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" @@ -4803,6 +4892,13 @@ babel-plugin-emotion@^9.2.11: source-map "^0.5.7" touch "^2.0.1" +babel-plugin-extract-import-names@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.1.tgz#79fb8550e3e0a9e8654f9461ccade56c9a669a74" + integrity sha512-08+FQtoth4uUB7jzqEgedg/ZjrFEgwFe3WVPGp7XGP5XAmmAd/SEU/z/ZhSJTeH40IVQLRfh9VJU6hGwUePINA== + dependencies: + "@babel/helper-plugin-utils" "7.0.0" + babel-plugin-istanbul@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" @@ -5633,6 +5729,11 @@ camel-case@3.0.x, camel-case@^3.0.0: no-case "^2.2.0" upper-case "^1.1.1" +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -6090,6 +6191,11 @@ coffee-script@~1.10.0: resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.10.0.tgz#12938bcf9be1948fa006f92e0c4c9e81705108c0" integrity sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA= +collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -6552,7 +6658,7 @@ core-js-pure@^3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.3.2.tgz#ace92f9744ef1f6129f73ac4df4936b6df9a3cbe" integrity sha512-sw695hB0UxFXrSkUthEby5tMdjOYN3hVC8IGQePF1m3JYb9e/KjT0TOFWzaSzlKwGNglKCgLYUjiJ7uZvactiw== -core-js@2.6.9: +core-js@2.6.9, core-js@^2.0.0, core-js@^2.4.0: version "2.6.9" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== @@ -7773,6 +7879,13 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detab@2.0.2, detab@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.2.tgz#074970d1a807b045d0258a4235df5928dd683561" + integrity sha512-Q57yPrxScy816TTE1P/uLRXLDKjXhvYTbfxS/e6lPD+YrqghbsMlGB9nQzj/zVtSPaF0DFPSdO916EWO4sQUyQ== + dependencies: + repeat-string "^1.5.4" + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -10280,6 +10393,31 @@ hast-util-parse-selector@^2.2.0: resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.2.tgz#66aabccb252c47d94975f50a281446955160380b" integrity sha512-jIMtnzrLTjzqgVEQqPEmwEZV+ea4zHRFTP8Z2Utw0I5HuBOXHzUPPQWr6ouJdJqDKLbFU/OEiYwZ79LalZkmmw== +hast-util-raw@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-5.0.1.tgz#b39539cf4b9f7ccdc131f72a583502a7911b99ee" + integrity sha512-iHo7G6BjRc/GU1Yun5CIEXjil0wVnIbz11C6k0JdDichSDMtYi2+NNtk6YN7EOP0JfPstX30d3pRLfaJv5CkdA== + dependencies: + hast-util-from-parse5 "^5.0.0" + hast-util-to-parse5 "^5.0.0" + html-void-elements "^1.0.1" + parse5 "^5.0.0" + unist-util-position "^3.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.1" + zwitch "^1.0.0" + +hast-util-to-parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-5.1.1.tgz#cabf2dbe9ed988a5128fc708457b37cdf535a2e8" + integrity sha512-ivCeAd5FCXr7bapJIVsWMnx/EmbjkkW2TU2hd1prq+jGwiaUoK+FcpjyPNwsC5ogzCwWO669tOqIovGeLc/ntg== + dependencies: + hast-to-hyperscript "^7.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.1" + zwitch "^1.0.0" + hastscript@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.0.tgz#a19b3cca6a26a2bcd0f1b1eac574af9427c1c7df" @@ -10455,6 +10593,11 @@ html-minifier@~2.1.2: relateurl "0.2.x" uglify-js "2.6.x" +html-void-elements@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.4.tgz#95e8bb5ecd6b88766569c2645f2b5f1591db9ba5" + integrity sha512-yMk3naGPLrfvUV9TdDbuYXngh/TpHbA6TrOw3HL9kS8yhwx7i309BReNg7CbAJXGE+UMJ6je5OqJ7lC63o6YuQ== + html-webpack-harddisk-plugin@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/html-webpack-harddisk-plugin/-/html-webpack-harddisk-plugin-1.0.1.tgz#4fc034d3440ec2a223dbe8fa1a5a2eb905e86fa5" @@ -10818,6 +10961,11 @@ init-package-json@^1.10.3: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inline-style-prefixer@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-4.0.2.tgz#d390957d26f281255fe101da863158ac6eb60911" @@ -10952,6 +11100,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" + integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== + is-alphabetical@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" @@ -11455,6 +11608,11 @@ is-utf8@^0.2.0: resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-whitespace-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" + integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== + is-window@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d" @@ -11465,6 +11623,11 @@ is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-word-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" + integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== + is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -11961,6 +12124,11 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== +js-string-escape@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -12798,7 +12966,7 @@ lodash.union@4.6.0, lodash.union@~4.6.0: resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= -lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: +lodash.uniq@4.5.0, lodash.uniq@^4.5.0, lodash.uniq@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -13111,6 +13279,11 @@ mdn-data@~1.1.0: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + meant@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" @@ -14831,6 +15004,18 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-entities@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" + integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-entities@^1.1.2: version "1.2.2" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50" @@ -15995,7 +16180,7 @@ prettier@1.16.4: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== -prettier@^1.18.2: +prettier@^1.16.4, prettier@^1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== @@ -16158,6 +16343,13 @@ property-information@^5.0.1: dependencies: xtend "^4.0.1" +property-information@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.3.0.tgz#bc87ac82dc4e72a31bb62040544b1bf9653da039" + integrity sha512-IslotQn1hBCZDY7SaJ3zmCjVea219VTwmOk6Pu3z9haU9m4+T8GwaDubur+6NMHEU+Fjs/6/p66z6QULPkcL1w== + dependencies: + xtend "^4.0.1" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -17428,6 +17620,48 @@ relateurl@0.2.x, relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remark-mdx@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.5.1.tgz#df176c69b0d22fca890812cb828a100d5c14ae60" + integrity sha512-emKP/F1VV/k7iKGOfSChTIGocKHXbiDtdn4icefpJUedxLXlNYXe+jiSDSqlBhkv/mmN4poDTTHvFEIV6vpd4w== + dependencies: + "@babel/core" "7.6.2" + "@babel/helper-plugin-utils" "7.0.0" + "@babel/plugin-proposal-object-rest-spread" "7.6.2" + "@babel/plugin-syntax-jsx" "7.2.0" + "@mdx-js/util" "^1.5.1" + is-alphabetical "1.0.3" + remark-parse "7.0.1" + unified "8.3.2" + +remark-parse@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-7.0.1.tgz#0c13d67e0d7b82c2ad2d8b6604ec5fae6c333c2b" + integrity sha512-WOZLa545jYXtSy+txza6ACudKWByQac4S2DmGk+tAGO/3XnVTOxwyCIxB7nTcLlk8Aayhcuf3cV1WV6U6L7/DQ== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remark-squeeze-paragraphs@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.4.tgz#9fe50c3bf3b572dd88754cd426ada007c0b8dc5f" + integrity sha512-Wmz5Yj9q+W1oryo8BV17JrOXZgUKVcpJ2ApE2pwnoHwhFKSk4Wp2PmFNbmJMgYSqAdFwfkoe+TSYop5Fy8wMgA== + dependencies: + mdast-squeeze-paragraphs "^3.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -17449,7 +17683,7 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -18824,6 +19058,11 @@ staged-git-files@1.1.2: resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA== +state-toggle@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" + integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -19140,6 +19379,13 @@ style-loader@0.23.1, style-loader@^0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" +style-to-object@0.2.3, style-to-object@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.2.3.tgz#afcf42bc03846b1e311880c55632a26ad2780bcb" + integrity sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng== + dependencies: + inline-style-parser "0.1.1" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -19720,6 +19966,11 @@ tree-kill@^1.1.0: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a" integrity sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q== +trim-lines@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.2.tgz#c8adbdbdae21bb5c2766240a661f693afe23e59b" + integrity sha512-3GOuyNeTqk3FAqc3jOJtw7FTjYl94XBR5aD9QnDbK/T4CA9sW/J0l9RoaRPE9wyPP7NF331qnHnvJFBJ+IDkmQ== + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -20011,6 +20262,14 @@ unfetch@^4.1.0: resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== +unherit@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" + integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== + dependencies: + inherits "^2.0.1" + xtend "^4.0.1" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -20075,6 +20334,28 @@ unique-string@^1.0.0: dependencies: crypto-random-string "^1.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" + integrity sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg== + dependencies: + object-assign "^4.1.0" + +unist-util-generated@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.4.tgz#2261c033d9fc23fae41872cdb7663746e972c1a7" + integrity sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww== + +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-is@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.0.tgz#85672993f0d88a8bffb45137aba003ee8da11a38" + integrity sha512-E5JLUKRQlAYiJmN2PVBdSz01R3rUKRSM00X+0DB/yLqxdLu6wZZkRdTIsxDp9X+bkxh8Eq+O2YYRbZvLZtQT1A== + unist-util-map@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/unist-util-map/-/unist-util-map-1.0.5.tgz#701069b72e1d1cc02db265502a5e82b77c2eb8b7"