Skip to content

Commit 60606f3

Browse files
merge release-8.7.1 (#30589)
v8.7.1
2 parents 2d72da4 + a62d382 commit 60606f3

30 files changed

+210
-864
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [8.7.1](https://github.com/ionic-team/ionic-framework/compare/v8.7.0...v8.7.1) (2025-07-31)
7+
8+
### Dependencies
9+
10+
* **stencil:** upgrade `@stencil/core` to version 4.36.2
11+
12+
13+
14+
15+
616
# [8.7.0](https://github.com/ionic-team/ionic-framework/compare/v8.6.7...v8.7.0) (2025-07-30)
717

818

core/CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [8.7.1](https://github.com/ionic-team/ionic-framework/compare/v8.7.0...v8.7.1) (2025-07-31)
7+
8+
### Dependencies
9+
10+
* **stencil:** upgrade `@stencil/core` to version 4.36.2
11+
12+
13+
14+
15+
616
# [8.7.0](https://github.com/ionic-team/ionic-framework/compare/v8.6.7...v8.7.0) (2025-07-30)
717

818

core/package-lock.json

Lines changed: 9 additions & 49 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ionic/core",
3-
"version": "8.7.0",
3+
"version": "8.7.1",
44
"description": "Base components for Ionic",
55
"keywords": [
66
"ionic",
@@ -31,7 +31,7 @@
3131
"loader/"
3232
],
3333
"dependencies": {
34-
"@stencil/core": "4.33.1",
34+
"@stencil/core": "4.36.2",
3535
"ionicons": "^8.0.13",
3636
"tslib": "^2.1.0"
3737
},

core/src/components/reorder-group/reorder-group.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from
66

77
import { getIonMode } from '../../global/ionic-global';
88
import type { Gesture, GestureDetail } from '../../interface';
9+
import type { HTMLStencilElement } from '../../utils/element-interface';
910

1011
import type { ItemReorderEventDetail, ReorderMoveEventDetail, ReorderEndEventDetail } from './reorder-group-interface';
1112

@@ -38,7 +39,7 @@ export class ReorderGroup implements ComponentInterface {
3839

3940
@State() state = ReorderGroupState.Idle;
4041

41-
@Element() el!: HTMLElement;
42+
@Element() el!: HTMLStencilElement;
4243

4344
/**
4445
* If `true`, the reorder will be hidden.
@@ -152,7 +153,7 @@ export class ReorderGroup implements ComponentInterface {
152153
const heights = this.cachedHeights;
153154
heights.length = 0;
154155
const el = this.el;
155-
const children: any = el.children;
156+
const children: any = el.__children;
156157
if (!children || children.length === 0) {
157158
return;
158159
}
@@ -258,7 +259,7 @@ export class ReorderGroup implements ComponentInterface {
258259
private completeReorder(listOrReorder?: boolean | any[]): any {
259260
const selectedItemEl = this.selectedItemEl;
260261
if (selectedItemEl && this.state === ReorderGroupState.Complete) {
261-
const children = this.el.children as any;
262+
const children: any = this.el.__children;
262263
const len = children.length;
263264
const toIndex = this.lastToIndex;
264265
const fromIndex = indexForItem(selectedItemEl);
@@ -308,7 +309,7 @@ export class ReorderGroup implements ComponentInterface {
308309
/********* DOM WRITE ********* */
309310
private reorderMove(fromIndex: number, toIndex: number) {
310311
const itemHeight = this.selectedItemHeight;
311-
const children = this.el.children;
312+
const children: any = this.el.__children;
312313
for (let i = 0; i < children.length; i++) {
313314
const style = (children[i] as any).style;
314315
let value = '';

core/src/components/router/utils/interface.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
import type { AnimationBuilder, ComponentProps } from '../../../interface';
1+
import type { AnimationBuilder, ComponentProps, HTMLStencilElement } from '../../../interface';
22
import type { NavigationHookCallback } from '../../route/route-interface';
33

4-
export interface HTMLStencilElement extends HTMLElement {
5-
componentOnReady(): Promise<this>;
6-
}
7-
84
export interface NavOutlet {
95
setRouteId(
106
id: string,

core/src/interface.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export { PickerOptions, PickerColumnOption } from './components/picker-legacy/pi
2323
export { PopoverOptions } from './components/popover/popover-interface';
2424
export { RadioGroupCustomEvent } from './components/radio-group/radio-group-interface';
2525
export { RangeCustomEvent, PinFormatter } from './components/range/range-interface';
26-
export { HTMLStencilElement, RouterCustomEvent } from './components/router/utils/interface';
26+
export { RouterCustomEvent } from './components/router/utils/interface';
2727
export { RefresherCustomEvent } from './components/refresher/refresher-interface';
2828
export {
2929
ItemReorderCustomEvent,
@@ -49,6 +49,7 @@ export {
4949
AnimationKeyFrames,
5050
AnimationLifecycle,
5151
} from './utils/animation/animation-interface';
52+
export { HTMLStencilElement } from './utils/element-interface';
5253
export { TransitionOptions } from './utils/transition';
5354
export { HTMLIonOverlayElement, OverlayController, OverlayInterface } from './utils/overlays-interface';
5455
export { Config, config } from './global/config';

core/src/utils/element-interface.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
// The interfaces in this file are used to make sure our components
22
// have the correct properties defined that are needed to pass to
3-
// the native HTML elements they render
3+
// the native HTML elements they render. The HTMLStencilElement interface
4+
// extends HTMLElement to provide Stencil-specific functionality like
5+
// componentOnReady() and proper children handling.
6+
7+
export interface HTMLStencilElement extends HTMLElement {
8+
componentOnReady(): Promise<this>;
9+
/**
10+
* Stencil patches `el.children` to behave like calling `el.children` on an
11+
* element with shadow DOM even though the component is not a shadow DOM element.
12+
* To allow components to work properly we need to access the original accessor
13+
* for this property which is `__children`.
14+
*/
15+
__children?: HTMLCollection;
16+
}
417

518
export interface AnchorInterface {
619
href: string | undefined;

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
"core",
44
"packages/*"
55
],
6-
"version": "8.7.0"
6+
"version": "8.7.1"
77
}

packages/angular-server/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
## [8.7.1](https://github.com/ionic-team/ionic-framework/compare/v8.7.0...v8.7.1) (2025-07-31)
7+
8+
**Note:** Version bump only for package @ionic/angular-server
9+
10+
11+
12+
13+
614
# [8.7.0](https://github.com/ionic-team/ionic-framework/compare/v8.6.7...v8.7.0) (2025-07-30)
715

816
**Note:** Version bump only for package @ionic/angular-server

0 commit comments

Comments
 (0)