5899 Commits

Author SHA1 Message Date
depfu[bot]
d2fbdf505f
Update @types/bun 1.1.14 → 1.1.16 (patch) (#15618) 2025-01-14 11:25:18 +01:00
Robin Malfait
3b033957c5
Ensure namespace reset with escaped * works (#15603)
This PR fixes an issue if you want to reset a namespace like:

```css
@theme {
  --color-*: initial;
}
```

That some formatters such as Biome won't allow this syntax. To solve
that, this PR allows you to use an escaped `*` character.

```css
@theme {
  --color-\*: initial;
}
```

Fixes: #15602
2025-01-13 10:43:22 +00:00
depfu[bot]
ae8fb146a7
Update fast-glob 3.3.2 → 3.3.3 (patch) (#15607) 2025-01-13 11:11:35 +01:00
depfu[bot]
fcee63d997
Update @types/braces 3.0.4 → 3.0.5 (patch) (#15612) 2025-01-13 10:53:47 +01:00
Robin Malfait
b4a20af4d0
Improve upgrade tool to pretty print --spacing(2) (#15596)
This PR improves the upgrade tool to make sure that newly upgraded
`--spacing(2)` CSS functions is pretty printed to prevent unambiguous
looking classes (even though it compiles correctly).

If you have a class such as `m-[calc(100dvh-theme(spacing.2))]`, then we
used to convert it to `m-[calc(100dvh-calc(var(--spacing)*2))]`. But
recently we introduced the `--spacing(2)` CSS function which means that
the output now looks like this instead: `m-[calc(100dvh---spacing(2))]`.

The triple `-` is valid because the first `-` is the minus sign, the
next two `-` characters are from the function.

One solution is to introduce spaces via underscores:

```
m-[calc(100dvh_-_--spacing(2))]
```

But a simpler solution, is to wrap the `--spacing(2)` in parens to
remove the underscores and improve the readability of the `---`
characters.

```
m-[calc(100dvh-(--spacing(2)))]
```
2025-01-10 09:07:23 -05:00
depfu[bot]
27f8bab7ab
Update @types/react 18.3.12 → 19.0.2 (major) (#15588)
Here is everything you need to know about this upgrade. Please take a
good look at what changed and the test results before merging this pull
request.

### What changed?




#### ✳️ @​types/react (18.3.12 → 19.0.2) ·
[Repo](https://github.com/DefinitelyTyped/DefinitelyTyped)





Sorry, we couldn't find anything useful about this release.











---
![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>
2025-01-10 13:14:27 +00:00
depfu[bot]
def9bf3406
Update all of react 18.3.1 → 19.0.0 (major) (#15586)
Here is everything you need to know about this upgrade. Please take a
good look at what changed and the test results before merging this pull
request.

### What changed?




#### ✳️ react (18.3.1 → 19.0.0) ·
[Repo](https://github.com/facebook/react) ·
[Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/facebook/react/releases/tag/v19.0.0">19.0.0</a></h4>

<blockquote><em>More info than we can show here.</em></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/react/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="f1338f8080...7aa5dda3b3">See
the full diff on Github</a>. The new version differs by more commits
than we can show here.</p>
</details>




#### ✳️ react-dom (18.3.1 → 19.0.0) ·
[Repo](https://github.com/facebook/react) ·
[Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/facebook/react/releases/tag/v19.0.0">19.0.0</a></h4>

<blockquote><em>More info than we can show here.</em></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/react-dom/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="f1338f8080...7aa5dda3b3">See
the full diff on Github</a>. The new version differs by more commits
than we can show here.</p>
</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>
2025-01-10 14:10:23 +01:00
depfu[bot]
501c59f7aa
Update @types/react-dom 18.3.1 → 19.0.2 (major) (#15587)
Here is everything you need to know about this upgrade. Please take a
good look at what changed and the test results before merging this pull
request.

### What changed?




#### ✳️ @​types/react-dom (18.3.1 → 19.0.2) ·
[Repo](https://github.com/DefinitelyTyped/DefinitelyTyped)





Sorry, we couldn't find anything useful about this release.











---
![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>
2025-01-10 14:10:04 +01:00
Philipp Spiess
acd2da5247
Upgrade lightningcss to 1.29.1 (#15593)
Upgrading `lightningcss` to fix invalid `list-style: none` conversion.
I've also reverted the change to preflight while at it, since it's no
longer necessary.
2025-01-10 14:09:13 +01:00
Robin Malfait
5df5daa76c
Add missing main field for @tailwindcss/browser (#15594)
This PR adds a `main` and `browser` field for the `@tailwindcss/browser`
package.

In the package, we do have the `exports` field setup, which is an
alternative to the `main` field according to the docs:

> The "exports" provides a modern alternative to "main" …
>
> —
https://docs.npmjs.com/cli/v10/configuring-npm/package-json?v=true#exports

However, if you look at the unpkg link:
https://unpkg.com/@tailwindcss/browser, it tries to load the `index.js`
file. This is probably a bug in the unpkg resolver.

That said, if you look at other CDNs such as esm.sh, it does resolve
correctly: https://esm.sh/@tailwindcss/browser

According to the npm docs:

> If `main` is not set, it defaults to `index.js` in the package's root
folder.
>
> —
https://docs.npmjs.com/cli/v10/configuring-npm/package-json?v=true#main

This explains why unpkg is trying to load the `index.js` file.


Additionally, the npm docs also mention the `browser` field:

> If your module is meant to be used client-side the browser field
should be used instead of the main field. This is helpful to hint users
that it might rely on primitives that aren't available in Node.js
modules. (e.g. window)
>
> —
https://docs.npmjs.com/cli/v10/configuring-npm/package-json?v=true#browser

So this PR also adds that field just to be sure.
2025-01-10 07:39:00 -05:00
depfu[bot]
0ed4d81925
Update tree-sitter 0.22.1 → 0.22.4 (minor) (#15585) 2025-01-10 10:26:48 +01:00
Robin Malfait
aac8c5a12a
Prepare v4.0.0-beta.9 release (#15583)
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
v4.0.0-beta.9
2025-01-09 17:04:34 +00:00
depfu[bot]
2cc4864a79
Update eslint 9.15.0 → 9.17.0 (minor) (#15584)
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.15.0 → 9.17.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.17.0">9.17.0</a></h4>

<blockquote><h2 dir="auto">Features</h2>
<ul dir="auto">
<li>
<a
href="eed91d12d4"><code
class="notranslate">eed91d1</code></a> feat: add suggestions to <code
class="notranslate">no-unused-vars</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/18352">#18352</a>)
(Tanuj Kanti)</li>
</ul>
<h2 dir="auto">Bug Fixes</h2>
<ul dir="auto">
<li>
<a
href="67d683df29"><code
class="notranslate">67d683d</code></a> fix: fix crash when <code
class="notranslate">message.fix</code> is nullish (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19168">#19168</a>)
(ntnyq)</li>
<li>
<a
href="c61870715e"><code
class="notranslate">c618707</code></a> fix: ignore vars with
non-identifier references in no-useless-assignment (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19200">#19200</a>)
(YeonJuan)</li>
</ul>
<h2 dir="auto">Documentation</h2>
<ul dir="auto">
<li>
<a
href="3c22d2acce"><code
class="notranslate">3c22d2a</code></a> docs: update <code
class="notranslate">yoda</code> to <code class="notranslate">Yoda</code>
in <code class="notranslate">yoda.md</code> for consistency (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19230">#19230</a>)
(루밀LuMir)</li>
<li>
<a
href="e0a220355f"><code
class="notranslate">e0a2203</code></a> docs: add missing backticks to
<code class="notranslate">no-sequences</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19233">#19233</a>)
(루밀LuMir)</li>
<li>
<a
href="4cc48812cd"><code
class="notranslate">4cc4881</code></a> docs: Update README (GitHub
Actions Bot)</li>
<li>
<a
href="3db6fdf885"><code
class="notranslate">3db6fdf</code></a> docs: [no-await-in-loop] expand
on benefits and inapplicability (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19211">#19211</a>)
(Kirk Waiblinger)</li>
<li>
<a
href="bf2a4f686b"><code
class="notranslate">bf2a4f6</code></a> docs: add missing backticks to
<code class="notranslate">func-style</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19227">#19227</a>)
(루밀LuMir)</li>
<li>
<a
href="ba098bd03c"><code
class="notranslate">ba098bd</code></a> docs: add missing header to <code
class="notranslate">prefer-spread</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19224">#19224</a>)
(루밀LuMir)</li>
<li>
<a
href="b607ae6491"><code
class="notranslate">b607ae6</code></a> docs: update description of <code
class="notranslate">no-param-reassign</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19220">#19220</a>)
(루밀LuMir)</li>
<li>
<a
href="1eb424de55"><code
class="notranslate">1eb424d</code></a> docs: add missing backticks to
<code class="notranslate">prefer-destructuring</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19223">#19223</a>)
(루밀LuMir)</li>
<li>
<a
href="85998d1405"><code
class="notranslate">85998d1</code></a> docs: add missing backticks to
<code class="notranslate">no-unneeded-ternary</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19222">#19222</a>)
(루밀LuMir)</li>
<li>
<a
href="b75b32c091"><code
class="notranslate">b75b32c</code></a> docs: add missing backticks to
<code class="notranslate">no-new-func</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19219">#19219</a>)
(루밀LuMir)</li>
<li>
<a
href="a7700bcc9c"><code
class="notranslate">a7700bc</code></a> docs: add missing backticks to
<code class="notranslate">id-length</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19217">#19217</a>)
(루밀LuMir)</li>
<li>
<a
href="e2bb429974"><code
class="notranslate">e2bb429</code></a> docs: add missing backticks to
<code class="notranslate">complexity.md</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19214">#19214</a>)
(루밀LuMir)</li>
<li>
<a
href="045d716b92"><code
class="notranslate">045d716</code></a> docs: add missing <code
class="notranslate">)</code> to <code
class="notranslate">id-denylist</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19213">#19213</a>)
(루밀LuMir)</li>
<li>
<a
href="7fe4114be2"><code
class="notranslate">7fe4114</code></a> docs: Update README (GitHub
Actions Bot)</li>
<li>
<a
href="c743ba6402"><code
class="notranslate">c743ba6</code></a> docs: add CSS language to <code
class="notranslate">no-restricted-syntax</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19208">#19208</a>)
(Milos Djermanovic)</li>
<li>
<a
href="1416d70d43"><code
class="notranslate">1416d70</code></a> docs: add missing backticks to
<code class="notranslate">eqeqeq</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19207">#19207</a>)
(루밀LuMir)</li>
<li>
<a
href="b950c1b7db"><code
class="notranslate">b950c1b</code></a> docs: add missing backticks to
<code class="notranslate">prefer-object-spread</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19206">#19206</a>)
(루밀LuMir)</li>
<li>
<a
href="8a941cb776"><code
class="notranslate">8a941cb</code></a> docs: update docs and <code
class="notranslate">description</code> of <code
class="notranslate">require-unicode-regexp</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19205">#19205</a>)
(루밀LuMir)</li>
<li>
<a
href="cbab2281dd"><code
class="notranslate">cbab228</code></a> docs: Update README (GitHub
Actions Bot)</li>
<li>
<a
href="f2257ce412"><code
class="notranslate">f2257ce</code></a> docs: update comments and <code
class="notranslate">description</code> of <code
class="notranslate">no-script-url</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19203">#19203</a>)
(루밀LuMir)</li>
<li>
<a
href="365f0f4df7"><code
class="notranslate">365f0f4</code></a> docs: add missing backtick to
<code class="notranslate">default-case-last</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19202">#19202</a>)
(루밀LuMir)</li>
<li>
<a
href="e6b84f535e"><code
class="notranslate">e6b84f5</code></a> docs: add missing punctuation in
document (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19161">#19161</a>)
(루밀LuMir)</li>
<li>
<a
href="c88708e057"><code
class="notranslate">c88708e</code></a> docs: replace quote with backtick
in <code class="notranslate">description</code> of <code
class="notranslate">for-direction</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19199">#19199</a>)
(루밀LuMir)</li>
<li>
<a
href="a76f233a67"><code
class="notranslate">a76f233</code></a> docs: use higher contrast color
tokens for code comments (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19187">#19187</a>)
(Josh Goldberg )</li>
<li>
<a
href="db19502497"><code
class="notranslate">db19502</code></a> docs: Update README (GitHub
Actions Bot)</li>
</ul>
<h2 dir="auto">Chores</h2>
<ul dir="auto">
<li>
<a
href="cc243c9482"><code
class="notranslate">cc243c9</code></a> chore: upgrade to <code
class="notranslate">@eslint/js@9.17.0</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19242">#19242</a>)
(Francesco Trotta)</li>
<li>
<a
href="84c5787780"><code
class="notranslate">84c5787</code></a> chore: package.json update for
@eslint/js release (Jenkins)</li>
<li>
<a
href="4c4f53b8c9"><code
class="notranslate">4c4f53b</code></a> chore: add missing backticks to
<code class="notranslate">flags.js</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19226">#19226</a>)
(루밀LuMir)</li>
<li>
<a
href="4b3132c3f5"><code
class="notranslate">4b3132c</code></a> chore: update dependency
eslint-plugin-expect-type to ^0.6.0 (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19221">#19221</a>)
(renovate[bot])</li>
<li>
<a
href="9bf220464a"><code
class="notranslate">9bf2204</code></a> chore: add type definitions for
the <code class="notranslate">eslint-config-eslint</code> package (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19050">#19050</a>)
(Arya Emami)</li>
<li>
<a
href="ee8c2200a1"><code
class="notranslate">ee8c220</code></a> chore: fix incorrect <code
class="notranslate">name</code> property in <code
class="notranslate">integration-tutorial-code</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19218">#19218</a>)
(루밀LuMir)</li>
<li>
<a
href="cca801dd17"><code
class="notranslate">cca801d</code></a> chore: Upgrade cross-spawn to
7.0.6 (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19185">#19185</a>)
(folortin)</li>
</ul></blockquote>
<h4><a
href="https://github.com/eslint/eslint/releases/tag/v9.16.0">9.16.0</a></h4>

<blockquote><h2 dir="auto">Features</h2>
<ul dir="auto">
<li>
<a
href="8f70eb142c"><code
class="notranslate">8f70eb1</code></a> feat: Add <code
class="notranslate">ignoreComputedKeys</code> option in <code
class="notranslate">sort-keys</code> rule (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19162">#19162</a>)
(Milos Djermanovic)</li>
</ul>
<h2 dir="auto">Documentation</h2>
<ul dir="auto">
<li>
<a
href="9eefc8f813"><code
class="notranslate">9eefc8f</code></a> docs: fix typos in <code
class="notranslate">use-isnan</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19190">#19190</a>)
(루밀LuMir)</li>
<li>
<a
href="0c8cea8c80"><code
class="notranslate">0c8cea8</code></a> docs: switch the order of words
in <code class="notranslate">no-unreachable</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19189">#19189</a>)
(루밀LuMir)</li>
<li>
<a
href="0c19417c64"><code
class="notranslate">0c19417</code></a> docs: add missing backtick to
<code class="notranslate">no-async-promise-executor</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19188">#19188</a>)
(루밀LuMir)</li>
<li>
<a
href="8df927646c"><code
class="notranslate">8df9276</code></a> docs: add backtick in <code
class="notranslate">-0</code> in <code
class="notranslate">description</code> of <code
class="notranslate">no-compare-neg-zero</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19186">#19186</a>)
(루밀LuMir)</li>
<li>
<a
href="7e16e3fb85"><code
class="notranslate">7e16e3f</code></a> docs: fix <code
class="notranslate">caseSensitive</code> option's title of <code
class="notranslate">sort-keys</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19183">#19183</a>)
(Tanuj Kanti)</li>
<li>
<a
href="0c6b842121"><code
class="notranslate">0c6b842</code></a> docs: fix typos in <code
class="notranslate">migration-guide.md</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19180">#19180</a>)
(루밀LuMir)</li>
<li>
<a
href="353266edf8"><code
class="notranslate">353266e</code></a> docs: fix a typo in <code
class="notranslate">debug.md</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19179">#19179</a>)
(루밀LuMir)</li>
<li>
<a
href="5ff318a528"><code
class="notranslate">5ff318a</code></a> docs: delete unnecessary
horizontal rule(<code class="notranslate">---</code>) in <code
class="notranslate">nodejs-api</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19175">#19175</a>)
(루밀LuMir)</li>
<li>
<a
href="576bcc5461"><code
class="notranslate">576bcc5</code></a> docs: mark more rules as handled
by TypeScript (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19164">#19164</a>)
(Tanuj Kanti)</li>
<li>
<a
href="742d054ac1"><code
class="notranslate">742d054</code></a> docs: note that <code
class="notranslate">no-restricted-syntax</code> can be used with any
language (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19148">#19148</a>)
(Milos Djermanovic)</li>
</ul>
<h2 dir="auto">Chores</h2>
<ul dir="auto">
<li>
<a
href="feb703b3dc"><code
class="notranslate">feb703b</code></a> chore: upgrade to <code
class="notranslate">@eslint/js@9.16.0</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19195">#19195</a>)
(Francesco Trotta)</li>
<li>
<a
href="df9bf9519a"><code
class="notranslate">df9bf95</code></a> chore: package.json update for
@eslint/js release (Jenkins)</li>
<li>
<a
href="f831893b6e"><code
class="notranslate">f831893</code></a> chore: add type for <code
class="notranslate">ignoreComputedKeys</code> option of <code
class="notranslate">sort-keys</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19184">#19184</a>)
(Tanuj Kanti)</li>
<li>
<a
href="3afb8a1dcf"><code
class="notranslate">3afb8a1</code></a> chore: update dependency
@eslint/json to ^0.8.0 (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19177">#19177</a>)
(Milos Djermanovic)</li>
<li>
<a
href="1f77c53b12"><code
class="notranslate">1f77c53</code></a> chore: add <code
class="notranslate">repository.directory</code> property to <code
class="notranslate">package.json</code> (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19165">#19165</a>)
(루밀LuMir)</li>
<li>
<a
href="d46059410a"><code
class="notranslate">d460594</code></a> chore: update dependency
@arethetypeswrong/cli to ^0.17.0 (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19147">#19147</a>)
(renovate[bot])</li>
<li>
<a
href="45cd4ead9c"><code
class="notranslate">45cd4ea</code></a> refactor: update default options
in rules (<a
href="https://bounce.depfu.com/github.com/eslint/eslint/pull/19136">#19136</a>)
(Milos Djermanovic)</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="6f37b0747a...90c1db9a96">See
the full diff on Github</a>. The new version differs by 57 commits:</p>
<ul>
<li><a
href="90c1db9a96"><code>9.17.0</code></a></li>
<li><a
href="755512d831"><code>Build:
changelog update for 9.17.0</code></a></li>
<li><a
href="cc243c9482"><code>chore:
upgrade to `@eslint/js@9.17.0` (#19242)</code></a></li>
<li><a
href="84c5787780"><code>chore:
package.json update for @eslint/js release</code></a></li>
<li><a
href="eed91d12d4"><code>feat:
add suggestions to `no-unused-vars` (#18352)</code></a></li>
<li><a
href="4c4f53b8c9"><code>chore:
add missing backticks to `flags.js` (#19226)</code></a></li>
<li><a
href="3c22d2acce"><code>docs:
update `yoda` to `Yoda` in `yoda.md` for consistency
(#19230)</code></a></li>
<li><a
href="e0a220355f"><code>docs:
add missing backticks to `no-sequences` (#19233)</code></a></li>
<li><a
href="4cc48812cd"><code>docs:
Update README</code></a></li>
<li><a
href="3db6fdf885"><code>docs:
[no-await-in-loop] expand on benefits and inapplicability
(#19211)</code></a></li>
<li><a
href="67d683df29"><code>fix:
fix crash when `message.fix` is nullish (#19168)</code></a></li>
<li><a
href="bf2a4f686b"><code>docs:
add missing backticks to `func-style` (#19227)</code></a></li>
<li><a
href="4b3132c3f5"><code>chore:
update dependency eslint-plugin-expect-type to ^0.6.0
(#19221)</code></a></li>
<li><a
href="9bf220464a"><code>chore:
add type definitions for the `eslint-config-eslint` package
(#19050)</code></a></li>
<li><a
href="ba098bd03c"><code>docs:
add missing header to `prefer-spread` (#19224)</code></a></li>
<li><a
href="b607ae6491"><code>docs:
update description of `no-param-reassign` (#19220)</code></a></li>
<li><a
href="1eb424de55"><code>docs:
add missing backticks to `prefer-destructuring` (#19223)</code></a></li>
<li><a
href="85998d1405"><code>docs:
add missing backticks to `no-unneeded-ternary` (#19222)</code></a></li>
<li><a
href="ee8c2200a1"><code>chore:
fix incorrect `name` property in `integration-tutorial-code`
(#19218)</code></a></li>
<li><a
href="b75b32c091"><code>docs:
add missing backticks to `no-new-func` (#19219)</code></a></li>
<li><a
href="a7700bcc9c"><code>docs:
add missing backticks to `id-length` (#19217)</code></a></li>
<li><a
href="c61870715e"><code>fix:
ignore vars with non-identifier references in no-useless-assignment
(#19200)</code></a></li>
<li><a
href="e2bb429974"><code>docs:
add missing backticks to `complexity.md` (#19214)</code></a></li>
<li><a
href="045d716b92"><code>docs:
add missing `)` to `id-denylist` (#19213)</code></a></li>
<li><a
href="7fe4114be2"><code>docs:
Update README</code></a></li>
<li><a
href="c743ba6402"><code>docs:
add CSS language to `no-restricted-syntax` (#19208)</code></a></li>
<li><a
href="cca801dd17"><code>chore:
Upgrade cross-spawn to 7.0.6 (#19185)</code></a></li>
<li><a
href="1416d70d43"><code>docs:
add missing backticks to `eqeqeq` (#19207)</code></a></li>
<li><a
href="b950c1b7db"><code>docs:
add missing backticks to `prefer-object-spread` (#19206)</code></a></li>
<li><a
href="8a941cb776"><code>docs:
update docs and `description` of `require-unicode-regexp`
(#19205)</code></a></li>
<li><a
href="cbab2281dd"><code>docs:
Update README</code></a></li>
<li><a
href="f2257ce412"><code>docs:
update comments and `description` of `no-script-url`
(#19203)</code></a></li>
<li><a
href="365f0f4df7"><code>docs:
add missing backtick to `default-case-last` (#19202)</code></a></li>
<li><a
href="e6b84f535e"><code>docs:
add missing punctuation in document (#19161)</code></a></li>
<li><a
href="c88708e057"><code>docs:
replace quote with backtick in `description` of `for-direction`
(#19199)</code></a></li>
<li><a
href="a76f233a67"><code>docs:
use higher contrast color tokens for code comments
(#19187)</code></a></li>
<li><a
href="db19502497"><code>docs:
Update README</code></a></li>
<li><a
href="cbf7db0ddf"><code>9.16.0</code></a></li>
<li><a
href="715ba8b5cb"><code>Build:
changelog update for 9.16.0</code></a></li>
<li><a
href="feb703b3dc"><code>chore:
upgrade to `@eslint/js@9.16.0` (#19195)</code></a></li>
<li><a
href="df9bf9519a"><code>chore:
package.json update for @eslint/js release</code></a></li>
<li><a
href="9eefc8f813"><code>docs:
fix typos in `use-isnan` (#19190)</code></a></li>
<li><a
href="0c8cea8c80"><code>docs:
switch the order of words in `no-unreachable` (#19189)</code></a></li>
<li><a
href="0c19417c64"><code>docs:
add missing backtick to `no-async-promise-executor`
(#19188)</code></a></li>
<li><a
href="8df927646c"><code>docs:
add backtick in `-0` in `description` of `no-compare-neg-zero`
(#19186)</code></a></li>
<li><a
href="7e16e3fb85"><code>docs:
fix `caseSensitive` option&#39;s title of `sort-keys`
(#19183)</code></a></li>
<li><a
href="f831893b6e"><code>chore:
add type for `ignoreComputedKeys` option of `sort-keys`
(#19184)</code></a></li>
<li><a
href="8f70eb142c"><code>feat:
Add `ignoreComputedKeys` option in `sort-keys` rule
(#19162)</code></a></li>
<li><a
href="0c6b842121"><code>docs:
fix typos in `migration-guide.md` (#19180)</code></a></li>
<li><a
href="353266edf8"><code>docs:
fix a typo in `debug.md` (#19179)</code></a></li>
<li><a
href="3afb8a1dcf"><code>chore:
update dependency @eslint/json to ^0.8.0 (#19177)</code></a></li>
<li><a
href="5ff318a528"><code>docs:
delete unnecessary horizontal rule(`---`) in `nodejs-api`
(#19175)</code></a></li>
<li><a
href="576bcc5461"><code>docs:
mark more rules as handled by TypeScript (#19164)</code></a></li>
<li><a
href="1f77c53b12"><code>chore:
add `repository.directory` property to `package.json`
(#19165)</code></a></li>
<li><a
href="d46059410a"><code>chore:
update dependency @arethetypeswrong/cli to ^0.17.0
(#19147)</code></a></li>
<li><a
href="45cd4ead9c"><code>refactor:
update default options in rules (#19136)</code></a></li>
<li><a
href="742d054ac1"><code>docs:
note that `no-restricted-syntax` can be used with any language
(#19148)</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>
2025-01-09 16:50:02 +00:00
depfu[bot]
acdb406f4f
Update prettier 3.3.3 → 3.4.2 (minor) (#15564)
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?




#### ✳️ prettier (3.3.3 → 3.4.2) ·
[Repo](https://github.com/prettier/prettier) ·
[Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/prettier/prettier/releases/tag/3.4.2">3.4.2</a></h4>

<blockquote><p dir="auto">🔗 <a
href="https://bounce.depfu.com/github.com/prettier/prettier/blob/main/CHANGELOG.md#342">Changelog</a></p></blockquote>
<h4><a
href="https://github.com/prettier/prettier/releases/tag/3.4.1">3.4.1</a></h4>

<blockquote><p dir="auto">🔗 <a
href="https://bounce.depfu.com/github.com/prettier/prettier/blob/main/CHANGELOG.md#341">Changelog</a></p></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/prettier/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="52829385bc...cca946176c">See
the full diff on Github</a>. The new version differs by more commits
than we can show here.</p>
</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>
2025-01-09 17:27:12 +01:00
depfu[bot]
fd84f9d639
Update enhanced-resolve 5.17.1 → 5.18.0 (minor) (#15582)
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?




#### ✳️ enhanced-resolve (5.17.1 → 5.18.0) ·
[Repo](https://github.com/webpack/enhanced-resolve)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/webpack/enhanced-resolve/releases/tag/v5.18.0">5.18.0</a></h4>

<blockquote><h3 dir="auto">Features</h3>
<ul dir="auto">
<li>Added wildcards support for aliases</li>
</ul></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/enhanced-resolve/feedback">Please
let us know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="247edebc90...27e457a905">See
the full diff on Github</a>. The new version differs by 9 commits:</p>
<ul>
<li><a
href="27e457a905"><code>chore(release):
5.18.0</code></a></li>
<li><a
href="88ceebe3cc"><code>feat:
add wildcards support for aliases</code></a></li>
<li><a
href="35b67ce834"><code>feat:
add wildcards</code></a></li>
<li><a
href="4fbcfa1c83"><code>chore(deps):
bump cross-spawn from 7.0.3 to 7.0.6</code></a></li>
<li><a
href="572a54f0c6"><code>chore(deps):
bump cross-spawn from 7.0.3 to 7.0.6</code></a></li>
<li><a
href="af4e2fb155"><code>ci:
add Node.js v23</code></a></li>
<li><a
href="bf443c04ac"><code>ci:
add Node.js v23</code></a></li>
<li><a
href="72999caf00"><code>chore(deps):
bump micromatch from 4.0.5 to 4.0.8</code></a></li>
<li><a
href="fbee162cc2"><code>chore(deps):
bump micromatch from 4.0.5 to 4.0.8</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>
2025-01-09 17:26:48 +01:00
Robin Malfait
fa2c83eb1e
Improve --theme() CSS function to only accept modern syntax (#15580)
This PR makes sure that the `--theme(…)` CSS function can only be used
with the modern syntax. For backwards compatibility, the `theme(…)`
function must be used with the older dot notation.
2025-01-09 16:25:25 +00:00
Robin Malfait
82589eb2c1
Migrate theme(…) to --theme(…), migrate calc(var(--spacing)*x) to --spacing(x) (#15579)
This PR improves the codemod tool to simplify 2 things:

1. Whenever you have a `theme(…)` call, we try to change it to a
`var(…)`, but if that doesn't work for some reason, we will make sure to
at least convert it to the more modern `--theme(…)`.
2. When converting `theme(spacing.2)`, we used to convert it to
`calc(var(--spacing)*2)`, but now we will convert it to `--spacing(2)`
instead.
2025-01-09 17:17:07 +01:00
Philipp Spiess
c766d7e274
Vite: Process <style> blocks inside Svelte files as a post-processor (#15436)
This PR changes the Svelte integration to be a post-processor similar to
what we're doing for `<style>` blocks in Astro and Vue files.

More details can be found in the GitHub discussion:
https://github.com/sveltejs/svelte/discussions/14668#discussioncomment-11620743
2025-01-09 17:16:33 +01:00
Philipp Spiess
a11c80d6c6
Upgrade lightningcss to 1.29.0 (#15576)
Closes #15438
Closes #15560
Closes #15561
Closes #15562

This PR upgrades `lightningcss` to `1.29.0` and uses the [new feature
flag](304389600f)
to disable the light-dark function transpilation.
2025-01-09 17:14:48 +01:00
Philipp Spiess
d7c8448eec
Remove all @keyframes in reference import mode (#15581)
This PR fixes an issue where JavaScript plugins were still able to
contribute `@keyframes` when loaded inside an `@reference` import. This
was possible because we only gated the `addBase` API and not the
`addUtilities` one which also has a special branch to handle `@keyframe`
rules.

To make this work, we have to create a new instance of the plugin API
that has awareness of wether the plugin accessing it is inside reference
import mode.

## Test plan

Added a unit test that reproduces the issue observed via #15544
2025-01-09 17:14:07 +01:00
Jordan Pittman
a3aec17908
Add musl binaries to the Standalone CLI (#15567)
Closes #15031

This adds musl binaries for the Standalone CLI on Linux aarch64 (ARM
64-bit) and x86_64 (Intel/AMD 64-bit).
2025-01-09 09:24:33 -05:00
Robin Malfait
76151d4293
Allow negative utility names in @utilty (#15573)
This PR fixes an issue where static utilities defined via `@utility`
wasn't possible if the name starts with `-`.

There are plenty of static utilities that start with `-`, but it wasn't
possible to register them via the `@utility` directive, only via the JS
API.

Example of a core utility that is now valid:
```css
@utility -inset-full {
  inset: -100%;
}
```
2025-01-08 21:44:02 +01:00
Robin Malfait
8d03db8178
Implement --spacing(…), --alpha(…) and --theme(…) CSS functions (#15572)
This PR implements new CSS functions that you can use in your CSS (or
even in arbitrary value position).

For starters, we renamed the `theme(…)` function to `--theme(…)`. The
legacy `theme(…)` function is still available for backwards
compatibility reasons, but this allows us to be future proof since
`--foo(…)` is the syntax the CSS spec recommends. See:
https://drafts.csswg.org/css-mixins/

In addition, this PR implements a new `--spacing(…)` function, this
allows you to write:

```css
@import "tailwindcss";

@theme {
  --spacing: 0.25rem;
}

.foo {
  margin: --spacing(4):
}
```

This is syntax sugar over:
```css
@import "tailwindcss";

@theme {
  --spacing: 0.25rem;
}

.foo {
  margin: calc(var(--spacing) * 4);
}
```

If your `@theme` uses the `inline` keyword, we will also make sure to
inline the value:

```css
@import "tailwindcss";

@theme inline {
  --spacing: 0.25rem;
}

.foo {
  margin: --spacing(4):
}
```

Boils down to:
```css
@import "tailwindcss";

@theme {
  --spacing: 0.25rem;
}

.foo {
  margin: calc(0.25rem * 4); /* And will be optimised to just 1rem */
}
```

---

Another new function function we added is the `--alpha(…)` function that
requires a value, and a number / percentage value. This allows you to
apply an alpha value to any color, but with a much shorter syntax:

```css
@import "tailwindcss";

.foo {
  color: --alpha(var(--color-red-500), 0.5);
}
```

This is syntax sugar over:
```css
@import "tailwindcss";

.foo {
  color: color-mix(in oklab, var(--color-red-500) 50%, transparent);
}
```

---------

Co-authored-by: Philipp Spiess <hello@philippspiess.com>
Co-authored-by: Jordan Pittman <jordan@cryptica.me>
Co-authored-by: Jonathan Reinink <jonathan@reinink.ca>
2025-01-08 20:16:08 +00:00
Robin Malfait
ee3add9d08
Add functional utility syntax (#15455)
This PR adds support for functional utilities constructed via CSS.

# Registering functional utilities in CSS

To register a functional utility in CSS, use the `@utility potato-*`
syntax, where the `-*` signals that this is a functional utility:

```css
@utility tab-* {
  tab-size: --value(--tab-size-*);
}
```

## Resolving values

The special `--value(…)` function is used to resolve the utility value.

### Resolving against `@theme` values

To resolve the value against a set of theme keys, use
`--value(--theme-key-*)`:

```css
@theme {
  --tab-size-1: 1;
  --tab-size-2: 2;
  --tab-size-4: 4;
  --tab-size-github: 8;
}

@utility tab-* {
  /* tab-1, tab-2, tab-4, tab-github */
  tab-size: --value(--tab-size-*);
}
```

### Bare values

To resolve the value as a bare value, use `--value({type})`, where
`{type}` is the data type you want to validate the bare value as:

```css
@utility tab-* {
  /* tab-1, tab-76, tab-971 */
  tab-size: --value(integer);
}
```

### Arbitrary values

To support arbitrary values, use `--value([{type}])` (notice the square
brackets) to tell Tailwind which types are supported as an arbitrary
value:

```css
@utility tab-* {
  /* tab-[1], tab-[76], tab-[971] */
  tab-size: --value([integer]);
}
```

### Supporting theme values, bare values, and arbitrary values together

All three forms of the `--value(…)` function can be used within a rule
as multiple declarations, and any declarations that fail to resolve will
be omitted in the output:

```css
@theme {
  --tab-size-github: 8;
}

@utility tab-* {
  tab-size: --value([integer]);
  tab-size: --value(integer);
  tab-size: --value(--tab-size-*);
}
```

This makes it possible to treat the value differently in each case if
necessary, for example translating a bare integer to a percentage:

```css
@utility opacity-* {
  opacity: --value([percentage]);
  opacity: calc(--value(integer) * 1%);
  opacity: --value(--opacity-*);
}
```

The `--value(…)` function can also take multiple arguments and resolve
them left to right if you don't need to treat the return value
differently in different cases:

```css
@theme {
  --tab-size-github: 8;
}

@utility tab-* {
  tab-size: --value(--tab-size-*, integer, [integer]);
}

@utility opacity-* {
  opacity: calc(--value(integer) * 1%);
  opacity: --value(--opacity-*, [percentage]);
}
```

### Negative values

To support negative values, register separate positive and negative
utilities into separate declarations:

```css
@utility inset-* {
  inset: calc(--var(--spacing) * --value([percentage], [length]));
}

@utility -inset-* {
  inset: calc(--var(--spacing) * --value([percentage], [length]) * -1);
}
```

## Modifiers

Modifiers are handled using the `--modifier(…)` function which works
exactly like the `--value(…)` function but operates on a modifier if
present:

```css
@utility text-* {
  font-size: --value(--font-size-*, [length]);
  line-height: --modifier(--line-height-*, [length], [*]);
}
```

If a modifier isn't present, any declaration depending on a modifier is
just not included in the output.

## Fractions

To handle fractions, we rely on the CSS `ratio` data type. If this is
used with `--value(…)`, it's a signal to Tailwind to treat the value +
modifier as a single value:

```css
/* The CSS `ratio` type is our signal to treat the value + modifier as a fraction */
@utility aspect-* {
  /* aspect-square, aspect-3/4, aspect-[7/9] */
  aspect-ratio: --value(--aspect-ratio-*, ratio, [ratio]);
}
```
2025-01-08 16:04:28 +01:00
Philipp Spiess
d6c4e72351
Add @reference "…" (#15565)
This PR adds a new `@reference "…"` API as an replacement for the
previously added [`@import "…"
reference`](https://github.com/tailwindlabs/tailwindcss/pull/15228). The
motivation for a distinct at rule is that `@import` is already handled
outside of Tailwind in some scenarios (e.g. when using in combination
with postcss-import, other pre-processors, or frameworks like Svelte).
While our implementation of hijacking the `media` attribute _works in
this cases_, it can cause annoying linter issues because tooling build
around `@import` does not know about our behavior.

To fix this, we've decided to move this mode into a separate at rule
that is passed-through in the other tooling. Here's an example of how
this would look like in Svelte:

```svelte
<h1>Hello world!</h1>

<style>
  @reference './theme.css';
  h1 {
    color: var(--theme-color);
  }
</style>
```

With this change, the Svelte linter would not be detecting unused CSS
from the `theme.css` file as it would if we'd rely on `@import`.
2025-01-07 15:41:43 +00:00
Robin Malfait
02cfc45057
Ensure @utility is processed before using them (#15542)
This PR fixes an issue where using an `@utility` before it is defined,
and _if_ that `@utility` contains `@apply`, that it won't result in the
expected output. But results in an `@apply` rule that is not
substituted. Additionally, if you have multiple levels of `@apply`, we
have to make sure that everything is applied (no pun intended) in the
right order.

Right now, the following steps are taken:

1. Collect all the `@utility` at-rules (and register them in the system
as utilities).
2. Substitute `@apply` on the AST (including `@utility`'s ASTs) with the
content of the utility.
3. Delete the `@utility` at-rules such that they are removed from the
CSS output itself.

The reason we do it in this order is because handling `@apply` during
`@utility`
handling means that we could rely on another `@utility` that is defined
later
and therefore the order of the utilities starts to matter. This is not a
bad
thing, but the moment you import multiple CSS files or plugins, this
could
become hard to manage.

Another important step is that when using `@utility foo`, the
implementation creates a `structuredClone` from its AST when first using
the utility. The reason we do that is because `foo` and `foo!` generate
different output and we don't want to accidentally mutate the same AST.
This structured clone is the start of the problem in the linked issue
(#15501).

If we don't do the structured clone, then substituting the `@apply`
rules would work, but then `foo` and `foo!` will generate the same
output, which is bad.

The linked issue has this structure:
```css
.foo {
  @apply bar;
}

@utility bar {
  @apply flex;
}
```

If we follow the steps above, this would substitute `@apply bar` first,
which
results in:

```css
.foo {
  @apply flex;
}
```

But the `bar` utility, was already cloned (and cached) so now we end up
with an `@apply` rule that is not substituted.

To properly solve this problem, we have to make sure that we collect all
the `@apply` at-rules, and apply them in the correct order. To do this,
we run a topological sort on them which ensures that all the
dependencies are applied before substituting the current `@apply`.

This means that in the above example, in order to process `@apply bar`,
we have to process the `bar` utility first.

If we run into a circular dependency, then we will throw an error like
before. You'll notice that the error message in this PR is updated to a
different spot. This one is a bit easier to grasp because it shows the
error where the circular dependency _starts_ not where it _ends_ (and
completes the circle). The previous message was not wrong (since it's a
circle), but now it's a bit easier to reason about.

Fixes: #15501
2025-01-07 15:19:37 +00:00
Jordan Pittman
dcf116bb30
Add @tailwindcss/browser package (#15558)
Co-authored-by: Philipp Spiess <hello@philippspiess.com>
Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
2025-01-07 09:57:34 -05:00
Philipp Spiess
d4f693f7f3
Upgrade: Do not extract class names from functions (#15566)
This PR prevents the migration of utilities detected in function names,
e.g.: the use of `shadow` inside `filter: 'drop-shadow(…)'`.

## Test plan

Have content like this in a project you're migrating using the upgrade
tool:

```js
{
  filter: 'drop-shadow(0 0 0.5rem #000)'
}
```

This was verified by adding unit tests to the specific codemods and
adding an integration test.
2025-01-07 15:31:48 +01:00
depfu[bot]
c84acf8e82
Update turbo 2.2.3 → 2.3.3 (minor) (#15563) 2025-01-07 12:26:00 +01:00
Robin Malfait
af3345189a
Improve walk(…) performance (#15529)
This PR is a tiny improvement to the `walk(…)` implementations, not a
super big
deal but thought about something and was pleasently surprised that it
did have
an impact.

The idea is twofold:

1. Reduce array allocations while walking to build a `path` to the
current node. This re-uses the existing `path` array and pushes the
current node before the recursive call and pops it afterwards. This way
we don't need to allocate a new array for each recursive call. Testing
this on Tailwind UI means ~14k fewer allocations.
2. Instead of always calling `.splice(…)`, we can directly update a
single value in the array if we are replacing a node with another node.
   
Testing on the Tailwind UI codebase, this results in:

![image](https://github.com/user-attachments/assets/5a1c2102-1493-410f-b527-847fb4a75b31)

---------

Co-authored-by: Philipp Spiess <hello@philippspiess.com>
2025-01-06 14:27:55 +00:00
depfu[bot]
8299d0486b
Update bun 1.1.40 → 1.1.42 (patch) (#15551)
Here is everything you need to know about this upgrade. Please take a
good look at what changed and the test results before merging this pull
request.

### What changed?




#### ✳️ bun (1.1.40 → 1.1.42) · [Repo](https://github.com/oven-sh/bun)





Sorry, we couldn't find anything useful about this release.











---
![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>
2025-01-06 12:45:16 +01:00
depfu[bot]
7f35af0619
Update @playwright/test 1.49.0 → 1.49.1 (patch) (#15550)
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?




#### ✳️ @​playwright/test (1.49.0 → 1.49.1) ·
[Repo](https://github.com/Microsoft/playwright)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/microsoft/playwright/releases/tag/v1.49.1">1.49.1</a></h4>

<blockquote><h3 dir="auto">Highlights</h3>
<p dir="auto"><a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33802">#33802</a>
- [Bug]: Codegen's Clear button doesn't work if not recording<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33806">#33806</a>
- [Bug]: playwright hangs while waiting for pending navigations<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33787">#33787</a>
- [Bug]: VSC extension isn't capturing all entered text<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33788">#33788</a>
- [Regression]: Double clicking the steps in trace viewer doesn't filter
actions<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33772">#33772</a>
- [Bug]: aria_snapshot generates invalid yaml when combined with an
aria-label attribut<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33791">#33791</a>
- [Bug]: text input with number value raises "container is not iterable"
with to_match_aria_snapshot<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33644">#33644</a>
- [Bug]: getByRole can't find element with the accessible name from
label element when aria-labelledby is not valid<br>
<a
href="https://bounce.depfu.com/github.com/microsoft/playwright/issues/33660">#33660</a>
- [Regression]: Unable to open Playwright UI in Dark Mode</p>
<h2 dir="auto">Browser Versions</h2>
<ul dir="auto">
<li>Chromium 131.0.6778.33</li>
<li>Mozilla Firefox 132.0</li>
<li>WebKit 18.2</li>
</ul>
<p dir="auto">This version was also tested against the following stable
channels:</p>
<ul dir="auto">
<li>Google Chrome 130</li>
<li>Microsoft Edge 130</li>
</ul></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/@playwright%2Ftest/feedback">Please
let us know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="a70a96ab25...88bc8afc78">See
the full diff on Github</a>. The new version differs by 16 commits:</p>
<ul>
<li><a
href="88bc8afc78"><code>chore:
mark v1.49.1 (#33921)</code></a></li>
<li><a
href="9e855d5b9a"><code>cherry-pick(#33821):
fix(recorder): allow clearing when recording is disabled
(#33900)</code></a></li>
<li><a
href="9365eb5dac"><code>cherry-pick(#33834):
fix: do not stall waiting for pending navigations after beforeunload
dismiss (#33856)</code></a></li>
<li><a
href="f92b2339fe"><code>cherry-pick(#33822):
fix(codegen): do not reset current tool upon clearing
highlight</code></a></li>
<li><a
href="008722b2d9"><code>cherry-pick(#33797):
fix(trace): in `indexTree` check `isVisible` before adding to result
(#33797)</code></a></li>
<li><a
href="1dc8b3cbdc"><code>cherry-pick(#33746):
chore: pin typescript while vue-tsc is broken</code></a></li>
<li><a
href="fbc770c804"><code>cherry-pick(#33793):
fix(aria): escape even more yaml (#33795)</code></a></li>
<li><a
href="1046fe0455"><code>cherry-pick(#33753):
docs: update extensions doc for new headless</code></a></li>
<li><a
href="1781bf35b3"><code>cherry-pick(#33706):
docs: release notes for languages v1.49</code></a></li>
<li><a
href="b52a21030f"><code>cherry-pick(#33712):
docs(python): add
LocatorAssertions.NotToMatchAriaSnapshot</code></a></li>
<li><a
href="2128fac196"><code>cherry-pick(#33693):
docs: add video for 1.49</code></a></li>
<li><a
href="2ba644852b"><code>cherry-pick(#33668):
docs(aria): add demo video</code></a></li>
<li><a
href="4b0eca4d22"><code>cherry-pick(#33680):
docs: add docs for 1.49.0&#39;s new &quot;chromium&quot;
option</code></a></li>
<li><a
href="e3c5986c5b"><code>cherry-pick(#33686):
chore: escape more yaml values</code></a></li>
<li><a
href="b3aaee0248"><code>cherry-pick(#33667):
fix(role): ignore invalid `aria-labelledby` attributes
(#33672)</code></a></li>
<li><a
href="120cdf664b"><code>cherry-pick(#33662):
fix: dark-mode in UI Mode</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>
2025-01-06 11:33:25 +00:00
Robin Malfait
52325a8cf8
Only compile arbitrary values ending in ] (#15503)
This PR ensures that if you are using an arbitrary value such as
`bg-[red` that it only compiles if it's a properly closed arbitrary
value.

Currently what happens is that it assumes the `]` is there, and cuts it
off. This then results in the `bg-[red` to be compiled as:

```css
.bg-\[red {
  background-color: re;
}
```

Note how the `d` in `red` is cut off. That's the assumption that the `]`
is there.

This PR fixes that by ensuring that the arbitrary value is properly
closed.

Fixes: #15484
2025-01-06 12:00:36 +01:00
Robin Malfait
9075db0c10
Apply Clippy suggestions (#15549)
While working on other PRs, I noticed that Clippy had some suggestions
(warnings). This PR fixes those warnings.
2025-01-06 11:59:31 +01:00
depfu[bot]
427efa21b9
Update jiti 2.4.0 → 2.4.2 (patch) (#15491)
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?




#### ✳️ jiti (2.4.0 → 2.4.2) · [Repo](https://github.com/unjs/jiti) ·
[Changelog](https://github.com/unjs/jiti/blob/main/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/unjs/jiti/releases/tag/v2.4.2">2.4.2</a></h4>

<blockquote><p dir="auto"><a
href="https://bounce.depfu.com/github.com/unjs/jiti/compare/v2.4.1...v2.4.2">compare
changes</a> (📦 bundled dependencies updated)</p>
<h3 dir="auto">🩹 Fixes</h3>
<ul dir="auto">
<li>
<strong>cache:</strong> Add <code class="notranslate">+map</code> suffix
to fs entries when <code class="notranslate">sourceMaps</code> enabled
(<a
href="https://bounce.depfu.com/github.com/unjs/jiti/pull/352">#352</a>)</li>
<li>Use native require cache of loaded entries only for Node.js 22.12.+
compatibility (<a
href="https://bounce.depfu.com/github.com/unjs/jiti/pull/348">#348</a>)</li>
</ul></blockquote>
<h4><a
href="https://github.com/unjs/jiti/releases/tag/v2.4.1">2.4.1</a></h4>

<blockquote><p dir="auto"><a
href="https://bounce.depfu.com/github.com/unjs/jiti/compare/v2.4.0...v2.4.1">compare
changes</a></p>
<h3 dir="auto">🩹 Fixes</h3>
<ul dir="auto">
<li>Interop modules with primitive default export (<a
href="https://bounce.depfu.com/github.com/unjs/jiti/pull/343">#343</a>)</li>
</ul></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/jiti/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="2f9c2376e7...340e2a733c">See
the full diff on Github</a>. The new version differs by 9 commits:</p>
<ul>
<li><a
href="340e2a733c"><code>chore(release):
v2.4.2</code></a></li>
<li><a
href="cf952e4573"><code>fix:
use native require cache of loaded entries only (#348)</code></a></li>
<li><a
href="4dacbf1a7c"><code>fix(cache):
add `+map` suffix to fs entries when `sourceMaps` enabled
(#352)</code></a></li>
<li><a
href="0c2c0d0d5c"><code>test:
simplify snapshot tests (#351)</code></a></li>
<li><a
href="7b7ffefdde"><code>chore:
update deps</code></a></li>
<li><a
href="36d52d59c9"><code>chore(deps):
update all non-major dependencies (#344)</code></a></li>
<li><a
href="ad6191f046"><code>chore(release):
v2.4.1</code></a></li>
<li><a
href="cca319bbcd"><code>fix:
interop modules with primitive default export (#343)</code></a></li>
<li><a
href="58d3f5f8b8"><code>chore:
update deps</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>
2025-01-06 11:42:53 +01:00
depfu[bot]
cd15caa846
🚨 [security] Update all of nextjs 15.1.0 → 15.1.3 (patch) (#15535)
<hr>

🚨 <b>Your current dependencies have known security vulnerabilities</b> 🚨

This dependency update fixes known security vulnerabilities. Please see
the details below and assess their impact carefully. We recommend to
merge and deploy this as soon as possible!
<hr>



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-config-next (15.1.0 → 15.1.3)





Sorry, we couldn't find anything useful about this release.



#### ✳️ next (15.1.0 → 15.1.3) ·
[Repo](https://github.com/vercel/next.js)


<details>

<summary>Security Advisories 🚨</summary>
<h4><a
href="https://bounce.depfu.com/github.com/vercel/next.js/security/advisories/GHSA-7m27-7ghc-44w9">🚨
Next.js Allows a Denial of Service (DoS) with Server Actions</a></h4>
<blockquote><h3 dir="auto">Impact</h3>
<p dir="auto">A Denial of Service (DoS) attack allows attackers to
construct requests that leaves requests to Server Actions hanging until
the hosting provider cancels the function execution.</p>
<p dir="auto"><em>Note: Next.js server is idle during that time and only
keeps the connection open. CPU and memory footprint are low during that
time.</em></p>
<p dir="auto">Deployments without any protection against long running
Server Action invocations are especially vulnerable. Hosting providers
like Vercel or Netlify set a default maximum duration on function
execution to reduce the risk of excessive billing.</p>
<p dir="auto">This is the same issue as if the incoming HTTP request has
an invalid <code class="notranslate">Content-Length</code> header or
never closes. If the host has no other mitigations to those then this
vulnerability is novel.</p>
<p dir="auto">This vulnerability affects only Next.js deployments using
Server Actions.</p>
<h3 dir="auto">Patches</h3>
<p dir="auto">This vulnerability was resolved in Next.js 14.2.21,
15.1.2, and 13.5.8. We recommend that users upgrade to a safe
version.</p>
<h3 dir="auto">Workarounds</h3>
<p dir="auto">There are no official workarounds for this
vulnerability.</p>
<h3 dir="auto">Credits</h3>
<p dir="auto">Thanks to the PackDraw team for responsibly disclosing
this vulnerability.</p></blockquote>
</details>

<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/vercel/next.js/releases/tag/v15.1.3">15.1.3</a></h4>

<blockquote><div class="markdown-alert markdown-alert-note" dir="auto">
<p class="markdown-alert-title" dir="auto"><svg class="octicon
octicon-info mr-2" viewbox="0 0 16 16" version="1.1" width="16"
height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0
8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1
7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1
0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0
2Z"></path></svg>Note</p>
<p dir="auto">This release is backporting bug fixes. It does
<strong>not</strong> include all pending features/changes on canary.</p>
</div>
<h3 dir="auto">Core Changes</h3>
<ul dir="auto">
<li>Retry manifest file loading only in dev mode: <a
href="https://bounce.depfu.com/github.com/vercel/next.js/pull/73900">#73900</a>
</li>
<li>Use shared worker for lint &amp; typecheck steps: <a
href="https://bounce.depfu.com/github.com/vercel/next.js/pull/74154">#74154</a>
</li>
</ul>
<h3 dir="auto">Credits</h3>
<p dir="auto">Huge thanks to <a
href="https://bounce.depfu.com/github.com/unstubbable">@unstubbable</a>
and <a href="https://bounce.depfu.com/github.com/ztanner">@ztanner</a>
for helping!</p></blockquote>
<h4><a
href="https://github.com/vercel/next.js/releases/tag/v15.1.2">15.1.2</a></h4>

<blockquote><div class="markdown-alert markdown-alert-note" dir="auto">
<p class="markdown-alert-title" dir="auto"><svg class="octicon
octicon-info mr-2" viewbox="0 0 16 16" version="1.1" width="16"
height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0
8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1
7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1
0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0
2Z"></path></svg>Note</p>
<p dir="auto">This release is backporting bug fixes. It does
<strong>not</strong> include all pending features/changes on canary.</p>
</div>
<h3 dir="auto">Core Changes</h3>
<ul dir="auto">
<li>Update React from 7283a213-20241206 to 65e06cb7-20241218: <a
href="https://bounce.depfu.com/github.com/vercel/next.js/pull/74117">#74117</a>
</li>
</ul>
<h3 dir="auto">Credits</h3>
<p dir="auto">Huge thanks to <a
href="https://bounce.depfu.com/github.com/ztanner">@ztanner</a> for
helping!</p></blockquote>
<h4><a
href="https://github.com/vercel/next.js/releases/tag/v15.1.1">15.1.1</a></h4>

<blockquote><div class="markdown-alert markdown-alert-note" dir="auto">
<p class="markdown-alert-title" dir="auto"><svg class="octicon
octicon-info mr-2" viewbox="0 0 16 16" version="1.1" width="16"
height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0
8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1
7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1
0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0
2Z"></path></svg>Note</p>
<p dir="auto">This release is backporting bug fixes. It does
<strong>not</strong> include all pending features/changes on canary.</p>
</div>
<h3 dir="auto">Core Changes</h3>
<ul dir="auto">
<li>fix(turbo): sassOptions silenceDeprecations was not overwritten with
user options: <a
href="https://bounce.depfu.com/github.com/vercel/next.js/pull/73937">#73937</a>
</li>
<li>refactor collectAppPageSegments: <a
href="https://bounce.depfu.com/github.com/vercel/next.js/pull/73908">#73908</a>
</li>
</ul>
<h3 dir="auto">Credits</h3>
<p dir="auto">Huge thanks to <a
href="https://bounce.depfu.com/github.com/devjiwonchoi">@devjiwonchoi</a>
and <a href="https://bounce.depfu.com/github.com/ztanner">@ztanner</a>
for helping!</p></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/next/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="dafcd43fac...4cbaaa118d">See
the full diff on Github</a>. The new version differs by 11 commits:</p>
<ul>
<li><a
href="4cbaaa118d"><code>v15.1.3</code></a></li>
<li><a
href="221d18ba18"><code>Backport
v15: used shared worker for lint &amp; typecheck steps (#74154)
(#74285)</code></a></li>
<li><a
href="7d880a3b5b"><code>Backport
v15: Retry manifest file loading only in dev mode (#73900)
(#74283)</code></a></li>
<li><a
href="df392a1b97"><code>v15.1.2</code></a></li>
<li><a
href="40c9424beb"><code>Backport
(v15): Update React from 7283a213-20241206 to 65e06cb7-20241218
(#74117)</code></a></li>
<li><a
href="4384c6834a"><code>v15.1.1</code></a></li>
<li><a
href="d137863475"><code>run
build_and_test workflow on backport branch</code></a></li>
<li><a
href="d27bb14b68"><code>backport:
fix(turbo): sassOptions silenceDeprecations was not overwritten with
user options (#74005)</code></a></li>
<li><a
href="0c8187a312"><code>Add
NEXT_PRIVATE_SKIP_CANARY_CHECK env for bench job
(#73763)</code></a></li>
<li><a
href="e83ab18c4c"><code>backport:
refactor collectAppPageSegments (#73996)</code></a></li>
<li><a
href="ada25fc25e"><code>Designate
as backport branch</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>
2025-01-06 10:23:13 +00:00
depfu[bot]
bca432ed99
Update all of nextjs 15.0.3 → 15.1.0 (minor) (#15536)
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-config-next (15.0.3 → 15.1.0)





Sorry, we couldn't find anything useful about this release.



#### ✳️ next (15.0.3 → 15.1.0) ·
[Repo](https://github.com/vercel/next.js)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/vercel/next.js/releases/tag/v15.1.0">15.1.0</a></h4>

<blockquote><em>More info than we can show here.</em></blockquote>
<h4><a
href="https://github.com/vercel/next.js/releases/tag/v15.0.4">15.0.4</a></h4>

<blockquote><em>More info than we can show here.</em></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/next/feedback">Please let us
know.</a></em></p>
</details>

<details>
<summary>Commits</summary>
<p><a
href="7dc7be201a...dafcd43fac">See
the full diff on Github</a>. The new version differs by more commits
than we can show here.</p>
</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>
2025-01-06 11:18:39 +01:00
Kid
608b1399cd
Fix inset-shadow-* suggestions in IntelliSense (#15471) 2024-12-22 09:13:48 -05:00
Robin Malfait
36dfe1f574
Rename bg-round -> bg-repeat-round, bg-space -> bg-repeat-space (#15462)
When we were porting all of the utilities from v3 to v4 we accidentally
used the wrong names for these two classes, so this PR fixes that and
corrects them back to the names used in v3.

| Before | After |
| --- | --- |
| `bg-round` | `bg-repeat-round` |
| `bg-space` | `bg-repeat-space` |

---------

Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
2024-12-20 09:54:40 -05:00
Jordan Pittman
00ccbdc937
Don’t detect arbitrary properties when preceded by an escape (#15456)
This is a targeted bug fix uncovered by the v4 docs.

Given this code:
```html
<!-- [!code word:group-has-\\[a\\]\\:block] -->
```

We'd pick up `[a\\]\\:block]` as a candidate which would then make it
far enough to get output to CSS and throw an error. This makes sure we
don't try to start an arbitrary property if the preceding character is a
`\`

cc @RobinMalfait this look okay?

---------

Co-authored-by: Robin Malfait <malfait.robin@gmail.com>
2024-12-20 15:22:49 +01:00
depfu[bot]
34340e3b82
Update @vitejs/plugin-react 4.3.1 → 4.3.4 (patch) (#15453)
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?




#### ✳️ @​vitejs/plugin-react (4.3.1 → 4.3.4) ·
[Repo](https://github.com/vitejs/vite) ·
[Changelog](https://github.com/vitejs/vite/blob/main/packages/plugin-react/CHANGELOG.md)



<details>
<summary>Release Notes</summary>
<h4><a
href="https://github.com/vitejs/vite/releases/tag/v4.3.4">4.3.4</a></h4>

<blockquote><p dir="auto">Please refer to <a
href="https://bounce.depfu.com/github.com/vitejs/vite/blob/v4.3.4/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p></blockquote>
<h4><a
href="https://github.com/vitejs/vite/releases/tag/v4.3.3">4.3.3</a></h4>

<blockquote><p dir="auto">Please refer to <a
href="https://bounce.depfu.com/github.com/vitejs/vite/blob/v4.3.3/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p></blockquote>
<h4><a
href="https://github.com/vitejs/vite/releases/tag/v4.3.2">4.3.2</a></h4>

<blockquote><p dir="auto">Please refer to <a
href="https://bounce.depfu.com/github.com/vitejs/vite/blob/v4.3.2/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p></blockquote>
<p><em>Does any of this look wrong? <a
href="https://depfu.com/packages/npm/@vitejs%2Fplugin-react/feedback">Please
let us know.</a></em></p>
</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>
2024-12-19 16:38:05 +01:00
depfu[bot]
5f95c5e43a
Update @types/bun 1.1.13 → 1.1.14 (patch) (#15451)
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?




#### ✳️ @​types/bun (1.1.13 → 1.1.14) ·
[Repo](https://github.com/DefinitelyTyped/DefinitelyTyped)





Sorry, we couldn't find anything useful about this release.











---
![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>
2024-12-19 16:19:58 +01:00
depfu[bot]
0544c2a341 Update bun to version 1.1.40 2024-12-19 12:57:27 +00:00
Jordan Pittman
ab49b59556
Fixed definition of place-content-* (#15440)
The utilities `place-content-between`, `place-content-around`, and
`place-content-evenly` are defined incorrectly. This PR fixes them.

---------

Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
2024-12-18 20:17:29 -05:00
Jordan Pittman
7bf11f9087
Move --container-prose to --max-width-prose (#15439)
We don’t want utilities like `basis-prose`, `w-prose`, etc existing nor
a `@prose:*` variant. So we’re moving the theme key to `--max-width-*`
to align with the definition as it was in v3.

cc @adamwathan

---------

Co-authored-by: Adam Wathan <4323180+adamwathan@users.noreply.github.com>
2024-12-18 20:15:37 -05:00
Robin Malfait
c9dfe17cac
Prepare v4.0.0-beta.8 release (#15418) v4.0.0-beta.8 2024-12-17 13:31:28 +01:00
Robin Malfait
352d1b9fcf
Ensure Symbol.dispose and Symbol.asyncDispose are available (#15404)
We recently introduced some better instrumentation
(https://github.com/tailwindlabs/tailwindcss/pull/15303) which uses the
new `using` keyword. I made sure that this was compiled correctly for
environments where `using` is not available yet.

The issue is that this also relies on `Symbol.dispose` being available.
In my testing on our minimal required Node.js version (18) it did work
fine. However, turns out that I was using `18.20.x` locally where
`Symbol.dispose` **_is_** available, but on older version of Node.js 18
(e.g.: `18.17.x`) it is **_not_** available. This now results in some
completely broken builds, e.g.: when running on Cloudflare Pages. See:
#15399

I could reproduce this error in CI, by temporarily downgrading the used
Node.js version to `18.17.0`. See:

<img width="1142" alt="image"
src="https://github.com/user-attachments/assets/5bf30f80-9ca0-40d9-ad02-d1ffb4e0e5dd"
/>

Implementing the proper polyfill, as recommended by the TypeScript docs
( see:
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#:~:text=Symbol.dispose,-??=%20Symbol(%22Symbol.dispose
), the error goes away. (If you look at CI after the polyfill, it still
fails but for different reasons unrelated to this change)

Fixes: #15399

---

## Test plan

1. I reproduced it in CI, and I kept the commits so that you can take a
look where it fails with the `Object not disposable`.
2. Using the provided reproduction from #15399:

### Before

It works on Node.js v18.20.x, but switching to Node.js v18.17.x you can
see it fail:

<img width="1607" alt="image"
src="https://github.com/user-attachments/assets/cb6ab73a-8eb2-4003-bab7-b2390f1c879d"
/>

### After

Using pnpm's overrides, we can apply the fix from this PR and test it in
the reproduction. You'll notice that it now works in both Node.js
v18.20.x and v18.17.x

<img width="1604" alt="image"
src="https://github.com/user-attachments/assets/b3a65557-0658-4cb0-a2f9-e3079c7936d5"
/>
2024-12-16 14:17:44 +01:00
Robin Malfait
a39d03663e
use single quotes 2024-12-13 15:30:58 +01:00
Robin Malfait
0072f01376
Prepare v4.0.0-beta.7 release (#15392)
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>
v4.0.0-beta.7
2024-12-13 14:18:21 +00:00
Philipp Spiess
04dcf27de5
Change Chrome target to 111 (#15389)
Resolves https://github.com/tailwindlabs/tailwindcss/discussions/15387

This PR changes the Chrome target to 111. We initially picked 120
because of the unnecessary `:dir()` down-leveling but we that was maybe
a bit too recent as it was causing some necessary prefixes to not be
generated (e.g. `-webkit-background-clip`).

This PR changes it to 111 which we require for the `color-mix()`
function. To work around the `:dir()` down-leveling we also disable the
`DirSelector` lightningcss feature which is used to control this
behavior:
https://sourcegraph.com/github.com/parcel-bundler/lightningcss/-/blob/src/selector.rs?L1964-1965
2024-12-13 15:07:04 +01:00