@ionic/core 8.7.16-dev.11766785951.14b7f2fa → 8.7.16-dev.11767018329.15d3ae73

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.
@@ -1695,6 +1695,7 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
1695
1695
  }
1696
1696
  onWindowResize() {
1697
1697
  // Update safe-area overrides for all modal types on resize
1698
+ console.log('[onWindowResize] calling updateSafeAreaOverrides');
1698
1699
  this.updateSafeAreaOverrides();
1699
1700
  // Only handle view transition for iOS card modals when no custom animations are provided
1700
1701
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -1942,6 +1943,7 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
1942
1943
  this.initSwipeToClose();
1943
1944
  }
1944
1945
  // Now that animation is complete, update safe-area based on actual position
1946
+ console.log('[present animation complete] calling updateSafeAreaOverrides');
1945
1947
  this.updateSafeAreaOverrides();
1946
1948
  // Initialize view transition listener for iOS card modals
1947
1949
  this.initViewTransitionListener();
@@ -2104,8 +2106,18 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2104
2106
  const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
2105
2107
  const isCardModal = presentingElement !== undefined;
2106
2108
  const isTablet = window.innerWidth >= 768;
2109
+ console.log('[setInitialSafeAreaOverrides] called', {
2110
+ isSheetModal,
2111
+ isCardModal,
2112
+ isTablet,
2113
+ breakpoints: this.breakpoints,
2114
+ initialBreakpoint: this.initialBreakpoint,
2115
+ presentingElement: !!presentingElement,
2116
+ innerWidth: window.innerWidth,
2117
+ });
2107
2118
  // Sheet modals: always touch bottom, top depends on breakpoint
2108
2119
  if (isSheetModal) {
2120
+ console.log('[setInitialSafeAreaOverrides] Sheet modal path - setting top/left/right to 0, leaving bottom alone');
2109
2121
  style.setProperty('--ion-safe-area-top', '0px');
2110
2122
  // Don't override bottom - sheet always touches bottom
2111
2123
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2114,6 +2126,7 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2114
2126
  }
2115
2127
  // Card modals are inset from edges (rounded corners), no safe areas needed
2116
2128
  if (isCardModal) {
2129
+ console.log('[setInitialSafeAreaOverrides] Card modal path - setting all to 0');
2117
2130
  style.setProperty('--ion-safe-area-top', '0px');
2118
2131
  style.setProperty('--ion-safe-area-bottom', '0px');
2119
2132
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2122,6 +2135,7 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2122
2135
  }
2123
2136
  // Phone modals are fullscreen, need all safe areas
2124
2137
  if (!isTablet) {
2138
+ console.log('[setInitialSafeAreaOverrides] Phone modal path - not setting any overrides');
2125
2139
  // Don't set any overrides - inherit from :root
2126
2140
  return;
2127
2141
  }
@@ -2130,11 +2144,14 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2130
2144
  const computedStyle = getComputedStyle(this.el);
2131
2145
  const width = computedStyle.getPropertyValue('--width').trim();
2132
2146
  const height = computedStyle.getPropertyValue('--height').trim();
2147
+ console.log('[setInitialSafeAreaOverrides] Tablet modal path', { width, height });
2133
2148
  if (width === '100%' && height === '100%') {
2149
+ console.log('[setInitialSafeAreaOverrides] Fullscreen tablet modal - not setting overrides');
2134
2150
  // Fullscreen modal - need safe areas, don't override
2135
2151
  return;
2136
2152
  }
2137
2153
  // Centered dialog - zero out all safe areas
2154
+ console.log('[setInitialSafeAreaOverrides] Centered tablet dialog - setting all to 0');
2138
2155
  style.setProperty('--ion-safe-area-top', '0px');
2139
2156
  style.setProperty('--ion-safe-area-bottom', '0px');
2140
2157
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2147,22 +2164,50 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2147
2164
  */
