Repository navigation
Commit 474a534
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)
|

|

|

|

|
| [@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) |

|

|

|

|
|
[@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)
|

|

|

|

|
|
[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)
|

|

|

|

|
| [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) |

|

|

|

|
| [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) |

|

|

|

|
| pkg-types | [`2.3.0` →
`2.3.3`](https://renovatebot.com/diffs/npm/pkg-types/2.3.0/2.3.3) |

|

|

|

|
| [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)
|

|

|

|

|
| [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) |

|

|

|

|
| [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) |

|

|

|

|
|
[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)
|

|

|

|

|
|
[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)
|

|

|

|

|
| [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) |

|

|

|

|
| [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) |

|

|

|

|
| [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) |

|

|

|

|
---
### Release Notes
<details>
<summary>ast-grep/ast-grep (@​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
[@​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
[@​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
[@​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
[@​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
[@​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
([#​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
[@​BridgeAR](https://redirect.github.com/BridgeAR) in
[#​258](https://redirect.github.com/guybedford/es-module-lexer/pull/258)
- fix(parser): preserve complete import attribute metadata by
[@​BridgeAR](https://redirect.github.com/BridgeAR) in
[#​260](https://redirect.github.com/guybedford/es-module-lexer/pull/260)
- fix(ts): lex `/` after a postfix non-null assertion as division by
[@​guybedford](https://redirect.github.com/guybedford) in
[#​263](https://redirect.github.com/guybedford/es-module-lexer/pull/263)
- ci: add release and publish workflows by
[@​guybedford](https://redirect.github.com/guybedford) in
[#​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
[@​43081j](https://redirect.github.com/43081j) in
[#​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
-
[#​43247](https://redirect.github.com/microsoft/playwright/issues/43247)
\[Bug]: \_electron.launch intermittently loses a packaged app's first
window since 1.64.0
-
[#​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 #​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
[@​yan-ad](https://redirect.github.com/yan-ad) and **Claude Opus
5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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 [@​epr3](https://redirect.github.com/epr3) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​malik-jouda](https://redirect.github.com/malik-jouda) in
[#​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
[@​onmax](https://redirect.github.com/onmax) and **Claude Opus 5.5
(1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​J-Michalek](https://redirect.github.com/J-Michalek) and
**Claude Opus 5.5 (1M context)** in
[#​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
[@​rikzwarthoff](https://redirect.github.com/rikzwarthoff) in
[#​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
[@​xerox0213](https://redirect.github.com/xerox0213) in
[#​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
[@​kricsleo](https://redirect.github.com/kricsleo) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​yan-ad](https://redirect.github.com/yan-ad) and **Claude Opus
5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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 [@​jevin98](https://redirect.github.com/jevin98),
[@​cursoragent](https://redirect.github.com/cursoragent) and
**Claude Opus 5.5 (1M context)** in
[#​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
[@​Chaweki](https://redirect.github.com/Chaweki) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​SDIjeremy](https://redirect.github.com/SDIjeremy) in
[#​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
[@​chiliec](https://redirect.github.com/chiliec) and **Claude Opus
5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​yan-ad](https://redirect.github.com/yan-ad) in
[#​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
[@​kricsleo](https://redirect.github.com/kricsleo) and **Claude
Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) in
[#​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 [@​ahmedrangel](https://redirect.github.com/ahmedrangel)
and **Claude Opus 5.5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia), **Claude Opus
5.5 (1M context)** and
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[#​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
[@​qudsiamehmood](https://redirect.github.com/qudsiamehmood) in
[#​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
[@​EasonLin0716](https://redirect.github.com/EasonLin0716) and
**Claude Opus 5 (1M context)** in
[#​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
[@​kevinpickett](https://redirect.github.com/kevinpickett) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​KeionneDerousselle](https://redirect.github.com/KeionneDerousselle)
in
[#​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 [@​qqqqqf-q](https://redirect.github.com/qqqqqf-q) in
[#​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
[@​kaspernowak](https://redirect.github.com/kaspernowak) in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​martinascharrer](https://redirect.github.com/martinascharrer),
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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 [@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​simonworkhouse](https://redirect.github.com/simonworkhouse) in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​onmax](https://redirect.github.com/onmax) in
[#​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
[@​Cherry](https://redirect.github.com/Cherry) and **Claude Opus 5
(1M context)** in
[#​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
[@​gavgrego](https://redirect.github.com/gavgrego) in
[#​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
[@​benjamincanac](https://redirect.github.com/benjamincanac) in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​NasreddinHodja](https://redirect.github.com/NasreddinHodja) and
**Claude Opus 5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **mkeyy0**
in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) and **Lazizbek
Ergashev** in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) in
[#​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
[@​dibunbuns](https://redirect.github.com/dibunbuns) in
[#​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
[@​lazerg](https://redirect.github.com/lazerg) and **Lazizbek
Ergashev** in
[#​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 [@​61021](https://redirect.github.com/61021) and **Claude Opus
5 (1M context)** in
[#​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
[@​61021](https://redirect.github.com/61021) and **Claude Opus 5
(1M context)** in
[#​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
[@​zernonia](https://redirect.github.com/zernonia) and **Claude
Opus 5 (1M context)** in
[#​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
[@​benjamincanac](https://redirect.github.com/benjamincanac) in
[#​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 [@​lazerg](https://redirect.github.com/lazerg) and **Lazizbek
Ergashev** in [#​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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments