@ionic/core 9.0.7-dev.11790887756.13f9320e → 9.0.7-nightly.20261002

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 (104) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-app.js +1 -1
  5. package/components/ion-content.js +1 -1
  6. package/components/ion-datetime.js +1 -1
  7. package/components/ion-loading.js +1 -1
  8. package/components/ion-menu-button.js +1 -1
  9. package/components/ion-menu-toggle.js +1 -1
  10. package/components/ion-menu.js +1 -1
  11. package/components/ion-modal.js +1 -1
  12. package/components/ion-popover.js +1 -1
  13. package/components/ion-select-modal.js +1 -1
  14. package/components/ion-select-popover.js +1 -1
  15. package/components/ion-select.js +1 -1
  16. package/components/ion-toast.js +1 -1
  17. package/components/p-BNnmwjuy.js +4 -0
  18. package/components/{p-4QPSgC9s.js → p-BinR4_P7.js} +1 -1
  19. package/components/p-BsLM9eQu.js +4 -0
  20. package/components/{p-DjbwrsJd.js → p-CQjNc-Pz.js} +1 -1
  21. package/components/{p-BHFF2Rku.js → p-CiXOsJF2.js} +1 -1
  22. package/components/{p-CZlKzXag.js → p-CvzE7FFp.js} +1 -1
  23. package/components/p-DGLuPe1e.js +4 -0
  24. package/components/{p-BRCkmCrc.js → p-DPyjiKOq.js} +1 -1
  25. package/components/{p-CB2RQcuo.js → p-PPagT42x.js} +1 -1
  26. package/components/p-WMQuK_Tj.js +4 -0
  27. package/components/p-q2WJ5Igc.js +4 -0
  28. package/css/core.css.map +1 -1
  29. package/css/display.css.map +1 -1
  30. package/css/flex-utils.css.map +1 -1
  31. package/css/float-elements.css +1 -1
  32. package/css/float-elements.css.map +1 -1
  33. package/css/global.bundle.css.map +1 -1
  34. package/css/ionic.bundle.css +1 -1
  35. package/css/ionic.bundle.css.map +1 -1
  36. package/css/padding.css.map +1 -1
  37. package/css/structure.css.map +1 -1
  38. package/css/text-alignment.css.map +1 -1
  39. package/css/text-transformation.css.map +1 -1
  40. package/css/typography.css.map +1 -1
  41. package/css/utils.bundle.css +1 -1
  42. package/css/utils.bundle.css.map +1 -1
  43. package/dist/cjs/{index-fm08amr6.js → index-CElfU-dK.js} +1 -2
  44. package/dist/cjs/index.cjs.js +2 -2
  45. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  46. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-datetime.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -5
  51. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  53. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  54. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  56. package/dist/cjs/{overlays-CEt1Pxnd.js → overlays-C68wNDWY.js} +16 -75
  57. package/dist/collection/components/menu/menu.js +3 -4
  58. package/dist/collection/utils/hardware-back-button.js +12 -41
  59. package/dist/collection/utils/menu-controller/index.js +1 -2
  60. package/dist/collection/utils/overlays.js +4 -30
  61. package/dist/docs.json +1 -1
  62. package/dist/esm/{index-CzPyKjAQ.js → index-B9jhwvmO.js} +1 -2
  63. package/dist/esm/index.js +2 -2
  64. package/dist/esm/ion-action-sheet.entry.js +1 -1
  65. package/dist/esm/ion-alert.entry.js +1 -1
  66. package/dist/esm/ion-app_8.entry.js +2 -2
  67. package/dist/esm/ion-datetime.entry.js +1 -1
  68. package/dist/esm/ion-loading.entry.js +1 -1
  69. package/dist/esm/ion-menu_3.entry.js +4 -5
  70. package/dist/esm/ion-modal.entry.js +1 -1
  71. package/dist/esm/ion-popover.entry.js +1 -1
  72. package/dist/esm/ion-select-modal.entry.js +1 -1
  73. package/dist/esm/ion-select_3.entry.js +1 -1
  74. package/dist/esm/ion-toast.entry.js +1 -1
  75. package/dist/esm/{overlays-D5W_ly69.js → overlays-BQnV0HAU.js} +17 -74
  76. package/dist/ionic/index.esm.js +1 -1
  77. package/dist/ionic/ionic.esm.js +1 -1
  78. package/dist/ionic/{p-5112a8ba.entry.js → p-24b0a961.entry.js} +1 -1
  79. package/dist/ionic/{p-d0451c11.entry.js → p-30dcf43b.entry.js} +1 -1
  80. package/dist/ionic/{p-0111c108.entry.js → p-3a5faaa8.entry.js} +1 -1
  81. package/dist/ionic/{p-8a00d904.entry.js → p-3bd7e5df.entry.js} +1 -1
  82. package/dist/ionic/{p-22160ced.entry.js → p-636349e2.entry.js} +1 -1
  83. package/dist/ionic/{p-ffd45970.entry.js → p-7441ed2b.entry.js} +1 -1
  84. package/dist/ionic/{p-e063a7bf.entry.js → p-76309bab.entry.js} +1 -1
  85. package/dist/ionic/p-83448626.entry.js +4 -0
  86. package/dist/ionic/p-Ba6ZV-qU.js +4 -0
  87. package/dist/ionic/p-DZUqAr_6.js +4 -0
  88. package/dist/ionic/{p-ff664022.entry.js → p-b1164028.entry.js} +1 -1
  89. package/dist/ionic/{p-b798b4ec.entry.js → p-efa00ce5.entry.js} +1 -1
  90. package/dist/ionic/{p-5edc856b.entry.js → p-f9057f70.entry.js} +1 -1
  91. package/dist/types/utils/config.d.ts +1 -4
  92. package/dist/types/utils/hardware-back-button.d.ts +0 -11
  93. package/dist/types/utils/overlays.d.ts +2 -5
  94. package/hydrate/index.js +5 -13
  95. package/hydrate/index.mjs +5 -13
  96. package/package.json +1 -1
  97. package/components/p-BsOZAFNI.js +0 -4
  98. package/components/p-CArDvZQz.js +0 -4
  99. package/components/p-CKtw0kcb.js +0 -4
  100. package/components/p-CgwJ4NuD.js +0 -4
  101. package/components/p-vg8joG77.js +0 -4
  102. package/dist/ionic/p-C036rEeA.js +0 -4
  103. package/dist/ionic/p-OJpZr8fg.js +0 -4
  104. package/dist/ionic/p-b3346b86.entry.js +0 -4
