From b0783610be84db4d34286d156a6bd764846911d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 14:10:59 +0000 Subject: [PATCH 1/6] chore(deps): update github/codeql-action action to v4.37.7 (#31357) 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 | |---|---|---|---| | [github/codeql-action](https://redirect.github.com/github/codeql-action) | action | patch | `v4.37.6` → `v4.37.7` | --- ### Release Notes
github/codeql-action (github/codeql-action) ### [`v4.37.7`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.7) [Compare Source](https://redirect.github.com/github/codeql-action/compare/v4.37.6...v4.37.7) - Update default CodeQL bundle version to [2.26.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.3). [#​4085](https://redirect.github.com/github/codeql-action/pull/4085)
--- ### 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/workflows/codeql-analysis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 2618a6f7bd793ad09e38e4868d753189610eff9d Mon Sep 17 00:00:00 2001 From: Arul Cornelious <65539155+Arul1998@users.noreply.github.com> Date: Tue, 18 Aug 2026 19:59:13 +0100 Subject: [PATCH 2/6] fix(menu): respect ion-app dir attribute for menu animation side (#31246) Issue number: resolves #30226 --------- ## What is the current behavior? When `dir="rtl"` is set on `` (but not on `document`), the hamburger menu appears on the right side visually, but the **open animation still slides in from the left**. This happens because `isEndSide()` only checked `document.dir`, not the nearest ancestor `dir` attribute. ## What is the new behavior? - `isEndSide()` takes an optional host element and delegates to `isRTL()` instead of reading `document.dir` itself. - `isRTL()` now walks up from the given element to the nearest ancestor that declares a `dir`, so `` applies to everything inside it even when the document is `ltr`. It previously read only the element's own `dir` before falling back to `document.dir`. - `sideChanged()` in `ion-menu` also passes the menu element so the side is correct before the first animation. - Unit tests added for the `ion-app dir="rtl"` case. ## Does this introduce a breaking change? - [ ] Yes - [x] No --------- Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> Co-authored-by: Austin-Spriggs --- core/src/components/menu/menu.tsx | 4 +- core/src/utils/helpers.spec.ts | 34 +++++++++++- core/src/utils/helpers.ts | 21 ++++--- core/src/utils/rtl/dir.spec.ts | 92 +++++++++++++++++++++++++++---- core/src/utils/rtl/dir.ts | 27 ++++++--- 5 files changed, 147 insertions(+), 31 deletions(-) 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/utils/helpers.spec.ts b/core/src/utils/helpers.spec.ts index 44dd9d8c3ce..aaa4b7dbdb7 100644 --- a/core/src/utils/helpers.spec.ts +++ b/core/src/utils/helpers.spec.ts @@ -1,4 +1,36 @@ -import { inheritAriaAttributes } from './helpers'; +import { inheritAriaAttributes, isEndSide } from './helpers'; + +describe('isEndSide', () => { + afterEach(() => { + document.dir = ''; + document.body.innerHTML = ''; + }); + + it('should use document direction when no host element is provided', () => { + document.dir = 'ltr'; + expect(isEndSide('start')).toBe(false); + expect(isEndSide('end')).toBe(true); + + document.dir = 'rtl'; + expect(isEndSide('start')).toBe(true); + expect(isEndSide('end')).toBe(false); + }); + + // https://github.com/ionic-team/ionic-framework/issues/30226 + it('should use the nearest ancestor dir attribute', () => { + document.dir = 'ltr'; + + const app = document.createElement('ion-app'); + app.setAttribute('dir', 'rtl'); + + const menu = document.createElement('ion-menu'); + app.appendChild(menu); + document.body.appendChild(app); + + expect(isEndSide('start', menu)).toBe(true); + expect(isEndSide('end', menu)).toBe(false); + }); +}); describe('inheritAriaAttributes', () => { it('should inherit aria attributes', () => { diff --git a/core/src/utils/helpers.ts b/core/src/utils/helpers.ts index e32956c35eb..9c6052b466f 100644 --- a/core/src/utils/helpers.ts +++ b/core/src/utils/helpers.ts @@ -1,5 +1,6 @@ import type { EventEmitter } from '@stencil/core'; import { printIonError } from '@utils/logging'; +import { isRTL } from '@utils/rtl'; import type { Side } from '../components/menu/menu-interface'; @@ -316,18 +317,22 @@ export const pointerCoord = (ev: any): { x: number; y: number } => { /** * @hidden - * Given a side, return if it should be on the end - * based on the value of dir - * @param side the side - * @param isRTL whether the application dir is rtl + * Given a side, returns whether it resolves to the end side for the current + * direction. In RTL `start` is the end side, and in LTR `end` is. + * + * @param side The current side before being redefined based on the direction. + * @param hostEl The component's host element. The direction is resolved from + * it or its nearest ancestor that declares one. When omitted, the direction + * is resolved from the document. */ -export const isEndSide = (side: Side): boolean => { - const isRTL = document.dir === 'rtl'; +export const isEndSide = (side: Side, hostEl?: HTMLElement): boolean => { + const rtl = isRTL(hostEl); + switch (side) { case 'start': - return isRTL; + return rtl; case 'end': - return !isRTL; + return !rtl; default: throw new Error(`"${side}" is not a valid value for [side]. Use "start" or "end" instead.`); } diff --git a/core/src/utils/rtl/dir.spec.ts b/core/src/utils/rtl/dir.spec.ts index 57061abc5cb..cc3245e0f55 100644 --- a/core/src/utils/rtl/dir.spec.ts +++ b/core/src/utils/rtl/dir.spec.ts @@ -1,25 +1,93 @@ import { isRTL } from './dir'; describe('rtl: dir', () => { - describe('with host element', () => { - it('should return true', () => { - expect(isRTL({ dir: 'rtl' })).toBe(true); + /** + * Renders the given markup and returns the element with `id="target"`. + */ + const render = (html: string): Element => { + document.body.innerHTML = html; + + const target = document.body.querySelector('#target'); + if (target === null) { + throw new Error('Test markup must contain an element with id="target".'); + } + + return target; + }; + + beforeEach(() => { + /** + * Reset to the state of a document that never set a direction, rather than + * to `ltr`, so that tests relying on the default are not masked. + */ + document.dir = ''; + document.body.innerHTML = ''; + }); + + describe('with a host element', () => { + it('should use the dir on the element itself', () => { + expect(isRTL(render('
'))).toBe(true); + expect(isRTL(render('
'))).toBe(false); + }); + + it('should use the nearest ancestor that declares a dir', () => { + expect(isRTL(render('
'))).toBe(true); + expect(isRTL(render('
'))).toBe(false); + }); + + it('should let an inner dir override an outer one', () => { + expect(isRTL(render('
'))).toBe(false); + expect(isRTL(render('
'))).toBe(true); + }); + + it('should ignore casing', () => { + expect(isRTL(render('
'))).toBe(true); + expect(isRTL(render('
'))).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(true); + + document.dir = 'ltr'; + 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'; }; From c6890002df0a1ec5ac030626b1694e87022365c0 Mon Sep 17 00:00:00 2001 From: Shane Date: Tue, 18 Aug 2026 19:02:22 +0000 Subject: [PATCH 3/6] fix(gesture): remove leaked optsTest listener from passive support check (#31363) Issue number: resolves #30539 --------- ## What is the current behavior? Currently, `supportsPassive` in the gesture listener utils detects passive listener support by attaching a real `optsTest` listener to the element and reading the `passive` getter, but it never removes that listener. The result is a listener permanently attached to whichever element runs the first gesture. There's a second failure mode in the same function. The `_sPassive === undefined` guard only clears if the getter fires or if `addEventListener` throws, so a runtime that does neither leaves `_sPassive` undefined and every subsequent call attaches another `optsTest` listener that's never cleaned up. ## What is the new behavior? We now always pass the options object, and the detection is removed entirely. The check was already dead code, because passive options object support landed in Chrome 51, Safari 10, Firefox 49, and Edge 16, all in 2016, while our lowest supported versions are Chrome 89, Safari 15, Firefox 75, and Edge 89. The function returned `true` on every browser we support, so both branches of the removed ternary collapse to the same value and there's no behavior change. ## Does this introduce a breaking change? - [ ] Yes - [X] No ## Other information --- core/src/utils/gesture/listener.ts | 36 ++++-------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/core/src/utils/gesture/listener.ts b/core/src/utils/gesture/listener.ts index 357076dadf7..90cba24e6ae 100644 --- a/core/src/utils/gesture/listener.ts +++ b/core/src/utils/gesture/listener.ts @@ -7,14 +7,10 @@ export const addEventListener = ( capture?: boolean; } ): (() => void) => { - // use event listener options when supported - // otherwise it's just a boolean for the "capture" arg - const listenerOpts = supportsPassive(el) - ? { - capture: !!opts.capture, - passive: !!opts.passive, - } - : !!opts.capture; + const listenerOpts = { + capture: !!opts.capture, + passive: !!opts.passive, + }; let add: string; let remove: string; @@ -31,27 +27,3 @@ export const addEventListener = ( el[remove](eventName, callback, listenerOpts); }; }; - -const supportsPassive = (node: Node) => { - if (_sPassive === undefined) { - try { - const opts = Object.defineProperty({}, 'passive', { - get: () => { - _sPassive = true; - }, - }); - node.addEventListener( - 'optsTest', - () => { - return; - }, - opts - ); - } catch (e) { - _sPassive = false; - } - } - return !!_sPassive; -}; - -let _sPassive: boolean | undefined; From 7d64d62a31d59078560575ad9c4fc67a8e49e524 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Tue, 18 Aug 2026 18:17:18 -0400 Subject: [PATCH 4/6] fix(range): update knob positions when dualKnobs changes (#31365) Issue number: resolves #31026 --------- ## What is the current behavior? Opening an `ion-range` with `dualKnobs` set to `true` with a value set inside of a modal does not render the values properly. ## What is the new behavior? - Added a watcher for `dualKnobs` that calls `updateRatio()`, ensuring knob ratios are recomputed whenever `dualKnobs` changes. The `min`, `max`, and `value` properties already had watchers. `dualKnobs` was the only ratio-affecting property without one. - Knobs are now positioned correctly regardless of whether `value` or `dualKnobs` is assigned first. They are also repositioned correctly when `dualKnobs` is toggled at runtime in either direction. - Range now sets the correct values when used inside a modal, including when `dualKnobs` and `value` are assigned in different orders. - Improved the `dualKnobs` property description. - Added e2e tests covering both property assignment orders and runtime toggling of `dualKnobs`. ## Does this introduce a breaking change? - [ ] Yes - [x] No --------- Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> Co-authored-by: pratyushjaiswal0806-dot --- core/src/components.d.ts | 4 +- core/src/components/range/range.tsx | 11 +- .../range/test/dual-knobs/index.html | 122 ++++++++++++++++++ .../range/test/dual-knobs/range.e2e.ts | 82 ++++++++++++ 4 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 core/src/components/range/test/dual-knobs/index.html create mode 100644 core/src/components/range/test/dual-knobs/range.e2e.ts 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/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 @@ + + + + + Range - Dual Knobs + + + + + + + + + + + + + + + Range - Dual Knobs + + + + +

+ Every range below is assigned { lower: 20, upper: 80 }. The lower knob is purple while the upper + is blue. +

+ +

dualKnobs set on the component

+ + 20 - 80 + + +

dualKnobs assigned before value

+ + 20 - 80 + + +

dualKnobs assigned after value

+ + 20 - 80 + + +

dualKnobs toggled

+ + + + Toggle Dual Knobs +
+
+ + + + diff --git a/core/src/components/range/test/dual-knobs/range.e2e.ts b/core/src/components/range/test/dual-knobs/range.e2e.ts new file mode 100644 index 00000000000..f3e8e610568 --- /dev/null +++ b/core/src/components/range/test/dual-knobs/range.e2e.ts @@ -0,0 +1,82 @@ +import type { Locator } from '@playwright/test'; +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +const DUAL_VALUE = { lower: 20, upper: 80 }; + +/** + * Returns the value each knob is positioned at. Sorted low to high because knob + * A is not guaranteed to be the knob holding the lower value. + */ +const knobValues = async (range: Locator) => { + const values: string[] = await range + .locator('.range-knob-handle') + .evaluateAll((els: HTMLElement[]) => els.map((el) => el.getAttribute('aria-valuenow')!)); + + return values.sort((a, b) => parseFloat(a) - parseFloat(b)); +}; + +/** + * This behavior does not vary across modes/directions + */ +configs({ directions: ['ltr'], modes: ['md'] }).forEach(({ title, config }) => { + test.describe(title('range: dual knobs'), () => { + test('should position knobs when dualKnobs is assigned before value', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + await range.evaluate((el: HTMLIonRangeElement, value) => { + el.dualKnobs = true; + el.value = value; + }, DUAL_VALUE); + await page.waitForChanges(); + + expect(await knobValues(range)).toEqual(['20', '80']); + + // A single knob range ignores the lower half of an object value. + await range.evaluate((el: HTMLIonRangeElement) => (el.dualKnobs = false)); + await page.waitForChanges(); + + expect(await knobValues(range)).toEqual(['80']); + }); + + test('should position knobs when dualKnobs is assigned after value', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/31026', + }); + + await page.setContent(``, config); + + const range = page.locator('ion-range'); + await range.evaluate((el: HTMLIonRangeElement, value) => { + el.value = value; + el.dualKnobs = true; + }, DUAL_VALUE); + await page.waitForChanges(); + + expect(await knobValues(range)).toEqual(['20', '80']); + }); + + test('should reposition knobs when dualKnobs is toggled at runtime', async ({ page }) => { + await page.setContent(``, config); + + const range = page.locator('ion-range'); + await range.evaluate((el: HTMLIonRangeElement, value) => (el.value = value), DUAL_VALUE); + await page.waitForChanges(); + + // A single knob range ignores the lower half of an object value. + expect(await knobValues(range)).toEqual(['80']); + + await range.evaluate((el: HTMLIonRangeElement) => (el.dualKnobs = true)); + await page.waitForChanges(); + + expect(await knobValues(range)).toEqual(['20', '80']); + + await range.evaluate((el: HTMLIonRangeElement) => (el.dualKnobs = false)); + await page.waitForChanges(); + + expect(await knobValues(range)).toEqual(['80']); + }); + }); +}); From 7388e700fd2cbd23d0f98bb49256b0b7d2ddce29 Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 19 Aug 2026 15:27:40 +0000 Subject: [PATCH 5/6] v8.8.19 --- CHANGELOG.md | 9 +++++++++ core/CHANGELOG.md | 9 +++++++++ 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 | 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, 119 insertions(+), 45 deletions(-) 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..ad96a655ba5 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", @@ -9846,4 +9846,4 @@ } } } -} +} \ No newline at end of file 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/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..edbeea6105a 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", @@ -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 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..0957985db24 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" @@ -9095,4 +9095,4 @@ } } } -} +} \ No newline at end of file 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..73436877681 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -1,13 +1,13 @@ { "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" } } -} +} \ No newline at end of file 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..52000558af4 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": { @@ -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 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..d1704d23a80 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": "*" }, @@ -11916,4 +11916,4 @@ } } } -} +} \ No newline at end of file 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..613cd4f6e76 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", @@ -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 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..c88d6af61e6 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" }, @@ -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 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" }, From ac1bcf0f7da31a89a21e9ca4374ec100117e2dcb Mon Sep 17 00:00:00 2001 From: ionitron Date: Wed, 19 Aug 2026 15:28:39 +0000 Subject: [PATCH 6/6] 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 ad96a655ba5..7a37c8f58cf 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -9846,4 +9846,4 @@ } } } -} \ No newline at end of file +} diff --git a/packages/angular-server/package-lock.json b/packages/angular-server/package-lock.json index edbeea6105a..4078827f5c3 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.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", @@ -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 0957985db24..4abea8d2a79 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.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", @@ -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 73436877681..fc1fb688a72 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 52000558af4..e5da2df0c82 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.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": "*" } @@ -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 d1704d23a80..dfa40c16093 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.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", @@ -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 613cd4f6e76..0efdfa7aebd 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.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" } @@ -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 c88d6af61e6..75addaacdb3 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.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", @@ -4022,4 +4022,4 @@ "dev": true } } -} \ No newline at end of file +}