Skip to content

Handle CSS math functions in shadow lengths#20074

Closed
yudin-s wants to merge 2 commits into
tailwindlabs:mainfrom
yudin-s:fix/drop-shadow-calc-length
Closed

Handle CSS math functions in shadow lengths#20074
yudin-s wants to merge 2 commits into
tailwindlabs:mainfrom
yudin-s:fix/drop-shadow-calc-length

Conversation

@yudin-s
Copy link
Copy Markdown
Contributor

@yudin-s yudin-s commented May 18, 2026

Summary

Fixes shadow color replacement so CSS math functions like calc(), min(), max(), and clamp() are treated as shadow lengths instead of being mistaken for colors. This keeps custom drop-shadow values such as 0 0 calc(1 * var(--spacing)) black intact when combined with drop-shadow color utilities.

Fixes #20065

Test plan

  • pnpm exec prettier --check packages/tailwindcss/src/utils/replace-shadow-colors.ts packages/tailwindcss/src/utils/replace-shadow-colors.test.ts
  • pnpm exec vitest run packages/tailwindcss/src/utils/replace-shadow-colors.test.ts --hideSkippedTests
  • pnpm exec vitest run packages/tailwindcss/src/utilities.test.ts --hideSkippedTests -t '^filter$'

@yudin-s yudin-s requested a review from a team as a code owner May 18, 2026 13:57
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 18, 2026

Confidence Score: 5/5

Safe to merge — the change is a targeted regex fix with tests that cover all four newly-supported math functions and the stateful regex footgun is cleanly removed.

The diff is small and self-contained: the new regex correctly matches the four CSS math-function prefixes without introducing false positives for color tokens, the stateful g-flag and its manual lastIndex reset are both gone, and the paren-aware segment utility guarantees that expressions like calc(1 * var(--spacing)) arrive as single tokens for the regex to evaluate. All four functions now have inline snapshot tests.

No files require special attention.

Reviews (2): Last reviewed commit: "test: cover css math shadow lengths" | Re-trigger Greptile

Comment thread packages/tailwindcss/src/utils/replace-shadow-colors.test.ts
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 7423dd92-2d37-4195-9f68-bfb944bfef47

📥 Commits

Reviewing files that changed from the base of the PR and between 76cf176 and e62443a.

📒 Files selected for processing (1)
  • packages/tailwindcss/src/utils/replace-shadow-colors.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/tailwindcss/src/utils/replace-shadow-colors.test.ts

Walkthrough

This PR refactors the shadow color replacement utility by simplifying the LENGTH regex pattern from a stateful global form to a non-global pattern that matches entire tokens. The corresponding parsing loop no longer resets LENGTH.lastIndex since the regex is no longer stateful. A new test case verifies that CSS math functions like calc(1 * var(--spacing)) are correctly preserved as length values while shadow colors are substituted.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Handle CSS math functions in shadow lengths' directly and concisely describes the main change, matching the core objective of fixing CSS math function handling in shadow parsing.
Description check ✅ Passed The description is directly related to the changeset, explaining the fix for CSS math functions in shadows and referencing the specific issue being addressed.
Linked Issues check ✅ Passed The PR successfully addresses issue #20065 by fixing the LENGTH regex pattern to properly recognize CSS math functions (calc, min, max, clamp) as shadow lengths rather than colors, preserving custom drop-shadow values.
Out of Scope Changes check ✅ Passed All changes are directly scoped to fixing the shadow color replacement issue; modifications to the LENGTH regex and accompanying test are focused on the stated objective with no extraneous alterations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
packages/tailwindcss/src/utils/replace-shadow-colors.test.ts (1)

43-48: ⚡ Quick win

Expand coverage to min(), max(), and clamp() too.

This test locks calc(...), but the regex now explicitly handles four math functions. A small parameterized test here would guard all supported branches.

