diff --git a/CHANGELOG.md b/CHANGELOG.md index c44c67a3d5c..9105584a43a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ - Added `lettering` glyph to `EuiIcon` ([#5525](https://github.com/elastic/eui/pull/5525)) - Updated the outline color in `euiCustomControlFocused` mixin to use `$euiFocusRingColor` instead of `currentColor` ([#5479](https://github.com/elastic/eui/pull/5479)) - Added `betaBadgeTooltipProps` to `EuiKeyPadMenuItem` to extend the wrapping `EuiToolTip` ([#5541](https://github.com/elastic/eui/pull/5541)) +- Added `globalStyles` prop to `EuiProvider` to allow for global style customization ([#5497](https://github.com/elastic/eui/pull/5497)) +- Exported `EuiGlobalStyles` component ([#5497](https://github.com/elastic/eui/pull/5497)) **Bug fixes** diff --git a/package.json b/package.json index d2c2c5d64b8..e9589f2b8bf 100644 --- a/package.json +++ b/package.json @@ -113,11 +113,11 @@ "@elastic/charts": "^41.0.1", "@elastic/datemath": "^5.0.3", "@elastic/eslint-config-kibana": "^0.15.0", - "@emotion/babel-preset-css-prop": "^11.0.0", - "@emotion/cache": "^11.4.0", - "@emotion/eslint-plugin": "^11.0.0", - "@emotion/jest": "^11.1.0", - "@emotion/react": "^11.1.1", + "@emotion/babel-preset-css-prop": "^11.2.0", + "@emotion/cache": "^11.7.1", + "@emotion/eslint-plugin": "^11.7.0", + "@emotion/jest": "^11.7.1", + "@emotion/react": "^11.7.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", "@svgr/core": "5.5.0", "@svgr/plugin-svgo": "^4.0.3", diff --git a/src-docs/src/views/provider/provider.md b/src-docs/src/views/provider/provider.md deleted file mode 100644 index 7d0c5ce9d02..00000000000 --- a/src-docs/src/views/provider/provider.md +++ /dev/null @@ -1,66 +0,0 @@ -## Basic setup - -For EUI to work correctly, set up **EuiProvider** at the root of your application. - -```jsx -import { EuiProvider } from '@elastic/eui' - -const MyApp = ({ Page }) => ( - - - -); -``` - -See [**EuiThemeProvider**](/#/theming/theme-provider) for full documentation as all relevant props will pass through. For instance, it's likely that you will want to implement color mode switching at this level: - -```jsx - -``` - -It is not recommended to recreate the functionality of **EuiProvider** by composing its constituent parts. More context, functionality, and configurations will be added to **EuiProvider** in future releases. Nested instances of [**EuiThemeProvider**](/#/theming/theme-provider), however, are valid. - -## Global reset - -A reset stylesheet and the global EUI styles are applied via Emotion. To prevent loading these styles from loading, pass `theme={null}` to the provider. - -### `@emotion/cache` and style injection location - -In the case that your app has its own static stylesheet, the global styles may not be injected into the correct location in the ``, causing unintentional overrides or unapplied styles. [The **@emotion/cache** library](https://emotion.sh/docs/@emotion/cache) provides configuration options that help with specifying the injection location. We recommend using a `` tag to achieve this. - -```html - - - - - My App - - - -
- - -``` - -```jsx -// App.js -import createCache from '@emotion/cache'; -import { EuiProvider } from '@elastic/eui' - -const cache = createCache({ - key: 'myApp', - container: document.querySelector('meta[name="global-style-insert"]'), -}); - -const MyApp = () => ( - - {/* Content */} - -); -``` - -Any other options available with [the **createCache** API](https://emotion.sh/docs/@emotion/cache#createcache) will be respected by EUI. - -Note that EUI does not include the `@emotion/cache` library, so you will need to add it to your application dependencies. - - diff --git a/src-docs/src/views/provider/provider_example.js b/src-docs/src/views/provider/provider_example.js index 15b34f89799..000b08f9789 100644 --- a/src-docs/src/views/provider/provider_example.js +++ b/src-docs/src/views/provider/provider_example.js @@ -2,13 +2,18 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { - EuiMarkdownFormat, EuiText, EuiProvider, + EuiCode, + EuiCodeBlock, + EuiLink, + EuiSpacer, } from '../../../../src/components'; + import { GuideSectionPropsTable } from '../../components/guide_section/guide_section_parts/guide_section_props_table'; -const providerSource = require('!!raw-loader!./provider.md').default; +import Setup from './provider_setup'; +import GlobalStyles from './provider_styles'; export const ProviderExample = { title: 'Provider', @@ -28,8 +33,93 @@ export const ProviderExample = { ), sections: [ { - wrapText: false, - text: {providerSource}, + title: 'Basic setup', + text: ( + +

+ For EUI to work correctly, set up EuiProvider at + the root of your application. +

+ + + +

+ See{' '} + + EuiThemeProvider + {' '} + for full documentation as all relevant props will pass through. For + instance, it's likely that you will want to implement color + mode switching at this level: +

+ + + {""} + + + + +

+ It is not recommended to recreate the functionality of{' '} + EuiProvider by composing its constituent parts. + More context, functionality, and configurations will be added to{' '} + EuiProvider in future releases. Nested instances of{' '} + + EuiThemeProvider + + , however, are valid. +

+
+ ), + }, + { + title: 'Global styles', + text: ( + +

+ The provider includes general reset and global styles, applied via + Emotion. These only need to be applied once so to + prevent these styles from loading in nested instances of the + provider, pass + {'globalStyles={false}'}. +

+ +

+ @emotion/cache and style injection location +

+

+ In the case that your app has its own static stylesheet, the global + styles may not be injected into the correct location in the{' '} + {''}, causing unintentional overrides or + unapplied styles.{' '} + + The @emotion/cache library + {' '} + provides configuration options that help with specifying the + injection location. We recommend using a{' '} + {''} tag to achieve this. +

+ + + +

+ Any other options available with{' '} + + the createCache API + {' '} + will be respected by EUI. +

+ +

+ Note that EUI does not include the @emotion/cache{' '} + library, so you will need to add it to your application + dependencies. +

+
+ ), }, { title: 'EuiProvider props', diff --git a/src-docs/src/views/provider/provider_setup.tsx b/src-docs/src/views/provider/provider_setup.tsx new file mode 100644 index 00000000000..e3d78c7b0c2 --- /dev/null +++ b/src-docs/src/views/provider/provider_setup.tsx @@ -0,0 +1,22 @@ +import React from 'react'; + +import { EuiCodeBlock, useEuiTheme, isLegacyTheme } from '../../../../src'; + +export default () => { + const { euiTheme, colorMode } = useEuiTheme(); + const isLegacy = isLegacyTheme(euiTheme.themeName); + + return ( + + {`import { EuiProvider } from '@elastic/eui'; + +const MyApp = () => ( + + {/* Content */} +
+);`} + + ); +}; diff --git a/src-docs/src/views/provider/provider_styles.tsx b/src-docs/src/views/provider/provider_styles.tsx new file mode 100644 index 00000000000..f4df4a9e0e1 --- /dev/null +++ b/src-docs/src/views/provider/provider_styles.tsx @@ -0,0 +1,58 @@ +import React from 'react'; + +import { + EuiCodeBlock, + EuiSpacer, + useEuiTheme, + isLegacyTheme, +} from '../../../../src'; + +export default () => { + const { euiTheme, colorMode } = useEuiTheme(); + const isLegacy = isLegacyTheme(euiTheme.themeName); + + return ( + <> + + {!isLegacy + ? ` + + + + My App + + + +
+ +` + : ` +`} +
+ + + + + {`// App.js +import { EuiProvider } from '@elastic/eui' +${ + !isLegacy + ? `import createCache from '@emotion/cache'; + +const cache = createCache({ + key: 'myApp', + container: document.querySelector('meta[name="global-style-insert"]'), +}); +` + : '' +} + + {/* Content */} + + `} + + + ); +}; diff --git a/src/components/provider/__snapshots__/provider.test.tsx.snap b/src/components/provider/__snapshots__/provider.test.tsx.snap index c43f660451e..20c28f010d0 100644 --- a/src/components/provider/__snapshots__/provider.test.tsx.snap +++ b/src/components/provider/__snapshots__/provider.test.tsx.snap @@ -1496,6 +1496,7 @@ exports[`EuiProvider providing an @emotion cache config applies the cache to glo "before": null, "container": , "ctr": 0, + "insertionPoint": undefined, "isSpeedy": false, "key": "testing", "nonce": undefined, diff --git a/src/components/provider/provider.tsx b/src/components/provider/provider.tsx index c8f1a5c00a6..567ecbf4910 100644 --- a/src/components/provider/provider.tsx +++ b/src/components/provider/provider.tsx @@ -9,10 +9,7 @@ import React, { PropsWithChildren } from 'react'; import { CacheProvider, EmotionCache } from '@emotion/react'; -import { - EuiGlobalStyles, - EuiGlobalStylesProps, -} from '../../global_styling/reset/global_styles'; +import { EuiGlobalStyles, EuiGlobalStylesProps } from '../../global_styling'; import { EuiThemeProvider, EuiThemeProviderProps, @@ -28,24 +25,33 @@ export interface EuiProviderProps * Pass `null` to remove all theming including global reset */ theme?: EuiThemeSystem | null; + /** + * Provide global styles via `@emotion/react` `Global` for your custom theme. + * Pass `false` to remove the default EUI global styles. + */ + globalStyles?: false | ((params: any) => JSX.Element | null); + /** + * Provide a cache configuration from `@emotion/cache` + */ cache?: EmotionCache; } export const EuiProvider = ({ cache, theme = EuiThemeAmsterdam, + globalStyles: GlobalStyles = EuiGlobalStyles, colorMode, modify, children, }: PropsWithChildren>) => { - return theme !== null ? ( + return theme !== null && GlobalStyles !== false ? ( {cache ? ( - + ) : ( - + )} {children} diff --git a/src/global_styling/index.ts b/src/global_styling/index.ts new file mode 100644 index 00000000000..0eee3cdb9d3 --- /dev/null +++ b/src/global_styling/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './reset/global_styles'; diff --git a/src/index.ts b/src/index.ts index cceaba905f7..a52d87d4af5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,3 +10,4 @@ export * from './components'; export * from './services'; export * from './utils'; export * from './themes'; +export * from './global_styling'; diff --git a/yarn.lock b/yarn.lock index b91629f06d9..786f4eb3437 100755 --- a/yarn.lock +++ b/yarn.lock @@ -454,27 +454,20 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.7.0": - version "7.12.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" - integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== - dependencies: - "@babel/types" "^7.12.5" - -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== dependencies: "@babel/types" "^7.16.0" +"@babel/helper-module-imports@^7.12.1": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + "@babel/helper-module-imports@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" @@ -558,15 +551,15 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" + integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== -"@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== "@babel/helper-regex@^7.10.4": version "7.10.5" @@ -691,6 +684,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + "@babel/helper-validator-option@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" @@ -1090,26 +1088,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== +"@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.12.1": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-syntax-jsx@^7.12.1", "@babel/plugin-syntax-jsx@^7.2.0": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.0", "@babel/plugin-syntax-jsx@^7.2.0": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz#bf255d252f78bc8b77a17cadc37d1aa5b8ed4394" + integrity sha512-42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-jsx@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1" - integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" @@ -2163,6 +2154,14 @@ "@babel/helper-validator-identifier" "^7.15.7" to-fast-properties "^2.0.0" +"@babel/types@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" + integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@cnakazawa/watch@^1.0.3": version "1.0.4" resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" @@ -2310,107 +2309,96 @@ dependencies: "@babel/plugin-syntax-jsx" "^7.2.0" -"@emotion/babel-plugin@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.0.0.tgz#e6f40fa81ef52775773a53d50220c597ebc5c2ef" - integrity sha512-w3YP0jlqrNwBBaSI6W+r80fOKF6l9QmsPfLNx5YWSHwrxjVZhM+L50gY7YCVAvlfr1/qdD1vsFN+PDZmLvt42Q== +"@emotion/babel-plugin@^11.2.0": + version "11.7.1" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.7.1.tgz#853fc4985d89dab0ea8e17af2858473d1b11be7e" + integrity sha512-K3/6Y+J/sIAjplf3uIteWLhPuOyuMNnE+iyYnTF/m294vc6IL90kTHp7y8ldZYbpKlP17rpOWDKM9DvTcrOmNQ== dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/plugin-syntax-jsx" "^7.12.1" - "@babel/runtime" "^7.7.2" + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/runtime" "^7.13.10" "@emotion/hash" "^0.8.0" - "@emotion/memoize" "^0.7.4" - "@emotion/serialize" "^1.0.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.2" babel-plugin-macros "^2.6.1" convert-source-map "^1.5.0" escape-string-regexp "^4.0.0" find-root "^1.1.0" source-map "^0.5.7" - stylis "^4.0.3" + stylis "4.0.13" -"@emotion/babel-preset-css-prop@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@emotion/babel-preset-css-prop/-/babel-preset-css-prop-11.0.0.tgz#25b868affa620b9e97024b67f67ad32c03a0510e" - integrity sha512-E7z3jMf1OyThGpp3ngYGxOSGX5AdoSQTuqM9QgJNAHFh3Fi8N5CbWx6g+IdySJ8bjPiMgFQsIeEhkyy+4mDpCQ== +"@emotion/babel-preset-css-prop@^11.2.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-preset-css-prop/-/babel-preset-css-prop-11.2.0.tgz#c7e945f56b2610b438f0dc8ae5253fc55488de0e" + integrity sha512-9XLQm2eLPYTho+Cx1LQTDA1rATjoAaB4O+ds55XDvoAa+Z16Hhg8y5Vihj3C8E6+ilDM8SV5A9Z6z+yj0YIRBg== dependencies: "@babel/plugin-transform-react-jsx" "^7.12.1" "@babel/runtime" "^7.7.2" - "@emotion/babel-plugin" "^11.0.0" + "@emotion/babel-plugin" "^11.2.0" "@emotion/babel-plugin-jsx-pragmatic" "^0.1.5" -"@emotion/cache@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.0.0.tgz#473adcaf9e04c6a0e30fb1421e79a209a96818f8" - integrity sha512-NStfcnLkL5vj3mBILvkR2m/5vFxo3G0QEreYKDGHNHm9IMYoT/t3j6xwjx6lMI/S1LUJfVHQqn0m9wSINttTTQ== - dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.0.0" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - stylis "^4.0.3" - -"@emotion/cache@^11.4.0": - version "11.4.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.4.0.tgz#293fc9d9a7a38b9aad8e9337e5014366c3b09ac0" - integrity sha512-Zx70bjE7LErRO9OaZrhf22Qye1y4F7iDl+ITjet0J+i+B88PrAOBkKvaAWhxsZf72tDLajwCgfCjJ2dvH77C3g== +"@emotion/cache@^11.7.1": + version "11.7.1" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539" + integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A== dependencies: "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.0.0" + "@emotion/sheet" "^1.1.0" "@emotion/utils" "^1.0.0" "@emotion/weak-memoize" "^0.2.5" - stylis "^4.0.3" + stylis "4.0.13" -"@emotion/css-prettifier@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@emotion/css-prettifier/-/css-prettifier-1.0.0.tgz#3ed4240d93c9798c001cedf27dd0aa960bdddd1a" - integrity sha512-efxSrRTiTqHTQVKW15Gz5H4pNAw8OqcG8NaiwkJIkqIdNXTD4Qr1zC1Ou6r2acd1oJJ2s56nb1ClnXMiWoj6gQ== +"@emotion/css-prettifier@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/css-prettifier/-/css-prettifier-1.0.1.tgz#a3ce1667398e83701f52ec43938208faeef2e0a5" + integrity sha512-cA9Dtol47mtvWKasPC+8tkh2DS0wBkX0MMHKieXGSkGyx079V7yFY85KC0pPalcIy+vi0LbMR9DNyiJBqYgJ1Q== dependencies: "@emotion/memoize" "^0.7.4" - stylis "^4.0.3" + stylis "4.0.13" -"@emotion/eslint-plugin@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@emotion/eslint-plugin/-/eslint-plugin-11.0.0.tgz#7666b750df62dc33a93bb1e09086f1caaecadc6f" - integrity sha512-V5w/LgV61xta+U6LKht3WQqfjTLueU2mh1aRTcK5OfkRhZ4OZFE0Inq/oVwLCq5g3Hzoaq27PRm+Tk9W18QScw== +"@emotion/eslint-plugin@^11.7.0": + version "11.7.0" + resolved "https://registry.yarnpkg.com/@emotion/eslint-plugin/-/eslint-plugin-11.7.0.tgz#253c8ace26f3921695a7aa85ecbf6fac75e74b33" + integrity sha512-k6H0OxBgkPDVG5M16AWnu3z15OmmKNvGmJiYTcamoOIDhiGE5+no+BiVAiHPOwJf/NOsDei2S9i015cMwlO5sA== "@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== -"@emotion/jest@^11.1.0": - version "11.3.0" - resolved "https://registry.yarnpkg.com/@emotion/jest/-/jest-11.3.0.tgz#43bed6dcb47c8691b346cee231861ebc8f9b0016" - integrity sha512-LZqYc3yerhic1IvAcEwBLRs1DsUt3oY7Oz6n+e+HU32iYOK/vpfzlhgmQURE94BHfv6eCOj6DV38f3jSnIkBkQ== +"@emotion/jest@^11.7.1": + version "11.7.1" + resolved "https://registry.yarnpkg.com/@emotion/jest/-/jest-11.7.1.tgz#cb80a98a922c1bec8906e4ee04bf7f2d101c96b8" + integrity sha512-IYKyiIm4a7LINESYTa6aAizRj6YTwIvpD9s9yDzkrOEJXKwCqWWOTVNNOJKBygim3fv4lC9KM5jG5qzHvy4ZJg== dependencies: "@babel/runtime" "^7.13.10" - "@emotion/css-prettifier" "^1.0.0" + "@emotion/css-prettifier" "^1.0.1" chalk "^4.1.0" specificity "^0.4.1" - stylis "^4.0.3" + stylis "4.0.13" -"@emotion/memoize@^0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== -"@emotion/react@^11.1.1": - version "11.1.1" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.1.tgz#4b304d494af321b0179e6763830e07cf674f0423" - integrity sha512-otA0Np8OnOeU9ChkOS9iuLB6vIxiM+bJiU0id33CsQn3R2Pk9ijVHnxevENIKV/P2S7AhrD8cFbUGysEciWlEA== +"@emotion/react@^11.7.1": + version "11.7.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.7.1.tgz#3f800ce9b20317c13e77b8489ac4a0b922b2fe07" + integrity sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw== dependencies: - "@babel/runtime" "^7.7.2" - "@emotion/cache" "^11.0.0" - "@emotion/serialize" "^1.0.0" - "@emotion/sheet" "^1.0.0" + "@babel/runtime" "^7.13.10" + "@emotion/cache" "^11.7.1" + "@emotion/serialize" "^1.0.2" + "@emotion/sheet" "^1.1.0" "@emotion/utils" "^1.0.0" "@emotion/weak-memoize" "^0.2.5" hoist-non-react-statics "^3.3.1" -"@emotion/serialize@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.0.tgz#1a61f4f037cf39995c97fc80ebe99abc7b191ca9" - integrity sha512-zt1gm4rhdo5Sry8QpCOpopIUIKU+mUSpV9WNmFILUraatm5dttNEaYzUWWSboSMUE6PtN2j1cAsuvcugfdI3mw== +"@emotion/serialize@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965" + integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A== dependencies: "@emotion/hash" "^0.8.0" "@emotion/memoize" "^0.7.4" @@ -2418,10 +2406,10 @@ "@emotion/utils" "^1.0.0" csstype "^3.0.2" -"@emotion/sheet@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.0.tgz#a0ef06080f339477ad4ba7f56e1c931f7ba50822" - integrity sha512-cdCHfZtf/0rahPDCZ9zyq+36EqfD/6c0WUqTFZ/hv9xadTUv2lGE5QK7/Z6Dnx2oRxC0usfVM2/BYn9q9B9wZA== +"@emotion/sheet@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" + integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== "@emotion/unitless@^0.7.5": version "0.7.5" @@ -18435,10 +18423,10 @@ stylelint@^8.1.1: svg-tags "^1.0.0" table "^4.0.1" -stylis@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.3.tgz#0d714765f3f694a685550f0c45411ebf90a9bded" - integrity sha512-iAxdFyR9cHKp4H5M2dJlDnvcb/3TvPprzlKjvYVbH7Sh+y8hjY/mUu/ssdcvVz6Z4lKI3vsoS0jAkMYmX7ozfA== +stylis@4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" + integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== subarg@^1.0.0: version "1.0.0"