@ionic/core 8.4.1-dev.11731976952.18a7db47 → 8.4.1-dev.11732033492.170e160c

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 (71) hide show
  1. package/components/overlays.js +20 -22
  2. package/dist/cjs/index.cjs.js +1 -1
  3. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  4. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
  6. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  7. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  8. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  9. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  10. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  11. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  12. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  13. package/dist/cjs/{overlays-b1531451.js → overlays-56ca9a8a.js} +19 -21
  14. package/dist/collection/utils/overlays.js +20 -21
  15. package/dist/docs.json +1 -1
  16. package/dist/esm/index.js +1 -1
  17. package/dist/esm/ion-action-sheet.entry.js +1 -1
  18. package/dist/esm/ion-alert.entry.js +1 -1
  19. package/dist/esm/ion-datetime_3.entry.js +1 -1
  20. package/dist/esm/ion-loading.entry.js +1 -1
  21. package/dist/esm/ion-menu_3.entry.js +1 -1
  22. package/dist/esm/ion-modal.entry.js +1 -1
  23. package/dist/esm/ion-popover.entry.js +1 -1
  24. package/dist/esm/ion-select-modal.entry.js +1 -1
  25. package/dist/esm/ion-select_3.entry.js +1 -1
  26. package/dist/esm/ion-toast.entry.js +1 -1
  27. package/dist/esm/{overlays-ef6070b3.js → overlays-74d44899.js} +20 -22
  28. package/dist/esm-es5/index.js +1 -1
  29. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  30. package/dist/esm-es5/ion-alert.entry.js +1 -1
  31. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  32. package/dist/esm-es5/ion-loading.entry.js +1 -1
  33. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  34. package/dist/esm-es5/ion-modal.entry.js +1 -1
  35. package/dist/esm-es5/ion-popover.entry.js +1 -1
  36. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  37. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  38. package/dist/esm-es5/ion-toast.entry.js +1 -1
  39. package/dist/esm-es5/overlays-74d44899.js +4 -0
  40. package/dist/ionic/index.esm.js +1 -1
  41. package/dist/ionic/ionic.esm.js +1 -1
  42. package/dist/ionic/{p-8b3cd589.entry.js → p-03c7b27e.entry.js} +1 -1
  43. package/dist/ionic/p-061d4611.js +4 -0
  44. package/dist/ionic/{p-1f6abe84.system.entry.js → p-08ae4532.system.entry.js} +1 -1
  45. package/dist/ionic/{p-c9ab2251.system.entry.js → p-1d1121ac.system.entry.js} +1 -1
  46. package/dist/ionic/{p-a6ebe6f5.entry.js → p-1e3784b9.entry.js} +1 -1
  47. package/dist/ionic/{p-aa925864.entry.js → p-23745fed.entry.js} +1 -1
  48. package/dist/ionic/{p-42010fbb.system.entry.js → p-2ed40a5e.system.entry.js} +1 -1
  49. package/dist/ionic/p-322c5fb4.system.js +1 -1
  50. package/dist/ionic/{p-9ca09ab2.entry.js → p-36662b24.entry.js} +1 -1
  51. package/dist/ionic/{p-2afa24ce.system.entry.js → p-36e4ad92.system.entry.js} +1 -1
  52. package/dist/ionic/{p-020f9a49.entry.js → p-3cb0f90c.entry.js} +1 -1
  53. package/dist/ionic/p-3e5b5cf1.system.js +4 -0
  54. package/dist/ionic/{p-67c38e61.system.entry.js → p-43567c9d.system.entry.js} +1 -1
  55. package/dist/ionic/{p-ac6ceb9b.entry.js → p-500c02e3.entry.js} +1 -1
  56. package/dist/ionic/{p-4094c07a.system.entry.js → p-5a83c181.system.entry.js} +1 -1
  57. package/dist/ionic/{p-0c6bb7ff.system.entry.js → p-79bdcdd5.system.entry.js} +1 -1
  58. package/dist/ionic/{p-6ef37e24.system.entry.js → p-8b9b0e01.system.entry.js} +1 -1
  59. package/dist/ionic/{p-b52b7cd4.entry.js → p-a5d0bd7c.entry.js} +1 -1
  60. package/dist/ionic/{p-5cc1e6e5.system.entry.js → p-ddc18b30.system.entry.js} +1 -1
  61. package/dist/ionic/{p-5b4623a9.entry.js → p-ec288b34.entry.js} +1 -1
  62. package/dist/ionic/{p-7d04adce.entry.js → p-f912705b.entry.js} +1 -1
  63. package/dist/ionic/{p-adfe0316.entry.js → p-fa2cf74d.entry.js} +1 -1
  64. package/dist/ionic/{p-e77b72b0.system.js → p-fd31bb04.system.js} +1 -1
  65. package/dist/ionic/{p-2805175a.system.entry.js → p-ffbee4f6.system.entry.js} +1 -1
  66. package/hydrate/index.js +19 -21
  67. package/hydrate/index.mjs +19 -21
  68. package/package.json +1 -1
  69. package/dist/esm-es5/overlays-ef6070b3.js +0 -4
  70. package/dist/ionic/p-50cb9d03.js +0 -4
  71. package/dist/ionic/p-af507683.system.js +0 -4
