@ionic/core 8.7.17-dev.11767895575.16ea7cef → 8.7.17-dev.11767897190.1ef0f479

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 (42) hide show
  1. package/components/content.js +96 -8
  2. package/components/ion-tab-bar.js +3 -23
  3. package/components/modal.js +213 -12
  4. package/components/popover.js +83 -11
  5. package/dist/cjs/ion-app_8.cjs.entry.js +107 -20
  6. package/dist/cjs/ion-modal.cjs.entry.js +213 -12
  7. package/dist/cjs/ion-popover.cjs.entry.js +83 -11
  8. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -23
  9. package/dist/collection/components/content/content.css +10 -0
  10. package/dist/collection/components/content/content.js +94 -6
  11. package/dist/collection/components/modal/gestures/sheet.js +3 -1
  12. package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -1
  13. package/dist/collection/components/modal/modal.ios.css +0 -4
  14. package/dist/collection/components/modal/modal.js +205 -7
  15. package/dist/collection/components/modal/modal.md.css +0 -4
  16. package/dist/collection/components/popover/animations/ios.enter.js +21 -5
  17. package/dist/collection/components/popover/animations/md.enter.js +30 -5
  18. package/dist/collection/components/popover/utils.js +32 -1
  19. package/dist/collection/components/tab-bar/tab-bar.js +3 -23
  20. package/dist/docs.json +1 -1
  21. package/dist/esm/ion-app_8.entry.js +96 -9
  22. package/dist/esm/ion-modal.entry.js +213 -12
  23. package/dist/esm/ion-popover.entry.js +83 -11
  24. package/dist/esm/ion-tab-bar_2.entry.js +3 -23
  25. package/dist/ionic/ionic.esm.js +1 -1
  26. package/dist/ionic/p-7268efa5.entry.js +4 -0
  27. package/dist/ionic/p-968a55d1.entry.js +4 -0
  28. package/dist/ionic/p-d9fd799f.entry.js +4 -0
  29. package/dist/ionic/p-ec9ca3fe.entry.js +4 -0
  30. package/dist/types/components/content/content.d.ts +24 -0
  31. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  32. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  33. package/dist/types/components/modal/modal.d.ts +45 -0
  34. package/dist/types/components/popover/utils.d.ts +2 -0
  35. package/dist/types/components/tab-bar/tab-bar.d.ts +0 -1
  36. package/hydrate/index.js +385 -52
  37. package/hydrate/index.mjs +385 -52
  38. package/package.json +1 -1
  39. package/dist/ionic/p-172a579f.entry.js +0 -4
  40. package/dist/ionic/p-732b2fd6.entry.js +0 -4
  41. package/dist/ionic/p-91840a80.entry.js +0 -4
  42. package/dist/ionic/p-f9061316.entry.js +0 -4
@@ -35,8 +35,12 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
35
35
  private viewTransitionAnimation?;
36
36
  private resizeTimeout?;
37
37
  private parentRemovalObserver?;
38
+ private footerObserver?;
38
39
  private cachedOriginalParent?;
39
40
  private cachedPageParent?;
41
+ private skipSafeAreaCoordinateDetection;
42
+ private cachedSafeAreas?;
43
+ private prevSafeAreaState;
40
44
  lastFocus?: HTMLElement;
41
45
  animation?: Animation;
42
46
  presented: boolean;
@@ -303,6 +307,47 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
303
307
  * Removes passthrough styles added by setupChildRoutePassthrough.
304
308
  */
305
309
  private cleanupChildRoutePassthrough;
310
+ /**
311
+ * Sets initial safe-area overrides based on modal configuration before
312
+ * the modal becomes visible. This predicts whether the modal will touch
313
+ * screen edges to avoid a visual snap after animation completes.
314
+ */
315
+ private setInitialSafeAreaOverrides;
316
+ /**
317
+ * Applies safe-area handling for fullscreen modals.
318
+ * Adds wrapper padding when no footer is present to prevent
319
+ * content from overlapping system navigation areas.
320
+ */
321
+ private applyFullscreenSafeArea;
322
+ /**
323
+ * Updates wrapper padding based on footer presence.
324
+ * Called initially and when footer is dynamically added/removed.
325
+ */
326
+ private updateFooterPadding;
327
+ /**
328
+ * Sets all safe-area CSS variables to 0px for modals that
329
+ * don't touch screen edges.
330
+ */
331
+ private zeroAllSafeAreas;
332
+ /**
333
+ * Resets all safe-area related state and styles.
334
+ * Called during dismiss and disconnectedCallback to ensure clean state
335
+ * for re-presentation of inline modals.
336
+ */
337
+ private resetSafeAreaState;
338
+ /**
339
+ * Gets the root safe-area values from the document element.
340
+ * Uses cached values during gestures to avoid getComputedStyle calls.
341
+ */
342
+ private getSafeAreaValues;
343
+ /**
344
+ * Updates safe-area CSS variable overrides based on whether the modal
345
+ * extends into each safe-area region. Called after animation
346
+ * and during gestures to handle dynamic position changes.
347
+ *
348
+ * Optimized to avoid redundant DOM writes by tracking previous state.
349
+ */
350
+ private updateSafeAreaOverrides;
306
351
  private sheetOnDismiss;
307
352
  /**
308
353
  * Dismiss the modal overlay after it has been presented.
@@ -20,6 +20,8 @@ export interface PopoverStyles {
20
20
  bottom?: number;
21
21
  originX: string;
22
22
  originY: string;
23
+ checkSafeAreaTop: boolean;
24
+ checkSafeAreaBottom: boolean;
23
25
  checkSafeAreaLeft: boolean;
24
26
  checkSafeAreaRight: boolean;
25
27
  arrowTop: number;
@@ -6,7 +6,6 @@ import type { TabBarChangedEventDetail } from './tab-bar-interface';
6
6
  */
7
7
  export declare class TabBar implements ComponentInterface {
8
8
  private keyboardCtrl;
9
- private keyboardCtrlPromise;
10
9
  private didLoad;
11
10
  el: HTMLElement;
12
11
  keyboardVisible: boolean;