@@ -33,10 +33,10 @@ index 790c8d2..7c71111 100644
3333 };
3434 /**
3535diff --git a/node_modules/@ionic/core/components/item.js b/node_modules/@ionic/core/components/item.js
36- index 3374c22..f2e0b6d 100644
36+ index ec9ab81..a384b35 100644
3737--- a/node_modules/@ionic/core/components/item.js
3838+++ b/node_modules/@ionic/core/components/item.js
39- @@ -119 ,7 +119 ,7 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
39+ @@ -139 ,7 +139 ,7 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
4040 // inputs, then those need to individually get each click
4141 hasCover() {
4242 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -46,7 +46,7 @@ index 3374c22..f2e0b6d 100644
4646 // If the item has an href or button property it will render a native
4747 // anchor or button that is clickable
4848diff --git a/node_modules/@ionic/core/components/popover.js b/node_modules/@ionic/core/components/popover.js
49- index 624a909..2598584 100644
49+ index 56b1107..560b1d6 100644
5050--- a/node_modules/@ionic/core/components/popover.js
5151+++ b/node_modules/@ionic/core/components/popover.js
5252@@ -763,8 +763,10 @@ const iosEnterAnimation = (baseEl, opts) => {
@@ -75,10 +75,10 @@ index 624a909..2598584 100644
7575 const root = getElementRoot(baseEl);
7676 const contentEl = root.querySelector('.popover-content');
7777 const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
78- diff --git a/node_modules/@ionic/core/dist/cjs/input-shims-D1Mfgd4s .js b/node_modules/@ionic/core/dist/cjs/input-shims-D1Mfgd4s .js
79- index 337ca61..6dbb29c 100644
80- --- a/node_modules/@ionic/core/dist/cjs/input-shims-D1Mfgd4s .js
81- +++ b/node_modules/@ionic/core/dist/cjs/input-shims-D1Mfgd4s .js
78+ diff --git a/node_modules/@ionic/core/dist/cjs/input-shims-CLI_OrmU .js b/node_modules/@ionic/core/dist/cjs/input-shims-CLI_OrmU .js
79+ index 7850318..3968e45 100644
80+ --- a/node_modules/@ionic/core/dist/cjs/input-shims-CLI_OrmU .js
81+ +++ b/node_modules/@ionic/core/dist/cjs/input-shims-CLI_OrmU .js
8282@@ -340,7 +340,8 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
8383 const focusOut = () => {
8484 hasKeyboardBeenPresentedForTextField = false;
@@ -110,10 +110,10 @@ index 337ca61..6dbb29c 100644
110110 };
111111 /**
112112diff --git a/node_modules/@ionic/core/dist/cjs/ion-item_8.cjs.entry.js b/node_modules/@ionic/core/dist/cjs/ion-item_8.cjs.entry.js
113- index 261bfc2..f6782ff 100644
113+ index 4ce05a4..cc5562b 100644
114114--- a/node_modules/@ionic/core/dist/cjs/ion-item_8.cjs.entry.js
115115+++ b/node_modules/@ionic/core/dist/cjs/ion-item_8.cjs.entry.js
116- @@ -116 ,7 +116 ,7 @@ const Item = class {
116+ @@ -137 ,7 +137 ,7 @@ const Item = class {
117117 // inputs, then those need to individually get each click
118118 hasCover() {
119119 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -123,10 +123,10 @@ index 261bfc2..f6782ff 100644
123123 // If the item has an href or button property it will render a native
124124 // anchor or button that is clickable
125125diff --git a/node_modules/@ionic/core/dist/cjs/ion-popover.cjs.entry.js b/node_modules/@ionic/core/dist/cjs/ion-popover.cjs.entry.js
126- index c979cff..4d26452 100644
126+ index 2d6c773..1c92c34 100644
127127--- a/node_modules/@ionic/core/dist/cjs/ion-popover.cjs.entry.js
128128+++ b/node_modules/@ionic/core/dist/cjs/ion-popover.cjs.entry.js
129- @@ -765 ,8 +765 ,10 @@ const iosEnterAnimation = (baseEl, opts) => {
129+ @@ -766 ,8 +766 ,10 @@ const iosEnterAnimation = (baseEl, opts) => {
130130 const { event: ev, size, trigger, reference, side, align } = opts;
131131 const doc = baseEl.ownerDocument;
132132 const isRTL = doc.dir === 'rtl';
@@ -139,7 +139,7 @@ index c979cff..4d26452 100644
139139 const root = helpers.getElementRoot(baseEl);
140140 const contentEl = root.querySelector('.popover-content');
141141 const arrowEl = root.querySelector('.popover-arrow');
142- @@ -886 ,8 +888 ,10 @@ const mdEnterAnimation = (baseEl, opts) => {
142+ @@ -887 ,8 +889 ,10 @@ const mdEnterAnimation = (baseEl, opts) => {
143143 const { event: ev, size, trigger, reference, side, align } = opts;
144144 const doc = baseEl.ownerDocument;
145145 const isRTL = doc.dir === 'rtl';
@@ -153,10 +153,10 @@ index c979cff..4d26452 100644
153153 const contentEl = root.querySelector('.popover-content');
154154 const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
155155diff --git a/node_modules/@ionic/core/dist/collection/components/item/item.js b/node_modules/@ionic/core/dist/collection/components/item/item.js
156- index efaef55..3411553 100644
156+ index 5bcc20e..ba8f46f 100644
157157--- a/node_modules/@ionic/core/dist/collection/components/item/item.js
158158+++ b/node_modules/@ionic/core/dist/collection/components/item/item.js
159- @@ -119 ,7 +119 ,7 @@ export class Item {
159+ @@ -139 ,7 +139 ,7 @@ export class Item {
160160 // inputs, then those need to individually get each click
161161 hasCover() {
162162 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -233,22 +233,21 @@ index 1a8303d..a55e85b 100644
233233 };
234234 };
235235 /**
236- diff --git a/node_modules/@ionic/core/dist/esm/input-shims-C3lNp93k .js b/node_modules/@ionic/core/dist/esm/input-shims-C3lNp93k .js
237- index 3d2281c..0279722 100644
238- --- a/node_modules/@ionic/core/dist/esm/input-shims-C3lNp93k .js
239- +++ b/node_modules/@ionic/core/dist/esm/input-shims-C3lNp93k .js
240- @@ -338,8 +338,8 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
236+ diff --git a/node_modules/@ionic/core/dist/esm/input-shims-C4KDnhxb .js b/node_modules/@ionic/core/dist/esm/input-shims-C4KDnhxb .js
237+ index 24a2d32..fdfac3d 100644
238+ --- a/node_modules/@ionic/core/dist/esm/input-shims-C4KDnhxb .js
239+ +++ b/node_modules/@ionic/core/dist/esm/input-shims-C4KDnhxb .js
240+ @@ -338,7 +338,8 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
241241 const focusOut = () => {
242242 hasKeyboardBeenPresentedForTextField = false;
243243 win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
244244- componentEl.removeEventListener('focusout', focusOut);
245- - };
246245+ // Patched: Attach focusin/focusout events to inputEl instead of componentEl to allow focusing buttons inside <ion-input>.
247- + inputEl.removeEventListener('focusout', focusOut); };
246+ + inputEl.removeEventListener('focusout', focusOut);
247+ };
248248 /**
249249 * When the input is about to receive
250- * focus, we need to move it to prevent
251- @@ -358,13 +358,15 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
250+ @@ -358,13 +359,15 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
252251 }
253252 jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
254253 win === null || win === void 0 ? void 0 : win.addEventListener('ionKeyboardDidShow', keyboardShow);
@@ -269,10 +268,10 @@ index 3d2281c..0279722 100644
269268 };
270269 /**
271270diff --git a/node_modules/@ionic/core/dist/esm/ion-item_8.entry.js b/node_modules/@ionic/core/dist/esm/ion-item_8.entry.js
272- index e6253dd..ea76c1d 100644
271+ index 215918e..b83a6b1 100644
273272--- a/node_modules/@ionic/core/dist/esm/ion-item_8.entry.js
274273+++ b/node_modules/@ionic/core/dist/esm/ion-item_8.entry.js
275- @@ -114 ,7 +114 ,7 @@ const Item = class {
274+ @@ -135 ,7 +135 ,7 @@ const Item = class {
276275 // inputs, then those need to individually get each click
277276 hasCover() {
278277 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -282,10 +281,10 @@ index e6253dd..ea76c1d 100644
282281 // If the item has an href or button property it will render a native
283282 // anchor or button that is clickable
284283diff --git a/node_modules/@ionic/core/dist/esm/ion-popover.entry.js b/node_modules/@ionic/core/dist/esm/ion-popover.entry.js
285- index 95cd830..c421c03 100644
284+ index e651930..a5147b6 100644
286285--- a/node_modules/@ionic/core/dist/esm/ion-popover.entry.js
287286+++ b/node_modules/@ionic/core/dist/esm/ion-popover.entry.js
288- @@ -763 ,8 +763 ,10 @@ const iosEnterAnimation = (baseEl, opts) => {
287+ @@ -764 ,8 +764 ,10 @@ const iosEnterAnimation = (baseEl, opts) => {
289288 const { event: ev, size, trigger, reference, side, align } = opts;
290289 const doc = baseEl.ownerDocument;
291290 const isRTL = doc.dir === 'rtl';
@@ -298,7 +297,7 @@ index 95cd830..c421c03 100644
298297 const root = getElementRoot(baseEl);
299298 const contentEl = root.querySelector('.popover-content');
300299 const arrowEl = root.querySelector('.popover-arrow');
301- @@ -884 ,8 +886 ,10 @@ const mdEnterAnimation = (baseEl, opts) => {
300+ @@ -885 ,8 +887 ,10 @@ const mdEnterAnimation = (baseEl, opts) => {
302301 const { event: ev, size, trigger, reference, side, align } = opts;
303302 const doc = baseEl.ownerDocument;
304303 const isRTL = doc.dir === 'rtl';
@@ -312,10 +311,10 @@ index 95cd830..c421c03 100644
312311 const contentEl = root.querySelector('.popover-content');
313312 const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
314313diff --git a/node_modules/@ionic/core/hydrate/index.js b/node_modules/@ionic/core/hydrate/index.js
315- index 79f3a45..c0920ba 100644
314+ index e83d43d..65f0732 100644
316315--- a/node_modules/@ionic/core/hydrate/index.js
317316+++ b/node_modules/@ionic/core/hydrate/index.js
318- @@ -17775 ,7 +17775 ,7 @@ class Item {
317+ @@ -18034 ,7 +18034 ,7 @@ class Item {
319318 // inputs, then those need to individually get each click
320319 hasCover() {
321320 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -324,7 +323,7 @@ index 79f3a45..c0920ba 100644
324323 }
325324 // If the item has an href or button property it will render a native
326325 // anchor or button that is clickable
327- @@ -26611 ,8 +26611 ,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
326+ @@ -26948 ,8 +26948 ,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
328327 const { event: ev, size, trigger, reference, side, align } = opts;
329328 const doc = baseEl.ownerDocument;
330329 const isRTL = doc.dir === 'rtl';
@@ -337,7 +336,7 @@ index 79f3a45..c0920ba 100644
337336 const root = getElementRoot(baseEl);
338337 const contentEl = root.querySelector('.popover-content');
339338 const arrowEl = root.querySelector('.popover-arrow');
340- @@ -26732 ,8 +26734 ,10 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
339+ @@ -27069 ,8 +27071 ,10 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
341340 const { event: ev, size, trigger, reference, side, align } = opts;
342341 const doc = baseEl.ownerDocument;
343342 const isRTL = doc.dir === 'rtl';
@@ -351,10 +350,10 @@ index 79f3a45..c0920ba 100644
351350 const contentEl = root.querySelector('.popover-content');
352351 const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
353352diff --git a/node_modules/@ionic/core/hydrate/index.mjs b/node_modules/@ionic/core/hydrate/index.mjs
354- index 4ff4fb0..f05fe59 100644
353+ index 7dab4fc..08679d7 100644
355354--- a/node_modules/@ionic/core/hydrate/index.mjs
356355+++ b/node_modules/@ionic/core/hydrate/index.mjs
357- @@ -17773 ,7 +17773 ,7 @@ class Item {
356+ @@ -18032 ,7 +18032 ,7 @@ class Item {
358357 // inputs, then those need to individually get each click
359358 hasCover() {
360359 const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
@@ -363,7 +362,7 @@ index 4ff4fb0..f05fe59 100644
363362 }
364363 // If the item has an href or button property it will render a native
365364 // anchor or button that is clickable
366- @@ -26609 ,8 +26609 ,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
365+ @@ -26946 ,8 +26946 ,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
367366 const { event: ev, size, trigger, reference, side, align } = opts;
368367 const doc = baseEl.ownerDocument;
369368 const isRTL = doc.dir === 'rtl';
@@ -376,3 +375,16 @@ index 4ff4fb0..f05fe59 100644
376375 const root = getElementRoot(baseEl);
377376 const contentEl = root.querySelector('.popover-content');
378377 const arrowEl = root.querySelector('.popover-arrow');
378+ @@ -27067,8 +27069,10 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
379+ const { event: ev, size, trigger, reference, side, align } = opts;
380+ const doc = baseEl.ownerDocument;
381+ const isRTL = doc.dir === 'rtl';
382+ - const bodyWidth = doc.defaultView.innerWidth;
383+ - const bodyHeight = doc.defaultView.innerHeight;
384+ + // Patched: use document.body.clientXXX instead of doc.defaultView.innerXXXX because the latter doesn't return the correct
385+ + // dimensions when the `zoom` CSS property is being used.
386+ + const bodyWidth = document.body.clientWidth;
387+ + const bodyHeight = document.body.clientHeight;
388+ const root = getElementRoot(baseEl);
389+ const contentEl = root.querySelector('.popover-content');
390+ const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);
0 commit comments