Skip to content

Commit fc73e30

Browse files
committed
chore: bump version
1 parent a7e3b2d commit fc73e30

File tree

9 files changed

+1501
-1324
lines changed

9 files changed

+1501
-1324
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'tailwindcss-patch': patch
3+
---
4+
5+
Ensure Tailwind v4 candidate extraction only keeps class names that compile to CSS so HTTP header literals like `text/event-stream` no longer leak into the runtime class set.

package.json

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@
4040
"@commitlint/prompt-cli": "^20.1.0",
4141
"@commitlint/types": "^20.0.0",
4242
"@icebreakers/commitlint-config": "^1.2.2",
43-
"@icebreakers/eslint-config": "^1.5.5",
44-
"@icebreakers/monorepo": "^2.1.0",
45-
"@icebreakers/stylelint-config": "^1.2.2",
43+
"@icebreakers/eslint-config": "^1.5.9",
44+
"@icebreakers/monorepo": "^2.1.4",
45+
"@icebreakers/stylelint-config": "^1.2.3",
4646
"@rollup/pluginutils": "^5.3.0",
4747
"@tailwindcss-mangle/core": "workspace:*",
4848
"@tailwindcss-mangle/shared": "workspace:*",
49-
"@tailwindcss/postcss": "^4.1.16",
50-
"@tsconfig/recommended": "^1.0.10",
49+
"@tailwindcss/postcss": "^4.1.17",
50+
"@tsconfig/recommended": "^1.0.11",
5151
"@types/babel__generator": "^7.27.0",
5252
"@types/babel__helper-plugin-utils": "^7.10.3",
5353
"@types/babel__traverse": "^7.28.0",
@@ -58,12 +58,12 @@
5858
"@types/lodash": "^4.17.20",
5959
"@types/lodash-es": "^4.17.12",
6060
"@types/micromatch": "^4.0.10",
61-
"@types/node": "^24.9.1",
61+
"@types/node": "^24.10.0",
6262
"@types/resolve": "^1.20.6",
6363
"@types/semver": "^7.7.1",
6464
"@types/set-value": "^4.0.3",
65-
"@vitest/coverage-v8": "~4.0.3",
66-
"astro": "^5.15.1",
65+
"@vitest/coverage-v8": "~4.0.8",
66+
"astro": "^5.15.4",
6767
"ci-info": "^4.3.1",
6868
"comment-json": "^4.4.1",
6969
"cross-env": "^10.1.0",
@@ -73,7 +73,7 @@
7373
"del": "^8.0.1",
7474
"dotenv": "^17.2.3",
7575
"es-toolkit": "^1.41.0",
76-
"eslint": "^9.38.0",
76+
"eslint": "^9.39.1",
7777
"execa": "^9.6.0",
7878
"fast-glob": "^3.3.3",
7979
"fdir": "^6.5.0",
@@ -98,8 +98,8 @@
9898
"postcss-loader": "^8.2.0",
9999
"postcss7": "npm:postcss@7",
100100
"prettier": "^3.6.2",
101-
"rimraf": "^6.0.1",
102-
"rollup": "^4.52.5",
101+
"rimraf": "^6.1.0",
102+
"rollup": "^4.53.1",
103103
"set-value": "^4.1.0",
104104
"stylelint": "^16.25.0",
105105
"tailwindcss": "catalog:tailwindcss3",
@@ -108,15 +108,15 @@
108108
"tslib": "^2.8.1",
109109
"tsup": "^8.5.0",
110110
"tsx": "^4.20.6",
111-
"turbo": "^2.5.8",
112-
"type-fest": "^5.1.0",
111+
"turbo": "^2.6.0",
112+
"type-fest": "^5.2.0",
113113
"typescript": "^5.9.3",
114114
"unbuild": "^3.6.1",
115115
"unplugin": "^2.3.10",
116116
"unplugin-tailwindcss-mangle": "workspace:*",
117-
"vite": "^7.1.12",
117+
"vite": "^7.2.2",
118118
"vite-tsconfig-paths": "^5.1.4",
119-
"vitest": "~4.0.3",
119+
"vitest": "~4.0.8",
120120
"webpack": "^5.102.1",
121121
"webpack-build-utils": "^0.0.7",
122122
"yaml": "^2.8.1"

packages/tailwindcss-patch/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"@babel/traverse": "^7.28.5",
7979
"@babel/types": "^7.28.5",
8080
"@tailwindcss-mangle/config": "workspace:*",
81-
"@tailwindcss/node": "^4.1.16",
81+
"@tailwindcss/node": "^4.1.17",
8282
"cac": "^6.7.14",
8383
"consola": "^3.4.2",
8484
"fs-extra": "^11.3.2",
@@ -89,9 +89,9 @@
8989
"tailwindcss-config": "^1.1.2"
9090
},
9191
"devDependencies": {
92-
"@tailwindcss/oxide": "^4.1.16",
93-
"@tailwindcss/postcss": "^4.1.16",
94-
"@tailwindcss/vite": "^4.1.16",
92+
"@tailwindcss/oxide": "^4.1.17",
93+
"@tailwindcss/postcss": "^4.1.17",
94+
"@tailwindcss/vite": "^4.1.17",
9595
"tailwindcss": "catalog:tailwindcss4",
9696
"tailwindcss-3": "catalog:tailwindcss3",
9797
"tailwindcss-4": "catalog:tailwindcss4"

packages/tailwindcss-patch/src/extraction/candidate-extractor.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,23 @@ export async function extractValidCandidates(options?: ExtractValidCandidatesOpt
7272
const designSystem = await __unstable__loadDesignSystem(css, { base })
7373

7474
const candidates = await extractRawCandidates(sources)
75-
const validCandidates = candidates.filter(
75+
const parsedCandidates = candidates.filter(
7676
rawCandidate => designSystem.parseCandidate(rawCandidate).length > 0,
7777
)
78+
if (parsedCandidates.length === 0) {
79+
return parsedCandidates
80+
}
81+
82+
const cssByCandidate = designSystem.candidatesToCss(parsedCandidates)
83+
const validCandidates: string[] = []
84+
85+
for (let index = 0; index < parsedCandidates.length; index++) {
86+
const css = cssByCandidate[index]
87+
if (typeof css === 'string' && css.trim().length > 0) {
88+
validCandidates.push(parsedCandidates[index])
89+
}
90+
}
91+
7892
return validCandidates
7993
}
8094

packages/tailwindcss-patch/test/extraction.candidate-extractor.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,24 @@ describe('candidate extractor', () => {
3636
expect(result).toContain('underline')
3737
})
3838

39+
it('ignores HTTP header literals when filtering candidates', async () => {
40+
const result = await extractValidCandidates({
41+
base: fixturesRoot,
42+
sources: [
43+
{
44+
base: fixturesRoot,
45+
pattern: 'http-headers.ts',
46+
negated: false,
47+
},
48+
],
49+
})
50+
51+
expect(result).toContain('text-red-500')
52+
expect(result).not.toContain('text/event-stream')
53+
expect(result).not.toContain('text/plain')
54+
expect(result).not.toContain('text/html')
55+
})
56+
3957
it('scans project files for token metadata', async () => {
4058
const result = await extractProjectCandidatesWithPositions({
4159
cwd: tokenFixturesRoot,
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const headers = {
2+
Accept: 'text/event-stream',
3+
'Content-Type': 'text/plain',
4+
'X-HTML': 'text/html',
5+
}
6+
7+
export function useHeaders() {
8+
return headers
9+
}
10+
11+
export const classes = `<view class="text-red-500">Hello</view>`

0 commit comments

Comments
 (0)