Repository navigation
chore(git): sync with main - #31641
Merged
Merged
Conversation
…31510) Issue number: internal --------- ## What is the current behavior? Currently, when a guard returns a location instead of `false` during a back navigation, the URL updates to the redirect target but Ionic renders a different page. A redirect doesn't fail, so the original navigation never reaches `afterEach` or `onError`. Its staged delta and params are never cleared and get applied to the redirect target instead. ## What is the new behavior? The ownership `beforeEach` now discards the state a navigation claimed when a guard redirects it. We match it through `redirectedFrom`, which vue-router points at the first location in the redirect chain. That covers leave guards, which run before our hook, and a guard redirect to the current page, which fails as a duplicate before reaching `beforeEach`. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information This was [raised while reviewing #31364](#31364 (comment)) and left out of scope there.
Issue number: resolves #29785 --------- ## What is the current behavior? Currently, with `createMemoryHistory`, tapping the active tab from a child page leaves the child on screen. Memory history doesn't store a position in `history.state`, so the offset `resetTab()` computes is `NaN` and `router.go(NaN)` goes nowhere. On 9.x it also throws `Cannot read properties of undefined (reading '0')`. ## What is the new behavior? When there's no position to traverse, `resetTab()` now replaces the current entry with the tab's `href`, the same fallback it already uses after a deep load. It uses the tab's `href` rather than the first route recorded for the tab, because after a deep load onto a child that first route is the child itself. Web and hash history always have a numeric position, so they're unaffected. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information The new tests are in `memory.spec.ts`, since the Vue test app uses web history and can't reproduce this. They cover resetting from a child page, resetting after a deep load onto a child, and replacing the child entry rather than pushing over it.
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.2` → `5.0.3`](https://renovatebot.com/diffs/npm/vitest/5.0.2/5.0.3) |  |  | --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v5.0.3`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v5.0.3) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3) ##### 🐞 Bug Fixes - Isolate `result.status` between `repeats` runs - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11218](https://redirect.github.com/vitest-dev/vitest/issues/11218) [<samp>(5dbeb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5dbebe9e3) - Don't print an interceptor warning in browser mode - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11377](https://redirect.github.com/vitest-dev/vitest/issues/11377) [<samp>(15cc0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/15cc006aa) - Don't retry when `test.fails` expectedly failed - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11219](https://redirect.github.com/vitest-dev/vitest/issues/11219) [<samp>(b2458)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b24585f08) - Scope cache key generators to projects - by [@​ecoyoung](https://redirect.github.com/ecoyoung) in [#​11281](https://redirect.github.com/vitest-dev/vitest/issues/11281) and [#​11301](https://redirect.github.com/vitest-dev/vitest/issues/11301) [<samp>(92ba7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/92ba7fc1d) - **browser**: - Delay server `listen` until tests start running - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11366](https://redirect.github.com/vitest-dev/vitest/issues/11366) [<samp>(7d8ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7d8ed3e9b) - Check mock path boundaries - by [@​saryn17](https://redirect.github.com/saryn17), **Ryosei Sato** and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11361](https://redirect.github.com/vitest-dev/vitest/issues/11361) and [#​11362](https://redirect.github.com/vitest-dev/vitest/issues/11362) [<samp>(1c388)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1c3888bce) - Keep config of browser-consumed environments - by [@​kasperpeulen](https://redirect.github.com/kasperpeulen) and **Claude** in [#​11378](https://redirect.github.com/vitest-dev/vitest/issues/11378) [<samp>(aafc0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aafc0996f) - Ignore page crash while cancelling - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11386](https://redirect.github.com/vitest-dev/vitest/issues/11386) [<samp>(7c367)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c36748fa) - `toMatchScreenshot` uses wrong reference on retried tests - by [@​macarie](https://redirect.github.com/macarie) in [#​11393](https://redirect.github.com/vitest-dev/vitest/issues/11393) [<samp>(c22ab)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c22aba992) - **cache**: - Revalidate imports of cached modules - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11381](https://redirect.github.com/vitest-dev/vitest/issues/11381) [<samp>(38f98)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/38f98855f) - **deps**: - Pin `why-is-node-running` to `3.2.1` to avoid users running into `ERR_PNPM_TRUST_DOWNGRADE` - by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​11403](https://redirect.github.com/vitest-dev/vitest/issues/11403) [<samp>(f6c9a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f6c9a4977) - **expect**: - Pass current equality testers to `expect.extend` asymmetric matchers - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude** in [#​11401](https://redirect.github.com/vitest-dev/vitest/issues/11401) [<samp>(3e794)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3e794a96b) - **jsdom**: - Support Blob on jsdom 30.1 - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11379](https://redirect.github.com/vitest-dev/vitest/issues/11379) [<samp>(6c49b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6c49b7197) - **pool**: - Preserve unique pool ids when `groupOrder` is set - by [@​mtorp](https://redirect.github.com/mtorp) in [#​11392](https://redirect.github.com/vitest-dev/vitest/issues/11392) [<samp>(50312)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/50312ebb4) - **ui**: - Split-pane handle overlapping iframe - by [@​macarie](https://redirect.github.com/macarie) in [#​11221](https://redirect.github.com/vitest-dev/vitest/issues/11221) [<samp>(f91db)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f91db0dfd) - **vitest**: - Remove root temp dir on close - by [@​abhinav-phi](https://redirect.github.com/abhinav-phi) in [#​11248](https://redirect.github.com/vitest-dev/vitest/issues/11248) [<samp>(7c711)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c7119cf7) - **vm**: - Do not optimize deps from index.html - by [@​ezefernandezyf](https://redirect.github.com/ezefernandezyf), **Hiroshi Ogawa** and **Codex (GPT-6)** in [#​11329](https://redirect.github.com/vitest-dev/vitest/issues/11329) and [#​11360](https://redirect.github.com/vitest-dev/vitest/issues/11360) [<samp>(caf28)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/caf2887de) - Don't reuse scripts across vite environments - by [@​MO2k4](https://redirect.github.com/MO2k4), **Martin Oehlert** and **Claude** in [#​11395](https://redirect.github.com/vitest-dev/vitest/issues/11395) [<samp>(346d3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/346d3896b) ##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.2...v5.0.3) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…#31516) Issue number: resolves #30024 --------- ## What is the current behavior? Currently, `float-elements.css` (and `ionic.bundle.css` / `utils.bundle.css`, which include it) contains `:host-context([dir=rtl]) .ion-float-*` selectors from the `rtl()` mixin. Lightning CSS, the default CSS minifier in Vite 8, warns about every one of them. They can never match anyway, because these stylesheets apply to the document, not a shadow root. ## What is the new behavior? The `rtl()` mixin now skips its `:host-context` rule when `$rtl-use-host-context` is false, and `float-elements.scss` sets it. The float utilities still flip in RTL through the existing `[dir=rtl]` and `:dir(rtl)` rules. Component styles are unchanged, since they still need `:host-context`. A new spec compiles every global stylesheet and asserts none of them contain `:host-context`. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information The only output change is 10 removed `:host-context` rules in `float-elements.css`, which also come out of the two bundles that include it. ## Dev build ``` 9.0.7-dev.11790870774.174de601 ```
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.0` → `24.19.1`](https://renovatebot.com/diffs/npm/@types%2fnode/24.19.0/24.19.1) |  |  | --- ### 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: resolves #31484 --------- ## What is the current behavior? Changing the length prop at runtime updates the rendered input boxes but can leave the public value longer than the rendered inputs. ## What is the new behavior? The component now reinitializes its values and tab indexes when length changes, keeping the public value synchronized with the rendered inputs. - Added a runtime length-change end-to-end regression test. - ESLint passes for the changed files. - Targeted Playwright execution is pending because the local browser executable is unavailable. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Fixes #31484. No dependency updates or breaking API changes. --------- Co-authored-by: ShaneK <shane@shanessite.net>
…31517) Issue number: resolves #31513 --------- ## What is the current behavior? Currently, an `IonRouterOutlet` with `ionPage` that unmounts before its `componentOnReady` callback fires throws `Cannot read properties of null (reading 'classList')`, because React has already cleared the ref the callback reads in `OutletPageManager`. ## What is the new behavior? We now capture the outlet element when the callback is scheduled and skip the callback if the ref no longer points to it, so an unmounted outlet doesn't touch its classes or register with the parent stack. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information The new test page mounts an outlet and removes it in a layout effect, which reproduces the error on every tap on `main`. ## Current dev build ``` 9.0.7-dev.11790871695.14a4111c ```
Issue number: resolves #29648 --------- ## What is the current behavior? Currently, with `experimentalCloseWatcher` enabled, a `CloseWatcher` is always active, so back does nothing when no overlay or menu is open. In Capacitor and Cordova apps on Android the flag also breaks the hardware back button entirely, because Android WebView never sends it to a `CloseWatcher` and we stopped listening for the native `backbutton` event. ## What is the new behavior? The `CloseWatcher` now only exists while a menu or an overlay other than a toast is open, so back navigates normally otherwise. We also always listen for `backbutton` again, which browsers never fire, so the hardware back button works in hybrid apps. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information ## Current dev build ``` 9.0.7-dev.11790887756.13f9320e ```
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@capacitor/keyboard](https://redirect.github.com/ionic-team/capacitor-keyboard) | [`8.0.5` → `8.0.6`](https://renovatebot.com/diffs/npm/@capacitor%2fkeyboard/8.0.5/8.0.6) |  |  | | [@capacitor/status-bar](https://redirect.github.com/ionic-team/capacitor-plugins) | [`8.0.3` → `8.0.4`](https://renovatebot.com/diffs/npm/@capacitor%2fstatus-bar/8.0.3/8.0.4) |  |  | --- ### Release Notes <details> <summary>ionic-team/capacitor-keyboard (@​capacitor/keyboard)</summary> ### [`v8.0.6`](https://redirect.github.com/ionic-team/capacitor-keyboard/blob/HEAD/CHANGELOG.md#806-2026-10-02) [Compare Source](https://redirect.github.com/ionic-team/capacitor-keyboard/compare/v8.0.5...v8.0.6) ##### Bug Fixes - **ios:** silence the protocol property synthesis warnings in Keyboard.m ([#​83](https://redirect.github.com/ionic-team/capacitor-keyboard/issues/83)) ([f28aef4](https://redirect.github.com/ionic-team/capacitor-keyboard/commit/f28aef4ed8736865232ed0595412e07d2372e024)) </details> <details> <summary>ionic-team/capacitor-plugins (@​capacitor/status-bar)</summary> ### [`v8.0.4`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/status-bar%408.0.4) [Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/status-bar@8.0.3...@capacitor/status-bar@8.0.4) ##### Bug Fixes - **status-bar:** avoid retain cycle between StatusBar and the bridge ([#​2569](https://redirect.github.com/ionic-team/capacitor-plugins/issues/2569)) ([bf42d23](https://redirect.github.com/ionic-team/capacitor-plugins/commit/bf42d237c1dca1b608dcbedf9c62559feccfb532)) </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 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> 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/) | |---|---|---|---| | [@stencil/core](https://stenciljs.com/) ([source](https://redirect.github.com/stenciljs/core)) | [`4.45.1` → `4.45.2`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.45.1/4.45.2) |  |  | --- ### Release Notes <details> <summary>stenciljs/core (@​stencil/core)</summary> ### [`v4.45.2`](https://redirect.github.com/stenciljs/core/blob/HEAD/CHANGELOG.md#-4452-2026-10-05) [Compare Source](https://redirect.github.com/stenciljs/core/compare/v4.45.1...v4.45.2) ##### Bug Fixes - **mock-doc:** support force in classList.toggle ([#​6913](https://redirect.github.com/stenciljs/core/issues/6913)) ([992ab54](https://redirect.github.com/stenciljs/core/commit/992ab5466c0b7a0d6ff420f25eb095a42791f0f6)) - **runtime:** `document.hidden` page freezes ([#​6918](https://redirect.github.com/stenciljs/core/issues/6918)) ([5a92cc7](https://redirect.github.com/stenciljs/core/commit/5a92cc7e99de7395c8f8956203bfcb248af9d479)) - **runtime:** form-associated boolean attribute `"false"` parses as true ([#​6908](https://redirect.github.com/stenciljs/core/issues/6908)) ([f971133](https://redirect.github.com/stenciljs/core/commit/f971133d7d47dce9598c6417e12902942c2053d3)) - **runtime:** keep child host classes on first render after hydration ([#​6912](https://redirect.github.com/stenciljs/core/issues/6912)) ([b6842e9](https://redirect.github.com/stenciljs/core/commit/b6842e9817c16258d7b8b8f2cb6c8420aad76c0e)) - **runtime:** lazy getter/setter `@Prop` writes before first render ([#​6909](https://redirect.github.com/stenciljs/core/issues/6909)) ([e2e5dfc](https://redirect.github.com/stenciljs/core/commit/e2e5dfc059c4c8fedf5258f9ee83d4a091ef20ac)) - **scope-css:** scope rules inside [@​container](https://redirect.github.com/container) ([#​6914](https://redirect.github.com/stenciljs/core/issues/6914)) ([bc393d0](https://redirect.github.com/stenciljs/core/commit/bc393d028b86731cccce51d7af417e2186dcf7ac)) </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>
…1533) Issue number: internal --------- ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Every Renovate PR needs a manual approval and merge, including frequent low-risk bumps like `vitest`, `@types/node` and `github/codeql-action` that we always merge as-is. ## What is the new behavior? Minor and patch updates for `vitest`, the Playwright group, `@types/node`, `github/codeql-action` and `actions/*` now automerge once CI passes. Majors still open as normal PRs that need a review. A Playwright bump that changes rendering fails `verify-screenshots`, so it'll wait for a person the same as before. `platformAutomerge` is off, so Renovate merges the PR itself and waits for every check on the branch rather than relying on GitHub's native auto-merge. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information
v9.0.7
## 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 [@​gperdomor](https://redirect.github.com/gperdomor) in [#​1421](https://redirect.github.com/actions/setup-node/pull/1421) - Support absolute paths in node-version-file by [@​v-mahabaleshwars](https://redirect.github.com/v-mahabaleshwars) in [#​1633](https://redirect.github.com/actions/setup-node/pull/1633) ##### Bug fixes: - Add Node version validation and manifest fetch retry by [@​v-jitenderpalsingh](https://redirect.github.com/v-jitenderpalsingh) in [#​1580](https://redirect.github.com/actions/setup-node/pull/1580) ##### Documentation updates: - README.md: bump actions/checkout to latest version 7 by [@​deining](https://redirect.github.com/deining) in [#​1578](https://redirect.github.com/actions/setup-node/pull/1578) - docs: add V7 ESM migration and NODE_AUTH_TOKEN behavior change by [@​v-gowridurgad](https://redirect.github.com/v-gowridurgad) in [#​1593](https://redirect.github.com/actions/setup-node/pull/1593) - Fixed cache recommendation syntax by [@​SubJunk](https://redirect.github.com/SubJunk) in [#​1603](https://redirect.github.com/actions/setup-node/pull/1603) ##### Dependency updates: - Update workflow pins and migrate Node matrices to modern versions by [@​v-HarithaVattikuti](https://redirect.github.com/v-HarithaVattikuti) in [#​1583](https://redirect.github.com/actions/setup-node/pull/1583) - Upgrade [@​actions/cache](https://redirect.github.com/actions/cache) to 6.2.0 by [@​philip-gai](https://redirect.github.com/philip-gai) in [#​1584](https://redirect.github.com/actions/setup-node/pull/1584) - Pin [@​types/node](https://redirect.github.com/types/node) to v24 by [@​v-priyagupta108](https://redirect.github.com/v-priyagupta108) in [#​1585](https://redirect.github.com/actions/setup-node/pull/1585) - Override brace-expansion to 5.0.8 by [@​v-priyagupta108](https://redirect.github.com/v-priyagupta108) with [@​Copilot](https://redirect.github.com/Copilot) in [#​1599](https://redirect.github.com/actions/setup-node/pull/1599) - Upgrade actions/checkout from 7.0.0 to 7.0.1 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1598](https://redirect.github.com/actions/setup-node/pull/1598) - Upgrade prettier from 3.8.4 to 3.9.6 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1590](https://redirect.github.com/actions/setup-node/pull/1590) - Upgrade [@​vercel/ncc](https://redirect.github.com/vercel/ncc) from 0.44.0 to 0.45.0 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1610](https://redirect.github.com/actions/setup-node/pull/1610) - Upgrade pnpm/action-setup from 6.0.9 to 6.0.10 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1602](https://redirect.github.com/actions/setup-node/pull/1602) - Upgrade baseline-browser-mapping from 2.10.38 to 2.11.22 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1629](https://redirect.github.com/actions/setup-node/pull/1629) - Upgrade [@​types/semver](https://redirect.github.com/types/semver) from 7.7.1 to 7.8.0 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1616](https://redirect.github.com/actions/setup-node/pull/1616) - Upgrade [@​typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser) from 8.62.0 to 8.70.0 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1615](https://redirect.github.com/actions/setup-node/pull/1615) - Upgrade pnpm/action-setup from 6.0.10 to 6.1.0 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1631](https://redirect.github.com/actions/setup-node/pull/1631) - Upgrade jest-each from 30.4.1 to 30.5.2 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1636](https://redirect.github.com/actions/setup-node/pull/1636) - Upgrade eslint-plugin-n from 18.1.0 to 18.3.0 by [@​dependabot](https://redirect.github.com/dependabot) in [#​1638](https://redirect.github.com/actions/setup-node/pull/1638) - Update dependencies and add license files by [@​v-HarithaVattikuti](https://redirect.github.com/v-HarithaVattikuti) in [#​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 [@​dependabot](https://redirect.github.com/dependabot) in [#​1635](https://redirect.github.com/actions/setup-node/pull/1635) #### New Contributors - [@​v-jitenderpalsingh](https://redirect.github.com/v-jitenderpalsingh) made their first contribution in [#​1580](https://redirect.github.com/actions/setup-node/pull/1580) - [@​philip-gai](https://redirect.github.com/philip-gai) made their first contribution in [#​1584](https://redirect.github.com/actions/setup-node/pull/1584) - [@​gperdomor](https://redirect.github.com/gperdomor) made their first contribution in [#​1421](https://redirect.github.com/actions/setup-node/pull/1421) - [@​SubJunk](https://redirect.github.com/SubJunk) made their first contribution in [#​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>"</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 < 17 and node > 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>"</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 /> [](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><!--</code> and <code><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 "RuntimeOptions" also accepting string partials - eab1d14</li> <li>feat(types): set <code>hash</code> to be a <code>Record<string, any></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><!--</code> and <code><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 "RuntimeOptions" also accepting string partials - eab1d14</li> <li>feat(types): set <code>hash</code> to be a <code>Record<string, any></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><!--</code> and <code><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 /> [](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></html></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></html></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 /> [](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) |  |  | --- ### Release Notes <details> <summary>ionic-team/capacitor (@​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 ([#​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 [@​danwkennedy](https://redirect.github.com/danwkennedy) in [#​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 [@​actions/artifact](https://redirect.github.com/actions/artifact) to 6.3.1 by [@​tunc-d](https://redirect.github.com/tunc-d) in [#​492](https://redirect.github.com/actions/download-artifact/pull/492) - Prepare download-artifact v8.0.2 by [@​tunc-d](https://redirect.github.com/tunc-d) in [#​493](https://redirect.github.com/actions/download-artifact/pull/493) ##### New Contributors - [@​tunc-d](https://redirect.github.com/tunc-d) made their first contribution in [#​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 [@​actions/artifact](https://redirect.github.com/actions/artifact) to v6.3.1. #### New Contributors - [@​tunc-d](https://redirect.github.com/tunc-d) made their first contribution in [#​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. [#​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). [#​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. [#​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) |  |  | --- ### 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 [@​lifeiscontent](https://redirect.github.com/lifeiscontent) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [#​11421](https://redirect.github.com/vitest-dev/vitest/issues/11421) - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11491](https://redirect.github.com/vitest-dev/vitest/issues/11491) and [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​umairnawaz333](https://redirect.github.com/umairnawaz333) in [#​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 [@​cplieger](https://redirect.github.com/cplieger) and [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​8339](https://redirect.github.com/vitest-dev/vitest/issues/8339) and [#​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 [@​nomadical](https://redirect.github.com/nomadical) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) and [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​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 [@​kasperpeulen](https://redirect.github.com/kasperpeulen) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​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 [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​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 [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​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 [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​lehni](https://redirect.github.com/lehni) in [#​11445](https://redirect.github.com/vitest-dev/vitest/issues/11445) and [#​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 [@​meganemura](https://redirect.github.com/meganemura) and **Claude Opus 5.5** in [#​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 [@​hamed-bavar](https://redirect.github.com/hamed-bavar) in [#​11237](https://redirect.github.com/vitest-dev/vitest/issues/11237) and [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​feastyr69](https://redirect.github.com/feastyr69) in [#​11356](https://redirect.github.com/vitest-dev/vitest/issues/11356) and [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa**, **Codex** and **Claude Opus 5.5** in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​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 [@​johan-gorter](https://redirect.github.com/johan-gorter) and **Claude Opus 5.5** in [#​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` |  |  | | [@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) |  |  | | [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) |  |  | --- ### Release Notes <details> <summary>microsoft/playwright (@​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 #​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) |  |  | --- ### 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>
… while it floats (#31567) Issue number: internal --------- ## What is the current behavior? An input, select, or textarea with an extremely long overflowing label with `label-placement="floating"` overflows its container when going from a resting to a floating state: https://github.com/user-attachments/assets/7fc7f1e3-07d6-4461-ad63-261f2ebcf57f ## What is the new behavior? https://github.com/user-attachments/assets/aae95b06-5cdf-4b9e-81ee-48e3e6b3fb39 - The label's `max-width` now transitions along with its `transform`, so the label reveals more of its text gradually as it scales down instead of showing its full floating width while still at its resting size. - With `fill="outline"`, the label stays positioned relative to the control in both its resting and floating states, so its `max-width` always resolves against the same width and can animate without jumping. - The start container controller now also measures the end container and is renamed to `createStartEndContainerController`. The combined start and end width is written to `--internal-start-end-container-width`, which the outline floating label uses to size itself to the full width of the notch. - Adds `$form-control-label-transition-easing` so the label's color, transform, and `max-width` transitions share one easing. - Adds an e2e test per component that steps through the label's transitions and checks that the label never extends past the field. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Previews: - [Input](https://ionic-framework-git-fw-7683-ionic1.vercel.app/src/components/input/test/slot) - [Select](https://ionic-framework-git-fw-7683-ionic1.vercel.app/src/components/select/test/slot) - [Textarea](https://ionic-framework-git-fw-7683-ionic1.vercel.app/src/components/textarea/test/slot) --------- Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
…31552) Issue number: resolves #29793 --------- ## What is the current behavior? Currently, swipe to go back on `ion-nav` and `ion-router-outlet` starts the back transition as soon as the gesture starts. With animations disabled, through either the `animated` prop or the global config, there's no progress animation for the swipe to drive, so the transition completes instantly. The previous page gets its enter lifecycle events even when the swipe is abandoned, and a completed swipe never navigates. ## What is the new behavior? With animations disabled, the swipe now waits until it's released to decide whether to go back. A completed swipe goes back without an animation and an abandoned one does nothing. For `ion-router-outlet`, core calls the swipe handler's `onStart` and `onEnd(true)` on release, so Angular, React and Vue didn't need changes. The host also ignores pointer events during the swipe, the same way a swipe-driven transition does, so releasing doesn't click whatever is under the pointer. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information [Relevant test screen (Angular)](https://ionic-framework-git-fw-7757-ionic1.vercel.app/angular/standalone/swipe-animated-disabled?ionic:mode=ios) ## Current dev build ``` 9.0.7-dev.11791478996.1b854592 ```
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@stencil/angular-output-target](https://stenciljs.com/) ([source](https://redirect.github.com/stenciljs/output-targets)) | [`1.4.1` → `1.5.2`](https://renovatebot.com/diffs/npm/@stencil%2fangular-output-target/1.4.1/1.5.2) |  |  | | [@stencil/vue-output-target](https://stenciljs.com/) ([source](https://redirect.github.com/stenciljs/output-targets)) | [`0.14.2` → `0.14.6`](https://renovatebot.com/diffs/npm/@stencil%2fvue-output-target/0.14.2/0.14.6) |  |  | --- ### Release Notes <details> <summary>stenciljs/output-targets (@​stencil/angular-output-target)</summary> ### [`v1.5.2`](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.5.1...@stencil/angular-output-target@1.5.2) [Compare Source](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.5.1...@stencil/angular-output-target@1.5.2) ### [`v1.5.1`](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.5.0...@stencil/angular-output-target@1.5.1) [Compare Source](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.5.0...@stencil/angular-output-target@1.5.1) ### [`v1.5.0`](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.4.1...@stencil/angular-output-target@1.5.0) [Compare Source](https://redirect.github.com/stenciljs/output-targets/compare/@stencil/angular-output-target@1.4.1...@stencil/angular-output-target@1.5.0) </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. 👻 **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:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuMTY0LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Brandy Smith <6577830+brandyscarney@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/) | |---|---|---|---| | [vitest](https://vitest.dev) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`5.0.4` → `5.0.5`](https://renovatebot.com/diffs/npm/vitest/5.0.4/5.0.5) |  |  | --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v5.0.5`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v5.0.5) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5) ##### 🐞 Bug Fixes - Keep vite default `fs.deny` with api token file - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi Ogawa** and **Claude Opus 5.5** in [#​11578](https://redirect.github.com/vitest-dev/vitest/issues/11578) [<samp>(28dc1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/28dc1edfb) - Handle quoted file names in `--changed` - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11583](https://redirect.github.com/vitest-dev/vitest/issues/11583) [<samp>(14921)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/14921e962) - Add `data` to the `import.meta.hot` stub - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11590](https://redirect.github.com/vitest-dev/vitest/issues/11590) [<samp>(3a828)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3a8289ac3) - Set `skip` in `skipIf`, ignore `undefined` options - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11591](https://redirect.github.com/vitest-dev/vitest/issues/11591) [<samp>(d523a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d523a15f2) - Skip builtin loading in async leak detector - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11598](https://redirect.github.com/vitest-dev/vitest/issues/11598) [<samp>(fe86a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fe86a64c6) - Keep the import frame in native loader errors - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11599](https://redirect.github.com/vitest-dev/vitest/issues/11599) [<samp>(9697b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9697b3894) - Run hook cleanups when a later hook fails - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11605](https://redirect.github.com/vitest-dev/vitest/issues/11605) [<samp>(6c5a4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6c5a44720) - Release mocks of finished test files - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11607](https://redirect.github.com/vitest-dev/vitest/issues/11607) [<samp>(e9c3d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e9c3d72f0) - Abort all running tests on cancel - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11606](https://redirect.github.com/vitest-dev/vitest/issues/11606) [<samp>(6621a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6621a72d6) - **browser**: - Ignore synthetic pagehide events - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11582](https://redirect.github.com/vitest-dev/vitest/issues/11582) [<samp>(ca081)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca0813584) - Run plugin buildStart on server creation - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11593](https://redirect.github.com/vitest-dev/vitest/issues/11593) [<samp>(ea611)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ea611e44c) - Drop late connections of closed sessions - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11600](https://redirect.github.com/vitest-dev/vitest/issues/11600) [<samp>(f161e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f161e6df2) - Wait 30s for the browser to close - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11601](https://redirect.github.com/vitest-dev/vitest/issues/11601) [<samp>(6498b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6498b666a) - Run global setup once with instances - by [@​sheremet-va](https://redirect.github.com/sheremet-va) in [#​11596](https://redirect.github.com/vitest-dev/vitest/issues/11596) [<samp>(8dd67)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8dd67c262) - **reporter**: - End reason `&#​39;failed&#​39;` on worker crash - by [@​AriPerkkio](https://redirect.github.com/AriPerkkio) in [#​11568](https://redirect.github.com/vitest-dev/vitest/issues/11568) [<samp>(6ae8e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6ae8e89ff) ##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.4...v5.0.5) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> 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 | minor | `v4.38.3` → `v4.39.0` | --- ### Release Notes <details> <summary>github/codeql-action</summary> ### [`v4.39.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.0) [Compare Source](https://redirect.github.com/github/codeql-action/compare/v4.38.3...v4.39.0) - *Breaking change*: Bump the minimum required CodeQL bundle version to 2.20.7. [#​4205](https://redirect.github.com/github/codeql-action/pull/4205) - The `codeql-action/analyze` step now validates that a correct argument for the `checkout_path` input has been provided. The `checkout_path` input must be set to the path where the repository that is being analyzed is checked out at on the runner, if that path is something other than the workspace root. If the path does not point to a repository checkout or is different from the path that was used by `codeql-action/init`, then the CodeQL Action now produces a warning. [#​4148](https://redirect.github.com/github/codeql-action/pull/4148) - Resolved an issue with third-party caching implementations that prevented caches from being restored correctly. [#​4206](https://redirect.github.com/github/codeql-action/pull/4206) - The `codeql-action/start-proxy` step that is used in Code Scanning Default Setup now finds CodeQL releases using the same logic as `codeql-action/init`. This primarily benefits customers who are using GitHub instances other than `github.com` where the `codeql-action/start-proxy` step may previously have been unable to locate recent releases and ended up using outdated versions of the private registry authentication proxy as a result. [#​4198](https://redirect.github.com/github/codeql-action/pull/4198) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: resolves #30361 --------- ## What is the current behavior? In v8, using `ion-tab-bar` without `ion-tabs` throws in Vue because `IonTabBar` injects `tabBarData` with no default and reads `.value` off `undefined`. Clicking a tab button then throws again in the native event handler. This was already fixed in v9 by the strict type checking chore in #31320, which gave the injection a `null` default and guarded it, but nothing tests the standalone case in a browser. ## What is the new behavior? This adds a `/tabs-standalone` page to the Vue test app with an `ion-tab-bar` that has no `ion-tabs` or `ion-router-outlet` around it, where the app tracks the active tab itself and navigates by calling `router.push` from the tab buttons. The new Playwright spec checks that clicking moves the selected state, runs the app's own `@click`, doesn't change the URL, logs no errors or warnings, and that `router.push` from a tab button navigates. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information I checked that the spec catches the original bug by patching the built `@ionic/vue` back to the v8 `inject("tabBarData")`. Both tests fail with the errors from the issue, and they pass on this branch. This is test-only, so the v8 behavior is unchanged. We aren't backporting the fix since it isn't critical. The follow-up request in the issue for a page animation when switching tabs by method isn't covered here and is out of scope for the issue it's in.
### Summary Fixes #31594. In `packages/angular/src/standalone/navigation/tabs.ts`, `IonTabs` was importing `IonTabBar` and `IonTab` from `../directives/proxies`. Because `directives/proxies` is the barrel that re-exports every component proxy, bundlers pulling `IonTabs` into the root route included all lazy-route Ionic components into the initial chunk, defeating standalone tree-shaking and component code-splitting. ### Fix Import `IonTab` from `../directives/ion-tab` and `IonTabBar` from `../directives/ion-tab-bar` directly, matching per-component entry points and preventing the entire proxies barrel from bundling into initial route chunks.
Issue number: resolves #30777, resolves #27975 --------- ## What is the current behavior? Currently, when `ion-datetime` is inside a modal or popover (usually through `ion-datetime-button`), cancelling or dismissing the overlay leaves the unconfirmed selection in place. The `cancel()` method only emits `ionCancel` and closes the overlay, so reopening the datetime shows the cancelled date as selected even though `value` never changed. ## What is the new behavior? The datetime now listens for its parent overlay's dismiss event and resets its selection to `value` unless the overlay was dismissed with the `datetime-confirm` role. That covers the Cancel button, backdrop taps, swipes and hardware back. The reset skips the month animation since the overlay has already animated out, otherwise cancelling a selection in another month left the calendar stuck on that month when reopened. Calling `cancel()` on an inline datetime now restores the committed selection right away. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information There was an earlier attempt at this in #27976 that called `reset()` from `cancel()`, which was closed until the design was settled. This reprocesses `value` directly instead, so it doesn't pick up the clearing behavior of `reset()`. This changes behavior in a few edge cases: - Calling `cancel()` without closing an overlay now resets the selection, where before it only emitted `ionCancel`. - If `canDismiss` blocks the dismiss, the selection stays, since the user is still in the picker. - An unconfirmed selection is now discarded the next time the overlay opens, so calling `confirm()` or `reset()` from a dismiss handler works the same as on `main`. Browsing to another month without picking a day isn't reset either, which also matches `main`. Use the "Popover - Custom" and "Modal - Custom" examples, pick a date, cancel, then reopen: - [Relevant test screen (iOS)](https://ionic-framework-git-fw-7061-ionic1.vercel.app/src/components/datetime-button/test/overlays?ionic:mode=ios) - [Relevant test screen (MD)](https://ionic-framework-git-fw-7061-ionic1.vercel.app/src/components/datetime-button/test/overlays?ionic:mode=md)
…1583) Issue number: resolves #30617 --------- ## What is the current behavior? Currently, replacing a page inside a tab stack breaks going back in two different ways. Calling `useIonRouter().replace()` shows a back button that does nothing, because `replace()` sends the `root` direction, which clears the location history but leaves `pushedByRoute` set. Calling `navigate(path, 'forward', 'replace')` after switching tabs does the opposite, so the URL goes back but the replaced page stays on screen. That one happens because the back button calls `router.go(-3)` and the router assumes the page we left is only one entry ahead. ## What is the new behavior? Now `replace()` uses the `none` direction, so it keeps the pages beneath the one it replaced and still doesn't animate, the same as a plain `router.replace()`. The router also uses the real history delta to find the page we left, and an explicit `navigate(url, 'root', 'replace')` no longer shows a back button since there's nothing to go back to. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information This does change `replace()` for apps that relied on it clearing the history. That only started in 9.0, when #31142 made the router respect the caller's direction, and those apps can switch to `navigate(url, 'root', 'replace')`. I updated the `useIonRouter` docs in ionic-docs to match here: ionic-team/ionic-docs#4794
…ound (#31591) Issue number: N/A --------- ## What is the current behavior? The `visible` docs on `ion-backdrop` only say "If `true`, the backdrop will be visible." Developers read that as "hides the backdrop," but `visible="false"` only removes the default background: the backdrop still blocks interaction, and custom background styles on `ion-backdrop` still apply. This has been reported as a bug several times (#26953, #29177, #30742). ## What is the new behavior? - Documents that `visible` controls only the default background, not whether the backdrop blocks interaction or overrides a custom background. The wording matches `showBackdrop` on `ion-modal` and `ion-popover`. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information The Properties table on the docs site is generated from this JSDoc, so it updates on the next API sync.
v9.0.9
Issue number: resolves #30591 --------- ## What is the current behavior? Currently, a menu inside the split pane's main content, like an end menu on a page, is treated as a side pane, so it can't be opened while the split pane is visible. This broke in 8.0 when #28801 changed the menu to look for any ancestor split pane, so that wrapped menus would work. ## What is the new behavior? A menu in the main content is now a regular menu and opens normally. Wrapped side menus still work, since the menu doesn't need to be a direct child of the split pane. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pozil/auto-assign-issue](https://redirect.github.com/pozil/auto-assign-issue) | action | patch | `v4.0.1` → `v4.0.2` | --- ### Release Notes <details> <summary>pozil/auto-assign-issue</summary> ### [`v4.0.2`](https://redirect.github.com/pozil/auto-assign-issue/releases/tag/v4.0.2): - Bump dependencies [Compare Source](https://redirect.github.com/pozil/auto-assign-issue/compare/v4.0.1...v4.0.2) - build: bump dependencies </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> 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.39.0` → `v4.39.1` | --- ### Release Notes <details> <summary>github/codeql-action</summary> ### [`v4.39.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.1) [Compare Source](https://redirect.github.com/github/codeql-action/compare/v4.39.0...v4.39.1) - Update default CodeQL bundle version to [2.27.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.3). [#​4256](https://redirect.github.com/github/codeql-action/pull/4256) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE3MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: internal --------- ## What is the current behavior? Currently, patch releases are done by hand from the Confluence checklist. That means creating the release branch, running the release workflow, opening two PRs, turning on merge commits, merging with the exact commit format, turning merge commits back off and then setting up the Jira release. It's easy to miss a step, and forgetting to turn merge commits back off has happened before. ## What is the new behavior? This adds `scripts/release-patch.sh`, which walks through the patch release one step at a time. It runs the mechanical steps through `gh` and stops for anything that needs a person, like confirming the changelog or posting the code freeze in Slack. It turns merge commits on for the merges and back off afterwards, even if the script errors out or gets interrupted. It also prints a single Jira search link that finds the tickets for every PR in the release. The Jira site and project key are read from `~/.config/ionic-release.env` instead of being kept in the repo (to prevent them from being committed by accident), and `scripts/release.env.example` is the template for that file. The script stops before doing anything if that file is missing, if a value is still a placeholder, or if the account running it isn't a repo admin. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information :warning: You must have [the `gh` CLI](https://cli.github.com/) installed and authenticated to run this script. The values for the config file are on the Releases page on Confluence. Running `./scripts/release-patch.sh --dry-run` goes through the whole release without changing anything, so it's the easiest way to try it out. Use `--step N` to resume a release that stopped partway through.
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pozil/auto-assign-issue](https://redirect.github.com/pozil/auto-assign-issue) | action | minor | `v4.0.2` → `v4.1.0` | --- ### Release Notes <details> <summary>pozil/auto-assign-issue</summary> ### [`v4.1.0`](https://redirect.github.com/pozil/auto-assign-issue/releases/tag/v4.1.0): - Packaging update [Compare Source](https://redirect.github.com/pozil/auto-assign-issue/compare/v4.0.2...v4.1.0) - build: packaging refactoring - [#​209](https://redirect.github.com/pozil/auto-assign-issue/issues/209) thanks to [@​methbkts](https://redirect.github.com/methbkts) </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNzYuMyIsInVwZGF0ZWRJblZlciI6IjQ0LjE3Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sync feature-9.1 with main.