🧪 Suggested update
-  it('should handle CSS math functions as lengths', () => {
-    let parsed = replaceShadowColors('0 0 calc(1 * var(--spacing)) black', replacer)
-    expect(parsed).toMatchInlineSnapshot(
-      `"0 0 calc(1 * var(--spacing)) var(--tw-shadow-color, black)"`,
-    )
-  })
+  it.each([
+    'calc(1 * var(--spacing))',
+    'min(1px, 2px)',
+    'max(1px, 2px)',
+    'clamp(1px, 2px, 3px)',
+  ])('should handle CSS math function lengths: %s', (length) => {
+    let parsed = replaceShadowColors(`0 0 ${length} black`, replacer)
+    expect(parsed).toBe(`0 0 ${length} var(--tw-shadow-color, black)`)
+  })
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/tailwindcss/src/utils/replace-shadow-colors.test.ts` around lines 43
- 48, Update the existing test for math functions in replaceShadowColors: change
the single-case "should handle CSS math functions as lengths" to a parameterized
loop over ['calc', 'min', 'max', 'clamp'] and for each call replaceShadowColors
with a string like `0 0 ${fn}(1 * var(--spacing)) black` (using the same
replacer) and assert the parsed result matches the expected shadow color
replacement (`var(--tw-shadow-color, black)`); ensure the test still uses the
same helper symbols replaceShadowColors and replacer and keeps the same
assertion style (e.g., toMatchInlineSnapshot or equivalent) for each function.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@packages/tailwindcss/src/utils/replace-shadow-colors.test.ts`:
- Around line 43-48: Update the existing test for math functions in
replaceShadowColors: change the single-case "should handle CSS math functions as
lengths" to a parameterized loop over ['calc', 'min', 'max', 'clamp'] and for
each call replaceShadowColors with a string like `0 0 ${fn}(1 * var(--spacing))
black` (using the same replacer) and assert the parsed result matches the
expected shadow color replacement (`var(--tw-shadow-color, black)`); ensure the
test still uses the same helper symbols replaceShadowColors and replacer and
keeps the same assertion style (e.g., toMatchInlineSnapshot or equivalent) for
each function.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 86bdb689-2e1e-4250-8a25-8e8c0e09be3b

📥 Commits

Reviewing files that changed from the base of the PR and between 36417cb and 76cf176.

📒 Files selected for processing (2)
  • packages/tailwindcss/src/utils/replace-shadow-colors.test.ts
  • packages/tailwindcss/src/utils/replace-shadow-colors.ts

@RobinMalfait
Copy link
Copy Markdown
Member

Hey! Thanks for the PR, there are a few more cases that need to be handled and instead of using regexes I used a proper parser instead to handle those cases. #20080

foguel pushed a commit to foguel/tailwindcss that referenced this pull request May 19, 2026
Here is everything you need to know about this update. Please take a
good look at what changed and the test results before merging this pull
request.

### What changed?




