diff --git a/package-lock.json b/package-lock.json index fe256a80..d2281bbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -783,9 +783,9 @@ "dev": true }, "node_modules/@types/culori": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/culori/-/culori-2.0.1.tgz", - "integrity": "sha512-Mfcyo2pT3IwxIdB2fRZrMp+noSZOOc+719G89h/MqDHcJNEDy22HO0XEso7Ofz6p0kB7XqkhxMBjmCXLQPeyJA==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/culori/-/culori-2.1.0.tgz", + "integrity": "sha512-4uJT5CcC9Mi8mACkWShsPHqILMWL0OqoTsfoLJUGzN1mcipcepmmEdzU8b9L1KwyRNN3rnQO39ylI/2VR850zw==" }, "node_modules/@types/debounce": { "version": "1.2.0", @@ -1928,9 +1928,12 @@ } }, "node_modules/culori": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/culori/-/culori-0.20.1.tgz", - "integrity": "sha512-jNZDmufWx4vCHW2fTb62sarHEeIF3WWrUYIv4ZpoQnN2vQU6IRPz1Ra9QnsHUKzdb5lppSuLsdB72rMmBMAd+A==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/culori/-/culori-4.0.1.tgz", + "integrity": "sha512-LSnjA6HuIUOlkfKVbzi2OlToZE8OjFi667JWN9qNymXVXzGDmvuP60SSgC+e92sd7B7158f7Fy3Mb6rXS5EDPw==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, "node_modules/data-urls": { "version": "4.0.0", @@ -7419,6 +7422,7 @@ "@tailwindcss/line-clamp": "0.4.2", "@tailwindcss/typography": "0.5.7", "@types/color-name": "^1.1.3", + "@types/culori": "^2.1.0", "@types/debounce": "1.2.0", "@types/dlv": "^1.1.4", "@types/find-up": "^4.0.0", @@ -7433,7 +7437,7 @@ "bun-types": "^1.0.6", "chokidar": "3.5.1", "color-name": "1.1.4", - "culori": "0.20.1", + "culori": "^4.0.1", "debounce": "1.2.0", "deepmerge": "4.2.2", "dlv": "1.1.3", @@ -7525,12 +7529,12 @@ "@csstools/css-parser-algorithms": "2.1.1", "@csstools/css-tokenizer": "2.1.1", "@csstools/media-query-list-parser": "2.0.4", - "@types/culori": "^2.0.0", + "@types/culori": "^2.1.0", "@types/moo": "0.5.3", "@types/semver": "7.3.10", "color-name": "1.1.4", "css.escape": "1.5.1", - "culori": "0.20.1", + "culori": "^4.0.1", "detect-indent": "6.0.0", "dlv": "1.1.3", "dset": "3.1.2", diff --git a/packages/tailwindcss-language-server/package.json b/packages/tailwindcss-language-server/package.json index 99b896e2..7ddd40da 100644 --- a/packages/tailwindcss-language-server/package.json +++ b/packages/tailwindcss-language-server/package.json @@ -41,6 +41,7 @@ "@tailwindcss/line-clamp": "0.4.2", "@tailwindcss/typography": "0.5.7", "@types/color-name": "^1.1.3", + "@types/culori": "^2.1.0", "@types/debounce": "1.2.0", "@types/dlv": "^1.1.4", "@types/find-up": "^4.0.0", @@ -55,7 +56,7 @@ "bun-types": "^1.0.6", "chokidar": "3.5.1", "color-name": "1.1.4", - "culori": "0.20.1", + "culori": "^4.0.1", "debounce": "1.2.0", "deepmerge": "4.2.2", "dlv": "1.1.3", 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 0907af85..d3ef74df 100644 --- a/packages/tailwindcss-language-server/src/util/v4/design-system.ts +++ b/packages/tailwindcss-language-server/src/util/v4/design-system.ts @@ -43,17 +43,23 @@ export async function loadDesignSystem( Object.assign(design, { compile(classes: string[]): (postcss.Root | null)[] { let css = design.candidatesToCss(classes) + let errors: any[] = [] let roots = css.map((str) => { if (str === null) return postcss.root() try { return postcss.parse(str.trimEnd()) - } catch { - return null + } catch (err) { + errors.push(err) + return postcss.root() } }) + if (errors.length > 0) { + console.error(JSON.stringify(errors)) + } + return roots }, diff --git a/packages/tailwindcss-language-server/tests/colors/colors.test.js b/packages/tailwindcss-language-server/tests/colors/colors.test.js index 4947ac6d..c7252de7 100644 --- a/packages/tailwindcss-language-server/tests/colors/colors.test.js +++ b/packages/tailwindcss-language-server/tests/colors/colors.test.js @@ -59,15 +59,30 @@ withFixture('basic', (c) => { }) testColors('arbitrary value and opacity modifier', { - text: '