2148
2165
  updateSafeAreaOverrides() {
2149
2166
  const wrapper = this.wrapperEl;
2150
- if (!wrapper)
2167
+ if (!wrapper) {
2168
+ console.log('[updateSafeAreaOverrides] No wrapper element, returning early');
2151
2169
  return;
2170
+ }
2152
2171
  const rect = wrapper.getBoundingClientRect();
2153
2172
  const threshold = 2; // Account for subpixel rendering
2154
2173
  const touchingTop = rect.top <= threshold;
2155
2174
  const touchingBottom = rect.bottom >= window.innerHeight - threshold;
2156
2175
  const touchingLeft = rect.left <= threshold;
2157
2176
  const touchingRight = rect.right >= window.innerWidth - threshold;
2177
+ console.log('[updateSafeAreaOverrides] called', {
2178
+ isSheetModal: this.isSheetModal,
2179
+ rect: { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right },
2180
+ innerHeight: window.innerHeight,
2181
+ innerWidth: window.innerWidth,
2182
+ threshold,
2183
+ touchingTop,
2184
+ touchingBottom,
2185
+ touchingLeft,
2186
+ touchingRight,
2187
+ bottomCalc: `${rect.bottom} >= ${window.innerHeight - threshold} = ${touchingBottom}`,
2188
+ });
2158
2189
  // Remove override when touching edge (allow inheritance), set to 0 when not touching
2159
2190
  const style = this.el.style;
2191
+ const actions = {
2192
+ top: touchingTop ? 'removeProperty' : 'setProperty 0px',
2193
+ bottom: touchingBottom ? 'removeProperty' : 'setProperty 0px',
2194
+ left: touchingLeft ? 'removeProperty' : 'setProperty 0px',
2195
+ right: touchingRight ? 'removeProperty' : 'setProperty 0px',
2196
+ };
2197
+ console.log('[updateSafeAreaOverrides] actions:', actions);
2160
2198
  touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
2161
2199
  touchingBottom
2162
2200
  ? style.removeProperty('--ion-safe-area-bottom')
2163
2201
  : style.setProperty('--ion-safe-area-bottom', '0px');
2164
2202
  touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
2165
2203
  touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
2204
+ // Log the actual style values after setting
2205
+ console.log('[updateSafeAreaOverrides] after setting, inline styles:', {
2206
+ top: style.getPropertyValue('--ion-safe-area-top'),
2207
+ bottom: style.getPropertyValue('--ion-safe-area-bottom'),
2208
+ left: style.getPropertyValue('--ion-safe-area-left'),
2209
+ right: style.getPropertyValue('--ion-safe-area-right'),
2210
+ });
2166
2211
  }
2167
2212
  sheetOnDismiss() {
2168
2213
  /**
@@ -2501,20 +2546,20 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
2501
2546
  const isCardModal = presentingElement !== undefined && mode === 'ios';
2502
2547
  const isHandleCycle = handleBehavior === 'cycle';
2503
2548
  const isSheetModalWithHandle = isSheetModal && showHandle;
2504
- return (h(Host, Object.assign({ key: 'e80cac8f52f1056eaf63112eafcfdcd029aa31e8', "no-router": true,
2549
+ return (h(Host, Object.assign({ key: '8659056ce9de06c66d65946fe4af939e298d133c', "no-router": true,
2505
2550
  // Allow the modal to be navigable when the handle is focusable
2506
2551
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2507
2552
  zIndex: `${20000 + this.overlayIndex}`,
2508
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'dcc24085006dd1e41c47a55031d78bd55ddeb622', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '74c4ff6bdc87f8c29ee8ba0592c97db2c597d876', class: "modal-shadow" }), h("div", Object.assign({ key: '79f3b01bdadc0d830e5707026aa2055d62714274',
2553
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e4f287871798d7aa660c8aea3a81deeeb540812d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '6f3d8d504e080093ba9e5089e5de76feaa13cf38', class: "modal-shadow" }), h("div", Object.assign({ key: '6ad0b4d97e0c0bad56689e457f08819ad857a0b4',
2509
2554
  /*
2510
2555
  role and aria-modal must be used on the
2511
2556
  same element. They must also be set inside the
2512
2557
  shadow DOM otherwise ion-button will not be highlighted
2513
2558
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
2514
2559
  */
2515
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'b250920bad86e23269f900353d531975a95662af', class: "modal-handle",
2560
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e5a9d74a112e315240b307042ad16d8e6ff2c714', class: "modal-handle",
2516
2561
  // Prevents the handle from receiving keyboard focus when it does not cycle
2517
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '2ba83c0f0a92784cac127c6581f12ea06b201b97', onSlotchange: this.onSlotChange }))));
2562
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '66f342587b6eaa5801397d7385ec3dc783bf8f55', onSlotchange: this.onSlotChange }))));
2518
2563
  }
2519
2564
  get el() { return this; }