@@ -30,23 +30,6 @@ export const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher'
30
30
  export const blockHardwareBackButton = () => {
31
31
  document.addEventListener('backbutton', () => { });
32
32
  };
33
- const closeWatcherConditions = [];
34
- let syncCloseWatcher;
35
- /**
36
- * Registers a check for whether the back button
37
- * has something to close. The CloseWatcher is only
38
- * active while one of these checks passes.
39
- */
40
- export const addCloseWatcherCondition = (condition) => {
41
- closeWatcherConditions.push(condition);
42
- };
43
- /**
44
- * Call this whenever something the back button
45
- * can close opens or closes.
46
- */
47
- export const updateCloseWatcher = () => {
48
- syncCloseWatcher?.();
49
- };
50
33
  export const startHardwareBackButton = () => {
51
34
  const doc = document;
52
35
  let busy = false;
@@ -98,44 +81,32 @@ export const startHardwareBackButton = () => {
98
81
  processHandlers();
99
82
  };
100
83
  /**
101
- * Android WebView never sends the hardware back
102
- * button to a CloseWatcher, so hybrid apps still
103
- * need this. Browsers never fire backbutton.
84
+ * If the CloseWatcher is defined then
85
+ * we don't want to also listen for the native
86
+ * backbutton event otherwise we may get duplicate
87
+ * events firing.
104
88
  */
105
- doc.addEventListener('backbutton', backButtonCallback);
106
89
  if (shouldUseCloseWatcher()) {
107
90
  let watcher;
108
- /**
109
- * An active CloseWatcher stops the back button from
110
- * navigating, so only keep one while there's something to close.
111
- */
112
- syncCloseWatcher = () => {
113
- const canClose = closeWatcherConditions.some((condition) => condition());
114
- if (!canClose) {
115
- watcher?.destroy();
116
- watcher = undefined;
117
- return;
118
- }
119
- if (watcher !== undefined) {
120
- return;
121
- }
91
+ const configureWatcher = () => {
92
+ watcher?.destroy();
122
93
  watcher = new win.CloseWatcher();
123
94
  /**
124
95
  * Once a close request happens
125
96
  * the watcher gets destroyed.
126
97
  * As a result, we need to re-configure
127
98
  * the watcher so we can respond to other
128
- * close requests, including after one that
129
- * closed nothing, like a modal whose canDismiss
130
- * returned false.
99
+ * close requests.
131
100
  */
132
101
  watcher.onclose = () => {
133
- watcher = undefined;
134
102
  backButtonCallback();
135
- syncCloseWatcher?.();
103
+ configureWatcher();
136
104
  };
137
105
  };
138
- syncCloseWatcher();
106
+ configureWatcher();
107
+ }
108
+ else {
109
+ doc.addEventListener('backbutton', backButtonCallback);
139
110
  }
140
111
  };
141
112
  export const OVERLAY_BACK_BUTTON_PRIORITY = 100;
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { doc } from "../browser/index";
5
- import { MENU_BACK_BUTTON_PRIORITY, addCloseWatcherCondition } from "../hardware-back-button";
5
+ import { MENU_BACK_BUTTON_PRIORITY } from "../hardware-back-button";
6
6
  import { printIonWarning } from "../logging/index";
7
7
  import { componentOnReady } from "../helpers";
8
8
  import { menuOverlayAnimation } from "./animations/overlay";
@@ -184,7 +184,6 @@ const createMenuController = () => {
184
184
  registerAnimation('reveal', menuRevealAnimation);
185
185
  registerAnimation('push', menuPushAnimation);
186
186
  registerAnimation('overlay', menuOverlayAnimation);
187
- addCloseWatcherCondition(() => _getOpenSync() !== undefined);
188
187
  doc?.addEventListener('ionBackButton', (ev) => {
189
188
  const openMenu = _getOpenSync();
190
189
  if (openMenu) {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { doc } from "./browser/index";
5
5
  import { focusFirstDescendant, focusLastDescendant, focusableQueryString } from "./focus-trap";
6
- import { addCloseWatcherCondition, shouldUseCloseWatcher, updateCloseWatcher } from "./hardware-back-button";
6
+ import { shouldUseCloseWatcher } from "./hardware-back-button";
7
7
  import { printIonError, printIonWarning } from "./logging/index";
8
8
  import { config } from "../global/config";
9
9
  import { getIonMode } from "../global/ionic-global";
@@ -13,11 +13,6 @@ import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
13
13
  import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot, removeEventListener, } from "./helpers";
14
14
  let lastOverlayIndex = 0;
15
15
  let lastId = 0;
16
- /**
17
- * Every overlay except toast, which doesn't trap
18
- * focus or close on back.
19
- */
20
- const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
21
16
  export const activeAnimations = new WeakMap();
22
17
  /**
23
18
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -144,7 +139,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
144
139
  * Should NOT include: Toast
145
140
  */
146
141
  const trapKeyboardFocus = (ev, doc) => {
147
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
142
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
148
143
  const target = ev.target;
149
144
  /**
150
145
  * If no active overlay, ignore this event.
@@ -327,11 +322,6 @@ const connectListeners = (doc) => {
327
322
  doc.addEventListener('focus', (ev) => {
328
323
  trapKeyboardFocus(ev, doc);
329
324
  }, true);
330
- /**
331
- * Whether the overlay actually dismisses is checked at press time,
332
- * since `backdropDismiss` can change while it's open.
333
- */
334
- addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
335
325
  // handle back-button click
336
326
  doc.addEventListener('ionBackButton', (ev) => {
337
327
  const lastOverlay = getPresentedOverlay(doc);
@@ -455,8 +445,7 @@ export const setRootAriaHidden = (hidden = false) => {
455
445
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
456
446
  * an overlay is removed from the DOM without going through
457
447
  * the `dismiss()` flow (e.g., when a framework unmounts the
458
- * overlay during a route change). Also releases the
459
- * CloseWatcher if nothing is left to close.
448
+ * overlay during a route change).
460
449
  *
461
450
  * Should be called from an overlay's `disconnectedCallback`
462
451
  * when the overlay was still presented at the time of removal.
@@ -465,7 +454,6 @@ export const cleanupRootFocusTrapAccessibility = () => {
465
454
  if (typeof document === 'undefined') {
466
455
  return;
467
456
  }
468
- updateCloseWatcher();
469
457
  const remainingOverlays = getPresentedOverlays(document);
470
458
  const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
471
459
  if (!hasRemainingLocking) {
@@ -487,9 +475,7 @@ const applyRootLock = (el) => {
487
475
  };
488
476
  /**
489
477
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
490
- * Call from `connectedCallback` when the overlay is still presented. Also
491
- * re-arms the CloseWatcher, which every overlay needs, so that happens
492
- * before the `locksAppRoot` check.
478
+ * Call from `connectedCallback` when the overlay is still presented.
493
479
  *
494
480
  * A synchronous move keeps the overlay connected, so the lock survives. A
495
481
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -499,7 +485,6 @@ export const restoreRootFocusTrapAccessibility = (overlayEl) => {
499
485
  if (typeof document === 'undefined') {
500
486
  return;
501
487
  }
502
- updateCloseWatcher();
503
488
  const el = overlayEl;
504
489
  if (!locksAppRoot(el)) {
505
490
  return;
@@ -713,11 +698,6 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
713
698
  printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
714
699
  }
715
700
  overlay.el.remove();
716
- /**
717
- * Release the back button if nothing
718
- * else is left to close.
719
- */
720
- updateCloseWatcher();
721
701
  return true;
722
702
  };
723
703
  const getAppRoot = (doc) => {
@@ -726,12 +706,6 @@ const getAppRoot = (doc) => {
726
706
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
727
707
  // Make overlay visible in case it's hidden
728
708
  baseEl.classList.remove('overlay-hidden');
729
- /**
730
- * Removing `overlay-hidden` makes the overlay count
731
- * as presented, so back can dismiss it while it
732
- * animates in.
733
- */
734
- updateCloseWatcher();
735
709
  const aniRoot = overlay.el;
736
710
  const animation = animationBuilder(aniRoot, opts);
737
711
  if (!overlay.animated || !config.getBoolean('animated', true)) {
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-10-01T20:51:08",
2
+ "timestamp": "2026-10-02T06:19:02",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.45.1",
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { n as doc, c as componentOnReady } from './helpers-B54ynME_.js';
5
- import { M as MENU_BACK_BUTTON_PRIORITY, q as addCloseWatcherCondition } from './overlays-D5W_ly69.js';
5
+ import { M as MENU_BACK_BUTTON_PRIORITY } from './overlays-BQnV0HAU.js';
6
6
  import { a as printIonWarning } from './index-D9OR05yj.js';
7
7
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
8
8
  import { c as createAnimation } from './animation-CFd8Olt3.js';
@@ -271,7 +271,6 @@ const createMenuController = () => {
271
271
  registerAnimation('reveal', menuRevealAnimation);
272
272
  registerAnimation('push', menuPushAnimation);
273
273
  registerAnimation('overlay', menuOverlayAnimation);
274
- addCloseWatcherCondition(() => _getOpenSync() !== undefined);
275
274
  doc?.addEventListener('ionBackButton', (ev) => {
276
275
  const openMenu = _getOpenSync();
277
276
  if (openMenu) {
package/dist/esm/index.js CHANGED
@@ -13,8 +13,8 @@ export { L as LogLevel, c as printIonError, a as printIonWarning } from './index
13
13
  export { I as IonicSafeString } from './index-D4ZMZz_3.js';
14
14
  export { g as getMode, s as setupConfig } from './config-DWCzVL3Y.js';
15
15
  export { o as openURL } from './theme-byZM6qHV.js';
16
- export { m as menuController } from './index-CzPyKjAQ.js';
17
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-D5W_ly69.js';
16
+ export { m as menuController } from './index-B9jhwvmO.js';
17
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as popoverController, t as toastController } from './overlays-BQnV0HAU.js';
18
18
  import './gesture-controller-B_gJaBk0.js';
19
19
  import './dir-Dojwmvde.js';
20
20
  import './framework-delegate-DeT5pmPB.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, e as readTask, h, f as Host, g
5
5
  import { c as createButtonActiveGesture } from './button-active-DMuYeDQN.js';
6
6
  import { r as raf } from './helpers-B54ynME_.js';
7
7
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
8
- import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, e as present, f as dismiss, g as eventMethod, s as safeCall, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId } from './overlays-D5W_ly69.js';
8
+ import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, e as present, f as dismiss, g as eventMethod, s as safeCall, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId } from './overlays-BQnV0HAU.js';
9
9
  import { r as renderOptionLabel } from './select-option-render-CGxPejmz.js';
10
10
  import { g as getClassMap } from './theme-byZM6qHV.js';
11
11
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
@@ -7,7 +7,7 @@ import { c as createButtonActiveGesture } from './button-active-DMuYeDQN.js';
7
7
  import { r as raf } from './helpers-B54ynME_.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
9
  import { g as getOverlayLabelJustify, a as getOverlayLabelPlacement } from './overlay-control-label-BSQPZ79H.js';
10
- import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays-D5W_ly69.js';
10
+ import { c as createDelegateController, d as createTriggerController, B as BACKDROP, i as isCancel, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays-BQnV0HAU.js';
11
11
  import { s as sanitizeDOMString } from './index-D4ZMZz_3.js';
12
12
  import { r as renderOptionLabel } from './select-option-render-CGxPejmz.js';
13
13
  import { g as getClassMap } from './theme-byZM6qHV.js';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, i as config, a as printIonWarning, h, f as Host, g as getElement, d as createEvent, e as readTask, j as forceUpdate, w as writeTask, c as printIonError } from './index-D9OR05yj.js';
5
- import { w as shouldUseCloseWatcher, n as getOverlaySizeType } from './overlays-D5W_ly69.js';
5
+ import { v as shouldUseCloseWatcher, n as getOverlaySizeType } from './overlays-BQnV0HAU.js';
6
6
  import { a as isPlatform, b as getIonMode } from './ionic-global-B-G43ddm.js';
7
7
  import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, v as shallowEqualStringMap } from './helpers-B54ynME_.js';
8
8
  import { i as isRTL } from './dir-Dojwmvde.js';
@@ -41,7 +41,7 @@ const App = class {
41
41
  const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
42
42
  import('./input-shims-MCrhq67U.js').then((module) => module.startInputShims(config, platform));
43
43
  }
44
- const hardwareBackButtonModule = await import('./overlays-D5W_ly69.js').then(function (n) { return n.y; });
44
+ const hardwareBackButtonModule = await import('./overlays-BQnV0HAU.js').then(function (n) { return n.w; });
45
45
  const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
46
46
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
47
47
  hardwareBackButtonModule.startHardwareBackButton();
@@ -4,7 +4,7 @@
4
4
  import { c as printIonError, a as printIonWarning, r as registerInstance, d as createEvent, w as writeTask, i as config, h, f as Host, g as getElement } from './index-D9OR05yj.js';
5
5
  import { startFocusVisible } from './focus-visible-BmVRXR1y.js';
6
6
  import { r as raf, g as getElementRoot, a as renderHiddenInput } from './helpers-B54ynME_.js';
7
- import { F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-D5W_ly69.js';
7
+ import { F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-BQnV0HAU.js';
8
8
  import { i as isRTL } from './dir-Dojwmvde.js';
9
9
  import { c as createColorClasses } from './theme-byZM6qHV.js';
10
10
  import { b as chevronDown, d as caretUpSharp, e as chevronForward, f as caretDownSharp, c as chevronBack } from './index-BvabGprD.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, i as config, h, f as Host, g a
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT } from './config-DWCzVL3Y.js';
6
6
  import { r as raf } from './helpers-B54ynME_.js';
7
7
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
8
- import { c as createDelegateController, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod } from './overlays-D5W_ly69.js';
8
+ import { c as createDelegateController, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, k as setOverlayId, j as cleanupRootFocusTrapAccessibility, e as present, f as dismiss, g as eventMethod } from './overlays-BQnV0HAU.js';
9
9
  import { s as sanitizeDOMString } from './index-D4ZMZz_3.js';
10
10
  import { g as getClassMap } from './theme-byZM6qHV.js';
11
11
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
@@ -3,10 +3,10 @@
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, i as config, c as printIonError, h, f as Host, g as getElement } from './index-D9OR05yj.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
6
- import { u as getPresentedOverlay, B as BACKDROP, o as focusFirstDescendant, v as focusLastDescendant, G as GESTURE, w as shouldUseCloseWatcher, x as updateCloseWatcher } from './overlays-D5W_ly69.js';
6
+ import { q as getPresentedOverlay, B as BACKDROP, o as focusFirstDescendant, u as focusLastDescendant, G as GESTURE, v as shouldUseCloseWatcher } from './overlays-BQnV0HAU.js';
7
7
  import { G as GESTURE_CONTROLLER } from './gesture-controller-B_gJaBk0.js';
8
8
  import { s as isEndSide, i as inheritAriaAttributes, l as assert, e as clamp } from './helpers-B54ynME_.js';
9
- import { m as menuController } from './index-CzPyKjAQ.js';
9
+ import { m as menuController } from './index-B9jhwvmO.js';
10
10
  import { b as getIonMode, a as isPlatform } from './ionic-global-B-G43ddm.js';
11
11
  import { h as hostContext, c as createColorClasses } from './theme-byZM6qHV.js';
12
12
  import { u as menuOutline, v as menuSharp } from './index-BvabGprD.js';
@@ -563,7 +563,6 @@ const Menu = class {
563
563
  // emit opened/closed events
564
564
  this._isOpen = isOpen;
565
565
  this.isAnimating = false;
566
- updateCloseWatcher();
567
566
  if (!this._isOpen) {
568
567
  this.blocker.unblock();
569
568
  }
@@ -660,14 +659,14 @@ const Menu = class {
660
659
  * the ionBackButton listener in the menu controller
661
660
  * will handle closing the menu when Escape is pressed.
662
661
  */
663
- return (h(Host, { key: '5cf26df26d4e539860cbeaea98ec621b98c3fcfc', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
662
+ return (h(Host, { key: '1208ba437fa58680325408d3d4c8580950da1d68', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
664
663
  [mode]: true,
665
664
  [`menu-type-${type}`]: true,
666
665
  'menu-enabled': !disabled,
667
666
  [`menu-side-${side}`]: true,
668
667
  'menu-pane-visible': isPaneVisible,
669
668
  'split-pane-side': hostContext('ion-split-pane', el),
670
- } }, h("div", { key: 'f337016e293bb8665c99762e0c389dd6c372bb33', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '4c3fe331aa42cd57d7ad9bd1f5910f8eeb62d7da' })), h("ion-backdrop", { key: '61af7ea876d81574841e1dd3e81e2352e555d096', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
669
+ } }, h("div", { key: 'c0ddc957b7a7956b41901d77ae02d91e73071c55', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '6e44c56116431a024f114ab85ded1b822c942fac' })), h("ion-backdrop", { key: '5f4bbcf84444d96ec6b02bf567e1aaf95f59078d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
671
670
  }
672
671
  get el() { return getElement(this); }
673
672
  static get watchers() { return {
@@ -7,7 +7,7 @@ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from '.
7
7
  import { w as win, o as onCustomPropertyChange, g as getElementRoot, e as clamp, r as raf, b as inheritAttributes, h as hasLazyBuild } from './helpers-B54ynME_.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
9
  import { g as getCapacitor } from './capacitor-CoEgIpR9.js';
10
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, n as getOverlaySizeType, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, f as dismiss, g as eventMethod } from './overlays-D5W_ly69.js';
10
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, n as getOverlaySizeType, d as createTriggerController, B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, f as dismiss, g as eventMethod } from './overlays-BQnV0HAU.js';
11
11
  import { g as getClassMap } from './theme-byZM6qHV.js';
12
12
  import { e as deepReady, w as waitForMount } from './index-B8iieOdw.js';
13
13
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, a as printIonWarning, h, f as Host, g as getElement } from './index-D9OR05yj.js';
5
- import { B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, o as focusFirstDescendant, f as dismiss, g as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-D5W_ly69.js';
5
+ import { B as BACKDROP, h as prepareOverlay, r as restoreRootFocusTrapAccessibility, j as cleanupRootFocusTrapAccessibility, k as setOverlayId, e as present, o as focusFirstDescendant, f as dismiss, g as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-BQnV0HAU.js';
6
6
  import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-DeT5pmPB.js';
7
7
  import { g as getElementRoot, r as raf, f as addEventListener, h as hasLazyBuild } from './helpers-B54ynME_.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
@@ -4,7 +4,7 @@
4
4
  import { r as registerInstance, h, j as forceUpdate, f as Host, g as getElement } from './index-D9OR05yj.js';
5
5
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
6
6
  import { a as getOverlayLabelPlacement, g as getOverlayLabelJustify } from './overlay-control-label-BSQPZ79H.js';
7
- import { s as safeCall } from './overlays-D5W_ly69.js';
7
+ import { s as safeCall } from './overlays-BQnV0HAU.js';
8
8
  import { r as renderOptionLabel } from './select-option-render-CGxPejmz.js';
9
9
  import { g as getClassMap } from './theme-byZM6qHV.js';
10
10
  import './helpers-B54ynME_.js';
@@ -7,7 +7,7 @@ import { g as getSlottedClickContent, c as createSlotMutationController, a as cr
7
7
  import { c as compareOptions, i as isOptionSelected } from './compare-with-utils-sObYyvOy.js';
8
8
  import { c as checkInvalidState } from './validity-DJztqcrH.js';
9
9
  import { b as inheritAttributes, a as renderHiddenInput, p as focusVisibleElement } from './helpers-B54ynME_.js';
10
- import { p as popoverController, b as actionSheetController, a as alertController, m as modalController, s as safeCall } from './overlays-D5W_ly69.js';
10
+ import { p as popoverController, b as actionSheetController, a as alertController, m as modalController, s as safeCall } from './overlays-BQnV0HAU.js';
11
11
  import { i as isRTL } from './dir-Dojwmvde.js';
12
12
  import { r as reflectPropertiesToAttributes, a as sanitizeDOMTree, b as blockedTags } from './index-D4ZMZz_3.js';
13
13
  import { h as hostContext, c as createColorClasses, g as getClassMap } from './theme-byZM6qHV.js';
@@ -5,7 +5,7 @@ import { a as printIonWarning, r as registerInstance, d as createEvent, i as con
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT } from './config-DWCzVL3Y.js';
6
6
  import { w as win, g as getElementRoot, r as raf } from './helpers-B54ynME_.js';
7
7
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
8
- import { O as OVERLAY_GESTURE_PRIORITY, c as createDelegateController, d as createTriggerController, i as isCancel, h as prepareOverlay, k as setOverlayId, e as present, f as dismiss, g as eventMethod, s as safeCall, G as GESTURE } from './overlays-D5W_ly69.js';
8
+ import { O as OVERLAY_GESTURE_PRIORITY, c as createDelegateController, d as createTriggerController, i as isCancel, h as prepareOverlay, k as setOverlayId, e as present, f as dismiss, g as eventMethod, s as safeCall, G as GESTURE } from './overlays-BQnV0HAU.js';
9
9
  import { s as sanitizeDOMString } from './index-D4ZMZz_3.js';
10
10
  import { c as createColorClasses, g as getClassMap } from './theme-byZM6qHV.js';
11
11
  import { b as getIonMode } from './ionic-global-B-G43ddm.js';
@@ -33,23 +33,6 @@ const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false
33
33
  const blockHardwareBackButton = () => {
34
34
  document.addEventListener('backbutton', () => { });
35
35
  };
36
- const closeWatcherConditions = [];
37
- let syncCloseWatcher;
38
- /**
39
- * Registers a check for whether the back button
40
- * has something to close. The CloseWatcher is only
41
- * active while one of these checks passes.
42
- */
43
- const addCloseWatcherCondition = (condition) => {
44
- closeWatcherConditions.push(condition);
45
- };
46
- /**
47
- * Call this whenever something the back button
48
- * can close opens or closes.
49
- */
50
- const updateCloseWatcher = () => {
51
- syncCloseWatcher?.();
52
- };
53
36
  const startHardwareBackButton = () => {
54
37
  const doc = document;
55
38
  let busy = false;
@@ -101,44 +84,32 @@ const startHardwareBackButton = () => {
101
84
  processHandlers();
102
85
  };
103
86
  /**
104
- * Android WebView never sends the hardware back
105
- * button to a CloseWatcher, so hybrid apps still
106
- * need this. Browsers never fire backbutton.
87
+ * If the CloseWatcher is defined then
88
+ * we don't want to also listen for the native
89
+ * backbutton event otherwise we may get duplicate
90
+ * events firing.
107
91
  */
108
- doc.addEventListener('backbutton', backButtonCallback);
109
92
  if (shouldUseCloseWatcher()) {
110
93
  let watcher;
111
- /**
112
- * An active CloseWatcher stops the back button from
113
- * navigating, so only keep one while there's something to close.
114
- */
115
- syncCloseWatcher = () => {
116
- const canClose = closeWatcherConditions.some((condition) => condition());
117
- if (!canClose) {
118
- watcher?.destroy();
119
- watcher = undefined;
120
- return;
121
- }
122
- if (watcher !== undefined) {
123
- return;
124
- }
94
+ const configureWatcher = () => {
95
+ watcher?.destroy();
125
96
  watcher = new win.CloseWatcher();
126
97
  /**
127
98
  * Once a close request happens
128
99
  * the watcher gets destroyed.
129
100
  * As a result, we need to re-configure
130
101
  * the watcher so we can respond to other
131
- * close requests, including after one that
132
- * closed nothing, like a modal whose canDismiss
133
- * returned false.
102
+ * close requests.
134
103
  */
135
104
  watcher.onclose = () => {
136
- watcher = undefined;
137
105
  backButtonCallback();
138
- syncCloseWatcher?.();
106
+ configureWatcher();
139
107
  };
140
108
  };
141
- syncCloseWatcher();
109
+ configureWatcher();
110
+ }
111
+ else {
112
+ doc.addEventListener('backbutton', backButtonCallback);
142
113
  }
143
114
  };
144
115
  const OVERLAY_BACK_BUTTON_PRIORITY = 100;
@@ -148,11 +119,9 @@ var hardwareBackButton = /*#__PURE__*/Object.freeze({
148
119
  __proto__: null,
149
120
  MENU_BACK_BUTTON_PRIORITY: MENU_BACK_BUTTON_PRIORITY,
150
121
  OVERLAY_BACK_BUTTON_PRIORITY: OVERLAY_BACK_BUTTON_PRIORITY,
151
- addCloseWatcherCondition: addCloseWatcherCondition,
152
122
  blockHardwareBackButton: blockHardwareBackButton,
153
123
  shouldUseCloseWatcher: shouldUseCloseWatcher,
154
- startHardwareBackButton: startHardwareBackButton,
155
- updateCloseWatcher: updateCloseWatcher
124
+ startHardwareBackButton: startHardwareBackButton
156
125
  });
157
126
 
158
127
  /**
@@ -238,11 +207,6 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
238
207
 
239
208
  let lastOverlayIndex = 0;
240
209
  let lastId = 0;
241
- /**
242
- * Every overlay except toast, which doesn't trap
243
- * focus or close on back.
244
- */
245
- const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
246
210
  const activeAnimations = new WeakMap();
247
211
  /**
248
212
  * Determines if the overlay's backdrop is always blocking (no background interaction).
@@ -369,7 +333,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
369
333
  * Should NOT include: Toast
370
334
  */
371
335
  const trapKeyboardFocus = (ev, doc) => {
372
- const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
336
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
373
337
  const target = ev.target;
374
338
  /**
375
339
  * If no active overlay, ignore this event.
@@ -552,11 +516,6 @@ const connectListeners = (doc) => {
552
516
  doc.addEventListener('focus', (ev) => {
553
517
  trapKeyboardFocus(ev, doc);
554
518
  }, true);
555
- /**
556
- * Whether the overlay actually dismisses is checked at press time,
557
- * since `backdropDismiss` can change while it's open.
558
- */
559
- addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
560
519
  // handle back-button click
561
520
  doc.addEventListener('ionBackButton', (ev) => {
562
521
  const lastOverlay = getPresentedOverlay(doc);
@@ -680,8 +639,7 @@ const setRootAriaHidden = (hidden = false) => {
680
639
  * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
681
640
  * an overlay is removed from the DOM without going through
682
641
  * the `dismiss()` flow (e.g., when a framework unmounts the
683
- * overlay during a route change). Also releases the
684
- * CloseWatcher if nothing is left to close.
642
+ * overlay during a route change).
685
643
  *
686
644
  * Should be called from an overlay's `disconnectedCallback`
687
645
  * when the overlay was still presented at the time of removal.
@@ -690,7 +648,6 @@ const cleanupRootFocusTrapAccessibility = () => {
690
648
  if (typeof document === 'undefined') {
691
649
  return;
692
650
  }
693
- updateCloseWatcher();
694
651
  const remainingOverlays = getPresentedOverlays(document);
695
652
  const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
696
653
  if (!hasRemainingLocking) {
@@ -712,9 +669,7 @@ const applyRootLock = (el) => {
712
669
  };
713
670
  /**
714
671
  * Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
715
- * Call from `connectedCallback` when the overlay is still presented. Also
716
- * re-arms the CloseWatcher, which every overlay needs, so that happens
717
- * before the `locksAppRoot` check.
672
+ * Call from `connectedCallback` when the overlay is still presented.
718
673
  *
719
674
  * A synchronous move keeps the overlay connected, so the lock survives. A
720
675
  * detach with a re-insert in a later task releases it, which is the shape a
@@ -724,7 +679,6 @@ const restoreRootFocusTrapAccessibility = (overlayEl) => {
724
679
  if (typeof document === 'undefined') {
725
680
  return;
726
681
  }
727
- updateCloseWatcher();
728
682
  const el = overlayEl;
729
683
  if (!locksAppRoot(el)) {
730
684
  return;
@@ -938,11 +892,6 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
938
892
  printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
939
893
  }
940
894
  overlay.el.remove();
941
- /**
942
- * Release the back button if nothing
943
- * else is left to close.
944
- */
945
- updateCloseWatcher();
946
895
  return true;
947
896
  };
948
897
  const getAppRoot = (doc) => {
@@ -951,12 +900,6 @@ const getAppRoot = (doc) => {
951
900
  const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
952
901
  // Make overlay visible in case it's hidden
953
902
  baseEl.classList.remove('overlay-hidden');
954
- /**
955
- * Removing `overlay-hidden` makes the overlay count
956
- * as presented, so back can dismiss it while it
957
- * animates in.
958
- */
959
- updateCloseWatcher();
960
903
  const aniRoot = overlay.el;
961
904
  const animation = animationBuilder(aniRoot, opts);
962
905
  if (!overlay.animated || !config.getBoolean('animated', true)) {
@@ -1180,4 +1123,4 @@ const createTriggerController = () => {
1180
1123
  };
1181
1124
  const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
1182
1125
 
1183
- export { BACKDROP as B, FOCUS_TRAP_DISABLE_CLASS as F, GESTURE as G, MENU_BACK_BUTTON_PRIORITY as M, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, createDelegateController as c, createTriggerController as d, present as e, dismiss as f, eventMethod as g, prepareOverlay as h, isCancel as i, cleanupRootFocusTrapAccessibility as j, setOverlayId as k, loadingController as l, modalController as m, getOverlaySizeType as n, focusFirstDescendant as o, popoverController as p, addCloseWatcherCondition as q, restoreRootFocusTrapAccessibility as r, safeCall as s, toastController as t, getPresentedOverlay as u, focusLastDescendant as v, shouldUseCloseWatcher as w, updateCloseWatcher as x, hardwareBackButton as y };
1126
+ export { BACKDROP as B, FOCUS_TRAP_DISABLE_CLASS as F, GESTURE as G, MENU_BACK_BUTTON_PRIORITY as M, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, createDelegateController as c, createTriggerController as d, present as e, dismiss as f, eventMethod as g, prepareOverlay as h, isCancel as i, cleanupRootFocusTrapAccessibility as j, setOverlayId as k, loadingController as l, modalController as m, getOverlaySizeType as n, focusFirstDescendant as o, popoverController as p, getPresentedOverlay as q, restoreRootFocusTrapAccessibility as r, safeCall as s, toastController as t, focusLastDescendant as u, shouldUseCloseWatcher as v, hardwareBackButton as w };
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export{c as createAnimation}from"./p-B4wzg4z4.js";export{a as LIFECYCLE_DID_ENTER,c as LIFECYCLE_DID_LEAVE,L as LIFECYCLE_WILL_ENTER,b as LIFECYCLE_WILL_LEAVE,d as LIFECYCLE_WILL_UNLOAD,g as getIonPageElement}from"./p-PkaVMJga.js";export{iosTransitionAnimation}from"./p-kKvGoaEe.js";export{mdTransitionAnimation}from"./p-BVEsh7-M.js";export{g as getTimeGivenProgression}from"./p-hHmYLOfE.js";export{createGesture}from"./p-D0YpjgON.js";export{g as getPlatforms,i as initialize,a as isPlatform}from"./p-CrAPHbJ3.js";export{c as componentOnReady}from"./p-B4xjg_Qu.js";export{L as LogLevel,c as printIonError,a as printIonWarning}from"./p-D9OR05yj.js";export{I as IonicSafeString}from"./p-BhMQahM6.js";export{g as getMode,s as setupConfig}from"./p-DWCzVL3Y.js";export{o as openURL}from"./p-byZM6qHV.js";export{m as menuController}from"./p-OJpZr8fg.js";export{b as actionSheetController,a as alertController,l as loadingController,m as modalController,p as popoverController,t as toastController}from"./p-C036rEeA.js";import"./p-B_gJaBk0.js";import"./p-Dojwmvde.js";import"./p-B4ELlbJE.js";const e=e=>{const{swiper:o,extendParams:s}=e,t={effect:void 0,direction:"horizontal",initialSlide:0,loop:!1,parallax:!1,slidesPerView:1,spaceBetween:0,speed:300,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,touchEventsTarget:"container",freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,zoom:{maxRatio:3,minRatio:1,toggle:!1},touchRatio:1,touchAngle:45,simulateTouch:!0,touchStartPreventDefault:!1,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loopAdditionalSlides:0,noSwiping:!0,runCallbacksOnInit:!0,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flipEffect:{slideShadows:!0,limitRotation:!0},cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fadeEffect:{crossFade:!1},a11y:{prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide"}};o.pagination&&(t.pagination={type:"bullets",clickable:!1,hideOnClick:!1}),o.scrollbar&&(t.scrollbar={hide:!0}),s(t)};export{e as IonicSlides}
4
+ export{c as createAnimation}from"./p-B4wzg4z4.js";export{a as LIFECYCLE_DID_ENTER,c as LIFECYCLE_DID_LEAVE,L as LIFECYCLE_WILL_ENTER,b as LIFECYCLE_WILL_LEAVE,d as LIFECYCLE_WILL_UNLOAD,g as getIonPageElement}from"./p-PkaVMJga.js";export{iosTransitionAnimation}from"./p-kKvGoaEe.js";export{mdTransitionAnimation}from"./p-BVEsh7-M.js";export{g as getTimeGivenProgression}from"./p-hHmYLOfE.js";export{createGesture}from"./p-D0YpjgON.js";export{g as getPlatforms,i as initialize,a as isPlatform}from"./p-CrAPHbJ3.js";export{c as componentOnReady}from"./p-B4xjg_Qu.js";export{L as LogLevel,c as printIonError,a as printIonWarning}from"./p-D9OR05yj.js";export{I as IonicSafeString}from"./p-BhMQahM6.js";export{g as getMode,s as setupConfig}from"./p-DWCzVL3Y.js";export{o as openURL}from"./p-byZM6qHV.js";export{m as menuController}from"./p-Ba6ZV-qU.js";export{b as actionSheetController,a as alertController,l as loadingController,m as modalController,p as popoverController,t as toastController}from"./p-DZUqAr_6.js";import"./p-B_gJaBk0.js";import"./p-Dojwmvde.js";import"./p-B4ELlbJE.js";const e=e=>{const{swiper:o,extendParams:s}=e,t={effect:void 0,direction:"horizontal",initialSlide:0,loop:!1,parallax:!1,slidesPerView:1,spaceBetween:0,speed:300,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,touchEventsTarget:"container",freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,zoom:{maxRatio:3,minRatio:1,toggle:!1},touchRatio:1,touchAngle:45,simulateTouch:!0,touchStartPreventDefault:!1,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loopAdditionalSlides:0,noSwiping:!0,runCallbacksOnInit:!0,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flipEffect:{slideShadows:!0,limitRotation:!0},cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fadeEffect:{crossFade:!1},a11y:{prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide"}};o.pagination&&(t.pagination={type:"bullets",clickable:!1,hideOnClick:!1}),o.scrollbar&&(t.scrollbar={hide:!0}),s(t)};export{e as IonicSlides}