@@ -4,7 +4,7 @@
4
4
  import { d as doc } from './index5.js';
5
5
  import { f as focusVisibleElement, c as componentOnReady, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
6
6
  import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button.js';
7
- import { b as getIonMode, c as config } from './ionic-global.js';
7
+ import { b as getIonMode, c as config, a as isPlatform } from './ionic-global.js';
8
8
  import { C as CoreDelegate } from './framework-delegate.js';
9
9
  import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
10
10
  import { p as printIonWarning } from './index6.js';
@@ -512,6 +512,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
512
512
  }
513
513
  document.body.classList.add(BACKDROP_NO_SCROLL);
514
514
  hideUnderlyingOverlaysFromScreenReaders(overlay.el);
515
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
515
516
  overlay.presented = true;
516
517
  overlay.willPresent.emit();
517
518
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -520,7 +521,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
520
521
  const animationBuilder = overlay.enterAnimation
521
522
  ? overlay.enterAnimation
522
523
  : config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
523
- // hideAnimatingOverlayFromScreenReaders(overlay.el);
524
524
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
525
525
  if (completed) {
526
526
  overlay.didPresent.emit();
@@ -695,24 +695,14 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
695
695
  if (!overlay.animated || !config.getBoolean('animated', true)) {
696
696
  animation.duration(0);
697
697
  }
698
- animation.beforeAddWrite(() => {
699
- console.log('beforeAddWrite');
700
- baseEl.setAttribute('aria-hidden', 'true');
701
- // add class 'test' to baseEl
702
- baseEl.classList.add('test');
703
- if (overlay.keyboardClose) {
698
+ if (overlay.keyboardClose) {
699
+ animation.beforeAddWrite(() => {
704
700
  const activeElement = baseEl.ownerDocument.activeElement;
705
701
  if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {
706
702
  activeElement.blur();
707
703
  }
708
- }
709
- });
710
- animation.afterAddWrite(() => {
711
- baseEl.removeAttribute('aria-hidden');
712
- // add test2 class to baseEl
713
- baseEl.classList.add('test2');
714
- console.log('afterAddWrite');
715
- });
704
+ });
705
+ }
716
706
  const activeAni = activeAnimations.get(overlay) || [];
717
707
  activeAnimations.set(overlay, [...activeAni, animation]);
718
708
  await animation.play();
@@ -896,18 +886,26 @@ const createTriggerController = () => {
896
886
  * If the overlay is being presented, it prevents focus rings from appearing
897
887
  * in incorrect positions due to the transition (specifically `transform`
898
888
  * styles), ensuring that when aria-hidden is removed, the focus rings are
899
- * correctly displayed in the final location of the elements.
889
+ * correctly displayed in the final location of the elements. This only
890
+ * applies to Android devices.
891
+ *
892
+ * If this solution is applied to iOS devices, then it leads to a bug where
893
+ * the overlays cannot be accessed by screen readers. This is due to
894
+ * VoiceOver not being able to update the accessibility tree when the
895
+ * `aria-hidden` is removed.
900
896
  *
901
897
  * @param overlay - The overlay that is being animated.
902
898
  */
903
899
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
904
900
  if (doc === undefined)
905
901
  return;
906
- /**
907
- * Once the animation is complete, this attribute will be removed.
908
- * This is done at the end of the `present` method.
909
- */
910
- overlay.setAttribute('aria-hidden', 'true');
902
+ if (isPlatform('android')) {
903
+ /**
904
+ * Once the animation is complete, this attribute will be removed.
905
+ * This is done at the end of the `present` method.
906
+ */
907
+ overlay.setAttribute('aria-hidden', 'true');
908
+ }
911
909
  };
912
910
  /**
913
911
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
@@ -16,7 +16,7 @@ const helpers = require('./helpers-afaa9001.js');
16
16
  const config = require('./config-4f60b98a.js');
17
17
  const theme = require('./theme-d1c573d2.js');
18
18
  const index$2 = require('./index-8e789962.js');
19
- const overlays = require('./overlays-b1531451.js');
19
+ const overlays = require('./overlays-56ca9a8a.js');
20
20
  require('./index-c8d52405.js');
21
21
  require('./index-73f75efb.js');
22
22
  require('./index-5915f9b3.js');
@@ -9,7 +9,7 @@ const index = require('./index-73f75efb.js');
9
9
  const buttonActive = require('./button-active-3f2f60b4.js');
10
10
  const helpers = require('./helpers-afaa9001.js');
11
11
  const lockController = require('./lock-controller-6585a42a.js');
12
- const overlays = require('./overlays-b1531451.js');
12
+ const overlays = require('./overlays-56ca9a8a.js');
13
13
  const theme = require('./theme-d1c573d2.js');
14
14
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
15
15
  const animation = require('./animation-b4fdf128.js');
@@ -10,7 +10,7 @@ const config = require('./config-4f60b98a.js');
10
10
  const buttonActive = require('./button-active-3f2f60b4.js');
11
11
  const helpers = require('./helpers-afaa9001.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
13
- const overlays = require('./overlays-b1531451.js');
13
+ const overlays = require('./overlays-56ca9a8a.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
16
16
  const animation = require('./animation-b4fdf128.js');
@@ -15,7 +15,7 @@ const index$2 = require('./index-073c7cdc.js');
15
15
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
16
16
  const data = require('./data-21dc0f81.js');
17
17
  const lockController = require('./lock-controller-6585a42a.js');
18
- const overlays = require('./overlays-b1531451.js');
18
+ const overlays = require('./overlays-56ca9a8a.js');
19
19
  const animation = require('./animation-b4fdf128.js');
20
20
  const haptic = require('./haptic-f6b37aa3.js');
21
21
  require('./index-c8d52405.js');
@@ -9,7 +9,7 @@ const index = require('./index-73f75efb.js');
9
9
  const config = require('./config-4f60b98a.js');
10
10
  const helpers = require('./helpers-afaa9001.js');
11
11
  const lockController = require('./lock-controller-6585a42a.js');
12
- const overlays = require('./overlays-b1531451.js');
12
+ const overlays = require('./overlays-56ca9a8a.js');
13
13
  const theme = require('./theme-d1c573d2.js');
14
14
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
15
15
  const animation = require('./animation-b4fdf128.js');
@@ -7,7 +7,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
9
  const cubicBezier = require('./cubic-bezier-f2dccc53.js');
10
- const overlays = require('./overlays-b1531451.js');
10
+ const overlays = require('./overlays-56ca9a8a.js');
11
11
  const gestureController = require('./gesture-controller-9436f482.js');
12
12
  const hardwareBackButton = require('./hardware-back-button-9e8a2c4f.js');
13
13
  const helpers = require('./helpers-afaa9001.js');
@@ -12,7 +12,7 @@ const helpers = require('./helpers-afaa9001.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
13
13
  const index$4 = require('./index-5915f9b3.js');
14
14
  const capacitor = require('./capacitor-c04564bf.js');
15
- const overlays = require('./overlays-b1531451.js');
15
+ const overlays = require('./overlays-56ca9a8a.js');
16
16
  const theme = require('./theme-d1c573d2.js');
17
17
  const index$5 = require('./index-f05acd21.js');
18
18
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
- const overlays = require('./overlays-b1531451.js');
9
+ const overlays = require('./overlays-56ca9a8a.js');
10
10
  const frameworkDelegate = require('./framework-delegate-55f5683a.js');
11
11
  const helpers = require('./helpers-afaa9001.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
@@ -7,7 +7,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-73f75efb.js');
9
9
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
10
- const overlays = require('./overlays-b1531451.js');
10
+ const overlays = require('./overlays-56ca9a8a.js');
11
11
  const theme = require('./theme-d1c573d2.js');
12
12
  require('./index-c8d52405.js');
13
13
  require('./helpers-afaa9001.js');
@@ -9,7 +9,7 @@ const index = require('./index-73f75efb.js');
9
9
  const notchController = require('./notch-controller-d69150f5.js');
10
10
  const compareWithUtils = require('./compare-with-utils-df1001d7.js');
11
11
  const helpers = require('./helpers-afaa9001.js');
12
- const overlays = require('./overlays-b1531451.js');
12
+ const overlays = require('./overlays-56ca9a8a.js');
13
13
  const dir = require('./dir-94c21456.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const watchOptions = require('./watch-options-f5f3e158.js');
@@ -10,7 +10,7 @@ const config = require('./config-4f60b98a.js');
10
10
  const helpers = require('./helpers-afaa9001.js');
11
11
  const lockController = require('./lock-controller-6585a42a.js');
12
12
  const index$1 = require('./index-5915f9b3.js');
13
- const overlays = require('./overlays-b1531451.js');
13
+ const overlays = require('./overlays-56ca9a8a.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
16
16
  const animation = require('./animation-b4fdf128.js');
@@ -514,6 +514,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
514
514
  }
515
515
  document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
516
516
  hideUnderlyingOverlaysFromScreenReaders(overlay.el);
517
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
517
518
  overlay.presented = true;
518
519
  overlay.willPresent.emit();
519
520
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -522,7 +523,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
522
523
  const animationBuilder = overlay.enterAnimation
523
524
  ? overlay.enterAnimation
524
525
  : ionicGlobal.config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
525
- // hideAnimatingOverlayFromScreenReaders(overlay.el);
526
526
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
527
527
  if (completed) {
528
528
  overlay.didPresent.emit();
@@ -697,24 +697,14 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
697
697
  if (!overlay.animated || !ionicGlobal.config.getBoolean('animated', true)) {
698
698
  animation.duration(0);
699
699
  }
700
- animation.beforeAddWrite(() => {
701
- console.log('beforeAddWrite');
702
- baseEl.setAttribute('aria-hidden', 'true');
703
- // add class 'test' to baseEl
704
- baseEl.classList.add('test');
705
- if (overlay.keyboardClose) {
700
+ if (overlay.keyboardClose) {
701
+ animation.beforeAddWrite(() => {
706
702
  const activeElement = baseEl.ownerDocument.activeElement;
707
703
  if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {
708
704
  activeElement.blur();
709
705
  }
710
- }
711
- });
712
- animation.afterAddWrite(() => {
713
- baseEl.removeAttribute('aria-hidden');
714
- // add test2 class to baseEl
715
- baseEl.classList.add('test2');
716
- console.log('afterAddWrite');
717
- });
706
+ });
707
+ }
718
708
  const activeAni = activeAnimations.get(overlay) || [];
719
709
  activeAnimations.set(overlay, [...activeAni, animation]);
720
710
  await animation.play();
@@ -898,18 +888,26 @@ const createTriggerController = () => {
898
888
  * If the overlay is being presented, it prevents focus rings from appearing
899
889
  * in incorrect positions due to the transition (specifically `transform`
900
890
  * styles), ensuring that when aria-hidden is removed, the focus rings are
901
- * correctly displayed in the final location of the elements.
891
+ * correctly displayed in the final location of the elements. This only
892
+ * applies to Android devices.
893
+ *
894
+ * If this solution is applied to iOS devices, then it leads to a bug where
895
+ * the overlays cannot be accessed by screen readers. This is due to
896
+ * VoiceOver not being able to update the accessibility tree when the
897
+ * `aria-hidden` is removed.
902
898
  *
903
899
  * @param overlay - The overlay that is being animated.
904
900
  */
905
901
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
906
902
  if (index.doc === undefined)
907
903
  return;
908
- /**
909
- * Once the animation is complete, this attribute will be removed.
910
- * This is done at the end of the `present` method.
911
- */
912
- overlay.setAttribute('aria-hidden', 'true');
904
+ if (ionicGlobal.isPlatform('android')) {
905
+ /**
906
+ * Once the animation is complete, this attribute will be removed.
907
+ * This is done at the end of the `present` method.
908
+ */
909
+ overlay.setAttribute('aria-hidden', 'true');
910
+ }
913
911
  };