2520
2565
  static get watchers() { return {
@@ -1694,6 +1694,7 @@ const Modal = class {
1694
1694
  }
1695
1695
  onWindowResize() {
1696
1696
  // Update safe-area overrides for all modal types on resize
1697
+ console.log('[onWindowResize] calling updateSafeAreaOverrides');
1697
1698
  this.updateSafeAreaOverrides();
1698
1699
  // Only handle view transition for iOS card modals when no custom animations are provided
1699
1700
  if (ionicGlobal.getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -1941,6 +1942,7 @@ const Modal = class {
1941
1942
  this.initSwipeToClose();
1942
1943
  }
1943
1944
  // Now that animation is complete, update safe-area based on actual position
1945
+ console.log('[present animation complete] calling updateSafeAreaOverrides');
1944
1946
  this.updateSafeAreaOverrides();
1945
1947
  // Initialize view transition listener for iOS card modals
1946
1948
  this.initViewTransitionListener();
@@ -2103,8 +2105,18 @@ const Modal = class {
2103
2105
  const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
2104
2106
  const isCardModal = presentingElement !== undefined;
2105
2107
  const isTablet = window.innerWidth >= 768;
2108
+ console.log('[setInitialSafeAreaOverrides] called', {
2109
+ isSheetModal,
2110
+ isCardModal,
2111
+ isTablet,
2112
+ breakpoints: this.breakpoints,
2113
+ initialBreakpoint: this.initialBreakpoint,
2114
+ presentingElement: !!presentingElement,
2115
+ innerWidth: window.innerWidth,
2116
+ });
2106
2117
  // Sheet modals: always touch bottom, top depends on breakpoint
2107
2118
  if (isSheetModal) {
2119
+ console.log('[setInitialSafeAreaOverrides] Sheet modal path - setting top/left/right to 0, leaving bottom alone');
2108
2120
  style.setProperty('--ion-safe-area-top', '0px');
2109
2121
  // Don't override bottom - sheet always touches bottom
2110
2122
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2113,6 +2125,7 @@ const Modal = class {
2113
2125
  }
2114
2126
  // Card modals are inset from edges (rounded corners), no safe areas needed
2115
2127
  if (isCardModal) {
2128
+ console.log('[setInitialSafeAreaOverrides] Card modal path - setting all to 0');
2116
2129
  style.setProperty('--ion-safe-area-top', '0px');
2117
2130
  style.setProperty('--ion-safe-area-bottom', '0px');
2118
2131
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2121,6 +2134,7 @@ const Modal = class {
2121
2134
  }
2122
2135
  // Phone modals are fullscreen, need all safe areas
2123
2136
  if (!isTablet) {
2137
+ console.log('[setInitialSafeAreaOverrides] Phone modal path - not setting any overrides');
2124
2138
  // Don't set any overrides - inherit from :root
2125
2139
  return;
2126
2140
  }
@@ -2129,11 +2143,14 @@ const Modal = class {
2129
2143
  const computedStyle = getComputedStyle(this.el);
2130
2144
  const width = computedStyle.getPropertyValue('--width').trim();
2131
2145
  const height = computedStyle.getPropertyValue('--height').trim();
2146
+ console.log('[setInitialSafeAreaOverrides] Tablet modal path', { width, height });
2132
2147
  if (width === '100%' && height === '100%') {
2148
+ console.log('[setInitialSafeAreaOverrides] Fullscreen tablet modal - not setting overrides');
2133
2149
  // Fullscreen modal - need safe areas, don't override
2134
2150
  return;
2135
2151
  }
2136
2152
  // Centered dialog - zero out all safe areas
2153
+ console.log('[setInitialSafeAreaOverrides] Centered tablet dialog - setting all to 0');
2137
2154
  style.setProperty('--ion-safe-area-top', '0px');
2138
2155
  style.setProperty('--ion-safe-area-bottom', '0px');
2139
2156
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2146,22 +2163,50 @@ const Modal = class {
2146
2163
  */
2147
2164
  updateSafeAreaOverrides() {
2148
2165
  const wrapper = this.wrapperEl;
2149
- if (!wrapper)
2166
+ if (!wrapper) {
2167
+ console.log('[updateSafeAreaOverrides] No wrapper element, returning early');
2150
2168
  return;
2169
+ }
2151
2170
  const rect = wrapper.getBoundingClientRect();
2152
2171
  const threshold = 2; // Account for subpixel rendering
2153
2172
  const touchingTop = rect.top <= threshold;
2154
2173
  const touchingBottom = rect.bottom >= window.innerHeight - threshold;
2155
2174
  const touchingLeft = rect.left <= threshold;
2156
2175
  const touchingRight = rect.right >= window.innerWidth - threshold;
2176
+ console.log('[updateSafeAreaOverrides] called', {
2177
+ isSheetModal: this.isSheetModal,
2178
+ rect: { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right },
2179
+ innerHeight: window.innerHeight,
2180
+ innerWidth: window.innerWidth,
2181
+ threshold,
2182
+ touchingTop,
2183
+ touchingBottom,
2184
+ touchingLeft,
2185
+ touchingRight,
2186
+ bottomCalc: `${rect.bottom} >= ${window.innerHeight - threshold} = ${touchingBottom}`,
2187
+ });
2157
2188
  // Remove override when touching edge (allow inheritance), set to 0 when not touching
2158
2189
  const style = this.el.style;
2190
+ const actions = {
2191
+ top: touchingTop ? 'removeProperty' : 'setProperty 0px',
2192
+ bottom: touchingBottom ? 'removeProperty' : 'setProperty 0px',
2193
+ left: touchingLeft ? 'removeProperty' : 'setProperty 0px',
2194
+ right: touchingRight ? 'removeProperty' : 'setProperty 0px',
2195
+ };
2196
+ console.log('[updateSafeAreaOverrides] actions:', actions);
2159
2197
  touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
2160
2198
  touchingBottom
2161
2199
  ? style.removeProperty('--ion-safe-area-bottom')
2162
2200
  : style.setProperty('--ion-safe-area-bottom', '0px');
2163
2201
  touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
2164
2202
  touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
2203
+ // Log the actual style values after setting
2204
+ console.log('[updateSafeAreaOverrides] after setting, inline styles:', {
2205
+ top: style.getPropertyValue('--ion-safe-area-top'),
2206
+ bottom: style.getPropertyValue('--ion-safe-area-bottom'),
2207
+ left: style.getPropertyValue('--ion-safe-area-left'),
2208
+ right: style.getPropertyValue('--ion-safe-area-right'),
2209
+ });
2165
2210
  }
2166
2211
  sheetOnDismiss() {
2167
2212
  /**
@@ -2500,20 +2545,20 @@ const Modal = class {
2500
2545
  const isCardModal = presentingElement !== undefined && mode === 'ios';
2501
2546
  const isHandleCycle = handleBehavior === 'cycle';
2502
2547
  const isSheetModalWithHandle = isSheetModal && showHandle;
2503
- return (index$3.h(index$3.Host, Object.assign({ key: 'e80cac8f52f1056eaf63112eafcfdcd029aa31e8', "no-router": true,
2548
+ return (index$3.h(index$3.Host, Object.assign({ key: '8659056ce9de06c66d65946fe4af939e298d133c', "no-router": true,
2504
2549
  // Allow the modal to be navigable when the handle is focusable
2505
2550
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2506
2551
  zIndex: `${20000 + this.overlayIndex}`,
2507
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), index$3.h("ion-backdrop", { key: 'dcc24085006dd1e41c47a55031d78bd55ddeb622', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '74c4ff6bdc87f8c29ee8ba0592c97db2c597d876', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '79f3b01bdadc0d830e5707026aa2055d62714274',
2552
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), index$3.h("ion-backdrop", { key: 'e4f287871798d7aa660c8aea3a81deeeb540812d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '6f3d8d504e080093ba9e5089e5de76feaa13cf38', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '6ad0b4d97e0c0bad56689e457f08819ad857a0b4',
2508
2553
  /*
2509
2554
  role and aria-modal must be used on the
2510
2555
  same element. They must also be set inside the
2511
2556
  shadow DOM otherwise ion-button will not be highlighted
2512
2557
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
2513
2558
  */
2514
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: 'b250920bad86e23269f900353d531975a95662af', class: "modal-handle",
2559
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: 'e5a9d74a112e315240b307042ad16d8e6ff2c714', class: "modal-handle",
2515
2560
  // Prevents the handle from receiving keyboard focus when it does not cycle
2516
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), index$3.h("slot", { key: '2ba83c0f0a92784cac127c6581f12ea06b201b97', onSlotchange: this.onSlotChange }))));
2561
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), index$3.h("slot", { key: '66f342587b6eaa5801397d7385ec3dc783bf8f55', onSlotchange: this.onSlotChange }))));
2517
2562
  }
2518
2563
  get el() { return index$3.getElement(this); }
2519
2564
  static get watchers() { return {
@@ -233,6 +233,7 @@ export class Modal {
233
233
  }
234
234
  onWindowResize() {
235
235
  // Update safe-area overrides for all modal types on resize
236
+ console.log('[onWindowResize] calling updateSafeAreaOverrides');
236
237
  this.updateSafeAreaOverrides();
237
238
  // Only handle view transition for iOS card modals when no custom animations are provided
238
239
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -480,6 +481,7 @@ export class Modal {
480
481
  this.initSwipeToClose();
481
482
  }
482
483
  // Now that animation is complete, update safe-area based on actual position
484
+ console.log('[present animation complete] calling updateSafeAreaOverrides');
483
485
  this.updateSafeAreaOverrides();
484
486
  // Initialize view transition listener for iOS card modals
485
487
  this.initViewTransitionListener();
@@ -642,8 +644,18 @@ export class Modal {
642
644
  const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
643
645
  const isCardModal = presentingElement !== undefined;
644
646
  const isTablet = window.innerWidth >= 768;
647
+ console.log('[setInitialSafeAreaOverrides] called', {
648
+ isSheetModal,
649
+ isCardModal,
650
+ isTablet,
651
+ breakpoints: this.breakpoints,
652
+ initialBreakpoint: this.initialBreakpoint,
653
+ presentingElement: !!presentingElement,
654
+ innerWidth: window.innerWidth,
655
+ });
645
656
  // Sheet modals: always touch bottom, top depends on breakpoint
646
657
  if (isSheetModal) {
658
+ console.log('[setInitialSafeAreaOverrides] Sheet modal path - setting top/left/right to 0, leaving bottom alone');
647
659
  style.setProperty('--ion-safe-area-top', '0px');
648
660
  // Don't override bottom - sheet always touches bottom
649
661
  style.setProperty('--ion-safe-area-left', '0px');
@@ -652,6 +664,7 @@ export class Modal {
652
664
  }
653
665
  // Card modals are inset from edges (rounded corners), no safe areas needed
654
666
  if (isCardModal) {
667
+ console.log('[setInitialSafeAreaOverrides] Card modal path - setting all to 0');
655
668
  style.setProperty('--ion-safe-area-top', '0px');
656
669
  style.setProperty('--ion-safe-area-bottom', '0px');
657
670
  style.setProperty('--ion-safe-area-left', '0px');
@@ -660,6 +673,7 @@ export class Modal {
660
673
  }
661
674
  // Phone modals are fullscreen, need all safe areas
662
675
  if (!isTablet) {
676
+ console.log('[setInitialSafeAreaOverrides] Phone modal path - not setting any overrides');
663
677
  // Don't set any overrides - inherit from :root
664
678
  return;
665
679
  }
@@ -668,11 +682,14 @@ export class Modal {
668
682
  const computedStyle = getComputedStyle(this.el);
669
683
  const width = computedStyle.getPropertyValue('--width').trim();
670
684
  const height = computedStyle.getPropertyValue('--height').trim();
685
+ console.log('[setInitialSafeAreaOverrides] Tablet modal path', { width, height });
671
686
  if (width === '100%' && height === '100%') {
687
+ console.log('[setInitialSafeAreaOverrides] Fullscreen tablet modal - not setting overrides');
672
688
  // Fullscreen modal - need safe areas, don't override
673
689
  return;
674
690
  }
675
691
  // Centered dialog - zero out all safe areas
692
+ console.log('[setInitialSafeAreaOverrides] Centered tablet dialog - setting all to 0');
676
693
  style.setProperty('--ion-safe-area-top', '0px');
677
694
  style.setProperty('--ion-safe-area-bottom', '0px');
678
695
  style.setProperty('--ion-safe-area-left', '0px');
@@ -685,22 +702,50 @@ export class Modal {
685
702
  */
686
703
  updateSafeAreaOverrides() {
687
704
  const wrapper = this.wrapperEl;
688
- if (!wrapper)
705
+ if (!wrapper) {
706
+ console.log('[updateSafeAreaOverrides] No wrapper element, returning early');
689
707
  return;
708
+ }
690
709
  const rect = wrapper.getBoundingClientRect();
691
710
  const threshold = 2; // Account for subpixel rendering
692
711
  const touchingTop = rect.top <= threshold;
693
712
  const touchingBottom = rect.bottom >= window.innerHeight - threshold;
694
713
  const touchingLeft = rect.left <= threshold;
695
714
  const touchingRight = rect.right >= window.innerWidth - threshold;
715
+ console.log('[updateSafeAreaOverrides] called', {
716
+ isSheetModal: this.isSheetModal,
717
+ rect: { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right },
718
+ innerHeight: window.innerHeight,
719
+ innerWidth: window.innerWidth,
720
+ threshold,
721
+ touchingTop,
722
+ touchingBottom,
723
+ touchingLeft,
724
+ touchingRight,
725
+ bottomCalc: `${rect.bottom} >= ${window.innerHeight - threshold} = ${touchingBottom}`,
726
+ });
696
727
  // Remove override when touching edge (allow inheritance), set to 0 when not touching
697
728
  const style = this.el.style;
729
+ const actions = {
730
+ top: touchingTop ? 'removeProperty' : 'setProperty 0px',
731
+ bottom: touchingBottom ? 'removeProperty' : 'setProperty 0px',
732
+ left: touchingLeft ? 'removeProperty' : 'setProperty 0px',
733
+ right: touchingRight ? 'removeProperty' : 'setProperty 0px',
734
+ };
735
+ console.log('[updateSafeAreaOverrides] actions:', actions);
698
736
  touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
699
737
  touchingBottom
700
738
  ? style.removeProperty('--ion-safe-area-bottom')
701
739
  : style.setProperty('--ion-safe-area-bottom', '0px');
702
740
  touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
703
741
  touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
742
+ // Log the actual style values after setting
743
+ console.log('[updateSafeAreaOverrides] after setting, inline styles:', {
744
+ top: style.getPropertyValue('--ion-safe-area-top'),
745
+ bottom: style.getPropertyValue('--ion-safe-area-bottom'),
746
+ left: style.getPropertyValue('--ion-safe-area-left'),
747
+ right: style.getPropertyValue('--ion-safe-area-right'),
748
+ });
704
749
  }
705
750
  sheetOnDismiss() {
706
751
  /**
@@ -1047,20 +1092,20 @@ export class Modal {
1047
1092
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1048
1093
  const isHandleCycle = handleBehavior === 'cycle';
1049
1094
  const isSheetModalWithHandle = isSheetModal && showHandle;
1050
- return (h(Host, Object.assign({ key: 'e80cac8f52f1056eaf63112eafcfdcd029aa31e8', "no-router": true,
1095
+ return (h(Host, Object.assign({ key: '8659056ce9de06c66d65946fe4af939e298d133c', "no-router": true,
1051
1096
  // Allow the modal to be navigable when the handle is focusable
1052
1097
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
1053
1098
  zIndex: `${20000 + this.overlayIndex}`,
1054
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'dcc24085006dd1e41c47a55031d78bd55ddeb622', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '74c4ff6bdc87f8c29ee8ba0592c97db2c597d876', class: "modal-shadow" }), h("div", Object.assign({ key: '79f3b01bdadc0d830e5707026aa2055d62714274',
1099
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e4f287871798d7aa660c8aea3a81deeeb540812d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '6f3d8d504e080093ba9e5089e5de76feaa13cf38', class: "modal-shadow" }), h("div", Object.assign({ key: '6ad0b4d97e0c0bad56689e457f08819ad857a0b4',
1055
1100
  /*
1056
1101
  role and aria-modal must be used on the
1057
1102
  same element. They must also be set inside the
1058
1103
  shadow DOM otherwise ion-button will not be highlighted
1059
1104
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1060
1105
  */
1061
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'b250920bad86e23269f900353d531975a95662af', class: "modal-handle",
1106
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e5a9d74a112e315240b307042ad16d8e6ff2c714', class: "modal-handle",
1062
1107
  // Prevents the handle from receiving keyboard focus when it does not cycle
1063
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '2ba83c0f0a92784cac127c6581f12ea06b201b97', onSlotchange: this.onSlotChange }))));
1108
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '66f342587b6eaa5801397d7385ec3dc783bf8f55', onSlotchange: this.onSlotChange }))));
1064
1109
  }
