@ionic/core 7.7.5-dev.11710260658.1fc29a6c → 7.7.5-dev.11710347256.1954cae9

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 (101) hide show
  1. package/components/hardware-back-button.js +3 -3
  2. package/components/ion-app.js +4 -4
  3. package/components/ion-menu.js +3 -3
  4. package/components/overlays.js +15 -22
  5. package/components/picker-column-internal.js +8 -4
  6. package/dist/cjs/{hardware-back-button-1d378ca9.js → hardware-back-button-b84c0758.js} +3 -3
  7. package/dist/cjs/{index-04f3624f.js → index-676a122f.js} +1 -1
  8. package/dist/cjs/index.cjs.js +3 -3
  9. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  10. package/dist/cjs/ion-alert.cjs.entry.js +2 -2
  11. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  12. package/dist/cjs/ion-datetime_3.cjs.entry.js +2 -2
  13. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  14. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  15. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  16. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +8 -4
  17. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  18. package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  20. package/dist/cjs/{overlays-dd5e1ec9.js → overlays-d32575f9.js} +15 -22
  21. package/dist/collection/components/app/app.js +4 -4
  22. package/dist/collection/components/menu/menu.js +3 -3
  23. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  24. package/dist/collection/utils/hardware-back-button.js +2 -2
  25. package/dist/collection/utils/overlays.js +15 -22
  26. package/dist/collection/utils/test/overlays/overlays.spec.js +1 -1
  27. package/dist/docs.json +1 -1
  28. package/dist/esm/{hardware-back-button-adcc28d5.js → hardware-back-button-36f7543b.js} +3 -3
  29. package/dist/esm/{index-a3478902.js → index-314a9349.js} +1 -1
  30. package/dist/esm/index.js +3 -3
  31. package/dist/esm/ion-action-sheet.entry.js +2 -2
  32. package/dist/esm/ion-alert.entry.js +2 -2
  33. package/dist/esm/ion-app_8.entry.js +5 -5
  34. package/dist/esm/ion-datetime_3.entry.js +2 -2
  35. package/dist/esm/ion-loading.entry.js +2 -2
  36. package/dist/esm/ion-menu_3.entry.js +5 -5
  37. package/dist/esm/ion-modal.entry.js +2 -2
  38. package/dist/esm/ion-picker-column-internal.entry.js +8 -4
  39. package/dist/esm/ion-popover.entry.js +2 -2
  40. package/dist/esm/ion-select_3.entry.js +2 -2
  41. package/dist/esm/ion-toast.entry.js +2 -2
  42. package/dist/esm/{overlays-f2c5fc7a.js → overlays-d99a4d6a.js} +15 -22
  43. package/dist/esm-es5/hardware-back-button-36f7543b.js +4 -0
  44. package/dist/esm-es5/{index-a3478902.js → index-314a9349.js} +1 -1
  45. package/dist/esm-es5/index.js +1 -1
  46. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  47. package/dist/esm-es5/ion-alert.entry.js +1 -1
  48. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  49. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  50. package/dist/esm-es5/ion-loading.entry.js +1 -1
  51. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  52. package/dist/esm-es5/ion-modal.entry.js +1 -1
  53. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  54. package/dist/esm-es5/ion-popover.entry.js +1 -1
  55. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  56. package/dist/esm-es5/ion-toast.entry.js +1 -1
  57. package/dist/esm-es5/overlays-d99a4d6a.js +4 -0
  58. package/dist/ionic/index.esm.js +1 -1
  59. package/dist/ionic/ionic.esm.js +1 -1
  60. package/dist/ionic/{p-9854082a.system.entry.js → p-04721936.system.entry.js} +1 -1
  61. package/dist/ionic/{p-38cda7af.entry.js → p-08a5d8eb.entry.js} +1 -1
  62. package/dist/ionic/{p-8f127180.entry.js → p-09fc100a.entry.js} +1 -1
  63. package/dist/ionic/{p-faa9c806.entry.js → p-3377236e.entry.js} +1 -1
  64. package/dist/ionic/{p-49ace8c0.entry.js → p-36a80e5c.entry.js} +1 -1
  65. package/dist/ionic/{p-209fac74.entry.js → p-381612c1.entry.js} +1 -1
  66. package/dist/ionic/{p-05dc41cc.system.js → p-45dad85c.system.js} +1 -1
  67. package/dist/ionic/{p-56872eba.system.entry.js → p-4830fae8.system.entry.js} +1 -1
  68. package/dist/ionic/{p-33d70d46.js → p-49bda910.js} +1 -1
  69. package/dist/ionic/{p-e19a78e3.system.entry.js → p-4dd988d7.system.entry.js} +1 -1
  70. package/dist/ionic/p-4f710c57.system.js +4 -0
  71. package/dist/ionic/p-60c9fd9e.system.js +1 -1
  72. package/dist/ionic/p-6a0a3e18.system.entry.js +4 -0
  73. package/dist/ionic/p-7f865669.entry.js +4 -0
  74. package/dist/ionic/{p-defe82a5.entry.js → p-8ce6d551.entry.js} +1 -1
  75. package/dist/ionic/{p-0a0759ec.system.entry.js → p-9074a84e.system.entry.js} +1 -1
  76. package/dist/ionic/{p-0e7c8334.system.entry.js → p-91ff5a1a.system.entry.js} +1 -1
  77. package/dist/ionic/p-b0ccd173.system.entry.js +4 -0
  78. package/dist/ionic/{p-156ba1f2.system.entry.js → p-b13b7128.system.entry.js} +1 -1
  79. package/dist/ionic/{p-e8cd9b25.entry.js → p-b1ecb683.entry.js} +1 -1
  80. package/dist/ionic/{p-45aca628.system.js → p-b278184d.system.js} +1 -1
  81. package/dist/ionic/p-c711b464.entry.js +4 -0
  82. package/dist/ionic/{p-61505c72.system.js → p-cf52f8a2.system.js} +1 -1
  83. package/dist/ionic/{p-775ebdb4.system.entry.js → p-cf88a096.system.entry.js} +1 -1
  84. package/dist/ionic/p-d899b844.js +4 -0
  85. package/dist/ionic/{p-8ac5c948.js → p-dbfa5f42.js} +1 -1
  86. package/dist/ionic/{p-9ae5e5ee.system.entry.js → p-de0e21c6.system.entry.js} +1 -1
  87. package/dist/ionic/{p-c764f978.entry.js → p-e447e552.entry.js} +1 -1
  88. package/dist/ionic/{p-f3e0a78c.system.entry.js → p-ef269a56.system.entry.js} +1 -1
  89. package/dist/ionic/p-fd7d50f5.entry.js +4 -0
  90. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  91. package/hydrate/index.js +26 -29
  92. package/package.json +1 -1
  93. package/dist/esm-es5/hardware-back-button-adcc28d5.js +0 -4
  94. package/dist/esm-es5/overlays-f2c5fc7a.js +0 -4
  95. package/dist/ionic/p-16ad3c38.entry.js +0 -4
  96. package/dist/ionic/p-2bc2b22c.system.entry.js +0 -4
  97. package/dist/ionic/p-6e7d3ff4.system.entry.js +0 -4
  98. package/dist/ionic/p-84a2dcfa.system.js +0 -4
  99. package/dist/ionic/p-9c253805.js +0 -4
  100. package/dist/ionic/p-c05202a7.entry.js +0 -4
  101. package/dist/ionic/p-e54e332c.entry.js +0 -4
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
- import { shoudUseCloseWatcher } from "../../utils/hardware-back-button";
5
+ import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
6
6
  import { printIonWarning } from "../../utils/logging/index";