914
912
  /**
915
913
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
@@ -11,6 +11,7 @@ import { BACKDROP_NO_SCROLL } from "./gesture/gesture-controller";
11
11
  import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
12
12
  import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot, removeEventListener, } from "./helpers";
13
13
  import { printIonWarning } from "./logging";
14
+ import { isPlatform } from "./platform";
14
15
  let lastOverlayIndex = 0;
15
16
  let lastId = 0;
16
17
  export const activeAnimations = new WeakMap();
@@ -439,6 +440,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
439
440
  }
440
441
  document.body.classList.add(BACKDROP_NO_SCROLL);
441
442
  hideUnderlyingOverlaysFromScreenReaders(overlay.el);
443
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
442
444
  overlay.presented = true;
443
445
  overlay.willPresent.emit();
444
446
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -447,7 +449,6 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
447
449
  const animationBuilder = overlay.enterAnimation
448
450
  ? overlay.enterAnimation
449
451
  : config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
450
- // hideAnimatingOverlayFromScreenReaders(overlay.el);
451
452
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
452
453
  if (completed) {
453
454
  overlay.didPresent.emit();
@@ -622,24 +623,14 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
622
623
  if (!overlay.animated || !config.getBoolean('animated', true)) {
623
624
  animation.duration(0);
624
625
  }
625
- animation.beforeAddWrite(() => {
626
- console.log('beforeAddWrite');
627
- baseEl.setAttribute('aria-hidden', 'true');
628
- // add class 'test' to baseEl
629
- baseEl.classList.add('test');
630
- if (overlay.keyboardClose) {
626
+ if (overlay.keyboardClose) {
627
+ animation.beforeAddWrite(() => {
631
628
  const activeElement = baseEl.ownerDocument.activeElement;
632
629
  if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {
633
630
  activeElement.blur();
634
631
  }
635
- }
636
- });
637
- animation.afterAddWrite(() => {
638
- baseEl.removeAttribute('aria-hidden');
639
- // add test2 class to baseEl
640
- baseEl.classList.add('test2');
641
- console.log('afterAddWrite');
642
- });
632
+ });
633
+ }
643
634
  const activeAni = activeAnimations.get(overlay) || [];
644
635
  activeAnimations.set(overlay, [...activeAni, animation]);
645
636
  await animation.play();
@@ -823,18 +814,26 @@ export const createTriggerController = () => {
823
814
  * If the overlay is being presented, it prevents focus rings from appearing
824
815
  * in incorrect positions due to the transition (specifically `transform`
825
816
  * styles), ensuring that when aria-hidden is removed, the focus rings are
826
- * correctly displayed in the final location of the elements.
817
+ * correctly displayed in the final location of the elements. This only
818
+ * applies to Android devices.
819
+ *
820
+ * If this solution is applied to iOS devices, then it leads to a bug where
821
+ * the overlays cannot be accessed by screen readers. This is due to
822
+ * VoiceOver not being able to update the accessibility tree when the
823
+ * `aria-hidden` is removed.
827
824
  *
828
825
  * @param overlay - The overlay that is being animated.
829
826
  */
