Compare commits

...

39 Commits
next ... 8.8.x

Author SHA1 Message Date
Brandy Smith
bdeeb539c1 merge release-8.8.1 (#30999)
v8.8.1
2026-03-06 13:04:33 -05:00
Brandy Smith
e925d8543f chore(): update changelog files 2026-03-06 12:43:03 -05:00
ionitron
15deeefeae chore(): update package lock files 2026-03-06 17:15:31 +00:00
ionitron
8d07917cd1 v8.8.1 2026-03-06 17:14:07 +00:00
Shane
72abccaad8 fix(angular): export RefresherPullEnd types (#30991)
Issue number: internal

---------

## What is the current behavior?
Currently, the 8.8 refresher events are not exported to Angular

## What is the new behavior?
With this change, we export the new events and also add Angular tests to
validate that they work and will continue working in the future.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No
2026-03-05 23:56:32 +00:00
Brandy Smith
21fbb7245e merge release-8.8.0 (#30990)
v8.8.0
2026-03-04 16:10:37 -05:00
Brandy Smith
f7171451c3 merge release-8.7.18 (#30972)
v8.7.18
2026-02-25 15:12:08 -05:00
Brandy Smith
9e9578dc3b merge release-8.7.17 (#30917)
v8.7.17
2026-01-14 14:43:19 -05:00
Brandy Smith
0110135e17 merge release-8.7.14 (#30880)
v8.7.14
2025-12-17 13:22:54 -05:00
Shane
289db4bfbb release-8.7.13 (#30871)
v8.7.13
2025-12-13 08:17:03 -08:00
Shane
a28f19a78f merge release-8.7.12 (#30857)
v8.7.12
2025-12-10 13:52:22 -08:00
Maria Hutt
34dc4591d1 merge release-8.7.11 (#30813)
v8.7.11
2025-11-26 12:03:09 -08:00
Maria Hutt
456c57f0a0 merge release-8.7.10 (#30798)
v8.7.10
2025-11-19 10:53:40 -08:00
Shane
303cebb39e merge release-8.7.9 (#30768)
v8.7.9
2025-11-05 09:22:46 -08:00
Brandy Smith
7e8c312697 merge release-8.7.8 (#30762)
v8.7.8
2025-10-29 14:09:37 -04:00
Brandy Smith
555c4fd4f9 merge release-8.7.7 (#30728)
v8.7.7
2025-10-15 15:27:57 -04:00
Brandy Smith
c778176740 merge release-8.7.6 (#30720)
v8.7.6
2025-10-08 14:50:27 -04:00
Shane
912f09b296 merge release-8.7.5 (#30696)
v8.7.5
2025-09-24 13:07:40 -07:00
Shane
d27507649e merge release-8.7.4 (#30681)
Merging 8.7.4
2025-09-17 09:20:04 -07:00
Brandy Smith
a119245bdd merge release-8.7.3 (#30646)
v8.7.3
2025-08-20 14:55:30 -04:00
Brandy Smith
a1d1aab64d merge release-8.7.2 (#30608)
v8.7.2
2025-08-06 13:28:37 -04:00
Brandy Smith
60606f387c merge release-8.7.1 (#30589)
v8.7.1
2025-07-31 12:25:02 -04:00
Brandy Smith
2d72da42d1 merge release-8.7.0 (#30584)
v8.7.0
2025-07-30 17:23:52 -04:00
Brandy Smith
75c5b98518 merge release-8.6.7 (#30581)
v8.6.7
2025-07-30 16:40:50 -04:00
Brandy Smith
d215c90410 merge release-8.6.6 (#30576)
v8.6.6
2025-07-30 14:40:39 -04:00
Brandy Smith
19d810b5e7 merge release-8.6.5 (#30555)
v8.6.5
2025-07-16 16:24:20 -04:00
Shane
ebc3bfd6b0 merge release-8.6.4 (#30536)
v8.6.4
2025-07-09 13:30:40 -07:00
Brandy Smith
d59d67bf00 merge release-8.6.3 (#30527)
v8.6.3
2025-07-02 18:07:29 -04:00
Maria Hutt
c35395ce5e merge release-8.6.1 (#30476)
Release v8.6.1
2025-06-11 09:04:45 -07:00
Brandy Smith
5833199980 merge release-8.6.0 (#30456)
v8.6.0
2025-06-04 11:59:15 -04:00
Brandy Smith
b5e009b618 merge release-8.5.9 (#30453)
v8.5.9
2025-06-04 10:22:58 -04:00
Shane
3c6555a51f merge release-8.5.8 (#30437)
v8.5.8
2025-05-28 11:35:05 -07:00
Brandy Smith
a8cbad0a23 merge release-8.5.7 (#30397)
v8.5.7
2025-05-07 16:36:02 -04:00
Brandy Smith
d21c32944d merge release-8.5.6 (#30382)
v8.5.6
2025-04-30 14:01:13 -04:00
Brandy Smith
67588864bf merge release-8.5.5 (#30366)
v8.5.5
2025-04-16 13:56:42 -04:00
Brandy Smith
a2c2b5f48c merge release-8.5.4 (#30348)
v8.5.4
2025-04-09 13:47:24 -04:00
Brandy Smith
847e6a05d1 merge release-8.5.3 (#30331)
v8.5.3
2025-04-02 12:09:47 -04:00
Brandy Smith
b9c5b9b0b4 merge release-8.5.2 (#30316)
v8.5.2
2025-03-26 18:04:03 -04:00
Brandy Smith
9bdc7f5e03 merge release-8.5.1 (#30275)
v8.5.1
2025-03-19 16:37:37 -04:00
36 changed files with 311 additions and 91 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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",

View File

@@ -1,6 +1,6 @@
{
"name": "@ionic/core",
"version": "8.8.0",
"version": "8.8.1",
"description": "Base components for Ionic",
"engines": {
"node": ">= 16"

View File

@@ -8046,7 +8046,7 @@ declare namespace LocalJSX {
*/
"onIonRefresh"?: (event: IonRefresherCustomEvent<RefresherEventDetail>) => 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>) => void;

View File

@@ -141,9 +141,9 @@ export class Refresher implements ComponentInterface {
*/
@Event() ionPull!: EventEmitter<void>;
// 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.
*/

View File

@@ -3,5 +3,5 @@
"core",
"packages/*"
],
"version": "8.8.0"
"version": "8.8.1"
}

View File

@@ -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

View File

@@ -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",

View File

@@ -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"
}
}

View File

@@ -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))

View File

@@ -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",

View File

@@ -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"

View File

@@ -1831,8 +1831,7 @@ called when the async operation has completed.
*/
ionPull: EventEmitter<CustomEvent<void>>;
/**
* 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<CustomEvent<void>>;
/**

View File

@@ -114,6 +114,8 @@ export {
RangeKnobMoveEndEventDetail,
RefresherCustomEvent,
RefresherEventDetail,
RefresherPullEndCustomEvent,
RefresherPullEndEventDetail,
ReorderMoveCustomEvent,
ReorderMoveEventDetail,
ReorderEndCustomEvent,

View File

@@ -1685,8 +1685,7 @@ called when the async operation has completed.
*/
ionPull: EventEmitter<CustomEvent<void>>;
/**
* 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<CustomEvent<void>>;
/**

View File

@@ -112,6 +112,8 @@ export {
RangeKnobMoveEndEventDetail,
RefresherCustomEvent,
RefresherEventDetail,
RefresherPullEndCustomEvent,
RefresherPullEndEventDetail,
ReorderMoveCustomEvent,
ReorderMoveEventDetail,
ReorderEndCustomEvent,

View File

@@ -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');
});
});

View File

@@ -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' },

View File

@@ -33,6 +33,11 @@
Inputs Test
</ion-label>
</ion-item>
<ion-item routerLink="/standalone/refresher">
<ion-label>
Refresher Test
</ion-label>
</ion-item>
<ion-item routerLink="/standalone/reorder-group">
<ion-label>
Reorder Group Test

View File

@@ -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: `
<ion-header>
<ion-toolbar>
<ion-title>Refresher Test</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-refresher
slot="fixed"
(ionPullStart)="onPullStart()"
(ionRefresh)="onRefresh($event)"
(ionPullEnd)="onPullEnd($event)"
>
<ion-refresher-content></ion-refresher-content>
</ion-refresher>
<ion-list>
<ion-item>
<ion-label>
ionPullStart count: <span id="pull-start-count">{{ pullStartCount }}</span>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
ionRefresh count: <span id="refresh-count">{{ refreshCount }}</span>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
ionPullEnd count: <span id="pull-end-count">{{ pullEndCount }}</span>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
ionPullEnd reason: <span id="pull-end-reason">{{ pullEndReason }}</span>
</ion-label>
</ion-item>
</ion-list>
</ion-content>
`,
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;
}
}

View File

@@ -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

View File

@@ -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"
}
}

View File

@@ -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",

View File

@@ -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

View File

@@ -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": "*"
}

View File

@@ -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": {

View File

@@ -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))

View File

@@ -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",

View File

@@ -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": "*"
},

View File

@@ -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

View File

@@ -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"
}

View File

@@ -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",

View File

@@ -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))

View File

@@ -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",

View File

@@ -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"
},