diff --git a/CHANGELOG.md b/CHANGELOG.md index ae829e6068c..5f39937f23b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + + +### Bug Fixes + +* **labels:** prevent clicking a label from triggering onClick twice on several components ([#30384](https://github.com/ionic-team/ionic-framework/issues/30384)) ([7d639b0](https://github.com/ionic-team/ionic-framework/commit/7d639b0412120523f758942c855cb69f9a52e9d9)), closes [#30165](https://github.com/ionic-team/ionic-framework/issues/30165) + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index ed973dc865d..00a8312c7ea 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + + +### Bug Fixes + +* **labels:** prevent clicking a label from triggering onClick twice on several components ([#30384](https://github.com/ionic-team/ionic-framework/issues/30384)) ([7d639b0](https://github.com/ionic-team/ionic-framework/commit/7d639b0412120523f758942c855cb69f9a52e9d9)), closes [#30165](https://github.com/ionic-team/ionic-framework/issues/30165) + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) diff --git a/core/package-lock.json b/core/package-lock.json index 7fdce873b84..214b52756e7 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "8.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", diff --git a/core/package.json b/core/package.json index 2e97bba2d9d..4b04912cbd9 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "8.5.6", + "version": "8.5.7", "description": "Base components for Ionic", "keywords": [ "ionic", diff --git a/core/src/components/checkbox/checkbox.tsx b/core/src/components/checkbox/checkbox.tsx index 3b9c3e6724a..4a9132665fd 100644 --- a/core/src/components/checkbox/checkbox.tsx +++ b/core/src/components/checkbox/checkbox.tsx @@ -199,6 +199,14 @@ export class Checkbox implements ComponentInterface { this.toggleChecked(ev); }; + /** + * Stops propagation when the display label is clicked, + * otherwise, two clicks will be triggered. + */ + private onDivLabelClick = (ev: MouseEvent) => { + ev.stopPropagation(); + }; + private getHintTextID(): string | undefined { const { el, helperText, errorText, helperTextId, errorTextId } = this; @@ -314,6 +322,7 @@ export class Checkbox implements ComponentInterface { }} part="label" id={this.inputLabelId} + onClick={this.onDivLabelClick} > {this.renderHintText()} diff --git a/core/src/components/checkbox/test/basic/checkbox.e2e.ts b/core/src/components/checkbox/test/basic/checkbox.e2e.ts index 1a41b339599..159e86f9a30 100644 --- a/core/src/components/checkbox/test/basic/checkbox.e2e.ts +++ b/core/src/components/checkbox/test/basic/checkbox.e2e.ts @@ -99,4 +99,38 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => expect(ionChange).not.toHaveReceivedEvent(); }); }); + + test.describe(title('checkbox: click'), () => { + test('should trigger onclick only once when clicking the label', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + + // Create a spy function in page context + await page.setContent(`Test Checkbox`, config); + + // Track calls to the exposed function + let clickCount = 0; + page.on('console', (msg) => { + if (msg.text().includes('click called')) { + clickCount++; + } + }); + + const input = page.locator('div.label-text-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 5, + y: 5, + }, + }); + + // Verify the click was triggered exactly once + expect(clickCount).toBe(1); + }); + }); }); diff --git a/core/src/components/input/input.tsx b/core/src/components/input/input.tsx index 5f4b1257141..c2834138aa8 100644 --- a/core/src/components/input/input.tsx +++ b/core/src/components/input/input.tsx @@ -720,6 +720,18 @@ export class Input implements ComponentInterface { return this.label !== undefined || this.labelSlot !== null; } + /** + * Stops propagation when the label is clicked, + * otherwise, two clicks will be triggered. + */ + private onLabelClick = (ev: MouseEvent) => { + // Only stop propagation if the click was directly on the label + // and not on the input or other child elements + if (ev.target === ev.currentTarget) { + ev.stopPropagation(); + } + }; + /** * Renders the border container * when fill="outline". @@ -815,9 +827,9 @@ export class Input implements ComponentInterface { * interactable, clicking the label would focus that instead * since it comes before the input in the DOM. */} - + {this.renderLabelContainer()} - + { + test('should trigger onclick only once when clicking the label', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + // Create a spy function in page context + await page.setContent( + ` + + `, + config + ); + + // Track calls to the exposed function + const clickEvent = await page.spyOnEvent('click'); + const input = page.locator('label.input-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 5, + y: 5, + }, + }); + + // Verify the click was triggered exactly once + expect(clickEvent).toHaveReceivedEventTimes(1); + + // Verify that the event target is the checkbox and not the item + const event = clickEvent.events[0]; + expect((event.target as HTMLElement).tagName.toLowerCase()).toBe('ion-input'); + }); + + test('should trigger onclick only once when clicking the wrapper', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + // Create a spy function in page context + await page.setContent( + ` + + `, + config + ); + + // Track calls to the exposed function + const clickEvent = await page.spyOnEvent('click'); + const input = page.locator('div.native-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 1, + y: 1, + }, + }); + + // Verify the click was triggered exactly once + expect(clickEvent).toHaveReceivedEventTimes(1); + + // Verify that the event target is the checkbox and not the item + const event = clickEvent.events[0]; + expect((event.target as HTMLElement).tagName.toLowerCase()).toBe('ion-input'); + }); + }); }); diff --git a/core/src/components/select/select.tsx b/core/src/components/select/select.tsx index 7fc456092db..986e025062d 100644 --- a/core/src/components/select/select.tsx +++ b/core/src/components/select/select.tsx @@ -911,6 +911,18 @@ export class Select implements ComponentInterface { return this.label !== undefined || this.labelSlot !== null; } + /** + * Stops propagation when the label is clicked, + * otherwise, two clicks will be triggered. + */ + private onLabelClick = (ev: MouseEvent) => { + // Only stop propagation if the click was directly on the label + // and not on the input or other child elements + if (ev.target === ev.currentTarget) { + ev.stopPropagation(); + } + }; + /** * Renders the border container * when fill="outline". @@ -1173,7 +1185,7 @@ export class Select implements ComponentInterface { [`select-label-placement-${labelPlacement}`]: true, })} > - + {this.renderLabelContainer()} diff --git a/core/src/components/select/test/basic/select.e2e.ts b/core/src/components/select/test/basic/select.e2e.ts index 63f1c8ca10a..8be07e84d68 100644 --- a/core/src/components/select/test/basic/select.e2e.ts +++ b/core/src/components/select/test/basic/select.e2e.ts @@ -1,6 +1,6 @@ import { expect } from '@playwright/test'; -import { configs, test } from '@utils/test/playwright'; import type { E2ELocator } from '@utils/test/playwright'; +import { configs, test } from '@utils/test/playwright'; /** * This checks that certain overlays open correctly. While the @@ -150,6 +150,45 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => expect(alerts.length).toBe(1); }); }); + + test.describe(title('select: click'), () => { + test('should trigger onclick only once when clicking the label', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + // Create a spy function in page context + await page.setContent( + ` + + Apple + Banana + + `, + config + ); + + // Track calls to the exposed function + const clickEvent = await page.spyOnEvent('click'); + const input = page.locator('label.select-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 5, + y: 5, + }, + }); + + // Verify the click was triggered exactly once + expect(clickEvent).toHaveReceivedEventTimes(1); + + // Verify that the event target is the checkbox and not the item + const event = clickEvent.events[0]; + expect((event.target as HTMLElement).tagName.toLowerCase()).toBe('ion-select'); + }); + }); }); /** diff --git a/core/src/components/textarea/test/basic/textarea.e2e.ts b/core/src/components/textarea/test/basic/textarea.e2e.ts new file mode 100644 index 00000000000..fcb4bab29c7 --- /dev/null +++ b/core/src/components/textarea/test/basic/textarea.e2e.ts @@ -0,0 +1,35 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('textarea: click'), () => { + test('should trigger onclick only once when clicking the label', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + // Create a spy function in page context + await page.setContent(``, config); + + // Track calls to the exposed function + const clickEvent = await page.spyOnEvent('click'); + const input = page.locator('label.textarea-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 5, + y: 5, + }, + }); + + // Verify the click was triggered exactly once + expect(clickEvent).toHaveReceivedEventTimes(1); + + // Verify that the event target is the checkbox and not the item + const event = clickEvent.events[0]; + expect((event.target as HTMLElement).tagName.toLowerCase()).toBe('ion-textarea'); + }); + }); +}); diff --git a/core/src/components/textarea/textarea.tsx b/core/src/components/textarea/textarea.tsx index 78541e9d66b..64ff00c9225 100644 --- a/core/src/components/textarea/textarea.tsx +++ b/core/src/components/textarea/textarea.tsx @@ -572,6 +572,18 @@ export class Textarea implements ComponentInterface { return this.label !== undefined || this.labelSlot !== null; } + /** + * Stops propagation when the label is clicked, + * otherwise, two clicks will be triggered. + */ + private onLabelClick = (ev: MouseEvent) => { + // Only stop propagation if the click was directly on the label + // and not on the input or other child elements + if (ev.target === ev.currentTarget) { + ev.stopPropagation(); + } + }; + /** * Renders the border container when fill="outline". */ @@ -726,7 +738,7 @@ export class Textarea implements ComponentInterface { * interactable, clicking the label would focus that instead * since it comes before the textarea in the DOM. */} - + {this.renderLabelContainer()} {/** diff --git a/core/src/components/toggle/test/basic/toggle.e2e.ts b/core/src/components/toggle/test/basic/toggle.e2e.ts new file mode 100644 index 00000000000..0cdd76792a4 --- /dev/null +++ b/core/src/components/toggle/test/basic/toggle.e2e.ts @@ -0,0 +1,38 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => { + test.describe(title('toggle: click'), () => { + test('should trigger onclick only once when clicking the label', async ({ page }, testInfo) => { + testInfo.annotations.push({ + type: 'issue', + description: 'https://github.com/ionic-team/ionic-framework/issues/30165', + }); + + // Create a spy function in page context + await page.setContent(`my label`, config); + + // Track calls to the exposed function + let clickCount = 0; + page.on('console', (msg) => { + if (msg.text().includes('click called')) { + clickCount++; + } + }); + + const input = page.locator('div.label-text-wrapper'); + + // Use position to make sure we click into the label enough to trigger + // what would be the double click + await input.click({ + position: { + x: 5, + y: 5, + }, + }); + + // Verify the click was triggered exactly once + expect(clickCount).toBe(1); + }); + }); +}); diff --git a/core/src/components/toggle/toggle.tsx b/core/src/components/toggle/toggle.tsx index 57a902c9411..7760e796b6f 100644 --- a/core/src/components/toggle/toggle.tsx +++ b/core/src/components/toggle/toggle.tsx @@ -268,6 +268,14 @@ export class Toggle implements ComponentInterface { } }; + /** + * Stops propagation when the display label is clicked, + * otherwise, two clicks will be triggered. + */ + private onDivLabelClick = (ev: MouseEvent) => { + ev.stopPropagation(); + }; + private onFocus = () => { this.ionFocus.emit(); }; @@ -437,6 +445,7 @@ export class Toggle implements ComponentInterface { }} part="label" id={inputLabelId} + onClick={this.onDivLabelClick} > {this.renderHintText()} diff --git a/lerna.json b/lerna.json index 076e00dc429..470f50d3a68 100644 --- a/lerna.json +++ b/lerna.json @@ -3,5 +3,5 @@ "core", "packages/*" ], - "version": "8.5.6" + "version": "8.5.7" } \ No newline at end of file diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 56ab419fe5b..085b4575cd2 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/angular-server + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **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 f6000f74b3a..e8cf0a5164c 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.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.6" + "@ionic/core": "^8.5.7" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^16.0.0", @@ -1031,9 +1031,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -7190,9 +7190,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", diff --git a/packages/angular-server/package.json b/packages/angular-server/package.json index 91fbe53b202..af417313ce6 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "8.5.6", + "version": "8.5.7", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -62,6 +62,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^8.5.6" + "@ionic/core": "^8.5.7" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index 0b39675a4dd..4e527d3b854 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/angular + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **Note:** Version bump only for package @ionic/angular diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 495dc699337..652e6d022bf 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "8.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" @@ -1398,9 +1398,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -9821,9 +9821,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", diff --git a/packages/angular/package.json b/packages/angular/package.json index 95ac09595ba..66d17659d63 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "8.5.6", + "version": "8.5.7", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -47,7 +47,7 @@ } }, "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "ionicons": "^7.0.0", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/docs/CHANGELOG.md b/packages/docs/CHANGELOG.md index 177353fa6f4..504f57a6a17 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/docs + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **Note:** Version bump only for package @ionic/docs diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json index c604fa1a30a..a26b5e8abd3 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "8.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 7c180a9fedd..1a91174060f 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "8.5.6", + "version": "8.5.7", "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 1df8ba4869d..0235bbfb5ac 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/react-router + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **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 1a2a66207e3..ce78aea5bff 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.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/react": "^8.5.6", + "@ionic/react": "^8.5.7", "tslib": "*" }, "devDependencies": { @@ -238,9 +238,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -415,12 +415,12 @@ } }, "node_modules/@ionic/react": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.6.tgz", - "integrity": "sha512-Tl/MXmLH+D+PzIdjUNPel2pkoCa6nZRtWJqoODvB6xGDGzTEV93EvvbOk25PCaHEwLRIhApz0ZsddCrog24ilQ==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.7.tgz", + "integrity": "sha512-AgX4iu6SfuBhNgYr0H+K3oGsp7ESkCsnaqZdHRO2+GtKTmo4akMrFPihGj4LrZB/IaYwcvYQR/bPWHuZGJYsnw==", "license": "MIT", "dependencies": { - "@ionic/core": "8.5.6", + "@ionic/core": "8.5.7", "ionicons": "^7.0.0", "tslib": "*" }, @@ -4061,9 +4061,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -4167,11 +4167,11 @@ "requires": {} }, "@ionic/react": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.6.tgz", - "integrity": "sha512-Tl/MXmLH+D+PzIdjUNPel2pkoCa6nZRtWJqoODvB6xGDGzTEV93EvvbOk25PCaHEwLRIhApz0ZsddCrog24ilQ==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.5.7.tgz", + "integrity": "sha512-AgX4iu6SfuBhNgYr0H+K3oGsp7ESkCsnaqZdHRO2+GtKTmo4akMrFPihGj4LrZB/IaYwcvYQR/bPWHuZGJYsnw==", "requires": { - "@ionic/core": "8.5.6", + "@ionic/core": "8.5.7", "ionicons": "^7.0.0", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index efec139c177..c8a1de1c768 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "8.5.6", + "version": "8.5.7", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -36,7 +36,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^8.5.6", + "@ionic/react": "^8.5.7", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 0ad2589bfd5..6d9dda25fe7 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/react + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **Note:** Version bump only for package @ionic/react diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 43ea675b6ab..703b14198c3 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "8.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "ionicons": "^7.0.0", "tslib": "*" }, @@ -736,9 +736,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -12316,9 +12316,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", diff --git a/packages/react/package.json b/packages/react/package.json index 57d9d575fea..1ff153e22fe 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "8.5.6", + "version": "8.5.7", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -39,7 +39,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "ionicons": "^7.0.0", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 37d73b4d934..cc6253ae978 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/vue-router + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **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 f17f51623d6..12e5f830bc2 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.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/vue": "^8.5.6" + "@ionic/vue": "^8.5.7" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -673,9 +673,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -865,12 +865,12 @@ } }, "node_modules/@ionic/vue": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.6.tgz", - "integrity": "sha512-wlJseBzAVV3Dgq4aMZsK8gk1KcHj0CyoMet3jOQ8QLKIY/FrkvAFAombQq732H7EOT1lar4g6Kds3qYIgV3fmg==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.7.tgz", + "integrity": "sha512-0eZ6CD65a1vrJdtn3MbXgU9c+LCsoAFPTawF1WZSgDaDjfeA/jhf8Hy+9hY8otjNOYSPJoy/n0ohUhi7kKK7cg==", "license": "MIT", "dependencies": { - "@ionic/core": "8.5.6", + "@ionic/core": "8.5.7", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } @@ -7927,9 +7927,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", @@ -8042,11 +8042,11 @@ "requires": {} }, "@ionic/vue": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.6.tgz", - "integrity": "sha512-wlJseBzAVV3Dgq4aMZsK8gk1KcHj0CyoMet3jOQ8QLKIY/FrkvAFAombQq732H7EOT1lar4g6Kds3qYIgV3fmg==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.5.7.tgz", + "integrity": "sha512-0eZ6CD65a1vrJdtn3MbXgU9c+LCsoAFPTawF1WZSgDaDjfeA/jhf8Hy+9hY8otjNOYSPJoy/n0ohUhi7kKK7cg==", "requires": { - "@ionic/core": "8.5.6", + "@ionic/core": "8.5.7", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" } diff --git a/packages/vue-router/package.json b/packages/vue-router/package.json index 0ecb86a47f4..9fe4d3830c5 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "8.5.6", + "version": "8.5.7", "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.5.6" + "@ionic/vue": "^8.5.7" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 6b58bb3921c..8613b5da3e3 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.5.7](https://github.com/ionic-team/ionic-framework/compare/v8.5.6...v8.5.7) (2025-05-07) + +**Note:** Version bump only for package @ionic/vue + + + + + ## [8.5.6](https://github.com/ionic-team/ionic-framework/compare/v8.5.5...v8.5.6) (2025-04-30) **Note:** Version bump only for package @ionic/vue diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index c8b3a93ecd8..6152ae78d57 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "8.5.6", + "version": "8.5.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "8.5.6", + "version": "8.5.7", "license": "MIT", "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" }, @@ -222,9 +222,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "license": "MIT", "dependencies": { "@stencil/core": "4.20.0", @@ -4052,9 +4052,9 @@ "dev": true }, "@ionic/core": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.6.tgz", - "integrity": "sha512-JGOGK6H4PQHbtsQZ5aGTnr6Il1/AvY3NjGaAZEKNhGWyUu7gpTWtU+WBQPAccsB89LXmND3/1m0MctPc7kzAYw==", + "version": "8.5.7", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.5.7.tgz", + "integrity": "sha512-V5ZRYXD1MgAPdjfLyOejILAdTqIzpMY7/v6GSynFPPWoEpfFbGe/tNsimrYm1/D8iouigYLkJjWSeg2rpIpESA==", "requires": { "@stencil/core": "4.20.0", "ionicons": "^7.2.2", diff --git a/packages/vue/package.json b/packages/vue/package.json index f8d92b37296..478357c7a43 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "8.5.6", + "version": "8.5.7", "description": "Vue specific wrapper for @ionic/core", "scripts": { "eslint": "eslint src", @@ -67,7 +67,7 @@ "vue-router": "^4.0.16" }, "dependencies": { - "@ionic/core": "^8.5.6", + "@ionic/core": "^8.5.7", "@stencil/vue-output-target": "0.10.7", "ionicons": "^7.0.0" },