Fix: pass Astro config postcss to Svelte preprocess (#3685)

* fix: pass Astro config postcss to Svelte preprocess

* test: preset env for nested styles

* chore: changeset
This commit is contained in:
Ben Holmes 2022-06-22 19:52:32 -04:00 committed by GitHub
parent a3654a7537
commit 3d554fdbfb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 565 additions and 30 deletions

View file

@ -0,0 +1,6 @@
---
'astro': patch
'@astrojs/svelte': patch
---
Fix PostCSS config not applied to Svelte component by default

View file

@ -9,5 +9,8 @@
"astro": "workspace:*",
"autoprefixer": "^10.4.7",
"postcss": "^8.4.14"
},
"devDependencies": {
"postcss-preset-env": "^7.7.1"
}
}

View file

@ -1,7 +1,12 @@
const postcssPresetEnv = require('postcss-preset-env')
const autoPrefixer = require('autoprefixer')
module.exports = {
plugins: {
autoprefixer: {
plugins: [
// included to ensure public/ CSS resources are NOT transformed
autoPrefixer({
overrideBrowserslist: ['> 0.1%', 'IE 11'] // enforce `appearance: none;` is prefixed with -webkit and -moz
}
}
};
}),
postcssPresetEnv({ features: { 'nesting-rules': true } }),
]
}

View file

@ -1,9 +1,11 @@
<style>
.astro-component {
appearance: none;
&.nested {
color: red;
}
}
</style>
<div class="astro-component">
Astro
<div class="astro-component nested">
Astro
</div>

View file

@ -1,3 +1,5 @@
.solid {
appearance: none;
&.nested {
color: red;
}
}

View file

@ -3,8 +3,8 @@ import './Solid.css';
export default function Counter() {
return (
<div class="solid">
Solid
<div class="solid nested">
Solid
</div>
);
}

View file

@ -1,9 +1,11 @@
<style>
.svelte {
appearance: none;
&.nested {
color: red;
}
}
</style>
<div class="svelte">
Svelte
<div class="svelte nested">
Svelte
</div>

View file

@ -1,12 +1,14 @@
<style>
.vue {
appearance: none;
&.nested {
color: red;
}
}
</style>
<template>
<div class="vue">
Vue
<div class="vue nested">
Vue
</div>
</template>

View file

@ -12,13 +12,15 @@ import Vue from '../components/Vue.vue';
</style>
<style>
.astro-page {
appearance: none;
&.nested {
color: red;
}
}
</style>
</head>
<body>
<div class="astro-page">
<div class="astro-page nested">
<AstroComponent />
<JSX />
<Svelte />

View file

