grafana/toolkit: Add support for extensions styling (#17938)

* Add support for static files

* Use url-loader in single css setup

* Add postcss setup

* Expose emotion to plugins and externalise it in toolkit

* Add readme note about emotion
This commit is contained in:
Dominik Prokop 2019-07-05 13:33:42 +02:00 committed by GitHub
parent 17b5f48cf6
commit c5b6365858
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 511 additions and 23 deletions

View File

@ -80,8 +80,8 @@ Adidtionaly, you can also provide additional Jest config via package.json file.
- [`snapshotSerializers`](https://jest-bot.github.io/jest/docs/configuration.html#snapshotserializers-array-string) - [`snapshotSerializers`](https://jest-bot.github.io/jest/docs/configuration.html#snapshotserializers-array-string)
## Working with CSS ## Working with CSS & static assets
We support pure css, SASS and CSS in JS approach (via Emotion). We support pure css, SASS and CSS in JS approach (via Emotion). All static assets referenced in your code (i.e. images) should be placed under `src/static` directory and referenced using relative paths.
1. Single css/sass file 1. Single css/sass file
Create your css/sass file and import it in your plugin entry point (typically module.ts): Create your css/sass file and import it in your plugin entry point (typically module.ts):
@ -91,13 +91,37 @@ import 'path/to/your/css_or_sass
``` ```
The styles will be injected via `style` tag during runtime. The styles will be injected via `style` tag during runtime.
2. Theme css/sass files Note, that imported static assets will be inlined as base64 URIs. *This can be a subject of change in the future!*
If you want to provide different stylesheets for Dark/Light theme, create `dark.[css|scss]` and `light.[css|scss]` files in `src/styles` directory of your plugin. Based on that we will generate stylesheets that will end up in `dist/styles` directory.
2. Theme specific css/sass files
If you want to provide different stylesheets for dark/light theme, create `dark.[css|scss]` and `light.[css|scss]` files in `src/styles` directory of your plugin. Based on that we will generate stylesheets that will end up in `dist/styles` directory.
TODO: add note about loadPluginCss TODO: add note about loadPluginCss
3. Emotion 3. Emotion
TODO Starting from Grafana 6.2 our suggested way of styling plugins is by using [Emotion](https://emotion.sh). It's a css-in-js library that we use internaly at Grafana. The biggest advantage of using Emotion is that you will get access to Grafana Theme variables.
To use start using Emotion you first need to add it to your plugin dependencies:
```
yarn add "@emotion/core"@10.0.14
```
Then, import `css` function from emotion:
```import { css } from 'emotion'```
And start implementing your styles:
```tsx
const MyComponent = () => {
return <div className={css`background: red;`} />
}
```
Using themes: TODO, for now please refer to [internal guide](../../style_guides/themes.md)
> NOTE: We do not support Emotion's `css` prop. Use className instead!
## Prettier [todo] ## Prettier [todo]

View File

@ -38,6 +38,7 @@
"copy-webpack-plugin": "5.0.3", "copy-webpack-plugin": "5.0.3",
"css-loader": "^3.0.0", "css-loader": "^3.0.0",
"execa": "^1.0.0", "execa": "^1.0.0",
"file-loader": "^4.0.0",
"glob": "^7.1.4", "glob": "^7.1.4",
"html-loader": "0.5.5", "html-loader": "0.5.5",
"inquirer": "^6.3.1", "inquirer": "^6.3.1",
@ -49,6 +50,9 @@
"node-sass": "^4.12.0", "node-sass": "^4.12.0",
"optimize-css-assets-webpack-plugin": "^5.0.3", "optimize-css-assets-webpack-plugin": "^5.0.3",
"ora": "^3.4.0", "ora": "^3.4.0",
"postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0",
"postcss-preset-env": "6.6.0",
"prettier": "^1.17.1", "prettier": "^1.17.1",
"react-dev-utils": "^9.0.1", "react-dev-utils": "^9.0.1",
"replace-in-file": "^4.1.0", "replace-in-file": "^4.1.0",
@ -65,6 +69,7 @@
"tslint": "5.14.0", "tslint": "5.14.0",
"tslint-config-prettier": "^1.18.0", "tslint-config-prettier": "^1.18.0",
"typescript": "3.5.1", "typescript": "3.5.1",
"url-loader": "^2.0.1",
"webpack": "4.35.0" "webpack": "4.35.0"
}, },
"resolutions": { "resolutions": {

View File

@ -0,0 +1,15 @@
import { getPluginJson, validatePluginJson } from './pluginValidation';
describe('pluginValdation', () => {
describe('plugin.json', () => {
test('missing plugin.json file', () => {
expect(() => getPluginJson(`${__dirname}/mocks/missing-plugin-json`)).toThrow('plugin.json file is missing!');
});
});
describe('validatePluginJson', () => {
test('missing plugin.json file', () => {
expect(() => validatePluginJson({})).toThrow('Plugin id is missing in plugin.json');
});
});
});

View File

@ -0,0 +1,25 @@
import path = require('path');
interface PluginJSONSchema {
id: string;
}
export const validatePluginJson = (pluginJson: any) => {
if (!pluginJson.id) {
throw new Error('Plugin id is missing in plugin.json');
}
};
export const getPluginJson = (root: string = process.cwd()): PluginJSONSchema => {
let pluginJson;
try {
pluginJson = require(path.resolve(root, 'src/plugin.json'));
} catch (e) {
throw new Error('plugin.json file is missing!');
}
validatePluginJson(pluginJson);
return pluginJson as PluginJSONSchema;
};

View File

@ -6,7 +6,7 @@ const TerserPlugin = require('terser-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
import * as webpack from 'webpack'; import * as webpack from 'webpack';
import { hasThemeStylesheets, getStyleLoaders, getStylesheetEntries } from './webpack/loaders'; import { hasThemeStylesheets, getStyleLoaders, getStylesheetEntries, getFileLoaders } from './webpack/loaders';
interface WebpackConfigurationOptions { interface WebpackConfigurationOptions {
watch?: boolean; watch?: boolean;
@ -82,8 +82,8 @@ const getCommonPlugins = (options: WebpackConfigurationOptions) => {
{ from: '../LICENSE', to: '.' }, { from: '../LICENSE', to: '.' },
{ from: 'img/*', to: '.' }, { from: 'img/*', to: '.' },
{ from: '**/*.json', to: '.' }, { from: '**/*.json', to: '.' },
{ from: '**/*.svg', to: '.' }, // { from: '**/*.svg', to: '.' },
{ from: '**/*.png', to: '.' }, // { from: '**/*.png', to: '.' },
{ from: '**/*.html', to: '.' }, { from: '**/*.html', to: '.' },
], ],
{ logLevel: options.watch ? 'silent' : 'warn' } { logLevel: options.watch ? 'silent' : 'warn' }
@ -131,6 +131,7 @@ export const getWebpackConfig: WebpackConfigurationGetter = options => {
filename: '[name].js', filename: '[name].js',
path: path.join(process.cwd(), 'dist'), path: path.join(process.cwd(), 'dist'),
libraryTarget: 'amd', libraryTarget: 'amd',
publicPath: '/',
}, },
performance: { hints: false }, performance: { hints: false },
@ -139,6 +140,7 @@ export const getWebpackConfig: WebpackConfigurationGetter = options => {
'jquery', 'jquery',
'moment', 'moment',
'slate', 'slate',
'emotion',
'prismjs', 'prismjs',
'slate-plain-serializer', 'slate-plain-serializer',
'slate-react', 'slate-react',
@ -146,6 +148,7 @@ export const getWebpackConfig: WebpackConfigurationGetter = options => {
'react-dom', 'react-dom',
'rxjs', 'rxjs',
'd3', 'd3',
'angular',
'@grafana/ui', '@grafana/ui',
'@grafana/runtime', '@grafana/runtime',
'@grafana/data', '@grafana/data',
@ -190,6 +193,7 @@ export const getWebpackConfig: WebpackConfigurationGetter = options => {
loader: 'html-loader', loader: 'html-loader',
}, },
}, },
...getFileLoaders(),
], ],
}, },
optimization, optimization,