#### ✳️ eslint (9.33.0 → 9.35.0) ·
[Repo](https://github.com/eslint/eslint) ·
[Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/eslint/eslint/releases/tag/v9.35.0">9.35.0</a></h4>

<blockquote><h2 dir="auto">Features</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/42761fa7c872fb9e14c144b692af6967b3662082"><code
class="notranslate">42761fa</code></a> feat: implement suggestions for
no-empty-function (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20057">#20057</a>)
(jaymarvelz)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/102f44442ac9bf1fcd4ba6ab9fae43ce09199df6"><code
class="notranslate">102f444</code></a> feat: implement suggestions for
no-empty-static-block (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20056">#20056</a>)
(jaymarvelz)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/e51ffff737ca245b3a1d115cb11e1c99737249a3"><code
class="notranslate">e51ffff</code></a> feat: add <code
class="notranslate">preserve-caught-error</code> rule (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19913">#19913</a>)
(Amnish Singh Arora)</li>
</ul>
<h2 dir="auto">Bug Fixes</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/10e7ae23e30ea0834d9fdeb3a2a1db8103c36cd2"><code
class="notranslate">10e7ae2</code></a> fix: update uncloneable options
error message (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20059">#20059</a>)
(soda-sorcery)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/bfa46013e7ea9a522c02f72250fa07160f96a6b8"><code
class="notranslate">bfa4601</code></a> fix: ignore empty switch
statements with comments in no-empty rule (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20045">#20045</a>)
(jaymarvelz)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/dfd11deb24fc733faa5db751a2f615eb04e48b15"><code
class="notranslate">dfd11de</code></a> fix: add <code
class="notranslate">before</code> and <code
class="notranslate">after</code> to test case types (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20049">#20049</a>)
(Francesco Trotta)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/dabbe95c39671c5fa272da012ee1432aa088650f"><code
class="notranslate">dabbe95</code></a> fix: correct types for <code
class="notranslate">no-restricted-imports</code> rule (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20034">#20034</a>)
(Milos Djermanovic)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/ea789c7dd234c1a6be499a4644dd0f5c97615972"><code
class="notranslate">ea789c7</code></a> fix: no-loss-of-precision false
positive with uppercase exponent (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20032">#20032</a>)
(sethamus)</li>
</ul>
<h2 dir="auto">Documentation</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/d265515642f65246bcd45c17979f67c2afb12f95"><code
class="notranslate">d265515</code></a> docs: improve phrasing - "if" →
"even if" from getting-started section (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20074">#20074</a>)
(jjangga0214)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/a355a0e5b2e6a47cda099b31dc7d112cfb5c4315"><code
class="notranslate">a355a0e</code></a> docs: invert comparison logic for
example in <code class="notranslate">no-var</code> doc page (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20064">#20064</a>)
(OTonGitHub)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/5082fc206de6946d9d4c20e57301f78839b3b9f2"><code
class="notranslate">5082fc2</code></a> docs: Update README (GitHub
Actions Bot)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/99cfd7e056e1703941c9eb8ca1ae7fdb1987ba9d"><code
class="notranslate">99cfd7e</code></a> docs: add missing "the" in rule
deprecation docs (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20050">#20050</a>)
(Josh Goldberg ✨)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/6ad8973e5d3c94b8e100b7266f55f8eb0757eb00"><code
class="notranslate">6ad8973</code></a> docs: update <code
class="notranslate">--no-ignore</code> and <code
class="notranslate">--ignore-pattern</code> documentation (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20036">#20036</a>)
(Francesco Trotta)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/8033b195299a1eaa4a0ed6553d9e034a457bb577"><code
class="notranslate">8033b19</code></a> docs: add documentation for <code
class="notranslate">--no-config-lookup</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20033">#20033</a>)
(Francesco Trotta)</li>
</ul>
<h2 dir="auto">Chores</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/da87f2fe792cab5b69b62bf5c15e69ab4f433087"><code
class="notranslate">da87f2f</code></a> chore: upgrade @eslint/js@9.35.0
(<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20077">#20077</a>)
(Milos Djermanovic)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/af2a0870fdc646091d027516601888923e5bc202"><code
class="notranslate">af2a087</code></a> chore: package.json update for
@eslint/js release (Jenkins)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/70557649e3111c55d8cddf678b6c4079aa6f0ccc"><code
class="notranslate">7055764</code></a> test: remove <code
class="notranslate">tests/lib/eslint/eslint.config.js</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20065">#20065</a>)
(Milos Djermanovic)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/84ffb9680b15e45bfd8c8a5db4731576ddd16fc4"><code
class="notranslate">84ffb96</code></a> chore: update <code
class="notranslate">@eslint-community/eslint-utils</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20069">#20069</a>)
(Francesco Trotta)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/d5ef9397150cc178e1f9891c3ff49ac4871ec786"><code
class="notranslate">d5ef939</code></a> refactor: remove deprecated <code
class="notranslate">context.parserOptions</code> usage across rules (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20060">#20060</a>)
(sethamus)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/1b3881d7e859bec9589e39888656c33c914a8302"><code
class="notranslate">1b3881d</code></a> chore: remove redundant word (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20058">#20058</a>)
(pxwanglu)</li>
</ul></blockquote>
<h4><a
href="https://github.com/eslint/eslint/releases/tag/v9.34.0">9.34.0</a></h4>

<blockquote><h2 dir="auto">Features</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/0bb777a82b533df595cd520d9c89d291efa14a33"><code
class="notranslate">0bb777a</code></a> feat: multithread linting (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19794">#19794</a>)
(Francesco Trotta)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/43a5f9e36f1aade16f81fc49ef4b333660faadab"><code
class="notranslate">43a5f9e</code></a> feat: add eslint-plugin-regexp to
eslint-config-eslint base config (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19951">#19951</a>)
(Pixel998)</li>
</ul>
<h2 dir="auto">Bug Fixes</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/9b8990397b2d2ed70771bb0e2070261a0c41782c"><code
class="notranslate">9b89903</code></a> fix: default value of
accessor-pairs option in rule.d.ts file (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20024">#20024</a>)
(Tanuj Kanti)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/6c074206ae0eae4816197a57648b415832a20e1d"><code
class="notranslate">6c07420</code></a> fix: fix spurious failure in
neostandard integration test (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20023">#20023</a>)
(Kirk Waiblinger)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/676f4acaaed6e4f6ffe0c2e21272d4702b311a7b"><code
class="notranslate">676f4ac</code></a> fix: allow scientific notation
with trailing zeros matching exponent (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20002">#20002</a>)
(Sweta Tanwar)</li>
</ul>
<h2 dir="auto">Documentation</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/0b4a590333b73a21b9e0ddc98462680e09fe3232"><code
class="notranslate">0b4a590</code></a> docs: make rulesdir deprecation
clearer (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20018">#20018</a>)
(Domenico Gemoli)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/327c67256fbeaf9d5e365802c2a11f5d32a16522"><code
class="notranslate">327c672</code></a> docs: Update README (GitHub
Actions Bot)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/bf2622991f5b892610a8c3343ff16519e5fd7a79"><code
class="notranslate">bf26229</code></a> docs: Fix typo in
core-concepts/index.md (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20009">#20009</a>)
(Tobias Hernstig)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/2309327554acbf011f0d17e7b36fdd68e43adf3a"><code
class="notranslate">2309327</code></a> docs: fix typo in the
"Configuring Rules" section (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20001">#20001</a>)
(ghazi-git)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/2b87e21321422c120c2248dae25cac7f9eec0f29"><code
class="notranslate">2b87e21</code></a> docs: [no-else-return] clarify
sample code. (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19991">#19991</a>)
(Yuki Takada (Yukinosuke Takada))</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/c36570c6657c2a92dbb4f09a8166a4d9909a091a"><code
class="notranslate">c36570c</code></a> docs: Update README (GitHub
Actions Bot)</li>
</ul>
<h2 dir="auto">Chores</h2>
<ul dir="auto">
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/f19ad9493e0ca04c2c1455fbb3402eaad993a8be"><code
class="notranslate">f19ad94</code></a> chore: upgrade to <code
class="notranslate">@eslint/js@9.34.0</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20030">#20030</a>)
(Francesco Trotta)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/b48fa20034e53bc65d1a58f3d834705e3087b00c"><code
class="notranslate">b48fa20</code></a> chore: package.json update for
@eslint/js release (Jenkins)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/4bce8a250262ec47207bc260581f979e40c86bda"><code
class="notranslate">4bce8a2</code></a> chore: package.json update for
eslint-config-eslint release (Jenkins)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/0c9999c2a682151cf13bb3a4f8916930678c2f9b"><code
class="notranslate">0c9999c</code></a> refactor: prefer default options
in <code class="notranslate">grouped-accessor-pairs</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20028">#20028</a>)
(루밀LuMir)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/d503f1981354c7b86e423879846c61e0405af8fe"><code
class="notranslate">d503f19</code></a> ci: fix <code
class="notranslate">stale.yml</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20010">#20010</a>)
(루밀LuMir)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/e2dc67d8b028147de4da35c64efe1d74c9f6a883"><code
class="notranslate">e2dc67d</code></a> ci: centralize <code
class="notranslate">stale.yml</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19994">#19994</a>)
(루밀LuMir)</li>
<li>
<a
href="https://bounce.depfu.com/github.com/eslint/eslint/commit/7093cb8f590ec2a1b5364d7b5687e9b5f4e06f8a"><code
class="notranslate">7093cb8</code></a> ci: bump actions/checkout from 4
to 5 (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/20005">#20005</a>)
(dependabot[bot])</li>
</ul></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/eslint/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="https://github.com/eslint/eslint/compare/a90d7c4fe5ef83054e29d21d7ffb442103429d03...8401101d1e3e3e4e1edc2a9e59cafc9956bf2610">See
the full diff on Github</a>. The new version differs by 42 commits:</p>
<ul>
<li><a
href="https://github.com/eslint/eslint/commit/8401101d1e3e3e4e1edc2a9e59cafc9956bf2610"><code>9.35.0</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/b80f0254f357ad6b1d8d9b4ded0892b8826ba8f4"><code>Build:
changelog update for 9.35.0</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/da87f2fe792cab5b69b62bf5c15e69ab4f433087"><code>chore:
upgrade @eslint/js@9.35.0 (tailwindlabs#20077)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/af2a0870fdc646091d027516601888923e5bc202"><code>chore:
package.json update for @eslint/js release</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/d265515642f65246bcd45c17979f67c2afb12f95"><code>docs:
improve phrasing - &quot;if&quot; → &quot;even if&quot; from
getting-started section (tailwindlabs#20074)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/70557649e3111c55d8cddf678b6c4079aa6f0ccc"><code>test:
remove `tests/lib/eslint/eslint.config.js` (tailwindlabs#20065)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/10e7ae23e30ea0834d9fdeb3a2a1db8103c36cd2"><code>fix:
update uncloneable options error message (tailwindlabs#20059)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/42761fa7c872fb9e14c144b692af6967b3662082"><code>feat:
implement suggestions for no-empty-function (tailwindlabs#20057)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/102f44442ac9bf1fcd4ba6ab9fae43ce09199df6"><code>feat:
implement suggestions for no-empty-static-block (tailwindlabs#20056)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/84ffb9680b15e45bfd8c8a5db4731576ddd16fc4"><code>chore:
update `@eslint-community/eslint-utils` (tailwindlabs#20069)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/a355a0e5b2e6a47cda099b31dc7d112cfb5c4315"><code>docs:
invert comparison logic for example in `no-var` doc page
(tailwindlabs#20064)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/e51ffff737ca245b3a1d115cb11e1c99737249a3"><code>feat:
add `preserve-caught-error` rule (tailwindlabs#19913)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/5082fc206de6946d9d4c20e57301f78839b3b9f2"><code>docs:
Update README</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/d5ef9397150cc178e1f9891c3ff49ac4871ec786"><code>refactor:
remove deprecated `context.parserOptions` usage across rules
(#20060)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/1b3881d7e859bec9589e39888656c33c914a8302"><code>chore:
remove redundant word (tailwindlabs#20058)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/99cfd7e056e1703941c9eb8ca1ae7fdb1987ba9d"><code>docs:
add missing &quot;the&quot; in rule deprecation docs
(tailwindlabs#20050)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/bfa46013e7ea9a522c02f72250fa07160f96a6b8"><code>fix:
ignore empty switch statements with comments in no-empty rule
(tailwindlabs#20045)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/dfd11deb24fc733faa5db751a2f615eb04e48b15"><code>fix:
add `before` and `after` to test case types (tailwindlabs#20049)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/6ad8973e5d3c94b8e100b7266f55f8eb0757eb00"><code>docs:
update `--no-ignore` and `--ignore-pattern` documentation
(tailwindlabs#20036)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/dabbe95c39671c5fa272da012ee1432aa088650f"><code>fix:
correct types for `no-restricted-imports` rule (tailwindlabs#20034)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/8033b195299a1eaa4a0ed6553d9e034a457bb577"><code>docs:
add documentation for `--no-config-lookup` (tailwindlabs#20033)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/ea789c7dd234c1a6be499a4644dd0f5c97615972"><code>fix:
no-loss-of-precision false positive with uppercase exponent
(tailwindlabs#20032)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/b8875f67a7bc99824f19147f4a669be7e98f3eee"><code>9.34.0</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/2e455fb433c4cae19572d75d866392f3b5a677d0"><code>Build:
changelog update for 9.34.0</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/f19ad9493e0ca04c2c1455fbb3402eaad993a8be"><code>chore:
upgrade to `@eslint/js@9.34.0` (tailwindlabs#20030)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/b48fa20034e53bc65d1a58f3d834705e3087b00c"><code>chore:
package.json update for @eslint/js release</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/4bce8a250262ec47207bc260581f979e40c86bda"><code>chore:
package.json update for eslint-config-eslint release</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/0c9999c2a682151cf13bb3a4f8916930678c2f9b"><code>refactor:
prefer default options in `grouped-accessor-pairs`
(tailwindlabs#20028)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/0b4a590333b73a21b9e0ddc98462680e09fe3232"><code>docs:
make rulesdir deprecation clearer (tailwindlabs#20018)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/9b8990397b2d2ed70771bb0e2070261a0c41782c"><code>fix:
default value of accessor-pairs option in rule.d.ts file
(tailwindlabs#20024)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/6c074206ae0eae4816197a57648b415832a20e1d"><code>fix:
fix spurious failure in neostandard integration test
(tailwindlabs#20023)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/676f4acaaed6e4f6ffe0c2e21272d4702b311a7b"><code>fix:
allow scientific notation with trailing zeros matching exponent
(tailwindlabs#20002)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/327c67256fbeaf9d5e365802c2a11f5d32a16522"><code>docs:
Update README</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/d503f1981354c7b86e423879846c61e0405af8fe"><code>ci:
fix `stale.yml` (tailwindlabs#20010)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/0bb777a82b533df595cd520d9c89d291efa14a33"><code>feat:
multithread linting (tailwindlabs#19794)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/bf2622991f5b892610a8c3343ff16519e5fd7a79"><code>docs:
Fix typo in core-concepts/index.md (tailwindlabs#20009)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/43a5f9e36f1aade16f81fc49ef4b333660faadab"><code>feat:
add eslint-plugin-regexp to eslint-config-eslint base config
(tailwindlabs#19951)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/e2dc67d8b028147de4da35c64efe1d74c9f6a883"><code>ci:
centralize `stale.yml` (tailwindlabs#19994)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/7093cb8f590ec2a1b5364d7b5687e9b5f4e06f8a"><code>ci:
bump actions/checkout from 4 to 5 (tailwindlabs#20005)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/2309327554acbf011f0d17e7b36fdd68e43adf3a"><code>docs:
fix typo in the &quot;Configuring Rules&quot; section
(tailwindlabs#20001)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/2b87e21321422c120c2248dae25cac7f9eec0f29"><code>docs:
[no-else-return] clarify sample code. (tailwindlabs#19991)</code></a></li>
<li><a
href="https://github.com/eslint/eslint/commit/c36570c6657c2a92dbb4f09a8166a4d9909a091a"><code>docs:
Update README</code></a></li>
</ul>
</details>












---
![Depfu
Status](https://depfu.com/badges/edd6acd35d74c8d41cbb540c30442adf/stats.svg)

[Depfu](https://depfu.com) will automatically keep this PR
conflict-free, as long as you don't add any commits to this branch
yourself. You can also trigger a rebase manually by commenting with
`@depfu rebase`.

<details><summary>All Depfu comment commands</summary>
<blockquote><dl>
<dt>@​depfu rebase</dt><dd>Rebases against your default branch and
redoes this update</dd>
<dt>@​depfu recreate</dt><dd>Recreates this PR, overwriting any edits
that you've made to it</dd>
<dt>@​depfu merge</dt><dd>Merges this PR once your tests are passing and
conflicts are resolved</dd>
<dt>@​depfu cancel merge</dt><dd>Cancels automatic merging of this
PR</dd>
<dt>@​depfu close</dt><dd>Closes this PR and deletes the branch</dd>
<dt>@​depfu reopen</dt><dd>Restores the branch and reopens this PR (if
it's closed)</dd>
<dt>@​depfu pause</dt><dd>Ignores all future updates for this dependency
and closes this PR</dd>
<dt>@​depfu pause [minor|major]</dt><dd>Ignores all future minor/major
updates for this dependency and closes this PR</dd>
<dt>@​depfu resume</dt><dd>Future versions of this dependency will
create PRs again (leaves this PR as is)</dd>
</dl></blockquote>
</details>

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom Drop Shadows with calc(...) widths break when combined with a drop-shadow-[color] utility.

2 participants