7
7
  import { isPlatform } from "../../utils/platform";
8
8
  import { config } from "../../global/config";
@@ -27,7 +27,7 @@ export class App {
27
27
  import('../../utils/input-shims/input-shims').then((module) => module.startInputShims(config, platform));
28
28
  }
29
29
  const hardwareBackButtonModule = await import('../../utils/hardware-back-button');
30
- const supportsHardwareBackButtonEvents = isHybrid || shoudUseCloseWatcher();
30
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
31
31
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
32
32
  hardwareBackButtonModule.startHardwareBackButton();
33
33
  }
@@ -36,7 +36,7 @@ export class App {
36
36
  * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
37
37
  * then the close watcher will not be used.
38
38
  */
39
- if (shoudUseCloseWatcher()) {
39
+ if (shouldUseCloseWatcher()) {
40
40
  printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
41
41
  }
42
42
  hardwareBackButtonModule.blockHardwareBackButton();
@@ -65,7 +65,7 @@ export class App {
65
65
  }
66
66
  render() {
67
67
  const mode = getIonMode(this);
68
- return (h(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
68
+ return (h(Host, { key: '0ac01df6d90d8185017e1f8e8f02cdf407e6c94b', class: {
69
69
  [mode]: true,
70
70
  'ion-page': true,
71
71
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -4,7 +4,7 @@
4
4
  import { Build, Host, h } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
7
- import { shoudUseCloseWatcher } from "../../utils/hardware-back-button";
7
+ import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
8
8
  import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from "../../utils/helpers";
9
9
  import { menuController } from "../../utils/menu-controller/index";
10
10
  import { getPresentedOverlay } from "../../utils/overlays";
@@ -601,13 +601,13 @@ export class Menu {
601
601
  * the ionBackButton listener in the menu controller
602
602
  * will handle closing the menu when Escape is pressed.
603
603
  */
604
- return (h(Host, { key: 'be7145625a30951e5cc26646f6121ee4fa4c910f', onKeyDown: shoudUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
604
+ return (h(Host, { key: 'c6bf01fd87e31cda09c0c35900cb01ea19d61781', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
605
605
  [mode]: true,
606
606
  [`menu-type-${type}`]: true,
607
607
  'menu-enabled': !disabled,
608
608
  [`menu-side-${side}`]: true,
609
609
  'menu-pane-visible': isPaneVisible,
610
- } }, h("div", { key: 'ecd6e0641ed67691db270190801f7be365a2d121', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: 'aea3780e259f2b3ea84697a509bb7f13fa9531e9' })), h("ion-backdrop", { key: 'be3253506a34c4c00eb1814621c674196b72db46', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
610
+ } }, h("div", { key: '6d818a470a74c11c10554d45d8586436a51f961e', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '3512e444ec6c6bf2a719b1dd713be9a7652f77c9' })), h("ion-backdrop", { key: '618a5316462406fa47929e4dcd5a8e8c9057a418', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
611
611
  }
612
612
  static get is() { return "ion-menu"; }
613
613
  static get encapsulation() { return "shadow"; }
@@ -244,7 +244,11 @@ export class PickerColumnInternal {
244
244
  */
245
245
  componentWillLoad() {
246
246
  const visibleCallback = (entries) => {
247
- const ev = entries[0];
247
+ /**
248
+ * Browsers will sometimes coalesce (group together) multiple IO events into a single callback.
249
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
250
+ */
251
+ const ev = entries[entries.length - 1];
248
252
  if (ev.isIntersecting) {
249
253
  const { activeItem, el } = this;
250
254
  this.isColumnVisible = true;
@@ -333,11 +337,11 @@ export class PickerColumnInternal {
333
337
  * the attribute can be moved to datetime.tsx and set on every
334
338
  * instance of ion-picker-column-internal there instead.
335
339
  */
336
- return (h(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
340
+ return (h(Host, { key: 'd3aacad7f4f7a1203a6c9821165b343def3fadef', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
337
341
  [mode]: true,
338
342
  ['picker-column-active']: isActive,
339
343
  ['picker-column-numeric-input']: numericInput,
340
- }) }, h("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
344
+ }) }, h("div", { key: 'bd94fd7f95916e8388312d8b9eaad52cfe221e2c', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '26caf80bd2ff0ef64a84b8b58b7988c676f36471', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1a9e995fadb6fddd8862a74fa4003c419be7db38', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
341
345
  const isItemDisabled = pickerDisabled || item.disabled || false;
342
346
  {
343
347
  /*
@@ -354,7 +358,7 @@ export class PickerColumnInternal {
354
358
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
355
359
  this.centerPickerItemInView(ev.target, true);
356
360
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
357
- }), h("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
361
+ }), h("div", { key: '19b71b6b54768629815688599be2b6d35678f676', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '33ddc27eac97b297cc6ed69bf780324fc9514bd7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'b91729c45d9d64b928b227d4f529cfccd45a768b', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
358
362
  }
359
363
  static get is() { return "ion-picker-column-internal"; }
360
364
  static get encapsulation() { return "shadow"; }
@@ -15,7 +15,7 @@ import { config } from "../global/config";
15
15
  * moment this file is evaluated which could be
16
16
  * before the config is set.
17
17
  */
18
- export const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
18
+ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
19
19
  /**
20
20
  * When hardwareBackButton: false in config,
21
21
  * we need to make sure we also block the default
@@ -85,7 +85,7 @@ export const startHardwareBackButton = () => {
85
85
  * backbutton event otherwise we may get duplicate
86
86
  * events firing.
87
87
  */
88
- if (shoudUseCloseWatcher()) {
88
+ if (shouldUseCloseWatcher()) {
89
89
  let watcher;
90
90
  const configureWatcher = () => {
91
91
  watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { doc } from "./browser/index";
5
- import { shoudUseCloseWatcher } from "./hardware-back-button";
5
+ import { shouldUseCloseWatcher } from "./hardware-back-button";
6
6
  import { config } from "../global/config";
7
7
  import { getIonMode } from "../global/ionic-global";
8
8
  import { CoreDelegate } from "./framework-delegate";
@@ -365,7 +365,7 @@ const connectListeners = (doc) => {
365
365
  * this behavior will be handled via the ionBackButton
366
366
  * event.
367
367
  */
368
- if (!shoudUseCloseWatcher()) {
368
+ if (!shouldUseCloseWatcher()) {
369
369
  doc.addEventListener('keydown', (ev) => {
370
370
  if (ev.key === 'Escape') {
371
371
  const lastOverlay = getPresentedOverlay(doc);
@@ -813,15 +813,12 @@ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
813
813
  for (let i = overlays.length - 1; i >= 0; i--) {
814
814
  const presentedOverlay = overlays[i];
815
815
  const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
816
- // If next overlay has aria-hidden then all remaining overlays will have it too.
817
- if (nextPresentedOverlay.hasAttribute('aria-hidden')) {
818
- presentedOverlay.setAttribute('aria-hidden', 'true');
819
- /**
820
- * If the next overlay is a Toast this does not have aria-hidden then current overlay
821
- * should not have aria-hidden either so focus can remain in the current overlay.
822
- */
823
- }
824
- else if (nextPresentedOverlay.tagName !== 'ION-TOAST') {
816
+ /**
817
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
818
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
819
+ * should not have aria-hidden either so focus can remain in the current overlay.
820
+ */
821
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
825
822
  presentedOverlay.setAttribute('aria-hidden', 'true');
826
823
  }
827
824
  }
@@ -834,7 +831,6 @@ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
834
831
  const revealOverlaysToScreenReaders = () => {
835
832
  if (doc === undefined)
836
833
  return;
837
- // If there are other overlays presented, unhide the new topmost one from screen readers.
838
834
  const overlays = getPresentedOverlays(doc);
839
835
  for (let i = overlays.length - 1; i >= 0; i--) {
840
836
  const currentOverlay = overlays[i];
@@ -844,16 +840,13 @@ const revealOverlaysToScreenReaders = () => {
844
840
  * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
845
841
  * overlay too so focus can move there since focus is never automatically moved to the Toast.
846
842
  */
847
- if (currentOverlay.tagName === 'ION-TOAST') {
848
- currentOverlay.removeAttribute('aria-hidden');
849
- /**
850
- * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
851
- * since this overlay should always receive focus. As a result, all underlying overlays should still
852
- * be hidden from screen readers.
853
- */
854
- }
855
- else {
856
- currentOverlay.removeAttribute('aria-hidden');
843
+ currentOverlay.removeAttribute('aria-hidden');
844
+ /**
845
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
846
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
847
+ * be hidden from screen readers.
848
+ */
849
+ if (currentOverlay.tagName !== 'ION-TOAST') {
857
850
  break;
858
851
  }
859
852
  }
@@ -151,7 +151,7 @@ describe('aria-hidden on individual overlays', () => {
151
151
  await modalOne.present();
152
152
  expect(modalOne.hasAttribute('aria-hidden')).toEqual(false);
153
153
  });
154
- it('should not hide previous overlay is top-most overlay is toast', async () => {
154
+ it('should not hide previous overlay if top-most overlay is toast', async () => {
155
155
  const page = await newSpecPage({
156
156
  components: [Modal, Toast],
157
157
  html: `
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2024-03-12T16:26:05",
2
+ "timestamp": "2024-03-13T16:29:20",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.12.5",
@@ -17,7 +17,7 @@ import './index-eab5468b.js';
17
17
  * moment this file is evaluated which could be
18
18
  * before the config is set.
19
19
  */
20
- const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
20
+ const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win !== undefined && 'CloseWatcher' in win;
21
21
  /**
22
22
  * When hardwareBackButton: false in config,
23
23
  * we need to make sure we also block the default
@@ -87,7 +87,7 @@ const startHardwareBackButton = () => {
87
87
  * backbutton event otherwise we may get duplicate
88
88
  * events firing.
89
89
  */
90
- if (shoudUseCloseWatcher()) {
90
+ if (shouldUseCloseWatcher()) {
91
91
  let watcher;
92
92
  const configureWatcher = () => {
93
93
  watcher === null || watcher === void 0 ? void 0 : watcher.destroy();
@@ -113,4 +113,4 @@ const startHardwareBackButton = () => {
113
113
  const OVERLAY_BACK_BUTTON_PRIORITY = 100;
114
114
  const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
115
115
 
116
- export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, shoudUseCloseWatcher, startHardwareBackButton };
116
+ export { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, shouldUseCloseWatcher, startHardwareBackButton };
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-a5d50daf.js';
5
- import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-adcc28d5.js';
5
+ import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-36f7543b.js';
6
6
  import { p as printIonWarning } from './index-9b0d46f4.js';
7
7
  import { c as componentOnReady } from './helpers-be245865.js';
8
8
  import { b as getIonMode } from './ionic-global-c836c8c6.js';
package/dist/esm/index.js CHANGED
@@ -11,12 +11,12 @@ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-glo
11
11
  export { c as componentOnReady } from './helpers-be245865.js';
12
12
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-49c88215.js';
13
13
  export { o as openURL } from './theme-01f3f29c.js';
14
- export { m as menuController } from './index-a3478902.js';
15
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-f2c5fc7a.js';
14
+ export { m as menuController } from './index-314a9349.js';
15
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-d99a4d6a.js';
16
16
  import './index-a5d50daf.js';
17
17
  import './index-eab5468b.js';
18
18
  import './gesture-controller-1bf57181.js';
19
- import './hardware-back-button-adcc28d5.js';
19
+ import './hardware-back-button-36f7543b.js';
20
20
  import './index-9b0d46f4.js';
21
21
  import './framework-delegate-ed4ba327.js';
22
22
 
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f
5
5
  import { c as createButtonActiveGesture } from './button-active-57422dbf.js';
6
6
  import { r as raf } from './helpers-be245865.js';
7
7
  import { c as createLockController } from './lock-controller-316928be.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-f2c5fc7a.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-d99a4d6a.js';
9
9
  import { g as getClassMap } from './theme-01f3f29c.js';
10
10
  import { b as getIonMode } from './ionic-global-c836c8c6.js';
11
11
  import { c as createAnimation } from './animation-6a0c5338.js';
@@ -14,7 +14,7 @@ import './capacitor-59395cbd.js';
14
14
  import './index-a5d50daf.js';
15
15
  import './index-2cf77112.js';
16
16
  import './gesture-controller-1bf57181.js';
17
- import './hardware-back-button-adcc28d5.js';
17
+ import './hardware-back-button-36f7543b.js';
18
18
  import './framework-delegate-ed4ba327.js';
19
19
  import './index-9b0d46f4.js';
20
20
 
@@ -6,7 +6,7 @@ import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './conf
6
6
  import { c as createButtonActiveGesture } from './button-active-57422dbf.js';
7
7
  import { r as raf } from './helpers-be245865.js';
8
8
  import { c as createLockController } from './lock-controller-316928be.js';
9
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-f2c5fc7a.js';
9
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-d99a4d6a.js';
10
10
  import { g as getClassMap } from './theme-01f3f29c.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-c836c8c6.js';
12
12
  import { c as createAnimation } from './animation-6a0c5338.js';
@@ -15,7 +15,7 @@ import './capacitor-59395cbd.js';
15
15
  import './index-a5d50daf.js';
16
16
  import './index-2cf77112.js';
17
17
  import './gesture-controller-1bf57181.js';
18
- import './hardware-back-button-adcc28d5.js';
18
+ import './hardware-back-button-36f7543b.js';
19
19
  import './framework-delegate-ed4ba327.js';
20
20
  import './index-9b0d46f4.js';
21
21
 
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, f as getElement, d as createEvent, e as readTask, i as forceUpdate, w as writeTask } from './index-eab5468b.js';
5
- import { shoudUseCloseWatcher } from './hardware-back-button-adcc28d5.js';
5
+ import { shouldUseCloseWatcher } from './hardware-back-button-36f7543b.js';
6
6
  import { p as printIonWarning } from './index-9b0d46f4.js';
7
7
  import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-c836c8c6.js';
8
8
  import { m as hasLazyBuild, c as componentOnReady, l as clamp, i as inheritAriaAttributes, s as shallowEqualStringMap } from './helpers-be245865.js';
@@ -43,8 +43,8 @@ const App = class {
43
43
  const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
44
44
  import('./input-shims-5329bbe8.js').then((module) => module.startInputShims(config, platform));
45
45
  }
46
- const hardwareBackButtonModule = await import('./hardware-back-button-adcc28d5.js');
47
- const supportsHardwareBackButtonEvents = isHybrid || shoudUseCloseWatcher();
46
+ const hardwareBackButtonModule = await import('./hardware-back-button-36f7543b.js');
47
+ const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
48
48
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
49
49
  hardwareBackButtonModule.startHardwareBackButton();
50
50
  }
@@ -53,7 +53,7 @@ const App = class {
53
53
  * If an app sets hardwareBackButton: false and experimentalCloseWatcher: true
54
54
  * then the close watcher will not be used.
55
55
  */
56
- if (shoudUseCloseWatcher()) {
56
+ if (shouldUseCloseWatcher()) {
57
57
  printIonWarning('experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used.');
58
58
  }
59
59
  hardwareBackButtonModule.blockHardwareBackButton();
@@ -82,7 +82,7 @@ const App = class {
82
82
  }
83
83
  render() {
84
84
  const mode = getIonMode(this);
85
- return (h(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
85
+ return (h(Host, { key: '0ac01df6d90d8185017e1f8e8f02cdf407e6c94b', class: {
86
86
  [mode]: true,
87
87
  'ion-page': true,
88
88
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -11,11 +11,11 @@ import { c as chevronBack, o as chevronForward, l as chevronDown, p as caretUpSh
11
11
  import { b as getIonMode } from './ionic-global-c836c8c6.js';
12
12
  import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getNextYear, j as getPreviousYear, k as getEndOfWeek, l as getStartOfWeek, m as getPreviousDay, n as getNextDay, o as getPreviousWeek, p as getNextWeek, q as parseMinParts, r as parseMaxParts, s as parseDate, w as warnIfValueOutOfBounds, t as convertToArrayOfNumbers, u as convertDataToISO, x as getToday, y as getClosestValidDate, z as generateMonths, A as getNumDaysInMonth, B as getCombinedDateColumnData, C as getMonthColumnData, D as getDayColumnData, E as getYearColumnData, F as isMonthFirstLocale, G as getTimeColumnsData, H as isLocaleDayPeriodRTL, I as getDaysOfWeek, J as getMonthAndYear, K as getDaysOfMonth, L as getHourCycle, M as getLocalizedTime, N as getMonthAndDay, O as formatValue, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data-0f3ab200.js';
13
13
  import { c as createLockController } from './lock-controller-316928be.js';
14
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-f2c5fc7a.js';
14
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-d99a4d6a.js';
15
15
  import { c as createAnimation } from './animation-6a0c5338.js';
16
16
  import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-554688a5.js';
17
17
  import './index-a5d50daf.js';
18
- import './hardware-back-button-adcc28d5.js';
18
+ import './hardware-back-button-36f7543b.js';
19
19
  import './framework-delegate-ed4ba327.js';
20
20
  import './capacitor-59395cbd.js';
21
21
 
@@ -5,12 +5,12 @@ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-49c88215.js';
6
6
  import { r as raf } from './helpers-be245865.js';
7
7
  import { c as createLockController } from './lock-controller-316928be.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-f2c5fc7a.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-d99a4d6a.js';
9
9
  import { g as getClassMap } from './theme-01f3f29c.js';
10
10
  import { c as config, b as getIonMode } from './ionic-global-c836c8c6.js';
11
11
  import { c as createAnimation } from './animation-6a0c5338.js';
12
12
  import './index-a5d50daf.js';
13
- import './hardware-back-button-adcc28d5.js';
13
+ import './hardware-back-button-36f7543b.js';
14
14
  import './framework-delegate-ed4ba327.js';
15
15
  import './index-9b0d46f4.js';
16
16
 
@@ -4,10 +4,10 @@
4
4
  import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-eab5468b.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
6
6
  import { G as GESTURE_CONTROLLER } from './gesture-controller-1bf57181.js';
7
- import { shoudUseCloseWatcher } from './hardware-back-button-adcc28d5.js';
7
+ import { shouldUseCloseWatcher } from './hardware-back-button-36f7543b.js';
8
8
  import { p as isEndSide, i as inheritAriaAttributes, o as assert, l as clamp } from './helpers-be245865.js';
9
- import { m as menuController } from './index-a3478902.js';
10
- import { o as getPresentedOverlay } from './overlays-f2c5fc7a.js';
9
+ import { m as menuController } from './index-314a9349.js';
10
+ import { o as getPresentedOverlay } from './overlays-d99a4d6a.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-c836c8c6.js';
12
12
  import { c as createColorClasses, h as hostContext } from './theme-01f3f29c.js';
13
13
  import { u as menuOutline, v as menuSharp } from './index-f7dc70ba.js';
@@ -612,13 +612,13 @@ const Menu = class {
612
612
  * the ionBackButton listener in the menu controller
613
613
  * will handle closing the menu when Escape is pressed.
614
614
  */
615
- return (h(Host, { key: 'be7145625a30951e5cc26646f6121ee4fa4c910f', onKeyDown: shoudUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
615
+ return (h(Host, { key: 'c6bf01fd87e31cda09c0c35900cb01ea19d61781', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
616
616
  [mode]: true,
617
617
  [`menu-type-${type}`]: true,
618
618
  'menu-enabled': !disabled,
619
619
  [`menu-side-${side}`]: true,
620
620
  'menu-pane-visible': isPaneVisible,
621
- } }, h("div", { key: 'ecd6e0641ed67691db270190801f7be365a2d121', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: 'aea3780e259f2b3ea84697a509bb7f13fa9531e9' })), h("ion-backdrop", { key: 'be3253506a34c4c00eb1814621c674196b72db46', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
621
+ } }, h("div", { key: '6d818a470a74c11c10554d45d8586436a51f961e', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '3512e444ec6c6bf2a719b1dd713be9a7652f77c9' })), h("ion-backdrop", { key: '618a5316462406fa47929e4dcd5a8e8c9057a418', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
622
622
  }
623
623
  get el() { return getElement(this); }
624
624
  static get watchers() { return {
@@ -8,7 +8,7 @@ import { g as getElementRoot, l as clamp, r as raf, k as inheritAttributes, m as
8
8
  import { c as createLockController } from './lock-controller-316928be.js';
9
9
  import { p as printIonWarning } from './index-9b0d46f4.js';
10
10
  import { g as getCapacitor } from './capacitor-59395cbd.js';
11
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-f2c5fc7a.js';
11
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-d99a4d6a.js';
12
12
  import { g as getClassMap } from './theme-01f3f29c.js';
13
13
  import { e as deepReady, w as waitForMount } from './index-84ee782d.js';
14
14
  import { b as getIonMode, c as config } from './ionic-global-c836c8c6.js';
@@ -17,7 +17,7 @@ import { c as createAnimation } from './animation-6a0c5338.js';
17
17
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
18
18
  import { createGesture } from './index-2cf77112.js';
19
19
  import { w as win } from './index-a5d50daf.js';
20
- import './hardware-back-button-adcc28d5.js';
20
+ import './hardware-back-button-36f7543b.js';
21
21
  import './keyboard-73175e24.js';
22
22
  import './gesture-controller-1bf57181.js';
23
23
 
@@ -250,7 +250,11 @@ const PickerColumnInternal = class {
250
250
  */
251
251
  componentWillLoad() {
252
252
  const visibleCallback = (entries) => {
253
- const ev = entries[0];
253
+ /**
254
+ * Browsers will sometimes coalesce (group together) multiple IO events into a single callback.
255
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
256
+ */
257
+ const ev = entries[entries.length - 1];
254
258
  if (ev.isIntersecting) {
255
259
  const { activeItem, el } = this;
256
260
  this.isColumnVisible = true;
@@ -339,18 +343,18 @@ const PickerColumnInternal = class {
339
343
  * the attribute can be moved to datetime.tsx and set on every
340
344
  * instance of ion-picker-column-internal there instead.
341
345
  */
342
- return (h(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
346
+ return (h(Host, { key: 'd3aacad7f4f7a1203a6c9821165b343def3fadef', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
343
347
  [mode]: true,
344
348
  ['picker-column-active']: isActive,
345
349
  ['picker-column-numeric-input']: numericInput,
346
- }) }, h("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
350
+ }) }, h("div", { key: 'bd94fd7f95916e8388312d8b9eaad52cfe221e2c', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '26caf80bd2ff0ef64a84b8b58b7988c676f36471', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1a9e995fadb6fddd8862a74fa4003c419be7db38', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
347
351
  const isItemDisabled = pickerDisabled || item.disabled || false;
348
352
  return (h("button", { tabindex: "-1", class: {
349
353
  'picker-item': true,
350
354
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
351
355
  this.centerPickerItemInView(ev.target, true);
352
356
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
353
- }), h("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
357
+ }), h("div", { key: '19b71b6b54768629815688599be2b6d35678f676', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '33ddc27eac97b297cc6ed69bf780324fc9514bd7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'b91729c45d9d64b928b227d4f529cfccd45a768b', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
354
358
  }
355
359
  get el() { return getElement(this); }
356
360
  static get watchers() { return {
@@ -6,13 +6,13 @@ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from '.
6
6
  import { r as raf, g as getElementRoot, a as addEventListener, m as hasLazyBuild } from './helpers-be245865.js';
7
7
  import { c as createLockController } from './lock-controller-316928be.js';
8
8
  import { p as printIonWarning } from './index-9b0d46f4.js';
9
- import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-f2c5fc7a.js';
9
+ import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod } from './overlays-d99a4d6a.js';
10
10
  import { b as getIonMode, a as isPlatform } from './ionic-global-c836c8c6.js';
11
11
  import { g as getClassMap } from './theme-01f3f29c.js';
12
12
  import { e as deepReady, w as waitForMount } from './index-84ee782d.js';
13
13
  import { c as createAnimation } from './animation-6a0c5338.js';
14
14
  import './index-a5d50daf.js';
15
- import './hardware-back-button-adcc28d5.js';
15
+ import './hardware-back-button-36f7543b.js';
16
16
 
17
17
  /**
18
18
  * Returns the dimensions of the popover
@@ -7,14 +7,14 @@ import { c as createNotchController } from './notch-controller-6bd3e0f9.js';
7
7
  import { i as isOptionSelected, c as compareOptions } from './compare-with-utils-a96ff2ea.js';
8
8
  import { k as inheritAttributes, f as focusVisibleElement, h as findItemLabel, d as renderHiddenInput, e as getAriaLabel } from './helpers-be245865.js';
9
9
  import { p as printIonWarning } from './index-9b0d46f4.js';
10
- import { c as popoverController, b as actionSheetController, a as alertController, s as safeCall } from './overlays-f2c5fc7a.js';
10
+ import { c as popoverController, b as actionSheetController, a as alertController, s as safeCall } from './overlays-d99a4d6a.js';
11
11
  import { i as isRTL } from './dir-babeabeb.js';
12
12
  import { h as hostContext, c as createColorClasses, g as getClassMap } from './theme-01f3f29c.js';
13
13
  import { w as watchForOptions } from './watch-options-c2911ace.js';
14
14
  import { w as chevronExpand, q as caretDownSharp } from './index-f7dc70ba.js';
15
15
  import { b as getIonMode } from './ionic-global-c836c8c6.js';
16
16
  import './index-a5d50daf.js';
17
- import './hardware-back-button-adcc28d5.js';
17
+ import './hardware-back-button-36f7543b.js';
18
18
  import './framework-delegate-ed4ba327.js';
19
19
 
20
20
  const selectIosCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:0.6;--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(:not(.legacy-select)){width:100%;min-height:44px}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.legacy-select){-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.in-item:not(.legacy-select)){-ms-flex:1 1 0px;flex:1 1 0}:host(.in-item.legacy-select){position:static;max-width:45%}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]:not(.legacy-select)),:host([slot=end]:not(.legacy-select)){width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}:host(.legacy-select) label{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){:host(.legacy-select) label{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host(.legacy-select) label{left:0}:host-context([dir=rtl]):host(.legacy-select) label,:host-context([dir=rtl]).legacy-select label{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(.legacy-select:dir(rtl)) label{left:unset;right:unset;right:0}}}:host(.legacy-select) label::-moz-focus-inner{border:0}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.legacy-select){--padding-top:10px;--padding-end:8px;--padding-bottom:10px;--padding-start:16px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, #595959)}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}";
@@ -6,13 +6,13 @@ import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './conf
6
6
  import { g as getElementRoot, r as raf } from './helpers-be245865.js';
7
7
  import { c as createLockController } from './lock-controller-316928be.js';
8
8
  import { p as printIonWarning } from './index-9b0d46f4.js';
9
- import { O as OVERLAY_GESTURE_PRIORITY, d as createDelegateController, e as createTriggerController, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall, G as GESTURE } from './overlays-f2c5fc7a.js';
9
+ import { O as OVERLAY_GESTURE_PRIORITY, d as createDelegateController, e as createTriggerController, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall, G as GESTURE } from './overlays-d99a4d6a.js';
10
10
  import { g as getClassMap, c as createColorClasses } from './theme-01f3f29c.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-c836c8c6.js';
12
12
  import { c as createAnimation } from './animation-6a0c5338.js';
13
13
  import { w as win } from './index-a5d50daf.js';
14
14
  import { createGesture } from './index-2cf77112.js';
15
- import './hardware-back-button-adcc28d5.js';
15
+ import './hardware-back-button-36f7543b.js';
16
16
  import './framework-delegate-ed4ba327.js';
17
17
  import './gesture-controller-1bf57181.js';
18
18
 
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-a5d50daf.js';
5
- import { OVERLAY_BACK_BUTTON_PRIORITY, shoudUseCloseWatcher } from './hardware-back-button-adcc28d5.js';
5
+ import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button-36f7543b.js';
6
6
  import { b as getIonMode, c as config } from './ionic-global-c836c8c6.js';
7
7
  import { C as CoreDelegate } from './framework-delegate-ed4ba327.js';
8
8
  import { c as componentOnReady, f as focusVisibleElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-be245865.js';
@@ -364,7 +364,7 @@ const connectListeners = (doc) => {
364
364
  * this behavior will be handled via the ionBackButton
365
365
  * event.
366
366
  */
367
- if (!shoudUseCloseWatcher()) {
367
+ if (!shouldUseCloseWatcher()) {
368
368
  doc.addEventListener('keydown', (ev) => {
369
369
  if (ev.key === 'Escape') {
370
370
  const lastOverlay = getPresentedOverlay(doc);
@@ -812,15 +812,12 @@ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
812
812
  for (let i = overlays.length - 1; i >= 0; i--) {
813
813
  const presentedOverlay = overlays[i];
814
814
  const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
815
- // If next overlay has aria-hidden then all remaining overlays will have it too.
816
- if (nextPresentedOverlay.hasAttribute('aria-hidden')) {
817
- presentedOverlay.setAttribute('aria-hidden', 'true');
818
- /**
819
- * If the next overlay is a Toast this does not have aria-hidden then current overlay
820
- * should not have aria-hidden either so focus can remain in the current overlay.
821
- */
822
- }
823
- else if (nextPresentedOverlay.tagName !== 'ION-TOAST') {
815
+ /**
816
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
817
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
818
+ * should not have aria-hidden either so focus can remain in the current overlay.
819
+ */
820
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
824
821
  presentedOverlay.setAttribute('aria-hidden', 'true');
825
822
  }
826
823
  }
@@ -833,7 +830,6 @@ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
833
830
  const revealOverlaysToScreenReaders = () => {
834
831
  if (doc === undefined)
835
832
  return;
836
- // If there are other overlays presented, unhide the new topmost one from screen readers.
837
833
  const overlays = getPresentedOverlays(doc);
838
834
  for (let i = overlays.length - 1; i >= 0; i--) {
839
835
  const currentOverlay = overlays[i];
@@ -843,16 +839,13 @@ const revealOverlaysToScreenReaders = () => {
843
839
  * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
844
840
  * overlay too so focus can move there since focus is never automatically moved to the Toast.
845
841
  */
846
- if (currentOverlay.tagName === 'ION-TOAST') {
847
- currentOverlay.removeAttribute('aria-hidden');
848
- /**
849
- * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
850
- * since this overlay should always receive focus. As a result, all underlying overlays should still
851
- * be hidden from screen readers.
852
- */
853
- }
854
- else {
855
- currentOverlay.removeAttribute('aria-hidden');
842
+ currentOverlay.removeAttribute('aria-hidden');
843
+ /**
844
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
845
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
846
+ * be hidden from screen readers.
847
+ */
848
+ if (currentOverlay.tagName !== 'ION-TOAST') {
856
849
  break;
857
850
  }
858
851
  }