diff --git a/.github/workflows/assign-issues.yml b/.github/workflows/assign-issues.yml index d06c1f52e10..d79a8c17c2c 100644 --- a/.github/workflows/assign-issues.yml +++ b/.github/workflows/assign-issues.yml @@ -11,7 +11,7 @@ jobs: issues: write steps: - name: 'Auto-assign issue' - uses: pozil/auto-assign-issue@39c06395cbac76e79afc4ad4e5c5c6db6ecfdd2e # v2.2.0 + uses: pozil/auto-assign-issue@70adb98ca8b3941524e9ecde48e89067c4f96736 # v3.0.0 with: assignees: brandyscarney, thetaPC, ShaneK numOfAssignee: 1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 64a717080be..32f33d2cafe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + + +### Bug Fixes + +* **action-sheet:** restore action-sheet-selected class on non-radio buttons ([#31109](https://github.com/ionic-team/ionic-framework/issues/31109)) ([c18502f](https://github.com/ionic-team/ionic-framework/commit/c18502f3efdec5440a11289235a93c62ce27ab89)), closes [#31090](https://github.com/ionic-team/ionic-framework/issues/31090) +* **datetime:** prevent hidden-state observer from tearing down ready class on initial entry ([#31108](https://github.com/ionic-team/ionic-framework/issues/31108)) ([30b479a](https://github.com/ionic-team/ionic-framework/commit/30b479a53acbc16961002df256bec358dc11e7fa)) +* **segment:** segment drag would set disabled segment button checked ([#31112](https://github.com/ionic-team/ionic-framework/issues/31112)) ([44be424](https://github.com/ionic-team/ionic-framework/commit/44be424221bee11ffbe91c4b1fa0a4d56fe1ecac)) + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 851601359f5..0b0ea102b40 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + + +### Bug Fixes + +* **action-sheet:** restore action-sheet-selected class on non-radio buttons ([#31109](https://github.com/ionic-team/ionic-framework/issues/31109)) ([c18502f](https://github.com/ionic-team/ionic-framework/commit/c18502f3efdec5440a11289235a93c62ce27ab89)), closes [#31090](https://github.com/ionic-team/ionic-framework/issues/31090) +* **datetime:** prevent hidden-state observer from tearing down ready class on initial entry ([#31108](https://github.com/ionic-team/ionic-framework/issues/31108)) ([30b479a](https://github.com/ionic-team/ionic-framework/commit/30b479a53acbc16961002df256bec358dc11e7fa)) +* **segment:** segment drag would set disabled segment button checked ([#31112](https://github.com/ionic-team/ionic-framework/issues/31112)) ([44be424](https://github.com/ionic-team/ionic-framework/commit/44be424221bee11ffbe91c4b1fa0a4d56fe1ecac)) + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) diff --git a/core/package-lock.json b/core/package-lock.json index a3c122251de..ff69e42db40 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "8.8.5", + "version": "8.8.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { "@phosphor-icons/core": "^2.1.1", diff --git a/core/package.json b/core/package.json index eb38d8644c9..83ac67d8a19 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "8.8.5", + "version": "8.8.6", "description": "Base components for Ionic", "engines": { "node": ">= 16" diff --git a/core/scripts/vercel-build.sh b/core/scripts/vercel-build.sh index daf44142dce..99c83b22adc 100755 --- a/core/scripts/vercel-build.sh +++ b/core/scripts/vercel-build.sh @@ -62,6 +62,12 @@ generate_dir_index() { # Skip if an index.html already exists (it's an actual test page) [ -f "${dir}/index.html" ] && return + # Absolute hrefs based on url_path. Vercel does not redirect to add trailing + # slashes, so a relative href like "basic/" from a URL without a trailing + # slash resolves against the parent directory and breaks navigation. + local parent_path="${url_path%/}" + parent_path="${parent_path%/*}/" + local entries="" for child in "${dir}"/*/; do [ -d "${child}" ] || continue @@ -70,7 +76,7 @@ generate_dir_index() { case "${name}" in *-snapshots|.*) continue ;; esac # Only include if there's at least one index.html somewhere underneath find "${child}" -name "index.html" -print -quit | grep -q . || continue - entries="${entries}${name}/\n" + entries="${entries}${name}/\n" done [ -z "${entries}" ] && return @@ -92,7 +98,7 @@ generate_dir_index() {

Index of ${url_path}

