Skip to content

Commit 474a534

Browse files
chore(deps): update npm packages (#3108)
> [!NOTE] > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [@ast-grep/napi](https://ast-grep.github.io) ([source](https://redirect.github.com/ast-grep/ast-grep)) | [`^0.45.0` → `^0.51.0`](https://renovatebot.com/diffs/npm/@ast-grep%2fnapi/0.45.3/0.51.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@ast-grep%2fnapi/0.51.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@ast-grep%2fnapi/0.51.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@ast-grep%2fnapi/0.45.3/0.51.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ast-grep%2fnapi/0.45.3/0.51.0?slim=true) | | [@iconify/vue](https://iconify.design/) ([source](https://redirect.github.com/iconify/iconify/tree/HEAD/components/vue)) | [`5.0.1` → `5.0.3`](https://renovatebot.com/diffs/npm/@iconify%2fvue/5.0.1/5.0.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@iconify%2fvue/5.0.3?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@iconify%2fvue/5.0.3?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@iconify%2fvue/5.0.1/5.0.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@iconify%2fvue/5.0.1/5.0.3?slim=true) | | [@nkzw/safe-word-list](https://redirect.github.com/nkzw-tech/safe-word-list) | [`3.1.0` → `3.1.2`](https://renovatebot.com/diffs/npm/@nkzw%2fsafe-word-list/3.1.0/3.1.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@nkzw%2fsafe-word-list/3.1.2?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nkzw%2fsafe-word-list/3.1.2?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nkzw%2fsafe-word-list/3.1.0/3.1.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nkzw%2fsafe-word-list/3.1.0/3.1.2?slim=true) | | [es-module-lexer](https://redirect.github.com/guybedford/es-module-lexer) | [`3.0.3` → `3.0.4`](https://renovatebot.com/diffs/npm/es-module-lexer/3.0.3/3.0.4) | ![age](https://developer.mend.io/api/mc/badges/age/npm/es-module-lexer/3.0.4?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/es-module-lexer/3.0.4?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/es-module-lexer/3.0.3/3.0.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/es-module-lexer/3.0.3/3.0.4?slim=true) | | [fast-wrap-ansi](https://redirect.github.com/43081j/fast-wrap-ansi) | [`0.2.0` → `0.2.2`](https://renovatebot.com/diffs/npm/fast-wrap-ansi/0.2.0/0.2.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/fast-wrap-ansi/0.2.2?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fast-wrap-ansi/0.2.2?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fast-wrap-ansi/0.2.0/0.2.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fast-wrap-ansi/0.2.0/0.2.2?slim=true) | | [minimatch](https://redirect.github.com/isaacs/minimatch) | [`10.2.4` → `10.2.6`](https://renovatebot.com/diffs/npm/minimatch/10.2.4/10.2.6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/minimatch/10.2.6?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/minimatch/10.2.6?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/minimatch/10.2.4/10.2.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/minimatch/10.2.4/10.2.6?slim=true) | | pkg-types | [`2.3.0` → `2.3.3`](https://renovatebot.com/diffs/npm/pkg-types/2.3.0/2.3.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/pkg-types/2.3.3?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pkg-types/2.3.3?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pkg-types/2.3.0/2.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pkg-types/2.3.0/2.3.3?slim=true) | | [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`1.62.1` → `1.64.1`](https://renovatebot.com/diffs/npm/playwright/1.62.1/1.64.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.64.1?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.64.1?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.62.1/1.64.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.62.1/1.64.1?slim=true) | | [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.9.9` → `2.11.0`](https://renovatebot.com/diffs/npm/reka-ui/2.9.9/2.11.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/reka-ui/2.11.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reka-ui/2.11.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reka-ui/2.9.9/2.11.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reka-ui/2.9.9/2.11.0?slim=true) | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.3.0` → `4.3.3`](https://renovatebot.com/diffs/npm/tailwindcss/4.3.0/4.3.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.3.3?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.3.3?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.3.0/4.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.3.0/4.3.3?slim=true) | | [vitepress-plugin-group-icons](https://redirect.github.com/yuyinws/vitepress-plugin-group-icons) | [`1.7.5` → `1.7.7`](https://renovatebot.com/diffs/npm/vitepress-plugin-group-icons/1.7.5/1.7.7) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vitepress-plugin-group-icons/1.7.7?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitepress-plugin-group-icons/1.7.7?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitepress-plugin-group-icons/1.7.5/1.7.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitepress-plugin-group-icons/1.7.5/1.7.7?slim=true) | | [vitepress-plugin-llms](https://redirect.github.com/okineadev/vitepress-plugin-llms) | [`1.13.1` → `1.14.0`](https://renovatebot.com/diffs/npm/vitepress-plugin-llms/1.13.1/1.14.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vitepress-plugin-llms/1.14.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitepress-plugin-llms/1.14.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitepress-plugin-llms/1.13.1/1.14.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitepress-plugin-llms/1.13.1/1.14.0?slim=true) | | [vue](https://vuejs.org/) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.35` → `3.5.44`](https://renovatebot.com/diffs/npm/vue/3.5.35/3.5.44) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.44?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.5.44?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.5.35/3.5.44?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.5.35/3.5.44?slim=true) | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`4.127.1` → `4.151.0`](https://renovatebot.com/diffs/npm/wrangler/4.127.1/4.151.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/4.151.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/4.151.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/4.127.1/4.151.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/4.127.1/4.151.0?slim=true) | | [zod](https://zod.dev) ([source](https://redirect.github.com/colinhacks/zod)) | [`4.6.5` → `4.6.7`](https://renovatebot.com/diffs/npm/zod/4.6.5/4.6.7) | ![age](https://developer.mend.io/api/mc/badges/age/npm/zod/4.6.7?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zod/4.6.7?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zod/4.6.5/4.6.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/4.6.5/4.6.7?slim=true) | --- ### Release Notes <details> <summary>ast-grep/ast-grep (@&#8203;ast-grep/napi)</summary> ### [`v0.51.0`](https://redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0510) [Compare Source](https://redirect.github.com/ast-grep/ast-grep/compare/0.50.0...0.51.0) - fix(cli): use `ast-grep` name in project setup hint [`#3001`](https://redirect.github.com/ast-grep/ast-grep/pull/3001) - fix: replace deprecated serde_yaml with serde-saphyr [`#2999`](https://redirect.github.com/ast-grep/ast-grep/pull/2999) - fix(deps): update rust crate tree-sitter-haskell to 0.24.0 [`#2988`](https://redirect.github.com/ast-grep/ast-grep/pull/2988) - fix(cli): preserve files when update-all writes fail [`#2995`](https://redirect.github.com/ast-grep/ast-grep/pull/2995) - Revise security policy for clarity and updates [`a7d3f69`](https://redirect.github.com/ast-grep/ast-grep/commit/a7d3f6935320f9859c3d522d133aabba21ccff4c) - fix: update wasm linting [`ea55463`](https://redirect.github.com/ast-grep/ast-grep/commit/ea5546303f4aebe86c16a3fada2dae0372bd95c4) ### [`v0.50.0`](https://redirect.github.com/ast-grep/ast-grep/blob/HEAD/CHANGELOG.md#0500) [Compare Source](https://redirect.github.com/ast-grep/ast-grep/compare/0.45.3...0.50.0) > 7 October 2026 - feat(outline): add Java annotation type and element rules [`#2955`](https://redirect.github.com/ast-grep/ast-grep/pull/2955) - fix(outline): report Java private/protected fields in the outline [`#2950`](https://redirect.github.com/ast-grep/ast-grep/pull/2950) - feat(outline): add Java enum member rule [`#2954`](https://redirect.github.com/ast-grep/ast-grep/pull/2954) - chore(deps): update dependency [@&#8203;types/node](https://redirect.github.com/types/node) to v24.19.1 [`#2983`](https://redirect.github.com/ast-grep/ast-grep/pull/2983) - chore(deps): update dependency dprint to v0.60.1 [`#2984`](https://redirect.github.com/ast-grep/ast-grep/pull/2984) - feat(outline): add Java module declaration rule [`#2956`](https://redirect.github.com/ast-grep/ast-grep/pull/2956) - chore(deps): update rust crate termimad to v0.35.5 [`#2925`](https://redirect.github.com/ast-grep/ast-grep/pull/2925) - chore(deps): update rust crate napi-derive to v3.6.10 [`#2936`](https://redirect.github.com/ast-grep/ast-grep/pull/2936) - chore(deps): update dependency [@&#8203;napi-rs/cli](https://redirect.github.com/napi-rs/cli) to v3.10.6 [`#2922`](https://redirect.github.com/ast-grep/ast-grep/pull/2922) - chore(deps): update dependency chalk to v6.0.1 [`#2979`](https://redirect.github.com/ast-grep/ast-grep/pull/2979) - chore(deps): update rust crate tokio to v1.53.2 [`#2981`](https://redirect.github.com/ast-grep/ast-grep/pull/2981) - chore(deps): update rust crate thiserror to v2.0.21 [`#2966`](https://redirect.github.com/ast-grep/ast-grep/pull/2966) - chore(deps): update dependency oxlint to v1.86.0 [`#2967`](https://redirect.github.com/ast-grep/ast-grep/pull/2967) - chore(deps): update rust crate smallvec to v1.16.2 [`#2968`](https://redirect.github.com/ast-grep/ast-grep/pull/2968) - feat(outline): add Java wildcard-import outline rules [`#2948`](https://redirect.github.com/ast-grep/ast-grep/pull/2948) - fix(outline): capture C/C++ declarator identifier names [`#2946`](https://redirect.github.com/ast-grep/ast-grep/pull/2946) - feat(cli): add trust and revoke custom language policies [`#2972`](https://redirect.github.com/ast-grep/ast-grep/pull/2972) - refactor(cli): extract custom language policy [`#2977`](https://redirect.github.com/ast-grep/ast-grep/pull/2977) - feat(cli): add custom language loading policy [`#2971`](https://redirect.github.com/ast-grep/ast-grep/pull/2971) - fix(schema): reject null relation fields [`#2969`](https://redirect.github.com/ast-grep/ast-grep/pull/2969) - chore(deps): update rust crate clap_complete to v4.6.11 [`#2965`](https://redirect.github.com/ast-grep/ast-grep/pull/2965) - chore(deps): update rust crate clap to v4.6.7 [`#2964`](https://redirect.github.com/ast-grep/ast-grep/pull/2964) - chore(deps): update rust crate napi to v3.13.0 [`#2932`](https://redirect.github.com/ast-grep/ast-grep/pull/2932) - chore(deps): update dependency [@&#8203;types/node](https://redirect.github.com/types/node) to v24.13.6 [`#2941`](https://redirect.github.com/ast-grep/ast-grep/pull/2941) - feat(language): add Zig support [`#2942`](https://redirect.github.com/ast-grep/ast-grep/pull/2942) - fix: require opt-in for custom language libraries [`#2960`](https://redirect.github.com/ast-grep/ast-grep/pull/2960) - refactor: parse default run through app [`#2962`](https://redirect.github.com/ast-grep/ast-grep/pull/2962) - feat(outline): add Java record_declaration rule [`#2945`](https://redirect.github.com/ast-grep/ast-grep/pull/2945) - chore(deps): update rust crate toml_edit to v0.25.15 [`#2937`](https://redirect.github.com/ast-grep/ast-grep/pull/2937) - chore(deps): update rust crate smallvec to v1.16.1 [`#2920`](https://redirect.github.com/ast-grep/ast-grep/pull/2920) - chore(deps): update dependency [@&#8203;types/node](https://redirect.github.com/types/node) to v24.13.4 [`#2931`](https://redirect.github.com/ast-grep/ast-grep/pull/2931) - chore(deps): update dependency dprint to v0.57.4 [`#2926`](https://redirect.github.com/ast-grep/ast-grep/pull/2926) - chore(deps): update dependency oxlint to v1.82.0 [`#2928`](https://redirect.github.com/ast-grep/ast-grep/pull/2928) - chore(deps): update dependency oxlint to v1.81.0 [`#2919`](https://redirect.github.com/ast-grep/ast-grep/pull/2919) - chore(deps): update rust crate termimad to v0.35.3 [`#2921`](https://redirect.github.com/ast-grep/ast-grep/pull/2921) - chore(deps): update dependency dprint to v0.57.1 [`#2923`](https://redirect.github.com/ast-grep/ast-grep/pull/2923) - chore(deps): update dependency [@&#8203;ast-grep/napi](https://redirect.github.com/ast-grep/napi) to v0.45.3 [`#2918`](https://redirect.github.com/ast-grep/ast-grep/pull/2918) - feat(outline): add Java record_declaration rule ([#&#8203;2945](https://redirect.github.com/ast-grep/ast-grep/issues/2945)) [`#2944`](https://redirect.github.com/ast-grep/ast-grep/issues/2944) </details> <details> <summary>guybedford/es-module-lexer (es-module-lexer)</summary> ### [`v3.0.4`](https://redirect.github.com/guybedford/es-module-lexer/releases/tag/3.0.4) [Compare Source](https://redirect.github.com/guybedford/es-module-lexer/compare/3.0.3...3.0.4) #### What's Changed - perf(lexer): reduce TS lookahead work by [@&#8203;BridgeAR](https://redirect.github.com/BridgeAR) in [#&#8203;258](https://redirect.github.com/guybedford/es-module-lexer/pull/258) - fix(parser): preserve complete import attribute metadata by [@&#8203;BridgeAR](https://redirect.github.com/BridgeAR) in [#&#8203;260](https://redirect.github.com/guybedford/es-module-lexer/pull/260) - fix(ts): lex `/` after a postfix non-null assertion as division by [@&#8203;guybedford](https://redirect.github.com/guybedford) in [#&#8203;263](https://redirect.github.com/guybedford/es-module-lexer/pull/263) - ci: add release and publish workflows by [@&#8203;guybedford](https://redirect.github.com/guybedford) in [#&#8203;264](https://redirect.github.com/guybedford/es-module-lexer/pull/264) **Full Changelog**: <https://github.com/guybedford/es-module-lexer/compare/3.0.3...3.0.4> </details> <details> <summary>43081j/fast-wrap-ansi (fast-wrap-ansi)</summary> ### [`v0.2.2`](https://redirect.github.com/43081j/fast-wrap-ansi/releases/tag/0.2.2) [Compare Source](https://redirect.github.com/43081j/fast-wrap-ansi/compare/0.2.0...0.2.2) #### What's Changed - chore: fix typescript build by [@&#8203;43081j](https://redirect.github.com/43081j) in [#&#8203;95](https://redirect.github.com/43081j/fast-wrap-ansi/pull/95) **Full Changelog**: <https://github.com/43081j/fast-wrap-ansi/compare/0.2.1...0.2.2> </details> <details> <summary>isaacs/minimatch (minimatch)</summary> ### [`v10.2.6`](https://redirect.github.com/isaacs/minimatch/compare/v10.2.5...v10.2.6) [Compare Source](https://redirect.github.com/isaacs/minimatch/compare/v10.2.5...v10.2.6) ### [`v10.2.5`](https://redirect.github.com/isaacs/minimatch/compare/v10.2.4...v10.2.5) [Compare Source](https://redirect.github.com/isaacs/minimatch/compare/v10.2.4...v10.2.5) </details> <details> <summary>microsoft/playwright (playwright)</summary> ### [`v1.64.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.64.1) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.64.0...v1.64.1) ##### Bug Fixes - [#&#8203;43247](https://redirect.github.com/microsoft/playwright/issues/43247) \[Bug]: \_electron.launch intermittently loses a packaged app's first window since 1.64.0 - [#&#8203;43242](https://redirect.github.com/microsoft/playwright/issues/43242) \[Regression]: Chromium 155+ aborts a preflighted cross-origin redirect whenever any route is registered (net::ERR_ABORTED) ### [`v1.64.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.64.0) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.63.0...v1.64.0) #### 🧰 WebMCP New [page.webmcp](https://playwright.dev/docs/api/class-page#page-webmcp) and [frame.webmcp](https://playwright.dev/docs/api/class-frame#frame-webmcp) give access to the tools that a page registers through the experimental [WebMCP](https://playwright.dev/docs/api/class-webmcp) browser API, so you can test them like any other part of your app: ```js const browser = await chromium.launch({ args: ['--enable-features=WebMCP'] }); const page = await browser.newPage(); await page.goto('https://example.com'); for (const tool of await page.webmcp.tools()) console.log(tool.name, tool.description); const result = await page.webmcp.callTool('add', { a: 2, b: 40 }); console.log(result.content[0].text); // "42" ``` [Playwright MCP](https://playwright.dev/docs/getting-started-mcp) also supports WebMCP by default, with page-defined tools offered to the agent as `webmcp_<tool>`. Pass `--no-webmcp` to opt out. [`playwright-cli`](https://playwright.dev/docs/getting-started-cli) exposes them as well: ```bash playwright-cli webmcp-list playwright-cli webmcp-call search_catalog --params '{"query":"cats"}' ``` #### 🎬 Better videos Videos can now be recorded at a custom frame rate, and the decorations for actions are styled with plain CSS: ```js // playwright.config.ts import { defineConfig } from '@playwright/test'; export default defineConfig({ use: { video: { mode: 'on', size: { width: 1920, height: 1080 }, fps: 60, show: { actions: { style: { point: 'width: 20px; height: 20px; border-radius: 50%; background: red', highlight: 'outline: 2px solid #&#8203;333; background: rgba(0, 128, 255, .15)', title: 'font-size: 16px', }, }, }, }, }, }); ``` - New `fps` option in [testOptions.video](https://playwright.dev/docs/api/class-testoptions#test-options-video), [`recordVideo`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-record-video) and [screencast.start()](https://playwright.dev/docs/api/class-screencast#screencast-start). Firefox and WebKit currently capture up to 25 frames per second. - New [`style`](https://playwright.dev/docs/api/class-screencast#screencast-show-actions-option-style) option takes CSS declarations for the `point` marker, the target `highlight` and the action `title`. It replaces the `fontSize` option, which is now deprecated. - The cursor stays visible at the last action point, survives navigations and travels along a natural, eased path. - Videos are encoded with VP9 instead of VP8, which takes less CPU and produces smaller files of the same or better quality. - All video options are also available in [Playwright MCP](https://playwright.dev/docs/getting-started-mcp) and [`playwright-cli`](https://playwright.dev/docs/getting-started-cli). #### 🎯 Test runner - New [testProject.default](https://playwright.dev/docs/api/class-testproject#test-project-default) option keeps a project in the config without running it by default. You can configure every browser you care about, and let a plain `npx playwright test` run just your favourite one: ```js // playwright.config.ts import { defineConfig, devices } from '@playwright/test'; export default defineConfig({ projects: [ { name: 'chromium', use: devices['Desktop Chrome'] }, { name: 'firefox', use: devices['Desktop Firefox'], default: false }, { name: 'webkit', use: devices['Desktop Safari'], default: false }, ], }); ``` ```bash npx playwright test # runs chromium only npx playwright test --project=firefox # runs firefox npx playwright test --project="*" # runs all three, for example on CI ``` - New `--shuffle` command line option schedules tests in a random order, which helps to find tests that accidentally depend on each other. ```bash npx playwright test --shuffle # Running 42 tests using 4 workers, shuffle seed 271828182 # ... # Pass the seed to reproduce the same order. npx playwright test --shuffle 271828182 ``` - New `lock` option in [test.describe.configure()](https://playwright.dev/docs/api/class-test#test-describe-configure) adds [test locks](https://playwright.dev/docs/test-parallel#test-locks) to all tests in a file or a group: ```js test.describe.configure({ lock: 'user-settings' }); ``` - New `type` option of `toHaveScreenshot` in [testConfig.expect](https://playwright.dev/docs/api/class-testconfig#test-config-expect) stores all unnamed screenshots as WebP: ```js // playwright.config.ts export default defineConfig({ expect: { toHaveScreenshot: { type: 'webp' }, }, }); ``` #### 🪆 Locator.within() New [locator.within()](https://playwright.dev/docs/api/class-locator#locator-within) combines two locators that you already have, reading in the natural order — "this button, within that dialog": ```js const saveButton = page.getByRole('button', { name: 'Save' }); const dialog = page.getByTestId('settings-dialog'); await saveButton.within(dialog).click(); ``` Relative locators such as [locator.nth()](https://playwright.dev/docs/api/class-locator#locator-nth) or [locator.first()](https://playwright.dev/docs/api/class-locator#locator-first) are resolved inside each parent separately, which makes column-like queries straightforward: ```js // The third cell of every row, not the third cell in the table. const thirdColumn = page.getByRole('cell').nth(2).within(page.getByRole('row')); await expect(thirdColumn).toHaveText(['Apple', 'Banana', 'Cherry']); ``` #### New APIs - New [page.getByRef()](https://playwright.dev/docs/api/class-page#page-get-by-ref) locates an element by its aria ref, such as `e2`, reported by [page.ariaSnapshot()](https://playwright.dev/docs/api/class-page#page-aria-snapshot) in the `'ai'` mode. - New option [`includeShadow`](https://playwright.dev/docs/api/class-page#page-content-option-include-shadow) in [page.content()](https://playwright.dev/docs/api/class-page#page-content) and [frame.content()](https://playwright.dev/docs/api/class-frame#frame-content) serializes open shadow roots as [declarative shadow DOM](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM#declaratively_with_html). - New option [`signCount`](https://playwright.dev/docs/api/class-credentials#credentials-create-option-sign-count) sets the initial signature counter of a virtual credential. [credentials.create()](https://playwright.dev/docs/api/class-credentials#credentials-create) and [credentials.get()](https://playwright.dev/docs/api/class-credentials#credentials-get) return the current `signCount`, and it is saved and restored together with the credentials in the storage state. - New [fullConfig.filteredProjects](https://playwright.dev/docs/api/class-fullconfig#full-config-filtered-projects) lists the projects that were selected to run after applying the `--project` filter. It is available in global setup and reporters. - New [apiRequestContext.addCookies()](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-add-cookies), [apiRequestContext.cookies()](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-cookies) and [apiRequestContext.clearCookies()](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-clear-cookies) manage cookies of a request context, mirroring the [BrowserContext](https://playwright.dev/docs/api/class-browsercontext) methods: ```js await request.addCookies([{ name: 'session-id', value: '42', url: 'https://example.com' }]); console.log(await request.cookies('https://example.com')); await request.clearCookies({ name: 'session-id' }); ``` #### Breaking changes ⚠️ - `screen` property is now forwarded from the [device descriptors](https://playwright.dev/docs/emulation#devices). If you use `...devices['Desktop Chrome']` and alike, `window.screen` and media queries now see the emulated screen size. You can opt-out by explicitly setting `screen` to `undefined`: ```js // playwright.config.ts export default defineConfig({ use: { ...devices['Desktop Chrome'], screen: undefined, }, }); ``` - JSX in your test files now follows your `tsconfig.json`. Playwright compiles JSX in test files according to the `jsx`, `jsxFactory`, `jsxFragmentFactory` and `jsxImportSource` [tsconfig options](https://playwright.dev/docs/test-typescript#tsconfig-jsx-options), and defaults to the automatic runtime from `react/jsx-runtime`. - `--update-snapshots=missing` now passes the test run. Tests that only create missing snapshots now pass in the `'missing'` mode of [testConfig.updateSnapshots](https://playwright.dev/docs/api/class-testconfig#test-config-update-snapshots), so that CI can generate new snapshots and verify the existing ones in a single run. The mode used when the option is not specified is now called `'default'` and behaves as before: missing snapshots are written and the test fails. - Elements inside hidden iframes are considered hidden. Elements inside an iframe that is not visible, for example with `visibility: hidden`, are now considered hidden by actions, [locator.isVisible()](https://playwright.dev/docs/api/class-locator#locator-is-visible) and [expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible). #### Browser Versions - Chromium 156.0.8078.4 - Mozilla Firefox 157.0 - WebKit 27.2 This version was also tested against the following stable channels: - Google Chrome 155 - Microsoft Edge 155 ### [`v1.63.0`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.63.0) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.62.1...v1.63.0) #### 🔒 Test locks Tests that access a shared resource — an external service, a global account setting — can now declare a named `lock`. Tests that share a lock name never run concurrently, across files, workers and [projects](https://playwright.dev/docs/test-projects), while everything else keeps running in parallel: ```js test('update user settings', { lock: 'user-settings' }, async ({ page }) => { // never runs at the same time as other tests holding 'user-settings' }); ``` A test can hold multiple locks, and [test.describe()](https://playwright.dev/docs/api/class-test#test-describe) accepts a `lock` for the whole group. Learn more about [test locks](https://playwright.dev/docs/test-parallel#test-locks). #### 🪟 Locate across frames [page.frameLocator()](https://playwright.dev/docs/api/class-page#page-frame-locator) and [frame.frameLocator()](https://playwright.dev/docs/api/class-frame#frame-frame-locator) called without a selector search in any frame of the subtree, so you no longer need to locate the iframe first: ```js // Finds the button in any frame on the page. await page.frameLocator().getByRole('button').click(); ``` The rest of the locator resolves inside a single frame, just like a regular locator, and an error is thrown when it matches elements in several frames. #### 👁️ Visible-only locators New [locator.visible()](https://playwright.dev/docs/api/class-locator#locator-visible) returns a locator that matches only visible elements. It is the recommended replacement for the `:visible` CSS pseudo-class: ```js await page.locator('button').visible().click(); ``` #### 🧾 Step params and subtitles Steps now carry structured data for reporters. Playwright API steps report the target locator and call arguments, and [test.step()](https://playwright.dev/docs/api/class-test#test-step) accepts `subtitle` and `params` options for your own steps: ```js await test.step('Login', async () => { // ... }, { subtitle: 'as admin', params: { user: 'admin' } }); ``` Reporters receive them via [testStep.subtitle](https://playwright.dev/docs/api/class-teststep#test-step-subtitle) and [testStep.params](https://playwright.dev/docs/api/class-teststep#test-step-params). For Playwright API steps, the subtitle is the locator or the navigation url — for example, `Click` with subtitle `getByRole('button')`. Both are rendered next to the step title in the trace viewer and the HTML report. #### 🖼️ Aria and screen snapshots in traces The `snapshots` option of [tracing.start()](https://playwright.dev/docs/api/class-tracing#tracing-start) and the [testOptions.trace](https://playwright.dev/docs/api/class-testoptions#test-options-trace) fixture option now accept an object selecting what to capture on every action: ```js // playwright.config.ts export default defineConfig({ use: { trace: { mode: 'on', snapshots: { dom: true, aria: true, screen: true } }, }, }); ``` With aria and screen snapshots recorded, the new **Display Aria** mode in the trace viewer shows the action screenshot side by side with the aria snapshot, and hovering an aria node highlights it on the screenshot. #### New APIs ##### Browser and Context - [`httpCredentials`](https://playwright.dev/docs/api/class-browser#browser-new-context-option-http-credentials) now also accepts an array of credentials. The first entry matching the request origin is used, and entries without an origin match any request. - New option [`opfs`](https://playwright.dev/docs/api/class-browsercontext#browser-context-storage-state-option-opfs) includes the [origin private file system](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Origin_private_file_system) in the storage state, so it can be persisted and restored into later contexts. - New events [page.on('dialogclosed')](https://playwright.dev/docs/api/class-page#page-event-dialog-closed) and [browserContext.on('dialogclosed')](https://playwright.dev/docs/api/class-browsercontext#browser-context-event-dialog-closed) are emitted when a JavaScript dialog is accepted, dismissed or closed by the user. ##### Locators - New [locator.ariaSnapshotJSON()](https://playwright.dev/docs/api/class-locator#locator-aria-snapshot-json) and [page.ariaSnapshotJSON()](https://playwright.dev/docs/api/class-page#page-aria-snapshot-json) return the aria snapshot as a JSON value instead of YAML markup, with `mode`, `depth` and `boxes` options. - [apiRequestContext.get()](https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-get) and other request methods accept a type argument that types the response `json()`: ```js const response = await request.get<User>('/api/users/42'); const user = await response.json(); // typed as User ``` ##### Test runner - New standalone [testOptions.reducedMotion](https://playwright.dev/docs/api/class-testoptions#test-options-reduced-motion), [testOptions.forcedColors](https://playwright.dev/docs/api/class-testoptions#test-options-forced-colors) and [testOptions.contrast](https://playwright.dev/docs/api/class-testoptions#test-options-contrast) options. - New `--add-reporter` command line option appends a reporter on top of the ones configured in `playwright.config`, instead of replacing them like `--reporter` does. - New `omitTags` option for the `list`, `line`, `dot`, `github` and `junit` reporters suppresses the tags that are automatically appended to test titles. ##### Command line - `npx playwright install --no-remove` keeps the browsers of other Playwright installations instead of removing them. - `npx playwright codegen --http-credentials` records against pages behind HTTP authentication. ##### Miscellaneous - New built-in [`perfetto`](https://playwright.dev/docs/test-reporters#perfetto-reporter) reporter writes a Trace Event Format file for the [Perfetto UI](https://ui.perfetto.dev) or `chrome://tracing`, rendering the test run as a timeline with a lane per worker. - The HTML report renders a duration waterfall next to test steps. #### Announcements - ⚠️ The experimental `@playwright/experimental-ct-react`, `@playwright/experimental-ct-react17` and `@playwright/experimental-ct-vue` packages will no longer be updated. Follow the [migration guide](https://playwright.dev/docs/test-components#migration-from-the-experimental-packages) to move to the stories model introduced in 1.62. Story ids passed to [fixtures.mount()](https://playwright.dev/docs/api/class-fixtures#fixtures-mount) can now be typed through the generated `Stories` registry. - ⚠️ Ubuntu 20.04 is not supported anymore. - 🐧 On Linux arm64, Playwright now downloads the [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing) build of Chromium, the same build used on all other platforms. #### Browser Versions - Chromium 153.0.8010.12 - Mozilla Firefox 155.0 - WebKit 26.6 This version was also tested against the following stable channels: - Google Chrome 153 - Microsoft Edge 153 </details> <details> <summary>unovue/reka-ui (reka-ui)</summary> ### [`v2.11.0`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.11.0) [Compare Source](https://redirect.github.com/unovue/reka-ui/compare/v2.10.5...v2.11.0) #####    🚀 Features - Add TagGroup component  -  by [@&#8203;yan-ad](https://redirect.github.com/yan-ad) and **Claude Opus 5.5 (1M context)** in [#&#8203;2684](https://redirect.github.com/unovue/reka-ui/issues/2684) [<samp>(485cf)</samp>](https://redirect.github.com/unovue/reka-ui/commit/485cfd2b) - Add `loop` keyboard navigation to Listbox, Select and Tree  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2981](https://redirect.github.com/unovue/reka-ui/issues/2981) [<samp>(67409)</samp>](https://redirect.github.com/unovue/reka-ui/commit/67409e4e) - **Calendar/RangeCalendar**: - Enhanced keyboard navigation with Home/End/PageUp/PageDown shortcuts  -  by [@&#8203;epr3](https://redirect.github.com/epr3) and **Claude Opus 5.5 (1M context)** in [#&#8203;2530](https://redirect.github.com/unovue/reka-ui/issues/2530) [<samp>(3f836)</samp>](https://redirect.github.com/unovue/reka-ui/commit/3f836525) - **Checkbox**: - Add max prop  -  by [@&#8203;malik-jouda](https://redirect.github.com/malik-jouda) in [#&#8203;2058](https://redirect.github.com/unovue/reka-ui/issues/2058) [<samp>(72355)</samp>](https://redirect.github.com/unovue/reka-ui/commit/7235598f) - **Combobox**: - Add unmountOnHide prop  -  by [@&#8203;onmax](https://redirect.github.com/onmax) and **Claude Opus 5.5 (1M context)** in [#&#8203;2842](https://redirect.github.com/unovue/reka-ui/issues/2842) [<samp>(22ec2)</samp>](https://redirect.github.com/unovue/reka-ui/commit/22ec2bc2) - **Drawer**: - Add DrawerVirtualKeyboardProvider for software keyboards  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2889](https://redirect.github.com/unovue/reka-ui/issues/2889) [<samp>(e65ad)</samp>](https://redirect.github.com/unovue/reka-ui/commit/e65add53) - **Field,Form**: - Add Field and Form primitives  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2830](https://redirect.github.com/unovue/reka-ui/issues/2830) [<samp>(c0d26)</samp>](https://redirect.github.com/unovue/reka-ui/commit/c0d267f5) - **Menu**: - Allow grace customization  -  by [@&#8203;J-Michalek](https://redirect.github.com/J-Michalek) and **Claude Opus 5.5 (1M context)** in [#&#8203;1771](https://redirect.github.com/unovue/reka-ui/issues/1771) [<samp>(472b5)</samp>](https://redirect.github.com/unovue/reka-ui/commit/472b5b87) - **Number Field**: - Add startingValue prop for increment/decrement  -  by [@&#8203;rikzwarthoff](https://redirect.github.com/rikzwarthoff) in [#&#8203;2628](https://redirect.github.com/unovue/reka-ui/issues/2628) [<samp>(e9230)</samp>](https://redirect.github.com/unovue/reka-ui/commit/e9230140) - **NumberField**: - Add allowInvalid prop  -  by [@&#8203;xerox0213](https://redirect.github.com/xerox0213) in [#&#8203;2761](https://redirect.github.com/unovue/reka-ui/issues/2761) [<samp>(43a8e)</samp>](https://redirect.github.com/unovue/reka-ui/commit/43a8e6ae) - **Select/Listbox/Combobox/Menu/ContextMenu/DropdownMenu/Menubar/ColorSwatchPicker**: - Add slot prop to `*Item` and `forceMount` to `*ItemIndicator`  -  by [@&#8203;kricsleo](https://redirect.github.com/kricsleo) and **Claude Opus 5.5 (1M context)** in [#&#8203;2562](https://redirect.github.com/unovue/reka-ui/issues/2562) [<samp>(90c17)</samp>](https://redirect.github.com/unovue/reka-ui/commit/90c175aa) - **Toast**: - Allow action without dismissing toast  -  by [@&#8203;yan-ad](https://redirect.github.com/yan-ad) and **Claude Opus 5.5 (1M context)** in [#&#8203;2673](https://redirect.github.com/unovue/reka-ui/issues/2673) [<samp>(76cd1)</samp>](https://redirect.github.com/unovue/reka-ui/commit/76cd1ac1) - Add toast manager  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2985](https://redirect.github.com/unovue/reka-ui/issues/2985) [<samp>(6c047)</samp>](https://redirect.github.com/unovue/reka-ui/commit/6c047940) #####    🐞 Bug Fixes - Respect defaultPrevented in trigger event handlers  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2984](https://redirect.github.com/unovue/reka-ui/issues/2984) [<samp>(b9a0e)</samp>](https://redirect.github.com/unovue/reka-ui/commit/b9a0e2d8) - Regressions found in the 2.11.0 release review  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2991](https://redirect.github.com/unovue/reka-ui/issues/2991) [<samp>(29926)</samp>](https://redirect.github.com/unovue/reka-ui/commit/29926c77) - **Autocomplete**: - Clear stale filter when cancelling a blurred input  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2989](https://redirect.github.com/unovue/reka-ui/issues/2989) [<samp>(94965)</samp>](https://redirect.github.com/unovue/reka-ui/commit/94965eed) - **Calendar**: - Keep the visible month when modelValue is a new object for the same day  -  by [@&#8203;jevin98](https://redirect.github.com/jevin98), [@&#8203;cursoragent](https://redirect.github.com/cursoragent) and **Claude Opus 5.5 (1M context)** in [#&#8203;2961](https://redirect.github.com/unovue/reka-ui/issues/2961) [<samp>(8c820)</samp>](https://redirect.github.com/unovue/reka-ui/commit/8c820da6) - **ContextMenu**: - Support controlled open state  -  by [@&#8203;Chaweki](https://redirect.github.com/Chaweki) in [#&#8203;2936](https://redirect.github.com/unovue/reka-ui/issues/2936) [<samp>(78089)</samp>](https://redirect.github.com/unovue/reka-ui/commit/78089a5f) - Keep pointer anchor while the menu closes  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2978](https://redirect.github.com/unovue/reka-ui/issues/2978) [<samp>(5f5f9)</samp>](https://redirect.github.com/unovue/reka-ui/commit/5f5f92cf) - **DismissableLayer**: - Detect outside interactions inside an iframe  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2979](https://redirect.github.com/unovue/reka-ui/issues/2979) [<samp>(2ede3)</samp>](https://redirect.github.com/unovue/reka-ui/commit/2ede30ab) - Share one ref-counted owner for body pointer-events  -  by [@&#8203;SDIjeremy](https://redirect.github.com/SDIjeremy) in [#&#8203;2987](https://redirect.github.com/unovue/reka-ui/issues/2987) [<samp>(1451c)</samp>](https://redirect.github.com/unovue/reka-ui/commit/1451c7ac) - **Drawer**: - Accept initialFocus/finalFocus elements from another realm  -  by [@&#8203;chiliec](https://redirect.github.com/chiliec) and **Claude Opus 5.5 (1M context)** in [#&#8203;2972](https://redirect.github.com/unovue/reka-ui/issues/2972) [<samp>(2d9b3)</samp>](https://redirect.github.com/unovue/reka-ui/commit/2d9b3a15) - Let touch swipes start on interactive elements  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2982](https://redirect.github.com/unovue/reka-ui/issues/2982) [<samp>(abb74)</samp>](https://redirect.github.com/unovue/reka-ui/commit/abb7413a) - Let consumers cancel a swipe dismissal  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5.5 (1M context)** in [#&#8203;2983](https://redirect.github.com/unovue/reka-ui/issues/2983) [<samp>(714c3)</samp>](https://redirect.github.com/unovue/reka-ui/commit/714c35a9) - **FocusScope**: - Respect tabindex order on autofocus  -  by [@&#8203;yan-ad](https://redirect.github.com/yan-ad) in [#&#8203;2765](https://redirect.github.com/unovue/reka-ui/issues/2765) [<samp>(b755e)</samp>](https://redirect.github.com/unovue/reka-ui/commit/b755e676) - **Menu**: - Correct emitted event types to match runtime behavior  -  by [@&#8203;kricsleo](https://redirect.github.com/kricsleo) and **Claude Opus 5.5 (1M context)** in [#&#8203;2119](https://redirect.github.com/unovue/reka-ui/issues/2119) [<samp>(13373)</samp>](https://redirect.github.com/unovue/reka-ui/commit/13373e6f) - **Rating**: - Hide half-step indicators consistently during SSR  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) in [#&#8203;2965](https://redirect.github.com/unovue/reka-ui/issues/2965) [<samp>(65b6c)</samp>](https://redirect.github.com/unovue/reka-ui/commit/65b6ced0) - **Splitter**: - Ignore residual mousemove events after the pointer enters an iframe  -  by [@&#8203;ahmedrangel](https://redirect.github.com/ahmedrangel) and **Claude Opus 5.5 (1M context)** in [#&#8203;2969](https://redirect.github.com/unovue/reka-ui/issues/2969) [<samp>(6cd48)</samp>](https://redirect.github.com/unovue/reka-ui/commit/6cd4859a) - **TagsInput**: - Prevent form submission on Enter synchronously  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) in [#&#8203;2966](https://redirect.github.com/unovue/reka-ui/issues/2966) [<samp>(628dc)</samp>](https://redirect.github.com/unovue/reka-ui/commit/628dcba3) - **TimeRangeField**: - Sync segments when the value changes externally  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2902](https://redirect.github.com/unovue/reka-ui/issues/2902) [<samp>(b0163)</samp>](https://redirect.github.com/unovue/reka-ui/commit/b0163d1a) - **VisuallyHidden**: - Keep focusable content in the accessibility tree  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia), **Claude Opus 5.5 (1M context)** and [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2980](https://redirect.github.com/unovue/reka-ui/issues/2980) [<samp>(a9764)</samp>](https://redirect.github.com/unovue/reka-ui/commit/a97648f7) - **deps**: - Update vue  -  in [#&#8203;2093](https://redirect.github.com/unovue/reka-ui/issues/2093) [<samp>(7189b)</samp>](https://redirect.github.com/unovue/reka-ui/commit/7189b892) - **focus-scope**: - Trap focus inside a shadow root  -  by [@&#8203;qudsiamehmood](https://redirect.github.com/qudsiamehmood) in [#&#8203;2780](https://redirect.github.com/unovue/reka-ui/issues/2780) [<samp>(511e6)</samp>](https://redirect.github.com/unovue/reka-ui/commit/511e6d62) #####     [View changes on GitHub](https://redirect.github.com/unovue/reka-ui/compare/v2.10.5...v2.11.0) ### [`v2.10.5`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.10.5) [Compare Source](https://redirect.github.com/unovue/reka-ui/compare/v2.10.4...v2.10.5) #####    🐞 Bug Fixes - **Dialog**: - Re-key auto-focus on presence when force-mounted  -  by [@&#8203;EasonLin0716](https://redirect.github.com/EasonLin0716) and **Claude Opus 5 (1M context)** in [#&#8203;2856](https://redirect.github.com/unovue/reka-ui/issues/2856) [<samp>(eb702)</samp>](https://redirect.github.com/unovue/reka-ui/commit/eb7026c6) - **DismissableLayer**: - Drop stale deferred click listener on inside pointerdown  -  by [@&#8203;kevinpickett](https://redirect.github.com/kevinpickett) in [#&#8203;2892](https://redirect.github.com/unovue/reka-ui/issues/2892) [<samp>(f80e7)</samp>](https://redirect.github.com/unovue/reka-ui/commit/f80e7f0d) - Treat the layer root as inside so a focused FocusScope container does not dismiss it  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2942](https://redirect.github.com/unovue/reka-ui/issues/2942) [<samp>(8d0a4)</samp>](https://redirect.github.com/unovue/reka-ui/commit/8d0a4671) - **Drawer**: - Apply initialFocus and finalFocus on the content  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2935](https://redirect.github.com/unovue/reka-ui/issues/2935) [<samp>(0351f)</samp>](https://redirect.github.com/unovue/reka-ui/commit/0351f0d3) - **Listbox**: - Include $attrs in ListboxItem v-memo deps  -  by [@&#8203;KeionneDerousselle](https://redirect.github.com/KeionneDerousselle) in [#&#8203;2905](https://redirect.github.com/unovue/reka-ui/issues/2905) [<samp>(7b0eb)</samp>](https://redirect.github.com/unovue/reka-ui/commit/7b0ebc56) - **Menu**: - Preserve focus event target across nextTick to keep submenu open  -  by [@&#8203;qqqqqf-q](https://redirect.github.com/qqqqqf-q) in [#&#8203;2930](https://redirect.github.com/unovue/reka-ui/issues/2930) [<samp>(9a079)</samp>](https://redirect.github.com/unovue/reka-ui/commit/9a079466) - **NumberField**: - Defer touch stepper activation  -  by [@&#8203;kaspernowak](https://redirect.github.com/kaspernowak) in [#&#8203;2948](https://redirect.github.com/unovue/reka-ui/issues/2948) [<samp>(72a3a)</samp>](https://redirect.github.com/unovue/reka-ui/commit/72a3a1dd) - **PinInput**: - Reflect undefined values in numeric v-model type  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2815](https://redirect.github.com/unovue/reka-ui/issues/2815) [<samp>(94b84)</samp>](https://redirect.github.com/unovue/reka-ui/commit/94b849cb) - Stop trapping `Tab` inside the inputs in OTP mode  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2944](https://redirect.github.com/unovue/reka-ui/issues/2944) [<samp>(136d4)</samp>](https://redirect.github.com/unovue/reka-ui/commit/136d4939) - **Select**: - Exclude Space from typeahead search  -  by [@&#8203;martinascharrer](https://redirect.github.com/martinascharrer), [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2955](https://redirect.github.com/unovue/reka-ui/issues/2955) [<samp>(f4089)</samp>](https://redirect.github.com/unovue/reka-ui/commit/f4089fc9) - **Splitter**: - Reset resize handle hover state when pointer enters an iframe  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2941](https://redirect.github.com/unovue/reka-ui/issues/2941) [<samp>(d3dad)</samp>](https://redirect.github.com/unovue/reka-ui/commit/d3dad119) - **Tooltip**: - Stop pointing at a stale trigger element after it's replaced  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2925](https://redirect.github.com/unovue/reka-ui/issues/2925) [<samp>(2a4c6)</samp>](https://redirect.github.com/unovue/reka-ui/commit/2a4c6339) - Close hoverable content when it covers another trigger  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) in [#&#8203;2946](https://redirect.github.com/unovue/reka-ui/issues/2946) [<samp>(d54e3)</samp>](https://redirect.github.com/unovue/reka-ui/commit/d54e34d2) - **Tree**: - Leave keyboard events alone when they come from a text field  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2903](https://redirect.github.com/unovue/reka-ui/issues/2903) [<samp>(f1697)</samp>](https://redirect.github.com/unovue/reka-ui/commit/f1697dc0) - **shared**: - Stop infinite type recursion in useEmitAsProps for `[void]` emits  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2945](https://redirect.github.com/unovue/reka-ui/issues/2945) [<samp>(8360a)</samp>](https://redirect.github.com/unovue/reka-ui/commit/8360a70a) - Derive the day period from a ZonedDateTime's own time zone  -  by [@&#8203;simonworkhouse](https://redirect.github.com/simonworkhouse) in [#&#8203;2953](https://redirect.github.com/unovue/reka-ui/issues/2953) [<samp>(97006)</samp>](https://redirect.github.com/unovue/reka-ui/commit/97006686) - Derive the day period from the hour, not a localized string  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2958](https://redirect.github.com/unovue/reka-ui/issues/2958) [<samp>(a3239)</samp>](https://redirect.github.com/unovue/reka-ui/commit/a32396e7) #####    🏎 Performance - **Listbox**: Avoid collection scan when highlighting  -  by [@&#8203;onmax](https://redirect.github.com/onmax) in [#&#8203;2912](https://redirect.github.com/unovue/reka-ui/issues/2912) [<samp>(bb6f6)</samp>](https://redirect.github.com/unovue/reka-ui/commit/bb6f68ea) - **useFilter**: Short-circuit contains on exact substring match  -  by [@&#8203;Cherry](https://redirect.github.com/Cherry) and **Claude Opus 5 (1M context)** in [#&#8203;2890](https://redirect.github.com/unovue/reka-ui/issues/2890) [<samp>(94895)</samp>](https://redirect.github.com/unovue/reka-ui/commit/94895041) #####     [View changes on GitHub](https://redirect.github.com/unovue/reka-ui/compare/v2.10.4...v2.10.5) ### [`v2.10.4`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.10.4) [Compare Source](https://redirect.github.com/unovue/reka-ui/compare/v2.10.3...v2.10.4) #####    🐞 Bug Fixes - **Combobox**: - Defer highlight scroll until Popper placement  -  by [@&#8203;gavgrego](https://redirect.github.com/gavgrego) in [#&#8203;2885](https://redirect.github.com/unovue/reka-ui/issues/2885) [<samp>(48a85)</samp>](https://redirect.github.com/unovue/reka-ui/commit/48a851cb) - **DismissableLayer**: - Ignore outside pointerdown while not present  -  by [@&#8203;benjamincanac](https://redirect.github.com/benjamincanac) in [#&#8203;2863](https://redirect.github.com/unovue/reka-ui/issues/2863) [<samp>(099da)</samp>](https://redirect.github.com/unovue/reka-ui/commit/099dab99) - Remove the stale branch element from the registry on unmount  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2874](https://redirect.github.com/unovue/reka-ui/issues/2874) [<samp>(e65b3)</samp>](https://redirect.github.com/unovue/reka-ui/commit/e65b3de9) - **Drawer**: - Toggle open state on trigger click  -  by [@&#8203;NasreddinHodja](https://redirect.github.com/NasreddinHodja) and **Claude Opus 5 (1M context)** in [#&#8203;2881](https://redirect.github.com/unovue/reka-ui/issues/2881) [<samp>(d5cb4)</samp>](https://redirect.github.com/unovue/reka-ui/commit/d5cb4375) - Lock the swipe gesture to one axis on scrollable content  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2887](https://redirect.github.com/unovue/reka-ui/issues/2887) [<samp>(c543b)</samp>](https://redirect.github.com/unovue/reka-ui/commit/c543b1db) - **FocusScope**: - Confirm focus is orphaned before pulling it to the container  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **mkeyy0** in [#&#8203;2888](https://redirect.github.com/unovue/reka-ui/issues/2888) [<samp>(f6f75)</samp>](https://redirect.github.com/unovue/reka-ui/commit/f6f75d0f) - **RadioGroup**: - Stop falling back to the item value for aria-label  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) and **Lazizbek Ergashev** in [#&#8203;2861](https://redirect.github.com/unovue/reka-ui/issues/2861) [<samp>(3efdb)</samp>](https://redirect.github.com/unovue/reka-ui/commit/3efdb080) - **Select,Popover**: - Drop aria-controls while the content is not rendered  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in [#&#8203;2883](https://redirect.github.com/unovue/reka-ui/issues/2883) [<samp>(6d2de)</samp>](https://redirect.github.com/unovue/reka-ui/commit/6d2de0ce) - **Stepper**: - Default StepperIndicator as <span>  -  by [@&#8203;dibunbuns](https://redirect.github.com/dibunbuns) in [#&#8203;2865](https://redirect.github.com/unovue/reka-ui/issues/2865) [<samp>(c23e0)</samp>](https://redirect.github.com/unovue/reka-ui/commit/c23e0ed8) - **Tooltip**: - Receive the open broadcast on document instead of window  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) and **Lazizbek Ergashev** in [#&#8203;2869](https://redirect.github.com/unovue/reka-ui/issues/2869) [<samp>(b32f2)</samp>](https://redirect.github.com/unovue/reka-ui/commit/b32f255e) #####     [View changes on GitHub](https://redirect.github.com/unovue/reka-ui/compare/v2.10.3...v2.10.4) ### [`v2.10.3`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.10.3) [Compare Source](https://redirect.github.com/unovue/reka-ui/compare/v2.10.2...v2.10.3) *No significant changes* #####     [View changes on GitHub](https://redirect.github.com/unovue/reka-ui/compare/v2.10.2...v2.10.3) ### [`v2.10.2`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.10.2) [Compare Source](https://redirect.github.com/unovue/reka-ui/compare/v2.10.1...v2.10.2) #####    🐞 Bug Fixes - **DateField,TimeField**: Advance segment focus in DOM order in RTL  -  by [@&#8203;61021](https://redirect.github.com/61021) and **Claude Opus 5 (1M context)** in [#&#8203;2813](https://redirect.github.com/unovue/reka-ui/issues/2813) [<samp>(868cb)</samp>](https://redirect.github.com/unovue/reka-ui/commit/868cbcbd) - **DismissableLayer**: Keep body pointer-events locked when the last scroll lock releases  -  by [@&#8203;61021](https://redirect.github.com/61021) and **Claude Opus 5 (1M context)** in [#&#8203;2832](https://redirect.github.com/unovue/reka-ui/issues/2832) [<samp>(a24ea)</samp>](https://redirect.github.com/unovue/reka-ui/commit/a24ea69a) - **Drawer**: Track drags in non-dismissable directions so the drawer pulls elastically  -  by [@&#8203;zernonia](https://redirect.github.com/zernonia) and **Claude Opus 5 (1M context)** in [#&#8203;2854](https://redirect.github.com/unovue/reka-ui/issues/2854) [<samp>(719d5)</samp>](https://redirect.github.com/unovue/reka-ui/commit/719d59af) - **IME**: Process Android soft-keyboard composition live for filters  -  by [@&#8203;benjamincanac](https://redirect.github.com/benjamincanac) in [#&#8203;2806](https://redirect.github.com/unovue/reka-ui/issues/2806) [<samp>(4e40e)</samp>](https://redirect.github.com/unovue/reka-ui/commit/4e40e144) - **NumberField**: Allow backspacing through a formatted unit suffix  -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) and **Lazizbek Ergashev** in [#&#8203;2851 > [!IMPORTANT] > ✂ PR body was truncated to here. </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - "before 10am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/voidzero-dev/vite-plus). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: voidzero-guard[bot] <278573678+voidzero-guard[bot]@users.noreply.github.com>
1 parent 379b803 commit 474a534

2 files changed

Lines changed: 42 additions & 42 deletions

File tree

‎packages/core/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
"yuku-parser": "0.19.0"
118118
},
119119
"devDependencies": {
120-
"@ast-grep/napi": "^0.45.0",
120+
"@ast-grep/napi": "^0.51.0",
121121
"@emnapi/core": "catalog:",
122122
"@emnapi/runtime": "catalog:",
123123
"@napi-rs/cli": "catalog:",

‎pnpm-lock.yaml‎

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

0 commit comments

Comments
 (0)