Skip to content

merge release-9.0.8 - #31573

Merged
brandyscarney merged 19 commits into
9.0.xfrom
release-9.0.8
Oct 14, 2026
Merged

brandyscarney merged 19 commits into
9.0.xfrom
release-9.0.8

Conversation

@brandyscarney

Copy link
Copy Markdown
Member

v9.0.8

thetaPC and others added 19 commits October 7, 2026 10:50
## What is the current behavior?

Stencil Nightly Build installs the latest
`@stencil/react-output-target`, which changes
`packages/react/package-lock.json`. When it checks for a clean git diff,
the altered package-lock file fails CI.

## What is the new behavior?

- Clean up `packages/react/package-lock.json` along with `package.json`.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No
Issue number: internal

---------

## What is the current behavior?

Currently, leaving a page that hosts a nested `ion-router-outlet` (like
an `ion-tabs` page) only fires leave events on that page, since core
dispatches them with `bubbles: false`. The active tab page never gets
`ionViewWillLeave` or `ionViewDidLeave`, and in Angular it also misses
enter events on the way back. React was fixed as part of the RR6 upgrade
in #30831.

## What is the new behavior?

The nested outlet now fires the parent page's lifecycle events on its
active page in step with the parent. Angular forwards all four events.
Vue forwards leave only, because its tabs outlet already fires enter on
return. Returning to a different tab no longer fires leave a second time
on the page that already left.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