830
827
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
831
828
  if (doc === undefined)
832
829
  return;
833
- /**
834
- * Once the animation is complete, this attribute will be removed.
835
- * This is done at the end of the `present` method.
836
- */
837
- overlay.setAttribute('aria-hidden', 'true');
830
+ if (isPlatform('android')) {
831
+ /**
832
+ * Once the animation is complete, this attribute will be removed.
833
+ * This is done at the end of the `present` method.
834
+ */
835
+ overlay.setAttribute('aria-hidden', 'true');
836
+ }
838
837
  };
839
838
  /**
840
839
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2024-11-19T00:44:42",
2
+ "timestamp": "2024-11-19T16:27:00",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
package/dist/esm/index.js CHANGED
@@ -12,7 +12,7 @@ export { c as componentOnReady } from './helpers-da915de8.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
14
  export { m as menuController } from './index-24b48b06.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-ef6070b3.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-74d44899.js';
16
16
  import './index-a5d50daf.js';
17
17
  import './index-28849c61.js';
18
18
  import './index-9b0d46f4.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, e as readTask, h, f as Host, i
5
5
  import { c as createButtonActiveGesture } from './button-active-f6503382.js';
6
6
  import { r as raf } from './helpers-da915de8.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-ef6070b3.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-74d44899.js';
9
9
  import { g as getClassMap } from './theme-01f3f29c.js';
10
10
  import { b as getIonMode } from './ionic-global-c81d82ab.js';
11
11
  import { c as createAnimation } from './animation-eab5a4ca.js';
@@ -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-f6503382.js';
7
7
  import { r as raf } from './helpers-da915de8.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-ef6070b3.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-74d44899.js';
10
10
  import { g as getClassMap } from './theme-01f3f29c.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-c81d82ab.js';
12
12
  import { c as createAnimation } from './animation-eab5a4ca.js';
@@ -11,7 +11,7 @@ import { c as chevronBack, o as chevronForward, l as chevronDown, p as caretUpSh
11
11
  import { b as getIonMode } from './ionic-global-c81d82ab.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 getLocalizedDateTime, O as formatValue, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data-ae11fd43.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-ef6070b3.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-74d44899.js';
15
15
  import { c as createAnimation } from './animation-eab5a4ca.js';
16
16
  import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-ac164e4c.js';
17
17
  import './index-a5d50daf.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, h, f as Host, i 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-da915de8.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-ef6070b3.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-74d44899.js';
9
9
  import { g as getClassMap } from './theme-01f3f29c.js';
10
10
  import { c as config, b as getIonMode } from './ionic-global-c81d82ab.js';
11
11
  import { c as createAnimation } from './animation-eab5a4ca.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, h, f as Host, i as getElement } from './index-28849c61.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
6
- import { o as getPresentedOverlay, B as BACKDROP, n as focusFirstDescendant, q as focusLastDescendant, G as GESTURE } from './overlays-ef6070b3.js';
6
+ import { o as getPresentedOverlay, B as BACKDROP, n as focusFirstDescendant, q as focusLastDescendant, G as GESTURE } from './overlays-74d44899.js';
7
7
  import { G as GESTURE_CONTROLLER } from './gesture-controller-314a54f6.js';
8
8
  import { shouldUseCloseWatcher } from './hardware-back-button-06ef3c3e.js';
9
9
  import { n as isEndSide, i as inheritAriaAttributes, m as assert, j as clamp } from './helpers-da915de8.js';
@@ -8,7 +8,7 @@ import { g as getElementRoot, j as clamp, r as raf, h as inheritAttributes, k 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, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-ef6070b3.js';
11
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-74d44899.js';
12
12
  import { g as getClassMap } from './theme-01f3f29c.js';
13
13
  import { e as deepReady, w as waitForMount } from './index-3ad7f18b.js';
14
14
  import { b as getIonMode, c as config } from './ionic-global-c81d82ab.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, h, f as Host, i as getElement } from './index-28849c61.js';
5
- import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-ef6070b3.js';
5
+ import { B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as focusFirstDescendant, g as dismiss, h as eventMethod, F as FOCUS_TRAP_DISABLE_CLASS } from './overlays-74d44899.js';
6
6
  import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-63d1a679.js';
7
7
  import { r as raf, g as getElementRoot, a as addEventListener, k as hasLazyBuild } from './helpers-da915de8.js';
8
8
  import { c as createLockController } from './lock-controller-316928be.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { r as registerInstance, h, j as forceUpdate, f as Host, i as getElement } from './index-28849c61.js';
5
5
  import { b as getIonMode } from './ionic-global-c81d82ab.js';
6
- import { s as safeCall } from './overlays-ef6070b3.js';
6
+ import { s as safeCall } from './overlays-74d44899.js';
7
7
  import { g as getClassMap } from './theme-01f3f29c.js';
8
8
  import './index-a5d50daf.js';
9
9
  import './helpers-da915de8.js';
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, h, f as Host, i as getElement,
5
5
  import { c as createNotchController } from './notch-controller-55b09e11.js';
6
6
  import { i as isOptionSelected, c as compareOptions } from './compare-with-utils-a96ff2ea.js';
7
7
  import { h as inheritAttributes, f as focusVisibleElement, d as renderHiddenInput } from './helpers-da915de8.js';
8
- import { c as popoverController, b as actionSheetController, a as alertController, m as modalController, s as safeCall } from './overlays-ef6070b3.js';
8
+ import { c as popoverController, b as actionSheetController, a as alertController, m as modalController, s as safeCall } from './overlays-74d44899.js';
9
9
  import { i as isRTL } from './dir-babeabeb.js';
10
10
  import { h as hostContext, c as createColorClasses, g as getClassMap } from './theme-01f3f29c.js';
11
11
  import { w as watchForOptions } from './watch-options-c2911ace.js';
@@ -6,7 +6,7 @@ import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './conf
6
6
  import { g as getElementRoot, r as raf } from './helpers-da915de8.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-ef6070b3.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-74d44899.js';
10
10
  import { c as createColorClasses, g as getClassMap } from './theme-01f3f29c.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-c81d82ab.js';
12
12
  import { c as createAnimation } from './animation-eab5a4ca.js';
@@ -4,7 +4,7 @@
4
4
  import { d as doc } from './index-a5d50daf.js';
5
5
  import { f as focusVisibleElement, c as componentOnReady, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-da915de8.js';
6
6
  import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button-06ef3c3e.js';
7
- import { b as getIonMode, c as config } from './ionic-global-c81d82ab.js';
7
+ import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-c81d82ab.js';
8
8
  import { C as CoreDelegate } from './framework-delegate-63d1a679.js';
9
9
  import { B as BACKDROP_NO_SCROLL } from './gesture-controller-314a54f6.js';
10
10
  import { p as printIonWarning } from './index-9b0d46f4.js';
@@ -512,6 +512,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
512
512
  }
513
513
  document.body.classList.add(BACKDROP_NO_SCROLL);
514
514
  hideUnderlyingOverlaysFromScreenReaders(overlay.el);
515
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
515
516
  overlay.presented = true;
516
517
  overlay.willPresent.emit();
517
518
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -520,7 +521,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
520
521
  const animationBuilder = overlay.enterAnimation
521
522
  ? overlay.enterAnimation
522
523
  : config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);
523
- // hideAnimatingOverlayFromScreenReaders(overlay.el);
524
524
  const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
525
525
  if (completed) {
526
526
  overlay.didPresent.emit();
@@ -695,24 +695,14 @@ const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
695
695
  if (!overlay.animated || !config.getBoolean('animated', true)) {
696
696
  animation.duration(0);
697
697
  }
698
- animation.beforeAddWrite(() => {
699
- console.log('beforeAddWrite');
700
- baseEl.setAttribute('aria-hidden', 'true');
701
- // add class 'test' to baseEl
702
- baseEl.classList.add('test');
703
- if (overlay.keyboardClose) {
698
+ if (overlay.keyboardClose) {
699
+ animation.beforeAddWrite(() => {
704
700
  const activeElement = baseEl.ownerDocument.activeElement;
705
701
  if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {
706
702
  activeElement.blur();
707
703
  }
708
- }
709
- });
710
- animation.afterAddWrite(() => {
711
- baseEl.removeAttribute('aria-hidden');
712
- // add test2 class to baseEl
713
- baseEl.classList.add('test2');
714
- console.log('afterAddWrite');
715
- });
704
+ });
705
+ }
716
706
  const activeAni = activeAnimations.get(overlay) || [];
717
707
  activeAnimations.set(overlay, [...activeAni, animation]);
718
708
  await animation.play();
@@ -896,18 +886,26 @@ const createTriggerController = () => {
896
886
  * If the overlay is being presented, it prevents focus rings from appearing
897
887
  * in incorrect positions due to the transition (specifically `transform`
898
888
  * styles), ensuring that when aria-hidden is removed, the focus rings are
899
- * correctly displayed in the final location of the elements.
889
+ * correctly displayed in the final location of the elements. This only
890
+ * applies to Android devices.
891
+ *
892
+ * If this solution is applied to iOS devices, then it leads to a bug where
893
+ * the overlays cannot be accessed by screen readers. This is due to
894
+ * VoiceOver not being able to update the accessibility tree when the
895
+ * `aria-hidden` is removed.
900
896
  *
901
897
  * @param overlay - The overlay that is being animated.
902
898
  */
