Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
Philipp Spiess
436d727093 WIP 2025-03-24 14:35:31 +01:00
9 changed files with 507 additions and 33 deletions

View file

@ -0,0 +1,40 @@
<p align="center">
<a href="https://tailwindcss.com" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg">
<img alt="Tailwind CSS" src="https://raw.githubusercontent.com/tailwindlabs/tailwindcss/HEAD/.github/logo-light.svg" width="350" height="70" style="max-width: 100%;">
</picture>
</a>
</p>
<p align="center">
A utility-first CSS framework for rapidly building custom user interfaces.
</p>
<p align="center">
<a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/actions/workflow/status/tailwindlabs/tailwindcss/ci.yml?branch=next" alt="Build Status"></a>
<a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
<a href="https://github.com/tailwindcss/tailwindcss/releases"><img src="https://img.shields.io/npm/v/tailwindcss.svg" alt="Latest Release"></a>
<a href="https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE"><img src="https://img.shields.io/npm/l/tailwindcss.svg" alt="License"></a>
</p>
---
## 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**.

View file

@ -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:*"
}
}

View file

@ -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<string, postcss.AtRule>()
const initialValues = new Map<string, string>()
const nonInheritableValues = new Map<string, string>()
// 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'

View file

@ -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

View file

@ -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));
}
}"
`)
})

View file

@ -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<{}>

View file

@ -0,0 +1,3 @@
{
"extends": "../tsconfig.base.json",
}

View file

@ -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'],
},
])

256
pnpm-lock.yaml generated
View file

@ -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