Merge branch 'main' into chore/update-from-main

This commit is contained in:
Brandy Smith
2025-08-20 15:20:13 -04:00
179 changed files with 3032 additions and 9042 deletions

View File

@ -347,7 +347,12 @@ export class Checkbox implements ComponentInterface {
</div>
<div class="native-wrapper">
{/* Phosphor Icons define a larger viewBox */}
<svg class="checkbox-icon" viewBox={theme === 'ionic' ? '0 0 256 256' : '0 0 24 24'} part="container">
<svg
class="checkbox-icon"
viewBox={theme === 'ionic' ? '0 0 256 256' : '0 0 24 24'}
part="container"
aria-hidden="true"
>
{path}
</svg>
</div>

View File

@ -255,6 +255,15 @@ export class Refresher implements ComponentInterface {
this.didRefresh = true;
hapticImpact({ style: ImpactStyle.Light });
/**
* Clear focus from any active element to prevent scroll jumps
* when the refresh completes
*/
const activeElement = document.activeElement as HTMLElement;
if (activeElement?.blur !== undefined) {
activeElement.blur();
}
/**
* Translate the content element otherwise when pointer is removed
* from screen the scroll content will bounce back over the refresher
@ -735,6 +744,16 @@ export class Refresher implements ComponentInterface {
// place the content in a hangout position while it thinks
this.setCss(this.pullMin, this.snapbackDuration, true, '');
/**
* Clear focus from any active element to prevent the browser
* from restoring focus and causing scroll jumps after refresh.
* This ensures the view stays at the top after refresh completes.
*/
const activeElement = document.activeElement as HTMLElement;
if (activeElement?.blur !== undefined) {
activeElement.blur();
}
// emit "refresh" because it was pulled down far enough
// and they let go to begin refreshing
this.ionRefresh.emit({

View File

@ -157,7 +157,7 @@ export class ReorderGroup implements ComponentInterface {
const heights = this.cachedHeights;
heights.length = 0;
const el = this.el;
const children: any = el.__children;
const children: any = el.__children || el.children;
if (!children || children.length === 0) {
return;
}
@ -263,7 +263,7 @@ export class ReorderGroup implements ComponentInterface {
private completeReorder(listOrReorder?: boolean | any[]): any {
const selectedItemEl = this.selectedItemEl;
if (selectedItemEl && this.state === ReorderGroupState.Complete) {
const children: any = this.el.__children;
const children: any = this.el.__children || this.el.children;
const len = children.length;
const toIndex = this.lastToIndex;
const fromIndex = indexForItem(selectedItemEl);
@ -313,7 +313,7 @@ export class ReorderGroup implements ComponentInterface {
/********* DOM WRITE ********* */
private reorderMove(fromIndex: number, toIndex: number) {
const itemHeight = this.selectedItemHeight;
const children: any = this.el.__children;
const children: any = this.el.__children || this.el.children;
for (let i = 0; i < children.length; i++) {
const style = (children[i] as any).style;
let value = '';