@ -23,24 +23,25 @@ describe('PostCSS', () => {
.replace('/n', '');
});
/** All test cases check whether nested styles (i.e. &.nested {}) are correctly transformed */
it('works in Astro page styles', () => {
expect(bundledCSS).to.match(new RegExp(`.astro-page.astro-[^{]+${PREFIXED_CSS}`));
expect(bundledCSS).to.match(new RegExp(`\.astro-page(\.(\w|-)*)*\.nested`));
});
it('works in Astro component styles', () => {
expect(bundledCSS).to.match(new RegExp(`.astro-component.astro-[^{]+${PREFIXED_CSS}`));
expect(bundledCSS).to.match(new RegExp(`\.astro-component(\.(\w|-)*)*\.nested`));
});
it('works in JSX', () => {
expect(bundledCSS).to.match(new RegExp(`.solid[^{]*${PREFIXED_CSS}`));
expect(bundledCSS).to.match(new RegExp(`\.solid(\.(\w|-)*)*\.nested`));
});
it('works in Vue', () => {
expect(bundledCSS).to.match(new RegExp(`.vue[^{]*${PREFIXED_CSS}`));
expect(bundledCSS).to.match(new RegExp(`\.vue(\.(\w|-)*)*\.nested`));
});
it('works in Svelte', () => {
expect(bundledCSS).to.match(new RegExp(`.svelte.s[^{]+${PREFIXED_CSS}`));
expect(bundledCSS).to.match(new RegExp(`\.svelte(\.(\w|-)*)*\.nested`));
});
it('ignores CSS in public/', async () => {

View file

@ -1,6 +1,7 @@
import type { Options } from '@sveltejs/vite-plugin-svelte';
import type { AstroIntegration, AstroRenderer, AstroConfig } from 'astro';
import type { UserConfig } from 'vite'
import { svelte } from '@sveltejs/vite-plugin-svelte';
import type { AstroIntegration, AstroRenderer } from 'astro';
import preprocess from 'svelte-preprocess';
function getRenderer(): AstroRenderer {
@ -11,13 +12,20 @@ function getRenderer(): AstroRenderer {
};
}
function getViteConfiguration(isDev: boolean, options?: Options | OptionsCallback) {
const defaultOptions = {
type ViteConfigurationArgs = {
isDev: boolean;
options?: Options | OptionsCallback;
postcssConfig: AstroConfig['style']['postcss'];
}
function getViteConfiguration({ options, postcssConfig, isDev }: ViteConfigurationArgs): UserConfig {
const defaultOptions: Partial<Options> = {
emitCss: true,
compilerOptions: { dev: isDev, hydratable: true },
preprocess: [
preprocess({
less: true,
postcss: postcssConfig,
sass: { renderSync: true },
scss: { renderSync: true },
stylus: true,
@ -61,9 +69,15 @@ export default function (options?: Options | OptionsCallback): AstroIntegration
name: '@astrojs/svelte',
hooks: {
// Anything that gets returned here is merged into Astro Config
'astro:config:setup': ({ command, updateConfig, addRenderer }) => {
'astro:config:setup': ({ command, updateConfig, addRenderer, config }) => {
addRenderer(getRenderer());
updateConfig({ vite: getViteConfiguration(command === 'dev', options) });
updateConfig({
vite: getViteConfiguration({
options,
isDev: command === 'dev',
postcssConfig: config.style.postcss,
})
});
},
},
};

View file

@ -1474,6 +1474,7 @@ importers:
astro: workspace:*
autoprefixer: ^10.4.7
postcss: ^8.4.14
postcss-preset-env: ^7.7.1
dependencies:
'@astrojs/solid-js': link:../../../../integrations/solid
'@astrojs/svelte': link:../../../../integrations/svelte
@ -1481,6 +1482,8 @@ importers:
astro: link:../../..
autoprefixer: 10.4.7_postcss@8.4.14
postcss: 8.4.14
devDependencies:
postcss-preset-env: 7.7.1_postcss@8.4.14
packages/astro/test/fixtures/preact-component:
specifiers:
@ -3996,6 +3999,141 @@ packages:
prettier: 1.19.1
dev: true
/@csstools/postcss-cascade-layers/1.0.3_postcss@8.4.14:
resolution: {integrity: sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
'@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/@csstools/postcss-color-function/1.1.0_postcss@8.4.14:
resolution: {integrity: sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-font-format-keywords/1.0.0_postcss@8.4.14:
resolution: {integrity: sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-hwb-function/1.0.1_postcss@8.4.14:
resolution: {integrity: sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-ic-unit/1.0.0_postcss@8.4.14:
resolution: {integrity: sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-is-pseudo-class/2.0.5_postcss@8.4.14:
resolution: {integrity: sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/@csstools/postcss-normalize-display-values/1.0.0_postcss@8.4.14:
resolution: {integrity: sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-oklab-function/1.1.0_postcss@8.4.14:
resolution: {integrity: sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-progressive-custom-properties/1.3.0_postcss@8.4.14:
resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-stepped-value-functions/1.0.0_postcss@8.4.14:
resolution: {integrity: sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-trigonometric-functions/1.0.1_postcss@8.4.14:
resolution: {integrity: sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==}
engines: {node: ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/@csstools/postcss-unset-value/1.0.1_postcss@8.4.14:
resolution: {integrity: sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
dev: true
/@csstools/selector-specificity/2.0.1_444rcjjorr3kpoqtvoodsr46pu:
resolution: {integrity: sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
postcss-selector-parser: ^6.0.10
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/@docsearch/css/3.1.0:
resolution: {integrity: sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==}
dev: false
@ -8186,6 +8324,38 @@ packages:
engines: {node: '>=8'}
dev: true
/css-blank-pseudo/3.0.3_postcss@8.4.14:
resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==}
engines: {node: ^12 || ^14 || >=16}
hasBin: true
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/css-has-pseudo/3.0.4_postcss@8.4.14:
resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==}
engines: {node: ^12 || ^14 || >=16}
hasBin: true
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/css-prefers-color-scheme/6.0.3_postcss@8.4.14:
resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==}
engines: {node: ^12 || ^14 || >=16}
hasBin: true
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
dev: true
/css-select/5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
dependencies:
@ -8204,6 +8374,10 @@ packages:
engines: {node: '>= 6'}
dev: true
/cssdb/6.6.3:
resolution: {integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==}
dev: true
/cssesc/3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@ -11742,6 +11916,172 @@ packages:
hasBin: true
dev: true
/postcss-attribute-case-insensitive/5.0.1_postcss@8.4.14:
resolution: {integrity: sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-clamp/4.1.0_postcss@8.4.14:
resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==}
engines: {node: '>=7.6.0'}
peerDependencies:
postcss: ^8.4.6
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-color-functional-notation/4.2.3_postcss@8.4.14:
resolution: {integrity: sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-color-hex-alpha/8.0.4_postcss@8.4.14:
resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-color-rebeccapurple/7.1.0_postcss@8.4.14:
resolution: {integrity: sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-custom-media/8.0.2_postcss@8.4.14:
resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-custom-properties/12.1.8_postcss@8.4.14:
resolution: {integrity: sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-custom-selectors/6.0.3_postcss@8.4.14:
resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-dir-pseudo-class/6.0.4_postcss@8.4.14:
resolution: {integrity: sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-double-position-gradients/3.1.1_postcss@8.4.14:
resolution: {integrity: sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-env-function/4.0.6_postcss@8.4.14:
resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-focus-visible/6.0.4_postcss@8.4.14:
resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-focus-within/5.0.4_postcss@8.4.14:
resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-font-variant/5.0.0_postcss@8.4.14:
resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==}
peerDependencies:
postcss: ^8.1.0
dependencies:
postcss: 8.4.14
dev: true
/postcss-gap-properties/3.0.3_postcss@8.4.14:
resolution: {integrity: sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
dev: true
/postcss-image-set-function/4.0.6_postcss@8.4.14:
resolution: {integrity: sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-initial/4.0.1_postcss@8.4.14:
resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.14
dev: true
/postcss-js/4.0.0_postcss@8.4.14:
resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
engines: {node: ^12 || ^14 || >= 16}
@ -11751,6 +12091,17 @@ packages:
camelcase-css: 2.0.1
postcss: 8.4.14
/postcss-lab-function/4.2.0_postcss@8.4.14:
resolution: {integrity: sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-load-config/3.1.4:
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'}
@ -11783,6 +12134,24 @@ packages:
postcss: 8.4.14
yaml: 1.10.2
/postcss-logical/5.0.4_postcss@8.4.14:
resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
dev: true
/postcss-media-minmax/5.0.0_postcss@8.4.14:
resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
postcss: ^8.1.0
dependencies:
postcss: 8.4.14
dev: true
/postcss-nested/5.0.6_postcss@8.4.14:
resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
engines: {node: '>=12.0'}
@ -11792,6 +12161,133 @@ packages:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
/postcss-nesting/10.1.8_postcss@8.4.14:
resolution: {integrity: sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/selector-specificity': 2.0.1_444rcjjorr3kpoqtvoodsr46pu
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-opacity-percentage/1.1.2:
resolution: {integrity: sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==}
engines: {node: ^12 || ^14 || >=16}
dev: true
/postcss-overflow-shorthand/3.0.3_postcss@8.4.14:
resolution: {integrity: sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
dev: true
/postcss-page-break/3.0.4_postcss@8.4.14:
resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==}
peerDependencies:
postcss: ^8
dependencies:
postcss: 8.4.14
dev: true
/postcss-place/7.0.4_postcss@8.4.14:
resolution: {integrity: sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-preset-env/7.7.1_postcss@8.4.14:
resolution: {integrity: sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
'@csstools/postcss-cascade-layers': 1.0.3_postcss@8.4.14
'@csstools/postcss-color-function': 1.1.0_postcss@8.4.14
'@csstools/postcss-font-format-keywords': 1.0.0_postcss@8.4.14
'@csstools/postcss-hwb-function': 1.0.1_postcss@8.4.14
'@csstools/postcss-ic-unit': 1.0.0_postcss@8.4.14
'@csstools/postcss-is-pseudo-class': 2.0.5_postcss@8.4.14
'@csstools/postcss-normalize-display-values': 1.0.0_postcss@8.4.14
'@csstools/postcss-oklab-function': 1.1.0_postcss@8.4.14
'@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.14
'@csstools/postcss-stepped-value-functions': 1.0.0_postcss@8.4.14
'@csstools/postcss-trigonometric-functions': 1.0.1_postcss@8.4.14
'@csstools/postcss-unset-value': 1.0.1_postcss@8.4.14
autoprefixer: 10.4.7_postcss@8.4.14
browserslist: 4.20.4
css-blank-pseudo: 3.0.3_postcss@8.4.14
css-has-pseudo: 3.0.4_postcss@8.4.14
css-prefers-color-scheme: 6.0.3_postcss@8.4.14
cssdb: 6.6.3
postcss: 8.4.14
postcss-attribute-case-insensitive: 5.0.1_postcss@8.4.14
postcss-clamp: 4.1.0_postcss@8.4.14
postcss-color-functional-notation: 4.2.3_postcss@8.4.14
postcss-color-hex-alpha: 8.0.4_postcss@8.4.14
postcss-color-rebeccapurple: 7.1.0_postcss@8.4.14
postcss-custom-media: 8.0.2_postcss@8.4.14
postcss-custom-properties: 12.1.8_postcss@8.4.14
postcss-custom-selectors: 6.0.3_postcss@8.4.14
postcss-dir-pseudo-class: 6.0.4_postcss@8.4.14
postcss-double-position-gradients: 3.1.1_postcss@8.4.14
postcss-env-function: 4.0.6_postcss@8.4.14
postcss-focus-visible: 6.0.4_postcss@8.4.14
postcss-focus-within: 5.0.4_postcss@8.4.14
postcss-font-variant: 5.0.0_postcss@8.4.14
postcss-gap-properties: 3.0.3_postcss@8.4.14
postcss-image-set-function: 4.0.6_postcss@8.4.14
postcss-initial: 4.0.1_postcss@8.4.14
postcss-lab-function: 4.2.0_postcss@8.4.14
postcss-logical: 5.0.4_postcss@8.4.14
postcss-media-minmax: 5.0.0_postcss@8.4.14
postcss-nesting: 10.1.8_postcss@8.4.14
postcss-opacity-percentage: 1.1.2
postcss-overflow-shorthand: 3.0.3_postcss@8.4.14
postcss-page-break: 3.0.4_postcss@8.4.14
postcss-place: 7.0.4_postcss@8.4.14
postcss-pseudo-class-any-link: 7.1.4_postcss@8.4.14
postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.14
postcss-selector-not: 6.0.0_postcss@8.4.14
postcss-value-parser: 4.2.0
dev: true
/postcss-pseudo-class-any-link/7.1.4_postcss@8.4.14:
resolution: {integrity: sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.4
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-replace-overflow-wrap/4.0.0_postcss@8.4.14:
resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==}
peerDependencies:
postcss: ^8.0.3
dependencies:
postcss: 8.4.14
dev: true
/postcss-selector-not/6.0.0_postcss@8.4.14:
resolution: {integrity: sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==}
engines: {node: ^12 || ^14 || >=16}
peerDependencies:
postcss: ^8.3
dependencies:
postcss: 8.4.14
postcss-selector-parser: 6.0.10
dev: true
/postcss-selector-parser/6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
@ -13687,7 +14183,7 @@ packages:
dev: true
/util-deprecate/1.0.2:
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
/util/0.12.4:
resolution: {integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==}