diff --git a/packages/tailwindcss-language-server/package.json b/packages/tailwindcss-language-server/package.json
index dd812e3c..d96255dd 100644
--- a/packages/tailwindcss-language-server/package.json
+++ b/packages/tailwindcss-language-server/package.json
@@ -40,7 +40,7 @@
"@tailwindcss/forms": "0.5.3",
"@tailwindcss/language-service": "workspace:*",
"@tailwindcss/line-clamp": "0.4.2",
- "@tailwindcss/oxide": "^4.0.15",
+ "@tailwindcss/oxide": "^4.1.0",
"@tailwindcss/typography": "0.5.7",
"@types/braces": "3.0.1",
"@types/color-name": "^1.1.3",
@@ -84,7 +84,7 @@
"rimraf": "3.0.2",
"stack-trace": "0.0.10",
"tailwindcss": "3.4.17",
- "tailwindcss-v4": "npm:tailwindcss@4.0.6",
+ "tailwindcss-v4": "npm:tailwindcss@4.1.1",
"tsconfck": "^3.1.4",
"tsconfig-paths": "^4.2.0",
"typescript": "5.3.3",
diff --git a/packages/tailwindcss-language-server/src/project-locator.test.ts b/packages/tailwindcss-language-server/src/project-locator.test.ts
index 429f0b27..3699c840 100644
--- a/packages/tailwindcss-language-server/src/project-locator.test.ts
+++ b/packages/tailwindcss-language-server/src/project-locator.test.ts
@@ -123,6 +123,7 @@ testFixture('v4/workspaces', [
'{URL}/packages/admin/**',
'{URL}/packages/admin/app.css',
'{URL}/packages/admin/package.json',
+ '{URL}/packages/admin/tw.css',
],
},
{
@@ -147,8 +148,8 @@ testLocator({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "^4.0.15",
- "@tailwindcss/oxide": "^4.0.15"
+ "tailwindcss": "4.1.0",
+ "@tailwindcss/oxide": "4.1.0"
}
}
`,
@@ -164,7 +165,7 @@ testLocator({
content: [
'/*',
'/package.json',
- '/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/src/**/*.{aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
'/src/components/example.html',
'/src/index.html',
],
@@ -178,8 +179,8 @@ testLocator({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "^4.0.15",
- "@tailwindcss/oxide": "^4.0.15"
+ "tailwindcss": "4.1.0",
+ "@tailwindcss/oxide": "4.1.0"
}
}
`,
@@ -197,7 +198,7 @@ testLocator({
content: [
'/*',
'/package.json',
- '/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/src/**/*.{aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
'/src/components/example.html',
'/src/index.html',
],
@@ -211,8 +212,8 @@ testLocator({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "^4.0.15",
- "@tailwindcss/oxide": "^4.0.15"
+ "tailwindcss": "4.1.0",
+ "@tailwindcss/oxide": "4.1.0"
}
}
`,
@@ -245,36 +246,40 @@ testLocator({
content: [
'/*',
'/admin/foo.bin',
- '/admin/{**/*.bin,**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}}',
+ '/admin/tw.css',
+ '/admin/ui.css',
+ '/admin/{**/*.bin,**/*.{aspx,astro,bin,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}}',
'/package.json',
'/shared.html',
- '/web/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/web/**/*.{aspx,astro,bin,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/web/app.css',
],
},
{
config: '/web/app.css',
content: [
'/*',
- '/admin/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/admin/**/*.{aspx,astro,bin,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '/admin/app.css',
+ '/admin/tw.css',
+ '/admin/ui.css',
'/package.json',
'/shared.html',
'/web/bar.bin',
- '/web/{**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue},*.bin}',
+ '/web/{**/*.{aspx,astro,bin,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue},*.bin}',
],
},
],
})
testLocator({
- // TODO: Enable once v4.1 is released
- options: { skip: true },
name: 'automatic content detection with negative custom sources',
fs: {
'package.json': json`
{
"dependencies": {
- "tailwindcss": "0.0.0-insiders.3e53e25",
- "@tailwindcss/oxide": "0.0.0-insiders.3e53e25"
+ "tailwindcss": "4.1.0",
+ "@tailwindcss/oxide": "4.1.0"
}
}
`,
@@ -293,7 +298,7 @@ testLocator({
'/*',
'/package.json',
'/src/index.html',
- '/src/{**/*.html,**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}}',
+ '/src/{**/*.html,**/*.{aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}}',
],
},
],
@@ -303,7 +308,7 @@ testFixture('v4/missing-files', [
//
{
config: 'app.css',
- content: ['{URL}/*', '{URL}/package.json'],
+ content: ['{URL}/*', '{URL}/i-exist.css', '{URL}/package.json'],
},
])
@@ -314,7 +319,8 @@ testFixture('v4/path-mappings', [
content: [
'{URL}/*',
'{URL}/package.json',
- '{URL}/src/**/*.{aspx,astro,cjs,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '{URL}/src/**/*.{aspx,astro,cjs,css,cts,eex,erb,gjs,gts,haml,handlebars,hbs,heex,html,jade,js,json,jsx,liquid,md,mdx,mjs,mts,mustache,njk,nunjucks,php,pug,py,razor,rb,rhtml,rs,slim,svelte,tpl,ts,tsx,twig,vue}',
+ '{URL}/src/a/file.css',
'{URL}/src/a/my-config.ts',
'{URL}/src/a/my-plugin.ts',
'{URL}/tsconfig.json',
@@ -326,7 +332,7 @@ testFixture('v4/invalid-import-order', [
//
{
config: 'tailwind.css',
- content: ['{URL}/*', '{URL}/package.json'],
+ content: ['{URL}/*', '{URL}/a.css', '{URL}/b.css', '{URL}/package.json'],
},
])
@@ -338,7 +344,7 @@ testLocator({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "^4.0.2"
+ "tailwindcss": "4.1.0"
}
}
`,
@@ -386,7 +392,7 @@ testLocator({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "4.0.6"
+ "tailwindcss": "4.1.0"
}
}
`,
@@ -415,7 +421,7 @@ testLocator({
},
expected: [
{
- version: '4.0.6',
+ version: '4.1.0',
config: '/src/articles/articles.css',
content: [],
},
diff --git a/packages/tailwindcss-language-server/src/util/v4/design-system.ts b/packages/tailwindcss-language-server/src/util/v4/design-system.ts
index 05d2ecd3..f312b95c 100644
--- a/packages/tailwindcss-language-server/src/util/v4/design-system.ts
+++ b/packages/tailwindcss-language-server/src/util/v4/design-system.ts
@@ -219,6 +219,14 @@ export async function loadDesignSystem(
Object.assign(design, {
dependencies: () => dependencies,
+ // TODOs:
+ //
+ // 1. Remove PostCSS parsing — its roughly 60% of the processing time
+ // ex: compiling 19k classes take 650ms and 400ms of that is PostCSS
+ //
+ // - Replace `candidatesToCss` with a `candidatesToAst` API
+ // First step would be to convert to a PostCSS AST by transforming the nodes directly
+ // Then it would be to drop the PostCSS AST representation entirely in all v4 code paths
compile(classes: string[]): (postcss.Root | null)[] {
let css = design.candidatesToCss(classes)
let errors: any[] = []
diff --git a/packages/tailwindcss-language-server/tests/colors/colors.test.js b/packages/tailwindcss-language-server/tests/colors/colors.test.js
index 5016bacc..4780a4fb 100644
--- a/packages/tailwindcss-language-server/tests/colors/colors.test.js
+++ b/packages/tailwindcss-language-server/tests/colors/colors.test.js
@@ -334,7 +334,7 @@ defineTest({
expect(c.project).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
@@ -373,7 +373,7 @@ defineTest({
expect(c.project).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
diff --git a/packages/tailwindcss-language-server/tests/completions/completions.test.js b/packages/tailwindcss-language-server/tests/completions/completions.test.js
index dbe9a352..feb4999f 100644
--- a/packages/tailwindcss-language-server/tests/completions/completions.test.js
+++ b/packages/tailwindcss-language-server/tests/completions/completions.test.js
@@ -313,8 +313,8 @@ withFixture('v4/basic', (c) => {
let result = await completion({ lang, text, position, settings })
let textEdit = expect.objectContaining({ range: { start: position, end: position } })
- expect(result.items.length).toBe(13172)
- expect(result.items.filter((item) => item.label.endsWith(':')).length).toBe(317)
+ expect(result.items.length).toBe(19283)
+ expect(result.items.filter((item) => item.label.endsWith(':')).length).toBe(346)
expect(result).toEqual({
isIncomplete: false,
items: expect.arrayContaining([
@@ -488,7 +488,7 @@ withFixture('v4/basic', (c) => {
})
// Make sure `@slot` is NOT suggested by default
- expect(result.items.length).toBe(7)
+ expect(result.items.length).toBe(8)
expect(result.items).not.toEqual(
expect.arrayContaining([
expect.objectContaining({ kind: 14, label: '@slot', sortText: '-0000000' }),
@@ -627,7 +627,7 @@ withFixture('v4/basic', (c) => {
expect(resolved).toEqual({
...item,
- detail: 'background-color: oklch(0.637 0.237 25.331);',
+ detail: 'background-color: oklch(63.7% 0.237 25.331);',
documentation: '#fb2c36',
})
})
@@ -692,7 +692,7 @@ defineTest({
// ^
let completion = await document.completions({ line: 0, character: 23 })
- expect(completion?.items.length).toBe(12289)
+ expect(completion?.items.length).toBe(19236)
},
})
@@ -714,7 +714,7 @@ defineTest({
// ^
let completion = await document.completions({ line: 0, character: 22 })
- expect(completion?.items.length).toBe(12289)
+ expect(completion?.items.length).toBe(19236)
},
})
@@ -736,7 +736,7 @@ defineTest({
// ^
let completion = await document.completions({ line: 0, character: 31 })
- expect(completion?.items.length).toBe(12289)
+ expect(completion?.items.length).toBe(19236)
},
})
@@ -765,7 +765,7 @@ defineTest({
// ^
let completion = await document.completions({ line: 0, character: 20 })
- expect(completion?.items.length).toBe(12289)
+ expect(completion?.items.length).toBe(19236)
},
})
@@ -796,7 +796,7 @@ defineTest({
// ^
let completion = await document.completions({ line: 1, character: 22 })
- expect(completion?.items.length).toBe(12289)
+ expect(completion?.items.length).toBe(19236)
},
})
@@ -886,24 +886,24 @@ defineTest({
// ^
let completionA = await document.completions({ line: 0, character: 13 })
- expect(completionA?.items.length).toBe(12289)
+ expect(completionA?.items.length).toBe(19236)
// return ;
// ^
let completionB = await document.completions({ line: 3, character: 30 })
- expect(completionB?.items.length).toBe(12289)
+ expect(completionB?.items.length).toBe(19236)
// return ;
// ^
let completionC = await document.completions({ line: 7, character: 30 })
- expect(completionC?.items.length).toBe(12289)
+ expect(completionC?.items.length).toBe(19236)
// let y = cva("");
// ^
let completionD = await document.completions({ line: 10, character: 13 })
- expect(completionD?.items.length).toBe(12289)
+ expect(completionD?.items.length).toBe(19236)
},
})
diff --git a/packages/tailwindcss-language-server/tests/env/v4.test.js b/packages/tailwindcss-language-server/tests/env/v4.test.js
index 632eb1a2..dc33c79f 100644
--- a/packages/tailwindcss-language-server/tests/env/v4.test.js
+++ b/packages/tailwindcss-language-server/tests/env/v4.test.js
@@ -21,7 +21,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
@@ -49,7 +49,7 @@ defineTest({
},
})
- expect(completion?.items.length).toBe(12288)
+ expect(completion?.items.length).toBe(19235)
},
})
@@ -137,7 +137,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
@@ -188,7 +188,7 @@ defineTest({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "4.0.1"
+ "tailwindcss": "4.1.1"
}
}
`,
@@ -205,7 +205,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.1',
+ version: '4.1.1',
isDefaultVersion: false,
},
})
@@ -233,7 +233,7 @@ defineTest({
},
})
- expect(completion?.items.length).toBe(12288)
+ expect(completion?.items.length).toBe(19235)
},
})
@@ -243,7 +243,7 @@ defineTest({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "4.0.1"
+ "tailwindcss": "4.1.1"
}
}
`,
@@ -270,7 +270,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.1',
+ version: '4.1.1',
isDefaultVersion: false,
},
})
@@ -322,7 +322,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
@@ -354,7 +354,7 @@ defineTest({
'package.json': json`
{
"dependencies": {
- "tailwindcss": "4.0.1"
+ "tailwindcss": "4.1.1"
}
}
`,
@@ -831,7 +831,7 @@ defineTest({
expect(await client.project()).toMatchObject({
tailwind: {
- version: '4.0.6',
+ version: '4.1.1',
isDefaultVersion: true,
},
})
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package-lock.json
index 6275c3dc..ab6be977 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/basic/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package-lock.json
index 5089dc65..b92fb848 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/css-loading-js/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package-lock.json
index 555ee660..f4352dc6 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/dependencies/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package-lock.json
index 24d978d8..0a12b281 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/invalid-import-order/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package-lock.json
index ed4d2d9a..c95b25d7 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/missing-files/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package-lock.json
index c4664645..58a06cee 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/multi-config/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package-lock.json
index 651bf7c9..e6cc18e9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/path-mappings/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package-lock.json
index 1e5486ae..34a2cc13 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package-lock.json
@@ -5,13 +5,13 @@
"packages": {
"": {
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package.json
index b6cb53b1..43b975c9 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/with-prefix/package.json
@@ -1,5 +1,5 @@
{
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package-lock.json b/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package-lock.json
index b622b7b7..a88643ba 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package-lock.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package-lock.json
@@ -8,7 +8,7 @@
"packages/*"
],
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
},
"node_modules/@private/admin": {
@@ -32,9 +32,9 @@
"link": true
},
"node_modules/tailwindcss": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.15.tgz",
- "integrity": "sha512-6ZMg+hHdMJpjpeCCFasX7K+U615U9D+7k5/cDK/iRwl6GptF24+I/AbKgOnXhVKePzrEyIXutLv36n4cRsq3Sg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.1.tgz",
+ "integrity": "sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==",
"license": "MIT"
},
"packages/admin": {
diff --git a/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package.json b/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package.json
index aa5e54db..9291956a 100644
--- a/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package.json
+++ b/packages/tailwindcss-language-server/tests/fixtures/v4/workspaces/package.json
@@ -3,6 +3,6 @@
"packages/*"
],
"dependencies": {
- "tailwindcss": "^4.0.15"
+ "tailwindcss": "4.1.1"
}
}
diff --git a/packages/tailwindcss-language-server/tests/hover/hover.test.js b/packages/tailwindcss-language-server/tests/hover/hover.test.js
index ac97e414..37377340 100644
--- a/packages/tailwindcss-language-server/tests/hover/hover.test.js
+++ b/packages/tailwindcss-language-server/tests/hover/hover.test.js
@@ -214,7 +214,7 @@ withFixture('v4/basic', (c) => {
text: '
',
position: { line: 0, character: 13 },
expected:
- '.bg-red-500 {\n background-color: var(--color-red-500) /* oklch(0.637 0.237 25.331) = #fb2c36 */;\n}',
+ '.bg-red-500 {\n background-color: var(--color-red-500) /* oklch(63.7% 0.237 25.331) = #fb2c36 */;\n}',
expectedRange: {
start: { line: 0, character: 12 },
end: { line: 0, character: 22 },
@@ -231,16 +231,15 @@ withFixture('v4/basic', (c) => {
},
})
- test.todo('arbitrary value with theme function')
- // testHover('arbitrary value with theme function', {
- // text: '
',
- // position: { line: 0, character: 13 },
- // expected: '.p-\\[theme\\(spacing\\.4\\)\\] {\n' + ' padding: 1rem /* 16px */;\n' + '}',
- // expectedRange: {
- // start: { line: 0, character: 12 },
- // end: { line: 0, character: 32 },
- // },
- // })
+ testHover('arbitrary value with theme function', {
+ text: '
',
+ position: { line: 0, character: 13 },
+ expected: '.p-\\[theme\\(spacing\\.4\\)\\] {\n' + ' padding: 1rem /* 16px */;\n' + '}',
+ expectedRange: {
+ start: { line: 0, character: 12 },
+ end: { line: 0, character: 32 },
+ },
+ })
testHover('arbitrary property', {
text: '
',
diff --git a/packages/tailwindcss-language-service/src/util/color.ts b/packages/tailwindcss-language-service/src/util/color.ts
index 4b0d3b84..a1a99d66 100644
--- a/packages/tailwindcss-language-service/src/util/color.ts
+++ b/packages/tailwindcss-language-service/src/util/color.ts
@@ -57,7 +57,7 @@ const colorRegex = new RegExp(
)
function getColorsInString(state: State, str: string): (culori.Color | KeywordColor)[] {
- if (/(?:box|drop)-shadow/.test(str)) return []
+ if (/(?:box|drop)-shadow/.test(str) && !/--tw-drop-shadow/.test(str)) return []
function toColor(match: RegExpMatchArray) {
let color = match[1].replace(/var\([^)]+\)/, '1')
@@ -85,6 +85,17 @@ function getColorFromDecls(
) {
return false
}
+
+ // ignore mask-image & mask-composite
+ if (prop === 'mask-image' || prop === 'mask-composite') {
+ return false
+ }
+
+ // ignore `--tw-drop-shadow`
+ if (prop === '--tw-drop-shadow') {
+ return false
+ }
+
return true
})
@@ -177,8 +188,25 @@ function getColorFromRoot(state: State, css: postcss.Root): culori.Color | Keywo
return getColorFromDecls(state, decls)
}
+let isNegative = /^-/
+let isNumericUtility =
+ /^-?((min-|max-)?[wh]|z|start|order|opacity|rounded|row|col|size|basis|end|duration|ease|font|top|left|bottom|right|inset|leading|cursor|(space|scale|skew|rotate)-[xyz]|gap(-[xy])?|(scroll-)?[pm][trblxyse]?)-/
+let isMaskUtility = /^-?mask-/
+
+function isLikelyColorless(className: string) {
+ if (isNegative.test(className)) return true
+ // TODO: This is **not** correct but is intentional because there are 5k mask utilities and a LOT of them are colors
+ // This causes a massive slowdown when building the design system
+ if (isMaskUtility.test(className)) return true
+ if (isNumericUtility.test(className)) return true
+ return false
+}
+
export function getColor(state: State, className: string): culori.Color | KeywordColor | null {
if (state.v4) {
+ // FIXME: This is a performance optimization and not strictly correct
+ if (isLikelyColorless(className)) return null
+
let css = state.designSystem.compile([className])[0]
let color = getColorFromRoot(state, css)
diff --git a/packages/tailwindcss-language-service/src/util/rewriting/var-fallbacks.ts b/packages/tailwindcss-language-service/src/util/rewriting/var-fallbacks.ts
index 728b53bf..91dcc91d 100644
--- a/packages/tailwindcss-language-service/src/util/rewriting/var-fallbacks.ts
+++ b/packages/tailwindcss-language-service/src/util/rewriting/var-fallbacks.ts
@@ -17,6 +17,14 @@ export function replaceCssVarsWithFallbacks(state: State, str: string): string {
return fallback
}
+ if (
+ name === '--tw-text-shadow-alpha' ||
+ name === '--tw-drop-shadow-alpha' ||
+ name === '--tw-shadow-alpha'
+ ) {
+ return '100%'
+ }
+
// Don't touch it since there's no suitable replacement
return null
},
diff --git a/packages/vscode-tailwindcss/CHANGELOG.md b/packages/vscode-tailwindcss/CHANGELOG.md
index 82478125..421543f5 100644
--- a/packages/vscode-tailwindcss/CHANGELOG.md
+++ b/packages/vscode-tailwindcss/CHANGELOG.md
@@ -3,6 +3,8 @@
## Prerelease
- Hide completions from CSS language server inside `@import "…" source(…)` ([#1091](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1091))
+- Bump bundled v4 fallback to v4.1.1 ([#1294](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1294))
+- Show color swatches for most new v4.1 utilities ([#1294](https://github.com/tailwindlabs/tailwindcss-intellisense/pull/1294))
# 0.14.12
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 071263e7..e879d3a6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -51,8 +51,8 @@ importers:
specifier: 0.4.2
version: 0.4.2(tailwindcss@3.4.17)
'@tailwindcss/oxide':
- specifier: ^4.0.15
- version: 4.0.15
+ specifier: ^4.1.0
+ version: 4.1.0
'@tailwindcss/typography':
specifier: 0.5.7
version: 0.5.7(tailwindcss@3.4.17)
@@ -183,8 +183,8 @@ importers:
specifier: 3.4.17
version: 3.4.17
tailwindcss-v4:
- specifier: npm:tailwindcss@4.0.6
- version: tailwindcss@4.0.6
+ specifier: npm:tailwindcss@4.1.1
+ version: tailwindcss@4.1.1
tsconfck:
specifier: ^3.1.4
version: 3.1.4(typescript@5.3.3)
@@ -890,74 +890,74 @@ packages:
peerDependencies:
tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1'
- '@tailwindcss/oxide-android-arm64@4.0.15':
- resolution: {integrity: sha512-EBuyfSKkom7N+CB3A+7c0m4+qzKuiN0WCvzPvj5ZoRu4NlQadg/mthc1tl5k9b5ffRGsbDvP4k21azU4VwVk3Q==}
+ '@tailwindcss/oxide-android-arm64@4.1.0':
+ resolution: {integrity: sha512-UredFljuHey2Kh5qyYfQVBr0Xfq70ZE5Df6i5IubNYQGs2JXXT4VL0SIUjwzHx5W9T6t7dT7banunlV6lthGPQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.0.15':
- resolution: {integrity: sha512-ObVAnEpLepMhV9VoO0JSit66jiN5C4YCqW3TflsE9boo2Z7FIjV80RFbgeL2opBhtxbaNEDa6D0/hq/EP03kgQ==}
+ '@tailwindcss/oxide-darwin-arm64@4.1.0':
+ resolution: {integrity: sha512-QHQ/46lRVwH9zEBNiRk8AJ3Af4pMq6DuZAI//q323qrPOXjsRdrhLsH9LUO3mqBfHr5EZNUxN3Am5vpO89sntw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.0.15':
- resolution: {integrity: sha512-IElwoFhUinOr9MyKmGTPNi1Rwdh68JReFgYWibPWTGuevkHkLWKEflZc2jtI5lWZ5U9JjUnUfnY43I4fEXrc4g==}
+ '@tailwindcss/oxide-darwin-x64@4.1.0':
+ resolution: {integrity: sha512-lEMgYHCvQQ6x2KOZ4FwnPprwfnc+UnjzwXRqEYIhB/NlYvXQD1QMf7oKEDRqy94DiZaYox9ZRfG2YJOBgM0UkA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.0.15':
- resolution: {integrity: sha512-6BLLqyx7SIYRBOnTZ8wgfXANLJV5TQd3PevRJZp0vn42eO58A2LykRKdvL1qyPfdpmEVtF+uVOEZ4QTMqDRAWA==}
+ '@tailwindcss/oxide-freebsd-x64@4.1.0':
+ resolution: {integrity: sha512-9fdImTc+2lA5yHqJ61oeTXfCtzylNOzJVFhyWwVQAJESJJbVCPnj6f+b+Zf/AYAdKQfS6FCThbPEahkQrDCgLQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15':
- resolution: {integrity: sha512-Zy63EVqO9241Pfg6G0IlRIWyY5vNcWrL5dd2WAKVJZRQVeolXEf1KfjkyeAAlErDj72cnyXObEZjMoPEKHpdNw==}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.0':
+ resolution: {integrity: sha512-HB0bTkUOuTLLSdadyRhKE9yps4/ZBjrojbHTPMSvvf/8yBLZRPpWb+A6IgW5R+2A2AL4KhVPgLwWfoXsErxJFg==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.0.15':
- resolution: {integrity: sha512-2NemGQeaTbtIp1Z2wyerbVEJZTkAWhMDOhhR5z/zJ75yMNf8yLnE+sAlyf6yGDNr+1RqvWrRhhCFt7i0CIxe4Q==}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.0':
+ resolution: {integrity: sha512-+QtYCwvKLjC46h6RikKkpELJWrpiMMtgyK0aaqhwPLEx1icGgIhwz8dqrkAiqbFRE0KiRrE2aenhYoEkplyRmA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-musl@4.0.15':
- resolution: {integrity: sha512-342GVnhH/6PkVgKtEzvNVuQ4D+Q7B7qplvuH20Cfz9qEtydG6IQczTZ5IT4JPlh931MG1NUCVxg+CIorr1WJyw==}
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.0':
+ resolution: {integrity: sha512-nApadFKM9GauzuPZPlt6TKfELavMHqJ0gVd+GYkYBTwr2t9KhgCAb2sKiFDDIhs1a7gOjsU7P1lEauv3iKFp+Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-gnu@4.0.15':
- resolution: {integrity: sha512-g76GxlKH124RuGqacCEFc2nbzRl7bBrlC8qDQMiUABkiifDRHOIUjgKbLNG4RuR9hQAD/MKsqZ7A8L08zsoBrw==}
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.0':
+ resolution: {integrity: sha512-cp0Rf9Wit2kZHhrV8HIoDFD8dxU2+ZTCFCFbDj3a07pGyyPwLCJm5H5VipKXgYrBaLmlYu73ERidW0S5sdEXEg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-musl@4.0.15':
- resolution: {integrity: sha512-Gg/Y1XrKEvKpq6WeNt2h8rMIKOBj/W3mNa5NMvkQgMC7iO0+UNLrYmt6zgZufht66HozNpn+tJMbbkZ5a3LczA==}
+ '@tailwindcss/oxide-linux-x64-musl@4.1.0':
+ resolution: {integrity: sha512-4/wf42XWBJGXsOS6BhgPhdQbg/qyfdZ1nZvTL9sJoxYN+Ah+cfY5Dd7R0smzI8hmgCRt3TD1lYb72ChTyIA59w==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-win32-arm64-msvc@4.0.15':
- resolution: {integrity: sha512-7QtSSJwYZ7ZK1phVgcNZpuf7c7gaCj8Wb0xjliligT5qCGCp79OV2n3SJummVZdw4fbTNKUOYMO7m1GinppZyA==}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.0':
+ resolution: {integrity: sha512-caXJJ0G6NwGbcoxEYdH3MZYN84C3PldaMdAEPMU6bjJXURQlKdSlQ/Ecis7/nSgBkMkicZyhqWmb36Tw/BFSIw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.0.15':
- resolution: {integrity: sha512-JQ5H+5MLhOjpgNp6KomouE0ZuKmk3hO5h7/ClMNAQ8gZI2zkli3IH8ZqLbd2DVfXDbdxN2xvooIEeIlkIoSCqw==}
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.0':
+ resolution: {integrity: sha512-ZHXRXRxB7HBmkUE8U13nmkGGYfR1I2vsuhiYjeDDUFIYpk1BL6caU8hvzkSlL/X5CAQNdIUUJRGom5I0ZyfJOA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.0.15':
- resolution: {integrity: sha512-e0uHrKfPu7JJGMfjwVNyt5M0u+OP8kUmhACwIRlM+JNBuReDVQ63yAD1NWe5DwJtdaHjugNBil76j+ks3zlk6g==}
+ '@tailwindcss/oxide@4.1.0':
+ resolution: {integrity: sha512-A33oyZKpPFH08d7xkl13Dc8OTsbPhsuls0z9gUCxIHvn8c1BsUACddQxL6HwaeJR1fSYyXZUw8bdWcD8bVawpQ==}
engines: {node: '>= 10'}
'@tailwindcss/typography@0.5.7':
@@ -2440,8 +2440,8 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
- tailwindcss@4.0.6:
- resolution: {integrity: sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==}
+ tailwindcss@4.1.1:
+ resolution: {integrity: sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==}
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
@@ -3105,52 +3105,52 @@ snapshots:
dependencies:
tailwindcss: 3.4.17
- '@tailwindcss/oxide-android-arm64@4.0.15':
+ '@tailwindcss/oxide-android-arm64@4.1.0':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.0.15':
+ '@tailwindcss/oxide-darwin-arm64@4.1.0':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.0.15':
+ '@tailwindcss/oxide-darwin-x64@4.1.0':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.0.15':
+ '@tailwindcss/oxide-freebsd-x64@4.1.0':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.15':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.0':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.0.15':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.0':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.0.15':
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.0':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.0.15':
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.0':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.0.15':
+ '@tailwindcss/oxide-linux-x64-musl@4.1.0':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.0.15':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.0':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.0.15':
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.0':
optional: true
- '@tailwindcss/oxide@4.0.15':
+ '@tailwindcss/oxide@4.1.0':
optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.0.15
- '@tailwindcss/oxide-darwin-arm64': 4.0.15
- '@tailwindcss/oxide-darwin-x64': 4.0.15
- '@tailwindcss/oxide-freebsd-x64': 4.0.15
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.15
- '@tailwindcss/oxide-linux-arm64-gnu': 4.0.15
- '@tailwindcss/oxide-linux-arm64-musl': 4.0.15
- '@tailwindcss/oxide-linux-x64-gnu': 4.0.15
- '@tailwindcss/oxide-linux-x64-musl': 4.0.15
- '@tailwindcss/oxide-win32-arm64-msvc': 4.0.15
- '@tailwindcss/oxide-win32-x64-msvc': 4.0.15
+ '@tailwindcss/oxide-android-arm64': 4.1.0
+ '@tailwindcss/oxide-darwin-arm64': 4.1.0
+ '@tailwindcss/oxide-darwin-x64': 4.1.0
+ '@tailwindcss/oxide-freebsd-x64': 4.1.0
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.0
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.1.0
+ '@tailwindcss/oxide-linux-arm64-musl': 4.1.0
+ '@tailwindcss/oxide-linux-x64-gnu': 4.1.0
+ '@tailwindcss/oxide-linux-x64-musl': 4.1.0
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.1.0
+ '@tailwindcss/oxide-win32-x64-msvc': 4.1.0
'@tailwindcss/typography@0.5.7(tailwindcss@3.4.17)':
dependencies:
@@ -4710,7 +4710,7 @@ snapshots:
transitivePeerDependencies:
- ts-node
- tailwindcss@4.0.6: {}
+ tailwindcss@4.1.1: {}
tapable@2.2.1: {}