- ../ + ../ $(echo -e "${entries}") diff --git a/core/src/components/action-sheet/action-sheet.tsx b/core/src/components/action-sheet/action-sheet.tsx index 9c5a112ab62..7012980439f 100644 --- a/core/src/components/action-sheet/action-sheet.tsx +++ b/core/src/components/action-sheet/action-sheet.tsx @@ -584,7 +584,7 @@ export class ActionSheet implements ComponentInterface, OverlayInterface { id={buttonId} class={{ ...buttonClass(b), - 'action-sheet-selected': isActiveRadio, + ...(isRadio && { 'action-sheet-selected': isActiveRadio }), }} onClick={() => { if (isRadio) { diff --git a/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx b/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx index fce291525f2..551b0d1fcfa 100644 --- a/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx +++ b/core/src/components/action-sheet/test/basic/action-sheet.spec.tsx @@ -59,3 +59,36 @@ describe('action sheet: disabled buttons', () => { await expect(cancelButton.hasAttribute('disabled')).toBe(false); }); }); + +describe('action sheet: selected role', () => { + // https://github.com/ionic-team/ionic-framework/issues/31090 + it('should add the `action-sheet-selected` class to a button with `role="selected"`', async () => { + const page = await newSpecPage({ + components: [ActionSheet], + template: () => ( + + ), + }); + + const actionSheet = page.body.querySelector('ion-action-sheet')!; + + await actionSheet.present(); + + const buttons = Array.from(actionSheet.querySelectorAll('.action-sheet-button')); + const selectedButton = buttons.find((btn) => btn.textContent?.trim() === 'Option B'); + + await expect(selectedButton).toBeDefined(); + await expect(selectedButton!.classList.contains('action-sheet-selected')).toBe(true); + + const optionA = buttons.find((btn) => btn.textContent?.trim() === 'Option A'); + await expect(optionA!.classList.contains('action-sheet-selected')).toBe(false); + }); +}); diff --git a/core/src/components/datetime/datetime.tsx b/core/src/components/datetime/datetime.tsx index 469b5d84cf2..ea09f886d72 100644 --- a/core/src/components/datetime/datetime.tsx +++ b/core/src/components/datetime/datetime.tsx @@ -140,6 +140,12 @@ export class Datetime implements ComponentInterface { private todayParts!: DatetimeParts; private defaultParts!: DatetimeParts; private loadTimeout: ReturnType | undefined; + /** + * Set true only by `visibleCallback`. Lets `hiddenCallback` ignore the + * synthetic "not intersecting" entry IntersectionObserver fires on + * `observe()` when the host mounts offscreen. + */ + private hasBeenIntersecting = false; private prevPresentation: string | null = null; @@ -1102,6 +1108,7 @@ export class Datetime implements ComponentInterface { this.clearFocusVisible = undefined; } this.loadTimeoutCleanup(); + this.hasBeenIntersecting = false; } /** @@ -1145,8 +1152,23 @@ export class Datetime implements ComponentInterface { return; } + this.markReady(); + }; + + private markReady = () => { + if (this.el.classList.contains('datetime-ready')) { + return; + } this.initializeListeners(); + /** + * TODO FW-2793: Datetime needs a frame to ensure that it + * can properly scroll contents into view. As a result + * we hide the scrollable content until after that frame + * so users do not see the content quickly shifting. The downside + * is that the content will pop into view a frame after. Maybe there + * is a better way to handle this? + */ writeTask(() => { this.el.classList.add('datetime-ready'); }); @@ -1175,19 +1197,8 @@ export class Datetime implements ComponentInterface { return; } - this.initializeListeners(); - - /** - * TODO FW-2793: Datetime needs a frame to ensure that it - * can properly scroll contents into view. As a result - * we hide the scrollable content until after that frame - * so users do not see the content quickly shifting. The downside - * is that the content will pop into view a frame after. Maybe there - * is a better way to handle this? - */ - writeTask(() => { - this.el.classList.add('datetime-ready'); - }); + this.hasBeenIntersecting = true; + this.markReady(); }; const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el }); @@ -1227,6 +1238,12 @@ export class Datetime implements ComponentInterface { return; } + // Ignore the initial "not intersecting" entry IntersectionObserver fires on observe(). + if (!this.hasBeenIntersecting) { + return; + } + this.hasBeenIntersecting = false; + this.destroyInteractionListeners(); /** diff --git a/core/src/components/datetime/test/basic/datetime.e2e.ts b/core/src/components/datetime/test/basic/datetime.e2e.ts index b71006f50e8..cdc07c504da 100644 --- a/core/src/components/datetime/test/basic/datetime.e2e.ts +++ b/core/src/components/datetime/test/basic/datetime.e2e.ts @@ -531,10 +531,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => */ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => { test.describe(title('datetime: IO fallback'), () => { - test('should become ready even if IntersectionObserver never reports visible', async ({ page, skip }, testInfo) => { - // TODO(FW-7284): Re-enable on WebKit after determining why it fails - skip.browser('webkit', 'Wheel is not available in WebKit'); - + test('should become ready even if IntersectionObserver never reports visible', async ({ page }, testInfo) => { testInfo.annotations.push({ type: 'issue', description: 'https://github.com/ionic-team/ionic-framework/issues/30706', diff --git a/core/src/components/segment-view/test/basic/index.html b/core/src/components/segment-view/test/basic/index.html index 78dec1d9ff9..631a6a69a57 100644 --- a/core/src/components/segment-view/test/basic/index.html +++ b/core/src/components/segment-view/test/basic/index.html @@ -79,6 +79,22 @@ Top + + + First + + + Second + + + Third + + + + Second Content + Third Content + + Orange diff --git a/core/src/components/segment-view/test/basic/segment-view.e2e.ts b/core/src/components/segment-view/test/basic/segment-view.e2e.ts index f3f35626eaa..4bd434d18f2 100644 --- a/core/src/components/segment-view/test/basic/segment-view.e2e.ts +++ b/core/src/components/segment-view/test/basic/segment-view.e2e.ts @@ -169,5 +169,38 @@ configs({ modes: ['md'] }).forEach(({ title, config }) => { const segmentContent = page.locator('ion-segment-content[id="top"]'); await expect(segmentContent).toBeInViewport(); }); + test('should not select a disabled first segment button when dragging segment-view from last content', async ({ + page, + }) => { + await page.setContent( + ` + + + First + + + Second + + + Third + + + + Second Content + Third Content + + `, + config + ); + await page.waitForChanges(); + + await page.locator('ion-segment-view').evaluate((el: HTMLElement) => { + const max = el.scrollWidth - el.clientWidth; + el.scrollLeft = max; + }); + await page.waitForChanges(); + + await expect(page.locator('ion-segment-button[value="first"]')).not.toHaveClass(/segment-button-checked/); + }); }); }); diff --git a/core/src/components/segment/segment.tsx b/core/src/components/segment/segment.tsx index 256ec21edae..022da82c0df 100644 --- a/core/src/components/segment/segment.tsx +++ b/core/src/components/segment/segment.tsx @@ -402,6 +402,10 @@ export class Segment implements ComponentInterface { const nextIndex = Math.round(scrollRatio * (buttons.length - 1)); + if (buttons[nextIndex]?.disabled) { + return; + } + if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) { this.lastNextIndex = nextIndex; this.triggerScrollOnValueChange = false; diff --git a/lerna.json b/lerna.json index 2c1f42dea1e..0bdc7a6bdd5 100644 --- a/lerna.json +++ b/lerna.json @@ -3,5 +3,5 @@ "core", "packages/*" ], - "version": "8.8.5" + "version": "8.8.6" } \ No newline at end of file diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index f7c961df69c..ad919265aa1 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **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 7bb2b24eb3d..b45ade85205 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.5", + "version": "8.8.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.5" + "@ionic/core": "^8.8.6" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^16.0.0", @@ -1031,9 +1031,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -7309,9 +7309,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "requires": { "@stencil/core": "4.43.0", "ionicons": "^8.0.13", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index a0e29ec0f5d..d6b4fb9d4b4 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "8.8.5", + "version": "8.8.6", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -62,6 +62,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^8.8.5" + "@ionic/core": "^8.8.6" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index 8ca48e37dec..11704d3a0f6 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/angular + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **Note:** Version bump only for package @ionic/angular diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 5f808e1b066..84af82f1748 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "8.8.5", + "version": "8.8.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.5", + "@ionic/core": "^8.8.6", "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.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/angular/package.json b/packages/angular/package.json index aa302c434dc..550550ed403 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "8.8.5", + "version": "8.8.6", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -48,7 +48,7 @@ } }, "dependencies": { - "@ionic/core": "^8.8.5", + "@ionic/core": "^8.8.6", "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 2bf6534ee38..528b4443104 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **Note:** Version bump only for package @ionic/docs diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json index b149126c2fc..45e87b5d41e 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "8.8.5", + "version": "8.8.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 7568688b1a1..479de2379e1 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "8.8.5", + "version": "8.8.6", "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 6d52aaee0e9..ba50749564b 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **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 14e00a0216f..4b3e97d91b0 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.5", + "version": "8.8.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/react": "^8.8.5", + "@ionic/react": "^8.8.6", "tslib": "*" }, "devDependencies": { @@ -238,9 +238,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -418,12 +418,12 @@ } }, "node_modules/@ionic/react": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.5.tgz", - "integrity": "sha512-xMioqlgto2GmnvuJ0Rnl9G2xthhB4AVY/4vW9wg2pCY7pNI2cRkholjmXXVpLlhaqe2adKcz6dnHPTCquPZKDg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.6.tgz", + "integrity": "sha512-W5+AM8sCvG4oEdOO3EciIC0WNONFxgpFbNJYAstJeiRrO5yvM33pykkpp/i6sTqDEkc3HNEUdWlVurFE22V36w==", "license": "MIT", "dependencies": { - "@ionic/core": "8.8.5", + "@ionic/core": "8.8.6", "ionicons": "^8.0.13", "tslib": "*" }, @@ -4178,9 +4178,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "requires": { "@stencil/core": "4.43.0", "ionicons": "^8.0.13", @@ -4284,11 +4284,11 @@ "requires": {} }, "@ionic/react": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.5.tgz", - "integrity": "sha512-xMioqlgto2GmnvuJ0Rnl9G2xthhB4AVY/4vW9wg2pCY7pNI2cRkholjmXXVpLlhaqe2adKcz6dnHPTCquPZKDg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.6.tgz", + "integrity": "sha512-W5+AM8sCvG4oEdOO3EciIC0WNONFxgpFbNJYAstJeiRrO5yvM33pykkpp/i6sTqDEkc3HNEUdWlVurFE22V36w==", "requires": { - "@ionic/core": "8.8.5", + "@ionic/core": "8.8.6", "ionicons": "^8.0.13", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 88527f7e2f4..78ad9066aea 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "8.8.5", + "version": "8.8.6", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -36,7 +36,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^8.8.5", + "@ionic/react": "^8.8.6", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index eb464fdbc9d..9667a98b3cd 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/react + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 2594da752c1..73092357b51 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "8.8.5", + "version": "8.8.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.5", + "@ionic/core": "^8.8.6", "ionicons": "^8.0.13", "tslib": "*" }, @@ -736,9 +736,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/react/package.json b/packages/react/package.json index a23cbf28134..0da7696e0de 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "8.8.5", + "version": "8.8.6", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -40,7 +40,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^8.8.5", + "@ionic/core": "^8.8.6", "ionicons": "^8.0.13", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 5556b755c6a..c15c57b4006 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **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 ab8986aae60..08be273a97a 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.5", + "version": "8.8.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/vue": "^8.8.5" + "@ionic/vue": "^8.8.6" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -673,9 +673,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -868,12 +868,12 @@ } }, "node_modules/@ionic/vue": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.5.tgz", - "integrity": "sha512-C1j1gVhT8UvAtPZ0isssFlF29GaZp/3XFUikrRhGs3Bte9+JbbIkRDhsI8mk5BSidmIB3uJWuPLwlvfcJfaF1A==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.6.tgz", + "integrity": "sha512-G71EC5JoAu06Ublnly0cPfK1XCQgKaN3sItP3tnPscDyVhfWzpEARcgNCxohdLxcMALCF1xYrlRSao4FIf+O9A==", "license": "MIT", "dependencies": { - "@ionic/core": "8.8.5", + "@ionic/core": "8.8.6", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } @@ -8044,9 +8044,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "requires": { "@stencil/core": "4.43.0", "ionicons": "^8.0.13", @@ -8159,11 +8159,11 @@ "requires": {} }, "@ionic/vue": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.5.tgz", - "integrity": "sha512-C1j1gVhT8UvAtPZ0isssFlF29GaZp/3XFUikrRhGs3Bte9+JbbIkRDhsI8mk5BSidmIB3uJWuPLwlvfcJfaF1A==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.6.tgz", + "integrity": "sha512-G71EC5JoAu06Ublnly0cPfK1XCQgKaN3sItP3tnPscDyVhfWzpEARcgNCxohdLxcMALCF1xYrlRSao4FIf+O9A==", "requires": { - "@ionic/core": "8.8.5", + "@ionic/core": "8.8.6", "@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 53c247bdd5e..fcba6b4918a 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "8.8.5", + "version": "8.8.6", "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.5" + "@ionic/vue": "^8.8.6" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index b0f67f24eed..f2544331eae 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.6](https://github.com/ionic-team/ionic-framework/compare/v8.8.5...v8.8.6) (2026-05-06) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [8.8.5](https://github.com/ionic-team/ionic-framework/compare/v8.8.4...v8.8.5) (2026-04-29) **Note:** Version bump only for package @ionic/vue diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 350ad4671e5..8b27565d927 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "8.8.5", + "version": "8.8.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "8.8.5", + "version": "8.8.6", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.5", + "@ionic/core": "^8.8.6", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" }, @@ -222,9 +222,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.5.tgz", - "integrity": "sha512-gVaEeLVNn6QGTmxmiC5J82k0WYEqDSuP6Hxmf4zHsBQptlIDmVOmbqzz8BIevQgb8q/s7ykwE0NGyqRu4BVsqg==", + "version": "8.8.6", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.6.tgz", + "integrity": "sha512-bliMajAW7pHlC9rqUq6bBxUr+Dctv/f+OmCYyDcvoZ64UvWwpAfNC5JcKaWx6VMX4DF4KOmYmbAJO3RdZGKVRw==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/vue/package.json b/packages/vue/package.json index 6b005c2a9af..e2533986296 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "8.8.5", + "version": "8.8.6", "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.5", + "@ionic/core": "^8.8.6", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" },