Angular skips its forward when the app already re-dispatched the event
itself (the workaround from #16834), so those apps don't get it twice.
Apps that call custom methods like `tabsWillLeave()` instead will now
run both.

A cancelled swipe back gives the tab page an unpaired
`ionViewWillLeave`, same as core already does for the tabs page.

## Current dev build
```
9.0.7-dev.11791305593.188c8151
```
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | minor | `v7.0.0` → `v7.1.0` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

###
[`v7.1.0`](https://redirect.github.com/actions/setup-node/releases/tag/v7.1.0)

[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v7.0.0...v7.1.0)

#### What's Changed

##### Enhancements:

- Add support for mise.toml file by
[@&#8203;gperdomor](https://redirect.github.com/gperdomor) in
[#&#8203;1421](https://redirect.github.com/actions/setup-node/pull/1421)
- Support absolute paths in node-version-file by
[@&#8203;v-mahabaleshwars](https://redirect.github.com/v-mahabaleshwars)
in
[#&#8203;1633](https://redirect.github.com/actions/setup-node/pull/1633)

##### Bug fixes:

- Add Node version validation and manifest fetch retry by
[@&#8203;v-jitenderpalsingh](https://redirect.github.com/v-jitenderpalsingh)
in
[#&#8203;1580](https://redirect.github.com/actions/setup-node/pull/1580)

##### Documentation updates:

- README.md: bump actions/checkout to latest version 7 by
[@&#8203;deining](https://redirect.github.com/deining) in
[#&#8203;1578](https://redirect.github.com/actions/setup-node/pull/1578)
- docs: add V7 ESM migration and NODE_AUTH_TOKEN behavior change by
[@&#8203;v-gowridurgad](https://redirect.github.com/v-gowridurgad) in
[#&#8203;1593](https://redirect.github.com/actions/setup-node/pull/1593)
- Fixed cache recommendation syntax by
[@&#8203;SubJunk](https://redirect.github.com/SubJunk) in
[#&#8203;1603](https://redirect.github.com/actions/setup-node/pull/1603)

##### Dependency updates:

- Update workflow pins and migrate Node matrices to modern versions by
[@&#8203;v-HarithaVattikuti](https://redirect.github.com/v-HarithaVattikuti)
in
[#&#8203;1583](https://redirect.github.com/actions/setup-node/pull/1583)
- Upgrade
[@&#8203;actions/cache](https://redirect.github.com/actions/cache) to
6.2.0 by [@&#8203;philip-gai](https://redirect.github.com/philip-gai) in
[#&#8203;1584](https://redirect.github.com/actions/setup-node/pull/1584)
- Pin [@&#8203;types/node](https://redirect.github.com/types/node) to
v24 by
[@&#8203;v-priyagupta108](https://redirect.github.com/v-priyagupta108)
in
[#&#8203;1585](https://redirect.github.com/actions/setup-node/pull/1585)
- Override brace-expansion to 5.0.8 by
[@&#8203;v-priyagupta108](https://redirect.github.com/v-priyagupta108)
with [@&#8203;Copilot](https://redirect.github.com/Copilot) in
[#&#8203;1599](https://redirect.github.com/actions/setup-node/pull/1599)
- Upgrade actions/checkout from 7.0.0 to 7.0.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1598](https://redirect.github.com/actions/setup-node/pull/1598)
- Upgrade prettier from 3.8.4 to 3.9.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1590](https://redirect.github.com/actions/setup-node/pull/1590)
- Upgrade [@&#8203;vercel/ncc](https://redirect.github.com/vercel/ncc)
from 0.44.0 to 0.45.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1610](https://redirect.github.com/actions/setup-node/pull/1610)
- Upgrade pnpm/action-setup from 6.0.9 to 6.0.10 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1602](https://redirect.github.com/actions/setup-node/pull/1602)
- Upgrade baseline-browser-mapping from 2.10.38 to 2.11.22 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1629](https://redirect.github.com/actions/setup-node/pull/1629)
- Upgrade
[@&#8203;types/semver](https://redirect.github.com/types/semver) from
7.7.1 to 7.8.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1616](https://redirect.github.com/actions/setup-node/pull/1616)
- Upgrade
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.62.0 to 8.70.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1615](https://redirect.github.com/actions/setup-node/pull/1615)
- Upgrade pnpm/action-setup from 6.0.10 to 6.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1631](https://redirect.github.com/actions/setup-node/pull/1631)
- Upgrade jest-each from 30.4.1 to 30.5.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1636](https://redirect.github.com/actions/setup-node/pull/1636)
- Upgrade eslint-plugin-n from 18.1.0 to 18.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1638](https://redirect.github.com/actions/setup-node/pull/1638)
- Update dependencies and add license files by
[@&#8203;v-HarithaVattikuti](https://redirect.github.com/v-HarithaVattikuti)
in
[#&#8203;1642](https://redirect.github.com/actions/setup-node/pull/1642)
- Upgrade eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to
7.1.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[#&#8203;1635](https://redirect.github.com/actions/setup-node/pull/1635)

#### New Contributors

-
[@&#8203;v-jitenderpalsingh](https://redirect.github.com/v-jitenderpalsingh)
made their first contribution in
[#&#8203;1580](https://redirect.github.com/actions/setup-node/pull/1580)
- [@&#8203;philip-gai](https://redirect.github.com/philip-gai) made
their first contribution in
[#&#8203;1584](https://redirect.github.com/actions/setup-node/pull/1584)
- [@&#8203;gperdomor](https://redirect.github.com/gperdomor) made their
first contribution in
[#&#8203;1421](https://redirect.github.com/actions/setup-node/pull/1421)
- [@&#8203;SubJunk](https://redirect.github.com/SubJunk) made their
first contribution in
[#&#8203;1603](https://redirect.github.com/actions/setup-node/pull/1603)

**Full Changelog**:
<actions/setup-node@v7.0.0...v7.1.0>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…lar/test/apps/ng19 (#31551)

Bumps [form-data](https://github.com/form-data/form-data) from 4.0.1 to
4.0.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/form-data/form-data/blob/master/CHANGELOG.md">form-data's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.5...v4.0.6">v4.0.6</a>
- 2026-06-12</h2>
<h3>Commits</h3>
<ul>
<li>[Fix] escape CR, LF, and <code>&quot;</code> in field names and
filenames <a
href="https://github.com/form-data/form-data/commit/8dff42c6da654ed4e7ad4acb7f8ccd3831217c99"><code>8dff42c</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>auto-changelog</code>, <code>tape</code> <a
href="https://github.com/form-data/form-data/commit/f31d21ef10bf46e46344c3ee4f99acbef6be43e1"><code>f31d21e</code></a></li>
<li>[Deps] update <code>hasown</code>, <code>mime-types</code> <a
href="https://github.com/form-data/form-data/commit/92ae0eb5da94d6f01925d5f4fcffb2a1e50ed7cd"><code>92ae0eb</code></a></li>
<li>[Dev Deps] update <code>js-randomness-predictor</code> <a
href="https://github.com/form-data/form-data/commit/67b0f65c2e0b065a511d42227d35e4d367644e97"><code>67b0f65</code></a></li>
</ul>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.4...v4.0.5">v4.0.5</a>
- 2025-11-17</h2>
<h3>Commits</h3>
<ul>
<li>[Tests] Switch to newer v8 prediction library; enable node 24
testing <a
href="https://github.com/form-data/form-data/commit/16e00765342106876f98a1c9703314006c9e937a"><code>16e0076</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code> <a
href="https://github.com/form-data/form-data/commit/5822467f0ec21f6ad613c1c90856375e498793c7"><code>5822467</code></a></li>
<li>[Fix] set Symbol.toStringTag in the proper place <a
href="https://github.com/form-data/form-data/commit/76d0dee43933b5e167f7f09e5d9cbbd1cf911aa7"><code>76d0dee</code></a></li>
</ul>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4">v4.0.4</a>
- 2025-07-16</h2>
<h3>Commits</h3>
<ul>
<li>[meta] add <code>auto-changelog</code> <a
href="https://github.com/form-data/form-data/commit/811f68282fab0315209d0e2d1c44b6c32ea0d479"><code>811f682</code></a></li>
<li>[Tests] handle predict-v8-randomness failures in node &lt; 17 and
node &gt; 23 <a
href="https://github.com/form-data/form-data/commit/1d11a76434d101f22fdb26b8aef8615f28b98402"><code>1d11a76</code></a></li>
<li>[Fix] Switch to using <code>crypto</code> random for boundary values
<a
href="https://github.com/form-data/form-data/commit/3d1723080e6577a66f17f163ecd345a21d8d0fd0"><code>3d17230</code></a></li>
<li>[Tests] fix linting errors <a
href="https://github.com/form-data/form-data/commit/5e340800b5f8914213e4e0378c084aae71cfd73a"><code>5e34080</code></a></li>
<li>[meta] actually ensure the readme backup isn’t published <a
href="https://github.com/form-data/form-data/commit/316c82ba93fd4985af757b771b9a1f26d3b709ef"><code>316c82b</code></a></li>
<li>[Dev Deps] update <code>@ljharb/eslint-config</code> <a
href="https://github.com/form-data/form-data/commit/58c25d76406a5b0dfdf54045cf252563f2bbda8d"><code>58c25d7</code></a></li>
<li>[meta] fix readme capitalization <a
href="https://github.com/form-data/form-data/commit/2300ca19595b0ee96431e868fe2a40db79e41c61"><code>2300ca1</code></a></li>
</ul>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.2...v4.0.3">v4.0.3</a>
- 2025-06-05</h2>
<h3>Fixed</h3>
<ul>
<li>[Fix] <code>append</code>: avoid a crash on nullish values <a
href="https://redirect.github.com/form-data/form-data/issues/577"><code>[#577](https://github.com/form-data/form-data/issues/577)</code></a></li>
</ul>
<h3>Commits</h3>
<ul>
<li>[eslint] use a shared config <a
href="https://github.com/form-data/form-data/commit/426ba9ac440f95d1998dac9a5cd8d738043b048f"><code>426ba9a</code></a></li>
<li>[eslint] fix some spacing issues <a
href="https://github.com/form-data/form-data/commit/20941917f0e9487e68c564ebc3157e23609e2939"><code>2094191</code></a></li>
<li>[Refactor] use <code>hasown</code> <a
href="https://github.com/form-data/form-data/commit/81ab41b46fdf34f5d89d7ff30b513b0925febfaa"><code>81ab41b</code></a></li>
<li>[Fix] validate boundary type in <code>setBoundary()</code> method <a
href="https://github.com/form-data/form-data/commit/8d8e4693093519f7f18e3c597d1e8df8c493de9e"><code>8d8e469</code></a></li>
<li>[Tests] add tests to check the behavior of <code>getBoundary</code>
with non-strings <a
href="https://github.com/form-data/form-data/commit/837b8a1f7562bfb8bda74f3fc538adb7a5858995"><code>837b8a1</code></a></li>
<li>[Dev Deps] remove unused deps <a
href="https://github.com/form-data/form-data/commit/870e4e665935e701bf983a051244ab928e62d58e"><code>870e4e6</code></a></li>
<li>[meta] remove local commit hooks <a
href="https://github.com/form-data/form-data/commit/e6e83ccb545a5619ed6cd04f31d5c2f655eb633e"><code>e6e83cc</code></a></li>
<li>[Dev Deps] update <code>eslint</code> <a
href="https://github.com/form-data/form-data/commit/4066fd6f65992b62fa324a6474a9292a4f88c916"><code>4066fd6</code></a></li>
<li>[meta] fix scripts to use prepublishOnly <a
href="https://github.com/form-data/form-data/commit/c4bbb13c0ef669916657bc129341301b1d331d75"><code>c4bbb13</code></a></li>
</ul>
<h2><a
href="https://github.com/form-data/form-data/compare/v4.0.1...v4.0.2">v4.0.2</a>
- 2025-02-14</h2>
<h3>Merged</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/form-data/form-data/commit/64190db548c0179e37206858e39f27cf513e9435"><code>64190db</code></a>
v4.0.6</li>
<li><a
href="https://github.com/form-data/form-data/commit/92ae0eb5da94d6f01925d5f4fcffb2a1e50ed7cd"><code>92ae0eb</code></a>
[Deps] update <code>hasown</code>, <code>mime-types</code></li>
<li><a
href="https://github.com/form-data/form-data/commit/f31d21ef10bf46e46344c3ee4f99acbef6be43e1"><code>f31d21e</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>auto-changelog</code>, <code>tape</code></li>
<li><a
href="https://github.com/form-data/form-data/commit/8dff42c6da654ed4e7ad4acb7f8ccd3831217c99"><code>8dff42c</code></a>
[Fix] escape CR, LF, and <code>&quot;</code> in field names and
filenames</li>
<li><a
href="https://github.com/form-data/form-data/commit/67b0f65c2e0b065a511d42227d35e4d367644e97"><code>67b0f65</code></a>
[Dev Deps] update <code>js-randomness-predictor</code></li>
<li><a
href="https://github.com/form-data/form-data/commit/68ff7dda8834d6de095a7008cef0e03bc252ca98"><code>68ff7dd</code></a>
v4.0.5</li>
<li><a
href="https://github.com/form-data/form-data/commit/5822467f0ec21f6ad613c1c90856375e498793c7"><code>5822467</code></a>
[Dev Deps] update <code>@ljharb/eslint-config</code>,
<code>eslint</code></li>
<li><a
href="https://github.com/form-data/form-data/commit/76d0dee43933b5e167f7f09e5d9cbbd1cf911aa7"><code>76d0dee</code></a>
[Fix] set Symbol.toStringTag in the proper place</li>
<li><a
href="https://github.com/form-data/form-data/commit/16e00765342106876f98a1c9703314006c9e937a"><code>16e0076</code></a>
[Tests] Switch to newer v8 prediction library; enable node 24
testing</li>
<li><a
href="https://github.com/form-data/form-data/commit/41996f5ac73a867046d48512cab62e64fc846dad"><code>41996f5</code></a>
v4.0.4</li>
<li>Additional commits viewable in <a
href="https://github.com/form-data/form-data/compare/v4.0.1...v4.0.6">compare
view</a></li>
</ul>
</details>
<details>
<summary>Install script changes</summary>
<p>This version modifies <code>prepublish</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=form-data&package-manager=npm_and_yarn&previous-version=4.0.1&new-version=4.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ionic-team/ionic-framework/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js)
from 4.7.7 to 4.7.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/releases">handlebars's
releases</a>.</em></p>
<blockquote>
<h2>v4.7.10</h2>
<ul>
<li>security: Sanitize the source map URL when minifying - f37c599</li>
<li>security: Iterate lazily in #each and strip whitespace in linear
time - 812c226</li>
<li>security: Escape <code>&lt;!--</code> and <code>&lt;script</code> in
precompiled output - 609d1b1 GHSA-xw65-4hp5-5hc7</li>
<li>security: Don't trust special properties on context data - ceec388
GHSA-p8wg-vrv2-v86f</li>
<li>security: Only compile partials that are template strings -
c28ee7a</li>
<li>security: Only dispatch known node types in the Compiler and Visitor
- 7d501a5</li>
<li>security: Validate AST values in the compiler instead of the parser
- 703fdcc GHSA-8r5x-fm3f-whwj</li>
<li>Clarify that --root does not restrict filesystem access -
0fcf25c</li>
<li>Bump minimist to ^1.2.8 - ea8ed82</li>
<li>Fix Ruby component publishing documentation - d069c1c</li>
<li>Fix Composer component definition - 6714e07</li>
</ul>
<p>Compatibility notes:</p>
<ul>
<li><code>{{#each}}</code> iterates iterables such as <code>Map</code>,
<code>Set</code> and generators lazily, like <code>for...of</code>,
instead of
copying them into an array first. Values added to the iterable while the
block renders are now visited too.</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.9...v4.7.10">Commits</a></p>
<h2>v4.7.9</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2w6w-674q-4c4q</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-3mfm-83xf-c92r</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xhpv-hc6g-r9c6</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-xjpj-3mr7-gcpf</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-9cx6-37pm-9jff</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-2qvq-rjwj-gvw9</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-7rx3-28cr-v5wh</a></li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2">https://github.com/handlebars-lang/handlebars.js/security/advisories/GHSA-442j-39wm-28r2</a></li>
</ul>
</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
<h2>v4.7.8</h2>
<ul>
<li>Make library compatible with workers (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1894">#1894</a>)
- 3d3796c</li>
<li>Don't rely on Node.js global object (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1776">#1776</a>)
- 2954e7e</li>
<li>Fix compiling of each block params in strict mode (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1855">#1855</a>)
- 30dbf04</li>
<li>Fix rollup warning when importing Handlebars as ESM - 03d387b</li>
<li>Fix bundler issue with webpack 5 (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1862">#1862</a>)
- c6c6bbb</li>
<li>Use https instead of git for mustache submodule - 88ac068</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...v4.7.8">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/handlebars-lang/handlebars.js/blob/v4.7.10/release-notes.md">handlebars's
changelog</a>.</em></p>
<blockquote>
<h2>v4.7.10 - October 5th, 2026</h2>
<ul>
<li>security: Sanitize the source map URL when minifying - f37c599</li>
<li>security: Iterate lazily in #each and strip whitespace in linear
time - 812c226</li>
<li>security: Escape <code>&lt;!--</code> and <code>&lt;script</code> in
precompiled output - 609d1b1 GHSA-xw65-4hp5-5hc7</li>
<li>security: Don't trust special properties on context data - ceec388
GHSA-p8wg-vrv2-v86f</li>
<li>security: Only compile partials that are template strings -
c28ee7a</li>
<li>security: Only dispatch known node types in the Compiler and Visitor
- 7d501a5</li>
<li>security: Validate AST values in the compiler instead of the parser
- 703fdcc GHSA-8r5x-fm3f-whwj</li>
<li>Clarify that --root does not restrict filesystem access -
0fcf25c</li>
<li>Bump minimist to ^1.2.8 - ea8ed82</li>
<li>Fix Ruby component publishing documentation - d069c1c</li>
<li>Fix Composer component definition - 6714e07</li>
</ul>
<p>Compatibility notes:</p>
<ul>
<li><code>{{#each}}</code> iterates iterables such as <code>Map</code>,
<code>Set</code> and generators lazily, like <code>for...of</code>,
instead of
copying them into an array first. Values added to the iterable while the
block renders are now visited too.</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.9...v4.7.10">Commits</a></p>
<h2>v4.7.9 - March 26th, 2026</h2>
<ul>
<li>fix: enable shell mode for spawn to resolve Windows EINVAL issue -
e0137c2</li>
<li>fix type &quot;RuntimeOptions&quot; also accepting string partials -
eab1d14</li>
<li>feat(types): set <code>hash</code> to be a <code>Record&lt;string,
any&gt;</code> - de4414d</li>
<li>fix non-contiguous program indices - 4512766</li>
<li>refactor: rename i to startPartIndex - e497a35</li>
<li>security: fix security issues - 68d8df5</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9">Commits</a></p>
<h2>v4.7.8 - July 27th, 2023</h2>
<ul>
<li>Make library compatible with workers (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1894">#1894</a>)
- 3d3796c</li>
<li>Don't rely on Node.js global object (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1776">#1776</a>)
- 2954e7e</li>
<li>Fix compiling of each block params in strict mode (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1855">#1855</a>)
- 30dbf04</li>
<li>Fix rollup warning when importing Handlebars as ESM - 03d387b</li>
<li>Fix bundler issue with webpack 5 (<a
href="https://redirect.github.com/handlebars-lang/handlebars.js/issues/1862">#1862</a>)
- c6c6bbb</li>
<li>Use https instead of git for mustache submodule - 88ac068</li>
</ul>
<p><a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...v4.7.8">Commits</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/45ce15255e0f430ac6d19742b18e316b7539264e"><code>45ce152</code></a>
v4.7.10</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/e47b2365d5656ab5689ae226aef90a485a90c5d8"><code>e47b236</code></a>
Update release notes</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/f37c599de9187715eb1e9afedcb2d80c175487a0"><code>f37c599</code></a>
Sanitize the source map URL when minifying</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/812c2260cb8794ef4ab63a7f1d946431112560ca"><code>812c226</code></a>
Iterate lazily in #each and strip whitespace in linear time</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/609d1b11c833c9a3e00f56f2f34d22f425446725"><code>609d1b1</code></a>
Escape <code>&lt;!--</code> and <code>&lt;script</code> in precompiled
output</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/ceec388abe1d1aac8f6369860d5f390fa71ef4fa"><code>ceec388</code></a>
Don't trust special properties on context data</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/c28ee7adb312308e0fe26f4d435a481be5e1ff98"><code>c28ee7a</code></a>
Only compile partials that are template strings</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/7d501a5af2ac3aa9ac788a8889dbe419849e46f1"><code>7d501a5</code></a>
Only dispatch known node types in the Compiler and Visitor</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/703fdcc5fd6cc8d1cc0c33cc19de40c467c4b8d2"><code>703fdcc</code></a>
Validate AST values in the compiler instead of the parser</li>
<li><a
href="https://github.com/handlebars-lang/handlebars.js/commit/0fcf25c63038b43e78e17adbf029cf073e80554d"><code>0fcf25c</code></a>
Clarify that --root does not restrict filesystem access</li>
<li>Additional commits viewable in <a
href="https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...v4.7.10">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~jaylinski">jaylinski</a>, a new releaser
for handlebars since your current version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=handlebars&package-manager=npm_and_yarn&previous-version=4.7.7&new-version=4.7.10)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ionic-team/ionic-framework/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ular/test/apps/ng19 (#31548)

Bumps [webpack](https://github.com/webpack/webpack) from 5.61.0 to
5.111.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/webpack/webpack/releases">webpack's
releases</a>.</em></p>
<blockquote>
<h2>v5.111.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>Throw on a write to an imported binding without losing concatenation.
(by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22141">#22141</a>)</p>
</li>
<li>
<p>Keep the <code>&lt;/html&gt;</code> a page was written with, whatever
opened the element. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22103">#22103</a>)</p>
</li>
<li>
<p>Look an attribute up by what its value decodes to, not how it was
spelled. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22107">#22107</a>)</p>
</li>
<li>
<p>Minify HTML by what a value says rather than how it was spelled. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22154">#22154</a>)</p>
</li>
<li>
<p>Follow HTML template form and frameset rules during tree
construction. (by <a
href="https://github.com/apps/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22129">#22129</a>)</p>
</li>
<li>
<p>Keep the whitespace <code>calc()</code> needs around <code>+</code>
and <code>-</code> in a custom property. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22150">#22150</a>)</p>
</li>
<li>
<p>Keep an attribute's delimiter and spell its value back where quoting
is frozen. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22119">#22119</a>)</p>
</li>
<li>
<p>Rewrite an attribute value the source spelled with character
references. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22110">#22110</a>)</p>
</li>
<li>
<p>Unquote an HTML attribute value carrying a vertical tab. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22162">#22162</a>)</p>
</li>
<li>
<p>Keep a shadow's spread and canonicalize a merged selector list. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22101">#22101</a>)</p>
</li>
<li>
<p>Leave out an implied tag and merge adjacent runs on the first pass.
(by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22121">#22121</a>)</p>
</li>
<li>
<p>Minify in one pass what a second pass of the CSS minifier used to
find. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22106">#22106</a>)</p>
</li>
<li>
<p>Cover the CSS lookup tables no stylesheet in the corpus reaches. (by
<a href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in
<a
href="https://redirect.github.com/webpack/webpack/pull/22126">#22126</a>)</p>
</li>
<li>
<p>Keep <code>initial</code> where an engine reads the property's
initial keyword apart. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22128">#22128</a>)</p>
</li>
<li>
<p>Join the CSS rules a cut leaves adjacent, and keep a value an escape
ate. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22108">#22108</a>)</p>
</li>
<li>
<p>Drop the dead CSS a cut leaves, and join more of the blocks that
print alike. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22111">#22111</a>)</p>
</li>
<li>
<p>Run the printer equivalence suite against Firefox as well as Chrome.
(by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22151">#22151</a>)</p>
</li>
<li>
<p>Finish in one CSS pass the joins, drops and collapses left to a
second. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22117">#22117</a>)</p>
</li>
<li>
<p>Move the context module sources into <code>lib/context/</code>. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22115">#22115</a>)</p>
</li>
<li>
<p>Declare loader context types in JSDoc instead of hand-written
<code>.d.ts</code> files. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22116">#22116</a>)</p>
</li>
<li>
<p>Emit a failing module's stack relative, and name what a tap failed
with. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22122">#22122</a>)</p>
</li>
<li>
<p>Finish in one CSS pass the drops, layer gathers and joins left to a
second. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22120">#22120</a>)</p>
</li>
<li>
<p>Speed up CSS parsing by stepping over dropped selector preludes in
bytes. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22142">#22142</a>)</p>
</li>
<li>
<p>Record hoisted, module and block declarations while parsing, not by
re-walking. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22147">#22147</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/webpack/webpack/blob/main/CHANGELOG.md">webpack's
changelog</a>.</em></p>
<blockquote>
<h2>5.111.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p>Throw on a write to an imported binding without losing concatenation.
(by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22141">#22141</a>)</p>
</li>
<li>
<p>Keep the <code>&lt;/html&gt;</code> a page was written with, whatever
opened the element. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22103">#22103</a>)</p>
</li>
<li>
<p>Look an attribute up by what its value decodes to, not how it was
spelled. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22107">#22107</a>)</p>
</li>
<li>
<p>Minify HTML by what a value says rather than how it was spelled. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22154">#22154</a>)</p>
</li>
<li>
<p>Follow HTML template form and frameset rules during tree
construction. (by <a
href="https://github.com/apps/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22129">#22129</a>)</p>
</li>
<li>
<p>Keep the whitespace <code>calc()</code> needs around <code>+</code>
and <code>-</code> in a custom property. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22150">#22150</a>)</p>
</li>
<li>
<p>Keep an attribute's delimiter and spell its value back where quoting
is frozen. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22119">#22119</a>)</p>
</li>
<li>
<p>Rewrite an attribute value the source spelled with character
references. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22110">#22110</a>)</p>
</li>
<li>
<p>Unquote an HTML attribute value carrying a vertical tab. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22162">#22162</a>)</p>
</li>
<li>
<p>Keep a shadow's spread and canonicalize a merged selector list. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22101">#22101</a>)</p>
</li>
<li>
<p>Leave out an implied tag and merge adjacent runs on the first pass.
(by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22121">#22121</a>)</p>
</li>
<li>
<p>Minify in one pass what a second pass of the CSS minifier used to
find. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22106">#22106</a>)</p>
</li>
<li>
<p>Cover the CSS lookup tables no stylesheet in the corpus reaches. (by
<a href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in
<a
href="https://redirect.github.com/webpack/webpack/pull/22126">#22126</a>)</p>
</li>
<li>
<p>Keep <code>initial</code> where an engine reads the property's
initial keyword apart. (by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22128">#22128</a>)</p>
</li>
<li>
<p>Join the CSS rules a cut leaves adjacent, and keep a value an escape
ate. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22108">#22108</a>)</p>
</li>
<li>
<p>Drop the dead CSS a cut leaves, and join more of the blocks that
print alike. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22111">#22111</a>)</p>
</li>
<li>
<p>Run the printer equivalence suite against Firefox as well as Chrome.
(by <a
href="https://github.com/aryanraj45"><code>@​aryanraj45</code></a> in <a
href="https://redirect.github.com/webpack/webpack/pull/22151">#22151</a>)</p>
</li>
<li>
<p>Finish in one CSS pass the joins, drops and collapses left to a
second. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22117">#22117</a>)</p>
</li>
<li>
<p>Move the context module sources into <code>lib/context/</code>. (by
<a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22115">#22115</a>)</p>
</li>
<li>
<p>Declare loader context types in JSDoc instead of hand-written
<code>.d.ts</code> files. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22116">#22116</a>)</p>
</li>
<li>
<p>Emit a failing module's stack relative, and name what a tap failed
with. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22122">#22122</a>)</p>
</li>
<li>
<p>Finish in one CSS pass the drops, layer gathers and joins left to a
second. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22120">#22120</a>)</p>
</li>
<li>
<p>Speed up CSS parsing by stepping over dropped selector preludes in
bytes. (by <a
href="https://github.com/alexander-akait"><code>@​alexander-akait</code></a>
in <a
href="https://redirect.github.com/webpack/webpack/pull/22142">#22142</a>)</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/webpack/webpack/commit/5a106753839fd7e1b86138c3a5f6b348341147a7"><code>5a10675</code></a>
chore(release): new release (<a
href="https://redirect.github.com/webpack/webpack/issues/22105">#22105</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/9c448c4ca3b5296849453384f49f4032b01345d6"><code>9c448c4</code></a>
test: consolidate loose harness files under test/harness (<a
href="https://redirect.github.com/webpack/webpack/issues/22163">#22163</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/a947604b3aa89eac798ff15bdf9424eb081a81bc"><code>a947604</code></a>
fix(html): unquote an attribute value carrying a vertical tab (<a
href="https://redirect.github.com/webpack/webpack/issues/22162">#22162</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/db556f33259354a428e03410382ac6dcfe6b3f5d"><code>db556f3</code></a>
test: run the printer equivalence suite against Gecko in CI (<a
href="https://redirect.github.com/webpack/webpack/issues/22155">#22155</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/d174cdf97ab08afc12b480ca87baa34b380cb5d0"><code>d174cdf</code></a>
perf(css): drop a fallback every browserslist target reads past (<a
href="https://redirect.github.com/webpack/webpack/issues/22158">#22158</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/39f14f200e21a20adf27e2b41d03b15460185076"><code>39f14f2</code></a>
refactor(javascript): declare block bindings from the parse (<a
href="https://redirect.github.com/webpack/webpack/issues/22161">#22161</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/08354116e89e655ec771603dbca2e9bba7627dd8"><code>0835411</code></a>
test: move suite drivers into test/templates (<a
href="https://redirect.github.com/webpack/webpack/issues/22159">#22159</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/b48cd775eed23d1fbcc26fd59a101a0cf810de9c"><code>b48cd77</code></a>
fix(html): minify by what a value says rather than how it was spelled
(<a
href="https://redirect.github.com/webpack/webpack/issues/22154">#22154</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/a774f10fc08fbabf9ad5b462128ab8e5e97e499e"><code>a774f10</code></a>
test: define the webpack major instead of bundling package.json (<a
href="https://redirect.github.com/webpack/webpack/issues/22160">#22160</a>)</li>
<li><a
href="https://github.com/webpack/webpack/commit/4b2eed0bd9680c347876b239903679abc6482da1"><code>4b2eed0</code></a>
docs: report only what needs a decision while watching a PR (<a
href="https://redirect.github.com/webpack/webpack/issues/22156">#22156</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/webpack/webpack/compare/v5.61.0...v5.111.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~GitHub%20Actions">GitHub Actions</a>, a new
releaser for webpack since your current version.</p>
</details>
<details>
<summary>Install script changes</summary>
<p>This version modifies <code>prepare</code> script that runs during
installation. Review the package contents before updating.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpack&package-manager=npm_and_yarn&previous-version=5.61.0&new-version=5.111.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ionic-team/ionic-framework/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@capacitor/core](https://capacitorjs.com)
([source](https://redirect.github.com/ionic-team/capacitor)) | [`8.5.2`
→
`8.5.3`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.5.2/8.5.3)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/8.5.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/8.5.2/8.5.3?slim=true)
|

---

### Release Notes

<details>
<summary>ionic-team/capacitor (@&#8203;capacitor/core)</summary>

###
[`v8.5.3`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#853-2026-10-07)

[Compare
Source](https://redirect.github.com/ionic-team/capacitor/compare/8.5.2...8.5.3)

##### Bug Fixes

- **cli:** change Cordova AppDelegate.h imports for SPM
([#&#8203;8618](https://redirect.github.com/ionic-team/capacitor/issues/8618))
([145560e](https://redirect.github.com/ionic-team/capacitor/commit/145560ee590d86637dc9dd2e2c9f4c08b0f631c0))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…ation (#31541)

Issue number: resolves #31528

---------

## What is the current behavior?

Currently, every mounted view in an `IonRouterOutlet` re-renders on each
navigation, hidden ones included. The view stack builds a new
`RouteContext` value every time the outlet renders, which happens about
3 times per navigation, and `NavManager` does the same with `NavContext`
and `IonRouterContext`.

## What is the new behavior?

We now keep each view's `RouteContext` value until its content changes,
and a view whose route doesn't match the current location keeps the
value it last rendered with. Hidden pages using `useParams` no longer
re-render, and the page being shown renders once when its match changes.
The `NavManager` also only rebuilds its context values when `routeInfo`
changes, so `useIonRouter` consumers render once per navigation instead
of twice.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

The held value lives in a component under each view instead of on the
view item, because two outlets with the same `id` share a view item
while sitting under different parent routes.

Hidden pages using `useNavigate` or `useLocation` still render once per
navigation, because React Router's `useNavigate` reads the location
internally. Holding `LocationContext` would fix that, but
`useLocation()` in a hidden page would then return a stale location, so
I left that alone for now.

# Current dev build
```
9.0.7-dev.11791381676.118a7a15
```
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/download-artifact](https://redirect.github.com/actions/download-artifact)
| action | patch | `v8.0.1` → `v8.0.2` |
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `v7.0.1` → `v7.0.2` |

---

### Release Notes

<details>
<summary>actions/download-artifact (actions/download-artifact)</summary>

###
[`v8.0.2`](https://redirect.github.com/actions/download-artifact/releases/tag/v8.0.2)

[Compare
Source](https://redirect.github.com/actions/download-artifact/compare/v8.0.1...v8.0.2)

##### What's Changed

- Update the readme by
[@&#8203;danwkennedy](https://redirect.github.com/danwkennedy) in
[#&#8203;473](https://redirect.github.com/actions/download-artifact/pull/473)
- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Update
[@&#8203;actions/artifact](https://redirect.github.com/actions/artifact)
to 6.3.1 by [@&#8203;tunc-d](https://redirect.github.com/tunc-d) in
[#&#8203;492](https://redirect.github.com/actions/download-artifact/pull/492)
- Prepare download-artifact v8.0.2 by
[@&#8203;tunc-d](https://redirect.github.com/tunc-d) in
[#&#8203;493](https://redirect.github.com/actions/download-artifact/pull/493)

##### New Contributors

- [@&#8203;tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#&#8203;492](https://redirect.github.com/actions/download-artifact/pull/492)

**Full Changelog**:
<actions/download-artifact@v8.0.1...v8.0.2>

</details>

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

###
[`v7.0.2`](https://redirect.github.com/actions/upload-artifact/releases/tag/v7.0.2)

[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2)

#### What's Changed

- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Updates
[@&#8203;actions/artifact](https://redirect.github.com/actions/artifact)
to v6.3.1.

#### New Contributors

- [@&#8203;tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#&#8203;821](https://redirect.github.com/actions/upload-artifact/pull/821)

**Full Changelog**:
<actions/upload-artifact@v7.0.1...v7.0.2>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.38.2` → `v4.38.3` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.38.3`](https://redirect.github.com/github/codeql-action/releases/tag/v4.38.3)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.38.2...v4.38.3)

- *Upcoming breaking change*: CodeQL version 2.21.2 and earlier were
discontinued on 24 September 2026 alongside GitHub Enterprise Server
3.17, and will be unsupported by the next minor release of the CodeQL
Action. Added a deprecation warning for customers using these versions
of CodeQL.
[#&#8203;4188](https://redirect.github.com/github/codeql-action/pull/4188)
- Update default CodeQL bundle version to
[2.27.2](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.2).
[#&#8203;4203](https://redirect.github.com/github/codeql-action/pull/4203)
- Fixed a bug where the decision of whether to use a per-language bundle
did not account for custom configurations that reference queries outside
of compiled CodeQL packs. This issue was caught during internal testing
and did not affect any customer repositories. We will resume the roll
out of per-language bundles in the coming weeks.
[#&#8203;4184](https://redirect.github.com/github/codeql-action/pull/4184)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: resolves internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
Dragging a sheet modal upwards dismisses it, depending on where the
user's pointer is relative to the viewport height rather than how far
they dragged. It happens when the pointer is in the bottom half of the
viewport, so it's most noticeable on smaller sheet modals where the
whole sheet sits in that area. Swiping up should scroll the content, or
expand the sheet if it isn't at its largest breakpoint yet.

## What is the new behavior?
Dragging a sheet upwards no longer dismisses it. How open the sheet is
now comes from the drag distance over the sheet's own height, so the
breakpoint it snaps to and the position it's drawn at come from the same
measurement. Sheets with breakpoints in between snap to the nearest one.

A quick downward flick still dismisses, because the drag is projected
forward by its velocity before snapping to the nearest breakpoint. A
small, slow drag snaps the sheet back instead of closing it.

Event progress (`ionDragMove`/`ionDragEnd`) is now normalized to 0 at
the lowest breakpoint and 1 at the highest, matching the documented
contract.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information
- [Sheet Modal Test
Page](https://ionic-framework-git-rou-13053-fix-sheet-dismissal-ionic1.vercel.app/src/components/modal/test/sheet/
Issue number: resolves #24587

---------

## What is the current behavior?

Currently, the `ActivatedRoute` that `ion-router-outlet` injects into a
page copies `snapshot` once, when the page is activated. A navigation
that only changes query params reuses the page without re-activating the
outlet, so `route.snapshot` stays stale (e.g.,
`snapshot.queryParamMap.get('foo')` is `null` after navigating to
`?foo=bar`).

## What is the new behavior?

The proxy's `snapshot` now reads from the route it stands in for, so it
always matches the current URL.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

The issue's broken relative links stopped reproducing once Angular
started building URL trees from the snapshot itself (all supported
versions do). The stale snapshot behind it was still there. The new spec
also covers relative links so the original symptom stays fixed, but
reverting this fix will not break that test because it's just to make
sure this issue doesn't come up again even though it's technically not a
problem right now.
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vitest](https://vitest.dev)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`5.0.3` →
`5.0.4`](https://renovatebot.com/diffs/npm/vitest/5.0.3/5.0.4) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/5.0.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/5.0.3/5.0.4?slim=true)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v5.0.4`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v5.0.4)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.3...v5.0.4)

#####    🚀 Features

- Tag cache directories with CACHEDIR.TAG  -  by
[@&#8203;lifeiscontent](https://redirect.github.com/lifeiscontent) in
[#&#8203;11461](https://redirect.github.com/vitest-dev/vitest/issues/11461)
[<samp>(a8ea3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a8ea3c8fd)
- Support `test.ui.theme` option  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11499](https://redirect.github.com/vitest-dev/vitest/issues/11499)
[<samp>(1da66)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1da66405d)
- **browser**:
- Highlight selector multiple matches in trace view  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11489](https://redirect.github.com/vitest-dev/vitest/issues/11489)
[<samp>(5abba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5abba1e1b)
- **experimental**:
- Print how many tests were affected and a total when running
`--changed`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11424](https://redirect.github.com/vitest-dev/vitest/issues/11424)
[<samp>(a2336)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a23368585)
- Add an option to cache dependencies instead of statically parsing them
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11515](https://redirect.github.com/vitest-dev/vitest/issues/11515)
[<samp>(c0601)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c06012ac8)
- **ui**:
- Add fit and zoom controls to trace viewer  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11490](https://redirect.github.com/vitest-dev/vitest/issues/11490)
[<samp>(f5dd9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f5dd99ed0)

#####    🐞 Bug Fixes

- Fail the run on git and location filter errors  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11430](https://redirect.github.com/vitest-dev/vitest/issues/11430)
[<samp>(30d03)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/30d0304d2)
- Enable fsModuleCache by default  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11435](https://redirect.github.com/vitest-dev/vitest/issues/11435)
[<samp>(ad208)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ad208cc29)
- Track project files and mocks with --changed  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11432](https://redirect.github.com/vitest-dev/vitest/issues/11432)
[<samp>(b0f2b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b0f2b3bb9)
- Refactor caching, fix `:` in project and change the shape of `results`
cache  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11453](https://redirect.github.com/vitest-dev/vitest/issues/11453)
[<samp>(9673c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9673c49a4)
- Keep full `$` string values when `taskTitleValueFormatTruncate` is 0
 -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa),
**Hiroshi Ogawa** and **Claude Opus 5.5** in
[#&#8203;11485](https://redirect.github.com/vitest-dev/vitest/issues/11485)
[<samp>(4f7e1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4f7e1799b)
- Resolve node builtins in client environments  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11417](https://redirect.github.com/vitest-dev/vitest/issues/11417)
[<samp>(56b31)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/56b319ac6)
- Fix module graph builtin externals after
[#&#8203;11421](https://redirect.github.com/vitest-dev/vitest/issues/11421)
 -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa),
**Hiroshi Ogawa** and **Claude Opus 5.5** in
[#&#8203;11491](https://redirect.github.com/vitest-dev/vitest/issues/11491)
and
[#&#8203;11421](https://redirect.github.com/vitest-dev/vitest/issues/11421)
[<samp>(008e1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/008e184cb)
- Wrap module mocks during in-source testing  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11505](https://redirect.github.com/vitest-dev/vitest/issues/11505)
[<samp>(36d19)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/36d19cb00)
- Handle line endings in snapshot  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11522](https://redirect.github.com/vitest-dev/vitest/issues/11522)
[<samp>(4c468)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4c468aa40)
- Respect root in projects  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11521](https://redirect.github.com/vitest-dev/vitest/issues/11521)
[<samp>(26642)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/26642f793)
- Resolve mocks in directories with spaces  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11539](https://redirect.github.com/vitest-dev/vitest/issues/11539)
[<samp>(caaef)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/caaef9416)
- **api**:
- Publish the api token atomically  -  by
[@&#8203;umairnawaz333](https://redirect.github.com/umairnawaz333) in
[#&#8203;11323](https://redirect.github.com/vitest-dev/vitest/issues/11323)
[<samp>(6f990)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f990fef1)
- **browser**:
- Close the mock route interception race  -  by
[@&#8203;cplieger](https://redirect.github.com/cplieger) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;8339](https://redirect.github.com/vitest-dev/vitest/issues/8339)
and
[#&#8203;11083](https://redirect.github.com/vitest-dev/vitest/issues/11083)
[<samp>(d6620)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d6620fae6)
- Allow toHaveTextContent without arguments  -  by
[@&#8203;nomadical](https://redirect.github.com/nomadical) in
[#&#8203;11425](https://redirect.github.com/vitest-dev/vitest/issues/11425)
[<samp>(8ebcf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8ebcf5f8a)
- Apply API options without browser config  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10852](https://redirect.github.com/vitest-dev/vitest/issues/10852)
[<samp>(ad055)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ad055837b)
- Preserve undefined command arguments  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11497](https://redirect.github.com/vitest-dev/vitest/issues/11497)
[<samp>(1576d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1576d3d89)
- Wait for setup mocks before importing a test file  -  by
[@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen) in
[#&#8203;11520](https://redirect.github.com/vitest-dev/vitest/issues/11520)
[<samp>(b61d1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b61d1ced3)
- Avoid extra scroll outside the iframe  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11523](https://redirect.github.com/vitest-dev/vitest/issues/11523)
[<samp>(662e8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/662e8a363)
- Run browser instances as workers  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11525](https://redirect.github.com/vitest-dev/vitest/issues/11525)
[<samp>(bf04b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bf04b9ccc)
- Open one cdp session per tester  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11542](https://redirect.github.com/vitest-dev/vitest/issues/11542)
[<samp>(69e63)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/69e6369f6)
- Clean up unmocked and pending mocks  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11537](https://redirect.github.com/vitest-dev/vitest/issues/11537)
[<samp>(5c955)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5c9552173)
- **coverage**:
- V8 browser memory leak between test files  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11466](https://redirect.github.com/vitest-dev/vitest/issues/11466)
[<samp>(2297d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2297d93a8)
- `allowExternal` fails to include uncovered files  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11513](https://redirect.github.com/vitest-dev/vitest/issues/11513)
[<samp>(4ef00)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4ef000a93)
- Filenames containing brackets incorrectly showing as uncovered  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11531](https://redirect.github.com/vitest-dev/vitest/issues/11531)
[<samp>(0fa80)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fa80f53c)
- Istanbul coverage wrong when module transform warmups  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11529](https://redirect.github.com/vitest-dev/vitest/issues/11529)
[<samp>(9f61d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9f61dcca2)
- **deps**:
- Update all non-major dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11167](https://redirect.github.com/vitest-dev/vitest/issues/11167)
[<samp>(c74e0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c74e099a9)
- **expect**:
- Fix `Map` and `Set` deep equality in some assertions  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11402](https://redirect.github.com/vitest-dev/vitest/issues/11402)
[<samp>(b4e79)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b4e79fd7a)
- Check value in chai-style returned  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11500](https://redirect.github.com/vitest-dev/vitest/issues/11500)
[<samp>(1aca0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1aca02a21)
- **mocker**:
- Fix native loader mocking edge cases  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11540](https://redirect.github.com/vitest-dev/vitest/issues/11540)
[<samp>(cd423)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cd423ba04)
- **pretty-format**:
- Support boxed symbols  -  by
[@&#8203;lehni](https://redirect.github.com/lehni) in
[#&#8203;11445](https://redirect.github.com/vitest-dev/vitest/issues/11445)
and
[#&#8203;11446](https://redirect.github.com/vitest-dev/vitest/issues/11446)
[<samp>(eba44)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/eba44926e)
- **reporters**:
- Junit to strip ANSI sequences from all XML attributes  -  by
[@&#8203;meganemura](https://redirect.github.com/meganemura) and
**Claude Opus 5.5** in
[#&#8203;11407](https://redirect.github.com/vitest-dev/vitest/issues/11407)
[<samp>(e1a73)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e1a731470)
- **runner**:
- Don't cache failed fixture setups  -  by
[@&#8203;hamed-bavar](https://redirect.github.com/hamed-bavar) in
[#&#8203;11237](https://redirect.github.com/vitest-dev/vitest/issues/11237)
and
[#&#8203;11238](https://redirect.github.com/vitest-dev/vitest/issues/11238)
[<samp>(4ee66)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4ee66c021)
- **typecheck**:
- Use typescript pool in toTestSpecification  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11451](https://redirect.github.com/vitest-dev/vitest/issues/11451)
[<samp>(5f273)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5f2739e74)
- **ui**:
- Remove duplicate browser-open call opening two tabs  -  by
[@&#8203;feastyr69](https://redirect.github.com/feastyr69) in
[#&#8203;11356](https://redirect.github.com/vitest-dev/vitest/issues/11356)
and
[#&#8203;11358](https://redirect.github.com/vitest-dev/vitest/issues/11358)
[<samp>(d7e13)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d7e1315c1)
- Simplify explorer filtering + fix nested tests when search matches a
suite  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa),
**Hiroshi Ogawa**, **Codex** and **Claude Opus 5.5** in
[#&#8203;11262](https://redirect.github.com/vitest-dev/vitest/issues/11262)
[<samp>(a627b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a627be498)
- Store module graph once per environment  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11421](https://redirect.github.com/vitest-dev/vitest/issues/11421)
[<samp>(af903)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/af903c65e)
- Mount index.html handler on the ui base path  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11517](https://redirect.github.com/vitest-dev/vitest/issues/11517)
[<samp>(1bc24)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1bc2495c7)
- Center split pane resize handle  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Claude Opus 5.5** in
[#&#8203;11506](https://redirect.github.com/vitest-dev/vitest/issues/11506)
[<samp>(e658b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e658b9b6a)
- **vm**:
- Bind `this` to `module.exports`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11504](https://redirect.github.com/vitest-dev/vitest/issues/11504)
[<samp>(b618a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b618afd5c)

#####    🏎 Performance

- Reuse fsModuleCache when filtering by source  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11428](https://redirect.github.com/vitest-dev/vitest/issues/11428)
[<samp>(7ebd9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ebd95fdd)
- **spy**: Reset only mocks that were called or reconfigured  -  by
[@&#8203;johan-gorter](https://redirect.github.com/johan-gorter) and
**Claude Opus 5.5** in
[#&#8203;11197](https://redirect.github.com/vitest-dev/vitest/issues/11197)
[<samp>(28ef9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/28ef93df2)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.3...v5.0.4)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) | `1.63.0`
→ `1.64.0` |
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.64.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.63.0/1.64.0?slim=true)
|
| [@playwright/test](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.63.0` →
`^1.64.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.63.0/1.64.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.64.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.63.0/1.64.0?slim=true)
|
| [playwright-core](https://playwright.dev)
([source](https://redirect.github.com/microsoft/playwright)) |
[`^1.63.0` →
`^1.64.0`](https://renovatebot.com/diffs/npm/playwright-core/1.63.0/1.64.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/playwright-core/1.64.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright-core/1.63.0/1.64.0?slim=true)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`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

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ionitron <hi@ionicframework.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`24.19.1` →
`24.19.2`](https://renovatebot.com/diffs/npm/@types%2fnode/24.19.1/24.19.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/24.19.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/24.19.1/24.19.2?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMzQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEzNC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Safari automatically populates an empty date input with today's date.
Since Playwright captures screenshots of the prompt alert, displaying
the date would cause the screenshots to change daily.

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
@github-actions github-actions Bot added package: core @ionic/core package package: angular @ionic/angular package package: vue @ionic/vue package package: react @ionic/react package labels Oct 14, 2026
@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ionic-framework Ready Ready Preview Oct 14, 2026 3:48pm UTC

Request Review

@brandyscarney
brandyscarney marked this pull request as ready for review October 14, 2026 16:09
@brandyscarney
brandyscarney requested a review from a team as a code owner October 14, 2026 16:09
@brandyscarney
brandyscarney requested review from ShaneK and removed request for a team October 14, 2026 16:09
@brandyscarney
brandyscarney merged commit 4cf0141 into 9.0.x Oct 14, 2026
151 of 155 checks passed
@brandyscarney
brandyscarney deleted the release-9.0.8 branch October 14, 2026 16:10

This branch was successfully deployed

1 active deployment
Preview — 7ed9376f Deployed Oct 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: angular @ionic/angular package package: core @ionic/core package package: react @ionic/react package package: vue @ionic/vue package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants