diff --git a/CHANGELOG.md b/CHANGELOG.md index 30f47df889d..c14a89fea20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + + +### Bug Fixes + +* **accordion:** update tabindex based on disabled state ([#30986](https://github.com/ionic-team/ionic-framework/issues/30986)) ([0e76a69](https://github.com/ionic-team/ionic-framework/commit/0e76a69370083702568825c29d63cf257d6b88f1)) +* **angular:** export RefresherPullEnd types ([#30991](https://github.com/ionic-team/ionic-framework/issues/30991)) ([72abcca](https://github.com/ionic-team/ionic-framework/commit/72abccaad8df3c1db004da28610fddd95ac93c02)) + + +### Features + +* **toast:** add wrapper and content parts (originally intended for 8.8.0 but omitted from that release) ([#30992](https://github.com/ionic-team/ionic-framework/issues/30992)) ([366f00e](https://github.com/ionic-team/ionic-framework/commit/366f00e25f06e28aa7166275445716c2d301e44a)), closes [#30735](https://github.com/ionic-team/ionic-framework/issues/30735) + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) @@ -16,7 +33,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline * **item-option:** add inner and container parts ([#30929](https://github.com/ionic-team/ionic-framework/issues/30929)) ([f8f7ffd](https://github.com/ionic-team/ionic-framework/commit/f8f7ffda318c0143d9bb5c79fe55b4ecb88e6ce3)) * **item:** add inner and container parts ([#30927](https://github.com/ionic-team/ionic-framework/issues/30927)) ([a2c6559](https://github.com/ionic-team/ionic-framework/commit/a2c655923bb1cff51864949575e19028623c695d)) * **list-header:** add inner part ([#30930](https://github.com/ionic-team/ionic-framework/issues/30930)) ([ef73476](https://github.com/ionic-team/ionic-framework/commit/ef73476e08670630907e775a38f9ed30a84e3f1f)) -* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)) +* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)), closes [#23955](https://github.com/ionic-team/ionic-framework/issues/23955) * **range:** add classes and expose parts to allow individual styling of dual knobs ([#30941](https://github.com/ionic-team/ionic-framework/issues/30941)) ([5bcf921](https://github.com/ionic-team/ionic-framework/commit/5bcf92184118055483bf306ab9e319b8e3e61870)), closes [#29862](https://github.com/ionic-team/ionic-framework/issues/29862) * **range:** add classes to the range when the value is at the min or max ([#30932](https://github.com/ionic-team/ionic-framework/issues/30932)) ([fac1a66](https://github.com/ionic-team/ionic-framework/commit/fac1a6673c88a531f1d79656be4eb544f235f819)) * **refresher:** add ionPullStart and ionPullEnd events ([#30946](https://github.com/ionic-team/ionic-framework/issues/30946)) ([814c2e5](https://github.com/ionic-team/ionic-framework/commit/814c2e5ccd6d5bfda12bdf13a566cd66ff830d5b)), closes [#24524](https://github.com/ionic-team/ionic-framework/issues/24524) diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 4e10cd06cce..63f04e42c9f 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + + +### Bug Fixes + +* **accordion:** update tabindex based on disabled state ([#30986](https://github.com/ionic-team/ionic-framework/issues/30986)) ([0e76a69](https://github.com/ionic-team/ionic-framework/commit/0e76a69370083702568825c29d63cf257d6b88f1)) +* **angular:** export RefresherPullEnd types ([#30991](https://github.com/ionic-team/ionic-framework/issues/30991)) ([72abcca](https://github.com/ionic-team/ionic-framework/commit/72abccaad8df3c1db004da28610fddd95ac93c02)) + + +### Features + +* **toast:** add wrapper and content parts (originally intended for 8.8.0 but omitted from that release) ([#30992](https://github.com/ionic-team/ionic-framework/issues/30992)) ([366f00e](https://github.com/ionic-team/ionic-framework/commit/366f00e25f06e28aa7166275445716c2d301e44a)), closes [#30735](https://github.com/ionic-team/ionic-framework/issues/30735) + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) @@ -15,7 +32,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline * **item-option:** add inner and container parts ([#30929](https://github.com/ionic-team/ionic-framework/issues/30929)) ([f8f7ffd](https://github.com/ionic-team/ionic-framework/commit/f8f7ffda318c0143d9bb5c79fe55b4ecb88e6ce3)) * **item:** add inner and container parts ([#30927](https://github.com/ionic-team/ionic-framework/issues/30927)) ([a2c6559](https://github.com/ionic-team/ionic-framework/commit/a2c655923bb1cff51864949575e19028623c695d)) * **list-header:** add inner part ([#30930](https://github.com/ionic-team/ionic-framework/issues/30930)) ([ef73476](https://github.com/ionic-team/ionic-framework/commit/ef73476e08670630907e775a38f9ed30a84e3f1f)) -* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)) +* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)), closes [#23955](https://github.com/ionic-team/ionic-framework/issues/23955) * **range:** add classes and expose parts to allow individual styling of dual knobs ([#30941](https://github.com/ionic-team/ionic-framework/issues/30941)) ([5bcf921](https://github.com/ionic-team/ionic-framework/commit/5bcf92184118055483bf306ab9e319b8e3e61870)), closes [#29862](https://github.com/ionic-team/ionic-framework/issues/29862) * **range:** add classes to the range when the value is at the min or max ([#30932](https://github.com/ionic-team/ionic-framework/issues/30932)) ([fac1a66](https://github.com/ionic-team/ionic-framework/commit/fac1a6673c88a531f1d79656be4eb544f235f819)) * **refresher:** add ionPullStart and ionPullEnd events ([#30946](https://github.com/ionic-team/ionic-framework/issues/30946)) ([814c2e5](https://github.com/ionic-team/ionic-framework/commit/814c2e5ccd6d5bfda12bdf13a566cd66ff830d5b)), closes [#24524](https://github.com/ionic-team/ionic-framework/issues/24524) diff --git a/core/api.txt b/core/api.txt index 7b912905c9c..d9e586ffd33 100644 --- a/core/api.txt +++ b/core/api.txt @@ -2059,9 +2059,11 @@ ion-toast,css-prop,--width,md ion-toast,part,button ion-toast,part,button cancel ion-toast,part,container +ion-toast,part,content ion-toast,part,header ion-toast,part,icon ion-toast,part,message +ion-toast,part,wrapper ion-toggle,shadow ion-toggle,prop,alignment,"center" | "start" | undefined,undefined,false,false diff --git a/core/package-lock.json b/core/package-lock.json index 25fb63480d2..47edcb2eb16 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/core", - "version": "8.8.0", + "version": "8.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/core", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/core/package.json b/core/package.json index 66977ebbaf1..7db02d6f15f 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/core", - "version": "8.8.0", + "version": "8.8.1", "description": "Base components for Ionic", "engines": { "node": ">= 16" diff --git a/core/src/components.d.ts b/core/src/components.d.ts index 9c14861ef13..37223c4f77a 100644 --- a/core/src/components.d.ts +++ b/core/src/components.d.ts @@ -8046,7 +8046,7 @@ declare namespace LocalJSX { */ "onIonRefresh"?: (event: IonRefresherCustomEvent) => void; /** - * Emitted when the user begins to start pulling down. TODO(FW-7044): Remove this in a major release + * Emitted when the user begins to start pulling down. * @deprecated Use `ionPullStart` instead. */ "onIonStart"?: (event: IonRefresherCustomEvent) => void; diff --git a/core/src/components/accordion/accordion.tsx b/core/src/components/accordion/accordion.tsx index 6facef87a46..2d4bfc452b3 100644 --- a/core/src/components/accordion/accordion.tsx +++ b/core/src/components/accordion/accordion.tsx @@ -514,6 +514,7 @@ export class Accordion implements ComponentInterface { 'accordion-animated': this.shouldAnimate(), }} + tabindex={disabled ? '-1' : undefined} >
this.toggleExpanded()} diff --git a/core/src/components/refresher/refresher.tsx b/core/src/components/refresher/refresher.tsx index 2b933bc5f77..9d7c6a7ad06 100644 --- a/core/src/components/refresher/refresher.tsx +++ b/core/src/components/refresher/refresher.tsx @@ -141,9 +141,9 @@ export class Refresher implements ComponentInterface { */ @Event() ionPull!: EventEmitter; + // TODO(FW-7044): Remove this in a major release /** * Emitted when the user begins to start pulling down. - * TODO(FW-7044): Remove this in a major release * * @deprecated Use `ionPullStart` instead. */ diff --git a/core/src/components/toast/test/custom/toast.e2e.ts b/core/src/components/toast/test/custom/toast.e2e.ts new file mode 100644 index 00000000000..a607e3e238b --- /dev/null +++ b/core/src/components/toast/test/custom/toast.e2e.ts @@ -0,0 +1,133 @@ +import { expect } from '@playwright/test'; +import { configs, test } from '@utils/test/playwright'; + +/** + * This behavior does not vary across directions + */ +configs({ directions: ['ltr'] }).forEach(({ config, title }) => { + test.describe(title('toast: custom'), () => { + test('should be able to customize toast wrapper, container, and content using css parts', async ({ page }) => { + await page.setContent( + ` + + + + `, + config + ); + + const wrapperColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="wrapper"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).backgroundColor : null; + }); + + expect(wrapperColor).toBe('rgb(255, 0, 0)'); + + const containerColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="container"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).backgroundColor : null; + }); + + expect(containerColor).toBe('rgb(0, 128, 0)'); + + const contentColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="content"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).backgroundColor : null; + }); + + expect(contentColor).toBe('rgb(0, 0, 255)'); + }); + + test('should be able to customize toast header and message using css parts', async ({ page }) => { + await page.setContent( + ` + + + + `, + config + ); + + const headerColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="header"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).color : null; + }); + + expect(headerColor).toBe('rgb(255, 0, 0)'); + + const messageColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="message"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).color : null; + }); + + expect(messageColor).toBe('rgb(0, 128, 0)'); + }); + + test('should be able to customize toast icon, button, and button cancel using css parts', async ({ page }) => { + await page.setContent( + ` + + + + + + `, + config + ); + + const iconColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="icon"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).color : null; + }); + + expect(iconColor).toBe('rgb(255, 0, 0)'); + + const buttonColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="button"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).color : null; + }); + + expect(buttonColor).toBe('rgb(0, 128, 0)'); + + const buttonCancelColor = await page.locator('ion-toast').evaluate((el: any) => { + const partEl = el.shadowRoot?.querySelector('[part="button cancel"]') as HTMLElement | null; + return partEl ? getComputedStyle(partEl).color : null; + }); + + expect(buttonCancelColor).toBe('rgb(0, 0, 255)'); + }); + }); +}); diff --git a/core/src/components/toast/toast.tsx b/core/src/components/toast/toast.tsx index 4fdcc90f42a..6f0929662af 100644 --- a/core/src/components/toast/toast.tsx +++ b/core/src/components/toast/toast.tsx @@ -47,12 +47,14 @@ import type { /** * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use. * - * @part button - Any button element that is displayed inside of the toast. - * @part button cancel - Any button element with role "cancel" that is displayed inside of the toast. - * @part container - The element that wraps all child elements. + * @part wrapper - The outer wrapper for the toast overlay. + * @part container - Groups the icon, content, and buttons. + * @part content - The live region that contains the header and message. * @part header - The header text of the toast. * @part message - The body text of the toast. * @part icon - The icon that appears next to the toast content. + * @part button - Any button element that is displayed inside of the toast. + * @part button cancel - Any button element with role "cancel" that is displayed inside of the toast. */ @Component({ tag: 'ion-toast', @@ -727,7 +729,7 @@ export class Toast implements ComponentInterface, OverlayInterface { })} onIonToastWillDismiss={this.dispatchCancelHandler} > -
+
{this.renderButtons(startButtons, 'start')} @@ -746,7 +748,7 @@ export class Toast implements ComponentInterface, OverlayInterface { not interrupt the user which is why this has a "status" role and a "polite" presentation. */} -
+
{/* This logic below is done to improve consistency across platforms when showing and updating live regions. diff --git a/lerna.json b/lerna.json index b66ec69b0a6..d0b7ae7dfaa 100644 --- a/lerna.json +++ b/lerna.json @@ -3,5 +3,5 @@ "core", "packages/*" ], - "version": "8.8.0" + "version": "8.8.1" } \ No newline at end of file diff --git a/packages/angular-server/CHANGELOG.md b/packages/angular-server/CHANGELOG.md index 18166731bff..0319949bee2 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.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/angular-server + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) **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 23e996c46f6..a0d98c213e8 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.0", + "version": "8.8.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/angular-server", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.0" + "@ionic/core": "^8.8.1" }, "devDependencies": { "@angular-eslint/eslint-plugin": "^16.0.0", @@ -1031,9 +1031,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -7309,9 +7309,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "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 f5d0363186e..60dbfed3c0e 100644 --- a/packages/angular-server/package.json +++ b/packages/angular-server/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular-server", - "version": "8.8.0", + "version": "8.8.1", "description": "Angular SSR Module for Ionic", "keywords": [ "ionic", @@ -62,6 +62,6 @@ }, "prettier": "@ionic/prettier-config", "dependencies": { - "@ionic/core": "^8.8.0" + "@ionic/core": "^8.8.1" } } diff --git a/packages/angular/CHANGELOG.md b/packages/angular/CHANGELOG.md index 8ca2788a268..02753155a4c 100644 --- a/packages/angular/CHANGELOG.md +++ b/packages/angular/CHANGELOG.md @@ -3,13 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + + +### Bug Fixes + +* **angular:** export RefresherPullEnd types ([#30991](https://github.com/ionic-team/ionic-framework/issues/30991)) ([72abcca](https://github.com/ionic-team/ionic-framework/commit/72abccaad8df3c1db004da28610fddd95ac93c02)) + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) ### Features * **angular:** add custom injector support for modal and popover controllers ([#30899](https://github.com/ionic-team/ionic-framework/issues/30899)) ([822da42](https://github.com/ionic-team/ionic-framework/commit/822da428af86cd9b036b81515272321eb8fa586c)), closes [#30638](https://github.com/ionic-team/ionic-framework/issues/30638) -* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)) +* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)), closes [#23955](https://github.com/ionic-team/ionic-framework/issues/23955) * **refresher:** add ionPullStart and ionPullEnd events ([#30946](https://github.com/ionic-team/ionic-framework/issues/30946)) ([814c2e5](https://github.com/ionic-team/ionic-framework/commit/814c2e5ccd6d5bfda12bdf13a566cd66ff830d5b)), closes [#24524](https://github.com/ionic-team/ionic-framework/issues/24524) * **segment-view:** add swipeGesture property to disable swiping ([#30948](https://github.com/ionic-team/ionic-framework/issues/30948)) ([46806bd](https://github.com/ionic-team/ionic-framework/commit/46806bd6e2af90a0b31fca68f508c06d3d281ec0)), closes [#30290](https://github.com/ionic-team/ionic-framework/issues/30290) * **select:** pass cancelText property to modal interface ([#30282](https://github.com/ionic-team/ionic-framework/issues/30282)) ([6e4f60a](https://github.com/ionic-team/ionic-framework/commit/6e4f60af4c188ae04028b444aa21118ae27c2ca7)) diff --git a/packages/angular/package-lock.json b/packages/angular/package-lock.json index 16177f30703..a1410e67e30 100644 --- a/packages/angular/package-lock.json +++ b/packages/angular/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/angular", - "version": "8.8.0", + "version": "8.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/angular", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.0", + "@ionic/core": "^8.8.1", "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.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/angular/package.json b/packages/angular/package.json index ce5a217f6ff..2d4fe941d77 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/angular", - "version": "8.8.0", + "version": "8.8.1", "description": "Angular specific wrappers for @ionic/core", "keywords": [ "ionic", @@ -48,7 +48,7 @@ } }, "dependencies": { - "@ionic/core": "^8.8.0", + "@ionic/core": "^8.8.1", "ionicons": "^8.0.13", "jsonc-parser": "^3.0.0", "tslib": "^2.3.0" diff --git a/packages/angular/src/directives/proxies.ts b/packages/angular/src/directives/proxies.ts index 3d17a936026..1c78b120d9d 100644 --- a/packages/angular/src/directives/proxies.ts +++ b/packages/angular/src/directives/proxies.ts @@ -1831,8 +1831,7 @@ called when the async operation has completed. */ ionPull: EventEmitter>; /** - * Emitted when the user begins to start pulling down. -TODO(FW-7044): Remove this in a major release @deprecated Use `ionPullStart` instead. + * Emitted when the user begins to start pulling down. @deprecated Use `ionPullStart` instead. */ ionStart: EventEmitter>; /** diff --git a/packages/angular/src/index.ts b/packages/angular/src/index.ts index 990108e3286..86422fdd861 100644 --- a/packages/angular/src/index.ts +++ b/packages/angular/src/index.ts @@ -114,6 +114,8 @@ export { RangeKnobMoveEndEventDetail, RefresherCustomEvent, RefresherEventDetail, + RefresherPullEndCustomEvent, + RefresherPullEndEventDetail, ReorderMoveCustomEvent, ReorderMoveEventDetail, ReorderEndCustomEvent, diff --git a/packages/angular/standalone/src/directives/proxies.ts b/packages/angular/standalone/src/directives/proxies.ts index d92609b5501..eae6fdb8840 100644 --- a/packages/angular/standalone/src/directives/proxies.ts +++ b/packages/angular/standalone/src/directives/proxies.ts @@ -1685,8 +1685,7 @@ called when the async operation has completed. */ ionPull: EventEmitter>; /** - * Emitted when the user begins to start pulling down. -TODO(FW-7044): Remove this in a major release @deprecated Use `ionPullStart` instead. + * Emitted when the user begins to start pulling down. @deprecated Use `ionPullStart` instead. */ ionStart: EventEmitter>; /** diff --git a/packages/angular/standalone/src/index.ts b/packages/angular/standalone/src/index.ts index 06b8e7f1796..a4ac729cc7e 100644 --- a/packages/angular/standalone/src/index.ts +++ b/packages/angular/standalone/src/index.ts @@ -112,6 +112,8 @@ export { RangeKnobMoveEndEventDetail, RefresherCustomEvent, RefresherEventDetail, + RefresherPullEndCustomEvent, + RefresherPullEndEventDetail, ReorderMoveCustomEvent, ReorderMoveEventDetail, ReorderEndCustomEvent, diff --git a/packages/angular/test/base/e2e/src/standalone/refresher.spec.ts b/packages/angular/test/base/e2e/src/standalone/refresher.spec.ts new file mode 100644 index 00000000000..18109696c83 --- /dev/null +++ b/packages/angular/test/base/e2e/src/standalone/refresher.spec.ts @@ -0,0 +1,50 @@ +import { expect, test } from '@playwright/test'; + +/** + * Simulates a pull-to-refresh gesture by dragging from the top of + * the content element downward with intermediate steps so the + * gesture recognizer detects the movement. + */ +const pullDown = async (page: import('@playwright/test').Page, distance: number) => { + const content = page.locator('ion-content'); + const box = await content.boundingBox(); + if (!box) throw new Error('ion-content not visible'); + + const startX = box.x + box.width / 2; + const startY = box.y + 30; + + await page.mouse.move(startX, startY); + await page.mouse.down(); + await page.mouse.move(startX, startY + distance, { steps: 20 }); + await page.mouse.up(); +}; + +test.describe('refresher: angular standalone', () => { + test.beforeEach(async ({ page }) => { + await page.goto('/standalone/refresher'); + }); + + test('should emit ionPullStart and ionPullEnd with cancel reason', async ({ page }) => { + // Small drag that doesn't reach the refresh threshold + await pullDown(page, 60); + + await page.waitForTimeout(500); + + await expect(page.locator('#pull-start-count')).toHaveText('1'); + await expect(page.locator('#refresh-count')).toHaveText('0'); + await expect(page.locator('#pull-end-count')).toHaveText('1'); + await expect(page.locator('#pull-end-reason')).toHaveText('cancel'); + }); + + test('should emit ionPullStart, ionRefresh, and ionPullEnd with complete reason', async ({ page }) => { + // Large drag past the refresh threshold + await pullDown(page, 300); + + await page.waitForTimeout(1000); + + await expect(page.locator('#pull-start-count')).toHaveText('1'); + await expect(page.locator('#refresh-count')).toHaveText('1'); + await expect(page.locator('#pull-end-count')).toHaveText('1'); + await expect(page.locator('#pull-end-reason')).toHaveText('complete'); + }); +}); diff --git a/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts b/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts index a12903f57d3..3f9f82933f6 100644 --- a/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts +++ b/packages/angular/test/base/src/app/standalone/app-standalone/app.routes.ts @@ -32,6 +32,7 @@ export const routes: Routes = [ { path: 'providers', loadComponent: () => import('../providers/providers.component').then(c => c.ProvidersComponent) }, { path: 'overlay-controllers', loadComponent: () => import('../overlay-controllers/overlay-controllers.component').then(c => c.OverlayControllersComponent) }, { path: 'button', loadComponent: () => import('../button/button.component').then(c => c.ButtonComponent) }, + { path: 'refresher', loadComponent: () => import('../refresher/refresher.component').then(c => c.RefresherComponent) }, { path: 'reorder-group', loadComponent: () => import('../reorder-group/reorder-group.component').then(c => c.ReorderGroupComponent) }, { path: 'icon', loadComponent: () => import('../icon/icon.component').then(c => c.IconComponent) }, { path: 'split-pane', redirectTo: '/standalone/split-pane/inbox', pathMatch: 'full' }, diff --git a/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html index 9bc81f2433e..641018e757c 100644 --- a/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html +++ b/packages/angular/test/base/src/app/standalone/home-page/home-page.component.html @@ -33,6 +33,11 @@ Inputs Test + + + Refresher Test + + Reorder Group Test diff --git a/packages/angular/test/base/src/app/standalone/refresher/refresher.component.ts b/packages/angular/test/base/src/app/standalone/refresher/refresher.component.ts new file mode 100644 index 00000000000..e2579e978f2 --- /dev/null +++ b/packages/angular/test/base/src/app/standalone/refresher/refresher.component.ts @@ -0,0 +1,69 @@ +import { Component } from "@angular/core"; +import { IonContent, IonHeader, IonItem, IonLabel, IonList, IonRefresher, IonRefresherContent, IonTitle, IonToolbar } from '@ionic/angular/standalone'; +import { RefresherCustomEvent, RefresherPullEndCustomEvent } from "@ionic/angular"; + +@Component({ + selector: 'app-refresher', + template: ` + + + Refresher Test + + + + + + + + + + + ionPullStart count: {{ pullStartCount }} + + + + + ionRefresh count: {{ refreshCount }} + + + + + ionPullEnd count: {{ pullEndCount }} + + + + + ionPullEnd reason: {{ pullEndReason }} + + + + + `, + standalone: true, + imports: [IonContent, IonHeader, IonItem, IonLabel, IonList, IonRefresher, IonRefresherContent, IonTitle, IonToolbar] +}) +export class RefresherComponent { + pullStartCount = 0; + refreshCount = 0; + pullEndCount = 0; + pullEndReason = ''; + + onPullStart() { + this.pullStartCount++; + } + + onRefresh(event: RefresherCustomEvent) { + this.refreshCount++; + event.target.complete(); + } + + onPullEnd(event: RefresherPullEndCustomEvent) { + this.pullEndCount++; + this.pullEndReason = event.detail.reason; + } +} diff --git a/packages/docs/CHANGELOG.md b/packages/docs/CHANGELOG.md index c2d6498135b..35714b39929 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.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/docs + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) **Note:** Version bump only for package @ionic/docs diff --git a/packages/docs/package-lock.json b/packages/docs/package-lock.json index 95a123dc859..c07ba774b3e 100644 --- a/packages/docs/package-lock.json +++ b/packages/docs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@ionic/docs", - "version": "8.8.0", + "version": "8.8.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/docs", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT" } } diff --git a/packages/docs/package.json b/packages/docs/package.json index 91f26bb261b..fdda438b6df 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/docs", - "version": "8.8.0", + "version": "8.8.1", "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 89184b5e012..a65882d9093 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.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/react-router + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) **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 f169ffbea99..c2ddb561ace 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.0", + "version": "8.8.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/react-router", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/react": "^8.8.0", + "@ionic/react": "^8.8.1", "tslib": "*" }, "devDependencies": { @@ -238,9 +238,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -418,12 +418,12 @@ } }, "node_modules/@ionic/react": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.0.tgz", - "integrity": "sha512-APU5KOhi2qlAXV9WGTJCurwRwvCL20c0dcStbS+Fa2dGIbzjM0CZk+k8pzl1ffh2URYdCP9gse2XnQln8DkVtA==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.1.tgz", + "integrity": "sha512-KuDWk2E0HA8EA5ioDHxGF+OD/REG2PYb7SorMgVHWRWdPYMIL9PwNXrMBfWAd6PyYLLHd2fw7UoiuT2K8SbrzQ==", "license": "MIT", "dependencies": { - "@ionic/core": "8.8.0", + "@ionic/core": "8.8.1", "ionicons": "^8.0.13", "tslib": "*" }, @@ -4178,9 +4178,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "requires": { "@stencil/core": "4.43.0", "ionicons": "^8.0.13", @@ -4284,11 +4284,11 @@ "requires": {} }, "@ionic/react": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.0.tgz", - "integrity": "sha512-APU5KOhi2qlAXV9WGTJCurwRwvCL20c0dcStbS+Fa2dGIbzjM0CZk+k8pzl1ffh2URYdCP9gse2XnQln8DkVtA==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.8.1.tgz", + "integrity": "sha512-KuDWk2E0HA8EA5ioDHxGF+OD/REG2PYb7SorMgVHWRWdPYMIL9PwNXrMBfWAd6PyYLLHd2fw7UoiuT2K8SbrzQ==", "requires": { - "@ionic/core": "8.8.0", + "@ionic/core": "8.8.1", "ionicons": "^8.0.13", "tslib": "*" } diff --git a/packages/react-router/package.json b/packages/react-router/package.json index ff4346b99ec..44b1d1b6c27 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react-router", - "version": "8.8.0", + "version": "8.8.1", "description": "React Router wrapper for @ionic/react", "keywords": [ "ionic", @@ -36,7 +36,7 @@ "dist/" ], "dependencies": { - "@ionic/react": "^8.8.0", + "@ionic/react": "^8.8.1", "tslib": "*" }, "peerDependencies": { diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 974a59fc67f..4c07a6c59c4 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,12 +3,20 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/react + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) ### Features -* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)) +* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)), closes [#23955](https://github.com/ionic-team/ionic-framework/issues/23955) * **textarea:** reflect disabled and readonly props ([#30910](https://github.com/ionic-team/ionic-framework/issues/30910)) ([55735df](https://github.com/ionic-team/ionic-framework/commit/55735df3fa62c8e259c56db3169f3d5459e71c0c)) diff --git a/packages/react/package-lock.json b/packages/react/package-lock.json index 8f1dccb8a17..d9f5a8f7ddf 100644 --- a/packages/react/package-lock.json +++ b/packages/react/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/react", - "version": "8.8.0", + "version": "8.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/react", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.0", + "@ionic/core": "^8.8.1", "ionicons": "^8.0.13", "tslib": "*" }, @@ -736,9 +736,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/react/package.json b/packages/react/package.json index 50b178266bd..7df224a72c6 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/react", - "version": "8.8.0", + "version": "8.8.1", "description": "React specific wrapper for @ionic/core", "keywords": [ "ionic", @@ -40,7 +40,7 @@ "css/" ], "dependencies": { - "@ionic/core": "^8.8.0", + "@ionic/core": "^8.8.1", "ionicons": "^8.0.13", "tslib": "*" }, diff --git a/packages/vue-router/CHANGELOG.md b/packages/vue-router/CHANGELOG.md index 64c86bc03eb..1880c2d642a 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.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/vue-router + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) **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 a62e6147ea2..346ba57dbe7 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.0", + "version": "8.8.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@ionic/vue-router", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/vue": "^8.8.0" + "@ionic/vue": "^8.8.1" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", @@ -673,9 +673,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", @@ -868,12 +868,12 @@ } }, "node_modules/@ionic/vue": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.0.tgz", - "integrity": "sha512-WjPi29Umye9yMdCE+w0yOvyH28q5tK5Oorp3tLu5t2fl9KB9EhPBwBN+CgVWsKDFeSu81P4o+q0y5OvMQYHbvQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.1.tgz", + "integrity": "sha512-tdNErYs6WrNiDJps1nRRY4UeyLffr2hbdkpawrMYFZxzzMd5yuExWsRAofrk5Uy6rSFObSZrfg7AgqyudDcJpQ==", "license": "MIT", "dependencies": { - "@ionic/core": "8.8.0", + "@ionic/core": "8.8.1", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } @@ -8044,9 +8044,9 @@ "dev": true }, "@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "requires": { "@stencil/core": "4.43.0", "ionicons": "^8.0.13", @@ -8159,11 +8159,11 @@ "requires": {} }, "@ionic/vue": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.0.tgz", - "integrity": "sha512-WjPi29Umye9yMdCE+w0yOvyH28q5tK5Oorp3tLu5t2fl9KB9EhPBwBN+CgVWsKDFeSu81P4o+q0y5OvMQYHbvQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.8.1.tgz", + "integrity": "sha512-tdNErYs6WrNiDJps1nRRY4UeyLffr2hbdkpawrMYFZxzzMd5yuExWsRAofrk5Uy6rSFObSZrfg7AgqyudDcJpQ==", "requires": { - "@ionic/core": "8.8.0", + "@ionic/core": "8.8.1", "@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 3d996d9a26c..f6622207d7a 100644 --- a/packages/vue-router/package.json +++ b/packages/vue-router/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue-router", - "version": "8.8.0", + "version": "8.8.1", "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.0" + "@ionic/vue": "^8.8.1" }, "devDependencies": { "@ionic/eslint-config": "^0.3.0", diff --git a/packages/vue/CHANGELOG.md b/packages/vue/CHANGELOG.md index 19fc8ac4682..8e28d889753 100644 --- a/packages/vue/CHANGELOG.md +++ b/packages/vue/CHANGELOG.md @@ -3,12 +3,20 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [8.8.1](https://github.com/ionic-team/ionic-framework/compare/v8.8.0...v8.8.1) (2026-03-06) + +**Note:** Version bump only for package @ionic/vue + + + + + # [8.8.0](https://github.com/ionic-team/ionic-framework/compare/v8.7.18...v8.8.0) (2026-03-04) ### Features -* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)) +* **modal:** add drag events for sheet and card modals ([#30962](https://github.com/ionic-team/ionic-framework/issues/30962)) ([d29ac71](https://github.com/ionic-team/ionic-framework/commit/d29ac713fad604c256fb385eb0c26eb9717e1ff4)), closes [#23955](https://github.com/ionic-team/ionic-framework/issues/23955) * **refresher:** add ionPullStart and ionPullEnd events ([#30946](https://github.com/ionic-team/ionic-framework/issues/30946)) ([814c2e5](https://github.com/ionic-team/ionic-framework/commit/814c2e5ccd6d5bfda12bdf13a566cd66ff830d5b)), closes [#24524](https://github.com/ionic-team/ionic-framework/issues/24524) * **segment-view:** add swipeGesture property to disable swiping ([#30948](https://github.com/ionic-team/ionic-framework/issues/30948)) ([46806bd](https://github.com/ionic-team/ionic-framework/commit/46806bd6e2af90a0b31fca68f508c06d3d281ec0)), closes [#30290](https://github.com/ionic-team/ionic-framework/issues/30290) * **select:** pass cancelText property to modal interface ([#30282](https://github.com/ionic-team/ionic-framework/issues/30282)) ([6e4f60a](https://github.com/ionic-team/ionic-framework/commit/6e4f60af4c188ae04028b444aa21118ae27c2ca7)) diff --git a/packages/vue/package-lock.json b/packages/vue/package-lock.json index 599aeb0f3a0..5a39b839293 100644 --- a/packages/vue/package-lock.json +++ b/packages/vue/package-lock.json @@ -1,15 +1,15 @@ { "name": "@ionic/vue", - "version": "8.8.0", + "version": "8.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@ionic/vue", - "version": "8.8.0", + "version": "8.8.1", "license": "MIT", "dependencies": { - "@ionic/core": "^8.8.0", + "@ionic/core": "^8.8.1", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" }, @@ -222,9 +222,9 @@ "dev": true }, "node_modules/@ionic/core": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.0.tgz", - "integrity": "sha512-DNmTMK26EquKiCYqYCJHBjTZTeoDxY8hpgPQTinQEJMAoFthstcAhyWMDBwDvo/aEHEvE4tlCZV2XUMxTlTIEw==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.8.1.tgz", + "integrity": "sha512-ksOUHyOEqoyUIVWcwCNSFZVGwNfP1DKrUVeN/Cdk/Xl9Rdd/5MLHGsrOQpWQfoCf3Csdnw+KHHPrXz/2fzMkMA==", "license": "MIT", "dependencies": { "@stencil/core": "4.43.0", diff --git a/packages/vue/package.json b/packages/vue/package.json index fd27a9f47da..832e45caf65 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@ionic/vue", - "version": "8.8.0", + "version": "8.8.1", "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.0", + "@ionic/core": "^8.8.1", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" },