@ionic/core 8.7.18-dev.11769790854.11895f8f → 8.7.18-dev.11770316329.126ef4af

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/components/ion-refresher.js +32 -3
  2. package/components/modal.js +12 -220
  3. package/components/popover.js +11 -83
  4. package/dist/cjs/ion-modal.cjs.entry.js +12 -220
  5. package/dist/cjs/ion-popover.cjs.entry.js +11 -83
  6. package/dist/cjs/ion-refresher_2.cjs.entry.js +32 -3
  7. package/dist/collection/components/modal/gestures/sheet.js +1 -3
  8. package/dist/collection/components/modal/gestures/swipe-to-close.js +1 -3
  9. package/dist/collection/components/modal/modal.ios.css +4 -0
  10. package/dist/collection/components/modal/modal.js +7 -215
  11. package/dist/collection/components/modal/modal.md.css +4 -0
  12. package/dist/collection/components/popover/animations/ios.enter.js +5 -21
  13. package/dist/collection/components/popover/animations/md.enter.js +5 -30
  14. package/dist/collection/components/popover/utils.js +1 -32
  15. package/dist/collection/components/refresher/refresher.js +70 -4
  16. package/dist/docs.json +49 -4
  17. package/dist/esm/ion-modal.entry.js +12 -220
  18. package/dist/esm/ion-popover.entry.js +11 -83
  19. package/dist/esm/ion-refresher_2.entry.js +32 -3
  20. package/dist/html.html-data.json +1 -1
  21. package/dist/ionic/ionic.esm.js +1 -1
  22. package/dist/ionic/p-90f2d3ff.entry.js +4 -0
  23. package/dist/ionic/p-91840a80.entry.js +4 -0
  24. package/dist/ionic/p-f9061316.entry.js +4 -0
  25. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  26. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  27. package/dist/types/components/modal/modal.d.ts +0 -47
  28. package/dist/types/components/popover/utils.d.ts +0 -2
  29. package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
  30. package/dist/types/components/refresher/refresher.d.ts +16 -3
  31. package/dist/types/components.d.ts +16 -5
  32. package/dist/types/interface.d.ts +1 -1
  33. package/hydrate/index.js +54 -305
  34. package/hydrate/index.mjs +54 -305
  35. package/package.json +2 -4
  36. package/dist/ionic/p-639dd543.entry.js +0 -4
  37. package/dist/ionic/p-ec9ca3fe.entry.js +0 -4
  38. package/dist/ionic/p-ef4256eb.entry.js +0 -4
@@ -20,7 +20,6 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
20
20
  private isSheetModal;
21
21
  private currentBreakpoint?;
22
22
  private wrapperEl?;
23
- private shadowEl?;
24
23
  private backdropEl?;
25
24
  private dragHandleEl?;
26
25
  private sortedBreakpoints?;
@@ -36,12 +35,8 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
36
35
  private viewTransitionAnimation?;
37
36
  private resizeTimeout?;
38
37
  private parentRemovalObserver?;
39
- private footerObserver?;
40
38
  private cachedOriginalParent?;
41
39
  private cachedPageParent?;
42
- private skipSafeAreaCoordinateDetection;
43
- private cachedSafeAreas?;
44
- private prevSafeAreaState;
45
40
  lastFocus?: HTMLElement;
46
41
  animation?: Animation;
47
42
  presented: boolean;
@@ -308,48 +303,6 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
308
303
  * Removes passthrough styles added by setupChildRoutePassthrough.
309
304
  */
310
305
  private cleanupChildRoutePassthrough;
311
- /**
312
- * Sets initial safe-area overrides based on modal configuration before
313
- * the modal becomes visible. This predicts whether the modal will touch
314
- * screen edges to avoid a visual snap after animation completes.
315
- */
316
- private setInitialSafeAreaOverrides;
317
- /**
318
- * Applies safe-area handling for fullscreen modals.
319
- * Adds wrapper padding when no footer is present to prevent
320
- * content from overlapping system navigation areas.
321
- */
322
- private applyFullscreenSafeArea;
323
- /**
324
- * Updates wrapper and shadow padding based on footer presence.
325
- * Called initially and when footer is dynamically added/removed.
326
- * Both elements must be styled identically to prevent visual mismatches.
327
- */
328
- private updateFooterPadding;
329
- /**
330
- * Sets all safe-area CSS variables to 0px for modals that
331
- * don't touch screen edges.
332
- */
333
- private zeroAllSafeAreas;
334
- /**
335
- * Resets all safe-area related state and styles.
336
- * Called during dismiss and disconnectedCallback to ensure clean state
337
- * for re-presentation of inline modals.
338
- */
339
- private resetSafeAreaState;
340
- /**
341
- * Gets the root safe-area values from the document element.
342
- * Uses cached values during gestures to avoid getComputedStyle calls.
343
- */
344
- private getSafeAreaValues;
345
- /**
346
- * Updates safe-area CSS variable overrides based on whether the modal
347
- * extends into each safe-area region. Called after animation
348
- * and during gestures to handle dynamic position changes.
349
- *
350
- * Optimized to avoid redundant DOM writes by tracking previous state.
351
- */
352
- private updateSafeAreaOverrides;
353
306
  private sheetOnDismiss;
