diff --git a/packages/@tailwindcss-compatibility/README.md b/packages/@tailwindcss-compatibility/README.md
new file mode 100644
index 000000000..95ec9d87d
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/README.md
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+ A utility-first CSS framework for rapidly building custom user interfaces.
+
+
+
+
+
+
+
+
+
+---
+
+## Documentation
+
+For full documentation, visit [tailwindcss.com](https://tailwindcss.com).
+
+## Community
+
+For help, discussion about best practices, or any other conversation that would benefit from being searchable:
+
+[Discuss Tailwind CSS on GitHub](https://github.com/tailwindcss/tailwindcss/discussions)
+
+For chatting with others using the framework:
+
+[Join the Tailwind CSS Discord Server](https://discord.gg/7NF8GNe)
+
+## Contributing
+
+If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/next/.github/CONTRIBUTING.md) **before submitting a pull request**.
diff --git a/packages/@tailwindcss-compatibility/package.json b/packages/@tailwindcss-compatibility/package.json
new file mode 100644
index 000000000..a69f778b7
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "@tailwindcss/compatibility",
+ "version": "4.0.15",
+ "description": "PostCSS plugin for Tailwind CSS, a utility-first CSS framework for rapidly building custom user interfaces",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tailwindlabs/tailwindcss.git",
+ "directory": "packages/@tailwindcss-postcss"
+ },
+ "bugs": "https://github.com/tailwindlabs/tailwindcss/issues",
+ "homepage": "https://tailwindcss.com",
+ "scripts": {
+ "lint": "tsc --noEmit",
+ "build": "tsup-node",
+ "dev": "pnpm run build -- --watch"
+ },
+ "files": [
+ "dist/"
+ ],
+ "publishConfig": {
+ "provenance": true,
+ "access": "public"
+ },
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js"
+ }
+ },
+ "dependencies": {
+ "@csstools/postcss-cascade-layers": "^5.0.1",
+ "@csstools/postcss-color-mix-function": "^3.0.8",
+ "@csstools/postcss-oklab-function": "^4.0.8",
+ "@tailwindcss/node": "workspace:*",
+ "@tailwindcss/oxide": "workspace:*",
+ "autoprefixer": "^10.4.21",
+ "lightningcss": "catalog:",
+ "postcss": "^8.4.41",
+ "postcss-media-minmax": "^5.0.0",
+ "postcss-nesting": "^13.0.1"
+ },
+ "devDependencies": {
+ "@types/node": "catalog:",
+ "dedent": "1.5.3",
+ "@tailwindcss/postcss": "workspace:*",
+ "tailwindcss": "workspace:*"
+ }
+}
diff --git a/packages/@tailwindcss-compatibility/src/at-property-polyfill.ts b/packages/@tailwindcss-compatibility/src/at-property-polyfill.ts
new file mode 100644
index 000000000..f40d7f0b3
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/src/at-property-polyfill.ts
@@ -0,0 +1,78 @@
+import postcss from 'postcss'
+
+export default () => {
+ return {
+ postcssPlugin: '@tailwindcss/postcss-at-property-polyfill',
+ Once(root: postcss.Root) {
+ const propertyRules = new Map()
+ const initialValues = new Map()
+ const nonInheritableValues = new Map()
+
+ // Collect @property rules
+ root.walkAtRules('property', (rule: postcss.AtRule) => {
+ const name = rule.params.trim()
+
+ propertyRules.set(name, rule)
+
+ let value: string | null = null
+ rule.walkDecls('initial-value', (decl: postcss.Declaration) => {
+ if (decl.value) {
+ value = decl.value
+ }
+ })
+
+ rule.walkDecls('inherits', (decl: postcss.Declaration) => {
+ if (decl.value === 'false') {
+ nonInheritableValues.set(name, value ? value : 'initial')
+ }
+ })
+
+ if (value && !nonInheritableValues.has(name)) {
+ initialValues.set(name, value)
+ }
+
+ rule.remove()
+ })
+
+ // Add initial values to :root in a layer
+ if (initialValues.size > 0 || nonInheritableValues.size > 0) {
+ const layer = postcss.atRule({
+ name: 'layer',
+ params: '',
+ })
+
+ if (initialValues.size > 0) {
+ const rootRule = postcss.rule({
+ selector: ':root',
+ })
+
+ for (const [name, value] of initialValues) {
+ rootRule.append({
+ prop: name,
+ value: value,
+ })
+ }
+ layer.append(rootRule)
+ }
+
+ if (nonInheritableValues.size > 0) {
+ const rootRule = postcss.rule({
+ selector: '*, *:before, *:after, *:backdrop',
+ })
+
+ for (const [name, value] of nonInheritableValues) {
+ rootRule.append({
+ prop: name,
+ value: value,
+ })
+ }
+ layer.append(rootRule)
+ }
+
+ root.prepend(layer)
+ }
+ },
+ }
+}
+
+export const postcssPlugin = 'postcss-at-property-polyfill'
diff --git a/packages/@tailwindcss-compatibility/src/index.cts b/packages/@tailwindcss-compatibility/src/index.cts
new file mode 100644
index 000000000..065423471
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/src/index.cts
@@ -0,0 +1,7 @@
+import compatibility from './index.ts'
+
+// This is used instead of `export default` to work around a bug in
+// `postcss-load-config`
+
+// @ts-ignore
+export = compatibility
diff --git a/packages/@tailwindcss-compatibility/src/index.test.ts b/packages/@tailwindcss-compatibility/src/index.test.ts
new file mode 100644
index 000000000..93380b95b
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/src/index.test.ts
@@ -0,0 +1,58 @@
+import tailwindcss from '@tailwindcss/postcss'
+import dedent from 'dedent'
+import postcss from 'postcss'
+import { expect, test } from 'vitest'
+import compatibility from './index'
+
+const css = dedent
+
+test('does the thing', async () => {
+ let processor = postcss([tailwindcss(), compatibility()])
+
+ let result = await processor.process(
+ css`
+ @layer theme, base, components, utilities;
+
+ @import 'tailwindcss/theme.css' layer(theme) theme(inline);
+ /* @import 'tailwindcss/preflight.css' layer(base); */
+ @import 'tailwindcss/utilities.css' layer(utilities) source(none);
+
+ @source inline("h-14 bg-linear-to-bl from-violet-500/50 to-fuchsia-500/50");
+ `,
+ { from: `${__dirname}/input.css` },
+ )
+
+ expect(result.css.trim()).toMatchInlineSnapshot(`
+ "@layer {
+ *, *:before, *:after, *:backdrop {
+ --tw-gradient-position: initial;
+ --tw-gradient-from: #0000;
+ --tw-gradient-via: #0000;
+ --tw-gradient-to: #0000;
+ --tw-gradient-stops: initial;
+ --tw-gradient-via-stops: initial;
+ --tw-gradient-from-position: 0%;
+ --tw-gradient-via-position: 50%;
+ --tw-gradient-to-position: 100%;
+ }
+ }
+ @layer theme, base, components, utilities;
+ @layer utilities {
+ .h-14 {
+ height: calc(0.25rem * 14);
+ }
+ .bg-linear-to-bl {
+ --tw-gradient-position: to bottom left in oklab;
+ background-image: linear-gradient(var(--tw-gradient-stops));
+ }
+ .from-violet-500\\/50 {
+ --tw-gradient-from: color-mix(in oklab, oklch(0.606 0.25 292.717) 50%, transparent);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ .to-fuchsia-500\\/50 {
+ --tw-gradient-to: color-mix(in oklab, oklch(0.667 0.295 322.15) 50%, transparent);
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
+ }
+ }"
+ `)
+})
diff --git a/packages/@tailwindcss-compatibility/src/index.ts b/packages/@tailwindcss-compatibility/src/index.ts
new file mode 100644
index 000000000..a764b7cbe
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/src/index.ts
@@ -0,0 +1,30 @@
+// import postcssCascadeLayers from '@csstools/postcss-cascade-layers'
+import postcssColorMixFunction from '@csstools/postcss-color-mix-function'
+import postcssOklabFunction from '@csstools/postcss-oklab-function'
+import autoprefixer from 'autoprefixer'
+import type { AcceptedPlugin, PluginCreator } from 'postcss'
+// @ts-ignore
+import postcssMediaMinmax from 'postcss-media-minmax'
+import postcssNesting from 'postcss-nesting'
+import atPropertyPolyfill from './at-property-polyfill'
+
+// TODO:
+// - [ ] Replace `calc(infinity)` stuff
+// - tbd
+
+function compatibility(): AcceptedPlugin {
+ return {
+ postcssPlugin: '@tailwindcss/compatibility',
+ plugins: [
+ // postcssCascadeLayers(),
+ atPropertyPolyfill(),
+ postcssMediaMinmax(),
+ postcssOklabFunction(),
+ postcssColorMixFunction(),
+ postcssNesting(),
+ autoprefixer(),
+ ],
+ }
+}
+
+export default Object.assign(compatibility, { postcss: true }) as PluginCreator<{}>
diff --git a/packages/@tailwindcss-compatibility/tsconfig.json b/packages/@tailwindcss-compatibility/tsconfig.json
new file mode 100644
index 000000000..6ae022f65
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../tsconfig.base.json",
+}
diff --git a/packages/@tailwindcss-compatibility/tsup.config.ts b/packages/@tailwindcss-compatibility/tsup.config.ts
new file mode 100644
index 000000000..684c072ac
--- /dev/null
+++ b/packages/@tailwindcss-compatibility/tsup.config.ts
@@ -0,0 +1,18 @@
+import { defineConfig } from 'tsup'
+
+export default defineConfig([
+ {
+ format: ['esm'],
+ minify: true,
+ cjsInterop: true,
+ dts: true,
+ entry: ['src/index.ts'],
+ },
+ {
+ format: ['cjs'],
+ minify: true,
+ cjsInterop: true,
+ dts: true,
+ entry: ['src/index.cts'],
+ },
+])
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0c945d884..efeac8bfd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -198,6 +198,52 @@ importers:
specifier: workspace:*
version: link:../tailwindcss
+ packages/@tailwindcss-compatibility:
+ dependencies:
+ '@csstools/postcss-cascade-layers':
+ specifier: ^5.0.1
+ version: 5.0.1(postcss@8.5.3)
+ '@csstools/postcss-color-mix-function':
+ specifier: ^3.0.8
+ version: 3.0.8(postcss@8.5.3)
+ '@csstools/postcss-oklab-function':
+ specifier: ^4.0.8
+ version: 4.0.8(postcss@8.5.3)
+ '@tailwindcss/node':
+ specifier: workspace:*
+ version: link:../@tailwindcss-node
+ '@tailwindcss/oxide':
+ specifier: workspace:*
+ version: link:../../crates/node
+ autoprefixer:
+ specifier: ^10.4.21
+ version: 10.4.21(postcss@8.5.3)
+ lightningcss:
+ specifier: 'catalog:'
+ version: 1.29.2(patch_hash=tzyxy3asfxcqc7ihrooumyi5fm)
+ postcss:
+ specifier: ^8.4.41
+ version: 8.5.3
+ postcss-media-minmax:
+ specifier: ^5.0.0
+ version: 5.0.0(postcss@8.5.3)
+ postcss-nesting:
+ specifier: ^13.0.1
+ version: 13.0.1(postcss@8.5.3)
+ devDependencies:
+ '@tailwindcss/postcss':
+ specifier: workspace:*
+ version: link:../@tailwindcss-postcss
+ '@types/node':
+ specifier: 'catalog:'
+ version: 20.14.13
+ dedent:
+ specifier: 1.5.3
+ version: 1.5.3
+ tailwindcss:
+ specifier: workspace:*
+ version: link:../tailwindcss
+
packages/@tailwindcss-node:
dependencies:
enhanced-resolve:
@@ -486,7 +532,7 @@ importers:
version: 19.0.4(@types/react@19.0.10)
autoprefixer:
specifier: ^10.4.21
- version: 10.4.21(postcss@8.4.47)
+ version: 10.4.21(postcss@8.5.3)
eslint:
specifier: ^9.22.0
version: 9.22.0(jiti@2.4.2)
@@ -617,6 +663,76 @@ packages:
resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
engines: {node: '>=6.9.0'}
+ '@csstools/color-helpers@5.0.2':
+ resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
+ engines: {node: '>=18'}
+
+ '@csstools/css-calc@2.1.2':
+ resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.4
+ '@csstools/css-tokenizer': ^3.0.3
+
+ '@csstools/css-color-parser@3.0.8':
+ resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.4
+ '@csstools/css-tokenizer': ^3.0.3
+
+ '@csstools/css-parser-algorithms@3.0.4':
+ resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^3.0.3
+
+ '@csstools/css-tokenizer@3.0.3':
+ resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==}
+ engines: {node: '>=18'}
+
+ '@csstools/postcss-cascade-layers@5.0.1':
+ resolution: {integrity: sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-color-mix-function@3.0.8':
+ resolution: {integrity: sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-oklab-function@4.0.8':
+ resolution: {integrity: sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/postcss-progressive-custom-properties@4.0.0':
+ resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
+ '@csstools/selector-resolve-nested@3.0.0':
+ resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss-selector-parser: ^7.0.0
+
+ '@csstools/selector-specificity@5.0.0':
+ resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss-selector-parser: ^7.0.0
+
+ '@csstools/utilities@2.0.0':
+ resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
'@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
@@ -3334,12 +3450,24 @@ packages:
yaml:
optional: true
+ postcss-media-minmax@5.0.0:
+ resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ postcss: ^8.1.0
+
postcss-nested@6.2.0:
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
+ postcss-nesting@13.0.1:
+ resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ postcss: ^8.4
+
postcss-selector-parser@6.0.10:
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines: {node: '>=4'}
@@ -3363,10 +3491,6 @@ packages:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
engines: {node: ^10 || ^12 || >=14}
- postcss@8.4.47:
- resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
- engines: {node: ^10 || ^12 || >=14}
-
postcss@8.5.3:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
@@ -4135,6 +4259,67 @@ snapshots:
'@babel/helper-string-parser': 7.25.9
'@babel/helper-validator-identifier': 7.25.9
+ '@csstools/color-helpers@5.0.2': {}
+
+ '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+
+ '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)':
+ dependencies:
+ '@csstools/color-helpers': 5.0.2
+ '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+
+ '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)':
+ dependencies:
+ '@csstools/css-tokenizer': 3.0.3
+
+ '@csstools/css-tokenizer@3.0.3': {}
+
+ '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.3)':
+ dependencies:
+ '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
+ postcss: 8.5.3
+ postcss-selector-parser: 7.1.0
+
+ '@csstools/postcss-color-mix-function@3.0.8(postcss@8.5.3)':
+ dependencies:
+ '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3)
+ '@csstools/utilities': 2.0.0(postcss@8.5.3)
+ postcss: 8.5.3
+
+ '@csstools/postcss-oklab-function@4.0.8(postcss@8.5.3)':
+ dependencies:
+ '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3)
+ '@csstools/utilities': 2.0.0(postcss@8.5.3)
+ postcss: 8.5.3
+
+ '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.3)':
+ dependencies:
+ postcss: 8.5.3
+ postcss-value-parser: 4.2.0
+
+ '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)':
+ dependencies:
+ postcss-selector-parser: 7.1.0
+
+ '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)':
+ dependencies:
+ postcss-selector-parser: 7.1.0
+
+ '@csstools/utilities@2.0.0(postcss@8.5.3)':
+ dependencies:
+ postcss: 8.5.3
+
'@emnapi/runtime@1.3.1':
dependencies:
tslib: 2.8.0
@@ -4921,7 +5106,7 @@ snapshots:
'@types/postcss-import@14.0.3':
dependencies:
- postcss: 8.4.41
+ postcss: 8.5.3
'@types/react-dom@19.0.4(@types/react@19.0.10)':
dependencies:
@@ -5234,14 +5419,14 @@ snapshots:
ast-types-flow@0.0.8: {}
- autoprefixer@10.4.21(postcss@8.4.47):
+ autoprefixer@10.4.21(postcss@8.5.3):
dependencies:
browserslist: 4.24.4
caniuse-lite: 1.0.30001705
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
- postcss: 8.4.47
+ postcss: 8.5.3
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
@@ -5721,7 +5906,7 @@ snapshots:
eslint: 9.22.0(jiti@2.4.2)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2))
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-jsx-a11y: 6.10.1(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-react: 7.37.2(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-react-hooks: 5.0.0(eslint@9.22.0(jiti@2.4.2))
@@ -5741,7 +5926,7 @@ snapshots:
eslint: 9.22.0(jiti@2.4.2)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.22.0(jiti@2.4.2))
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-jsx-a11y: 6.10.1(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-react: 7.37.2(eslint@9.22.0(jiti@2.4.2))
eslint-plugin-react-hooks: 5.0.0(eslint@9.22.0(jiti@2.4.2))
@@ -5772,7 +5957,7 @@ snapshots:
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2))
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
@@ -5791,7 +5976,7 @@ snapshots:
is-bun-module: 1.2.1
is-glob: 4.0.3
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2))
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.22.0(jiti@2.4.2))
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-node
@@ -5820,7 +6005,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint@9.22.0(jiti@2.4.2)):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -5849,7 +6034,7 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.22.0(jiti@2.4.2)):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.6.3))(eslint@9.22.0(jiti@2.4.2)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -6724,9 +6909,9 @@ snapshots:
possible-typed-array-names@1.0.0: {}
- postcss-import@15.1.0(postcss@8.4.47):
+ postcss-import@15.1.0(postcss@8.5.3):
dependencies:
- postcss: 8.4.47
+ postcss: 8.5.3
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
@@ -6745,17 +6930,17 @@ snapshots:
read-cache: 1.0.0
resolve: 1.22.8
- postcss-js@4.0.1(postcss@8.4.47):
+ postcss-js@4.0.1(postcss@8.5.3):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.47
+ postcss: 8.5.3
- postcss-load-config@4.0.2(postcss@8.4.47):
+ postcss-load-config@4.0.2(postcss@8.5.3):
dependencies:
lilconfig: 3.1.2
yaml: 2.6.0
optionalDependencies:
- postcss: 8.4.47
+ postcss: 8.5.3
postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.1)(yaml@2.6.0):
dependencies:
@@ -6766,11 +6951,22 @@ snapshots:
tsx: 4.19.1
yaml: 2.6.0
- postcss-nested@6.2.0(postcss@8.4.47):
+ postcss-media-minmax@5.0.0(postcss@8.5.3):
dependencies:
- postcss: 8.4.47
+ postcss: 8.5.3
+
+ postcss-nested@6.2.0(postcss@8.5.3):
+ dependencies:
+ postcss: 8.5.3
postcss-selector-parser: 6.1.2
+ postcss-nesting@13.0.1(postcss@8.5.3):
+ dependencies:
+ '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0)
+ '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0)
+ postcss: 8.5.3
+ postcss-selector-parser: 7.1.0
+
postcss-selector-parser@6.0.10:
dependencies:
cssesc: 3.0.0
@@ -6800,12 +6996,6 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.0
- postcss@8.4.47:
- dependencies:
- nanoid: 3.3.7
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
postcss@8.5.3:
dependencies:
nanoid: 3.3.8
@@ -7150,11 +7340,11 @@ snapshots:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
- postcss: 8.4.47
- postcss-import: 15.1.0(postcss@8.4.47)
- postcss-js: 4.0.1(postcss@8.4.47)
- postcss-load-config: 4.0.2(postcss@8.4.47)
- postcss-nested: 6.2.0(postcss@8.4.47)
+ postcss: 8.5.3
+ postcss-import: 15.1.0(postcss@8.5.3)
+ postcss-js: 4.0.1(postcss@8.5.3)
+ postcss-load-config: 4.0.2(postcss@8.5.3)
+ postcss-nested: 6.2.0(postcss@8.5.3)
postcss-selector-parser: 6.1.2
resolve: 1.22.8
sucrase: 3.35.0