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 3e47702a493..7a37c8f58cf 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 c3f01339760..f0fc327565a 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 173a0537548..102f7472b98 100644
--- a/core/src/components.d.ts
+++ b/core/src/components.d.ts
@@ -2662,7 +2662,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;
@@ -7939,7 +7939,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 bb1850e0fa4..16164b00c82 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,5 +3,5 @@
"core",
"packages/*"
],
- "version": "8.8.18"
+ "version": "8.8.19"
}
\ No newline at end of file
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 06eeb9f9f6f..4078827f5c3 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-eslint/eslint-plugin": "^16.0.0",
@@ -1031,9 +1031,9 @@
"dev": true
},
"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",
@@ -7309,9 +7309,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 8d92a971fc2..8a4f9d5dfd7 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",
@@ -62,6 +62,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 8614d76bdaf..4abea8d2a79 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"
@@ -1398,9 +1398,9 @@
"dev": true
},
"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 a250c9d9c96..6726a7d6ede 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",
@@ -48,7 +48,7 @@
}
},
"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 71842eeb710..e5da2df0c82 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": 2,
"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": {
@@ -238,9 +238,9 @@
"dev": true
},
"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",
@@ -418,12 +418,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": "*"
},
@@ -4178,9 +4178,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",
@@ -4284,11 +4284,11 @@
"requires": {}
},
"@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==",
"requires": {
- "@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 b0e045dd890..e234e2c31d4 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",
@@ -36,7 +36,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 00b186644ea..dfa40c16093 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",
"ionicons": "^8.0.13",
"tslib": "*"
},
@@ -736,9 +736,9 @@
"dev": true
},
"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 e37684fc0fc..2a0aa34e764 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",
@@ -40,7 +40,7 @@
"css/"
],
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"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 b893052b3ec..0efdfa7aebd 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": 2,
"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": {
"@ionic/eslint-config": "^0.3.0",
@@ -673,9 +673,9 @@
"dev": true
},
"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",
@@ -868,12 +868,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"
}
@@ -8044,9 +8044,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",
@@ -8159,11 +8159,11 @@
"requires": {}
},
"@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==",
"requires": {
- "@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 f5cdc21173e..9f95015c533 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": {
"test.spec": "jest",
@@ -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": {
"@ionic/eslint-config": "^0.3.0",
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 15adcb4e558..75addaacdb3 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.10.7",
"ionicons": "^8.0.13"
},
@@ -222,9 +222,9 @@
"dev": true
},
"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 fb746f7272f..47f23a3eae0 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",
@@ -68,7 +68,7 @@
"vue-router": "^4.0.16"
},
"dependencies": {
- "@ionic/core": "^8.8.18",
+ "@ionic/core": "^8.8.19",
"@stencil/vue-output-target": "0.10.7",
"ionicons": "^8.0.13"
},