354
307
  /**
355
308
  * Dismiss the modal overlay after it has been presented.
@@ -20,8 +20,6 @@ export interface PopoverStyles {
20
20
  bottom?: number;
21
21
  originX: string;
22
22
  originY: string;
23
- checkSafeAreaTop: boolean;
24
- checkSafeAreaBottom: boolean;
25
23
  checkSafeAreaLeft: boolean;
26
24
  checkSafeAreaRight: boolean;
27
25
  arrowTop: number;
@@ -1,7 +1,14 @@
1
1
  export interface RefresherEventDetail {
2
2
  complete(): void;
3
3
  }
4
+ export interface RefresherPullEndEventDetail {
5
+ reason: 'complete' | 'cancel';
6
+ }
4
7
  export interface RefresherCustomEvent extends CustomEvent {
5
8
  detail: RefresherEventDetail;
6
9
  target: HTMLIonRefresherElement;
7
10
  }
11
+ export interface RefresherPullEndCustomEvent extends CustomEvent {
12
+ detail: RefresherPullEndEventDetail;
13
+ target: HTMLIonRefresherElement;
14
+ }
@@ -1,5 +1,5 @@
1
1
  import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
- import type { RefresherEventDetail } from './refresher-interface';
2
+ import type { RefresherEventDetail, RefresherPullEndEventDetail } from './refresher-interface';
3
3
  /**
4
4
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
5
5
  */