View File

@ -1,3 +1,6 @@
import { getPluginJson } from '../utils/pluginValidation';
const path = require('path');
const fs = require('fs'); const fs = require('fs');
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin');
@ -30,7 +33,7 @@ export const getStylesheetEntries = (root: string = process.cwd()) => {
}; };
export const hasThemeStylesheets = (root: string = process.cwd()) => { export const hasThemeStylesheets = (root: string = process.cwd()) => {
const stylesheetsPaths = [`${root}/src/styles/light`, `${root}/src/styles/dark`]; const stylesheetsPaths = getStylesheetPaths(root);
const stylesheetsSummary: boolean[] = []; const stylesheetsSummary: boolean[] = [];
const result = stylesheetsPaths.reduce((acc, current) => { const result = stylesheetsPaths.reduce((acc, current) => {
@ -68,25 +71,66 @@ export const getStyleLoaders = () => {
const executiveLoader = shouldExtractCss const executiveLoader = shouldExtractCss
? { ? {
loader: MiniCssExtractPlugin.loader, loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../',
},
} }
: 'style-loader'; : 'style-loader';
const cssLoader = { const cssLoaders = [
loader: 'css-loader', {
options: { loader: 'css-loader',
importLoaders: 1, options: {
sourceMap: true, importLoaders: 1,
sourceMap: true,
},
}, },
}; {
loader: 'postcss-loader',
options: {
plugins: () => [
require('postcss-flexbugs-fixes'),
require('postcss-preset-env')({
autoprefixer: { flexbox: 'no-2009', grid: true },
}),
],
},
},
];
return [ return [
{ {
test: /\.css$/, test: /\.css$/,
use: [executiveLoader, cssLoader], use: [executiveLoader, ...cssLoaders],
}, },
{ {
test: /\.scss$/, test: /\.scss$/,
use: [executiveLoader, cssLoader, 'sass-loader'], use: [executiveLoader, ...cssLoaders, 'sass-loader'],
},
];
};
export const getFileLoaders = () => {
const shouldExtractCss = hasThemeStylesheets();
// const pluginJson = getPluginJson();
return [
{
test: /\.(png|jpe?g|gif|svg)$/,
use: [
shouldExtractCss
? {
loader: 'file-loader',
options: {
outputPath: 'static',
name: '[name].[hash:8].[ext]',
},
}
: // When using single css import images are inlined as base64 URIs in the result bundle
{
loader: 'url-loader',
},
],
}, },
]; ];
}; };

View File

@ -27,6 +27,7 @@ import { BackendSrv, getBackendSrv } from 'app/core/services/backend_srv';
import impressionSrv from 'app/core/services/impression_srv'; import impressionSrv from 'app/core/services/impression_srv';
import builtInPlugins from './built_in_plugins'; import builtInPlugins from './built_in_plugins';
import * as d3 from 'd3'; import * as d3 from 'd3';
import * as emotion from 'emotion';
import * as grafanaData from '@grafana/data'; import * as grafanaData from '@grafana/data';
import * as grafanaUI from '@grafana/ui'; import * as grafanaUI from '@grafana/ui';
import * as grafanaRuntime from '@grafana/runtime'; import * as grafanaRuntime from '@grafana/runtime';
@ -90,6 +91,7 @@ exposeToPlugin('slate-react', slateReact);
exposeToPlugin('slate-plain-serializer', slatePlain); exposeToPlugin('slate-plain-serializer', slatePlain);
exposeToPlugin('react', react); exposeToPlugin('react', react);
exposeToPlugin('react-dom', reactDom); exposeToPlugin('react-dom', reactDom);
exposeToPlugin('emotion', emotion);
exposeToPlugin('app/features/dashboard/impression_store', { exposeToPlugin('app/features/dashboard/impression_store', {
impressions: impressionSrv, impressions: impressionSrv,

381
yarn.lock
View File

@ -1023,6 +1023,11 @@
exec-sh "^0.3.2" exec-sh "^0.3.2"
minimist "^1.2.0" minimist "^1.2.0"
"@csstools/convert-colors@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
"@emotion/babel-utils@^0.6.4": "@emotion/babel-utils@^0.6.4":
version "0.6.10" version "0.6.10"
resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz#83dbf3dfa933fae9fc566e54fbb45f14674c6ccc" resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz#83dbf3dfa933fae9fc566e54fbb45f14674c6ccc"
@ -3311,6 +3316,19 @@ autoprefixer@^9.4.7:
postcss "^7.0.14" postcss "^7.0.14"
postcss-value-parser "^3.3.1" postcss-value-parser "^3.3.1"
autoprefixer@^9.4.9:
version "9.6.0"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.0.tgz#0111c6bde2ad20c6f17995a33fad7cf6854b4c87"
integrity sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==
dependencies:
browserslist "^4.6.1"
caniuse-lite "^1.0.30000971"
chalk "^2.4.2"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.16"
postcss-value-parser "^3.3.1"
awesome-typescript-loader@5.2.1, awesome-typescript-loader@^5.2.1: awesome-typescript-loader@5.2.1, awesome-typescript-loader@^5.2.1:
version "5.2.1" version "5.2.1"
resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz#a41daf7847515f4925cdbaa3075d61f289e913fc" resolved "https://registry.yarnpkg.com/awesome-typescript-loader/-/awesome-typescript-loader-5.2.1.tgz#a41daf7847515f4925cdbaa3075d61f289e913fc"
@ -3981,7 +3999,7 @@ browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.5
electron-to-chromium "^1.3.127" electron-to-chromium "^1.3.127"
node-releases "^1.1.17" node-releases "^1.1.17"
browserslist@^4.6.0, browserslist@^4.6.2: browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6.2:
version "4.6.3" version "4.6.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05"
integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ== integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==
@ -4207,7 +4225,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000947, can
version "1.0.30000966" version "1.0.30000966"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000966.tgz#f3c6fefacfbfbfb981df6dfa68f2aae7bff41b64" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000966.tgz#f3c6fefacfbfbfb981df6dfa68f2aae7bff41b64"
caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000975: caniuse-lite@^1.0.30000939, caniuse-lite@^1.0.30000955, caniuse-lite@^1.0.30000971, caniuse-lite@^1.0.30000975:
version "1.0.30000979" version "1.0.30000979"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz#92f16d00186a6cf20d6c5711bb6e042a3d667029" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz#92f16d00186a6cf20d6c5711bb6e042a3d667029"
integrity sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw== integrity sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==
@ -5017,6 +5035,13 @@ css-animation@^1.3.2:
babel-runtime "6.x" babel-runtime "6.x"
component-classes "^1.2.5" component-classes "^1.2.5"
css-blank-pseudo@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5"
integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==
dependencies:
postcss "^7.0.5"
css-color-names@0.0.4, css-color-names@^0.0.4: css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4" version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@ -5028,6 +5053,14 @@ css-declaration-sorter@^4.0.1:
postcss "^7.0.1" postcss "^7.0.1"
timsort "^0.3.0" timsort "^0.3.0"
css-has-pseudo@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee"
integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==
dependencies:
postcss "^7.0.6"
postcss-selector-parser "^5.0.0-rc.4"
css-in-js-utils@^2.0.0: css-in-js-utils@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99"
@ -5069,6 +5102,13 @@ css-loader@^3.0.0:
postcss-value-parser "^4.0.0" postcss-value-parser "^4.0.0"
schema-utils "^1.0.0" schema-utils "^1.0.0"
css-prefers-color-scheme@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4"
integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==
dependencies:
postcss "^7.0.5"
css-select-base-adapter@^0.1.1: css-select-base-adapter@^0.1.1:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
@ -5117,6 +5157,11 @@ css-what@2.1, css-what@^2.1.2:
version "2.1.3" version "2.1.3"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
cssdb@^4.3.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0"
integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==
cssesc@^2.0.0: cssesc@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
@ -6892,6 +6937,14 @@ file-loader@3.0.1, file-loader@^3.0.1:
loader-utils "^1.0.2" loader-utils "^1.0.2"
schema-utils "^1.0.0" schema-utils "^1.0.0"
file-loader@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.0.0.tgz#c3570783fefb6e1bc0978a856f4bf5825b966c2a"
integrity sha512-roAbL6IdSGczwfXxhMi6Zq+jD4IfUpL0jWHD7fvmjdOVb7xBfdRUHe4LpBgO23VtVK5AW1OlWZo0p34Jvx3iWg==
dependencies:
loader-utils "^1.2.2"
schema-utils "^1.0.0"
file-saver@1.3.8: file-saver@1.3.8:
version "1.3.8" version "1.3.8"
resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8" resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8"
@ -7017,6 +7070,11 @@ flat-cache@^1.2.1:
rimraf "~2.6.2" rimraf "~2.6.2"
write "^0.2.1" write "^0.2.1"
flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=
flush-write-stream@^1.0.0: flush-write-stream@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@ -9819,7 +9877,7 @@ loader-utils@1.1.0:
emojis-list "^2.0.0" emojis-list "^2.0.0"
json5 "^0.5.0" json5 "^0.5.0"
loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.2, loader-utils@^1.2.3:
version "1.2.3" version "1.2.3"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
dependencies: dependencies:
@ -9882,6 +9940,11 @@ lodash._getnative@^3.0.0:
version "3.9.1" version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash._root@~3.0.0: lodash._root@~3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
@ -9970,6 +10033,21 @@ lodash.tail@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
lodash.template@^4.2.4:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0"
integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=
dependencies:
lodash._reinterpolate "~3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=
dependencies:
lodash._reinterpolate "~3.0.0"
lodash.throttle@^4.1.1: lodash.throttle@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
@ -10373,6 +10451,11 @@ mime@^2.0.3, mime@^2.3.1:
version "2.4.2" version "2.4.2"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.2.tgz#ce5229a5e99ffc313abac806b482c10e7ba6ac78"
mime@^2.4.4:
version "2.4.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
mimic-fn@^1.0.0: mimic-fn@^1.0.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@ -11875,6 +11958,14 @@ posix-character-classes@^0.1.0:
version "0.1.1" version "0.1.1"
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
postcss-attribute-case-insensitive@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7"
integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A==
dependencies:
postcss "^7.0.2"
postcss-selector-parser "^5.0.0"
postcss-browser-reporter@0.5.0: postcss-browser-reporter@0.5.0:
version "0.5.0" version "0.5.0"
resolved "https://registry.yarnpkg.com/postcss-browser-reporter/-/postcss-browser-reporter-0.5.0.tgz#ae069dd086d57388d196e1dac39cb8d7626feb48" resolved "https://registry.yarnpkg.com/postcss-browser-reporter/-/postcss-browser-reporter-0.5.0.tgz#ae069dd086d57388d196e1dac39cb8d7626feb48"
@ -11890,6 +11981,48 @@ postcss-calc@^7.0.1:
postcss-selector-parser "^5.0.0-rc.4" postcss-selector-parser "^5.0.0-rc.4"
postcss-value-parser "^3.3.1" postcss-value-parser "^3.3.1"
postcss-color-functional-notation@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0"
integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==
dependencies:
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-color-gray@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547"
integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==
dependencies:
"@csstools/convert-colors" "^1.4.0"
postcss "^7.0.5"
postcss-values-parser "^2.0.0"
postcss-color-hex-alpha@^5.0.2:
version "5.0.3"
resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388"
integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==
dependencies:
postcss "^7.0.14"
postcss-values-parser "^2.0.1"
postcss-color-mod-function@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d"
integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==
dependencies:
"@csstools/convert-colors" "^1.4.0"
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-color-rebeccapurple@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77"
integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==
dependencies:
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-colormin@^4.0.3: postcss-colormin@^4.0.3:
version "4.0.3" version "4.0.3"
resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
@ -11907,6 +12040,37 @@ postcss-convert-values@^4.0.1:
postcss "^7.0.0" postcss "^7.0.0"
postcss-value-parser "^3.0.0" postcss-value-parser "^3.0.0"
postcss-custom-media@^7.0.7:
version "7.0.8"
resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c"
integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==
dependencies:
postcss "^7.0.14"
postcss-custom-properties@^8.0.9:
version "8.0.11"
resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97"
integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==
dependencies:
postcss "^7.0.17"
postcss-values-parser "^2.0.1"
postcss-custom-selectors@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba"
integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==
dependencies:
postcss "^7.0.2"
postcss-selector-parser "^5.0.0-rc.3"
postcss-dir-pseudo-class@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2"
integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==
dependencies:
postcss "^7.0.2"
postcss-selector-parser "^5.0.0-rc.3"
postcss-discard-comments@^4.0.2: postcss-discard-comments@^4.0.2:
version "4.0.2" version "4.0.2"
resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
@ -11931,12 +12095,82 @@ postcss-discard-overridden@^4.0.1:
dependencies: dependencies:
postcss "^7.0.0" postcss "^7.0.0"
postcss-flexbugs-fixes@^4.1.0: postcss-double-position-gradients@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e"
integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==
dependencies:
postcss "^7.0.5"
postcss-values-parser "^2.0.0"
postcss-env-function@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7"
integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==
dependencies:
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-flexbugs-fixes@4.1.0, postcss-flexbugs-fixes@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20"
integrity sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==
dependencies: dependencies:
postcss "^7.0.0" postcss "^7.0.0"
postcss-focus-visible@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e"
integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==
dependencies:
postcss "^7.0.2"
postcss-focus-within@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680"
integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==
dependencies:
postcss "^7.0.2"
postcss-font-variant@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc"
integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==
dependencies:
postcss "^7.0.2"
postcss-gap-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715"
integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==
dependencies:
postcss "^7.0.2"
postcss-image-set-function@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288"
integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==
dependencies:
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-initial@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.0.tgz#1772512faf11421b791fb2ca6879df5f68aa0517"
integrity sha512-WzrqZ5nG9R9fUtrA+we92R4jhVvEB32IIRTzfIG/PLL8UV4CvbF1ugTEHEFX6vWxl41Xt5RTCJPEZkuWzrOM+Q==
dependencies:
lodash.template "^4.2.4"
postcss "^7.0.2"
postcss-lab-function@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e"
integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==
dependencies:
"@csstools/convert-colors" "^1.4.0"
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-load-config@^2.0.0: postcss-load-config@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484"
@ -11953,6 +12187,20 @@ postcss-loader@3.0.0, postcss-loader@^3.0.0:
postcss-load-config "^2.0.0" postcss-load-config "^2.0.0"
schema-utils "^1.0.0" schema-utils "^1.0.0"
postcss-logical@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5"
integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==
dependencies:
postcss "^7.0.2"
postcss-media-minmax@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5"
integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==
dependencies:
postcss "^7.0.2"
postcss-merge-longhand@^4.0.11: postcss-merge-longhand@^4.0.11:
version "4.0.11" version "4.0.11"
resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
@ -12055,6 +12303,13 @@ postcss-modules-values@^3.0.0:
icss-utils "^4.0.0" icss-utils "^4.0.0"
postcss "^7.0.6" postcss "^7.0.6"
postcss-nesting@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.0.tgz#6e26a770a0c8fcba33782a6b6f350845e1a448f6"
integrity sha512-WSsbVd5Ampi3Y0nk/SKr5+K34n52PqMqEfswu6RtU4r7wA8vSD+gM8/D9qq4aJkHImwn1+9iEFTbjoWsQeqtaQ==
dependencies:
postcss "^7.0.2"
postcss-normalize-charset@^4.0.1: postcss-normalize-charset@^4.0.1:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
@ -12135,6 +12390,79 @@ postcss-ordered-values@^4.1.2:
postcss "^7.0.0" postcss "^7.0.0"
postcss-value-parser "^3.0.0" postcss-value-parser "^3.0.0"
postcss-overflow-shorthand@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30"
integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==
dependencies:
postcss "^7.0.2"
postcss-page-break@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf"
integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==
dependencies:
postcss "^7.0.2"
postcss-place@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62"
integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==
dependencies:
postcss "^7.0.2"
postcss-values-parser "^2.0.0"
postcss-preset-env@6.6.0:
version "6.6.0"
resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.6.0.tgz#642e7d962e2bdc2e355db117c1eb63952690ed5b"
integrity sha512-I3zAiycfqXpPIFD6HXhLfWXIewAWO8emOKz+QSsxaUZb9Dp8HbF5kUf+4Wy/AxR33o+LRoO8blEWCHth0ZsCLA==
dependencies:
autoprefixer "^9.4.9"
browserslist "^4.4.2"
caniuse-lite "^1.0.30000939"
css-blank-pseudo "^0.1.4"
css-has-pseudo "^0.10.0"
css-prefers-color-scheme "^3.1.1"
cssdb "^4.3.0"
postcss "^7.0.14"
postcss-attribute-case-insensitive "^4.0.1"
postcss-color-functional-notation "^2.0.1"
postcss-color-gray "^5.0.0"
postcss-color-hex-alpha "^5.0.2"
postcss-color-mod-function "^3.0.3"
postcss-color-rebeccapurple "^4.0.1"
postcss-custom-media "^7.0.7"
postcss-custom-properties "^8.0.9"
postcss-custom-selectors "^5.1.2"
postcss-dir-pseudo-class "^5.0.0"
postcss-double-position-gradients "^1.0.0"
postcss-env-function "^2.0.2"
postcss-focus-visible "^4.0.0"
postcss-focus-within "^3.0.0"
postcss-font-variant "^4.0.0"
postcss-gap-properties "^2.0.0"
postcss-image-set-function "^3.0.1"
postcss-initial "^3.0.0"
postcss-lab-function "^2.0.1"
postcss-logical "^3.0.0"
postcss-media-minmax "^4.0.0"
postcss-nesting "^7.0.0"
postcss-overflow-shorthand "^2.0.0"
postcss-page-break "^2.0.0"
postcss-place "^4.0.1"
postcss-pseudo-class-any-link "^6.0.0"
postcss-replace-overflow-wrap "^3.0.0"
postcss-selector-matches "^4.0.0"
postcss-selector-not "^4.0.0"
postcss-pseudo-class-any-link@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1"
integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==
dependencies:
postcss "^7.0.2"
postcss-selector-parser "^5.0.0-rc.3"
postcss-reduce-initial@^4.0.3: postcss-reduce-initial@^4.0.3:
version "4.0.3" version "4.0.3"
resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
@ -12153,6 +12481,13 @@ postcss-reduce-transforms@^4.0.2:
postcss "^7.0.0" postcss "^7.0.0"
postcss-value-parser "^3.0.0" postcss-value-parser "^3.0.0"
postcss-replace-overflow-wrap@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c"
integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==
dependencies:
postcss "^7.0.2"
postcss-reporter@6.0.1: postcss-reporter@6.0.1:
version "6.0.1" version "6.0.1"
resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f"
@ -12162,6 +12497,22 @@ postcss-reporter@6.0.1:
log-symbols "^2.2.0" log-symbols "^2.2.0"
postcss "^7.0.7" postcss "^7.0.7"
postcss-selector-matches@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff"
integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==
dependencies:
balanced-match "^1.0.0"
postcss "^7.0.2"
postcss-selector-not@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0"
integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==
dependencies:
balanced-match "^1.0.0"
postcss "^7.0.2"
postcss-selector-parser@^3.0.0: postcss-selector-parser@^3.0.0:
version "3.1.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
@ -12170,7 +12521,7 @@ postcss-selector-parser@^3.0.0:
indexes-of "^1.0.1" indexes-of "^1.0.1"
uniq "^1.0.1" uniq "^1.0.1"
postcss-selector-parser@^5.0.0-rc.4: postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4:
version "5.0.0" version "5.0.0"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
dependencies: dependencies:
@ -12212,6 +12563,15 @@ postcss-value-parser@^4.0.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz#99a983d365f7b2ad8d0f9b8c3094926eab4b936d"
integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ== integrity sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ==
postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f"
integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==
dependencies:
flatten "^1.0.2"
indexes-of "^1.0.1"
uniq "^1.0.1"
postcss@^5.0.0, postcss@^5.0.4: postcss@^5.0.0, postcss@^5.0.4:
version "5.2.18" version "5.2.18"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
@ -12229,7 +12589,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6,
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^6.1.0" supports-color "^6.1.0"
postcss@^7.0.16, postcss@^7.0.17: postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2:
version "7.0.17" version "7.0.17"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f"
integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==
@ -15916,6 +16276,15 @@ url-loader@^1.1.2:
mime "^2.0.3" mime "^2.0.3"
schema-utils "^1.0.0" schema-utils "^1.0.0"
url-loader@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.0.1.tgz#6c47fc7090e3d48939e01fe3c6efcba5938dcec5"
integrity sha512-nd+jtHG6VgYx/NnXxXSWCJ7FtHIhuyk6Pe48HKhq29Avq3r5FSdIrenvzlbb67A3SNFaQyLk0/lMZfubj0+5ww==
dependencies:
loader-utils "^1.1.0"
mime "^2.4.4"
schema-utils "^1.0.0"
url-parse-lax@^1.0.0: url-parse-lax@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"