@ionic/core 8.3.3-dev.11729273172.1491efca → 8.3.3-dev.11729276019.194c165c
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.
- package/components/overlays.js +30 -12
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-toast.cjs.entry.js +1 -1
- package/dist/cjs/{overlays-09efe8cf.js → overlays-0967e6f7.js} +30 -12
- package/dist/collection/utils/overlays.js +30 -12
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +1 -1
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +1 -1
- package/dist/esm/ion-toast.entry.js +1 -1
- package/dist/esm/{overlays-09e99518.js → overlays-b03e05f3.js} +30 -12
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/overlays-b03e05f3.js +4 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-0f4ccfac.entry.js → p-0850e9e8.entry.js} +1 -1
- package/dist/ionic/{p-8308852a.entry.js → p-1661b2a8.entry.js} +1 -1
- package/dist/ionic/{p-29aed099.system.entry.js → p-1dd61d52.system.entry.js} +1 -1
- package/dist/ionic/p-27831b77.system.js +4 -0
- package/dist/ionic/p-322c5fb4.system.js +1 -1
- package/dist/ionic/{p-5223e02c.system.entry.js → p-387844ba.system.entry.js} +1 -1
- package/dist/ionic/p-3900b510.js +4 -0
- package/dist/ionic/{p-405ebc77.system.entry.js → p-4a1e94c5.system.entry.js} +1 -1
- package/dist/ionic/{p-de24771e.system.entry.js → p-511d20b7.system.entry.js} +1 -1
- package/dist/ionic/{p-dff3bb02.entry.js → p-5b488563.entry.js} +1 -1
- package/dist/ionic/{p-a602efff.system.entry.js → p-635751c3.system.entry.js} +1 -1
- package/dist/ionic/{p-7a4f349d.entry.js → p-6632f5fe.entry.js} +1 -1
- package/dist/ionic/{p-a11d0b0e.system.entry.js → p-7c6dc1d4.system.entry.js} +1 -1
- package/dist/ionic/{p-35efc652.entry.js → p-7cb373ca.entry.js} +1 -1
- package/dist/ionic/{p-3e87d5e0.entry.js → p-9c2ce2a3.entry.js} +1 -1
- package/dist/ionic/{p-71c4ed49.entry.js → p-9dd5e2f7.entry.js} +1 -1
- package/dist/ionic/{p-af5df052.system.entry.js → p-acb09788.system.entry.js} +1 -1
- package/dist/ionic/{p-e724ca6f.system.entry.js → p-b3b00780.system.entry.js} +1 -1
- package/dist/ionic/{p-581f0672.system.js → p-bc76a6c7.system.js} +1 -1
- package/dist/ionic/{p-96ab1fd9.entry.js → p-cd10a213.entry.js} +1 -1
- package/dist/ionic/{p-74a58898.system.entry.js → p-d0d9e48e.system.entry.js} +1 -1
- package/dist/ionic/{p-c62ac566.entry.js → p-f88938a4.entry.js} +1 -1
- package/hydrate/index.js +30 -12
- package/hydrate/index.mjs +30 -12
- package/package.json +1 -1
- package/dist/esm-es5/overlays-09e99518.js +0 -4
- package/dist/ionic/p-8b324420.system.js +0 -4
- package/dist/ionic/p-8cbeee8d.js +0 -4
package/components/overlays.js
CHANGED
|
@@ -503,18 +503,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
503
503
|
setRootAriaHidden(true);
|
|
504
504
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
505
505
|
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
506
|
-
|
|
507
|
-
* Set aria-hidden="true" to hide the overlay from screen readers
|
|
508
|
-
* during the animation. This ensures that assistive technologies
|
|
509
|
-
* like TalkBack do not announce or interact with the content until
|
|
510
|
-
* the animation is complete, avoiding confusion for users.
|
|
511
|
-
*
|
|
512
|
-
* Additionally, it prevents focus rings from appearing in incorrect
|
|
513
|
-
* positions due to the transition (specifically `transform` styles),
|
|
514
|
-
* ensuring that when aria-hidden is removed, the focus rings are
|
|
515
|
-
* correctly displayed in the final location of the elements.
|
|
516
|
-
*/
|
|
517
|
-
overlay.el.setAttribute('aria-hidden', 'true');
|
|
506
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
518
507
|
overlay.presented = true;
|
|
519
508
|
overlay.willPresent.emit();
|
|
520
509
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -554,6 +543,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
554
543
|
* it would still have aria-hidden on being presented again.
|
|
555
544
|
* Removing it here ensures the overlay is visible to screen
|
|
556
545
|
* readers.
|
|
546
|
+
*
|
|
547
|
+
* If this overlay was being presented, then it was hidden
|
|
548
|
+
* from screen readers during the animation. Now that the
|
|
549
|
+
* animation is complete, we can reveal the overlay to
|
|
550
|
+
* screen readers.
|
|
557
551
|
*/
|
|
558
552
|
overlay.el.removeAttribute('aria-hidden');
|
|
559
553
|
};
|
|
@@ -622,6 +616,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
622
616
|
}
|
|
623
617
|
overlay.presented = false;
|
|
624
618
|
try {
|
|
619
|
+
/**
|
|
620
|
+
* There is no need to show the overlay to screen readers during
|
|
621
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
622
|
+
* from the DOM after the animation is complete.
|
|
623
|
+
*/
|
|
624
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
625
625
|
// Overlay contents should not be clickable during dismiss
|
|
626
626
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
627
627
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -856,6 +856,24 @@ const createTriggerController = () => {
|
|
|
856
856
|
removeClickListener,
|
|
857
857
|
};
|
|
858
858
|
};
|
|
859
|
+
/**
|
|
860
|
+
* The overlay that is being animated also needs to hide from screen
|
|
861
|
+
* readers during its animation. This ensures that assistive technologies
|
|
862
|
+
* like TalkBack do not announce or interact with the content until the
|
|
863
|
+
* animation is complete, avoiding confusion for users.
|
|
864
|
+
*
|
|
865
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
866
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
867
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
868
|
+
* correctly displayed in the final location of the elements.
|
|
869
|
+
*
|
|
870
|
+
* @param overlay - The overlay that is being animated.
|
|
871
|
+
*/
|
|
872
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
873
|
+
if (doc === undefined)
|
|
874
|
+
return;
|
|
875
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
876
|
+
};
|
|
859
877
|
/**
|
|
860
878
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
861
879
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -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-9cd00dc3.js');
|
|
19
|
-
const overlays = require('./overlays-
|
|
19
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
12
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
13
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
18
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
12
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
10
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
15
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
9
|
+
const overlays = require('./overlays-0967e6f7.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');
|
|
@@ -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-
|
|
12
|
+
const overlays = require('./overlays-0967e6f7.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-
|
|
13
|
+
const overlays = require('./overlays-0967e6f7.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');
|
|
@@ -505,18 +505,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
505
505
|
setRootAriaHidden(true);
|
|
506
506
|
document.body.classList.add(gestureController.BACKDROP_NO_SCROLL);
|
|
507
507
|
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
508
|
-
|
|
509
|
-
* Set aria-hidden="true" to hide the overlay from screen readers
|
|
510
|
-
* during the animation. This ensures that assistive technologies
|
|
511
|
-
* like TalkBack do not announce or interact with the content until
|
|
512
|
-
* the animation is complete, avoiding confusion for users.
|
|
513
|
-
*
|
|
514
|
-
* Additionally, it prevents focus rings from appearing in incorrect
|
|
515
|
-
* positions due to the transition (specifically `transform` styles),
|
|
516
|
-
* ensuring that when aria-hidden is removed, the focus rings are
|
|
517
|
-
* correctly displayed in the final location of the elements.
|
|
518
|
-
*/
|
|
519
|
-
overlay.el.setAttribute('aria-hidden', 'true');
|
|
508
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
520
509
|
overlay.presented = true;
|
|
521
510
|
overlay.willPresent.emit();
|
|
522
511
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -556,6 +545,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
556
545
|
* it would still have aria-hidden on being presented again.
|
|
557
546
|
* Removing it here ensures the overlay is visible to screen
|
|
558
547
|
* readers.
|
|
548
|
+
*
|
|
549
|
+
* If this overlay was being presented, then it was hidden
|
|
550
|
+
* from screen readers during the animation. Now that the
|
|
551
|
+
* animation is complete, we can reveal the overlay to
|
|
552
|
+
* screen readers.
|
|
559
553
|
*/
|
|
560
554
|
overlay.el.removeAttribute('aria-hidden');
|
|
561
555
|
};
|
|
@@ -624,6 +618,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
624
618
|
}
|
|
625
619
|
overlay.presented = false;
|
|
626
620
|
try {
|
|
621
|
+
/**
|
|
622
|
+
* There is no need to show the overlay to screen readers during
|
|
623
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
624
|
+
* from the DOM after the animation is complete.
|
|
625
|
+
*/
|
|
626
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
627
627
|
// Overlay contents should not be clickable during dismiss
|
|
628
628
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
629
629
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -858,6 +858,24 @@ const createTriggerController = () => {
|
|
|
858
858
|
removeClickListener,
|
|
859
859
|
};
|
|
860
860
|
};
|
|
861
|
+
/**
|
|
862
|
+
* The overlay that is being animated also needs to hide from screen
|
|
863
|
+
* readers during its animation. This ensures that assistive technologies
|
|
864
|
+
* like TalkBack do not announce or interact with the content until the
|
|
865
|
+
* animation is complete, avoiding confusion for users.
|
|
866
|
+
*
|
|
867
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
868
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
869
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
870
|
+
* correctly displayed in the final location of the elements.
|
|
871
|
+
*
|
|
872
|
+
* @param overlay - The overlay that is being animated.
|
|
873
|
+
*/
|
|
874
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
875
|
+
if (index.doc === undefined)
|
|
876
|
+
return;
|
|
877
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
878
|
+
};
|
|
861
879
|
/**
|
|
862
880
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
863
881
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
|
@@ -430,18 +430,7 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
430
430
|
setRootAriaHidden(true);
|
|
431
431
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
432
432
|
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
433
|
-
|
|
434
|
-
* Set aria-hidden="true" to hide the overlay from screen readers
|
|
435
|
-
* during the animation. This ensures that assistive technologies
|
|
436
|
-
* like TalkBack do not announce or interact with the content until
|
|
437
|
-
* the animation is complete, avoiding confusion for users.
|
|
438
|
-
*
|
|
439
|
-
* Additionally, it prevents focus rings from appearing in incorrect
|
|
440
|
-
* positions due to the transition (specifically `transform` styles),
|
|
441
|
-
* ensuring that when aria-hidden is removed, the focus rings are
|
|
442
|
-
* correctly displayed in the final location of the elements.
|
|
443
|
-
*/
|
|
444
|
-
overlay.el.setAttribute('aria-hidden', 'true');
|
|
433
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
445
434
|
overlay.presented = true;
|
|
446
435
|
overlay.willPresent.emit();
|
|
447
436
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -481,6 +470,11 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
|
|
|
481
470
|
* it would still have aria-hidden on being presented again.
|
|
482
471
|
* Removing it here ensures the overlay is visible to screen
|
|
483
472
|
* readers.
|
|
473
|
+
*
|
|
474
|
+
* If this overlay was being presented, then it was hidden
|
|
475
|
+
* from screen readers during the animation. Now that the
|
|
476
|
+
* animation is complete, we can reveal the overlay to
|
|
477
|
+
* screen readers.
|
|
484
478
|
*/
|
|
485
479
|
overlay.el.removeAttribute('aria-hidden');
|
|
486
480
|
};
|
|
@@ -549,6 +543,12 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
|
|
|
549
543
|
}
|
|
550
544
|
overlay.presented = false;
|
|
551
545
|
try {
|
|
546
|
+
/**
|
|
547
|
+
* There is no need to show the overlay to screen readers during
|
|
548
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
549
|
+
* from the DOM after the animation is complete.
|
|
550
|
+
*/
|
|
551
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
552
552
|
// Overlay contents should not be clickable during dismiss
|
|
553
553
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
554
554
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -783,6 +783,24 @@ export const createTriggerController = () => {
|
|
|
783
783
|
removeClickListener,
|
|
784
784
|
};
|
|
785
785
|
};
|
|
786
|
+
/**
|
|
787
|
+
* The overlay that is being animated also needs to hide from screen
|
|
788
|
+
* readers during its animation. This ensures that assistive technologies
|
|
789
|
+
* like TalkBack do not announce or interact with the content until the
|
|
790
|
+
* animation is complete, avoiding confusion for users.
|
|
791
|
+
*
|
|
792
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
793
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
794
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
795
|
+
* correctly displayed in the final location of the elements.
|
|
796
|
+
*
|
|
797
|
+
* @param overlay - The overlay that is being animated.
|
|
798
|
+
*/
|
|
799
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
800
|
+
if (doc === undefined)
|
|
801
|
+
return;
|
|
802
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
803
|
+
};
|
|
786
804
|
/**
|
|
787
805
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
788
806
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
package/dist/docs.json
CHANGED
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-fe1782b1.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-
|
|
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-b03e05f3.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-
|
|
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-b03e05f3.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-
|
|
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-b03e05f3.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-
|
|
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-b03e05f3.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-
|
|
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-b03e05f3.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, n as focusFirstDescendant, q as focusLastDescendant } from './overlays-
|
|
6
|
+
import { o as getPresentedOverlay, n as focusFirstDescendant, q as focusLastDescendant } from './overlays-b03e05f3.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-
|
|
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-b03e05f3.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-
|
|
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-b03e05f3.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';
|
|
@@ -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, s as safeCall } from './overlays-
|
|
8
|
+
import { c as popoverController, b as actionSheetController, a as alertController, s as safeCall } from './overlays-b03e05f3.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-
|
|
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-b03e05f3.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';
|
|
@@ -503,18 +503,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
503
503
|
setRootAriaHidden(true);
|
|
504
504
|
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
505
505
|
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
506
|
-
|
|
507
|
-
* Set aria-hidden="true" to hide the overlay from screen readers
|
|
508
|
-
* during the animation. This ensures that assistive technologies
|
|
509
|
-
* like TalkBack do not announce or interact with the content until
|
|
510
|
-
* the animation is complete, avoiding confusion for users.
|
|
511
|
-
*
|
|
512
|
-
* Additionally, it prevents focus rings from appearing in incorrect
|
|
513
|
-
* positions due to the transition (specifically `transform` styles),
|
|
514
|
-
* ensuring that when aria-hidden is removed, the focus rings are
|
|
515
|
-
* correctly displayed in the final location of the elements.
|
|
516
|
-
*/
|
|
517
|
-
overlay.el.setAttribute('aria-hidden', 'true');
|
|
506
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
518
507
|
overlay.presented = true;
|
|
519
508
|
overlay.willPresent.emit();
|
|
520
509
|
(_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
|
|
@@ -554,6 +543,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
554
543
|
* it would still have aria-hidden on being presented again.
|
|
555
544
|
* Removing it here ensures the overlay is visible to screen
|
|
556
545
|
* readers.
|
|
546
|
+
*
|
|
547
|
+
* If this overlay was being presented, then it was hidden
|
|
548
|
+
* from screen readers during the animation. Now that the
|
|
549
|
+
* animation is complete, we can reveal the overlay to
|
|
550
|
+
* screen readers.
|
|
557
551
|
*/
|
|
558
552
|
overlay.el.removeAttribute('aria-hidden');
|
|
559
553
|
};
|
|
@@ -622,6 +616,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
622
616
|
}
|
|
623
617
|
overlay.presented = false;
|
|
624
618
|
try {
|
|
619
|
+
/**
|
|
620
|
+
* There is no need to show the overlay to screen readers during
|
|
621
|
+
* the dismiss animation. This is because the overlay will be removed
|
|
622
|
+
* from the DOM after the animation is complete.
|
|
623
|
+
*/
|
|
624
|
+
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
625
625
|
// Overlay contents should not be clickable during dismiss
|
|
626
626
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
627
627
|
overlay.willDismiss.emit({ data, role });
|
|
@@ -856,6 +856,24 @@ const createTriggerController = () => {
|
|
|
856
856
|
removeClickListener,
|
|
857
857
|
};
|
|
858
858
|
};
|
|
859
|
+
/**
|
|
860
|
+
* The overlay that is being animated also needs to hide from screen
|
|
861
|
+
* readers during its animation. This ensures that assistive technologies
|
|
862
|
+
* like TalkBack do not announce or interact with the content until the
|
|
863
|
+
* animation is complete, avoiding confusion for users.
|
|
864
|
+
*
|
|
865
|
+
* If the overlay is being presented, it prevents focus rings from appearing
|
|
866
|
+
* in incorrect positions due to the transition (specifically `transform`
|
|
867
|
+
* styles), ensuring that when aria-hidden is removed, the focus rings are
|
|
868
|
+
* correctly displayed in the final location of the elements.
|
|
869
|
+
*
|
|
870
|
+
* @param overlay - The overlay that is being animated.
|
|
871
|
+
*/
|
|
872
|
+
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
873
|
+
if (doc === undefined)
|
|
874
|
+
return;
|
|
875
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
876
|
+
};
|
|
859
877
|
/**
|
|
860
878
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
861
879
|
* cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
|
package/dist/esm-es5/index.js
CHANGED
|
@@ -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-fe1782b1.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-
|
|
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-fe1782b1.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-b03e05f3.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};
|