Skip to content

Commit 7be83c2

Browse files
⬆️ Bump the dependencies group with 20 updates (#275)
Bumps the dependencies group with 20 updates: | Package | From | To | | --- | --- | --- | | [ansis](https://github.com/webdiscus/ansis) | `4.2.0` | `4.3.0` | | [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.2.5` | `19.2.6` | | [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.2.5` | `19.2.6` | | [zod](https://github.com/colinhacks/zod) | `4.3.6` | `4.4.3` | | [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) | `7.28.6` | `7.29.7` | | [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) | `7.29.0` | `7.29.7` | | [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) | `7.29.2` | `7.29.7` | | [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) | `7.28.5` | `7.29.7` | | [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) | `7.28.5` | `7.29.7` | | [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.4.13` | `2.4.15` | | [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` | | [@tailwindcss/postcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss) | `4.2.4` | `4.3.0` | | [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.100.5` | `5.100.14` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.0` | `25.9.1` | | [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.1` | `6.0.2` | | [@vizzly-testing/observatory](https://github.com/vizzly-testing/observatory) | `0.3.3` | `0.4.2` | | [postcss](https://github.com/postcss/postcss) | `8.5.12` | `8.5.15` | | [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.4` | `4.3.0` | | [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.10` | `8.0.14` | | [wouter](https://github.com/molefrog/wouter) | `3.9.0` | `3.10.0` | Updates `ansis` from 4.2.0 to 4.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/webdiscus/ansis/releases">ansis's releases</a>.</em></p> <blockquote> <h2>v4.3.0</h2> <h2>Features</h2> <ul> <li>Added support for OSC 8 hyperlink: <code>link(url, text)</code>, <a href="https://redirect.github.com/webdiscus/ansis/issues/44">#44</a></li> <li>Added constructor overload to pass a mock <code>globalThis</code> object for controlled color auto-detection, <a href="https://redirect.github.com/webdiscus/ansis/issues/47">#47</a> <pre lang="js"><code>import { Ansis } from 'ansis'; <p>const color = new Ansis({ process: { env: { FORCE_COLOR: '1' }, argv: ['node', 'app.js'], stdout: { isTTY: false }, platform: 'linux', }, });</p> <p>console.log(color.level); // 1 </code></pre></p> </li> </ul> <h2>Bugfix</h2> <p>Fixed the handling edge cases for using ENV variables and CLI flags, <a href="https://redirect.github.com/webdiscus/ansis/issues/46">#46</a></p> <table> <thead> <tr> <th align="left">Fixed edge case</th> <th>Old behavior (bug)</th> <th>New behavior (correct)</th> </tr> </thead> <tbody> <tr> <td align="left"><code>FORCE_COLOR=1</code>, <code>NO_COLOR=1</code></td> <td>disable color</td> <td>enable color (<a href="https://force-color.org"><code>FORCE_COLOR</code></a> takes precedence over <code>NO_COLOR</code>)</td> </tr> <tr> <td align="left"><code>NO_COLOR=1</code>, <code>--color</code></td> <td>disable color</td> <td>enable color (CLI color flags take precedence over <code>NO_COLOR</code>)</td> </tr> <tr> <td align="left"><code>FORCE_COLOR=1</code>, <code>--no-color</code></td> <td>disable color</td> <td>enable color (<code>FORCE_COLOR</code> has the highest priority)</td> </tr> <tr> <td align="left"><code>--no-color --color</code></td> <td>disable color</td> <td>enable color (last flag wins)</td> </tr> <tr> <td align="left"><code>--color</code> with no detected colors</td> <td>truecolor</td> <td>16 colors (auto-detect fallback uses the minimum color level, not truecolor)</td> </tr> </tbody> </table> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/webdiscus/ansis/blob/master/CHANGELOG.md">ansis's changelog</a>.</em></p> <blockquote> <h2>4.3.0 (2026-05-11)</h2> <ul> <li>feat: add support for OSC 8 hyperlink: <code>link(url, text)</code></li> <li>feat: add constructor overload to pass a mock <code>globalThis</code> object for controlled color auto-detection <pre lang="js"><code>import { Ansis } from 'ansis'; <p>const color = new Ansis({ process: { env: { FORCE_COLOR: '1' }, argv: ['node', 'app.js'], stdout: { isTTY: false }, platform: 'linux', }, });</p> <p>console.log(color.level); // 1 </code></pre></p> </li> <li>fix(color-support): correctly handle edge cases using ENV variables and CLI flags</li> </ul> <table> <thead> <tr> <th align="left">Fixed edge case</th> <th>Old behavior (bug)</th> <th>New behavior (correct)</th> </tr> </thead> <tbody> <tr> <td align="left"><code>FORCE_COLOR=1</code>, <code>NO_COLOR=1</code></td> <td>disable color</td> <td>enable color (<a href="https://force-color.org"><code>FORCE_COLOR</code></a> takes precedence over <code>NO_COLOR</code>)</td> </tr> <tr> <td align="left"><code>NO_COLOR=1</code>, <code>--color</code></td> <td>disable color</td> <td>enable color (CLI color flags take precedence over <code>NO_COLOR</code>)</td> </tr> <tr> <td align="left"><code>FORCE_COLOR=1</code>, <code>--no-color</code></td> <td>disable color</td> <td>enable color (<code>FORCE_COLOR</code> has the highest priority)</td> </tr> <tr> <td align="left"><code>--no-color --color</code></td> <td>disable color</td> <td>enable color (last flag wins)</td> </tr> <tr> <td align="left"><code>--color</code> with no detected colors</td> <td>truecolor</td> <td>16 colors (auto-detect fallback uses the minimum color level, not truecolor)</td> </tr> </tbody> </table> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/webdiscus/ansis/commit/fa344efed5421619e65b8f8a1011c67cde330293"><code>fa344ef</code></a> test: detected BUG in Node hasColors under Windows + Node 24 - NO_COLOR=&quot;&quot; re...</li> <li><a href="https://github.com/webdiscus/ansis/commit/29c1412397dd72cabe60c3796d25f2c8ed1aa1d4"><code>29c1412</code></a> chore: update git workflow</li> <li><a href="https://github.com/webdiscus/ansis/commit/3873dbd6b94d282f5bdf4206ff81a9cdc0c1eb1a"><code>3873dbd</code></a> chore: update github templates</li> <li><a href="https://github.com/webdiscus/ansis/commit/b514d49cc9d8c3e932c417ffc36b39c8602b0000"><code>b514d49</code></a> chore: release 4.3.0</li> <li><a href="https://github.com/webdiscus/ansis/commit/8eb1334e1e06502b3c538cae56a3f3ac9358a128"><code>8eb1334</code></a> refactor: micro optimisations</li> <li><a href="https://github.com/webdiscus/ansis/commit/7de0ff3b80087e097b0a6ff4dc839fc0ca5c2cde"><code>7de0ff3</code></a> feat: add constructor argument overload with mock globalThis; refactor tests</li> <li><a href="https://github.com/webdiscus/ansis/commit/a569a20720b0f9889849acd6063bd1fe38dfdcdc"><code>a569a20</code></a> merge branches feat-link-url and fix-env-flags</li> <li><a href="https://github.com/webdiscus/ansis/commit/1d276bb3423eaee0855908fff02808cee7388b0f"><code>1d276bb</code></a> docs: update readme</li> <li><a href="https://github.com/webdiscus/ansis/commit/0664734aae31d1801ba4adaa638439ce8877e5cc"><code>0664734</code></a> docs: refactor readme</li> <li><a href="https://github.com/webdiscus/ansis/commit/59c1a24c6982cb8f0bc5708ef6ef16bb9687107f"><code>59c1a24</code></a> docs: update readme</li> <li>Additional commits viewable in <a href="https://github.com/webdiscus/ansis/compare/v4.2.0...v4.3.0">compare view</a></li> </ul> </details> <br /> Updates `react` from 19.2.5 to 19.2.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react's releases</a>.</em></p> <blockquote> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/facebook/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.6/packages/react">compare view</a></li> </ul> </details> <br /> Updates `react-dom` from 19.2.5 to 19.2.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/facebook/react/releases">react-dom's releases</a>.</em></p> <blockquote> <h2>19.2.6 (May 6th, 2026)</h2> <h2>React Server Components</h2> <ul> <li>Type hardening and performance improvements (<a href="https://redirect.github.com/facebook/react/pull/36425">#36425</a> by <a href="https://github.com/eps1lon"><code>@​eps1lon</code></a> and <a href="https://github.com/unstubbable"><code>@​unstubbable</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/facebook/react/commit/eaf3e95ca92be7a23d3c9cc8ffd6f199a40be401"><code>eaf3e95</code></a> Version 19.2.6</li> <li>See full diff in <a href="https://github.com/facebook/react/commits/v19.2.6/packages/react-dom">compare view</a></li> </ul> </details> <br /> Updates `zod` from 4.3.6 to 4.4.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/colinhacks/zod/releases">zod's releases</a>.</em></p> <blockquote> <h2>v4.4.3</h2> <h2>Commits:</h2> <ul> <li>4c2fa95ce3f3390fbc522324e406b4e9e89b88f9 docs: use Zernio primary wordmark for gold sponsor logo</li> <li>2aeec83eb135e3a83756e973ef44845fc5a455d2 docs: prune lapsed gold sponsors and rebalance logo sizing</li> <li>7391be88ac1ee5cd02057f5ccc012a1f5df4efd0 docs: prune lapsed silver/bronze sponsors and add active ones</li> <li>2c703322a21b4e2b12f33f49ea8430c451a68b4f docs: normalize bronze sponsor logos to github avatar pattern</li> <li>9195250cab0e7950efe39c3926d6c203b4b0a170 docs: remove Mintlify from bronze sponsors (churned)</li> <li>b8dffe9e62f17e6571e6249d05cc5102b54d94e4 docs: remove Numeric and Speakeasy (2+ missed monthly cycles)</li> <li>1cab69383fcdeae2a366d5e2a2fc4d8fc765d168 fix(v4): restore catch handling for absent object keys (<a href="https://redirect.github.com/colinhacks/zod/issues/5937">#5937</a>) (<a href="https://redirect.github.com/colinhacks/zod/issues/5939">#5939</a>)</li> <li>c2be4f819064eed62c7c350a2d399b5faecd15f8 fix(v4): generalize optin/fallback to transform; restore preprocess on absent keys (<a href="https://redirect.github.com/colinhacks/zod/issues/5941">#5941</a>)</li> <li>f3c9ec03ba7a28ae72d25cc295f38674bee0f559 4.4.3</li> <li>1fb56a5c18c27102dbc92260a4007c7732a0ccca docs: document release procedure in AGENTS.md</li> </ul> <h2>v4.4.2</h2> <h2>Commits:</h2> <ul> <li>0c62df0ea19fd05abdf90473e9eef7eea530fab2 Clean up docs navigation and stale labels (<a href="https://redirect.github.com/colinhacks/zod/issues/5901">#5901</a>)</li> <li>20cc794895cc8604fe0c87d83a5d1c3f89fad0ac chore: add security policy and refresh tooling deps</li> <li>6fbe07b0177efdd1bf1c0b05160e70d7a0702337 fix(docs): heading anchor links now include the hash so it doesnt scoll all the way up, follows navbar logic (<a href="https://redirect.github.com/colinhacks/zod/issues/5791">#5791</a>)</li> <li>4bbed1b1c73eca4ce9e59b1189ed236aa6c8b5bd Tighten discriminated union option typing</li> <li>bbac3e567e7fccfaaf7cdc97f1ce30c295e2c908 Update PR guidance for agents</li> <li>cf0dc942a32805c292fff59ade20a7ace980735a Merge remote-tracking branch 'origin/main' into fix-discriminated-union-key-constraint</li> <li>292c894a5fd2aa42e527900b83d8d7a3009a709c docs: add Zernio gold sponsor</li> <li>1fc9f311c28dcf80d0bb5a36b177086cbc3d8eca docs: document codec inversion</li> <li>1373c85da9aeff704a9762d27bc58699618aefb7 docs: remove AI disclosure guidance</li> <li>e20d02b473c08e3a4e557bc610b1b5fac079b649 chore: ignore triage notes</li> <li>e58ea4d91b1dfe8194b73508203213cbc7e9c936 docs: test Zod Mini tab code heights</li> <li>905761a5d127e8d5dd2ebb3bc88c75cb0b8149ff docs: document preprocess input type narrowing</li> <li>bf64bac850d4dee2b7dde7e64909d5d796d32043 chore: tighten test guidance in AGENTS.md</li> <li>8ec4e73f4c4693b6361ad591be40fb41eb8a9f95 chore: update play.ts scratch</li> <li>02c2baf7d0d615872fa4528a8020603b71211702 Make z.preprocess defer optionality to inner schema (<a href="https://redirect.github.com/colinhacks/zod/issues/5929">#5929</a>)</li> <li>88015df8e25c44fb5385eb3ef28935119cd5edea fix(docs): drop deprecated <code>baseUrl</code> from tsconfig</li> <li>c59d4474e3b4cad1b323462186cf607178ce8267 4.4.2</li> </ul> <h2>v4.4.1</h2> <h2>Commits:</h2> <ul> <li>481f7be4238c83ed58183f921b2646f340a91c6a ci: gate release publishing on full test workflow</li> <li>95ccab423aec720b2523c3a64cdc7e3204537cc7 test(v3): restore optional undefined expectations</li> <li>cede2c63739a5823d6aa5093d291e9a111da943d fix(v4): reject tuple holes before required defaults (<a href="https://redirect.github.com/colinhacks/zod/issues/5900">#5900</a>)</li> <li>edd0bf0f5ada4a8dc581c259407d7bbad0a71ea7 release: 4.4.1</li> <li>180d83d1dbe6a59260710cc8637a3dea2281ee56 docs: remove Jazz featured sponsor</li> </ul> <h2>v4.4.0</h2> <h2>4.4.0</h2> <p>This is a minor release with a wide set of correctness and soundness fixes. Some fixes intentionally make Zod stricter, so code that depended on previously accepted invalid or ambiguous inputs may need small updates.</p> <h2>Potentially breaking bug fixes</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/colinhacks/zod/commit/1fb56a5c18c27102dbc92260a4007c7732a0ccca"><code>1fb56a5</code></a> docs: document release procedure in AGENTS.md</li> <li><a href="https://github.com/colinhacks/zod/commit/f3c9ec03ba7a28ae72d25cc295f38674bee0f559"><code>f3c9ec0</code></a> 4.4.3</li> <li><a href="https://github.com/colinhacks/zod/commit/c2be4f819064eed62c7c350a2d399b5faecd15f8"><code>c2be4f8</code></a> fix(v4): generalize optin/fallback to transform; restore preprocess on absent...</li> <li><a href="https://github.com/colinhacks/zod/commit/1cab69383fcdeae2a366d5e2a2fc4d8fc765d168"><code>1cab693</code></a> fix(v4): restore catch handling for absent object keys (<a href="https://redirect.github.com/colinhacks/zod/issues/5937">#5937</a>) (<a href="https://redirect.github.com/colinhacks/zod/issues/5939">#5939</a>)</li> <li><a href="https://github.com/colinhacks/zod/commit/b8dffe9e62f17e6571e6249d05cc5102b54d94e4"><code>b8dffe9</code></a> docs: remove Numeric and Speakeasy (2+ missed monthly cycles)</li> <li><a href="https://github.com/colinhacks/zod/commit/9195250cab0e7950efe39c3926d6c203b4b0a170"><code>9195250</code></a> docs: remove Mintlify from bronze sponsors (churned)</li> <li><a href="https://github.com/colinhacks/zod/commit/2c703322a21b4e2b12f33f49ea8430c451a68b4f"><code>2c70332</code></a> docs: normalize bronze sponsor logos to github avatar pattern</li> <li><a href="https://github.com/colinhacks/zod/commit/7391be88ac1ee5cd02057f5ccc012a1f5df4efd0"><code>7391be8</code></a> docs: prune lapsed silver/bronze sponsors and add active ones</li> <li><a href="https://github.com/colinhacks/zod/commit/2aeec83eb135e3a83756e973ef44845fc5a455d2"><code>2aeec83</code></a> docs: prune lapsed gold sponsors and rebalance logo sizing</li> <li><a href="https://github.com/colinhacks/zod/commit/4c2fa95ce3f3390fbc522324e406b4e9e89b88f9"><code>4c2fa95</code></a> docs: use Zernio primary wordmark for gold sponsor logo</li> <li>Additional commits viewable in <a href="https://github.com/colinhacks/zod/compare/v4.3.6...v4.4.3">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by <a href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new releaser for zod since your current version.</p> </details> <br /> Updates `@babel/cli` from 7.28.6 to 7.29.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@​babel/cli's releases</a>.</em></p> <blockquote> <h2>v7.29.7 (2026-05-25)</h2> <p>Re-release all packages with npm provenance attestations</p> <h2>v7.29.6 (2026-05-25)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18014">#18014</a> Catchup source map position in preserveFormat (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-core</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18001">#18001</a> [7.x packport]Improve input source map handling (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-core</code>, <code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17998">#17998</a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-cli/issues/17992">#17992</a>) (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> <li>Mateusz Burzyński (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> <h2>v7.29.5 (2026-05-05)</h2> <h4>:house: Internal</h4> <ul> <li><code>babel-preset-env</code> <ul> <li>Update <code>@babel/*</code> dependencies</li> </ul> </li> </ul> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a> v7.29.7</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-cli">compare view</a></li> </ul> </details> <br /> Updates `@babel/core` from 7.29.0 to 7.29.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@​babel/core's releases</a>.</em></p> <blockquote> <h2>v7.29.7 (2026-05-25)</h2> <p>Re-release all packages with npm provenance attestations</p> <h2>v7.29.6 (2026-05-25)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18014">#18014</a> Catchup source map position in preserveFormat (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-core</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18001">#18001</a> [7.x packport]Improve input source map handling (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-core</code>, <code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17998">#17998</a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17992">#17992</a>) (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> <li>Mateusz Burzyński (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> <h2>v7.29.5 (2026-05-05)</h2> <h4>:house: Internal</h4> <ul> <li><code>babel-preset-env</code> <ul> <li>Update <code>@babel/*</code> dependencies</li> </ul> </li> </ul> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a> v7.29.7</li> <li><a href="https://github.com/babel/babel/commit/04ea6b27fdac8f40c3481aec2080ac9678779509"><code>04ea6b2</code></a> v7.29.6</li> <li><a href="https://github.com/babel/babel/commit/99f498a9b9fa0b900d603fbe8f6601bb3b9e42bb"><code>99f498a</code></a> [7.x packport]Improve input source map handling (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/18001">#18001</a>)</li> <li><a href="https://github.com/babel/babel/commit/feba0a3654c596bd369d1ef1231f5d56666d56dc"><code>feba0a3</code></a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17992">#17992</a>) (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-core/issues/17998">#17998</a>)</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-core">compare view</a></li> </ul> </details> <br /> Updates `@babel/preset-env` from 7.29.2 to 7.29.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@​babel/preset-env's releases</a>.</em></p> <blockquote> <h2>v7.29.7 (2026-05-25)</h2> <p>Re-release all packages with npm provenance attestations</p> <h2>v7.29.6 (2026-05-25)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18014">#18014</a> Catchup source map position in preserveFormat (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-core</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18001">#18001</a> [7.x packport]Improve input source map handling (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-core</code>, <code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17998">#17998</a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env/issues/17992">#17992</a>) (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> <li>Mateusz Burzyński (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> <h2>v7.29.5 (2026-05-05)</h2> <h4>:house: Internal</h4> <ul> <li><code>babel-preset-env</code> <ul> <li>Update <code>@babel/*</code> dependencies</li> </ul> </li> </ul> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a> v7.29.7</li> <li><a href="https://github.com/babel/babel/commit/3cd910d838332b988ed83bdd2ddc22e849e7ea5d"><code>3cd910d</code></a> v7.29.5</li> <li><a href="https://github.com/babel/babel/commit/3d399f8c8c1e5308bb25e11947d90a111399ac0d"><code>3d399f8</code></a> [7.x backport]docs(preset-env): update CONTRIBUTING.md (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env/issues/17976">#17976</a>)</li> <li><a href="https://github.com/babel/babel/commit/183db7bc040a68057489f8981d02962345a322ed"><code>183db7b</code></a> v7.29.3</li> <li><a href="https://github.com/babel/babel/commit/268f246f21e51b2204ba6dc5349055504cc7420d"><code>268f246</code></a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env/issues/17788">#17788</a>)</li> <li><a href="https://github.com/babel/babel/commit/f8524d80799e136313e55da0468777a57d1bf6b6"><code>f8524d8</code></a> Update compat data (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env/issues/17686">#17686</a>)</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-env">compare view</a></li> </ul> </details> <br /> Updates `@babel/preset-react` from 7.28.5 to 7.29.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@​babel/preset-react's releases</a>.</em></p> <blockquote> <h2>v7.29.7 (2026-05-25)</h2> <p>Re-release all packages with npm provenance attestations</p> <h2>v7.29.6 (2026-05-25)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18014">#18014</a> Catchup source map position in preserveFormat (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-core</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18001">#18001</a> [7.x packport]Improve input source map handling (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-core</code>, <code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17998">#17998</a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react/issues/17992">#17992</a>) (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> <li>Mateusz Burzyński (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> <h2>v7.29.5 (2026-05-05)</h2> <h4>:house: Internal</h4> <ul> <li><code>babel-preset-env</code> <ul> <li>Update <code>@babel/*</code> dependencies</li> </ul> </li> </ul> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a> v7.29.7</li> <li><a href="https://github.com/babel/babel/commit/f3a22268bdc4fc6748cbc2be718a4d1090bdaf00"><code>f3a2226</code></a> [babel 7] Delete Babel 8 fixtures (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react/issues/17729">#17729</a>)</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-react">compare view</a></li> </ul> </details> <br /> Updates `@babel/preset-typescript` from 7.28.5 to 7.29.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@​babel/preset-typescript's releases</a>.</em></p> <blockquote> <h2>v7.29.7 (2026-05-25)</h2> <p>Re-release all packages with npm provenance attestations</p> <h2>v7.29.6 (2026-05-25)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18014">#18014</a> Catchup source map position in preserveFormat (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-core</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/18001">#18001</a> [7.x packport]Improve input source map handling (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-core</code>, <code>babel-generator</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17998">#17998</a> Preserve original identifier names from input sourcemaps (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript/issues/17992">#17992</a>) (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> <li>Mateusz Burzyński (<a href="https://github.com/Andarist"><code>@​Andarist</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@​nicolo-ribaudo</code></a>)</li> </ul> <h2>v7.29.5 (2026-05-05)</h2> <h4>:house: Internal</h4> <ul> <li><code>babel-preset-env</code> <ul> <li>Update <code>@babel/*</code> dependencies</li> </ul> </li> </ul> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@​liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@​JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/4fba7541180bf5f58256d8e358b544e3831ad090"><code>4fba754</code></a> v7.29.7</li> <li><a href="https://github.com/babel/babel/commit/f3a22268bdc4fc6748cbc2be718a4d1090bdaf00"><code>f3a2226</code></a> [babel 7] Delete Babel 8 fixtures (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript/issues/17729">#17729</a>)</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.7/packages/babel-preset-typescript">compare view</a></li> </ul> </details> <br /> Updates `@biomejs/biome` from 2.4.13 to 2.4.15 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/biomejs/biome/releases">@​biomejs/biome's releases</a>.</em></p> <blockquote> <h2>Biome CLI v2.4.15</h2> <h2>2.4.15</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/9394">#9394</a> <a href="https://github.com/biomejs/biome/commit/ba3480e62da6ac7f0f9d99126f1459a72306368b"><code>ba3480e</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-test-hooks-in-order"><code>useTestHooksInOrder</code></a> in the <code>test</code> domain. The rule enforces that Jest/Vitest lifecycle hooks (<code>beforeAll</code>, <code>beforeEach</code>, <code>afterEach</code>, <code>afterAll</code>) are declared in the order they execute, making test setup and teardown easier to reason about.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10254">#10254</a> <a href="https://github.com/biomejs/biome/commit/e0a54ccc0a0c892fff2270ae772bcecf0d34e79a"><code>e0a54cc</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/use-vue-next-tick-promise/"><code>useVueNextTickPromise</code></a>, which enforces Promise syntax when using Vue <code>nextTick</code>.</p> <p>For example, the following snippet triggers the rule:</p> <pre lang="js"><code>import { nextTick } from &quot;vue&quot;; <p>nextTick(() =&gt; { updateDom(); }); </code></pre></p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10219">#10219</a> <a href="https://github.com/biomejs/biome/commit/64aee454ac2db2ade31089c1438dd761c94a8d57"><code>64aee45</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/no-vue-v-on-number-values/"><code>noVueVOnNumberValues</code></a>, that disallows deprecated number modifiers on Vue <code>v-on</code> directives.</p> <p>For example, the following snippet triggers the rule:</p> <pre lang="vue"><code>&lt;input @keyup.13=&quot;submit&quot; /&gt; </code></pre> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10195">#10195</a> <a href="https://github.com/biomejs/biome/commit/7b8d4e161a225f14bc9e070e04cc8572ee988bb2"><code>7b8d4e1</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the new nursery rule <a href="https://biomejs.dev/linter/rules/use-vue-valid-v-for/"><code>useVueValidVFor</code></a>, which validates Vue <code>v-for</code> directives and reports invalid aliases, missing component keys, and keys that do not use iteration variables.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10238">#10238</a> <a href="https://github.com/biomejs/biome/commit/1110256c6d60500ebc05b9d2738fe77345c7ffd6"><code>1110256</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the recommended nursery rule <a href="https://biomejs.dev/linter/rules/no-vue-import-compiler-macros/"><code>noVueImportCompilerMacros</code></a>, which disallows importing Vue compiler macros such as <code>defineProps</code> from <code>vue</code> because they are automatically available.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10201">#10201</a> <a href="https://github.com/biomejs/biome/commit/1a08f89df55eafe1d8463696d1be53f8dea90a80"><code>1a08f89</code></a> Thanks <a href="https://github.com/realknove"><code>@​realknove</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/10193">#10193</a>: <code>style/useReadonlyClassProperties</code> no longer reports class properties as readonly-able when they are assigned inside arrow callbacks nested in class property initializers.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/9574">#9574</a> <a href="https://github.com/biomejs/biome/commit/3bd2b6adf0be44eda922ad7610781dd2e387bdb6"><code>3bd2b6a</code></a> Thanks <a href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9530">#9530</a>. The diagnostics of <a href="https://biomejs.dev/assist/actions/organize-imports/"><code>organizeImports</code></a> are now more detailed and more precise. They are also better at localizing where the issue is.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10205">#10205</a> <a href="https://github.com/biomejs/biome/commit/a704a6c40392e71aad5127ab35c771486116937e"><code>a704a6c</code></a> Thanks <a href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/10185">#10185</a>. <a href="https://biomejs.dev/assist/actions/organize-imports/">`organizeImports</a> now errors when it encounters an unknown predefined group.</p> <p>The following configuration is now reported as invalid because <code>:INEXISTENT:</code> is an unknown predefined group.</p> <pre lang="json"><code>{ &quot;assist&quot;: { &quot;actions&quot;: { &quot;source&quot;: { &quot;organizeImports&quot;: { &quot;options&quot;: { &quot;groups&quot;: [&quot;:INEXISTENT:&quot;] } } } } } } </code></pre> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md">@​biomejs/biome's changelog</a>.</em></p> <blockquote> <h2>2.4.15</h2> <h3>Patch Changes</h3> <ul> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/9394">#9394</a> <a href="https://github.com/biomejs/biome/commit/ba3480e62da6ac7f0f9d99126f1459a72306368b"><code>ba3480e</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the nursery rule <a href="https://biomejs.dev/linter/rules/use-test-hooks-in-order"><code>useTestHooksInOrder</code></a> in the <code>test</code> domain. The rule enforces that Jest/Vitest lifecycle hooks (<code>beforeAll</code>, <code>beforeEach</code>, <code>afterEach</code>, <code>afterAll</code>) are declared in the order they execute, making test setup and teardown easier to reason about.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10254">#10254</a> <a href="https://github.com/biomejs/biome/commit/e0a54ccc0a0c892fff2270ae772bcecf0d34e79a"><code>e0a54cc</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/use-vue-next-tick-promise/"><code>useVueNextTickPromise</code></a>, which enforces Promise syntax when using Vue <code>nextTick</code>.</p> <p>For example, the following snippet triggers the rule:</p> <pre lang="js"><code>import { nextTick } from &quot;vue&quot;; <p>nextTick(() =&gt; { updateDom(); }); </code></pre></p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10219">#10219</a> <a href="https://github.com/biomejs/biome/commit/64aee454ac2db2ade31089c1438dd761c94a8d57"><code>64aee45</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added a new nursery rule <a href="https://biomejs.dev/linter/rules/no-vue-v-on-number-values/"><code>noVueVOnNumberValues</code></a>, that disallows deprecated number modifiers on Vue <code>v-on</code> directives.</p> <p>For example, the following snippet triggers the rule:</p> <pre lang="vue"><code>&lt;input @keyup.13=&quot;submit&quot; /&gt; </code></pre> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10195">#10195</a> <a href="https://github.com/biomejs/biome/commit/7b8d4e161a225f14bc9e070e04cc8572ee988bb2"><code>7b8d4e1</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the new nursery rule <a href="https://biomejs.dev/linter/rules/use-vue-valid-v-for/"><code>useVueValidVFor</code></a>, which validates Vue <code>v-for</code> directives and reports invalid aliases, missing component keys, and keys that do not use iteration variables.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10238">#10238</a> <a href="https://github.com/biomejs/biome/commit/1110256c6d60500ebc05b9d2738fe77345c7ffd6"><code>1110256</code></a> Thanks <a href="https://github.com/dyc3"><code>@​dyc3</code></a>! - Added the recommended nursery rule <a href="https://biomejs.dev/linter/rules/no-vue-import-compiler-macros/"><code>noVueImportCompilerMacros</code></a>, which disallows importing Vue compiler macros such as <code>defineProps</code> from <code>vue</code> because they are automatically available.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10201">#10201</a> <a href="https://github.com/biomejs/biome/commit/1a08f89df55eafe1d8463696d1be53f8dea90a80"><code>1a08f89</code></a> Thanks <a href="https://github.com/realknove"><code>@​realknove</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/10193">#10193</a>: <code>style/useReadonlyClassProperties</code> no longer reports class properties as readonly-able when they are assigned inside arrow callbacks nested in class property initializers.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/9574">#9574</a> <a href="https://github.com/biomejs/biome/commit/3bd2b6adf0be44eda922ad7610781dd2e387bdb6"><code>3bd2b6a</code></a> Thanks <a href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/9530">#9530</a>. The diagnostics of <a href="https://biomejs.dev/assist/actions/organize-imports/"><code>organizeImports</code></a> are now more detailed and more precise. They are also better at localizing where the issue is.</p> </li> <li> <p><a href="https://redirect.github.com/biomejs/biome/pull/10205">#10205</a> <a href="https://github.com/biomejs/biome/commit/a704a6c40392e71aad5127ab35c771486116937e"><code>a704a6c</code></a> Thanks <a href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed <a href="https://redirect.github.com/biomejs/biome/issues/10185">#10185</a>. <a href="https://biomejs.dev/assist/actions/organize-imports/">`organizeImports</a> now errors when it encounters an unknown predefined group.</p> <p>The following configuration is now reported as invalid because <code>:INEXISTENT:</code> is an unknown predefined group.</p> <pre lang="json"><code>{ &quot;assist&quot;: { &quot;actions&quot;: { &quot;source&quot;: { &quot;organizeImports&quot;: { &quot;options&quot;: { &quot;groups&quot;: [&quot;:INEXISTENT:&quot;] } } } } } } </code></pre> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/biomejs/biome/commit/9dd3271eef16090416b6e77615a01e3bfbcf7993"><code>9dd3271</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10210">#10210</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/7b8d4e161a225f14bc9e070e04cc8572ee988bb2"><code>7b8d4e1</code></a> feat(lint/html/vue): add <code>useVueValidVFor</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10195">#10195</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/ba3480e62da6ac7f0f9d99126f1459a72306368b"><code>ba3480e</code></a> feat(lint/js): add <code>useTestHooksInOrder</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/9394">#9394</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/e0a54ccc0a0c892fff2270ae772bcecf0d34e79a"><code>e0a54cc</code></a> feat(lint/js/vue): add <code>useVueNextTickPromise</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10254">#10254</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/1110256c6d60500ebc05b9d2738fe77345c7ffd6"><code>1110256</code></a> feat(lint/vue): add <code>noVueImportCompilerMacros</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10238">#10238</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/7f7419cc831cc0725c44669964d8ad8f318d4375"><code>7f7419c</code></a> fix: grammar in extends docstring (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10263">#10263</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/0ae58406b4752f296adfccf94b1d2a042c4cddc7"><code>0ae5840</code></a> feat(lint/js): add <code>useThisForClassMethods</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/9807">#9807</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/83f7385f14d68704510ea4c028cfa20317698fc0"><code>83f7385</code></a> feat(lint/js): add <code>noBaseToString</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/9838">#9838</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/64aee454ac2db2ade31089c1438dd761c94a8d57"><code>64aee45</code></a> feat(lint/html/vue): add <code>noVueVOnNumberValues</code> (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10219">#10219</a>)</li> <li><a href="https://github.com/biomejs/biome/commit/46393e0240944064eb2a33c1810fc4204ced0cf7"><code>46393e0</code></a> ci: release (<a href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/10100">#10100</a>)</li> <li>Additional commits viewable in <a href="https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.15/packages/@biomejs/biome">compare view</a></li> </ul> </details> <br /> Updates `@playwright/test` from 1.59.1 to 1.60.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/microsoft/playwright/releases">@​playwright/test's releases</a>.</em></p> <blockquote> <h2>v1.60.0</h2> <h2>🌐 HAR recording on Tracing</h2> <p><a href="https://playwright.dev/docs/api/class-tracing#tracing-start-har">tracing.startHar()</a> / <a href="https://playwright.dev/docs/api/class-tracing#tracing-stop-har">tracing.stopHar()</a> expose HAR recording as a first-class tracing API, with the same <code>content</code>, <code>mode</code> and <code>urlFilter</code> options as <code>recordHar</code>. The returned <a href="https://playwright.dev/docs/api/class-disposable">Disposable</a> makes it easy to scope a recording with <code>await using</code>:</p> <pre lang="js"><code>await using har = await context.tracing.startHar('trace.har'); const page = await context.newPage(); await page.goto('https://playwright.dev'); // HAR is finalized when `har` goes out of scope. </code></pre> <h2>🪝 Drop API</h2> <p>New <a href="https://playwright.dev/docs/api/class-locator#locator-drop">locator.drop()</a> simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches <code>dragenter</code>, <code>dragover</code>, and <code>drop</code> with a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:</p> <pre lang="js"><code>await page.locator('#dropzone').drop({ files: { name: 'note.txt', mimeType: 'text/plain', buffer: Buffer.from('hello') }, }); <p>await page.locator('#dropzone').drop({ data: { 'text/plain': 'hello world', 'text/uri-list': '<a href="https://example.com">https://example.com</a>', }, }); </code></pre></p> <h2>🎯 Aria snapshots</h2> <ul> <li><a href="https://playwright.dev/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot">expect(page).toMatchAriaSnapshot()</a> now works on a <a href="https://playwright.dev/docs/api/class-page">Page</a>, in addition to a <a href="https://playwright.dev/docs/api/class-locator">Locator</a> — equivalent to asserting against <code>page.locator('body')</code>.</li> <li>New <code>boxes</code> option on <a href="https://playwright.dev/docs/api/class-locator#locator-aria-snapshot">locator.ariaSnapshot()</a> / <a href="https://playwright.dev/docs/api/class-page#page-aria-snapshot">page.ariaSnapshot()</a> appends each element's bounding box as <code>[box=x,y,width,height]</code>, useful for AI consumption.</li> </ul> <h2>🛑 test.abort()</h2> <p>New <a href="https://playwright.dev/docs/api/class-test#test-abort">test.abort()</a> aborts the currently running test from a fixture, hook, or route handler with an optional message. Use it when you have detected an unrecoverable misuse and want to fail the test right away:</p> <pre lang="js"><code>test('does not publish to the shared page', async ({ page }) =&gt; { await page.route('**/publish', route =&gt; { test.abort('Tests must not publish to the shared page. Use the `clone` option.'); return route.abort(); }); // ... }); </code></pre> <h2>New APIs</h2> <h3>Browser, Context and Page</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/microsoft/playwright/commit/87bb9ddbd78f329df18c2b24847bc9409240cd07"><code>87bb9dd</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/40747">#40747</a>): fix(yauzl): vendor yauzl with destroy-lifecycle fix</li> <li><a href="https://github.com/microsoft/playwright/commit/9a9c51cb7d1b39fab51ca288e59f8ca38fd19910"><code>9a9c51c</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/40733">#40733</a>): chore(electron): revert <a href="https://redirect.github.com/microsoft/playwright/issues/40184">#40184</a> (move Electron API to a s...</li> <li><a href="https://github.com/microsoft/playwright/commit/4b3b628663031bcaaeca907e337892263524634d"><code>4b3b628</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/40736">#40736</a>): Revert &quot;feat(electron): add timeout option to electronAp...</li> <li><a href="https://github.com/microsoft/playwright/commit/f869f96bbe6607cc3b88b4ca96fd82f17b301b50"><code>f869f96</code></a> chore: bump version to v1.60.0 (<a href="https://redirect.github.com/microsoft/playwright/issues/40714">#40714</a>)</li> <li><a href="https://github.com/microsoft/playwright/commit/7eb6918afadfb0dd5c7e94ca9ffbddd84d8fbb39"><code>7eb6918</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/40710">#40710</a>): docs: release notes v1.60</li> <li><a href="https://github.com/microsoft/playwright/commit/118d2aa6076d82840decca15d96b48611b08e392"><code>118d2aa</code></a> cherry-pick(<a href="https://redirect.github.com/microsoft/playwright/issues/40693">#40693</a>): chore(python): formdata path type</li> <li><a href="https://github.com/microsoft/playwright/commit/54012f5dcc586da2e5d6cccd75f13ca367b94579"><code>54012f5</code></a> chore(deps): bump ip-address and express-rate-limit (<a href="https://redirect.github.com/microsoft/playwright/issues/40680">#40680</a>)</li> <li><a href="https://github.com/microsoft/playwright/commit/9fa531da5677a3807d6e1dccd22c5137339a44f7"><code>9fa531d</code></a> fix(screencast): unblock frame ack when an async client disconnects (<a href="https://redirect.github.com/microsoft/playwright/issues/40674">#40674</a>)</li> <li><a href="https://github.com/microsoft/playwright/commit/3649db560ff943e724185784d34f7db131a11961"><code>3649db5</code></a> chore(mcp): bump default extension protocol to v2 (<a href="https://redirect.github.com/microsoft/playwright/issues/40678">#40678</a>)</li> <li><a href="https://github.com/microsoft/playwright/commit/bb6c00957f47ba04caad7fca75d426309a2d32d4"><code>bb6c009</code></a> chore(extension): mark 0.2.1 (<a href="https://redirect.github.com/microsoft/playwright/issues/40679">#40679</a>)</li> <li>Additional commits viewable in <a href="https://github.com/microsoft/playwright/compare/v1.59.1...v1.60.0">compare view</a></li> </ul> </details> <br /> Updates `@tailwindcss/postcss` from 4.2.4 to 4.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/releases">@​tailwindcss/postcss's releases</a>.</em></p> <blockquote> <h2>v4.3.0</h2> <h3>Added</h3> <ul> <li>Add <code>@container-size</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18901">#18901</a>)</li> <li>Add <code>scrollbar-{auto,thin,none}</code> utilities for <code>scrollbar-width</code>, and <code>scrollbar-thumb-*</code> / <code>scrollbar-track-*</code> color utilities for <code>scrollbar-color</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19981">#19981</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20019">#20019</a>)</li> <li>Add <code>scrollbar-gutter-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20018">#20018</a>)</li> <li>Add <code>zoom-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20020">#20020</a>)</li> <li>Add <code>tab-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20022">#20022</a>)</li> <li>Allow using <code>@variant</code> with stacked variants (e.g. <code>@variant hover:focus { … }</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19996">#19996</a>)</li> <li>Allow using <code>@variant</code> with compound variants (e.g. <code>@variant hover, focus { … }</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19996">#19996</a>)</li> <li>Support <code>--default(…)</code> in <code>--value(…)</code> and <code>--modifier(…)</code> for functional <code>@utility</code> definitions (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19989">#19989</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Ensure <code>@plugin</code> resolves package JavaScript entries instead of browser CSS entries when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19949">#19949</a>)</li> <li>Fix relative <code>@import</code> and <code>@plugin</code> paths resolving from the wrong directory when using <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19965">#19965</a>)</li> <li>Ensure CSS files containing <code>@variant</code> are processed by <code>@tailwindcss/vite</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19966">#19966</a>)</li> <li>Resolve imports relative to <code>base</code> when <code>result.opts.from</code> is not provided when using <code>@tailwindcss/postcss</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19980">#19980</a>)</li> <li>Canonicalization: preserve significant <code>_</code> whitespace in arbitrary values (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19986">#19986</a>)</li> <li>Canonicalization: add parentheses when removing whitespace from arbitrary values would hurt readability (e.g. <code>w-[calc(100%---spacing(60))]</code> → <code>w-[calc(100%-(--spacing(60)))]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19986">#19986</a>)</li> <li>Canonicalization: preserve the original unit in arbitrary values instead of normalizing to base units (e.g. <code>-mt-[20in]</code> → <code>mt-[-20in]</code>, not <code>mt-[-1920px]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19988">#19988</a>)</li> <li>Canonicalization: migrate arbitrary <code>:has()</code> variants from <code>[&amp;:has(…)]</code> to <code>has-[…]</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19991">#19991</a>)</li> <li>Upgrade: don’t migrate inline <code>style</code> attributes (e.g. <code>style=&quot;flex-grow: 1&quot;</code> → <code>style=&quot;flex-grow: 1&quot;</code>, not <code>style=&quot;grow: 1&quot;</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19918">#19918</a>)</li> <li>Allow multiple <code>@utility</code> definitions with the same name but different value types (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19777">#19777</a>)</li> <li>Export missing <code>PluginWithConfig</code> type from <code>tailwindcss/plugin</code> to fix errors when inferring plugin config types (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19707">#19707</a>)</li> <li>Ensure <code>start</code> and <code>end</code> legacy utilities without values do not generate CSS (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20003">#20003</a>)</li> <li>Ensure <code>--value(…)</code> is required in functional <code>@utility</code> definitions (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20005">#20005</a>)</li> <li>Canonicalization: preserve required whitespace around operators in negated arbitrary values (e.g. <code>-left-[(var(--a)+var(--b))]</code>) (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20011">#20011</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">@​tailwindcss/postcss's changelog</a>.</em></p> <blockquote> <h2>[4.3.0] - 2026-05-08</h2> <h3>Added</h3> <ul> <li>Add <code>@container-size</code> utility (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18901">#18901</a>)</li> <li>Add <code>scrollbar-{auto,thin,none}</code> utilities for <code>scrollbar-width</code>, and <code>scrollbar-thumb-*</code> / <code>scrollbar-track-*</code> color utilities for <code>scrollbar-color</code> (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19981">#19981</a>, <a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20019">#20019</a>)</li> <li>Add <code>scrollbar-gutter-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20018">#20018</a>)</li> <li>Add <code>zoom-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20020">#20020</a>)</li> <li>Add <code>tab-*</code> utilities (<a href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/20022">#20022</a>)</li> <li>Allow using <code>@variant</code> with stacked variants (e.g. <code>@variant hover:focus { … }</code…
1 parent ebd3c7e commit 7be83c2

57 files changed

Lines changed: 9798 additions & 1008 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package-lock.json

Lines changed: 868 additions & 968 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@
125125
"@tanstack/react-query": "^5.90.11",
126126
"@types/node": "^25.0.2",
127127
"@vitejs/plugin-react": "^6.0.1",
128-
"@vizzly-testing/observatory": "^0.3.3",
129128
"autoprefixer": "^10.4.21",
130129
"babel-plugin-react-compiler": "^1.0.0",
131130
"babel-plugin-transform-remove-console": "^6.9.4",

src/reporter/src/components/comparison/comparison-viewer.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import { useCallback, useMemo, useState } from 'react';
2+
import { VIEW_MODES } from '../../utils/constants.js';
3+
import { withImageVersion } from '../../utils/image-url.js';
14
import {
25
OnionSkinMode,
36
OverlayMode,
47
ToggleView,
5-
} from '@vizzly-testing/observatory';
6-
import { useCallback, useMemo, useState } from 'react';
7-
import { VIEW_MODES } from '../../utils/constants.js';
8-
import { withImageVersion } from '../../utils/image-url.js';
8+
} from '../design-system/index.js';
99

1010
/**
1111
* Comparison Viewer for inline card display

src/reporter/src/components/comparison/fullscreen-viewer.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ import {
2121
ListBulletIcon,
2222
MapPinIcon,
2323
} from '@heroicons/react/24/outline';
24+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
25+
import { VIEW_MODES } from '../../utils/constants.js';
26+
import { withImageVersion } from '../../utils/image-url.js';
2427
import {
2528
ApprovalButtonGroup,
2629
Badge,
@@ -42,10 +45,7 @@ import {
4245
VariantBreadcrumb,
4346
ViewModeToggle,
4447
ZoomControls,
45-
} from '@vizzly-testing/observatory';
46-
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
47-
import { VIEW_MODES } from '../../utils/constants.js';
48-
import { withImageVersion } from '../../utils/image-url.js';
48+
} from '../design-system/index.js';
4949
import { ScreenshotDisplay } from './screenshot-display.jsx';
5050

5151
/**

src/reporter/src/components/comparison/screenshot-display.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { ExclamationTriangleIcon } from '@heroicons/react/24/outline';
2+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3+
import { withImageVersion } from '../../utils/image-url.js';
24
import {
35
HotSpotOverlay,
46
OnionSkinMode,
57
OverlayMode,
68
ToggleMode,
7-
} from '@vizzly-testing/observatory';
8-
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
9-
import { withImageVersion } from '../../utils/image-url.js';
9+
} from '../design-system/index.js';
1010

1111
/**
1212
* Unified Screenshot Display Component - matches Observatory architecture

src/reporter/src/components/dashboard/dashboard-filters.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import {
88
DeviceTabletIcon,
99
XMarkIcon,
1010
} from '@heroicons/react/24/outline';
11+
import { useCallback, useMemo, useRef, useState } from 'react';
12+
import { FILTER_TYPES, SORT_TYPES } from '../../utils/constants.js';
1113
import {
1214
BrowserIcon,
1315
FilterPill,
1416
SearchInput,
15-
} from '@vizzly-testing/observatory';
16-
import { useCallback, useMemo, useRef, useState } from 'react';
17-
import { FILTER_TYPES, SORT_TYPES } from '../../utils/constants.js';
17+
} from '../design-system/index.js';
1818

1919
/**
2020
* Get device icon based on viewport width
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
import { XMarkIcon } from '@heroicons/react/24/outline';
2+
3+
/**
4+
* ActiveFilterChip - Shows an active filter with dismiss button
5+
* Used to display currently applied filters that can be removed
6+
*/
7+
8+
let warningChipClass =
9+
'bg-[var(--accent-warning-muted)] text-[var(--accent-warning)] border-[color-mix(in_srgb,var(--accent-warning)_24%,transparent)]';
10+
let infoChipClass =
11+
'bg-[var(--accent-info-muted)] text-[var(--accent-info)] border-[color-mix(in_srgb,var(--accent-info)_24%,transparent)]';
12+
let successChipClass =
13+
'bg-[var(--accent-success-muted)] text-[var(--accent-success)] border-[color-mix(in_srgb,var(--accent-success)_24%,transparent)]';
14+
let dangerChipClass =
15+
'bg-[var(--accent-danger-muted)] text-[var(--accent-danger)] border-[color-mix(in_srgb,var(--accent-danger)_24%,transparent)]';
16+
let mediaChipClass =
17+
'bg-[var(--accent-media-muted)] text-[var(--accent-media)] border-[color-mix(in_srgb,var(--accent-media)_24%,transparent)]';
18+
let neutralChipClass =
19+
'bg-white/5 text-[var(--text-secondary)] border-[var(--vz-border-subtle)]';
20+
21+
let colorClasses = {
22+
brand:
23+
'bg-[var(--accent-brand-muted)] text-[var(--accent-brand)] border-[color-mix(in_srgb,var(--accent-brand)_24%,transparent)]',
24+
amber: warningChipClass,
25+
blue: infoChipClass,
26+
cyan: infoChipClass,
27+
emerald: successChipClass,
28+
gray: neutralChipClass,
29+
green: successChipClass,
30+
info: infoChipClass,
31+
media: mediaChipClass,
32+
neutral: neutralChipClass,
33+
orange: warningChipClass,
34+
purple: mediaChipClass,
35+
red: dangerChipClass,
36+
};
37+
38+
export function ActiveFilterChip({
39+
label,
40+
color = 'neutral',
41+
onRemove,
42+
icon: Icon,
43+
className = '',
44+
}) {
45+
return (
46+
<span
47+
className={`
48+
inline-flex items-center gap-1 px-2 py-0.5 border rounded text-xs
49+
whitespace-nowrap flex-shrink-0
50+
${colorClasses[color] || colorClasses.neutral}
51+
${className}
52+
`}
53+
>
54+
{Icon && <Icon className="w-3 h-3" />}
55+
<span className="max-w-[150px] truncate">{label}</span>
56+
{onRemove && (
57+
<button
58+
type="button"
59+
onClick={onRemove}
60+
className="ml-0.5 hover:text-[var(--text-primary)] transition-colors"
61+
>
62+
<XMarkIcon className="w-3 h-3" />
63+
</button>
64+
)}
65+
</span>
66+
);
67+
}
68+
69+
/**
70+
* ActiveFilterBar - Container for showing active filters with count summary
71+
*/
72+
export function ActiveFilterBar({
73+
filteredCount,
74+
totalCount,
75+
children,
76+
onClearAll,
77+
className = '',
78+
}) {
79+
let hasFilters =
80+
children && (Array.isArray(children) ? children.length > 0 : true);
81+
82+
if (!hasFilters) return null;
83+
84+
return (
85+
<div
86+
className={`
87+
flex items-center gap-2 px-3 sm:px-4 py-2 bg-black/20 border-b border-[var(--vz-border-subtle)]
88+
overflow-x-auto scrollbar-none
89+
${className}
90+
`}
91+
>
92+
{(filteredCount !== undefined || totalCount !== undefined) && (
93+
<>
94+
<span className="text-xs text-[var(--text-muted)] whitespace-nowrap">
95+
<span className="font-medium text-[var(--text-primary)]">
96+
{filteredCount}
97+
</span>
98+
{totalCount !== undefined && (
99+
<span className="hidden sm:inline"> of {totalCount}</span>
100+
)}
101+
</span>
102+
<div className="w-px h-4 bg-[var(--vz-border-subtle)] flex-shrink-0" />
103+
</>
104+
)}
105+
106+
<div className="flex items-center gap-1.5 flex-nowrap sm:flex-wrap">
107+
{children}
108+
</div>
109+
110+
{onClearAll && (
111+
<>
112+
<div className="flex-1" />
113+
<button
114+
type="button"
115+
onClick={onClearAll}
116+
className="inline-flex items-center gap-1 px-2 py-1 text-xs text-[var(--text-tertiary)] hover:text-[var(--text-primary)] transition-colors whitespace-nowrap"
117+
>
118+
<XMarkIcon className="w-3.5 h-3.5" />
119+
Clear all
120+
</button>
121+
</>
122+
)}
123+
</div>
124+
);
125+
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
/**
2+
* Alert Component
3+
* Observatory Design System
4+
*
5+
* For feedback messages and notifications
6+
* Variants: success, warning, danger, info
7+
*/
8+
9+
import {
10+
CheckCircleIcon,
11+
ExclamationTriangleIcon,
12+
InformationCircleIcon,
13+
XCircleIcon,
14+
XMarkIcon,
15+
} from '@heroicons/react/24/outline';
16+
17+
export function Alert({
18+
variant = 'info',
19+
title,
20+
children,
21+
dismissible = false,
22+
onDismiss,
23+
icon: CustomIcon,
24+
className = '',
25+
...props
26+
}) {
27+
let variants = {
28+
success: {
29+
container:
30+
'bg-[var(--accent-success-muted)] border-[color-mix(in_srgb,var(--accent-success)_24%,transparent)]',
31+
icon: 'text-[var(--accent-success)]',
32+
title: 'text-[var(--accent-success)]',
33+
text: 'text-[var(--text-secondary)]',
34+
DefaultIcon: CheckCircleIcon,
35+
},
36+
warning: {
37+
container:
38+
'bg-[var(--accent-warning-muted)] border-[color-mix(in_srgb,var(--accent-warning)_24%,transparent)]',
39+
icon: 'text-[var(--accent-warning)]',
40+
title: 'text-[var(--accent-warning)]',
41+
text: 'text-[var(--text-secondary)]',
42+
DefaultIcon: ExclamationTriangleIcon,
43+
},
44+
danger: {
45+
container:
46+
'bg-[var(--accent-danger-muted)] border-[color-mix(in_srgb,var(--accent-danger)_24%,transparent)]',
47+
icon: 'text-[var(--accent-danger)]',
48+
title: 'text-[var(--accent-danger)]',
49+
text: 'text-[var(--text-secondary)]',
50+
DefaultIcon: XCircleIcon,
51+
},
52+
info: {
53+
container:
54+
'bg-[var(--accent-info-muted)] border-[color-mix(in_srgb,var(--accent-info)_24%,transparent)]',
55+
icon: 'text-[var(--accent-info)]',
56+
title: 'text-[var(--accent-info)]',
57+
text: 'text-[var(--text-secondary)]',
58+
DefaultIcon: InformationCircleIcon,
59+
},
60+
};
61+
62+
let {
63+
container,
64+
icon,
65+
title: titleColor,
66+
text,
67+
DefaultIcon,
68+
} = variants[variant];
69+
let Icon = CustomIcon || DefaultIcon;
70+
71+
return (
72+
<div
73+
className={`flex gap-3 p-4 rounded-lg border ${container} ${className}`}
74+
{...props}
75+
>
76+
<div className={`flex-shrink-0 ${icon}`}>
77+
<Icon className="w-5 h-5" />
78+
</div>
79+
<div className="flex-1 min-w-0">
80+
{title && (
81+
<h4 className={`text-sm font-medium ${titleColor}`}>{title}</h4>
82+
)}
83+
{children && (
84+
<div className={`text-sm ${text} ${title ? 'mt-1' : ''}`}>
85+
{children}
86+
</div>
87+
)}
88+
</div>
89+
{dismissible && (
90+
<button
91+
type="button"
92+
onClick={onDismiss}
93+
className={`flex-shrink-0 ${icon} hover:opacity-70 transition-opacity`}
94+
>
95+
<XMarkIcon className="w-5 h-5" />
96+
</button>
97+
)}
98+
</div>
99+
);
100+
}

0 commit comments

Comments
 (0)