@@ -65,8 +65,8 @@ export declare class Refresher implements ComponentInterface {
65
65
  * than `1`. The default value is `1` which is equal to the speed of the cursor.
66
66
  * If a negative value is passed in, the factor will be `1` instead.
67
67
  *
68
- * For example: If the value passed is `1.2` and the content is dragged by
69
- * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels
68
+ * For example, If the value passed is `1.2` and the content is dragged by
69
+ * `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels
70
70
  * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount
71
71
  * will be `8` pixels, less than the amount the cursor has moved.
72
72
  *
@@ -92,8 +92,21 @@ export declare class Refresher implements ComponentInterface {
92
92
  ionPull: EventEmitter<void>;
93
93
  /**
94
94
  * Emitted when the user begins to start pulling down.
95
+ * TODO(FW-7044): Remove this in a major release
96
+ *
97
+ * @deprecated Use `ionPullStart` instead.
95
98
  */
96
99
  ionStart: EventEmitter<void>;
100
+ /**
101
+ * Emitted when the user begins to start pulling down.
102
+ */
103
+ ionPullStart: EventEmitter<void>;
104
+ /**
105
+ * Emitted when the refresher has returned to the inactive state
106
+ * after a pull gesture. This fires whether the refresh completed
107
+ * successfully or was canceled.
108
+ */
109
+ ionPullEnd: EventEmitter<RefresherPullEndEventDetail>;
97
110
  private checkNativeRefresher;
98
111
  private destroyNativeRefresher;
99
112
  private resetNativeRefresher;
@@ -29,7 +29,7 @@ import { PickerButton, PickerColumn } from "./components/picker-legacy/picker-in
29
29
  import { PopoverSize, PositionAlign, PositionReference, PositionSide, TriggerAction } from "./components/popover/popover-interface";
30
30
  import { RadioGroupChangeEventDetail, RadioGroupCompareFn } from "./components/radio-group/radio-group-interface";
31
31
  import { PinFormatter, RangeChangeEventDetail, RangeKnobMoveEndEventDetail, RangeKnobMoveStartEventDetail, RangeValue } from "./components/range/range-interface";
32
- import { RefresherEventDetail } from "./components/refresher/refresher-interface";
32
+ import { RefresherEventDetail, RefresherPullEndEventDetail } from "./components/refresher/refresher-interface";
33
33
  import { ItemReorderEventDetail, ReorderEndEventDetail, ReorderMoveEventDetail } from "./components/reorder-group/reorder-group-interface";
34
34
  import { NavigationHookCallback } from "./components/route/route-interface";
35
35
  import { SearchbarChangeEventDetail, SearchbarInputEventDetail } from "./components/searchbar/searchbar-interface";
@@ -67,7 +67,7 @@ export { PickerButton, PickerColumn } from "./components/picker-legacy/picker-in
67
67
  export { PopoverSize, PositionAlign, PositionReference, PositionSide, TriggerAction } from "./components/popover/popover-interface";
68
68
  export { RadioGroupChangeEventDetail, RadioGroupCompareFn } from "./components/radio-group/radio-group-interface";
69
69
  export { PinFormatter, RangeChangeEventDetail, RangeKnobMoveEndEventDetail, RangeKnobMoveStartEventDetail, RangeValue } from "./components/range/range-interface";
70
- export { RefresherEventDetail } from "./components/refresher/refresher-interface";
70
+ export { RefresherEventDetail, RefresherPullEndEventDetail } from "./components/refresher/refresher-interface";
71
71
  export { ItemReorderEventDetail, ReorderEndEventDetail, ReorderMoveEventDetail } from "./components/reorder-group/reorder-group-interface";
72
72
  export { NavigationHookCallback } from "./components/route/route-interface";
73
73
  export { SearchbarChangeEventDetail, SearchbarInputEventDetail } from "./components/searchbar/searchbar-interface";
@@ -2745,7 +2745,7 @@ export namespace Components {
2745
2745
  */
2746
2746
  "mode"?: "ios" | "md";
2747
2747
  /**
2748
- * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example: If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
2748
+ * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example, If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
2749
2749
  * @default 1
2750
2750
  */
2751
2751
  "pullFactor": number;
@@ -4744,6 +4744,8 @@ declare global {
4744
4744
  "ionRefresh": RefresherEventDetail;
4745
4745
  "ionPull": void;
4746
4746
  "ionStart": void;
4747
+ "ionPullStart": void;
4748
+ "ionPullEnd": RefresherPullEndEventDetail;
4747
4749
  }
4748
4750
  interface HTMLIonRefresherElement extends Components.IonRefresher, HTMLStencilElement {
4749
4751
  addEventListener<K extends keyof HTMLIonRefresherElementEventMap>(type: K, listener: (this: HTMLIonRefresherElement, ev: IonRefresherCustomEvent<HTMLIonRefresherElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -7879,16 +7881,25 @@ declare namespace LocalJSX {
7879
7881
  * Emitted while the user is pulling down the content and exposing the refresher.
7880
7882
  */
7881
7883
  "onIonPull"?: (event: IonRefresherCustomEvent<void>) => void;
7884
+ /**
7885
+ * Emitted when the refresher has returned to the inactive state after a pull gesture. This fires whether the refresh completed successfully or was canceled.
7886
+ */
7887
+ "onIonPullEnd"?: (event: IonRefresherCustomEvent<RefresherPullEndEventDetail>) => void;
7888
+ /**
7889
+ * Emitted when the user begins to start pulling down.
7890
+ */
7891
+ "onIonPullStart"?: (event: IonRefresherCustomEvent<void>) => void;
7882
7892
  /**
7883
7893
  * Emitted when the user lets go of the content and has pulled down further than the `pullMin` or pulls the content down and exceeds the pullMax. Updates the refresher state to `refreshing`. The `complete()` method should be called when the async operation has completed.
7884
7894
  */
7885
7895
  "onIonRefresh"?: (event: IonRefresherCustomEvent<RefresherEventDetail>) => void;
7886
7896
  /**
7887
- * Emitted when the user begins to start pulling down.
7897
+ * Emitted when the user begins to start pulling down. TODO(FW-7044): Remove this in a major release
7898
+ * @deprecated Use `ionPullStart` instead.
7888
7899
  */
7889
7900
  "onIonStart"?: (event: IonRefresherCustomEvent<void>) => void;
7890
7901
  /**
7891
- * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example: If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
7902
+ * How much to multiply the pull speed by. To slow the pull animation down, pass a number less than `1`. To speed up the pull, pass a number greater than `1`. The default value is `1` which is equal to the speed of the cursor. If a negative value is passed in, the factor will be `1` instead. For example, If the value passed is `1.2` and the content is dragged by `10` pixels, instead of `10` pixels, the content will be pulled by `12` pixels (an increase of 20 percent). If the value passed is `0.8`, the dragged amount will be `8` pixels, less than the amount the cursor has moved. Does not apply when the refresher content uses a spinner, enabling the native refresher.
7892
7903
  * @default 1
7893
7904
  */
7894
7905
  "pullFactor"?: number;
@@ -24,7 +24,7 @@ export { PopoverOptions } from './components/popover/popover-interface';
24
24
  export { RadioGroupCustomEvent } from './components/radio-group/radio-group-interface';
25
25
  export { RangeCustomEvent, PinFormatter } from './components/range/range-interface';
26
26
  export { RouterCustomEvent } from './components/router/utils/interface';
27
- export { RefresherCustomEvent } from './components/refresher/refresher-interface';
27
+ export { RefresherCustomEvent, RefresherPullEndCustomEvent } from './components/refresher/refresher-interface';
28
28
  export {
29
29
  ItemReorderCustomEvent,
30
30
  ReorderEndCustomEvent,