903
899
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
904
900
  if (doc === undefined)
905
901
  return;
906
- /**
907
- * Once the animation is complete, this attribute will be removed.
908
- * This is done at the end of the `present` method.
909
- */
910
- overlay.setAttribute('aria-hidden', 'true');
902
+ if (isPlatform('android')) {
903
+ /**
904
+ * Once the animation is complete, this attribute will be removed.
905
+ * This is done at the end of the `present` method.
906
+ */
907
+ overlay.setAttribute('aria-hidden', 'true');
908
+ }
911
909
  };
912
910
  /**
913
911
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export{c as createAnimation}from"./animation-eab5a4ca.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"./index-3ad7f18b.js";export{iosTransitionAnimation}from"./ios.transition-4ee1a3af.js";export{mdTransitionAnimation}from"./md.transition-5106a0d2.js";export{g as getTimeGivenProgression}from"./cubic-bezier-fe2083dc.js";export{createGesture}from"./index-39782642.js";export{g as getPlatforms,i as initialize,a as isPlatform}from"./ionic-global-c81d82ab.js";export{c as componentOnReady}from"./helpers-da915de8.js";export{I as IonicSafeString,g as getMode,s as setupConfig}from"./config-49c88215.js";export{o as openURL}from"./theme-01f3f29c.js";export{m as menuController}from"./index-24b48b06.js";export{b as actionSheetController,a as alertController,l as loadingController,m as modalController,p as pickerController,c as popoverController,t as toastController}from"./overlays-ef6070b3.js";import"./index-a5d50daf.js";import"./index-28849c61.js";import"./index-9b0d46f4.js";import"./gesture-controller-314a54f6.js";import"./hardware-back-button-06ef3c3e.js";import"./framework-delegate-63d1a679.js";var IonicSlides=function(e){var o=e.swiper,t=e.extendParams;var s={effect:undefined,direction:"horizontal",initialSlide:0,loop:false,parallax:false,slidesPerView:1,spaceBetween:0,speed:300,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:false,slidesOffsetBefore:0,slidesOffsetAfter:0,touchEventsTarget:"container",freeMode:false,freeModeMomentum:true,freeModeMomentumRatio:1,freeModeMomentumBounce:true,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:false,freeModeMinimumVelocity:.02,autoHeight:false,setWrapperSize:false,zoom:{maxRatio:3,minRatio:1,toggle:false},touchRatio:1,touchAngle:45,simulateTouch:true,touchStartPreventDefault:false,shortSwipes:true,longSwipes:true,longSwipesRatio:.5,longSwipesMs:300,followFinger:true,threshold:0,touchMoveStopPropagation:true,touchReleaseOnEdges:false,iOSEdgeSwipeDetection:false,iOSEdgeSwipeThreshold:20,resistance:true,resistanceRatio:.85,watchSlidesProgress:false,watchSlidesVisibility:false,preventClicks:true,preventClicksPropagation:true,slideToClickedSlide:false,loopAdditionalSlides:0,noSwiping:true,runCallbacksOnInit:true,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:true},flipEffect:{slideShadows:true,limitRotation:true},cubeEffect:{slideShadows:true,shadow:true,shadowOffset:20,shadowScale:.94},fadeEffect:{crossFade:false},a11y:{prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide"}};if(o.pagination){s.pagination={type:"bullets",clickable:false,hideOnClick:false}}if(o.scrollbar){s.scrollbar={hide:true}}t(s)};export{IonicSlides};
4
+ export{c as createAnimation}from"./animation-eab5a4ca.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"./index-3ad7f18b.js";export{iosTransitionAnimation}from"./ios.transition-4ee1a3af.js";export{mdTransitionAnimation}from"./md.transition-5106a0d2.js";export{g as getTimeGivenProgression}from"./cubic-bezier-fe2083dc.js";export{createGesture}from"./index-39782642.js";export{g as getPlatforms,i as initialize,a as isPlatform}from"./ionic-global-c81d82ab.js";export{c as componentOnReady}from"./helpers-da915de8.js";export{I as IonicSafeString,g as getMode,s as setupConfig}from"./config-49c88215.js";export{o as openURL}from"./theme-01f3f29c.js";export{m as menuController}from"./index-24b48b06.js";export{b as actionSheetController,a as alertController,l as loadingController,m as modalController,p as pickerController,c as popoverController,t as toastController}from"./overlays-74d44899.js";import"./index-a5d50daf.js";import"./index-28849c61.js";import"./index-9b0d46f4.js";import"./gesture-controller-314a54f6.js";import"./hardware-back-button-06ef3c3e.js";import"./framework-delegate-63d1a679.js";var IonicSlides=function(e){var o=e.swiper,t=e.extendParams;var s={effect:undefined,direction:"horizontal",initialSlide:0,loop:false,parallax:false,slidesPerView:1,spaceBetween:0,speed:300,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:false,slidesOffsetBefore:0,slidesOffsetAfter:0,touchEventsTarget:"container",freeMode:false,freeModeMomentum:true,freeModeMomentumRatio:1,freeModeMomentumBounce:true,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:false,freeModeMinimumVelocity:.02,autoHeight:false,setWrapperSize:false,zoom:{maxRatio:3,minRatio:1,toggle:false},touchRatio:1,touchAngle:45,simulateTouch:true,touchStartPreventDefault:false,shortSwipes:true,longSwipes:true,longSwipesRatio:.5,longSwipesMs:300,followFinger:true,threshold:0,touchMoveStopPropagation:true,touchReleaseOnEdges:false,iOSEdgeSwipeDetection:false,iOSEdgeSwipeThreshold:20,resistance:true,resistanceRatio:.85,watchSlidesProgress:false,watchSlidesVisibility:false,preventClicks:true,preventClicksPropagation:true,slideToClickedSlide:false,loopAdditionalSlides:0,noSwiping:true,runCallbacksOnInit:true,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:true},flipEffect:{slideShadows:true,limitRotation:true},cubeEffect:{slideShadows:true,shadow:true,shadowOffset:20,shadowScale:.94},fadeEffect:{crossFade:false},a11y:{prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide"}};if(o.pagination){s.pagination={type:"bullets",clickable:false,hideOnClick:false}}if(o.scrollbar){s.scrollbar={hide:true}}t(s)};export{IonicSlides};