diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 0e27f252903..f17a5f9a264 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- - uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
+ - uses: github/codeql-action/init@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
with:
languages: javascript
- - uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
+ - uses: github/codeql-action/analyze@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fcd32072979..e8177e09f91 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,15 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+### Bug Fixes
+
+* **gesture:** remove leaked optsTest listener from passive support check ([#31363](https://github.com/ionic-team/ionic-framework/issues/31363)) ([c689000](https://github.com/ionic-team/ionic-framework/commit/c6890002df0a1ec5ac030626b1694e87022365c0)), closes [#30539](https://github.com/ionic-team/ionic-framework/issues/30539)
+* **menu:** respect ion-app dir attribute for menu animation side ([#31246](https://github.com/ionic-team/ionic-framework/issues/31246)) ([2618a6f](https://github.com/ionic-team/ionic-framework/commit/2618a6f7bd793ad09e38e4868d753189610eff9d)), closes [#30226](https://github.com/ionic-team/ionic-framework/issues/30226)
+* **range:** update knob positions when dualKnobs changes ([#31365](https://github.com/ionic-team/ionic-framework/issues/31365)) ([7d64d62](https://github.com/ionic-team/ionic-framework/commit/7d64d62a31d59078560575ad9c4fc67a8e49e524)), closes [#31026](https://github.com/ionic-team/ionic-framework/issues/31026)
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md
index 84ed9ee1068..ab4393bfa1f 100644
--- a/core/CHANGELOG.md
+++ b/core/CHANGELOG.md
@@ -3,6 +3,15 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [8.8.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+### Bug Fixes
+
+* **gesture:** remove leaked optsTest listener from passive support check ([#31363](https://github.com/ionic-team/ionic-framework/issues/31363)) ([c689000](https://github.com/ionic-team/ionic-framework/commit/c6890002df0a1ec5ac030626b1694e87022365c0)), closes [#30539](https://github.com/ionic-team/ionic-framework/issues/30539)
+* **menu:** respect ion-app dir attribute for menu animation side ([#31246](https://github.com/ionic-team/ionic-framework/issues/31246)) ([2618a6f](https://github.com/ionic-team/ionic-framework/commit/2618a6f7bd793ad09e38e4868d753189610eff9d)), closes [#30226](https://github.com/ionic-team/ionic-framework/issues/30226)
+* **range:** update knob positions when dualKnobs changes ([#31365](https://github.com/ionic-team/ionic-framework/issues/31365)) ([7d64d62](https://github.com/ionic-team/ionic-framework/commit/7d64d62a31d59078560575ad9c4fc67a8e49e524)), closes [#31026](https://github.com/ionic-team/ionic-framework/issues/31026)
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
diff --git a/core/package-lock.json b/core/package-lock.json
index 2b219a34b3f..71ea390bcdc 100644
--- a/core/package-lock.json
+++ b/core/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@ionic/core",
- "version": "8.8.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/core",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
"@stencil/core": "^4.43.5",
diff --git a/core/package.json b/core/package.json
index f91bf79a1df..4adbc62b276 100644
--- a/core/package.json
+++ b/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/core",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "Base components for Ionic",
"engines": {
"node": ">= 16"
diff --git a/core/src/components.d.ts b/core/src/components.d.ts
index 37ad13b6c01..2873ac12d68 100644
--- a/core/src/components.d.ts
+++ b/core/src/components.d.ts
@@ -2545,7 +2545,7 @@ export namespace Components {
*/
"disabled": boolean;
/**
- * Show two knobs.
+ * If `true`, the range shows two knobs and `value` is an object with `lower` and `upper` properties. If `false`, the range shows one knob and `value` is a number.
* @default false
*/
"dualKnobs": boolean;
@@ -7679,7 +7679,7 @@ declare namespace LocalJSX {
*/
"disabled"?: boolean;
/**
- * Show two knobs.
+ * If `true`, the range shows two knobs and `value` is an object with `lower` and `upper` properties. If `false`, the range shows one knob and `value` is a number.
* @default false
*/
"dualKnobs"?: boolean;
diff --git a/core/src/components/menu/menu.tsx b/core/src/components/menu/menu.tsx
index 4769f609914..4bf4564c40f 100644
--- a/core/src/components/menu/menu.tsx
+++ b/core/src/components/menu/menu.tsx
@@ -150,7 +150,7 @@ export class Menu implements ComponentInterface, MenuI {
@Watch('side')
protected sideChanged() {
- this.isEndSide = isEnd(this.side);
+ this.isEndSide = isEnd(this.side, this.el);
/**
* Menu direction animation is calculated based on the document direction.
* If the document direction changes, we need to create a new animation.
@@ -499,7 +499,7 @@ export class Menu implements ComponentInterface, MenuI {
* Menu direction animation is calculated based on the document direction.
* If the document direction changes, we need to create a new animation.
*/
- const isEndSide = isEnd(this.side);
+ const isEndSide = isEnd(this.side, this.el);
if (width === this.width && this.animation !== undefined && isEndSide === this.isEndSide) {
return;
}
diff --git a/core/src/components/range/range.tsx b/core/src/components/range/range.tsx
index 26e5ef785dd..c3875c8e30e 100644
--- a/core/src/components/range/range.tsx
+++ b/core/src/components/range/range.tsx
@@ -134,10 +134,19 @@ export class Range implements ComponentInterface {
@Prop() label?: string;
/**
- * Show two knobs.
+ * If `true`, the range shows two knobs and `value` is an object with `lower`
+ * and `upper` properties. If `false`, the range shows one knob and `value` is
+ * a number.
*/
@Prop() dualKnobs = false;
+ @Watch('dualKnobs')
+ protected dualKnobsChanged() {
+ if (!this.noUpdate) {
+ this.updateRatio();
+ }
+ }
+
/**
* Minimum integer value of the range.
*/
diff --git a/core/src/components/range/test/dual-knobs/index.html b/core/src/components/range/test/dual-knobs/index.html
new file mode 100644
index 00000000000..a477dae62d8
--- /dev/null
+++ b/core/src/components/range/test/dual-knobs/index.html
@@ -0,0 +1,122 @@
+
+
+
'))).toBe(false);
});
- it('should return false', () => {
- expect(isRTL({ dir: 'ltr' })).toBe(false);
- expect(isRTL({ dir: '' })).toBe(false);
+ it('should skip values that do not declare a direction', () => {
+ /**
+ * `dir=""`, `dir="auto"` and unknown values are not used as a direction,
+ * so the nearest ancestor that does declare one still wins.
+ */
+ expect(isRTL(render('
'))).toBe(true);
+ expect(isRTL(render('
'))).toBe(true);
+ expect(isRTL(render('
'))).toBe(true);
});
});
- describe('without host element', () => {
- it('should return true', () => {
- global.document.dir = 'rtl';
- expect(isRTL()).toBe(true);
+ describe('falling back to the document', () => {
+ it('should use the document dir when no ancestor declares one', () => {
+ document.dir = 'rtl';
+ expect(isRTL(render('
'))).toBe(false);
+ });
+
+ it('should use the document dir for a detached element', () => {
+ document.dir = 'rtl';
+ expect(isRTL(document.createElement('div'))).toBe(true);
});
- it('should return false', () => {
- global.document.dir = 'ltr';
+ it('should default to ltr when no dir is set anywhere', () => {
+ // Ensure the default is actually being tested rather than a
+ // value left behind by another test.
+ expect(document.dir).toBe('');
+
+ expect(isRTL()).toBe(false);
+ expect(isRTL(null)).toBe(false);
+ expect(isRTL(document.createElement('div'))).toBe(false);
+ expect(isRTL(render('
'))).toBe(false);
+ });
+ });
+
+ describe('without a host element', () => {
+ it('should use the document dir', () => {
+ document.dir = 'rtl';
+ expect(isRTL()).toBe(true);
+
+ document.dir = 'ltr';
expect(isRTL()).toBe(false);
});
});
diff --git a/core/src/utils/rtl/dir.ts b/core/src/utils/rtl/dir.ts
index 7e1cb9cb1b9..1d7de2dd261 100644
--- a/core/src/utils/rtl/dir.ts
+++ b/core/src/utils/rtl/dir.ts
@@ -1,13 +1,24 @@
/**
- * Returns `true` if the document or host element
- * has a `dir` set to `rtl`. The host value will always
- * take priority over the root document value.
+ * Returns `true` if the direction resolves to `rtl` for the given element.
+ *
+ * The direction comes from the nearest ancestor that declares one, starting
+ * with `hostEl` itself, and falls back to the root document value. Setting
+ * `dir="auto"` or setting `dir` to an empty string are skipped rather than
+ * treated as `ltr`. When nothing declares a direction, including the document,
+ * the direction is `ltr`.
+ *
+ * @param hostEl the element to resolve the direction for.
*/
-export const isRTL = (hostEl?: Pick) => {
- if (hostEl) {
- if (hostEl.dir !== '') {
- return hostEl.dir.toLowerCase() === 'rtl';
+export const isRTL = (hostEl?: Element | null): boolean => {
+ for (let el = hostEl; el; el = el.parentElement) {
+ const dir = el.getAttribute('dir')?.toLowerCase();
+
+ if (dir === 'rtl') {
+ return true;
+ }
+ if (dir === 'ltr') {
+ return false;
}
}
- return document?.dir.toLowerCase() === 'rtl';
+ return document?.dir?.toLowerCase() === 'rtl';
};
diff --git a/lerna.json b/lerna.json
index cfe9cb7da97..80ec1d2f11c 100644
--- a/lerna.json
+++ b/lerna.json
@@ -10,5 +10,5 @@
"packages/vue",
"packages/vue-router"
],
- "version": "8.8.18"
+ "version": "8.8.19"
}
diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md
index e21d866a157..d469c30c2b9 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/angular-server
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**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 627d526f342..91bc49e6260 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.18",
+ "version": "8.8.19",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular-server",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.18"
+ "@ionic/core": "^8.8.19"
},
"devDependencies": {
"@angular/animations": "^22.0.0",
@@ -1135,9 +1135,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -7626,9 +7626,9 @@
"dev": true
},
"@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"requires": {
"@stencil/core": "4.43.5",
"ionicons": "^8.0.13",
diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json
index d4bbae70076..604f5205831 100644
--- a/packages/angular-server/package.json
+++ b/packages/angular-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular-server",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "Angular SSR Module for Ionic",
"keywords": [
"ionic",
@@ -78,6 +78,6 @@
},
"prettier": "@ionic/prettier-config",
"dependencies": {
- "@ionic/core": "^8.8.18"
+ "@ionic/core": "^8.8.19"
}
}
diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md
index eba40d13271..04daab290e1 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/angular
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**Note:** Version bump only for package @ionic/angular
diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json
index 9f8a19e087b..2c9ecac486d 100644
--- a/packages/angular/package-lock.json
+++ b/packages/angular/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/angular",
- "version": "8.8.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/angular",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"ionicons": "^8.0.13",
"jsonc-parser": "^3.0.0",
"tslib": "^2.3.0"
@@ -1579,9 +1579,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
diff --git a/packages/angular/package.json b/packages/angular/package.json
index d3b7077fd10..caa5cd66a58 100644
--- a/packages/angular/package.json
+++ b/packages/angular/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/angular",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "Angular specific wrappers for @ionic/core",
"keywords": [
"ionic",
@@ -157,7 +157,7 @@
"css/"
],
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"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 36c4332ec5e..0fe339ae639 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/docs
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**Note:** Version bump only for package @ionic/docs
diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json
index 195bd3a51b8..fc1fb688a72 100644
--- a/packages/docs/package-lock.json
+++ b/packages/docs/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@ionic/docs",
- "version": "8.8.18",
+ "version": "8.8.19",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@ionic/docs",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT"
}
}
diff --git a/packages/docs/package.json b/packages/docs/package.json
index bfa8999c5af..db9149374fa 100644
--- a/packages/docs/package.json
+++ b/packages/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/docs",
- "version": "8.8.18",
+ "version": "8.8.19",
"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 01f78e17712..d74403f8414 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/react-router
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**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 e3767d71569..f9f171728f1 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.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/react-router",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/react": "^8.8.18",
+ "@ionic/react": "^8.8.19",
"tslib": "*"
},
"devDependencies": {
@@ -250,9 +250,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -290,12 +290,12 @@
}
},
"node_modules/@ionic/react": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.18.tgz",
- "integrity": "sha512-Hp7PuvuzqREzyWTDFYykgDLDE4RqE932+YX/gr0O3N/EfrPBAeuDeVZqPh2NLGQvliDcU1mwItGxWy/H0PK+Qg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.19.tgz",
+ "integrity": "sha512-IAY0iywSxG73sYepTPzDvNJo3q9VeWQk/ubA4PQv8cMej4NWwS4VdnwRnLql4pV2fIBGdM06zZJgVFP/WKDNFg==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.18",
+ "@ionic/core": "8.8.19",
"ionicons": "^8.0.13",
"tslib": "*"
},
diff --git a/packages/react-router/package.json b/packages/react-router/package.json
index c34671c7696..b3a9b4ae6cf 100644
--- a/packages/react-router/package.json
+++ b/packages/react-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react-router",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "React Router wrapper for @ionic/react",
"keywords": [
"ionic",
@@ -37,7 +37,7 @@
"dist/"
],
"dependencies": {
- "@ionic/react": "^8.8.18",
+ "@ionic/react": "^8.8.19",
"tslib": "*"
},
"peerDependencies": {
diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md
index 7daf28a6f78..390d0ebc90b 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/react
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**Note:** Version bump only for package @ionic/react
diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json
index 7ef79cdaede..25534ae7972 100644
--- a/packages/react/package-lock.json
+++ b/packages/react/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/react",
- "version": "8.8.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/react",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"@stencil/react-output-target": "^1.6.2",
"ionicons": "^8.0.13",
"tslib": "*"
@@ -891,9 +891,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
diff --git a/packages/react/package.json b/packages/react/package.json
index 667afb71dac..5cc1ed70daa 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/react",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "React specific wrapper for @ionic/core",
"keywords": [
"ionic",
@@ -41,7 +41,7 @@
"css/"
],
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"@stencil/react-output-target": "^1.6.2",
"ionicons": "^8.0.13",
"tslib": "*"
diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md
index fe3d03966f9..e75021d11d0 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/vue-router
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**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 401db4d810a..b8fd7465331 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.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue-router",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/vue": "^8.8.18"
+ "@ionic/vue": "^8.8.19"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
@@ -342,9 +342,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
@@ -382,12 +382,12 @@
}
},
"node_modules/@ionic/vue": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.18.tgz",
- "integrity": "sha512-4Cqp9L+nubSK5PnG8eKENfdnjFL/ze0Et7W87rQYTQzAVxiNqK9vmdVzWK8BErP1uSV+lbXsiQ8SrzQl6mlNiQ==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.19.tgz",
+ "integrity": "sha512-/9ZsxUHgTWSU/1lGx1hx8oRV9XRlXRaaFTvwuJfJu4XmkpZmbmT2pCIjxRAf5eQunMMZUuXViOuT9wZBQOBchA==",
"license": "MIT",
"dependencies": {
- "@ionic/core": "8.8.18",
+ "@ionic/core": "8.8.19",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
}
diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json
index 136265a176b..c2c517ad020 100644
--- a/packages/vue-router/package.json
+++ b/packages/vue-router/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue-router",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "Vue Router integration for @ionic/vue",
"scripts": {
"eslint": "eslint src",
@@ -44,7 +44,7 @@
},
"homepage": "https://github.com/ionic-team/ionic-framework#readme",
"dependencies": {
- "@ionic/vue": "^8.8.18"
+ "@ionic/vue": "^8.8.19"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md
index 3a17d3483f4..5484e1bbc05 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.19](https://github.com/ionic-team/ionic-framework/compare/v8.8.18...v8.8.19) (2026-08-19)
+
+**Note:** Version bump only for package @ionic/vue
+
+
+
+
+
## [8.8.18](https://github.com/ionic-team/ionic-framework/compare/v8.8.17...v8.8.18) (2026-08-12)
**Note:** Version bump only for package @ionic/vue
diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json
index 55079f9a6b1..6a71ec1f4b6 100644
--- a/packages/vue/package-lock.json
+++ b/packages/vue/package-lock.json
@@ -1,15 +1,15 @@
{
"name": "@ionic/vue",
- "version": "8.8.18",
+ "version": "8.8.19",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@ionic/vue",
- "version": "8.8.18",
+ "version": "8.8.19",
"license": "MIT",
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"@stencil/vue-output-target": "0.14.1",
"ionicons": "^8.0.13"
},
@@ -346,9 +346,9 @@
}
},
"node_modules/@ionic/core": {
- "version": "8.8.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.18.tgz",
- "integrity": "sha512-QRFqi6gMSTk89FMjtoDx3p6e2dD7mYxqYzS0+Hl+yjxnoWoNFluWKM9rnGEEkdvpY7bF1pt6CI5IwMt+vjYQWg==",
+ "version": "8.8.19",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.19.tgz",
+ "integrity": "sha512-eAAKZi/qR0U44OxH3MXAyoyLxTl1AeQCoOWvGdzywKbpl/JTVlGnfZJCiJGTmXszQlRsNXsl7fMDOvpsOtf6sQ==",
"license": "MIT",
"dependencies": {
"@stencil/core": "4.43.5",
diff --git a/packages/vue/package.json b/packages/vue/package.json
index 728ae5fc0a1..403c788e270 100644
--- a/packages/vue/package.json
+++ b/packages/vue/package.json
@@ -1,6 +1,6 @@
{
"name": "@ionic/vue",
- "version": "8.8.18",
+ "version": "8.8.19",
"description": "Vue specific wrapper for @ionic/core",
"scripts": {
"eslint": "eslint src",
@@ -78,7 +78,7 @@
}
},
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"@stencil/vue-output-target": "0.14.1",
"ionicons": "^8.0.13"
},