1065
1110
  static get is() { return "ion-modal"; }
1066
1111
  static get encapsulation() { return "shadow"; }
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-12-26T21:54:23",
2
+ "timestamp": "2025-12-29T14:27:11",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.0",
@@ -1692,6 +1692,7 @@ const Modal = class {
1692
1692
  }
1693
1693
  onWindowResize() {
1694
1694
  // Update safe-area overrides for all modal types on resize
1695
+ console.log('[onWindowResize] calling updateSafeAreaOverrides');
1695
1696
  this.updateSafeAreaOverrides();
1696
1697
  // Only handle view transition for iOS card modals when no custom animations are provided
1697
1698
  if (getIonMode(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -1939,6 +1940,7 @@ const Modal = class {
1939
1940
  this.initSwipeToClose();
1940
1941
  }
1941
1942
  // Now that animation is complete, update safe-area based on actual position
1943
+ console.log('[present animation complete] calling updateSafeAreaOverrides');
1942
1944
  this.updateSafeAreaOverrides();
1943
1945
  // Initialize view transition listener for iOS card modals
1944
1946
  this.initViewTransitionListener();
@@ -2101,8 +2103,18 @@ const Modal = class {
2101
2103
  const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
2102
2104
  const isCardModal = presentingElement !== undefined;
2103
2105
  const isTablet = window.innerWidth >= 768;
2106
+ console.log('[setInitialSafeAreaOverrides] called', {
2107
+ isSheetModal,
2108
+ isCardModal,
2109
+ isTablet,
2110
+ breakpoints: this.breakpoints,
2111
+ initialBreakpoint: this.initialBreakpoint,
2112
+ presentingElement: !!presentingElement,
2113
+ innerWidth: window.innerWidth,
2114
+ });
2104
2115
  // Sheet modals: always touch bottom, top depends on breakpoint
2105
2116
  if (isSheetModal) {
2117
+ console.log('[setInitialSafeAreaOverrides] Sheet modal path - setting top/left/right to 0, leaving bottom alone');
2106
2118
  style.setProperty('--ion-safe-area-top', '0px');
2107
2119
  // Don't override bottom - sheet always touches bottom
2108
2120
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2111,6 +2123,7 @@ const Modal = class {
2111
2123
  }
2112
2124
  // Card modals are inset from edges (rounded corners), no safe areas needed
2113
2125
  if (isCardModal) {
2126
+ console.log('[setInitialSafeAreaOverrides] Card modal path - setting all to 0');
2114
2127
  style.setProperty('--ion-safe-area-top', '0px');
2115
2128
  style.setProperty('--ion-safe-area-bottom', '0px');
2116
2129
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2119,6 +2132,7 @@ const Modal = class {
2119
2132
  }
2120
2133
  // Phone modals are fullscreen, need all safe areas
2121
2134
  if (!isTablet) {
2135
+ console.log('[setInitialSafeAreaOverrides] Phone modal path - not setting any overrides');
2122
2136
  // Don't set any overrides - inherit from :root
2123
2137
  return;
2124
2138
  }
@@ -2127,11 +2141,14 @@ const Modal = class {
2127
2141
  const computedStyle = getComputedStyle(this.el);
2128
2142
  const width = computedStyle.getPropertyValue('--width').trim();
2129
2143
  const height = computedStyle.getPropertyValue('--height').trim();
2144
+ console.log('[setInitialSafeAreaOverrides] Tablet modal path', { width, height });
2130
2145
  if (width === '100%' && height === '100%') {
2146
+ console.log('[setInitialSafeAreaOverrides] Fullscreen tablet modal - not setting overrides');
2131
2147
  // Fullscreen modal - need safe areas, don't override
2132
2148
  return;
2133
2149
  }
2134
2150
  // Centered dialog - zero out all safe areas
2151
+ console.log('[setInitialSafeAreaOverrides] Centered tablet dialog - setting all to 0');
2135
2152
  style.setProperty('--ion-safe-area-top', '0px');
2136
2153
  style.setProperty('--ion-safe-area-bottom', '0px');
2137
2154
  style.setProperty('--ion-safe-area-left', '0px');
@@ -2144,22 +2161,50 @@ const Modal = class {
2144
2161
  */
2145
2162
  updateSafeAreaOverrides() {
2146
2163
  const wrapper = this.wrapperEl;
2147
- if (!wrapper)
2164
+ if (!wrapper) {
2165
+ console.log('[updateSafeAreaOverrides] No wrapper element, returning early');
2148
2166
  return;
2167
+ }
2149
2168
  const rect = wrapper.getBoundingClientRect();
2150
2169
  const threshold = 2; // Account for subpixel rendering
2151
2170
  const touchingTop = rect.top <= threshold;
2152
2171
  const touchingBottom = rect.bottom >= window.innerHeight - threshold;
2153
2172
  const touchingLeft = rect.left <= threshold;
2154
2173
  const touchingRight = rect.right >= window.innerWidth - threshold;
2174
+ console.log('[updateSafeAreaOverrides] called', {
2175
+ isSheetModal: this.isSheetModal,
2176
+ rect: { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right },
2177
+ innerHeight: window.innerHeight,
2178
+ innerWidth: window.innerWidth,
2179
+ threshold,
2180
+ touchingTop,
2181
+ touchingBottom,
2182
+ touchingLeft,
2183
+ touchingRight,
2184
+ bottomCalc: `${rect.bottom} >= ${window.innerHeight - threshold} = ${touchingBottom}`,
2185
+ });
2155
2186
  // Remove override when touching edge (allow inheritance), set to 0 when not touching
2156
2187
  const style = this.el.style;
2188
+ const actions = {
2189
+ top: touchingTop ? 'removeProperty' : 'setProperty 0px',
2190
+ bottom: touchingBottom ? 'removeProperty' : 'setProperty 0px',
2191
+ left: touchingLeft ? 'removeProperty' : 'setProperty 0px',
2192
+ right: touchingRight ? 'removeProperty' : 'setProperty 0px',
2193
+ };
2194
+ console.log('[updateSafeAreaOverrides] actions:', actions);
2157
2195
  touchingTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
2158
2196
  touchingBottom
2159
2197
  ? style.removeProperty('--ion-safe-area-bottom')
2160
2198
  : style.setProperty('--ion-safe-area-bottom', '0px');
2161
2199
  touchingLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
2162
2200
  touchingRight ? style.removeProperty('--ion-safe-area-right') : style.setProperty('--ion-safe-area-right', '0px');
2201
+ // Log the actual style values after setting
2202
+ console.log('[updateSafeAreaOverrides] after setting, inline styles:', {
2203
+ top: style.getPropertyValue('--ion-safe-area-top'),
2204
+ bottom: style.getPropertyValue('--ion-safe-area-bottom'),
2205
+ left: style.getPropertyValue('--ion-safe-area-left'),
2206
+ right: style.getPropertyValue('--ion-safe-area-right'),
2207
+ });
2163
2208
  }
2164
2209
  sheetOnDismiss() {
2165
2210
  /**
@@ -2498,20 +2543,20 @@ const Modal = class {
2498
2543
  const isCardModal = presentingElement !== undefined && mode === 'ios';
2499
2544
  const isHandleCycle = handleBehavior === 'cycle';
2500
2545
  const isSheetModalWithHandle = isSheetModal && showHandle;
2501
- return (h(Host, Object.assign({ key: 'e80cac8f52f1056eaf63112eafcfdcd029aa31e8', "no-router": true,
2546
+ return (h(Host, Object.assign({ key: '8659056ce9de06c66d65946fe4af939e298d133c', "no-router": true,
2502
2547
  // Allow the modal to be navigable when the handle is focusable
2503
2548
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
2504
2549
  zIndex: `${20000 + this.overlayIndex}`,
2505
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'dcc24085006dd1e41c47a55031d78bd55ddeb622', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '74c4ff6bdc87f8c29ee8ba0592c97db2c597d876', class: "modal-shadow" }), h("div", Object.assign({ key: '79f3b01bdadc0d830e5707026aa2055d62714274',
2550
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), h("ion-backdrop", { key: 'e4f287871798d7aa660c8aea3a81deeeb540812d', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '6f3d8d504e080093ba9e5089e5de76feaa13cf38', class: "modal-shadow" }), h("div", Object.assign({ key: '6ad0b4d97e0c0bad56689e457f08819ad857a0b4',
2506
2551
  /*
2507
2552
  role and aria-modal must be used on the
2508
2553
  same element. They must also be set inside the
2509
2554
  shadow DOM otherwise ion-button will not be highlighted
2510
2555
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
2511
2556
  */
2512
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'b250920bad86e23269f900353d531975a95662af', class: "modal-handle",
2557
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'e5a9d74a112e315240b307042ad16d8e6ff2c714', class: "modal-handle",
2513
2558
  // Prevents the handle from receiving keyboard focus when it does not cycle
2514
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '2ba83c0f0a92784cac127c6581f12ea06b201b97', onSlotchange: this.onSlotChange }))));
2559
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), h("slot", { key: '66f342587b6eaa5801397d7385ec3dc783bf8f55', onSlotchange: this.onSlotChange }))));
2515
2560
  }
2516
2561
  get el() { return getElement(this); }
2517
2562
  static get watchers() { return {