From 2c9a5fc55608488681ac25debfa15a66764d3a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 15 Nov 2018 11:15:35 +0100 Subject: [PATCH 1/6] feat(table): implement Table, TableRow, TableCell and TableHeadCell --- package.json | 2 +- src/Table.tsx | 54 ++++++++++++++++++++++++++++++++++++++++++++ src/index.tsx | 1 + stories/Table.tsx | 57 +++++++++++++++++++++++++++++++++++++++++++++++ stories/index.ts | 1 + 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 src/Table.tsx create mode 100644 stories/Table.tsx diff --git a/package.json b/package.json index 14040ec0..5b16437a 100644 --- a/package.json +++ b/package.json @@ -100,4 +100,4 @@ "release": { "extends": "@stoplight/scripts/release" } -} \ No newline at end of file +} diff --git a/src/Table.tsx b/src/Table.tsx new file mode 100644 index 00000000..5e728214 --- /dev/null +++ b/src/Table.tsx @@ -0,0 +1,54 @@ +import * as React from 'react'; +import { themeGet } from 'styled-system'; +import { minWidth, styled } from './utils'; + +interface ITableProps { + children: any; + isSelection?: boolean; +} + +interface ITableCellProps extends ITableProps { + minWidth?: string; +} + +interface ITableViewProps { + className: string; + children: any; +} + +const TableView = ({ className, children }: ITableViewProps) => ( + + {children} +
+); + +const getBoxShadowTheme = themeGet('base.shadow.lg', '0 0 5px 1px #000'); +const boxShadow = (props: ITableCellProps | ITableProps) => + `box-shadow: ${props.isSelection ? getBoxShadowTheme(props) : ''}`; + +export const Table = styled(TableView as any)` + border: none; + border-collapse: collapse; + border-top: 1px solid ${themeGet('colors.border', '#000')}; + ${boxShadow}; +`; + +export const TableRow = styled('tr')` + border: none; + border-bottom: 1px solid ${themeGet('colors.border', '#000')}; + border-right: 1px solid ${themeGet('colors.border', '#000')}; +`; + +export const TableHeadCell = styled('th')` + border: none; + border-left: 1px solid ${themeGet('colors.border', '#000')}; + ${boxShadow}; + ${minWidth}; +`; + +export const TableCell = styled('td')` + border: none; + border-left: 1px solid ${themeGet('colors.border', '#000')}; + ${boxShadow}; + ${minWidth}; +`; diff --git a/src/index.tsx b/src/index.tsx index bd45c6ad..b39dccbd 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -9,6 +9,7 @@ export * from './Flex'; export * from './Heading'; export * from './Icon'; export * from './List'; +export * from './Table'; export * from './Text'; export * from './ThemeSection'; export * from './types'; diff --git a/stories/Table.tsx b/stories/Table.tsx new file mode 100644 index 00000000..6f21ac45 --- /dev/null +++ b/stories/Table.tsx @@ -0,0 +1,57 @@ +import * as React from 'react'; + +import { withKnobs } from '@storybook/addon-knobs'; +import { storiesOf } from '@storybook/react'; + +import { Table, TableCell, TableHeadCell, TableRow } from '../src/'; + +storiesOf('Table', module) + .addDecorator(withKnobs) + .add('with defaults', () => ( + + + Site + Views + + + stoplight.io + 27341 + + + example.com + 2351 + +
+ )) + .add('with minWidth', () => ( + + + Site + Views + + + stoplight.io + 27341 + + + example.com + 2351 + +
+ )) + .add('with selection', () => ( + + + Site + Views + + + stoplight.io + 27341 + + + example.com + 2351 + +
+ )); diff --git a/stories/index.ts b/stories/index.ts index babc8406..1d59fe15 100644 --- a/stories/index.ts +++ b/stories/index.ts @@ -8,6 +8,7 @@ import './Image'; import './Input'; import './KitchenSink'; import './List'; +import './Table'; import './Text'; import './Textarea'; import './Toggle'; From 9f4ffa51d4e61e1bd09c7bca2d0d6522859b7c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 15 Nov 2018 12:06:22 +0100 Subject: [PATCH 2/6] fix(shadows): broken shadows in dark theme --- src/Table.tsx | 2 +- src/storybook-addon/themes/dark.ts | 7 +++++++ src/theme/base.ts | 7 ------- src/theme/components.ts | 8 ++++++++ src/theme/index.ts | 3 ++- src/types.ts | 13 ++++++++++--- src/utils/rules.ts | 2 +- 7 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/Table.tsx b/src/Table.tsx index 5e728214..5f37abe6 100644 --- a/src/Table.tsx +++ b/src/Table.tsx @@ -22,7 +22,7 @@ const TableView = ({ className, children }: ITableViewProps) => ( ); -const getBoxShadowTheme = themeGet('base.shadow.lg', '0 0 5px 1px #000'); +const getBoxShadowTheme = themeGet('shadows.lg', '0 0 5px #000'); const boxShadow = (props: ITableCellProps | ITableProps) => `box-shadow: ${props.isSelection ? getBoxShadowTheme(props) : ''}`; diff --git a/src/storybook-addon/themes/dark.ts b/src/storybook-addon/themes/dark.ts index 24f816af..e1f0a480 100644 --- a/src/storybook-addon/themes/dark.ts +++ b/src/storybook-addon/themes/dark.ts @@ -2,11 +2,18 @@ export const dark = { colors: { fg: 'white', bg: '#222', + border: '#f9f9f9', lightest: '#f9f9f9', lighter: 'rgba(255, 255, 255, 0.2)', error: '#ff7979', }, + shadows: { + sm: '0 0 2px rgba(255, 255, 255, .6)', + md: '0 0 5px rgba(255, 255, 25, .5)', + lg: '0 0 8px 2px rgba(255, 255, 255, .8)', + }, + components: { button: { bg: 'rgb(255, 255, 255, 0.25)', diff --git a/src/theme/base.ts b/src/theme/base.ts index 85c784bd..82be633b 100644 --- a/src/theme/base.ts +++ b/src/theme/base.ts @@ -57,13 +57,6 @@ export const base: ILayout = { full: 9999, }, - // TODO is this really a config or can this change like with colors - shadow: { - sm: '0 0 2px rgba(0, 0, 0, .6)', - md: '0 0 5px rgba(0, 0, 0, .5)', - lg: '0 0 8px rgba(0, 0, 0, .4)', - }, - space: { none: '0px', xs: 2, diff --git a/src/theme/components.ts b/src/theme/components.ts index 89d3bcd8..b64b8d0a 100644 --- a/src/theme/components.ts +++ b/src/theme/components.ts @@ -11,6 +11,14 @@ export const colors = { }, }; +export const shadows = { + shadows: { + sm: '0 0 2px rgba(0, 0, 0, .6)', + md: '0 0 5px rgba(0, 0, 0, .5)', + lg: '0 0 8px rgba(0, 0, 0, .4)', + }, +}; + // default color stylings we want to use out of the gates (in case someone does not want to have to create their own theme) export const components: ISectionTheme = { components: { diff --git a/src/theme/index.ts b/src/theme/index.ts index 59727ef0..b75c69ff 100644 --- a/src/theme/index.ts +++ b/src/theme/index.ts @@ -1,11 +1,12 @@ import { IThemeInterface } from '../types'; import { base } from './base'; -import { colors, components } from './components'; +import { colors, components, shadows } from './components'; export const baseTheme: IThemeInterface = { base, + ...shadows, ...colors, ...components, }; diff --git a/src/types.ts b/src/types.ts index bf8eb514..0ac35c3e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -4,7 +4,7 @@ export type LineHeight = 'reset' | 'none' | 'tight' | 'normal' | 'loose'; export type LetterSpacing = 'tight' | 'normal' | 'wide'; export type BorderRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'; export type BorderWidth = 'none' | 'xs' | 'sm' | 'md' | 'lg'; -export type BoxShadow = 'sm' | 'md' | 'lg'; +export type BoxShadow = keyof IShadows; export type BoxDimension = 'auto' | 'none' | 'px' | 'full' | 'screen'; export type Space = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl'; @@ -28,6 +28,7 @@ export interface IThemeInterface< export interface ISectionTheme { colors?: Partial; + shadows?: Partial; components?: { [component in TComponents]?: Partial }; } @@ -45,8 +46,6 @@ export interface ILayout { border: { [key in BorderWidth]?: number | string }; // px - shadow: { [key in BoxShadow]?: string }; - space: { [key in Space]?: number | string }; // px height?: { [key in BoxDimension]?: number | string }; @@ -63,5 +62,13 @@ export interface IColors { [color: string]: string | Partial; } +export interface IShadows { + sm: string; + md: string; + lg: string; + + [color: string]: string | Partial; +} + // components created in this repo export type Components = 'button' | 'checkbox' | 'toggle'; diff --git a/src/utils/rules.ts b/src/utils/rules.ts index b5459cc5..f4df90c3 100644 --- a/src/utils/rules.ts +++ b/src/utils/rules.ts @@ -85,7 +85,7 @@ export const borderRadius = style({ export const boxShadow = style({ prop: 'shadow', cssProperty: 'boxShadow', - key: 'base.shadow', + key: 'shadows', }); export const cursor = style({ From 410c5bf8780907aa7041b70df8ca90479e0a5bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 15 Nov 2018 12:42:23 +0100 Subject: [PATCH 3/6] test(table): add smoke tests --- README.md | 1 + src/__tests__/Table.spec.tsx | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/__tests__/Table.spec.tsx diff --git a/README.md b/README.md index e7256bfd..80e69af4 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ TODO - List - Button - Portal + - Table ## Helpful Links diff --git a/src/__tests__/Table.spec.tsx b/src/__tests__/Table.spec.tsx new file mode 100644 index 00000000..bd451b12 --- /dev/null +++ b/src/__tests__/Table.spec.tsx @@ -0,0 +1,50 @@ +/** + * @jest-environment jsdom + */ +import { mount, shallow } from 'enzyme'; +import 'jest-enzyme'; +import * as React from 'react'; +import { Table, TableCell, TableHeadCell, TableRow } from '../'; + +describe('Table', () => { + it('renders children', () => { + const children = ; + + expect(shallow({children}
)).toContainReact(children); + }); + + it('always renders tbody underneath', () => { + const wrapper = mount( + + +
+ ); + + expect(wrapper).toContainMatchingElement('tbody'); + wrapper.unmount(); + }); +}); + +describe('TableRow', () => { + it('renders children', () => { + const children = ; + + expect(shallow({children})).toContainReact(children); + }); +}); + +describe('TableCell', () => { + it('renders children', () => { + const children = some content; + + expect(shallow({children})).toContainReact(children); + }); +}); + +describe('TableHeadCell', () => { + it('renders children', () => { + const children = some content; + + expect(shallow({children})).toContainReact(children); + }); +}); From aca549ea0127fd54108c7795844b77bb0ab33d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Thu, 15 Nov 2018 12:47:34 +0100 Subject: [PATCH 4/6] build(jest): collect coverage from tsx files --- jest.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/jest.config.js b/jest.config.js index 552c8e17..0029275b 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,4 +2,5 @@ module.exports = { preset: '@stoplight/scripts', setupTestFrameworkScriptFile: './setupTests.js', snapshotSerializers: ['enzyme-to-json/serializer'], + collectCoverageFrom: ["/src/**/*.{ts,tsx}"] }; From 3841dd87a736051bcb590276d1ae839aaf0bcfca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Fri, 16 Nov 2018 13:13:55 +0100 Subject: [PATCH 5/6] refactor(table): switch to attrs syntax --- src/Table.tsx | 77 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 30 deletions(-) diff --git a/src/Table.tsx b/src/Table.tsx index 5f37abe6..cac6341a 100644 --- a/src/Table.tsx +++ b/src/Table.tsx @@ -1,8 +1,9 @@ import * as React from 'react'; import { themeGet } from 'styled-system'; -import { minWidth, styled } from './utils'; +import { Box, IBoxProps } from './Box'; +import { styled } from './utils'; -interface ITableProps { +interface ITableProps extends IBoxProps { children: any; isSelection?: boolean; } @@ -24,31 +25,47 @@ const TableView = ({ className, children }: ITableViewProps) => ( const getBoxShadowTheme = themeGet('shadows.lg', '0 0 5px #000'); const boxShadow = (props: ITableCellProps | ITableProps) => - `box-shadow: ${props.isSelection ? getBoxShadowTheme(props) : ''}`; - -export const Table = styled(TableView as any)` - border: none; - border-collapse: collapse; - border-top: 1px solid ${themeGet('colors.border', '#000')}; - ${boxShadow}; -`; - -export const TableRow = styled('tr')` - border: none; - border-bottom: 1px solid ${themeGet('colors.border', '#000')}; - border-right: 1px solid ${themeGet('colors.border', '#000')}; -`; - -export const TableHeadCell = styled('th')` - border: none; - border-left: 1px solid ${themeGet('colors.border', '#000')}; - ${boxShadow}; - ${minWidth}; -`; - -export const TableCell = styled('td')` - border: none; - border-left: 1px solid ${themeGet('colors.border', '#000')}; - ${boxShadow}; - ${minWidth}; -`; + props.isSelection && { + boxShadow: getBoxShadowTheme(props), + }; + +export const Table = styled(Box as any).attrs({ + as: () => TableView, + border: 'none', + borderTop: 'sm', + borderColor: 'colors.border', + css: { + 'border-collapse': 'collapse', + }, +})( + // @ts-ignore + boxShadow +); + +export const TableRow = styled(Box as any).attrs({ + as: 'tr', + border: 'none', + borderBottom: 'sm', + borderRight: 'sm', + borderColor: 'colors.border', +})``; + +export const TableHeadCell = styled(Box as any).attrs({ + as: 'td', + border: 'none', + borderLeft: 'sm', + borderColor: 'colors.border', +})( + // @ts-ignore + boxShadow +); + +export const TableCell = styled(Box as any).attrs({ + as: 'td', + border: 'none', + borderLeft: 'sm', + borderColor: 'colors.border', +})( + // @ts-ignore + boxShadow +); From cb470d5a8258d38c5a79b7ee56a65fc87673b990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Fri, 16 Nov 2018 16:00:34 +0100 Subject: [PATCH 6/6] chore(table): bump @stoplight/scripts --- jest.config.js | 3 +- package.json | 2 +- yarn.lock | 267 ++++++++++++++++++++----------------------------- 3 files changed, 109 insertions(+), 163 deletions(-) diff --git a/jest.config.js b/jest.config.js index 0029275b..e599d82a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,5 @@ module.exports = { preset: '@stoplight/scripts', setupTestFrameworkScriptFile: './setupTests.js', - snapshotSerializers: ['enzyme-to-json/serializer'], - collectCoverageFrom: ["/src/**/*.{ts,tsx}"] + snapshotSerializers: ['enzyme-to-json/serializer'] }; diff --git a/package.json b/package.json index 5b16437a..d6a3789d 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@fortawesome/free-regular-svg-icons": "5.5.x", "@fortawesome/free-solid-svg-icons": "5.5.x", "@sambego/storybook-state": "1.x.x", - "@stoplight/scripts": "1.1.2", + "@stoplight/scripts": "1.2.3", "@types/react": "16.x.x", "@types/react-dom": "16.x.x", "enzyme": "^3.7.0", diff --git a/yarn.lock b/yarn.lock index 53aeeb48..2f4cf71a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1195,10 +1195,10 @@ into-stream "^4.0.0" lodash "^4.17.4" -"@stoplight/scripts@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@stoplight/scripts/-/scripts-1.1.2.tgz#c4caa97b4e6038342f072fcc6400d1a87a5326a5" - integrity sha512-HNTeDGiThBWhf9cMFC7+aG1AbviSYw4x5zIz8723KQw4y+He+pgLF3RDgvqtJZ2rljCgLs1lyDZnLGvxnNaKug== +"@stoplight/scripts@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@stoplight/scripts/-/scripts-1.2.3.tgz#cfa5494c983c5a7ab1de973b6695629b30052418" + integrity sha512-rb1IxHpGLEpGM8d9O+r3uPkXitOvTxDZ4kXRvwHAtPmybRT1xxIb0nx/cn1O7HsY2tkulRvNYQWGbOwA+FAFEg== dependencies: "@babel/core" "7.1.x" "@commitlint/cli" "7.2.x" @@ -1211,14 +1211,14 @@ "@semantic-release/github" "5.2.x" "@semantic-release/npm" "5.1.x" "@semantic-release/release-notes-generator" "7.1.x" - "@storybook/addon-actions" "4.0.4" - "@storybook/addon-info" "4.0.4" - "@storybook/addon-knobs" "^4.0.4" - "@storybook/addon-links" "4.0.4" - "@storybook/addon-options" "4.0.4" - "@storybook/addons" "4.0.4" - "@storybook/core" "4.0.4" - "@storybook/react" "4.0.4" + "@storybook/addon-actions" "4.0.7" + "@storybook/addon-info" "4.0.7" + "@storybook/addon-knobs" "4.0.7" + "@storybook/addon-links" "4.0.7" + "@storybook/addon-options" "4.0.7" + "@storybook/addons" "4.0.7" + "@storybook/core" "4.0.7" + "@storybook/react" "4.0.7" "@types/jest" "23.3.x" "@types/node" "10.12.x" "@types/storybook__addon-actions" "3.4.1" @@ -1238,30 +1238,26 @@ lodash "4.x.x" react-docgen-typescript-loader "3.0.x" rimraf "2.6.x" - semantic-release "15.10.x" + semantic-release "15.11.x" shelljs "0.8.x" ts-jest "23.10.x" ts-loader "5.3.x" - tslib "1.9.x" + tslib "1.9.3" tslint-config-stoplight "1.2.x" typedoc "0.13.x" typescript-plugin-styled-components "1.0.x" - optionalDependencies: - react "16.x.x" - react-dom "16.x.x" - webpack "4.x.x" -"@storybook/addon-actions@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-4.0.4.tgz#134b83f287ab43ea59e55ce3b22126ebfd541f80" - integrity sha512-XIqA8SUVZp9T+8QFZySzPbY/pSzv3dR17y2t/hgwnw0WJDQ0LcZ/1qUQJ9J87sz5ElMIQNrxKJJEk/kf2Qug4A== +"@storybook/addon-actions@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-4.0.7.tgz#a7088e619f705f1839156fe9eec65e43e747d206" + integrity sha512-dUxFRDgn3RjvVlDQkLfJf43um90KFrzUzrdO7u+oQCtEUCmbD1bfI1waPyz+aV4RxfQIRUdMwkQaNKmAiqXBQg== dependencies: "@emotion/core" "^0.13.1" "@emotion/provider" "^0.11.2" "@emotion/styled" "^0.10.6" - "@storybook/addons" "4.0.4" - "@storybook/components" "4.0.4" - "@storybook/core-events" "4.0.4" + "@storybook/addons" "4.0.7" + "@storybook/components" "4.0.7" + "@storybook/core-events" "4.0.7" deep-equal "^1.0.1" global "^4.3.2" lodash "^4.17.11" @@ -1270,15 +1266,15 @@ react-inspector "^2.3.0" uuid "^3.3.2" -"@storybook/addon-info@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-4.0.4.tgz#3305a3e9a9545d439190c3251a11480004825c6f" - integrity sha512-NvielclJCyZqmnD6fJUBI3cANofFaGCGRBLafz5ID6VEPtVNKDJgY63olpM2b/37YqkdteYgtbCBvYWeIDcfIA== +"@storybook/addon-info@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addon-info/-/addon-info-4.0.7.tgz#10af6e94795eefabee8d331fcec8a66a22135b6b" + integrity sha512-3OciEPtkReWcA0cdDd1ZJ2ZQeovRGc7M/jV61pAO3ncAF/iHVnvX5+Zx9pX8c2qB49FOHZm++6DVpuJ3etbfFw== dependencies: "@emotion/styled" "^0.10.6" - "@storybook/addons" "4.0.4" - "@storybook/client-logger" "4.0.4" - "@storybook/components" "4.0.4" + "@storybook/addons" "4.0.7" + "@storybook/client-logger" "4.0.7" + "@storybook/components" "4.0.7" core-js "2.5.7" global "^4.3.2" marksy "^6.1.0" @@ -1288,15 +1284,15 @@ react-lifecycles-compat "^3.0.4" util-deprecate "^1.0.2" -"@storybook/addon-knobs@^4.0.4": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-4.0.6.tgz#2b2d57325b8efa22db83a814aab1f63eca36227d" - integrity sha512-bw7emFoGcbIOlTlm9/TPkwoRLC6VAi+GwD6LFxPnprs8YkSRkjKfiWsQBE54DowMefuz7Mo1Unwq7VDr6/zfEg== +"@storybook/addon-knobs@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-4.0.7.tgz#079d7708a2d4229be26089f3ac6e78aa02e49178" + integrity sha512-ye366yZf8PcUxIC226xI6tXdepKawp7hpsFNgEntXemqdjWewRv9mTd6YhrRoSNrLhGYNLMfHzYEAOFbJ0Ec4g== dependencies: "@emotion/styled" "^0.10.6" - "@storybook/addons" "4.0.6" - "@storybook/components" "4.0.6" - "@storybook/core-events" "4.0.6" + "@storybook/addons" "4.0.7" + "@storybook/components" "4.0.7" + "@storybook/core-events" "4.0.7" copy-to-clipboard "^3.0.8" escape-html "^1.0.3" fast-deep-equal "^2.0.1" @@ -1307,89 +1303,58 @@ react-lifecycles-compat "^3.0.4" util-deprecate "^1.0.2" -"@storybook/addon-links@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-4.0.4.tgz#0b225c460335eb5da4af6d9061a82c2bb4cb9d74" - integrity sha512-f8uuwY9uqmG02Q+Zu10Hppq118JG2Ksih0BvpY2X3d2JAkcWllH0YosH6Sd5g1TgxMI+OMSXLDEsAojmmMX9MQ== +"@storybook/addon-links@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-4.0.7.tgz#2579707052cfc9bcb2a97d21c7363c673574ae89" + integrity sha512-1MTWD+2Qu5txSxPykk7le8gEA66Yjm+USDC1Gbq0KqSLoQ0vh2Fxd6cXE+mIUBC2IIIqDio2SjkqV0974B8JgA== dependencies: - "@storybook/addons" "4.0.4" - "@storybook/components" "4.0.4" - "@storybook/core-events" "4.0.4" + "@storybook/addons" "4.0.7" + "@storybook/components" "4.0.7" + "@storybook/core-events" "4.0.7" global "^4.3.2" prop-types "^15.6.2" -"@storybook/addon-options@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-4.0.4.tgz#d47d357564ec38705f5309ed55d78fb48f5656bd" - integrity sha512-r9nSOmIOXm8jo/wFCrVlfZe6f4GdXG0nyrHTH+F/kzHJsaEN0dPnhqv9AGowBgFKlWdXIYlGPYQldTElguDpqA== - dependencies: - "@storybook/addons" "4.0.4" - util-deprecate "^1.0.2" - -"@storybook/addons@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.4.tgz#133609c527435aba1149ead53ca91f694db1a490" - integrity sha512-e7S5kYCytPsAM2p8dMQNUV0QEnY9P9mf6zVgbVgdZ2O1b2uMwD/ABj/BhYLgsB7gdshGrcV5vkMXAAGwMsN6Sg== +"@storybook/addon-options@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-4.0.7.tgz#c7a7bb8dcfb4bc2a7c4ece56f96e0f65635cc747" + integrity sha512-69LY1/O2xiREJqpVNx4VzTHxkLkS0NeohtA05dTyHVpP+jYAAhtWOkwAoGUrOWF5L2IFS/o/oX6wcKLHxIr4qA== dependencies: - "@storybook/channels" "4.0.4" - "@storybook/components" "4.0.4" - global "^4.3.2" + "@storybook/addons" "4.0.7" util-deprecate "^1.0.2" -"@storybook/addons@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.6.tgz#4af486c113145c46bbe0d8b5cf6efa04d005a00a" - integrity sha512-OTxuUfDxLzXFltUfsHl7XlKdUB6bqsnH9P0QUwa5j57Zfy5v4r24D/C5iUzKQBAtIDFhLl55pwcTeb3x+OOnlA== +"@storybook/addons@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.7.tgz#52a98ebfa862b34ed47368590564a9638b86d211" + integrity sha512-rfumQnFLMhpGx3nvzhW+stTFKwp5SMOso7pryEBhxxskT4f6kBuzZyaChhnSBWBwVz5bPpplWj5l0H0F2/+5bg== dependencies: - "@storybook/channels" "4.0.6" - "@storybook/components" "4.0.6" + "@storybook/channels" "4.0.7" + "@storybook/components" "4.0.7" global "^4.3.2" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-4.0.4.tgz#5c8d0c8ac49b92fa95abcf23d1d80d043a8558b0" - integrity sha512-XcQ7YNRWdsHRKl8+aaTFh6YNjyFkuuCWrklqDWBJpl/GyBV4IZa1nCVYSGYl1mMtsL4LVRmurHbWuS839RWJ4w== +"@storybook/channel-postmessage@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-4.0.7.tgz#70dafdaabd8431ca1a042c8512a29ca73f9009eb" + integrity sha512-Ya9D8dCKB8dqRwmIFS6IDOmNJX1TX3my9KmSRociyV1aku5kIDmMbdKHKMAAEDK4H1CmkAglW90ePsHCcVAkRw== dependencies: - "@storybook/channels" "4.0.4" + "@storybook/channels" "4.0.7" global "^4.3.2" json-stringify-safe "^5.0.1" -"@storybook/channels@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.4.tgz#fdf717cd726d15508ac80ff93a3893b75d3ab8b8" - integrity sha512-EeRby5oCyyYBkBrxI7Cg8F65FkYJjVK0jbGWpIugcjtnfOeP57xLcZuukcjhLjl/oaC/RYw7A/6c0nFW4kV0GQ== - -"@storybook/channels@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.6.tgz#479211c776fae9837d1537dd5468cfdf405ed49f" - integrity sha512-UxGOs3XuO2S8K9KTLwOLiX6bUYDtp3fGa/mb9wIL/S+tERrLcSRv+CaaNneAgEVuudaiOHjCso7W6cmZIKzrHQ== - -"@storybook/client-logger@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-4.0.4.tgz#b3570c8d39b051261fe1cda992f13208338cff8c" - integrity sha512-T9Na9yWwH+1qfQ2izB0ul7QvtKE9C8nQCz8bTYzgBq84MD7kgowKRC/rhdz/EqNGvkZQcl9OOPRptWGt5eamuw== +"@storybook/channels@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.7.tgz#bb7607c9d0036cbed884c11683d7c168c2663733" + integrity sha512-XSfMaD+GKQpNtHSAZb0aMjDH59rYIvTB3je0jM67NVHneIbZrxxEcY52QZ7KP2eAP9qRw3yK89VoNo7D0APdcQ== -"@storybook/components@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.4.tgz#e07fc89cd7d64e0686c933da92a3e849d8c59d60" - integrity sha512-v13Tm5ACYrk01bszl0EpFGKe9YyCdQjdJOEE9laDiGS6rWEydl0T5QmzhBD6yNgf+k6gs96JylxswlyyqHe32Q== - dependencies: - "@emotion/core" "^0.13.1" - "@emotion/provider" "^0.11.2" - "@emotion/styled" "^0.10.6" - global "^4.3.2" - lodash "^4.17.11" - prop-types "^15.6.2" - react-inspector "^2.3.0" - react-split-pane "^0.1.84" - react-textarea-autosize "^7.0.4" - render-fragment "^0.1.1" +"@storybook/client-logger@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-4.0.7.tgz#6831c35959a8d3d06c381c0068bffecbe0260444" + integrity sha512-tStgsg6HlZDgP38o97i5fkCDtLZAV9SUYE6of2AJUL7yf+yfL7Hh3pkIeXK4AsxAEnbhkPmCn07bCHD1NvxE4g== -"@storybook/components@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.6.tgz#9ff82a5b280295203f5ebabe1fb9668d7cf0e1b6" - integrity sha512-9xa+eIcb8OwlckwQwaPtwkfZXWLtmNz9yEHYf6mGjf7VOvS5oepxPsyk+a4/0EdDO9In6u1zX5DUdIYSL2vGRA== +"@storybook/components@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.7.tgz#f5a51b6999df7bd137a02a968d17795c836bfa5b" + integrity sha512-edQdAx+Vy6ycg6wxj5vX2DzDIcH9hikj517wKunlv78zv+82aFgHI/UZoUhaSL2dqYWOx+dO1eSza5456y7llQ== dependencies: "@emotion/core" "^0.13.1" "@emotion/provider" "^0.11.2" @@ -1402,20 +1367,15 @@ react-textarea-autosize "^7.0.4" render-fragment "^0.1.1" -"@storybook/core-events@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.4.tgz#bf457afe9aec3fb2cd66d7cad3fa5e5821e01503" - integrity sha512-+OFFYTVSZd6zjZQMCUF2HQ0hIPfel9NyBBABbPxEtbvWEx/cp4RMfk5VFVISpwYJQMhnqCUU0/t3VoLTKFtm1g== - -"@storybook/core-events@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.6.tgz#4023ac7caba3f087ff5572b807aa6d6cd102f560" - integrity sha512-lExbWR55RLSi4erhRrBtBAgMdHu0xqnnxavkkaLZM9VaP331GVAWAtdS20H3QHdLrU56NZFX4sIPYlUeQDmfaA== +"@storybook/core-events@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.7.tgz#8fb7be5dd0fba5c6928b15cd2d92ffdb0a53da6f" + integrity sha512-rirZ/dtcA22BqZoxsYGeUHdS0IQFKNerTnNcDuL7NaTD79tl1JaWYvtLot3GqxLD7/lyUh0GQIGnxqr1ouGBhQ== -"@storybook/core@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-4.0.4.tgz#c310bcdd2cb13356ebe3538f1f2944b6c31c45d9" - integrity sha512-GAikZtRgrMdGOJvVBVBPvLpSkzhwlyTKO/14VWyTx2EYEBLu+9FMoNCuSOUL+0OvpWKggE5Y569zLeFu0y5LVA== +"@storybook/core@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-4.0.7.tgz#5242ae96ebe207401d243f245649d073ecf2b30b" + integrity sha512-DHg1E1UNGHVCcB/gkScEfn/L4AtSEaO9UzJNpP+jefyleY7IPu0eeR4Cg6YbRx01BfItIE8swNA4y/HT94xmLQ== dependencies: "@babel/plugin-proposal-class-properties" "^7.1.0" "@babel/plugin-transform-regenerator" "^7.0.0" @@ -1425,12 +1385,12 @@ "@emotion/core" "^0.13.1" "@emotion/provider" "^0.11.2" "@emotion/styled" "^0.10.6" - "@storybook/addons" "4.0.4" - "@storybook/channel-postmessage" "4.0.4" - "@storybook/client-logger" "4.0.4" - "@storybook/core-events" "4.0.4" - "@storybook/node-logger" "4.0.4" - "@storybook/ui" "4.0.4" + "@storybook/addons" "4.0.7" + "@storybook/channel-postmessage" "4.0.7" + "@storybook/client-logger" "4.0.7" + "@storybook/core-events" "4.0.7" + "@storybook/node-logger" "4.0.7" + "@storybook/ui" "4.0.7" airbnb-js-shims "^1 || ^2" autoprefixer "^9.3.1" babel-plugin-macros "^2.4.2" @@ -1486,10 +1446,10 @@ "@storybook/react-simple-di" "^1.2.1" babel-runtime "6.x.x" -"@storybook/node-logger@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-4.0.4.tgz#0f12de826297df22eec689b82e55e01e9c195ea9" - integrity sha512-6WvMrICmsGwLD5zPzW81a75Rt4o0uQPCkZAkudbiy6ur6DE/0TYvTIx/QSoUFLEVYYr7JfQ40DdqT4MEPxGSqQ== +"@storybook/node-logger@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-4.0.7.tgz#aa57636d6d46b446319b06daceda562b7b78880a" + integrity sha512-RIT0fBPVvHbvvRJ7W5NwtiT3kQxm1522Fn7/0Mf4ejUerQNtqvbosTJhN2ReinavlD4Fo85QXFFCmZ2RXMiBVw== dependencies: "@babel/runtime" "^7.1.2" npmlog "^4.1.2" @@ -1530,17 +1490,17 @@ dependencies: babel-runtime "^6.5.0" -"@storybook/react@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-4.0.4.tgz#5230f9d16c3ee85b4dcd90e4b8d594572f8cde45" - integrity sha512-e9K/K6ZqVw2w0FiggpsDPjUh60n4VrXJysKhwfWWf237D2jpralnlXKs0ku+6krk6g1crJW0dsdwmpTYilr+tg== +"@storybook/react@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-4.0.7.tgz#2522d8228f5754a42606cb8d9fcf2f20444e2e02" + integrity sha512-SgvcavdNhIQbMerqCtkWU/MO6UhumaJ3DNWZsnA71Sw43qtPVrwqQekGJuERkL7R9uI0pWbMSCNh4RC9e20/Jg== dependencies: "@babel/preset-flow" "^7.0.0" "@babel/preset-react" "^7.0.0" "@babel/runtime" "^7.1.2" "@emotion/styled" "^0.10.6" - "@storybook/core" "4.0.4" - "@storybook/node-logger" "4.0.4" + "@storybook/core" "4.0.7" + "@storybook/node-logger" "4.0.7" babel-plugin-react-docgen "^2.0.0" common-tags "^1.8.0" global "^4.3.2" @@ -1551,16 +1511,16 @@ semver "^5.6.0" webpack "^4.23.1" -"@storybook/ui@4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-4.0.4.tgz#d7b96be6ccc4e90760dd5e8277a734660bc0d234" - integrity sha512-07o7qKQehsIzte4cjp0o9mXEf9YDEiRo3DQbHyTqFehEsj1vSJH/+WH5p5eAK4Zu7K01wprdOoyxsq2tRKQ8xA== +"@storybook/ui@4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-4.0.7.tgz#ac6f66c7973ff19f0c0f27fd5bca2856eed628cd" + integrity sha512-VSvSU0Ac81D0J26U6+E0zSQBA7VtjVFBEv/SwXJ81DxA8jgCK08YZF8CGaTJGEcY6EY3G1HACcfnVHrXyzT8zw== dependencies: "@emotion/core" "^0.13.1" "@emotion/provider" "^0.11.2" "@emotion/styled" "^0.10.6" - "@storybook/components" "4.0.4" - "@storybook/core-events" "4.0.4" + "@storybook/components" "4.0.7" + "@storybook/core-events" "4.0.7" "@storybook/mantra-core" "^1.7.2" "@storybook/podda" "^1.2.3" "@storybook/react-komposer" "^2.0.5" @@ -10180,12 +10140,7 @@ react-inspector@^2.3.0: babel-runtime "^6.26.0" is-dom "^1.0.9" -react-is@^16.6.0: - version "16.6.3" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0" - integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA== - -react-is@^16.6.1, react-is@^16.6.3: +react-is@^16.6.0, react-is@^16.6.1, react-is@^16.6.3: version "16.6.3" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0" integrity sha512-u7FDWtthB4rWibG/+mFbVd5FvdI20yde86qKGx4lVUTWmPlSWQ4QxbBIrrs+HnXGbxOUlUzTAP/VDmvCwaP2yA== @@ -10975,14 +10930,6 @@ scheduler@^0.11.2: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.11.2: - version "0.11.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.11.2.tgz#a8db5399d06eba5abac51b705b7151d2319d33d3" - integrity sha512-+WCP3s3wOaW4S7C1tl3TEXp4l9lJn0ZK8G3W3WKRWmw77Z2cIFUW2MiNTMHn5sCjxN+t7N43HAOOgMjyAg5hlg== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" @@ -11000,10 +10947,10 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -semantic-release@15.10.x: - version "15.10.8" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.10.8.tgz#07027a159199148998dc5f246ed6533d0441851c" - integrity sha512-+n1eQArIw0TROFFwyf6csSLtKPt47goFbYk0ROAz3ja0r0ltV/ClKNCN6bkV2XzVlvTYqYFY6yutOIvPr1K4hQ== +semantic-release@15.11.x: + version "15.11.0" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-15.11.0.tgz#da4c2cc82361f1fcfb546a295931f3d728e5f8c2" + integrity sha512-WNni9nH7LlinGrJaby015XxTvy8m08vVtvivgiOIQ1orMFEvjQ5KuI069cUTsTBx7Kck4g3esRdnJXx6oMiLzg== dependencies: "@semantic-release/commit-analyzer" "^6.1.0" "@semantic-release/error" "^2.2.0" @@ -12080,7 +12027,7 @@ ts-loader@5.3.x: micromatch "^3.1.4" semver "^5.0.1" -tslib@1.9.x, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@1.9.3, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== @@ -12627,7 +12574,7 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@4.x.x, webpack@^4.23.1: +webpack@^4.23.1: version "4.25.1" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.25.1.tgz#4f459fbaea0f93440dc86c89f771bb3a837cfb6d" integrity sha512-T0GU/3NRtO4tMfNzsvpdhUr8HnzA4LTdP2zd+e5zd6CdOH5vNKHnAlO+DvzccfhPdzqRrALOFcjYxx7K5DWmvA==