From 4f2ab734fa62389f0b757746a8ed4d05697ef81f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 9 Jul 2026 09:09:25 -0700
Subject: [PATCH 01/13] chore(deps): update capacitor to v8.4.1 (#31239)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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.4.0`
β
`8.4.1`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.4.0/8.4.1)
|

|

|
---
### Release Notes
ionic-team/capacitor (@capacitor/core)
###
[`v8.4.1`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#841-2026-06-19)
[Compare
Source](https://redirect.github.com/ionic-team/capacitor/compare/8.4.0...8.4.1)
##### Bug Fixes
- **cli:** make SPM dependency patch work on prereleases
([#8508](https://redirect.github.com/ionic-team/capacitor/issues/8508))
([6048e90](https://redirect.github.com/ionic-team/capacitor/commit/6048e90171afa0229a3c25b52a23c377c6bb804c))
- **cli:** patch Capacitor SPM dependency version in plugins
([#8492](https://redirect.github.com/ionic-team/capacitor/issues/8492))
([28bb2c6](https://redirect.github.com/ionic-team/capacitor/commit/28bb2c687069dfdd6aa7abc866004a1c6388d103))
---
### 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.
---
- [ ] 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).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
core/package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/package-lock.json b/core/package-lock.json
index 1774b2fad19..02479b6b6ff 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -629,9 +629,9 @@
"license": "MIT"
},
"node_modules/@capacitor/core": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.4.0.tgz",
- "integrity": "sha512-LrS1xPIrqLtJABBIPDGXxxKmI9OyesrzWw8DiHbxhSC9JoiLUleUAJlX1a0LWIVLRbuY4Szgf9huFeRqYH2SAQ==",
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.4.1.tgz",
+ "integrity": "sha512-xqhOGLbTAYeOWK+IDUNSjQJAPapQjRHrIcgk9PYp52or9zFTaaMko31uNi16N6W+CRJ8VrRram6fOYILkBG2Hg==",
"dev": true,
"license": "MIT",
"dependencies": {
From 44461ddda5ef44030f477931dd94cce4674801a6 Mon Sep 17 00:00:00 2001
From: droc101 <37421449+droc101@users.noreply.github.com>
Date: Mon, 13 Jul 2026 15:09:35 -0500
Subject: [PATCH 02/13] fix(tab-bar): fire tab change events on tab click
(#31262)
Issue number: resolves #30145
---------
## What is the current behavior?
`ionic-react`'s `IonTabBar` tries to reference
`this.props.onIonTabsWillChange` and `this.props.onIonTabsDidChange`,
which do not exist, causing the `onIonTabsWillChange` and
`onIonTabsDidChange` events to never fire.
## What is the new behavior?
- Update usage of `this.props.onIonTabsWillChange` to
`this.props.tabsContext.tabBarProps.onIonTabsWillChange`
- Update usage of `this.props.onIonTabsDidChange` to
`this.props.tabsContext.tabBarProps.onIonTabsDidChange`
- Add check to make sure `this.props.tabsContext` is truthy before using
it
- `onIonTabsWillChange` and `onIonTabsDidChange` fire as expected
## Does this introduce a breaking change?
- [ ] Yes
- [x] No
---
.../src/components/navigation/IonTabBar.tsx | 16 ++++++++++++----
.../test/base/tests/e2e/specs/tabs/tabs.cy.ts | 15 +++++++++++++--
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/packages/react/src/components/navigation/IonTabBar.tsx b/packages/react/src/components/navigation/IonTabBar.tsx
index 124b00f6990..ab1db62f197 100644
--- a/packages/react/src/components/navigation/IonTabBar.tsx
+++ b/packages/react/src/components/navigation/IonTabBar.tsx
@@ -224,12 +224,20 @@ class IonTabBarUnwrapped extends React.PureComponent {
/**
* Verifies that tabs with similar route prefixes (e.g., /home, /home2, /home3)
* correctly select the matching tab instead of the first prefix match.
- *
+ *
* @see https://github.com/ionic-team/ionic-framework/issues/30448
*/
describe('Similar Route Prefixes', () => {
@@ -58,7 +58,11 @@ describe('IonTabs', () => {
describe('Without IonRouterOutlet', () => {
beforeEach(() => {
- cy.visit('/tabs-basic');
+ cy.visit('/tabs-basic', {
+ onBeforeLoad(win) {
+ cy.spy(win.console, 'log').as('consoleLog');
+ },
+ });
});
it.skip('should show correct tab when clicking the tab button', () => {
@@ -83,5 +87,12 @@ describe('IonTabs', () => {
cy.url().should('include', '/tabs-basic');
});
+
+ it('should fire tab change events on tab click', () => {
+ cy.get('ion-tab-button[tab="tab2"]').click();
+
+ cy.get('@consoleLog').should('be.calledWith', 'onIonTabsWillChange', 'tab2');
+ cy.get('@consoleLog').should('be.calledWith', 'onIonTabsDidChange:', 'tab2');
+ });
});
});
From 1bfff1027b18522ef51564d3333dafa8e8132402 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 14 Jul 2026 09:59:46 -0700
Subject: [PATCH 03/13] chore(deps): update actions/setup-node action to v6.5.0
(#31267)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | minor | `v6.4.0` β `v6.5.0` |
---
### Release Notes
actions/setup-node (actions/setup-node)
###
[`v6.5.0`](https://redirect.github.com/actions/setup-node/compare/v6.4.0...v6.5.0)
[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v6.4.0...v6.5.0)
---
### 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.
---
- [ ] 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).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/actions/publish-npm/action.yml | 2 +-
.github/workflows/actions/build-angular-server/action.yml | 2 +-
.../workflows/actions/build-core-stencil-prerelease/action.yml | 2 +-
.github/workflows/actions/build-core/action.yml | 2 +-
.github/workflows/actions/build-react-router/action.yml | 2 +-
.github/workflows/actions/build-react/action.yml | 2 +-
.github/workflows/actions/build-vue-router/action.yml | 2 +-
.github/workflows/actions/build-vue/action.yml | 2 +-
.github/workflows/actions/test-angular-e2e/action.yml | 2 +-
.github/workflows/actions/test-core-clean-build/action.yml | 2 +-
.github/workflows/actions/test-core-lint/action.yml | 2 +-
.github/workflows/actions/test-core-screenshot/action.yml | 2 +-
.github/workflows/actions/test-core-spec/action.yml | 2 +-
.github/workflows/actions/test-react-e2e/action.yml | 2 +-
.github/workflows/actions/test-react-router-e2e/action.yml | 2 +-
.github/workflows/actions/test-vue-e2e/action.yml | 2 +-
.../workflows/actions/update-reference-screenshots/action.yml | 2 +-
17 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/.github/actions/publish-npm/action.yml b/.github/actions/publish-npm/action.yml
index d3e06d5fb01..bbb14ad3d83 100644
--- a/.github/actions/publish-npm/action.yml
+++ b/.github/actions/publish-npm/action.yml
@@ -22,7 +22,7 @@ runs:
using: 'composite'
steps:
- name: π’ Configure Node for Publish
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: ${{ inputs.node-version }}
registry-url: 'https://registry.npmjs.org'
diff --git a/.github/workflows/actions/build-angular-server/action.yml b/.github/workflows/actions/build-angular-server/action.yml
index b5d37c5a9ac..b49d00af2c6 100644
--- a/.github/workflows/actions/build-angular-server/action.yml
+++ b/.github/workflows/actions/build-angular-server/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular Server'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-core-stencil-prerelease/action.yml b/.github/workflows/actions/build-core-stencil-prerelease/action.yml
index 5d4d0c751bd..94dc9353144 100644
--- a/.github/workflows/actions/build-core-stencil-prerelease/action.yml
+++ b/.github/workflows/actions/build-core-stencil-prerelease/action.yml
@@ -9,7 +9,7 @@ runs:
using: 'composite'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
diff --git a/.github/workflows/actions/build-core/action.yml b/.github/workflows/actions/build-core/action.yml
index 8056f964b98..2bf966eb451 100644
--- a/.github/workflows/actions/build-core/action.yml
+++ b/.github/workflows/actions/build-core/action.yml
@@ -9,7 +9,7 @@ runs:
using: 'composite'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/build-react-router/action.yml b/.github/workflows/actions/build-react-router/action.yml
index c8083494b0a..0d483e89703 100644
--- a/.github/workflows/actions/build-react-router/action.yml
+++ b/.github/workflows/actions/build-react-router/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic React Router'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-react/action.yml b/.github/workflows/actions/build-react/action.yml
index 5899335ad3e..0ed0ae385ab 100644
--- a/.github/workflows/actions/build-react/action.yml
+++ b/.github/workflows/actions/build-react/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic React'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-vue-router/action.yml b/.github/workflows/actions/build-vue-router/action.yml
index 9b07ce64973..a8461e96783 100644
--- a/.github/workflows/actions/build-vue-router/action.yml
+++ b/.github/workflows/actions/build-vue-router/action.yml
@@ -3,7 +3,7 @@ description: 'Builds Ionic Vue Router'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-vue/action.yml b/.github/workflows/actions/build-vue/action.yml
index 5c7497ec359..da0205e8877 100644
--- a/.github/workflows/actions/build-vue/action.yml
+++ b/.github/workflows/actions/build-vue/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Vue'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-angular-e2e/action.yml b/.github/workflows/actions/test-angular-e2e/action.yml
index f12fee784e8..5a65f4a90a1 100644
--- a/.github/workflows/actions/test-angular-e2e/action.yml
+++ b/.github/workflows/actions/test-angular-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-core-clean-build/action.yml b/.github/workflows/actions/test-core-clean-build/action.yml
index 96abc90121c..f56d91825f2 100644
--- a/.github/workflows/actions/test-core-clean-build/action.yml
+++ b/.github/workflows/actions/test-core-clean-build/action.yml
@@ -3,7 +3,7 @@ description: 'Test Core Clean Build'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
diff --git a/.github/workflows/actions/test-core-lint/action.yml b/.github/workflows/actions/test-core-lint/action.yml
index f9f0011719a..5dbd399f32b 100644
--- a/.github/workflows/actions/test-core-lint/action.yml
+++ b/.github/workflows/actions/test-core-lint/action.yml
@@ -3,7 +3,7 @@ description: 'Test Core Lint'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/test-core-screenshot/action.yml b/.github/workflows/actions/test-core-screenshot/action.yml
index 1f8699e66d4..bf6deb5fe39 100644
--- a/.github/workflows/actions/test-core-screenshot/action.yml
+++ b/.github/workflows/actions/test-core-screenshot/action.yml
@@ -13,7 +13,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-core-spec/action.yml b/.github/workflows/actions/test-core-spec/action.yml
index 2aab4b1be94..a1bd2731462 100644
--- a/.github/workflows/actions/test-core-spec/action.yml
+++ b/.github/workflows/actions/test-core-spec/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/test-react-e2e/action.yml b/.github/workflows/actions/test-react-e2e/action.yml
index a1bcbf7a4db..6ee29de9d11 100644
--- a/.github/workflows/actions/test-react-e2e/action.yml
+++ b/.github/workflows/actions/test-react-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-react-router-e2e/action.yml b/.github/workflows/actions/test-react-router-e2e/action.yml
index 034cfdce747..a3205eb2099 100644
--- a/.github/workflows/actions/test-react-router-e2e/action.yml
+++ b/.github/workflows/actions/test-react-router-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-vue-e2e/action.yml b/.github/workflows/actions/test-vue-e2e/action.yml
index 191cd193c8a..0aa03e33adf 100644
--- a/.github/workflows/actions/test-vue-e2e/action.yml
+++ b/.github/workflows/actions/test-vue-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/update-reference-screenshots/action.yml b/.github/workflows/actions/update-reference-screenshots/action.yml
index 6ee56689b10..e66dccc7645 100644
--- a/.github/workflows/actions/update-reference-screenshots/action.yml
+++ b/.github/workflows/actions/update-reference-screenshots/action.yml
@@ -7,7 +7,7 @@ on:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24.x
- uses: actions/download-artifact@v8
From 4244c89befaf94b2603c370743f2b6122f9d53e1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 15 Jul 2026 09:37:35 -0400
Subject: [PATCH 04/13] chore(deps): update dependency @capacitor/core to
v8.4.2 (#31269)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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.4.1`
β
`8.4.2`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.4.1/8.4.2)
|

|

|
---
### Release Notes
ionic-team/capacitor (@capacitor/core)
###
[`v8.4.2`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#842-2026-07-14)
[Compare
Source](https://redirect.github.com/ionic-team/capacitor/compare/8.4.1...8.4.2)
##### Bug Fixes
- **android:** explicitly grant URI permissions for image capture intent
([#8526](https://redirect.github.com/ionic-team/capacitor/issues/8526))
([6f2d328](https://redirect.github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530))
---
### 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.
---
- [ ] 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).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
core/package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/package-lock.json b/core/package-lock.json
index 02479b6b6ff..17157b9913f 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -629,9 +629,9 @@
"license": "MIT"
},
"node_modules/@capacitor/core": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.4.1.tgz",
- "integrity": "sha512-xqhOGLbTAYeOWK+IDUNSjQJAPapQjRHrIcgk9PYp52or9zFTaaMko31uNi16N6W+CRJ8VrRram6fOYILkBG2Hg==",
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-8.4.2.tgz",
+ "integrity": "sha512-fQPRb3JXRaU2pnufDUvqOjhsrYxDQeFRZyaj/sHydIUxD2NxOGHKMpmKUdI+U4OOmKuGZyvRpi7TSJU+7Bjbmg==",
"dev": true,
"license": "MIT",
"dependencies": {
From 9f595d4e5afd0bf21c6154ce13280c789aa72069 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 15 Jul 2026 14:03:24 +0000
Subject: [PATCH 05/13] chore(deps): update actions/setup-node action to v7
(#31268)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | major | `v6.5.0` β `v7.0.0` |
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | major | `v6` β `v7` |
---
### Release Notes
actions/setup-node (actions/setup-node)
###
[`v7.0.0`](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0)
[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v7.0.0...v7.0.0)
###
[`v7`](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0)
[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v6.5.0...v7.0.0)
---
### 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.
---
- [ ] 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).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/actions/publish-npm/action.yml | 2 +-
.github/workflows/actions/build-angular-server/action.yml | 2 +-
.github/workflows/actions/build-angular/action.yml | 2 +-
.../workflows/actions/build-core-stencil-prerelease/action.yml | 2 +-
.github/workflows/actions/build-core/action.yml | 2 +-
.github/workflows/actions/build-react-router/action.yml | 2 +-
.github/workflows/actions/build-react/action.yml | 2 +-
.github/workflows/actions/build-vue-router/action.yml | 2 +-
.github/workflows/actions/build-vue/action.yml | 2 +-
.github/workflows/actions/test-angular-e2e/action.yml | 2 +-
.github/workflows/actions/test-core-clean-build/action.yml | 2 +-
.github/workflows/actions/test-core-lint/action.yml | 2 +-
.github/workflows/actions/test-core-screenshot/action.yml | 2 +-
.github/workflows/actions/test-core-spec/action.yml | 2 +-
.github/workflows/actions/test-react-e2e/action.yml | 2 +-
.github/workflows/actions/test-react-router-e2e/action.yml | 2 +-
.github/workflows/actions/test-vue-e2e/action.yml | 2 +-
.../workflows/actions/update-reference-screenshots/action.yml | 2 +-
18 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/.github/actions/publish-npm/action.yml b/.github/actions/publish-npm/action.yml
index bbb14ad3d83..6913b493ef1 100644
--- a/.github/actions/publish-npm/action.yml
+++ b/.github/actions/publish-npm/action.yml
@@ -22,7 +22,7 @@ runs:
using: 'composite'
steps:
- name: π’ Configure Node for Publish
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ inputs.node-version }}
registry-url: 'https://registry.npmjs.org'
diff --git a/.github/workflows/actions/build-angular-server/action.yml b/.github/workflows/actions/build-angular-server/action.yml
index b49d00af2c6..e21a39669bf 100644
--- a/.github/workflows/actions/build-angular-server/action.yml
+++ b/.github/workflows/actions/build-angular-server/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular Server'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-angular/action.yml b/.github/workflows/actions/build-angular/action.yml
index 5224f9741e0..9f27f79336a 100644
--- a/.github/workflows/actions/build-angular/action.yml
+++ b/.github/workflows/actions/build-angular/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@v6
+ - uses: actions/setup-node@v7
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-core-stencil-prerelease/action.yml b/.github/workflows/actions/build-core-stencil-prerelease/action.yml
index 94dc9353144..4f811fc322e 100644
--- a/.github/workflows/actions/build-core-stencil-prerelease/action.yml
+++ b/.github/workflows/actions/build-core-stencil-prerelease/action.yml
@@ -9,7 +9,7 @@ runs:
using: 'composite'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
diff --git a/.github/workflows/actions/build-core/action.yml b/.github/workflows/actions/build-core/action.yml
index 2bf966eb451..113a1ebe3b7 100644
--- a/.github/workflows/actions/build-core/action.yml
+++ b/.github/workflows/actions/build-core/action.yml
@@ -9,7 +9,7 @@ runs:
using: 'composite'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/build-react-router/action.yml b/.github/workflows/actions/build-react-router/action.yml
index 0d483e89703..b104ebd429d 100644
--- a/.github/workflows/actions/build-react-router/action.yml
+++ b/.github/workflows/actions/build-react-router/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic React Router'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-react/action.yml b/.github/workflows/actions/build-react/action.yml
index 0ed0ae385ab..5335ea47af2 100644
--- a/.github/workflows/actions/build-react/action.yml
+++ b/.github/workflows/actions/build-react/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic React'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-vue-router/action.yml b/.github/workflows/actions/build-vue-router/action.yml
index a8461e96783..bf47bb0dec3 100644
--- a/.github/workflows/actions/build-vue-router/action.yml
+++ b/.github/workflows/actions/build-vue-router/action.yml
@@ -3,7 +3,7 @@ description: 'Builds Ionic Vue Router'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/build-vue/action.yml b/.github/workflows/actions/build-vue/action.yml
index da0205e8877..4a7375786d2 100644
--- a/.github/workflows/actions/build-vue/action.yml
+++ b/.github/workflows/actions/build-vue/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Vue'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-angular-e2e/action.yml b/.github/workflows/actions/test-angular-e2e/action.yml
index 5a65f4a90a1..8a15bfb5037 100644
--- a/.github/workflows/actions/test-angular-e2e/action.yml
+++ b/.github/workflows/actions/test-angular-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-core-clean-build/action.yml b/.github/workflows/actions/test-core-clean-build/action.yml
index f56d91825f2..25c9a202652 100644
--- a/.github/workflows/actions/test-core-clean-build/action.yml
+++ b/.github/workflows/actions/test-core-clean-build/action.yml
@@ -3,7 +3,7 @@ description: 'Test Core Clean Build'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
diff --git a/.github/workflows/actions/test-core-lint/action.yml b/.github/workflows/actions/test-core-lint/action.yml
index 5dbd399f32b..66a3036ef04 100644
--- a/.github/workflows/actions/test-core-lint/action.yml
+++ b/.github/workflows/actions/test-core-lint/action.yml
@@ -3,7 +3,7 @@ description: 'Test Core Lint'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/test-core-screenshot/action.yml b/.github/workflows/actions/test-core-screenshot/action.yml
index bf6deb5fe39..35eca3ec53e 100644
--- a/.github/workflows/actions/test-core-screenshot/action.yml
+++ b/.github/workflows/actions/test-core-screenshot/action.yml
@@ -13,7 +13,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-core-spec/action.yml b/.github/workflows/actions/test-core-spec/action.yml
index a1bd2731462..f33ab0aa3e3 100644
--- a/.github/workflows/actions/test-core-spec/action.yml
+++ b/.github/workflows/actions/test-core-spec/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- name: πΈοΈ Install Dependencies
diff --git a/.github/workflows/actions/test-react-e2e/action.yml b/.github/workflows/actions/test-react-e2e/action.yml
index 6ee29de9d11..af6100bdb07 100644
--- a/.github/workflows/actions/test-react-e2e/action.yml
+++ b/.github/workflows/actions/test-react-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-react-router-e2e/action.yml b/.github/workflows/actions/test-react-router-e2e/action.yml
index a3205eb2099..663ae0be575 100644
--- a/.github/workflows/actions/test-react-router-e2e/action.yml
+++ b/.github/workflows/actions/test-react-router-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/test-vue-e2e/action.yml b/.github/workflows/actions/test-vue-e2e/action.yml
index 0aa03e33adf..5f7de702d08 100644
--- a/.github/workflows/actions/test-vue-e2e/action.yml
+++ b/.github/workflows/actions/test-vue-e2e/action.yml
@@ -6,7 +6,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/update-reference-screenshots/action.yml b/.github/workflows/actions/update-reference-screenshots/action.yml
index e66dccc7645..a7bdde53871 100644
--- a/.github/workflows/actions/update-reference-screenshots/action.yml
+++ b/.github/workflows/actions/update-reference-screenshots/action.yml
@@ -7,7 +7,7 @@ on:
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: actions/download-artifact@v8
From 2ddda272b1f45f2ae5afd38fb37c3a234fa776b0 Mon Sep 17 00:00:00 2001
From: ionitron
Date: Wed, 15 Jul 2026 21:15:27 +0000
Subject: [PATCH 06/13] v8.8.14
---
CHANGELOG.md | 11 +++++++++++
core/CHANGELOG.md | 8 ++++++++
core/package-lock.json | 6 +++---
core/package.json | 2 +-
lerna.json | 2 +-
packages/angular-server/CHANGELOG.md | 8 ++++++++
packages/angular-server/package-lock.json | 8 ++++----
packages/angular-server/package.json | 4 ++--
packages/angular/CHANGELOG.md | 8 ++++++++
packages/angular/package-lock.json | 8 ++++----
packages/angular/package.json | 4 ++--
packages/docs/CHANGELOG.md | 8 ++++++++
packages/docs/package-lock.json | 6 +++---
packages/docs/package.json | 2 +-
packages/react-router/CHANGELOG.md | 8 ++++++++
packages/react-router/package-lock.json | 8 ++++----
packages/react-router/package.json | 4 ++--
packages/react/CHANGELOG.md | 11 +++++++++++
packages/react/package-lock.json | 8 ++++----
packages/react/package.json | 4 ++--
packages/vue-router/CHANGELOG.md | 8 ++++++++
packages/vue-router/package-lock.json | 8 ++++----
packages/vue-router/package.json | 4 ++--
packages/vue/CHANGELOG.md | 8 ++++++++
packages/vue/package-lock.json | 8 ++++----
packages/vue/package.json | 4 ++--
26 files changed, 123 insertions(+), 45 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e16c678580a..a34a9108ca2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+
+### Bug Fixes
+
+* **tab-bar:** fire tab change events on tab click ([#31262](https://github.com/ionic-team/ionic-framework/issues/31262)) ([44461dd](https://github.com/ionic-team/ionic-framework/commit/44461ddda5ef44030f477931dd94cce4674801a6)), closes [#30145](https://github.com/ionic-team/ionic-framework/issues/30145)
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md
index 5e125fe6772..e1c7853b8dc 100644
--- a/core/CHANGELOG.md
+++ b/core/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/core
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
diff --git a/core/package-lock.json b/core/package-lock.json
index 17157b9913f..22c09b2e33e 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@ionic/core",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/core",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -9831,4 +9831,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/core/package.json b/core/package.json
index 7c359b4c062..37e9addb583 100644
--- a/core/package.json
+++ b/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/core",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Base components for Ionic",
"engines": {
"node": ">= 16"
diff --git a/lerna.json b/lerna.json
index c1ff80a0f28..ef652a71ace 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,5 +3,5 @@
"core",
"packages/*"
],
- "version": "8.8.13"
+ "version": "8.8.14"
}
\ No newline at end of file
diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md
index 3238fb0800f..7539580efea 100644
--- a/packages/angular-server/CHANGELOG.md
+++ b/packages/angular-server/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/angular-server
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/angular-server
diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json
index 313f8b6131d..3622be32ba3 100644
--- a/packages/angular-server/package-lock.json
+++ b/packages/angular-server/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/angular-server",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular-server",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.13"
+ "@ionic/core": "^8.8.14"
},
"devDependencies": {
"@angular-eslint/eslint-plugin": "^16.0.0",
@@ -11289,4 +11289,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json
index bce1b7a50e6..937c5ca5b32 100644
--- a/packages/angular-server/package.json
+++ b/packages/angular-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular-server",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Angular SSR Module for Ionic",
"keywords": [
"ionic",
@@ -62,6 +62,6 @@
},
"prettier": "@ionic/prettier-config",
"dependencies": {
- "@ionic/core": "^8.8.13"
+ "@ionic/core": "^8.8.14"
}
}
diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md
index 29461963d67..6ca79e1400c 100644
--- a/packages/angular/CHANGELOG.md
+++ b/packages/angular/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/angular
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/angular
diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json
index 627a6a54dac..ab54ac15580 100644
--- a/packages/angular/package-lock.json
+++ b/packages/angular/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/angular",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"ionicons": "^8.0.13",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
@@ -9095,4 +9095,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/angular/package.json b/packages/angular/package.json
index 97844662282..5ba7fc8dc7b 100644
--- a/packages/angular/package.json
+++ b/packages/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Angular specific wrappers for @ionic/core",
"keywords": [
"ionic",
@@ -48,7 +48,7 @@
}
},
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"ionicons": "^8.0.13",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
diff --git a/packages/docs/CHANGELOG.md b/packages/docs/CHANGELOG.md
index 69a91d7e43b..17ef130f5c3 100644
--- a/packages/docs/CHANGELOG.md
+++ b/packages/docs/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/docs
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/docs
diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json
index 32b6c60cc7f..59870e027c6 100644
--- a/packages/docs/package-lock.json
+++ b/packages/docs/package-lock.json
@@ -1,13 +1,13 @@
{
"name": "@ionic/docs",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/docs",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT"
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 5eb602d6513..9871469ef64 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/docs",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Pre-packaged API documentation for the Ionic docs.",
"main": "core.json",
"types": "core.d.ts",
diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md
index cf601872233..b007659dbc6 100644
--- a/packages/react-router/CHANGELOG.md
+++ b/packages/react-router/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/react-router
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/react-router
diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json
index 02d00bfb432..632b170e5dd 100644
--- a/packages/react-router/package-lock.json
+++ b/packages/react-router/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/react-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/react-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/react": "^8.8.13",
+ "@ionic/react": "^8.8.14",
"tslib": "*"
},
"devDependencies": {
@@ -6847,4 +6847,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/react-router/package.json b/packages/react-router/package.json
index 0630a327290..8ab38ff8ca8 100644
--- a/packages/react-router/package.json
+++ b/packages/react-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "React Router wrapper for @ionic/react",
"keywords": [
"ionic",
@@ -36,7 +36,7 @@
"dist/"
],
"dependencies": {
- "@ionic/react": "^8.8.13",
+ "@ionic/react": "^8.8.14",
"tslib": "*"
},
"peerDependencies": {
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index 61282f1918e..a71a4c75e85 100644
--- a/packages/react/CHANGELOG.md
+++ b/packages/react/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+
+### Bug Fixes
+
+* **tab-bar:** fire tab change events on tab click ([#31262](https://github.com/ionic-team/ionic-framework/issues/31262)) ([44461dd](https://github.com/ionic-team/ionic-framework/commit/44461ddda5ef44030f477931dd94cce4674801a6)), closes [#30145](https://github.com/ionic-team/ionic-framework/issues/30145)
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/react
diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json
index 1d6143adc8e..6c0efa9bdda 100644
--- a/packages/react/package-lock.json
+++ b/packages/react/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/react",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/react",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"ionicons": "^8.0.13",
"tslib": "*"
},
@@ -11916,4 +11916,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/react/package.json b/packages/react/package.json
index 10f109c5d21..8264c55f24a 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "React specific wrapper for @ionic/core",
"keywords": [
"ionic",
@@ -40,7 +40,7 @@
"css/"
],
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"ionicons": "^8.0.13",
"tslib": "*"
},
diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md
index 9697a53d608..a3c5210d5ad 100644
--- a/packages/vue-router/CHANGELOG.md
+++ b/packages/vue-router/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/vue-router
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/vue-router
diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json
index 5c7438a49f3..c3030e2fa42 100644
--- a/packages/vue-router/package-lock.json
+++ b/packages/vue-router/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/vue-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/vue": "^8.8.13"
+ "@ionic/vue": "^8.8.14"
},
"devDependencies": {
"@ionic/eslint-config": "^0.3.0",
@@ -12994,4 +12994,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json
index 7dc3bb4f378..fd99a532c28 100644
--- a/packages/vue-router/package.json
+++ b/packages/vue-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue-router",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Vue Router integration for @ionic/vue",
"scripts": {
"test.spec": "jest",
@@ -44,7 +44,7 @@
},
"homepage": "https://github.com/ionic-team/ionic-framework#readme",
"dependencies": {
- "@ionic/vue": "^8.8.13"
+ "@ionic/vue": "^8.8.14"
},
"devDependencies": {
"@ionic/eslint-config": "^0.3.0",
diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md
index b9d622271a2..0ec380d4bee 100644
--- a/packages/vue/CHANGELOG.md
+++ b/packages/vue/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
+
+**Note:** Version bump only for package @ionic/vue
+
+
+
+
+
## [8.8.13](https://github.com/ionic-team/ionic-framework/compare/v8.8.12...v8.8.13) (2026-07-01)
**Note:** Version bump only for package @ionic/vue
diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json
index 838a65c2899..62a9690428c 100644
--- a/packages/vue/package-lock.json
+++ b/packages/vue/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/vue",
- "version": "8.8.13",
+ "version": "8.8.14",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue",
- "version": "8.8.13",
+ "version": "8.8.14",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
},
@@ -4022,4 +4022,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/vue/package.json b/packages/vue/package.json
index db6da908fe7..d2e6962a255 100644
--- a/packages/vue/package.json
+++ b/packages/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue",
- "version": "8.8.13",
+ "version": "8.8.14",
"description": "Vue specific wrapper for @ionic/core",
"scripts": {
"eslint": "eslint src",
@@ -68,7 +68,7 @@
"vue-router": "^4.0.16"
},
"dependencies": {
- "@ionic/core": "^8.8.13",
+ "@ionic/core": "^8.8.14",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
},
From d0618e10de061889ead978724be0565a5c84a0f1 Mon Sep 17 00:00:00 2001
From: ionitron
Date: Wed, 15 Jul 2026 21:16:28 +0000
Subject: [PATCH 07/13] chore(): update package lock files
---
core/package-lock.json | 2 +-
packages/angular-server/package-lock.json | 14 +++++------
packages/angular/package-lock.json | 8 +++---
packages/docs/package-lock.json | 2 +-
packages/react-router/package-lock.json | 30 +++++++++++------------
packages/react/package-lock.json | 8 +++---
packages/vue-router/package-lock.json | 30 +++++++++++------------
packages/vue/package-lock.json | 8 +++---
8 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/core/package-lock.json b/core/package-lock.json
index 22c09b2e33e..b0c6f4dd01a 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -9831,4 +9831,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json
index 3622be32ba3..61c1642676a 100644
--- a/packages/angular-server/package-lock.json
+++ b/packages/angular-server/package-lock.json
@@ -1031,9 +1031,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -7309,9 +7309,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -11289,4 +11289,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json
index ab54ac15580..0e99daf909c 100644
--- a/packages/angular/package-lock.json
+++ b/packages/angular/package-lock.json
@@ -1398,9 +1398,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -9095,4 +9095,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json
index 59870e027c6..f5bb9be743c 100644
--- a/packages/docs/package-lock.json
+++ b/packages/docs/package-lock.json
@@ -10,4 +10,4 @@
"license": "MIT"
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json
index 632b170e5dd..de6eb728429 100644
--- a/packages/react-router/package-lock.json
+++ b/packages/react-router/package-lock.json
@@ -238,9 +238,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -418,12 +418,12 @@
}
},
"node_modules/@ionic/react": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.13.tgz",
- "integrity": "sha512-xKevvpmTfi2ZtOcmwEsw3EE6fm+TqKYIHKvgkIwAUz/bnRcMmGA9b474WxJcLQ5Twv8ynj/C1iDQcDA+jR0/pw==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.14.tgz",
+ "integrity": "sha512-oEj1nIznqFQpnWGU3qsqY6jpPl1fQoX/cPtL0sgXMBOFPtbuQx1R+NOwKh9ozHsRXTpmmfCjLZPioboieyEyyw==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.13",
+ "@ionic/core": "8.8.14",
"ionicons": "^8.0.13",
"tslib": "*"
},
@@ -4178,9 +4178,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -4284,11 +4284,11 @@
"requires": {}
},
"@ionic/react": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.13.tgz",
- "integrity": "sha512-xKevvpmTfi2ZtOcmwEsw3EE6fm+TqKYIHKvgkIwAUz/bnRcMmGA9b474WxJcLQ5Twv8ynj/C1iDQcDA+jR0/pw==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.14.tgz",
+ "integrity": "sha512-oEj1nIznqFQpnWGU3qsqY6jpPl1fQoX/cPtL0sgXMBOFPtbuQx1R+NOwKh9ozHsRXTpmmfCjLZPioboieyEyyw==",
"requires": {
- "@ionic/core": "8.8.13",
+ "@ionic/core": "8.8.14",
"ionicons": "^8.0.13",
"tslib": "*"
}
@@ -6847,4 +6847,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json
index 6c0efa9bdda..892ab9c320d 100644
--- a/packages/react/package-lock.json
+++ b/packages/react/package-lock.json
@@ -736,9 +736,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -11916,4 +11916,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json
index c3030e2fa42..4d48fed22a4 100644
--- a/packages/vue-router/package-lock.json
+++ b/packages/vue-router/package-lock.json
@@ -673,9 +673,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -868,12 +868,12 @@
}
},
"node_modules/@ionic/vue": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.13.tgz",
- "integrity": "sha512-PgpuoQInVBAmBwn12Wg7nvZ471khG++3UGlEsOAFZ6D6BFEvv8OMz90MTE5j6gnT//lzP2GIs/msG+LS8FV5vQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.14.tgz",
+ "integrity": "sha512-mGmK77YZM+Os+sYsDaw4QCpvNd7DhHIJvih8lfRSqo/zLyLm7x6Ya4OwCbPxKRL3CMERDKLW10p7rImihhMilA==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.13",
+ "@ionic/core": "8.8.14",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
}
@@ -8044,9 +8044,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -8159,11 +8159,11 @@
"requires": {}
},
"@ionic/vue": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.13.tgz",
- "integrity": "sha512-PgpuoQInVBAmBwn12Wg7nvZ471khG++3UGlEsOAFZ6D6BFEvv8OMz90MTE5j6gnT//lzP2GIs/msG+LS8FV5vQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.14.tgz",
+ "integrity": "sha512-mGmK77YZM+Os+sYsDaw4QCpvNd7DhHIJvih8lfRSqo/zLyLm7x6Ya4OwCbPxKRL3CMERDKLW10p7rImihhMilA==",
"requires": {
- "@ionic/core": "8.8.13",
+ "@ionic/core": "8.8.14",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
}
@@ -12994,4 +12994,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json
index 62a9690428c..d1e1b6ffba6 100644
--- a/packages/vue/package-lock.json
+++ b/packages/vue/package-lock.json
@@ -222,9 +222,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.13",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.13.tgz",
- "integrity": "sha512-f09pRxmOLxPvLeCK9kTTBiByaPeCrApwABAwkqeax08e1b4kDSyXD1nMGDT6ChTvUGxyt4/cPxLsEP68ku4+HQ==",
+ "version": "8.8.14",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
+ "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -4022,4 +4022,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
From fcab9eae3350b89df25386899732a140ac28ce7e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 16 Jul 2026 06:10:12 -0700
Subject: [PATCH 08/13] chore(deps): update dependency @capacitor/status-bar to
v8.0.3 (#31273)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@capacitor/status-bar](https://redirect.github.com/ionic-team/capacitor-plugins)
| [`8.0.2` β
`8.0.3`](https://renovatebot.com/diffs/npm/@capacitor%2fstatus-bar/8.0.2/8.0.3)
|

|

|
---
### Release Notes
ionic-team/capacitor-plugins
(@capacitor/status-bar)
###
[`v8.0.3`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/status-bar%408.0.3)
[Compare
Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/status-bar@8.0.2...@capacitor/status-bar@8.0.3)
**Note:** Version bump only for package
[@capacitor/status-bar](https://redirect.github.com/capacitor/status-bar)
---
### 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.
---
- [ ] 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).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
core/package-lock.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/package-lock.json b/core/package-lock.json
index b0c6f4dd01a..a838764fc14 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -659,9 +659,9 @@
}
},
"node_modules/@capacitor/status-bar": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-8.0.2.tgz",
- "integrity": "sha512-WXs8YB8B9eEaPZz+bcdY6t2nForF1FLoj/JU0Dl9RRgQnddnS98FEEyDooQhaY7wivr000j4+SC1FyeJkrFO7A==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-8.0.3.tgz",
+ "integrity": "sha512-csSpfNeN49Hx9JaQBSJEIiEbOLtXg3kcc2IpScq2fu5L520h3AWEvsxoH8Srk1jxfRKepaJ4S4sqSC3foI4AgA==",
"dev": true,
"license": "MIT",
"peerDependencies": {
From 6251eb85db0e5b43b9e09604248dc8451e1664c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gon=C3=A7alo=20M=2E?=
Date: Fri, 17 Jul 2026 19:17:28 +0100
Subject: [PATCH 09/13] fix(modal): focus the dialog wrapper on present so
screen readers can enter the modal (#31260)
Issue number: internal
---------
## What is the current behavior?
When a modal is opened with Android TalkBack enabled, the screen reader
cannot enter or navigate the modal's content. On present, focus is moved
to the modal host, but the host is role-less. The `role="dialog"`,
`aria-modal`, and the label live on the inner `.ion-overlay-wrapper` so
assistive technologies have no dialog to land on.
## What is the new behavior?
- `present()` now focuses the overlay's `[role="dialog"]` element (the
wrapper) instead of the role-less host, falling back to the host when
the role is on the host (action-sheet, loading).
- The modal wrapper gets `tabIndex="-1"` so it can receive that
programmatic focus (an element with only `role="dialog"` is not
focusable). Its focus ring is suppressed since the focus is
programmatic, not keyboard-driven.
- Clears text selection when gestures start to prevent Firefox from
interrupting swipe-to-close and sheet gestures.
- Adds an e2e test to `modal/test/a11y/modal.e2e.ts` to verify no
visible outline added to the wrapper.
- Adds e2e tests to `utils/test/overlays/overlays.e2e.ts` to verify the
focus is on the wrapper instead of the host for all modals.
- Fixes Playwright test helper to clear text selection immediately after
`mouse.down()` to prevent the selection from blocking gesture detection
in the test environment.
---------
Co-authored-by: Brandy Smith
Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
---
core/src/components/modal/gestures/sheet.ts | 7 ++
.../modal/gestures/swipe-to-close.ts | 7 ++
core/src/components/modal/modal.scss | 8 ++
core/src/components/modal/modal.tsx | 7 ++
.../components/modal/test/a11y/modal.e2e.ts | 17 ++++
core/src/utils/overlays.ts | 24 +++++-
core/src/utils/test/overlays/overlays.e2e.ts | 82 +++++++++++++++++++
.../src/utils/test/playwright/drag-element.ts | 6 ++
8 files changed, 157 insertions(+), 1 deletion(-)
diff --git a/core/src/components/modal/gestures/sheet.ts b/core/src/components/modal/gestures/sheet.ts
index 13dadc34e81..cacf61c5b43 100644
--- a/core/src/components/modal/gestures/sheet.ts
+++ b/core/src/components/modal/gestures/sheet.ts
@@ -299,6 +299,13 @@ export const createSheetGesture = (
};
const onStart = (detail: GestureDetail) => {
+ /**
+ * Firefox automatically selects the header text during drag
+ * due to the focusable wrapper (tabindex="-1"). Remove any
+ * selection that may have occurred.
+ */
+ window.getSelection()?.removeAllRanges();
+
/**
* If canDismiss is anything other than `true`
* then users should be able to swipe down
diff --git a/core/src/components/modal/gestures/swipe-to-close.ts b/core/src/components/modal/gestures/swipe-to-close.ts
index 2b66e7eac24..d04220c88e7 100644
--- a/core/src/components/modal/gestures/swipe-to-close.ts
+++ b/core/src/components/modal/gestures/swipe-to-close.ts
@@ -116,6 +116,13 @@ export const createSwipeToCloseGesture = (
const onStart = (detail: GestureDetail) => {
const { deltaY } = detail;
+ /**
+ * Firefox automatically selects the header text during drag
+ * due to the focusable wrapper (tabindex="-1"). Remove any
+ * selection that may have occurred.
+ */
+ window.getSelection()?.removeAllRanges();
+
/**
* Get the initial scrollY value so
* that we can correctly reset the scrollY
diff --git a/core/src/components/modal/modal.scss b/core/src/components/modal/modal.scss
index 160468f5792..0df4a448cd3 100644
--- a/core/src/components/modal/modal.scss
+++ b/core/src/components/modal/modal.scss
@@ -84,6 +84,14 @@ ion-backdrop {
z-index: 10;
}
+/**
+ * The wrapper receives programmatic focus for screen readers but should not
+ * show a visible focus ring, which is meant only for keyboard navigation.
+ */
+.modal-wrapper {
+ outline: none;
+}
+
.modal-shadow {
position: absolute;
diff --git a/core/src/components/modal/modal.tsx b/core/src/components/modal/modal.tsx
index 0ea66ce8cfe..e5c5f1301e2 100644
--- a/core/src/components/modal/modal.tsx
+++ b/core/src/components/modal/modal.tsx
@@ -1644,10 +1644,17 @@ export class Modal implements ComponentInterface, OverlayInterface {
same element. They must also be set inside the
shadow DOM otherwise ion-button will not be highlighted
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
+
+ tabIndex={-1} is required so present() can move focus to this
+ element (which carries the dialog role) instead of the role-less
+ host. role="dialog" alone does not make an element focusable, so
+ without the tabindex focus() would be a no-op and screen readers
+ may not properly announce the dialog and its content when it opens.
*/
role="dialog"
{...inheritedAttributes}
aria-modal="true"
+ tabIndex={-1}
class="modal-wrapper ion-overlay-wrapper"
part="content"
ref={(el) => (this.wrapperEl = el)}
diff --git a/core/src/components/modal/test/a11y/modal.e2e.ts b/core/src/components/modal/test/a11y/modal.e2e.ts
index 5aef2cda0d8..0cacc470903 100644
--- a/core/src/components/modal/test/a11y/modal.e2e.ts
+++ b/core/src/components/modal/test/a11y/modal.e2e.ts
@@ -19,5 +19,22 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
const results = await new AxeBuilder({ page }).analyze();
expect(results.violations).toEqual([]);
});
+
+ // The focused wrapper must not show a focus ring when opened via keyboard.
+ test('should not render a focus ring on the wrapper when presented via keyboard', async ({ page }) => {
+ await page.goto(`/src/components/modal/test/a11y`, config);
+
+ const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
+ const button = page.locator('#open-modal');
+ const wrapper = page.locator('ion-modal .modal-wrapper');
+
+ // Open with the keyboard so :focus-visible applies to the wrapper.
+ await button.focus();
+ await page.keyboard.press('Enter');
+ await ionModalDidPresent.next();
+
+ await expect(wrapper).toBeFocused();
+ await expect(wrapper).toHaveCSS('outline-style', 'none');
+ });
});
});
diff --git a/core/src/utils/overlays.ts b/core/src/utils/overlays.ts
index 59b341a7d52..ddcce8f4c1c 100644
--- a/core/src/utils/overlays.ts
+++ b/core/src/utils/overlays.ts
@@ -593,7 +593,29 @@ export const present = async (
* to the overlay container.
*/
if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
- overlay.el.focus();
+ /**
+ * Some overlays (e.g. modal) put the dialog role and accessible label
+ * on the `.ion-overlay-wrapper` instead of the host. Screen readers
+ * need focus on the element with `role="dialog"` to properly announce
+ * and navigate the dialog.
+ *
+ * We only target wrappers with `tabindex`, since `role="dialog"` alone
+ * does not make an element focusable. If no focusable dialog wrapper
+ * exists (e.g. picker-legacy), we fall back to the host.
+ */
+ const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
+ const focusTarget = overlayWrapper ?? overlay.el;
+ /**
+ * `preventScroll` keeps this a pure focus move so the viewport does not
+ * jump when the wrapper is partially off-screen (e.g. a sheet modal).
+ * Guard the options call so an older engine that mishandles it can never
+ * reject present(); we fall back to a plain focus() in that case.
+ */
+ try {
+ focusTarget.focus({ preventScroll: true });
+ } catch {
+ focusTarget.focus();
+ }
}
/**
diff --git a/core/src/utils/test/overlays/overlays.e2e.ts b/core/src/utils/test/overlays/overlays.e2e.ts
index ebe7d25a273..de73fd2f011 100644
--- a/core/src/utils/test/overlays/overlays.e2e.ts
+++ b/core/src/utils/test/overlays/overlays.e2e.ts
@@ -421,5 +421,87 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
// verify focus is in correct location
await expect(input).toBeFocused();
});
+
+ // Focus the role="dialog" wrapper on present so screen readers can enter.
+ test('should focus the modal wrapper on present', async ({ page }, testInfo) => {
+ testInfo.annotations.push({
+ type: 'issue',
+ description: 'FW-7611',
+ });
+ await page.setContent(
+ `
+
+ Modal Content
+
+ `,
+ config
+ );
+
+ const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
+ const modal = page.locator('ion-modal');
+ const wrapper = page.locator('ion-modal .modal-wrapper');
+
+ await modal.evaluate((el: HTMLIonModalElement) => el.present());
+ await ionModalDidPresent.next();
+
+ await expect(wrapper).toHaveAttribute('role', 'dialog');
+ await expect(wrapper).toBeFocused();
+ });
+
+ test('should focus the sheet modal wrapper on present', async ({ page }, testInfo) => {
+ testInfo.annotations.push({
+ type: 'issue',
+ description: 'FW-7611',
+ });
+ await page.setContent(
+ `
+
+ Sheet Modal Content
+
+ `,
+ config
+ );
+
+ const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
+ const modal = page.locator('ion-modal');
+ const wrapper = page.locator('ion-modal .modal-wrapper');
+
+ await modal.evaluate((el: HTMLIonModalElement) => el.present());
+ await ionModalDidPresent.next();
+
+ await expect(wrapper).toHaveAttribute('role', 'dialog');
+ await expect(wrapper).toBeFocused();
+ });
+
+ test('should focus the card modal wrapper on present', async ({ page }, testInfo) => {
+ testInfo.annotations.push({
+ type: 'issue',
+ description: 'FW-7611',
+ });
+ await page.setContent(
+ `
+
+ Root Content
+
+
+ Card Modal Content
+
+ `,
+ config
+ );
+
+ const ionModalDidPresent = await page.spyOnEvent('ionModalDidPresent');
+ const modal = page.locator('ion-modal');
+ const wrapper = page.locator('ion-modal .modal-wrapper');
+
+ await modal.evaluate((el: HTMLIonModalElement) => {
+ el.presentingElement = document.querySelector('.ion-page')!;
+ return el.present();
+ });
+ await ionModalDidPresent.next();
+
+ await expect(wrapper).toHaveAttribute('role', 'dialog');
+ await expect(wrapper).toBeFocused();
+ });
});
});
diff --git a/core/src/utils/test/playwright/drag-element.ts b/core/src/utils/test/playwright/drag-element.ts
index ec0a8d9ce83..febff65078e 100644
--- a/core/src/utils/test/playwright/drag-element.ts
+++ b/core/src/utils/test/playwright/drag-element.ts
@@ -35,6 +35,12 @@ export const dragElementBy = async (
await page.mouse.down();
+ // Firefox treats focusable elements (tabindex="-1") as draggable text and
+ // initiates text selection on mouse.down(). In Playwright, this selection
+ // locks in before the gesture detector fires, blocking pointer events.
+ // Clearing it here allows the drag gesture to proceed normally.
+ await page.evaluate(() => window.getSelection()?.removeAllRanges());
+
// Drag the element.
await moveElement(page, startX, startY, dragByX, dragByY);
From ae6911f6c8d46467ae54114295688bbba5ccbf5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=B6hler?=
<74658813+SebastianKohler@users.noreply.github.com>
Date: Tue, 21 Jul 2026 18:31:15 +0300
Subject: [PATCH 10/13] fix(angular-server): fallback to scoped+annotations
when SSR DOM lacks attachShadow (#30967)
Issue number: related to #29751
## What is the current behavior?
In Angular SSR environments using a server DOM that does not implement
native `attachShadow` (for example Domino), Ionic server hydration can
fail with:
`TypeError: this.attachShadow is not a function`
This occurs in the server hydrate path used by `@ionic/angular-server`
when calling `hydrateDocument(...)` with the current default behavior.
## What is the new behavior?
This PR adds a capability check in
`packages/angular-server/src/ionic-server-module.ts` and applies a
conditional fallback only when `attachShadow` is unavailable:
- if `attachShadow` is supported:
- keep existing behavior (`clientHydrateAnnotations: false`)
- if `attachShadow` is not supported:
- use `serializeShadowRoot: 'scoped'`
- use `clientHydrateAnnotations: true`
This keeps the current behavior for environments with native
`attachShadow`, while providing a compatible SSR path for Domino-like
environments.
## Does this introduce a breaking change?
- [ ] Yes
- [x] No
## Other information
The change is intentionally scoped to `@ionic/angular-server`
integration logic and does not modify component behavior or the existing
`excludeComponents` list.
I could not run the full Ionic test/lint suite locally in my current
Windows environment setup, so this PR relies on CI for full validation.
Note: this PR addresses the `attachShadow` SSR crash path in
`@ionic/angular-server` by applying a conditional fallback.
From upstream investigation, there is also a Stencil runtime fix in `>=
4.40.0` related to non-shadow component patching
(`children`/`childNodes`) that may affect Angular client hydration
behavior. So full end-to-end resolution of all symptoms may also depend
on the Stencil bump tracked separately.
Co-authored-by: ShaneK
---
packages/angular-server/src/ionic-server-module.ts | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/packages/angular-server/src/ionic-server-module.ts b/packages/angular-server/src/ionic-server-module.ts
index 72b53de322e..f2d65755a6a 100644
--- a/packages/angular-server/src/ionic-server-module.ts
+++ b/packages/angular-server/src/ionic-server-module.ts
@@ -20,8 +20,17 @@ export class IonicServerModule {}
export function hydrateIonicComponents(doc: any, appId: any) {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
return () => {
+ const supportsNativeAttachShadow =
+ typeof doc?.createElement?.('div')?.attachShadow === 'function';
+
return hydrateDocument(doc, {
- clientHydrateAnnotations: false,
+ // Fallback for SSR DOMs (e.g. Domino) that do not implement attachShadow.
+ ...(supportsNativeAttachShadow
+ ? { clientHydrateAnnotations: false }
+ : {
+ serializeShadowRoot: 'scoped',
+ clientHydrateAnnotations: true,
+ }),
excludeComponents: [
// overlays
'ion-action-sheet',
From eaae5061406ce887d8e70169aafbe8674f9b0fe2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gon=C3=A7alo=20M=2E?=
Date: Wed, 22 Jul 2026 21:40:27 +0100
Subject: [PATCH 11/13] ci(github): pin third-party actions to commit SHAs
(#31277)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Issue number: FW-6928
---------
## What is the current behavior?
Several third-party GitHub Actions in our workflows and composite
actions
were still referenced by mutable tags (`@v6`/`@v7`/`@v8`/`@v4`). A
mutable
tag can be repointed by the action author β or an attacker who gains
write
access to the action repo β to arbitrary code, which then runs with the
workflow's permissions and secrets (notably in the release pipeline).
## What is the new behavior?
All remaining unpinned third-party actions are now pinned to a
full-length
commit SHA with a `# vX.Y.Z` comment, matching the convention already
used
across the repo (e.g. `actions/checkout@9c091bb⦠# v7.0.0`). Each action
keeps its current major, pinned to the latest patch of that major. Every
SHA was independently verified against its upstream tag.
File | Action | Pinned to
-- | -- | --
actions/build-angular/action.yml | actions/setup-node | 820762786β¦Β #
v7.0.0
actions/upload-archive/action.yml | actions/upload-artifact |
043fb46d1β¦Β # v7.0.1
actions/test-core-screenshot/action.yml | actions/upload-artifact |
043fb46d1β¦Β # v7.0.1
actions/download-archive/action.yml | actions/download-artifact |
3e5f45b2cβ¦Β # v8.0.1
actions/update-reference-screenshots/action.yml |
actions/download-artifact | 3e5f45b2cβ¦Β # v8.0.1
codeql-analysis.ymlΒ (init + analyze) | github/codeql-action |
7188fc363β¦Β # v4.37.1
conventional-commit.yml | amannn/action-semantic-pull-request |
48f256284β¦Β # v6.1.1
label.yml | actions/labeler | b8dd2d9beβ¦Β # v6.2.0
Local `uses: ./β¦` composite/reusable refs are intentionally left
unchanged
(same-repo, no external supply-chain risk).
## Does this introduce a breaking change?
- [ ] Yes
- [x] No
No behavioural change β this only pins which upstream commit CI
executes.
## Other information
- No major-version upgrades; that's deferred as a separate maintenance
concern.
- Follow-ups considered but out of scope: a CI guard to block
reintroducing
unpinned actions, and a `github-actions` Dependabot entry to keep the
pins
bumped.
---
.github/workflows/actions/build-angular/action.yml | 2 +-
.github/workflows/actions/download-archive/action.yml | 2 +-
.github/workflows/actions/test-core-screenshot/action.yml | 2 +-
.../workflows/actions/update-reference-screenshots/action.yml | 2 +-
.github/workflows/actions/upload-archive/action.yml | 2 +-
.github/workflows/codeql-analysis.yml | 4 ++--
.github/workflows/conventional-commit.yml | 2 +-
.github/workflows/label.yml | 2 +-
8 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/actions/build-angular/action.yml b/.github/workflows/actions/build-angular/action.yml
index 9f27f79336a..12e1db1f5dc 100644
--- a/.github/workflows/actions/build-angular/action.yml
+++ b/.github/workflows/actions/build-angular/action.yml
@@ -3,7 +3,7 @@ description: 'Build Ionic Angular'
runs:
using: 'composite'
steps:
- - uses: actions/setup-node@v7
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- uses: ./.github/workflows/actions/download-archive
diff --git a/.github/workflows/actions/download-archive/action.yml b/.github/workflows/actions/download-archive/action.yml
index 2acddf9713f..97f07f8627a 100644
--- a/.github/workflows/actions/download-archive/action.yml
+++ b/.github/workflows/actions/download-archive/action.yml
@@ -10,7 +10,7 @@ inputs:
runs:
using: 'composite'
steps:
- - uses: actions/download-artifact@v8
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
diff --git a/.github/workflows/actions/test-core-screenshot/action.yml b/.github/workflows/actions/test-core-screenshot/action.yml
index 35eca3ec53e..379ce934edc 100644
--- a/.github/workflows/actions/test-core-screenshot/action.yml
+++ b/.github/workflows/actions/test-core-screenshot/action.yml
@@ -66,7 +66,7 @@ runs:
working-directory: ./core
- name: π¦ Archive Updated Screenshots
if: inputs.update == 'true' && steps.test-and-update.outputs.hasUpdatedScreenshots == 'true'
- uses: actions/upload-artifact@v7
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: updated-screenshots-${{ inputs.shard }}-${{ inputs.totalShards }}
path: UpdatedScreenshots-${{ inputs.shard }}-${{ inputs.totalShards }}.zip
diff --git a/.github/workflows/actions/update-reference-screenshots/action.yml b/.github/workflows/actions/update-reference-screenshots/action.yml
index a7bdde53871..844f4e6d2ac 100644
--- a/.github/workflows/actions/update-reference-screenshots/action.yml
+++ b/.github/workflows/actions/update-reference-screenshots/action.yml
@@ -10,7 +10,7 @@ runs:
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
- - uses: actions/download-artifact@v8
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
path: ./artifacts
- name: π Extract Archives
diff --git a/.github/workflows/actions/upload-archive/action.yml b/.github/workflows/actions/upload-archive/action.yml
index c09397345f9..3cfff8853fc 100644
--- a/.github/workflows/actions/upload-archive/action.yml
+++ b/.github/workflows/actions/upload-archive/action.yml
@@ -13,7 +13,7 @@ runs:
- name: ποΈ Create Archive
run: zip -q -r ${{ inputs.output }} ${{ inputs.paths }}
shell: bash
- - uses: actions/upload-artifact@v7
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: ${{ inputs.name }}
path: ${{ inputs.output }}
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index ccdc9b996d2..74f504e7317 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -15,7 +15,7 @@ jobs:
security-events: write
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- - uses: github/codeql-action/init@v4
+ - uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
with:
languages: javascript
- - uses: github/codeql-action/analyze@v4
+ - uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
diff --git a/.github/workflows/conventional-commit.yml b/.github/workflows/conventional-commit.yml
index 8c0bbdebb37..65c026de5eb 100644
--- a/.github/workflows/conventional-commit.yml
+++ b/.github/workflows/conventional-commit.yml
@@ -12,7 +12,7 @@ jobs:
if: |
!contains(github.event.pull_request.title, 'release') &&
!contains(github.event.pull_request.title, 'chore')
- uses: amannn/action-semantic-pull-request@v6
+ uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml
index 7f5d8de9787..b6014addef1 100644
--- a/.github/workflows/label.yml
+++ b/.github/workflows/label.yml
@@ -13,7 +13,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- - uses: actions/labeler@v6
+ - uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: true
From f8a46f9215031e126d3f8c8bb428d26358f76332 Mon Sep 17 00:00:00 2001
From: ionitron
Date: Wed, 22 Jul 2026 21:29:49 +0000
Subject: [PATCH 12/13] v8.8.15
---
CHANGELOG.md | 12 ++++++++++++
core/CHANGELOG.md | 11 +++++++++++
core/package-lock.json | 6 +++---
core/package.json | 2 +-
lerna.json | 2 +-
packages/angular-server/CHANGELOG.md | 11 +++++++++++
packages/angular-server/package-lock.json | 8 ++++----
packages/angular-server/package.json | 4 ++--
packages/angular/CHANGELOG.md | 8 ++++++++
packages/angular/package-lock.json | 8 ++++----
packages/angular/package.json | 4 ++--
packages/docs/CHANGELOG.md | 8 ++++++++
packages/docs/package-lock.json | 6 +++---
packages/docs/package.json | 2 +-
packages/react-router/CHANGELOG.md | 8 ++++++++
packages/react-router/package-lock.json | 8 ++++----
packages/react-router/package.json | 4 ++--
packages/react/CHANGELOG.md | 8 ++++++++
packages/react/package-lock.json | 8 ++++----
packages/react/package.json | 4 ++--
packages/vue-router/CHANGELOG.md | 8 ++++++++
packages/vue-router/package-lock.json | 8 ++++----
packages/vue-router/package.json | 4 ++--
packages/vue/CHANGELOG.md | 8 ++++++++
packages/vue/package-lock.json | 8 ++++----
packages/vue/package.json | 4 ++--
26 files changed, 127 insertions(+), 45 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a34a9108ca2..996f23da565 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+
+### Bug Fixes
+
+* **angular-server:** fallback to scoped+annotations when SSR DOM lacks attachShadow ([#30967](https://github.com/ionic-team/ionic-framework/issues/30967)) ([ae6911f](https://github.com/ionic-team/ionic-framework/commit/ae6911f6c8d46467ae54114295688bbba5ccbf5e)), closes [#29751](https://github.com/ionic-team/ionic-framework/issues/29751)
+* **modal:** focus the dialog wrapper on present so screen readers can enter the modal ([#31260](https://github.com/ionic-team/ionic-framework/issues/31260)) ([6251eb8](https://github.com/ionic-team/ionic-framework/commit/6251eb85db0e5b43b9e09604248dc8451e1664c0))
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md
index e1c7853b8dc..a7596c353cc 100644
--- a/core/CHANGELOG.md
+++ b/core/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+
+### Bug Fixes
+
+* **modal:** focus the dialog wrapper on present so screen readers can enter the modal ([#31260](https://github.com/ionic-team/ionic-framework/issues/31260)) ([6251eb8](https://github.com/ionic-team/ionic-framework/commit/6251eb85db0e5b43b9e09604248dc8451e1664c0))
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/core
diff --git a/core/package-lock.json b/core/package-lock.json
index a838764fc14..bcc6fade3a7 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@ionic/core",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/core",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -9831,4 +9831,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/core/package.json b/core/package.json
index 37e9addb583..c32b1e52897 100644
--- a/core/package.json
+++ b/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/core",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Base components for Ionic",
"engines": {
"node": ">= 16"
diff --git a/lerna.json b/lerna.json
index ef652a71ace..c1999229e99 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,5 +3,5 @@
"core",
"packages/*"
],
- "version": "8.8.14"
+ "version": "8.8.15"
}
\ No newline at end of file
diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md
index 7539580efea..4ccbf22bbce 100644
--- a/packages/angular-server/CHANGELOG.md
+++ b/packages/angular-server/CHANGELOG.md
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+
+### Bug Fixes
+
+* **angular-server:** fallback to scoped+annotations when SSR DOM lacks attachShadow ([#30967](https://github.com/ionic-team/ionic-framework/issues/30967)) ([ae6911f](https://github.com/ionic-team/ionic-framework/commit/ae6911f6c8d46467ae54114295688bbba5ccbf5e)), closes [#29751](https://github.com/ionic-team/ionic-framework/issues/29751)
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/angular-server
diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json
index 61c1642676a..2e537908aec 100644
--- a/packages/angular-server/package-lock.json
+++ b/packages/angular-server/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/angular-server",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular-server",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.14"
+ "@ionic/core": "^8.8.15"
},
"devDependencies": {
"@angular-eslint/eslint-plugin": "^16.0.0",
@@ -11289,4 +11289,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json
index 937c5ca5b32..ee10b028ddb 100644
--- a/packages/angular-server/package.json
+++ b/packages/angular-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular-server",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Angular SSR Module for Ionic",
"keywords": [
"ionic",
@@ -62,6 +62,6 @@
},
"prettier": "@ionic/prettier-config",
"dependencies": {
- "@ionic/core": "^8.8.14"
+ "@ionic/core": "^8.8.15"
}
}
diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md
index 6ca79e1400c..20ab7d5ba4c 100644
--- a/packages/angular/CHANGELOG.md
+++ b/packages/angular/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/angular
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/angular
diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json
index 0e99daf909c..f4d71193405 100644
--- a/packages/angular/package-lock.json
+++ b/packages/angular/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/angular",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"ionicons": "^8.0.13",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
@@ -9095,4 +9095,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/angular/package.json b/packages/angular/package.json
index 5ba7fc8dc7b..5eb59586f14 100644
--- a/packages/angular/package.json
+++ b/packages/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Angular specific wrappers for @ionic/core",
"keywords": [
"ionic",
@@ -48,7 +48,7 @@
}
},
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"ionicons": "^8.0.13",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
diff --git a/packages/docs/CHANGELOG.md b/packages/docs/CHANGELOG.md
index 17ef130f5c3..15c703ffa25 100644
--- a/packages/docs/CHANGELOG.md
+++ b/packages/docs/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/docs
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/docs
diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json
index f5bb9be743c..e25e4443d03 100644
--- a/packages/docs/package-lock.json
+++ b/packages/docs/package-lock.json
@@ -1,13 +1,13 @@
{
"name": "@ionic/docs",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/docs",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT"
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/docs/package.json b/packages/docs/package.json
index 9871469ef64..262e89331b3 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/docs",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Pre-packaged API documentation for the Ionic docs.",
"main": "core.json",
"types": "core.d.ts",
diff --git a/packages/react-router/CHANGELOG.md b/packages/react-router/CHANGELOG.md
index b007659dbc6..119692c6d83 100644
--- a/packages/react-router/CHANGELOG.md
+++ b/packages/react-router/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/react-router
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/react-router
diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json
index de6eb728429..3873ada2ce8 100644
--- a/packages/react-router/package-lock.json
+++ b/packages/react-router/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/react-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/react-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/react": "^8.8.14",
+ "@ionic/react": "^8.8.15",
"tslib": "*"
},
"devDependencies": {
@@ -6847,4 +6847,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/react-router/package.json b/packages/react-router/package.json
index 8ab38ff8ca8..818393ac6b9 100644
--- a/packages/react-router/package.json
+++ b/packages/react-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "React Router wrapper for @ionic/react",
"keywords": [
"ionic",
@@ -36,7 +36,7 @@
"dist/"
],
"dependencies": {
- "@ionic/react": "^8.8.14",
+ "@ionic/react": "^8.8.15",
"tslib": "*"
},
"peerDependencies": {
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index a71a4c75e85..e0e3c9aeba1 100644
--- a/packages/react/CHANGELOG.md
+++ b/packages/react/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/react
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json
index 892ab9c320d..3467b546da9 100644
--- a/packages/react/package-lock.json
+++ b/packages/react/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/react",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/react",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"ionicons": "^8.0.13",
"tslib": "*"
},
@@ -11916,4 +11916,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/react/package.json b/packages/react/package.json
index 8264c55f24a..64af2f66975 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "React specific wrapper for @ionic/core",
"keywords": [
"ionic",
@@ -40,7 +40,7 @@
"css/"
],
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"ionicons": "^8.0.13",
"tslib": "*"
},
diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md
index a3c5210d5ad..3f626505934 100644
--- a/packages/vue-router/CHANGELOG.md
+++ b/packages/vue-router/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/vue-router
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/vue-router
diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json
index 4d48fed22a4..96dd3aafa8e 100644
--- a/packages/vue-router/package-lock.json
+++ b/packages/vue-router/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/vue-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/vue": "^8.8.14"
+ "@ionic/vue": "^8.8.15"
},
"devDependencies": {
"@ionic/eslint-config": "^0.3.0",
@@ -12994,4 +12994,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json
index fd99a532c28..148fe0aa14a 100644
--- a/packages/vue-router/package.json
+++ b/packages/vue-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue-router",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Vue Router integration for @ionic/vue",
"scripts": {
"test.spec": "jest",
@@ -44,7 +44,7 @@
},
"homepage": "https://github.com/ionic-team/ionic-framework#readme",
"dependencies": {
- "@ionic/vue": "^8.8.14"
+ "@ionic/vue": "^8.8.15"
},
"devDependencies": {
"@ionic/eslint-config": "^0.3.0",
diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md
index 0ec380d4bee..060691a3ca7 100644
--- a/packages/vue/CHANGELOG.md
+++ b/packages/vue/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.15](https://github.com/ionic-team/ionic-framework/compare/v8.8.14...v8.8.15) (2026-07-22)
+
+**Note:** Version bump only for package @ionic/vue
+
+
+
+
+
## [8.8.14](https://github.com/ionic-team/ionic-framework/compare/v8.8.13...v8.8.14) (2026-07-15)
**Note:** Version bump only for package @ionic/vue
diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json
index d1e1b6ffba6..625d5c3606b 100644
--- a/packages/vue/package-lock.json
+++ b/packages/vue/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/vue",
- "version": "8.8.14",
+ "version": "8.8.15",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue",
- "version": "8.8.14",
+ "version": "8.8.15",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
},
@@ -4022,4 +4022,4 @@
"dev": true
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/vue/package.json b/packages/vue/package.json
index d2e6962a255..68f9e44cdea 100644
--- a/packages/vue/package.json
+++ b/packages/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue",
- "version": "8.8.14",
+ "version": "8.8.15",
"description": "Vue specific wrapper for @ionic/core",
"scripts": {
"eslint": "eslint src",
@@ -68,7 +68,7 @@
"vue-router": "^4.0.16"
},
"dependencies": {
- "@ionic/core": "^8.8.14",
+ "@ionic/core": "^8.8.15",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
},
From 82f0dc8c3b54613489becf25f515cc3f1fce6256 Mon Sep 17 00:00:00 2001
From: ionitron
Date: Wed, 22 Jul 2026 21:30:54 +0000
Subject: [PATCH 13/13] chore(): update package lock files
---
core/package-lock.json | 2 +-
packages/angular-server/package-lock.json | 14 +++++------
packages/angular/package-lock.json | 8 +++---
packages/docs/package-lock.json | 2 +-
packages/react-router/package-lock.json | 30 +++++++++++------------
packages/react/package-lock.json | 8 +++---
packages/vue-router/package-lock.json | 30 +++++++++++------------
packages/vue/package-lock.json | 8 +++---
8 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/core/package-lock.json b/core/package-lock.json
index bcc6fade3a7..49d25b8066d 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -9831,4 +9831,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json
index 2e537908aec..399e46b387c 100644
--- a/packages/angular-server/package-lock.json
+++ b/packages/angular-server/package-lock.json
@@ -1031,9 +1031,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -7309,9 +7309,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -11289,4 +11289,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json
index f4d71193405..adbea154935 100644
--- a/packages/angular/package-lock.json
+++ b/packages/angular/package-lock.json
@@ -1398,9 +1398,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -9095,4 +9095,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json
index e25e4443d03..2f96d120cbd 100644
--- a/packages/docs/package-lock.json
+++ b/packages/docs/package-lock.json
@@ -10,4 +10,4 @@
"license": "MIT"
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/react-router/package-lock.json b/packages/react-router/package-lock.json
index 3873ada2ce8..9031a7d4ea7 100644
--- a/packages/react-router/package-lock.json
+++ b/packages/react-router/package-lock.json
@@ -238,9 +238,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -418,12 +418,12 @@
}
},
"node_modules/@ionic/react": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.14.tgz",
- "integrity": "sha512-oEj1nIznqFQpnWGU3qsqY6jpPl1fQoX/cPtL0sgXMBOFPtbuQx1R+NOwKh9ozHsRXTpmmfCjLZPioboieyEyyw==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.15.tgz",
+ "integrity": "sha512-8bjys95dICAfJMwA0iuKIYfg5pbz2lY56eQpIG6In+796PvMNVXE9eFLhIZ15jjpRE1O/HZHxO2OFV/pL3NVdA==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.14",
+ "@ionic/core": "8.8.15",
"ionicons": "^8.0.13",
"tslib": "*"
},
@@ -4178,9 +4178,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -4284,11 +4284,11 @@
"requires": {}
},
"@ionic/react": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.14.tgz",
- "integrity": "sha512-oEj1nIznqFQpnWGU3qsqY6jpPl1fQoX/cPtL0sgXMBOFPtbuQx1R+NOwKh9ozHsRXTpmmfCjLZPioboieyEyyw==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.15.tgz",
+ "integrity": "sha512-8bjys95dICAfJMwA0iuKIYfg5pbz2lY56eQpIG6In+796PvMNVXE9eFLhIZ15jjpRE1O/HZHxO2OFV/pL3NVdA==",
"requires": {
- "@ionic/core": "8.8.14",
+ "@ionic/core": "8.8.15",
"ionicons": "^8.0.13",
"tslib": "*"
}
@@ -6847,4 +6847,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json
index 3467b546da9..c7d267d5894 100644
--- a/packages/react/package-lock.json
+++ b/packages/react/package-lock.json
@@ -736,9 +736,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -11916,4 +11916,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/vue-router/package-lock.json b/packages/vue-router/package-lock.json
index 96dd3aafa8e..ef1cc487fdd 100644
--- a/packages/vue-router/package-lock.json
+++ b/packages/vue-router/package-lock.json
@@ -673,9 +673,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -868,12 +868,12 @@
}
},
"node_modules/@ionic/vue": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.14.tgz",
- "integrity": "sha512-mGmK77YZM+Os+sYsDaw4QCpvNd7DhHIJvih8lfRSqo/zLyLm7x6Ya4OwCbPxKRL3CMERDKLW10p7rImihhMilA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.15.tgz",
+ "integrity": "sha512-WYM51Qlh1PES6Xst+085ueGj4iars2AhBnTboQBLxS9knU6hHQ90/5/pNjOl3WyFkmWV7/kL8iQaR7o+qESLxQ==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.14",
+ "@ionic/core": "8.8.15",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
}
@@ -8044,9 +8044,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
@@ -8159,11 +8159,11 @@
"requires": {}
},
"@ionic/vue": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.14.tgz",
- "integrity": "sha512-mGmK77YZM+Os+sYsDaw4QCpvNd7DhHIJvih8lfRSqo/zLyLm7x6Ya4OwCbPxKRL3CMERDKLW10p7rImihhMilA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.15.tgz",
+ "integrity": "sha512-WYM51Qlh1PES6Xst+085ueGj4iars2AhBnTboQBLxS9knU6hHQ90/5/pNjOl3WyFkmWV7/kL8iQaR7o+qESLxQ==",
"requires": {
- "@ionic/core": "8.8.14",
+ "@ionic/core": "8.8.15",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
}
@@ -12994,4 +12994,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}
diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json
index 625d5c3606b..07a3e46add3 100644
--- a/packages/vue/package-lock.json
+++ b/packages/vue/package-lock.json
@@ -222,9 +222,9 @@
"dev": true
},
"node_modules/@ionic/core": {
- "version": "8.8.14",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.14.tgz",
- "integrity": "sha512-xI1y1OqPFsEjVE6nvLdUpb77Xt4uy5cQrNbDT/sRM6RN3vMs2zOFWubeRaQkBf0WslFetiJ/5uAALS/mW4d4TA==",
+ "version": "8.8.15",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.15.tgz",
+ "integrity": "sha512-iEREpxWYEakK3ZVGdFVi6Vm+MIpVhNlfy5qds5IjVnZqUPKaD8ynN/2LPfgQiLO/e8eEo40KJj+QuW97uMW53Q==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -4022,4 +4022,4 @@
"dev": true
}
}
-}
\ No newline at end of file
+}