diff --git a/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormModal.js b/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormModal.js index 415f61c2d2d..853b9bb4953 100644 --- a/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormModal.js +++ b/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormModal.js @@ -3,7 +3,7 @@ import * as React from 'react' import { Form } from 'formik' import styled, { css } from 'styled-components' -import { FS_BODY_1, BUTTON_TYPE_SUBMIT } from '@opentrons/components' +import { FONT_SIZE_BODY_1, BUTTON_TYPE_SUBMIT } from '@opentrons/components' import { ScrollableAlertModal } from '../../../modals' import { TextField } from './TextField' import { KeyFileField } from './KeyFileField' @@ -30,7 +30,7 @@ const StyledForm: StyledComponent< {||}, typeof Form > = styled(Form)` - ${FS_BODY_1} + font-size: ${FONT_SIZE_BODY_1}; display: table; width: 80%; margin-top: 0.5rem; diff --git a/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormRow.js b/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormRow.js index 80ee9c76b64..16576b8fb42 100644 --- a/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormRow.js +++ b/app/src/components/RobotSettings/SelectNetwork/ConnectModal/FormRow.js @@ -2,7 +2,7 @@ // presentational components for the wifi connect form import * as React from 'react' import styled from 'styled-components' -import { FW_SEMIBOLD } from '@opentrons/components' +import { FONT_WEIGHT_SEMIBOLD } from '@opentrons/components' import type { StyledComponent } from 'styled-components' @@ -20,7 +20,7 @@ const StyledLabel: StyledComponent<{||}, {||}, HTMLLabelElement> = styled.label` display: table-cell; padding-right: 1rem; text-align: right; - ${FW_SEMIBOLD} + font-weight: ${FONT_WEIGHT_SEMIBOLD}; ` const StyledInputWrapper: StyledComponent< diff --git a/babel.config.js b/babel.config.js index 0c84de2b0e3..454d413fb6a 100644 --- a/babel.config.js +++ b/babel.config.js @@ -12,7 +12,9 @@ module.exports = { }, test: { plugins: [ - 'babel-plugin-styled-components', + // NOTE(mc, 2020-05-08): disable ssr, displayName to fix toHaveStyleRule + // https://github.com/styled-components/jest-styled-components/issues/294 + ['babel-plugin-styled-components', { ssr: false, displayName: false }], '@babel/plugin-transform-modules-commonjs', 'babel-plugin-dynamic-import-node', ], diff --git a/components/src/controls/ControlSection.js b/components/src/controls/ControlSection.js index 0c42c0601f8..200df3de603 100644 --- a/components/src/controls/ControlSection.js +++ b/components/src/controls/ControlSection.js @@ -4,7 +4,7 @@ import * as React from 'react' import styled from 'styled-components' -import { FONT_BODY_1_DARK, FW_SEMIBOLD } from '../styles' +import { FONT_BODY_1_DARK, FONT_WEIGHT_SEMIBOLD } from '../styles' import type { StyledComponent } from 'styled-components' @@ -20,7 +20,7 @@ const SectionWrapper: StyledComponent<{||}, {||}, HTMLDivElement> = styled.div` ` const SectionTitle: StyledComponent<{||}, {||}, HTMLElement> = styled.p` - ${FW_SEMIBOLD} + font-weight: ${FONT_WEIGHT_SEMIBOLD}; margin-bottom: 0.5rem; ` diff --git a/components/src/index.js b/components/src/index.js index 3a3e082cfc5..44b80bcd355 100644 --- a/components/src/index.js +++ b/components/src/index.js @@ -17,6 +17,7 @@ export * from './interaction-enhancers' export * from './lists' export * from './modals' export * from './nav' +export * from './primitives' export * from './tabbedNav' export * from './slotmap' export * from './structure' diff --git a/components/src/primitives/Flex.js b/components/src/primitives/Flex.js new file mode 100644 index 00000000000..94889cd0f5f --- /dev/null +++ b/components/src/primitives/Flex.js @@ -0,0 +1,60 @@ +// @flow +import styled from 'styled-components' +import type { StyledComponent } from 'styled-components' + +export const ALIGN_NORMAL = 'normal' +export const ALIGN_START = 'start' +export const ALIGN_END = 'end' +export const ALIGN_FLEX_START = 'flex-start' +export const ALIGN_FLEX_END = 'flex-end' +export const ALIGN_CENTER = 'center' +export const ALIGN_BASELINE = 'baseline' +export const ALIGN_STRETCH = 'stretch' + +export const JUSTIFY_NORMAL = 'normal' +export const JUSTIFY_START = 'start' +export const JUSTIFY_END = 'end' +export const JUSTIFY_FLEX_START = 'flex-start' +export const JUSTIFY_FLEX_END = 'flex-end' +export const JUSTIFY_CENTER = 'center' +export const JUSTIFY_SPACE_BETWEEN = 'space-between' +export const JUSTIFY_SPACE_AROUND = 'space-around' +export const JUSTIFY_SPACE_EVENLY = 'space-evenly' +export const JUSTIFY_STRETCH = 'stretch' + +export const DIRECTION_ROW = 'row' +export const DIRECTION_ROW_REVERSE = 'row-reverse' +export const DIRECTION_COLUMN = 'column' +export const DIRECTION_COLUMN_REVERSE = 'column-reverse' + +export const WRAP = 'wrap' +export const NO_WRAP = 'nowrap' +export const WRAP_REVERSE = 'wrap-reverse' + +// style props are string type for flexibility, but try to use the constants +// defined above for safety +export type FlexProps = {| + color?: string, + alignItems?: string, + justifyContent?: string, + direction?: string, + wrap?: string, +|} + +/** + * Flexbox primitive + * + * @component + */ +export const Flex: StyledComponent< + FlexProps, + {||}, + HTMLDivElement +> = styled.div` + display: flex; + ${({ color }) => (color ? `color: ${color};` : '')} + ${({ alignItems: ai }) => (ai ? `align-items: ${ai};` : '')} + ${({ justifyContent: jc }) => (jc ? `justify-content: ${jc};` : '')} + ${({ direction: d }) => (d ? `flex-direction: ${d};` : '')} + ${({ wrap }) => (wrap ? `flex-wrap: ${wrap};` : '')} +` diff --git a/components/src/primitives/Flex.md b/components/src/primitives/Flex.md new file mode 100644 index 00000000000..470ea213e42 --- /dev/null +++ b/components/src/primitives/Flex.md @@ -0,0 +1,22 @@ +Flexbox primitive. Renders a `div` by default with `display: flex;` + +```js +import { Icon, ALIGN_CENTER, JUSTIFY_CENTER } from '@opentrons/components' +; + + +``` + +`` is a [StyledComponent](https://styled-components.com/docs/basics#getting-started), and accepts an `as` prop to render as any other DOM element or React component. + +```js +import { DIRECTION_COLUMN } from '@opentrons/components' +; +
  • hello
  • +
  • world
  • +
    +``` diff --git a/components/src/primitives/Text.js b/components/src/primitives/Text.js new file mode 100644 index 00000000000..c2aa122ede4 --- /dev/null +++ b/components/src/primitives/Text.js @@ -0,0 +1,30 @@ +// @flow +import styled from 'styled-components' +import type { StyledComponent } from 'styled-components' + +// props are string type for flexibility, but try to use constants for safety +export type TextProps = {| + color?: string, + fontSize?: string, + fontWeight?: string, + fontStyle?: string, + lineHeight?: string, +|} + +// TODO(mc, 2020-05-08): add variants (--font-body-2-dark, etc) as variant prop +// or as components that compose the base Text component + +/** + * Text primitive + * + * @component + */ +export const Text: StyledComponent = styled.p` + margin-top: 0; + margin-bottom: 0; + ${({ fontSize }) => (fontSize ? `font-size: ${fontSize};` : '')} + ${({ fontWeight }) => (fontWeight ? `font-weight: ${fontWeight};` : '')} + ${({ fontStyle }) => (fontStyle ? `font-style: ${fontStyle};` : '')} + ${({ lineHeight }) => (lineHeight ? `line-height: ${lineHeight};` : '')} + ${({ color }) => (color ? `color: ${color};` : '')} +` diff --git a/components/src/primitives/Text.md b/components/src/primitives/Text.md new file mode 100644 index 00000000000..09f211ea4b2 --- /dev/null +++ b/components/src/primitives/Text.md @@ -0,0 +1,24 @@ +Text primitive. Renders a `p` by default with `margin-top: 0; margin-bottom: 0;` + +```js +import { FONT_SIZE_BODY_2 } from '@opentrons/components' +;hello world +``` + +`` is a [StyledComponent](https://styled-components.com/docs/basics#getting-started), and accepts an `as` prop to render as any other DOM element or React component. + +```js +import { + FONT_SIZE_HEADER, + LINE_HEIGHT_TITLE, + FONT_WEIGHT_REGULAR, +} from '@opentrons/components' +; + hello h3 + +``` diff --git a/components/src/primitives/__tests__/Flex.test.js b/components/src/primitives/__tests__/Flex.test.js new file mode 100644 index 00000000000..ec69f44842d --- /dev/null +++ b/components/src/primitives/__tests__/Flex.test.js @@ -0,0 +1,149 @@ +// @flow +import * as React from 'react' +import { shallow } from 'enzyme' + +import { C_WHITE } from '../../styles' +import { + Flex, + ALIGN_NORMAL, + ALIGN_START, + ALIGN_END, + ALIGN_FLEX_START, + ALIGN_FLEX_END, + ALIGN_CENTER, + ALIGN_BASELINE, + ALIGN_STRETCH, + JUSTIFY_NORMAL, + JUSTIFY_START, + JUSTIFY_END, + JUSTIFY_FLEX_START, + JUSTIFY_FLEX_END, + JUSTIFY_CENTER, + JUSTIFY_SPACE_BETWEEN, + JUSTIFY_SPACE_AROUND, + JUSTIFY_SPACE_EVENLY, + JUSTIFY_STRETCH, + DIRECTION_ROW, + DIRECTION_ROW_REVERSE, + DIRECTION_COLUMN, + DIRECTION_COLUMN_REVERSE, + WRAP, + NO_WRAP, + WRAP_REVERSE, +} from '..' + +describe('Flex primitive component', () => { + it('should be a div with display: flex', () => { + const wrapper = shallow() + expect(wrapper.exists('div')).toBe(true) + expect(wrapper).toHaveStyleRule('display', 'flex') + }) + + it('should accept an `as` prop', () => { + const wrapper = shallow() + expect(wrapper.exists('nav')).toBe(true) + expect(wrapper).toHaveStyleRule('display', 'flex') + }) + + it('should accept an `className` prop', () => { + const wrapper = shallow() + expect(wrapper.hasClass('extra-class')).toBe(true) + }) + + it('should render children', () => { + const wrapper = shallow( + + + + ) + expect(wrapper.exists('[data-test="child"]')).toBe(true) + }) + + it('should take a color prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('color', '#ffffff') + }) + + it('should take an alignItems prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('align-items', 'normal') + + wrapper.setProps({ alignItems: ALIGN_START }) + expect(wrapper).toHaveStyleRule('align-items', 'start') + + wrapper.setProps({ alignItems: ALIGN_END }) + expect(wrapper).toHaveStyleRule('align-items', 'end') + + wrapper.setProps({ alignItems: ALIGN_FLEX_START }) + expect(wrapper).toHaveStyleRule('align-items', 'flex-start') + + wrapper.setProps({ alignItems: ALIGN_FLEX_END }) + expect(wrapper).toHaveStyleRule('align-items', 'flex-end') + + wrapper.setProps({ alignItems: ALIGN_CENTER }) + expect(wrapper).toHaveStyleRule('align-items', 'center') + + wrapper.setProps({ alignItems: ALIGN_BASELINE }) + expect(wrapper).toHaveStyleRule('align-items', 'baseline') + + wrapper.setProps({ alignItems: ALIGN_STRETCH }) + expect(wrapper).toHaveStyleRule('align-items', 'stretch') + }) + + it('should take a justifyContent prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('justify-content', 'normal') + + wrapper.setProps({ justifyContent: JUSTIFY_START }) + expect(wrapper).toHaveStyleRule('justify-content', 'start') + + wrapper.setProps({ justifyContent: JUSTIFY_END }) + expect(wrapper).toHaveStyleRule('justify-content', 'end') + + wrapper.setProps({ justifyContent: JUSTIFY_FLEX_START }) + expect(wrapper).toHaveStyleRule('justify-content', 'flex-start') + + wrapper.setProps({ justifyContent: JUSTIFY_FLEX_END }) + expect(wrapper).toHaveStyleRule('justify-content', 'flex-end') + + wrapper.setProps({ justifyContent: JUSTIFY_CENTER }) + expect(wrapper).toHaveStyleRule('justify-content', 'center') + + wrapper.setProps({ justifyContent: JUSTIFY_SPACE_BETWEEN }) + expect(wrapper).toHaveStyleRule('justify-content', 'space-between') + + wrapper.setProps({ justifyContent: JUSTIFY_SPACE_AROUND }) + expect(wrapper).toHaveStyleRule('justify-content', 'space-around') + + wrapper.setProps({ justifyContent: JUSTIFY_SPACE_EVENLY }) + expect(wrapper).toHaveStyleRule('justify-content', 'space-evenly') + + wrapper.setProps({ justifyContent: JUSTIFY_STRETCH }) + expect(wrapper).toHaveStyleRule('justify-content', 'stretch') + }) + + it('should take a direction prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('flex-direction', 'row') + + wrapper.setProps({ direction: DIRECTION_ROW_REVERSE }) + expect(wrapper).toHaveStyleRule('flex-direction', 'row-reverse') + + wrapper.setProps({ direction: DIRECTION_COLUMN }) + expect(wrapper).toHaveStyleRule('flex-direction', 'column') + + wrapper.setProps({ direction: DIRECTION_COLUMN_REVERSE }) + expect(wrapper).toHaveStyleRule('flex-direction', 'column-reverse') + }) + + it('should take a wrap prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('flex-wrap', 'wrap') + + wrapper.setProps({ wrap: NO_WRAP }) + expect(wrapper).toHaveStyleRule('flex-wrap', 'nowrap') + + wrapper.setProps({ wrap: WRAP_REVERSE }) + expect(wrapper).toHaveStyleRule('flex-wrap', 'wrap-reverse') + }) +}) diff --git a/components/src/primitives/__tests__/Text.test.js b/components/src/primitives/__tests__/Text.test.js new file mode 100644 index 00000000000..1c9002c90d8 --- /dev/null +++ b/components/src/primitives/__tests__/Text.test.js @@ -0,0 +1,107 @@ +// @flow +import * as React from 'react' +import { shallow } from 'enzyme' + +import { + C_WHITE, + FONT_SIZE_DEFAULT, + FONT_SIZE_HEADER, + FONT_SIZE_BODY_2, + FONT_SIZE_BODY_1, + FONT_SIZE_CAPTION, + FONT_WEIGHT_REGULAR, + FONT_WEIGHT_SEMIBOLD, + LINE_HEIGHT_SOLID, + LINE_HEIGHT_TITLE, + LINE_HEIGHT_COPY, + FONT_STYLE_NORMAL, + FONT_STYLE_ITALIC, +} from '../../styles' +import { Text } from '..' + +describe('Text primitive component', () => { + it('should be a p', () => { + const wrapper = shallow() + expect(wrapper.exists('p')).toBe(true) + }) + + it('should accept an `as` prop', () => { + const wrapper = shallow() + expect(wrapper.exists('span')).toBe(true) + }) + + it('should accept an `className` prop', () => { + const wrapper = shallow() + expect(wrapper.hasClass('extra-class')).toBe(true) + }) + + it('should render children', () => { + const wrapper = shallow( + + + + ) + expect(wrapper.exists('[data-test="child"]')).toBe(true) + }) + + it('should reset margin to 0', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('margin-top', '0') + expect(wrapper).toHaveStyleRule('margin-bottom', '0') + }) + + it('leaves color and font-size unspecified', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('color', undefined) + expect(wrapper).toHaveStyleRule('font-size', undefined) + }) + + it('should take a color prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('color', C_WHITE) + }) + + it('should take a fontSize prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('font-size', '1rem') + + wrapper.setProps({ fontSize: FONT_SIZE_HEADER }) + expect(wrapper).toHaveStyleRule('font-size', '1.125rem') + + wrapper.setProps({ fontSize: FONT_SIZE_BODY_2 }) + expect(wrapper).toHaveStyleRule('font-size', '0.875rem') + + wrapper.setProps({ fontSize: FONT_SIZE_BODY_1 }) + expect(wrapper).toHaveStyleRule('font-size', '0.75rem') + + wrapper.setProps({ fontSize: FONT_SIZE_CAPTION }) + expect(wrapper).toHaveStyleRule('font-size', '0.625rem') + }) + + it('should take a fontWeight prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('font-weight', '400') + + wrapper.setProps({ fontWeight: FONT_WEIGHT_SEMIBOLD }) + expect(wrapper).toHaveStyleRule('font-weight', '600') + }) + + it('should take a lineHeight prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('line-height', '1') + + wrapper.setProps({ lineHeight: LINE_HEIGHT_TITLE }) + expect(wrapper).toHaveStyleRule('line-height', '1.25') + + wrapper.setProps({ lineHeight: LINE_HEIGHT_COPY }) + expect(wrapper).toHaveStyleRule('line-height', '1.5') + }) + + it('should take a fontStyle prop', () => { + const wrapper = shallow() + expect(wrapper).toHaveStyleRule('font-style', 'normal') + + wrapper.setProps({ fontStyle: FONT_STYLE_ITALIC }) + expect(wrapper).toHaveStyleRule('font-style', 'italic') + }) +}) diff --git a/components/src/primitives/index.js b/components/src/primitives/index.js new file mode 100644 index 00000000000..a042c63aa7a --- /dev/null +++ b/components/src/primitives/index.js @@ -0,0 +1,3 @@ +// @flow +export * from './Flex' +export * from './Text' diff --git a/components/src/structure/Card.js b/components/src/structure/Card.js index c3cd077b32d..3e12babf976 100644 --- a/components/src/structure/Card.js +++ b/components/src/structure/Card.js @@ -40,7 +40,7 @@ const Section: StyledComponent< {||}, HTMLElement > = styled.section` - ${styles.FS_BODY_2} + font-size: ${styles.FONT_SIZE_BODY_2}; position: relative; overflow: visible; box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.33); @@ -60,7 +60,7 @@ const Section: StyledComponent< const Title = styled.h3` ${styles.FONT_HEADER_DARK} - ${styles.FW_REGULAR} + font-weight: ${styles.FONT_WEIGHT_REGULAR}; margin: 0; padding: ${styles.S_1} ${styles.S_1} 0; text-transform: capitalize; diff --git a/components/src/styles/colors.js b/components/src/styles/colors.js index 12c681b88e3..7b929f9fb79 100644 --- a/components/src/styles/colors.js +++ b/components/src/styles/colors.js @@ -1,7 +1,12 @@ // @flow +// color names export const C_DARK_GRAY = '#4a4a4a' export const C_WHITE = '#ffffff' +// colors by usage +export const COLOR_WARNING = '#e28200' +export const COLOR_WARNING_LIGHT = '#ffd58f' + // TDOD(isk: 3/2/20): Rename to be more generic (e.g. not FONT) export const C_FONT_DISABLED = '#9c9c9c' diff --git a/components/src/styles/font-size.js b/components/src/styles/font-size.js deleted file mode 100644 index 55161ab8b3a..00000000000 --- a/components/src/styles/font-size.js +++ /dev/null @@ -1,28 +0,0 @@ -// @flow - -import { css } from 'styled-components' - -// TODO(mc, 2020-03-11): since we have an established type scale from UX -// but not an established spacing scale, keep them separate for now to make -// this file a little easier to deal with -// import { S_0875, S_1125 } from './spacing' - -export const FS_HEADER = css` - font-size: 1.125rem; -` - -export const FS_DEFAULT = css` - font-size: 1rem; -` - -export const FS_BODY_2 = css` - font-size: 0.875rem; -` - -export const FS_BODY_1 = css` - font-size: 0.75rem; -` - -export const FS_CAPTION = css` - font-size: 0.625rem; -` diff --git a/components/src/styles/font-weight.js b/components/src/styles/font-weight.js deleted file mode 100644 index c3eaabe5e9e..00000000000 --- a/components/src/styles/font-weight.js +++ /dev/null @@ -1,11 +0,0 @@ -// @flow - -import { css } from 'styled-components' - -export const FW_REGULAR = css` - font-weight: 400; -` - -export const FW_SEMIBOLD = css` - font-weight: 600; -` diff --git a/components/src/styles/index.js b/components/src/styles/index.js index 0c773aa59b2..54ee9dbff1b 100644 --- a/components/src/styles/index.js +++ b/components/src/styles/index.js @@ -1,7 +1,5 @@ // @flow export * from './colors' -export * from './font-size' -export * from './font-weight' export * from './spacing' export * from './typography' diff --git a/components/src/styles/typography.js b/components/src/styles/typography.js index 8dfd1e7ae85..a37b22c62ba 100644 --- a/components/src/styles/typography.js +++ b/components/src/styles/typography.js @@ -3,23 +3,47 @@ import { css } from 'styled-components' import { C_DARK_GRAY, C_WHITE } from './colors' -import { FS_HEADER, FS_BODY_1 } from './font-size' -import { FW_SEMIBOLD, FW_REGULAR } from './font-weight' +// font size values +export const FONT_SIZE_HUGE = '3rem' +export const FONT_SIZE_HEADER = '1.125rem' +export const FONT_SIZE_DEFAULT = '1rem' +export const FONT_SIZE_BODY_2 = '0.875rem' +export const FONT_SIZE_BODY_1 = '0.75rem' +export const FONT_SIZE_CAPTION = '0.625rem' +export const FONT_SIZE_TINY = '0.325rem' +export const FONT_SIZE_MICRO = '0.2rem' + +// line height values +export const LINE_HEIGHT_SOLID = 1 +export const LINE_HEIGHT_TITLE = 1.25 +export const LINE_HEIGHT_COPY = 1.5 + +// font weight values +export const FONT_WEIGHT_LIGHT = 300 +export const FONT_WEIGHT_REGULAR = 400 +export const FONT_WEIGHT_SEMIBOLD = 600 +export const FONT_WEIGHT_BOLD = 800 + +// font style values +export const FONT_STYLE_NORMAL = 'normal' +export const FONT_STYLE_ITALIC = 'italic' + +// font property sets export const FONT_HEADER_DARK = css` - ${FS_HEADER} - ${FW_SEMIBOLD} + font-size: ${FONT_SIZE_HEADER}; + font-weight: ${FONT_WEIGHT_SEMIBOLD}; color: ${C_DARK_GRAY}; ` export const FONT_BODY_1_DARK = css` - ${FS_BODY_1} - ${FW_REGULAR} + font-size: ${FONT_SIZE_BODY_1}; + font-weight: ${FONT_WEIGHT_REGULAR}; color: ${C_DARK_GRAY}; ` export const FONT_BODY_1_LIGHT = css` - ${FS_BODY_1} - ${FW_REGULAR} + font-size: ${FONT_SIZE_BODY_1}; + font-weight: ${FONT_WEIGHT_REGULAR}; color: ${C_WHITE}; ` diff --git a/components/styleguide.config.js b/components/styleguide.config.js index 6de782877b4..1fd21d92295 100644 --- a/components/styleguide.config.js +++ b/components/styleguide.config.js @@ -68,6 +68,10 @@ module.exports = { name: 'Tooltips', components: 'src/tooltips/[A-Z]*.js', }, + { + name: 'Primitives', + components: 'src/primitives/[A-Z]*.js', + }, ], getComponentPathLine(componentPath) { const name = path.basename(componentPath, '.js') diff --git a/package.json b/package.json index f510213b0e9..acc960fd0ca 100755 --- a/package.json +++ b/package.json @@ -52,9 +52,9 @@ "electron-notarize": "^0.1.1", "electron-publisher-s3": "^20.17.2", "electron-rebuild": "^1.10.1", - "enzyme": "^3.10.0", - "enzyme-adapter-react-16": "^1.14.0", - "enzyme-to-json": "^3.3.5", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.2", + "enzyme-to-json": "^3.4.4", "eslint": "^6.8.0", "eslint-config-prettier": "^6.3.0", "eslint-config-standard": "^12.0.0", @@ -82,7 +82,7 @@ "html-webpack-plugin": "^3.2.0", "identity-obj-proxy": "^3.0.0", "jest": "^25.1.0", - "jest-styled-components": "7.0.0", + "jest-styled-components": "7.0.2", "lerna": "^3.16.4", "lost": "^8.3.1", "madge": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 201c2d08df0..0df0b56ab67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3408,13 +3408,13 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -airbnb-prop-types@^2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.13.2.tgz#43147a5062dd2a4a5600e748a47b64004cc5f7fc" - integrity sha512-2FN6DlHr6JCSxPPi25EnqGaXC4OC3/B3k1lCd6MMYrZ51/Gf/1qDfaR+JElzWa+Tl7cY2aYOlsYJGFeQyVHIeQ== +airbnb-prop-types@^2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz#5287820043af1eb469f5b0af0d6f70da6c52aaef" + integrity sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA== dependencies: - array.prototype.find "^2.0.4" - function.prototype.name "^1.1.0" + array.prototype.find "^2.1.0" + function.prototype.name "^1.1.1" has "^1.0.3" is-regex "^1.0.4" object-is "^1.0.1" @@ -3422,7 +3422,7 @@ airbnb-prop-types@^2.13.2: object.entries "^1.1.0" prop-types "^15.7.2" prop-types-exact "^1.2.0" - react-is "^16.8.6" + react-is "^16.9.0" ajv-errors@^1.0.0: version "1.0.0" @@ -3752,22 +3752,21 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -array.prototype.find@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7" - integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg== +array.prototype.find@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c" + integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA== dependencies: define-properties "^1.1.3" - es-abstract "^1.13.0" + es-abstract "^1.17.4" -array.prototype.flat@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" - integrity sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw== +array.prototype.flat@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== dependencies: - define-properties "^1.1.2" - es-abstract "^1.10.0" - function-bind "^1.1.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" arrify@^1.0.1: version "1.0.1" @@ -4993,7 +4992,7 @@ cheerio@1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -cheerio@^1.0.0-rc.2: +cheerio@^1.0.0-rc.3: version "1.0.0-rc.3" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== @@ -7230,65 +7229,76 @@ env-variable@0.0.x: version "0.0.4" resolved "https://registry.npmjs.org/env-variable/-/env-variable-0.0.4.tgz#0d6280cf507d84242befe35a512b5ae4be77c54e" -enzyme-adapter-react-16@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.14.0.tgz#204722b769172bcf096cb250d33e6795c1f1858f" - integrity sha512-7PcOF7pb4hJUvjY7oAuPGpq3BmlCig3kxXGi2kFx0YzJHppqX1K8IIV9skT1IirxXlu8W7bneKi+oQ10QRnhcA== +enzyme-adapter-react-16@^1.15.2: + version "1.15.2" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" + integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== dependencies: - enzyme-adapter-utils "^1.12.0" + enzyme-adapter-utils "^1.13.0" + enzyme-shallow-equal "^1.0.1" has "^1.0.3" object.assign "^4.1.0" - object.values "^1.1.0" + object.values "^1.1.1" prop-types "^15.7.2" - react-is "^16.8.6" + react-is "^16.12.0" react-test-renderer "^16.0.0-0" semver "^5.7.0" -enzyme-adapter-utils@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93" - integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA== +enzyme-adapter-utils@^1.13.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78" + integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ== dependencies: - airbnb-prop-types "^2.13.2" - function.prototype.name "^1.1.0" + airbnb-prop-types "^2.15.0" + function.prototype.name "^1.1.2" object.assign "^4.1.0" - object.fromentries "^2.0.0" + object.fromentries "^2.0.2" prop-types "^15.7.2" - semver "^5.6.0" + semver "^5.7.1" -enzyme-to-json@^3.3.5: - version "3.3.5" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.5.tgz#f8eb82bd3d5941c9d8bc6fd9140030777d17d0af" - integrity sha512-DmH1wJ68HyPqKSYXdQqB33ZotwfUhwQZW3IGXaNXgR69Iodaoj8TF/D9RjLdz4pEhGq2Tx2zwNUIjBuqoZeTgA== +enzyme-shallow-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e" + integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ== dependencies: - lodash "^4.17.4" + has "^1.0.3" + object-is "^1.0.2" -enzyme@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6" - integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg== +enzyme-to-json@^3.4.4: + version "3.4.4" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.4.4.tgz#b30726c59091d273521b6568c859e8831e94d00e" + integrity sha512-50LELP/SCPJJGic5rAARvU7pgE3m1YaNj7JLM+Qkhl5t7PAs6fiyc8xzc50RnkKPFQCv0EeFVjEWdIFRGPWMsA== dependencies: - array.prototype.flat "^1.2.1" - cheerio "^1.0.0-rc.2" - function.prototype.name "^1.1.0" + lodash "^4.17.15" + react-is "^16.12.0" + +enzyme@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" + integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== + dependencies: + array.prototype.flat "^1.2.3" + cheerio "^1.0.0-rc.3" + enzyme-shallow-equal "^1.0.1" + function.prototype.name "^1.1.2" has "^1.0.3" - html-element-map "^1.0.0" - is-boolean-object "^1.0.0" - is-callable "^1.1.4" - is-number-object "^1.0.3" - is-regex "^1.0.4" - is-string "^1.0.4" + html-element-map "^1.2.0" + is-boolean-object "^1.0.1" + is-callable "^1.1.5" + is-number-object "^1.0.4" + is-regex "^1.0.5" + is-string "^1.0.5" is-subset "^0.1.1" lodash.escape "^4.0.1" lodash.isequal "^4.5.0" - object-inspect "^1.6.0" - object-is "^1.0.1" + object-inspect "^1.7.0" + object-is "^1.0.2" object.assign "^4.1.0" - object.entries "^1.0.4" - object.values "^1.0.4" - raf "^3.4.0" + object.entries "^1.1.1" + object.values "^1.1.1" + raf "^3.4.1" rst-selector-parser "^2.2.3" - string.prototype.trim "^1.1.2" + string.prototype.trim "^1.2.1" err-code@^1.0.0: version "1.1.2" @@ -7313,7 +7323,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.5.0: +es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.5.0: version "1.13.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== @@ -7325,7 +7335,24 @@ es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13 is-regex "^1.0.4" object-keys "^1.0.12" -es-abstract@^1.5.1, es-abstract@^1.6.1: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-abstract@^1.5.1: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" dependencies: @@ -7362,6 +7389,15 @@ es-to-primitive@^1.2.0: is-date-object "^1.0.1" is-symbol "^1.0.2" +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + es6-object-assign@^1.0.3, es6-object-assign@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" @@ -8673,7 +8709,7 @@ fstream@^1.0.12: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: +function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -8681,19 +8717,24 @@ function.name-polyfill@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/function.name-polyfill/-/function.name-polyfill-1.0.6.tgz#c54e37cae0a77dfcb49d47982815b0826b5c60d9" -function.prototype.name@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" - integrity sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg== +function.prototype.name@^1.1.1, function.prototype.name@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" + integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - is-callable "^1.1.3" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + functions-have-names "^1.2.0" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" +functions-have-names@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" + integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -9272,6 +9313,11 @@ has-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -9548,10 +9594,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-element-map@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.0.1.tgz#3c4fcb4874ebddfe4283b51c8994e7713782b592" - integrity sha512-BZSfdEm6n706/lBfXKWa4frZRZcT5k1cOusw95ijZsHlI+GdgY0v95h6IzO3iIDf2ROwq570YTwqNPqHcNMozw== +html-element-map@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22" + integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw== dependencies: array-filter "^1.0.0" @@ -10119,10 +10165,10 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" - integrity sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M= +is-boolean-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e" + integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ== is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: version "1.1.6" @@ -10148,6 +10194,11 @@ is-callable@^1.1.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + is-ci@2.0.0, is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -10314,10 +10365,10 @@ is-npm@^3.0.0: resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== -is-number-object@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" - integrity sha1-8mWrian0RQNO9q/xWo8AsA9VF5k= +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== is-number@^3.0.0: version "3.0.0" @@ -10419,6 +10470,13 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -10459,10 +10517,10 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" - integrity sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ= +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== is-subset@^0.1.1: version "0.1.1" @@ -10924,10 +10982,10 @@ jest-snapshot@^25.1.0: pretty-format "^25.1.0" semver "^7.1.1" -jest-styled-components@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-7.0.0.tgz#3e1b7dcd077800ea5191e1cc95b314917a2ed668" - integrity sha512-A1nl8q1ptZj1t5wd0x/UYjnqfld1GhZwRDPS9w0eD5P5R8G+Q4uHaBAbUjf+Arjexqh2BxfrGkTc3tDuhtdifg== +jest-styled-components@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-7.0.2.tgz#b7711871ea74a04491b12bad123fa35cc65a2a80" + integrity sha512-i1Qke8Jfgx0Why31q74ohVj9S2FmMLUE8bNRSoK4DgiurKkXG6HC4NPhcOLAz6VpVd9wXkPn81hOt4aAQedqsA== dependencies: css "^2.2.4" @@ -13117,16 +13175,24 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= +object-is@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + object-keys@^1.0.11: version "1.1.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" @@ -13140,6 +13206,11 @@ object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" @@ -13160,7 +13231,7 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.entries@^1.0.4, object.entries@^1.1.0: +object.entries@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== @@ -13170,6 +13241,16 @@ object.entries@^1.0.4, object.entries@^1.1.0: function-bind "^1.1.1" has "^1.0.3" +object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + object.fromentries@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" @@ -13180,6 +13261,16 @@ object.fromentries@^2.0.0: function-bind "^1.1.1" has "^1.0.1" +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" @@ -13193,15 +13284,6 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" - object.values@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" @@ -13212,6 +13294,16 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" +object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + obuf@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" @@ -15232,9 +15324,10 @@ quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" -raf@^3.4.0: +raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== dependencies: performance-now "^2.1.0" @@ -15444,7 +15537,7 @@ react-is@^16.3.2: version "16.6.3" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.3.tgz#d2d7462fcfcbe6ec0da56ad69047e47e56e7eac0" -react-is@^16.6.0: +react-is@^16.6.0, react-is@^16.9.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -17690,6 +17783,49 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" +string.prototype.trim@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" + integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string_decoder@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"