@ionic/core 8.4.1-dev.11732219984.1b9a256c → 8.4.1-dev.11732305980.19d90e1c

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 (112) hide show
  1. package/components/header.js +21 -2
  2. package/components/index4.js +1 -1
  3. package/components/ion-menu.js +32 -5
  4. package/components/overlays.js +27 -12
  5. package/components/radio-group.js +8 -2
  6. package/dist/cjs/{index-dfb3f752.js → index-8e789962.js} +1 -1
  7. package/dist/cjs/index.cjs.js +2 -2
  8. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  9. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  10. package/dist/cjs/ion-app_8.cjs.entry.js +21 -2
  11. package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
  12. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  13. package/dist/cjs/ion-menu_3.cjs.entry.js +34 -7
  14. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  15. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  16. package/dist/cjs/ion-radio_2.cjs.entry.js +6 -1
  17. package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  20. package/dist/cjs/ionic.cjs.js +1 -1
  21. package/dist/cjs/loader.cjs.js +1 -1
  22. package/dist/cjs/{overlays-ba0f6986.js → overlays-aa669eb8.js} +26 -11
  23. package/dist/collection/components/header/header.utils.js +21 -2
  24. package/dist/collection/components/menu/menu.ios.css +1 -4
  25. package/dist/collection/components/menu/menu.js +30 -2
  26. package/dist/collection/components/menu/menu.md.css +1 -4
  27. package/dist/collection/components/radio-group/radio-group.js +30 -1
  28. package/dist/collection/utils/focus-trap.js +8 -2
  29. package/dist/collection/utils/menu-controller/animations/overlay.js +1 -1
  30. package/dist/collection/utils/overlays.js +19 -9
  31. package/dist/docs.json +1 -1
  32. package/dist/esm/{index-49472991.js → index-24b48b06.js} +1 -1
  33. package/dist/esm/index.js +2 -2
  34. package/dist/esm/ion-action-sheet.entry.js +1 -1
  35. package/dist/esm/ion-alert.entry.js +1 -1
  36. package/dist/esm/ion-app_8.entry.js +21 -2
  37. package/dist/esm/ion-datetime_3.entry.js +1 -1
  38. package/dist/esm/ion-loading.entry.js +1 -1
  39. package/dist/esm/ion-menu_3.entry.js +34 -7
  40. package/dist/esm/ion-modal.entry.js +1 -1
  41. package/dist/esm/ion-popover.entry.js +1 -1
  42. package/dist/esm/ion-radio_2.entry.js +6 -1
  43. package/dist/esm/ion-select-modal.entry.js +1 -1
  44. package/dist/esm/ion-select_3.entry.js +1 -1
  45. package/dist/esm/ion-toast.entry.js +1 -1
  46. package/dist/esm/ionic.js +1 -1
  47. package/dist/esm/loader.js +1 -1
  48. package/dist/esm/{overlays-ae10d43d.js → overlays-e7b9d6d9.js} +27 -12
  49. package/dist/esm-es5/index-24b48b06.js +4 -0
  50. package/dist/esm-es5/index.js +1 -1
  51. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  52. package/dist/esm-es5/ion-alert.entry.js +1 -1
  53. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  54. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  55. package/dist/esm-es5/ion-loading.entry.js +1 -1
  56. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  57. package/dist/esm-es5/ion-modal.entry.js +1 -1
  58. package/dist/esm-es5/ion-popover.entry.js +1 -1
  59. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  60. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  61. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  62. package/dist/esm-es5/ion-toast.entry.js +1 -1
  63. package/dist/esm-es5/ionic.js +1 -1
  64. package/dist/esm-es5/loader.js +1 -1
  65. package/dist/esm-es5/overlays-e7b9d6d9.js +4 -0
  66. package/dist/ionic/index.esm.js +1 -1
  67. package/dist/ionic/ionic.esm.js +1 -1
  68. package/dist/ionic/p-0aa833fb.system.js +4 -0
  69. package/dist/ionic/{p-5393e8bb.system.entry.js → p-1046866e.system.entry.js} +1 -1
  70. package/dist/ionic/p-12a722b8.system.entry.js +4 -0
  71. package/dist/ionic/{p-5b5c1505.system.entry.js → p-14e159ea.system.entry.js} +1 -1
  72. package/dist/ionic/p-19a5be0a.entry.js +4 -0
  73. package/dist/ionic/{p-0161caf9.system.entry.js → p-1fe02220.system.entry.js} +1 -1
  74. package/dist/ionic/{p-f10b70a1.entry.js → p-2b9b78c7.entry.js} +1 -1
  75. package/dist/ionic/{p-2ae283ce.system.entry.js → p-2bd0ae94.system.entry.js} +2 -2
  76. package/dist/ionic/p-322c5fb4.system.js +1 -1
  77. package/dist/ionic/p-508d024a.entry.js +4 -0
  78. package/dist/ionic/{p-6734db42.system.entry.js → p-626fd66d.system.entry.js} +1 -1
  79. package/dist/ionic/{p-857ca696.system.entry.js → p-6499df44.system.entry.js} +1 -1
  80. package/dist/ionic/{p-a1dee17f.entry.js → p-6b280620.entry.js} +1 -1
  81. package/dist/ionic/{p-1c1b8e1f.entry.js → p-6d6cedc5.entry.js} +1 -1
  82. package/dist/ionic/{p-1ebd1e27.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
  83. package/dist/ionic/{p-ee7ba749.entry.js → p-8b8be2fd.entry.js} +1 -1
  84. package/dist/ionic/{p-a34b4d94.entry.js → p-942b5e13.entry.js} +1 -1
  85. package/dist/ionic/{p-a1b9a163.entry.js → p-982315a6.entry.js} +1 -1
  86. package/dist/ionic/{p-a1051806.entry.js → p-9e33104d.entry.js} +1 -1
  87. package/dist/ionic/{p-9910f786.entry.js → p-a43467d8.entry.js} +1 -1
  88. package/dist/ionic/{p-1b7605a7.system.entry.js → p-b2272f51.system.entry.js} +1 -1
  89. package/dist/ionic/{p-4a274c89.entry.js → p-b79ba17c.entry.js} +1 -1
  90. package/dist/ionic/p-b82d4cab.js +4 -0
  91. package/dist/ionic/{p-73d19329.system.js → p-c449820c.system.js} +1 -1
  92. package/dist/ionic/{p-5972efea.system.entry.js → p-ddaa748a.system.entry.js} +1 -1
  93. package/dist/ionic/{p-1e41f2aa.system.entry.js → p-e4f69534.system.entry.js} +1 -1
  94. package/dist/ionic/p-e6635685.js +4 -0
  95. package/dist/ionic/p-e7ed4a7f.system.js +4 -0
  96. package/dist/ionic/{p-d7e982e7.system.entry.js → p-e85d901b.system.entry.js} +1 -1
  97. package/dist/ionic/{p-e2252ad6.entry.js → p-fec61c32.entry.js} +1 -1
  98. package/dist/types/components/radio-group/radio-group.d.ts +2 -0
  99. package/dist/types/components.d.ts +1 -0
  100. package/dist/types/utils/focus-trap.d.ts +1 -1
  101. package/hydrate/index.js +87 -20
  102. package/hydrate/index.mjs +87 -20
  103. package/package.json +1 -1
  104. package/dist/esm-es5/index-49472991.js +0 -4
  105. package/dist/esm-es5/overlays-ae10d43d.js +0 -4
  106. package/dist/ionic/p-04fc24ee.system.js +0 -4
  107. package/dist/ionic/p-5c831f49.js +0 -4
  108. package/dist/ionic/p-7ed7d641.system.entry.js +0 -4
  109. package/dist/ionic/p-d174ceca.entry.js +0 -4
  110. package/dist/ionic/p-dec16890.system.js +0 -4
  111. package/dist/ionic/p-e43c2e19.js +0 -4
  112. package/dist/ionic/p-e9a173ed.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -4392,7 +4392,7 @@ const createLockController = () => {
4392
4392
  * Note: We need this distinction because `disabled="false"` is
4393
4393
  * valid usage for the disabled property on ion-button.
4394
4394
  */
4395
- const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
4395
+ const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
4396
4396
  /**
4397
4397
  * Focuses the first descendant in a context
4398
4398
  * that can receive focus. If none exists,
@@ -4447,7 +4447,13 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
4447
4447
  elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
4448
4448
  }
4449
4449
  if (elementToFocus) {
4450
- focusVisibleElement(elementToFocus);
4450
+ const radioGroup = elementToFocus.closest('ion-radio-group');
4451
+ if (radioGroup) {
4452
+ radioGroup.setFocus();
4453
+ }
4454
+ else {
4455
+ focusVisibleElement(elementToFocus);
4456
+ }
4451
4457
  }
4452
4458
  else {
4453
4459
  // Focus fallback element instead of letting focus escape
@@ -5398,21 +5404,30 @@ const createTriggerController = () => {
5398
5404
  * like TalkBack do not announce or interact with the content until the
5399
5405
  * animation is complete, avoiding confusion for users.
5400
5406
  *
5401
- * If the overlay is being presented, it prevents focus rings from appearing
5402
- * in incorrect positions due to the transition (specifically `transform`
5403
- * styles), ensuring that when aria-hidden is removed, the focus rings are
5404
- * correctly displayed in the final location of the elements.
5407
+ * When the overlay is presented on an Android device, TalkBack's focus rings
5408
+ * may appear in the wrong position due to the transition (specifically
5409
+ * `transform` styles). This occurs because the focus rings are initially
5410
+ * displayed at the starting position of the elements before the transition
5411
+ * begins. This workaround ensures the focus rings do not appear in the
5412
+ * incorrect location.
5413
+ *
5414
+ * If this solution is applied to iOS devices, then it leads to a bug where
5415
+ * the overlays cannot be accessed by screen readers. This is due to
5416
+ * VoiceOver not being able to update the accessibility tree when the
5417
+ * `aria-hidden` is removed.
5405
5418
  *
5406
5419
  * @param overlay - The overlay that is being animated.
5407
5420
  */
5408
5421
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
5409
5422
  if (doc === undefined)
5410
5423
  return;
5411
- /**
5412
- * Once the animation is complete, this attribute will be removed.
5413
- * This is done at the end of the `present` method.
5414
- */
5415
- overlay.setAttribute('aria-hidden', 'true');
5424
+ if (isPlatform('android')) {
5425
+ /**
5426
+ * Once the animation is complete, this attribute will be removed.
5427
+ * This is done at the end of the `present` method.
5428
+ */
5429
+ overlay.setAttribute('aria-hidden', 'true');
5430
+ }
5416
5431
  };
5417
5432
  /**
5418
5433
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
@@ -13914,13 +13929,32 @@ mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
13914
13929
  };
13915
13930
  const setHeaderActive = (headerIndex, active = true) => {
13916
13931
  const headerEl = headerIndex.el;
13932
+ const toolbars = headerIndex.toolbars;
13933
+ const ionTitles = toolbars.map((toolbar) => toolbar.ionTitleEl);
13917
13934
  if (active) {
13918
13935
  headerEl.classList.remove('header-collapse-condense-inactive');
13919
- headerEl.removeAttribute('aria-hidden');
13936
+ ionTitles.forEach((ionTitle) => {
13937
+ if (ionTitle) {
13938
+ ionTitle.removeAttribute('aria-hidden');
13939
+ }
13940
+ });
13920
13941
  }
13921
13942
  else {
13922
13943
  headerEl.classList.add('header-collapse-condense-inactive');
13923
- headerEl.setAttribute('aria-hidden', 'true');
13944
+ /**
13945
+ * The small title should only be accessed by screen readers
13946
+ * when the large title collapses into the small title due
13947
+ * to scrolling.
13948
+ *
13949
+ * Originally, the header was given `aria-hidden="true"`
13950
+ * but this caused issues with screen readers not being
13951
+ * able to access any focusable elements within the header.
13952
+ */
13953
+ ionTitles.forEach((ionTitle) => {
13954
+ if (ionTitle) {
13955
+ ionTitle.setAttribute('aria-hidden', 'true');
13956
+ }
13957
+ });
13924
13958
  }
13925
13959
  };
13926
13960
  const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
@@ -17135,7 +17169,7 @@ const menuOverlayAnimation = (menu) => {
17135
17169
  closedX = -width + 'px';
17136
17170
  openedX = '0px';
17137
17171
  }
17138
- menuAnimation.addElement(menu.menuInnerEl).fromTo('left', `${closedX}`, `${openedX}`);
17172
+ menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);
17139
17173
  const mode = getIonMode$1(menu);
17140
17174
  const isIos = mode === 'ios';
17141
17175
  const opacity = isIos ? 0.2 : 0.25;
@@ -17392,10 +17426,10 @@ const createMenuController = () => {
17392
17426
  };
17393
17427
  const menuController = /*@__PURE__*/ createMenuController();
17394
17428
 
17395
- const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute;right:unset;left:-100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);-webkit-transform:none;transform:none;background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
17429
+ const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
17396
17430
  var IonMenuIosStyle0 = menuIosCss;
17397
17431
 
17398
- const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute;right:unset;left:-100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);-webkit-transform:none;transform:none;background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
17432
+ const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
17399
17433
  var IonMenuMdStyle0 = menuMdCss;
17400
17434
 
17401
17435
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
@@ -17816,6 +17850,22 @@ class Menu {
17816
17850
  }
17817
17851
  beforeAnimation(shouldOpen, role) {
17818
17852
  assert(!this.isAnimating, '_before() should not be called while animating');
17853
+ /**
17854
+ * When the menu is presented on an Android device, TalkBack's focus rings
17855
+ * may appear in the wrong position due to the transition (specifically
17856
+ * `transform` styles). This occurs because the focus rings are initially
17857
+ * displayed at the starting position of the elements before the transition
17858
+ * begins. This workaround ensures the focus rings do not appear in the
17859
+ * incorrect location.
17860
+ *
17861
+ * If this solution is applied to iOS devices, then it leads to a bug where
17862
+ * the overlays cannot be accessed by screen readers. This is due to
17863
+ * VoiceOver not being able to update the accessibility tree when the
17864
+ * `aria-hidden` is removed.
17865
+ */
17866
+ if (isPlatform('android')) {
17867
+ this.el.setAttribute('aria-hidden', 'true');
17868
+ }
17819
17869
  // this places the menu into the correct location before it animates in
17820
17870
  // this css class doesn't actually kick off any animations
17821
17871
  this.el.classList.add(SHOW_MENU);
@@ -17868,6 +17918,16 @@ class Menu {
17868
17918
  this.blocker.unblock();
17869
17919
  }
17870
17920
  if (isOpen) {
17921
+ /**
17922
+ * When the menu is presented on an Android device, TalkBack's focus rings
17923
+ * may appear in the wrong position due to the transition (specifically
17924
+ * `transform` styles). The menu is hidden from screen readers during the
17925
+ * transition to prevent this. Once the transition is complete, the menu
17926
+ * is shown again.
17927
+ */
17928
+ if (isPlatform('android')) {
17929
+ this.el.removeAttribute('aria-hidden');
17930
+ }
17871
17931
  // emit open event
17872
17932
  this.ionDidOpen.emit();
17873
17933
  /**
@@ -17883,6 +17943,7 @@ class Menu {
17883
17943
  document.addEventListener('focus', this.handleFocus, true);
17884
17944
  }
17885
17945
  else {
17946
+ this.el.removeAttribute('aria-hidden');
17886
17947
  // remove css classes and unhide content from screen readers
17887
17948
  this.el.classList.remove(SHOW_MENU);
17888
17949
  /**
@@ -17949,14 +18010,14 @@ class Menu {
17949
18010
  * the ionBackButton listener in the menu controller
17950
18011
  * will handle closing the menu when Escape is pressed.
17951
18012
  */
17952
- return (hAsync(Host, { key: '5aaea91873d0885b97304372223b2a6ed16ca28b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18013
+ return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17953
18014
  [mode]: true,
17954
18015
  [`menu-type-${type}`]: true,
17955
18016
  'menu-enabled': !disabled,
17956
18017
  [`menu-side-${side}`]: true,
17957
18018
  'menu-pane-visible': isPaneVisible,
17958
18019
  'split-pane-side': hostContext('ion-split-pane', el),
17959
- } }, hAsync("div", { key: '3ba822411ad11eff52c518fecf1b2a5b47e0b678', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'd28a78e98493b21d43ea8b19e96b21547adf1916' })), hAsync("ion-backdrop", { key: '0468c15d111737f5cb646918dcfacedadf907a8f', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18020
+ } }, hAsync("div", { key: '894e680fe227534711128c7aca980964ddb5a08a', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'e9f5934518dc0cceaeadf1f2820614595fec6bc9' })), hAsync("ion-backdrop", { key: '7282077817657b1bb6c155f1404c0a519fece993', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
17960
18021
  }
17961
18022
  get el() { return getElement(this); }
17962
18023
  static get watchers() { return {
@@ -24821,11 +24882,16 @@ class RadioGroup {
24821
24882
  }
24822
24883
  }
24823
24884
  }
24885
+ /** @internal */
24886
+ async setFocus() {
24887
+ const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
24888
+ radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
24889
+ }
24824
24890
  render() {
24825
24891
  const { label, labelId, el, name, value } = this;
24826
24892
  const mode = getIonMode$1(this);
24827
24893
  renderHiddenInput(true, el, name, value, false);
24828
- return hAsync(Host, { key: '99f543b9caa8e2d30a80e7ea7ecf6b6fdacc76eb', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24894
+ return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24829
24895
  }
24830
24896
  get el() { return getElement(this); }
24831
24897
  static get watchers() { return {
@@ -24838,7 +24904,8 @@ class RadioGroup {
24838
24904
  "allowEmptySelection": [4, "allow-empty-selection"],
24839
24905
  "compareWith": [1, "compare-with"],
24840
24906
  "name": [1],
24841
- "value": [1032]
24907
+ "value": [1032],
24908
+ "setFocus": [64]
24842
24909
  },
24843
24910
  "$listeners$": [[4, "keydown", "onKeydown"]],
24844
24911
  "$lazyBundleId$": "-",
package/hydrate/index.mjs CHANGED
@@ -4388,7 +4388,7 @@ const createLockController = () => {
4388
4388
  * Note: We need this distinction because `disabled="false"` is
4389
4389
  * valid usage for the disabled property on ion-button.
4390
4390
  */
4391
- const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
4391
+ const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
4392
4392
  /**
4393
4393
  * Focuses the first descendant in a context
4394
4394
  * that can receive focus. If none exists,
@@ -4443,7 +4443,13 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
4443
4443
  elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
4444
4444
  }
4445
4445
  if (elementToFocus) {
4446
- focusVisibleElement(elementToFocus);
4446
+ const radioGroup = elementToFocus.closest('ion-radio-group');
4447
+ if (radioGroup) {
4448
+ radioGroup.setFocus();
4449
+ }
4450
+ else {
4451
+ focusVisibleElement(elementToFocus);
4452
+ }
4447
4453
  }
4448
4454
  else {
4449
4455
  // Focus fallback element instead of letting focus escape
@@ -5394,21 +5400,30 @@ const createTriggerController = () => {
5394
5400
  * like TalkBack do not announce or interact with the content until the
5395
5401
  * animation is complete, avoiding confusion for users.
5396
5402
  *
5397
- * If the overlay is being presented, it prevents focus rings from appearing
5398
- * in incorrect positions due to the transition (specifically `transform`
5399
- * styles), ensuring that when aria-hidden is removed, the focus rings are
5400
- * correctly displayed in the final location of the elements.
5403
+ * When the overlay is presented on an Android device, TalkBack's focus rings
5404
+ * may appear in the wrong position due to the transition (specifically
5405
+ * `transform` styles). This occurs because the focus rings are initially
5406
+ * displayed at the starting position of the elements before the transition
5407
+ * begins. This workaround ensures the focus rings do not appear in the
5408
+ * incorrect location.
5409
+ *
5410
+ * If this solution is applied to iOS devices, then it leads to a bug where
5411
+ * the overlays cannot be accessed by screen readers. This is due to
5412
+ * VoiceOver not being able to update the accessibility tree when the
5413
+ * `aria-hidden` is removed.
5401
5414
  *
5402
5415
  * @param overlay - The overlay that is being animated.
5403
5416
  */
5404
5417
  const hideAnimatingOverlayFromScreenReaders = (overlay) => {
5405
5418
  if (doc === undefined)
5406
5419
  return;
5407
- /**
5408
- * Once the animation is complete, this attribute will be removed.
5409
- * This is done at the end of the `present` method.
5410
- */
5411
- overlay.setAttribute('aria-hidden', 'true');
5420
+ if (isPlatform('android')) {
5421
+ /**
5422
+ * Once the animation is complete, this attribute will be removed.
5423
+ * This is done at the end of the `present` method.
5424
+ */
5425
+ overlay.setAttribute('aria-hidden', 'true');
5426
+ }
5412
5427
  };
5413
5428
  /**
5414
5429
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
@@ -13910,13 +13925,32 @@ mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
13910
13925
  };
13911
13926
  const setHeaderActive = (headerIndex, active = true) => {
13912
13927
  const headerEl = headerIndex.el;
13928
+ const toolbars = headerIndex.toolbars;
13929
+ const ionTitles = toolbars.map((toolbar) => toolbar.ionTitleEl);
13913
13930
  if (active) {
13914
13931
  headerEl.classList.remove('header-collapse-condense-inactive');
13915
- headerEl.removeAttribute('aria-hidden');
13932
+ ionTitles.forEach((ionTitle) => {
13933
+ if (ionTitle) {
13934
+ ionTitle.removeAttribute('aria-hidden');
13935
+ }
13936
+ });
13916
13937
  }
13917
13938
  else {
13918
13939
  headerEl.classList.add('header-collapse-condense-inactive');
13919
- headerEl.setAttribute('aria-hidden', 'true');
13940
+ /**
13941
+ * The small title should only be accessed by screen readers
13942
+ * when the large title collapses into the small title due
13943
+ * to scrolling.
13944
+ *
13945
+ * Originally, the header was given `aria-hidden="true"`
13946
+ * but this caused issues with screen readers not being
13947
+ * able to access any focusable elements within the header.
13948
+ */
13949
+ ionTitles.forEach((ionTitle) => {
13950
+ if (ionTitle) {
13951
+ ionTitle.setAttribute('aria-hidden', 'true');
13952
+ }
13953
+ });
13920
13954
  }
13921
13955
  };
13922
13956
  const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
@@ -17131,7 +17165,7 @@ const menuOverlayAnimation = (menu) => {
17131
17165
  closedX = -width + 'px';
17132
17166
  openedX = '0px';
17133
17167
  }
17134
- menuAnimation.addElement(menu.menuInnerEl).fromTo('left', `${closedX}`, `${openedX}`);
17168
+ menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);
17135
17169
  const mode = getIonMode$1(menu);
17136
17170
  const isIos = mode === 'ios';
17137
17171
  const opacity = isIos ? 0.2 : 0.25;
@@ -17388,10 +17422,10 @@ const createMenuController = () => {
17388
17422
  };
17389
17423
  const menuController = /*@__PURE__*/ createMenuController();
17390
17424
 
17391
- const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute;right:unset;left:-100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);-webkit-transform:none;transform:none;background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
17425
+ const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
17392
17426
  var IonMenuIosStyle0 = menuIosCss;
17393
17427
 
17394
- const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute;right:unset;left:-100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);-webkit-transform:none;transform:none;background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
17428
+ const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
17395
17429
  var IonMenuMdStyle0 = menuMdCss;
17396
17430
 
17397
17431
  const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
@@ -17812,6 +17846,22 @@ class Menu {
17812
17846
  }
17813
17847
  beforeAnimation(shouldOpen, role) {
17814
17848
  assert(!this.isAnimating, '_before() should not be called while animating');
17849
+ /**
17850
+ * When the menu is presented on an Android device, TalkBack's focus rings
17851
+ * may appear in the wrong position due to the transition (specifically
17852
+ * `transform` styles). This occurs because the focus rings are initially
17853
+ * displayed at the starting position of the elements before the transition
17854
+ * begins. This workaround ensures the focus rings do not appear in the
17855
+ * incorrect location.
17856
+ *
17857
+ * If this solution is applied to iOS devices, then it leads to a bug where
17858
+ * the overlays cannot be accessed by screen readers. This is due to
17859
+ * VoiceOver not being able to update the accessibility tree when the
17860
+ * `aria-hidden` is removed.
17861
+ */
17862
+ if (isPlatform('android')) {
17863
+ this.el.setAttribute('aria-hidden', 'true');
17864
+ }
17815
17865
  // this places the menu into the correct location before it animates in
17816
17866
  // this css class doesn't actually kick off any animations
17817
17867
  this.el.classList.add(SHOW_MENU);
@@ -17864,6 +17914,16 @@ class Menu {
17864
17914
  this.blocker.unblock();
17865
17915
  }
17866
17916
  if (isOpen) {
17917
+ /**
17918
+ * When the menu is presented on an Android device, TalkBack's focus rings
17919
+ * may appear in the wrong position due to the transition (specifically
17920
+ * `transform` styles). The menu is hidden from screen readers during the
17921
+ * transition to prevent this. Once the transition is complete, the menu
17922
+ * is shown again.
17923
+ */
17924
+ if (isPlatform('android')) {
17925
+ this.el.removeAttribute('aria-hidden');
17926
+ }
17867
17927
  // emit open event
17868
17928
  this.ionDidOpen.emit();
17869
17929
  /**
@@ -17879,6 +17939,7 @@ class Menu {
17879
17939
  document.addEventListener('focus', this.handleFocus, true);
17880
17940
  }
17881
17941
  else {
17942
+ this.el.removeAttribute('aria-hidden');
17882
17943
  // remove css classes and unhide content from screen readers
17883
17944
  this.el.classList.remove(SHOW_MENU);
17884
17945
  /**
@@ -17945,14 +18006,14 @@ class Menu {
17945
18006
  * the ionBackButton listener in the menu controller
17946
18007
  * will handle closing the menu when Escape is pressed.
17947
18008
  */
17948
- return (hAsync(Host, { key: '5aaea91873d0885b97304372223b2a6ed16ca28b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18009
+ return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17949
18010
  [mode]: true,
17950
18011
  [`menu-type-${type}`]: true,
17951
18012
  'menu-enabled': !disabled,
17952
18013
  [`menu-side-${side}`]: true,
17953
18014
  'menu-pane-visible': isPaneVisible,
17954
18015
  'split-pane-side': hostContext('ion-split-pane', el),
17955
- } }, hAsync("div", { key: '3ba822411ad11eff52c518fecf1b2a5b47e0b678', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'd28a78e98493b21d43ea8b19e96b21547adf1916' })), hAsync("ion-backdrop", { key: '0468c15d111737f5cb646918dcfacedadf907a8f', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18016
+ } }, hAsync("div", { key: '894e680fe227534711128c7aca980964ddb5a08a', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'e9f5934518dc0cceaeadf1f2820614595fec6bc9' })), hAsync("ion-backdrop", { key: '7282077817657b1bb6c155f1404c0a519fece993', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
17956
18017
  }
17957
18018
  get el() { return getElement(this); }
17958
18019
  static get watchers() { return {
@@ -24817,11 +24878,16 @@ class RadioGroup {
24817
24878
  }
24818
24879
  }
24819
24880
  }
24881
+ /** @internal */
24882
+ async setFocus() {
24883
+ const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
24884
+ radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
24885
+ }
24820
24886
  render() {
24821
24887
  const { label, labelId, el, name, value } = this;
24822
24888
  const mode = getIonMode$1(this);
24823
24889
  renderHiddenInput(true, el, name, value, false);
24824
- return hAsync(Host, { key: '99f543b9caa8e2d30a80e7ea7ecf6b6fdacc76eb', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24890
+ return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24825
24891
  }
24826
24892
  get el() { return getElement(this); }
24827
24893
  static get watchers() { return {
@@ -24834,7 +24900,8 @@ class RadioGroup {
24834
24900
  "allowEmptySelection": [4, "allow-empty-selection"],
24835
24901
  "compareWith": [1, "compare-with"],
24836
24902
  "name": [1],
24837
- "value": [1032]
24903
+ "value": [1032],
24904
+ "setFocus": [64]
24838
24905
  },
24839
24906
  "$listeners$": [[4, "keydown", "onKeydown"]],
24840
24907
  "$lazyBundleId$": "-",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.4.1-dev.11732219984.1b9a256c",
3
+ "version": "8.4.1-dev.11732305980.19d90e1c",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -1,4 +0,0 @@
1
- import{__awaiter,__generator,__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */import{d as doc}from"./index-a5d50daf.js";import{MENU_BACK_BUTTON_PRIORITY}from"./hardware-back-button-06ef3c3e.js";import{p as printIonWarning}from"./index-9b0d46f4.js";import{c as componentOnReady}from"./helpers-da915de8.js";import{b as getIonMode}from"./ionic-global-c81d82ab.js";import{c as createAnimation}from"./animation-eab5a4ca.js";var baseAnimation=function(n){return createAnimation().duration(n?400:300)};var menuOverlayAnimation=function(n){var r;var e;var t=n.width+8;var i=createAnimation();var a=createAnimation();if(n.isEndSide){r=t+"px";e="0px"}else{r=-t+"px";e="0px"}i.addElement(n.menuInnerEl).fromTo("left","".concat(r),"".concat(e));var o=getIonMode(n);var u=o==="ios";var c=u?.2:.25;a.addElement(n.backdropEl).fromTo("opacity",.01,c);return baseAnimation(u).addAnimation([i,a])};var menuPushAnimation=function(n){var r;var e;var t=getIonMode(n);var i=n.width;if(n.isEndSide){r=-i+"px";e=i+"px"}else{r=i+"px";e=-i+"px"}var a=createAnimation().addElement(n.menuInnerEl).fromTo("transform","translateX(".concat(e,")"),"translateX(0px)");var o=createAnimation().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(r,")"));var u=createAnimation().addElement(n.backdropEl).fromTo("opacity",.01,.32);return baseAnimation(t==="ios").addAnimation([a,o,u])};var menuRevealAnimation=function(n){var r=getIonMode(n);var e=n.width*(n.isEndSide?-1:1)+"px";var t=createAnimation().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(e,")"));return baseAnimation(r==="ios").addAnimation(t)};var createMenuController=function(){var n=new Map;var r=[];var e=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n,true)];case 1:r=e.sent();if(r){return[2,r.open()]}return[2,false]}}))}))};var t=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,n!==undefined?s(n,true):f()];case 1:r=e.sent();if(r!==undefined){return[2,r.close()]}return[2,false]}}))}))};var i=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n,true)];case 1:r=e.sent();if(r){return[2,r.toggle()]}return[2,false]}}))}))};var a=function(n,r){return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,s(r)];case 1:e=t.sent();if(e){e.disabled=!n}return[2,e]}}))}))};var o=function(n,r){return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,s(r)];case 1:e=t.sent();if(e){e.swipeGesture=n}return[2,e]}}))}))};var u=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,r;return __generator(this,(function(e){switch(e.label){case 0:if(!(n!=null))return[3,2];return[4,s(n)];case 1:r=e.sent();return[2,r!==undefined&&r.isOpen()];case 2:return[4,f()];case 3:r=e.sent();return[2,r!==undefined]}}))}))};var c=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n)];case 1:r=e.sent();if(r){return[2,!r.disabled]}return[2,false]}}))}))};var s=function(n){var e=[];for(var t=1;t<arguments.length;t++){e[t-1]=arguments[t]}return __awaiter(void 0,__spreadArray([n],e,true),void 0,(function(n,e){var t,i,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:return[4,x()];case 1:o.sent();if(n==="start"||n==="end"){t=r.filter((function(r){return r.side===n&&!r.disabled}));if(t.length>=1){if(t.length>1&&e){printIonWarning('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(t.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),t.map((function(n){return n.el})))}return[2,t[0].el]}i=r.filter((function(r){return r.side===n}));if(i.length>=1){if(i.length>1&&e){printIonWarning('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(i.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),i.map((function(n){return n.el})))}return[2,i[0].el]}}else if(n!=null){return[2,b((function(r){return r.menuId===n}))]}a=b((function(n){return!n.disabled}));if(a){return[2,a]}return[2,r.length>0?r[0].el:undefined]}}))}))};var f=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,w()]}}))}))};var v=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,g()]}}))}))};var d=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,A()]}}))}))};var _=function(r,e){n.set(r,e)};var m=function(n){if(r.indexOf(n)<0){r.push(n)}};var l=function(n){var e=r.indexOf(n);if(e>-1){r.splice(e,1)}};var h=function(n,r,e,t){return __awaiter(void 0,void 0,void 0,(function(){var i;return __generator(this,(function(a){switch(a.label){case 0:if(A()){return[2,false]}if(!r)return[3,3];return[4,f()];case 1:i=a.sent();if(!(i&&n.el!==i))return[3,3];return[4,i.setOpen(false,false)];case 2:a.sent();a.label=3;case 3:return[2,n._setOpen(r,e,t)]}}))}))};var p=function(r,e){var t=n.get(r);if(!t){throw new Error("animation not registered")}var i=t(e);return i};var w=function(){return b((function(n){return n._isOpen}))};var g=function(){return r.map((function(n){return n.el}))};var A=function(){return r.some((function(n){return n.isAnimating}))};var b=function(n){var e=r.find(n);if(e!==undefined){return e.el}return undefined};var x=function(){return Promise.all(Array.from(document.querySelectorAll("ion-menu")).map((function(n){return new Promise((function(r){return componentOnReady(n,r)}))})))};_("reveal",menuRevealAnimation);_("push",menuPushAnimation);_("overlay",menuOverlayAnimation);doc===null||doc===void 0?void 0:doc.addEventListener("ionBackButton",(function(n){var r=w();if(r){n.detail.register(MENU_BACK_BUTTON_PRIORITY,(function(){return r.close()}))}}));return{registerAnimation:_,get:s,getMenus:v,getOpen:f,isEnabled:c,swipeGesture:o,isAnimating:d,isOpen:u,enable:a,toggle:i,close:t,open:e,_getOpenSync:w,_createAnimation:p,_register:m,_unregister:l,_setOpen:h}};var menuController=createMenuController();export{menuController as m};
@@ -1,4 +0,0 @@
1
- import{__awaiter,__generator,__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */import{d as doc}from"./index-a5d50daf.js";import{f as focusVisibleElement,c as componentOnReady,a as addEventListener,b as removeEventListener,g as getElementRoot}from"./helpers-da915de8.js";import{OVERLAY_BACK_BUTTON_PRIORITY,shouldUseCloseWatcher}from"./hardware-back-button-06ef3c3e.js";import{b as getIonMode,c as config}from"./ionic-global-c81d82ab.js";import{C as CoreDelegate}from"./framework-delegate-63d1a679.js";import{B as BACKDROP_NO_SCROLL}from"./gesture-controller-314a54f6.js";import{p as printIonWarning}from"./index-9b0d46f4.js";var focusableQueryString='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';var focusFirstDescendant=function(e,n){var r=e.querySelector(focusableQueryString);focusElementInContext(r,n!==null&&n!==void 0?n:e)};var focusLastDescendant=function(e,n){var r=Array.from(e.querySelectorAll(focusableQueryString));var t=r.length>0?r[r.length-1]:null;focusElementInContext(t,n!==null&&n!==void 0?n:e)};var focusElementInContext=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var lastOverlayIndex=0;var lastId=0;var activeAnimations=new WeakMap;var createController=function(e){return{create:function(n){return createOverlay(e,n)},dismiss:function(n,r,t){return dismissOverlay(document,n,r,e,t)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){return[2,getPresentedOverlay(document,e)]}))}))}}};var alertController=createController("ion-alert");var actionSheetController=createController("ion-action-sheet");var loadingController=createController("ion-loading");var modalController=createController("ion-modal");var pickerController=createController("ion-picker-legacy");var popoverController=createController("ion-popover");var toastController=createController("ion-toast");var prepareOverlay=function(e){if(typeof document!=="undefined"){connectListeners(document)}var n=lastOverlayIndex++;e.overlayIndex=n};var setOverlayId=function(e){if(!e.hasAttribute("id")){e.id="ion-overlay-".concat(++lastId)}return e.id};var createOverlay=function(e,n){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(e).then((function(){var r=document.createElement(e);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},n),{hasController:true}));getAppRoot(document).appendChild(r);return new Promise((function(e){return componentOnReady(r,e)}))}))}return Promise.resolve()};var isOverlayHidden=function(e){return e.classList.contains("overlay-hidden")};var focusElementInOverlay=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var trapKeyboardFocus=function(e,n){var r=getPresentedOverlay(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover");var t=e.target;if(!r||!t){return}if(r.classList.contains(FOCUS_TRAP_DISABLE_CLASS)){return}var o=function(){if(r===t){r.lastFocus=undefined}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=getElementRoot(r);if(!e.contains(t)){return}var o=e.querySelector(".ion-overlay-wrapper");if(!o){return}if(o.contains(t)||t===e.querySelector("ion-backdrop")){r.lastFocus=t}else{var a=r.lastFocus;focusFirstDescendant(o,r);if(a===n.activeElement){focusLastDescendant(o,r)}r.lastFocus=n.activeElement}}};var a=function(){if(r.contains(t)){r.lastFocus=t}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=r.lastFocus;focusFirstDescendant(r);if(e===n.activeElement){focusLastDescendant(r)}r.lastFocus=n.activeElement}};if(r.shadowRoot){a()}else{o()}};var connectListeners=function(e){if(lastOverlayIndex===0){lastOverlayIndex=1;e.addEventListener("focus",(function(n){trapKeyboardFocus(n,e)}),true);e.addEventListener("ionBackButton",(function(n){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){n.detail.register(OVERLAY_BACK_BUTTON_PRIORITY,(function(){r.dismiss(undefined,BACKDROP)}))}}));if(!shouldUseCloseWatcher()){e.addEventListener("keydown",(function(n){if(n.key==="Escape"){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,BACKDROP)}}}))}}};var dismissOverlay=function(e,n,r,t,o){var a=getPresentedOverlay(e,t,o);if(!a){return Promise.reject("overlay does not exist")}return a.dismiss(n,r)};var getOverlays=function(e,n){if(n===undefined){n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"}return Array.from(e.querySelectorAll(n)).filter((function(e){return e.overlayIndex>0}))};var getPresentedOverlays=function(e,n){return getOverlays(e,n).filter((function(e){return!isOverlayHidden(e)}))};var getPresentedOverlay=function(e,n,r){var t=getPresentedOverlays(e,n);return r===undefined?t[t.length-1]:t.find((function(e){return e.id===r}))};var setRootAriaHidden=function(e){if(e===void 0){e=false}var n=getAppRoot(document);var r=n.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(e){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var present=function(e,n,r,t,o){return __awaiter(void 0,void 0,void 0,(function(){var a,i,d,s,u;return __generator(this,(function(l){switch(l.label){case 0:if(e.presented){return[2]}if(e.el.tagName!=="ION-TOAST"){setRootAriaHidden(true)}document.body.classList.add(BACKDROP_NO_SCROLL);hideUnderlyingOverlaysFromScreenReaders(e.el);hideAnimatingOverlayFromScreenReaders(e.el);e.presented=true;e.willPresent.emit();(a=e.willPresentShorthand)===null||a===void 0?void 0:a.emit();d=getIonMode(e);s=e.enterAnimation?e.enterAnimation:config.get(n,d==="ios"?r:t);return[4,overlayAnimation(e,s,e.el,o)];case 1:u=l.sent();if(u){e.didPresent.emit();(i=e.didPresentShorthand)===null||i===void 0?void 0:i.emit()}if(e.el.tagName!=="ION-TOAST"){restoreElementFocus(e.el)}if(e.keyboardClose&&(document.activeElement===null||!e.el.contains(document.activeElement))){e.el.focus()}e.el.removeAttribute("aria-hidden");return[2]}}))}))};var restoreElementFocus=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(t){switch(t.label){case 0:n=document.activeElement;if(!n){return[2]}r=n===null||n===void 0?void 0:n.shadowRoot;if(r){n=r.querySelector(focusableQueryString)||n}return[4,e.onDidDismiss()];case 1:t.sent();if(document.activeElement===null||document.activeElement===document.body){n.focus()}return[2]}}))}))};var dismiss=function(e,n,r,t,o,a,i){return __awaiter(void 0,void 0,void 0,(function(){var d,s,u,l,c,v,f,m;return __generator(this,(function(O){switch(O.label){case 0:if(!e.presented){return[2,false]}u=doc!==undefined?getPresentedOverlays(doc).filter((function(e){return e.tagName!=="ION-TOAST"})):[];l=u.length===1&&u[0].id===e.el.id;if(l){setRootAriaHidden(false);document.body.classList.remove(BACKDROP_NO_SCROLL)}e.presented=false;O.label=1;case 1:O.trys.push([1,4,,5]);hideAnimatingOverlayFromScreenReaders(e.el);e.el.style.setProperty("pointer-events","none");e.willDismiss.emit({data:n,role:r});(d=e.willDismissShorthand)===null||d===void 0?void 0:d.emit({data:n,role:r});c=getIonMode(e);v=e.leaveAnimation?e.leaveAnimation:config.get(t,c==="ios"?o:a);if(!(r!==GESTURE))return[3,3];return[4,overlayAnimation(e,v,e.el,i)];case 2:O.sent();O.label=3;case 3:e.didDismiss.emit({data:n,role:r});(s=e.didDismissShorthand)===null||s===void 0?void 0:s.emit({data:n,role:r});f=activeAnimations.get(e)||[];f.forEach((function(e){return e.destroy()}));activeAnimations.delete(e);e.el.classList.add("overlay-hidden");e.el.style.removeProperty("pointer-events");if(e.el.lastFocus!==undefined){e.el.lastFocus=undefined}return[3,5];case 4:m=O.sent();console.error(m);return[3,5];case 5:e.el.remove();revealOverlaysToScreenReaders();return[2,true]}}))}))};var getAppRoot=function(e){return e.querySelector("ion-app")||e.body};var overlayAnimation=function(e,n,r,t){return __awaiter(void 0,void 0,void 0,(function(){var o,a,i;return __generator(this,(function(d){switch(d.label){case 0:r.classList.remove("overlay-hidden");o=e.el;a=n(o,t);if(!e.animated||!config.getBoolean("animated",true)){a.duration(0)}if(e.keyboardClose){a.beforeAddWrite((function(){var e=r.ownerDocument.activeElement;if(e===null||e===void 0?void 0:e.matches("input,ion-input, ion-textarea")){e.blur()}}))}i=activeAnimations.get(e)||[];activeAnimations.set(e,__spreadArray(__spreadArray([],i,true),[a],false));return[4,a.play()];case 1:d.sent();return[2,true]}}))}))};var eventMethod=function(e,n){var r;var t=new Promise((function(e){return r=e}));onceEvent(e,n,(function(e){r(e.detail)}));return t};var onceEvent=function(e,n,r){var t=function(o){removeEventListener(e,n,t);r(o)};addEventListener(e,n,t)};var isCancel=function(e){return e==="cancel"||e===BACKDROP};var defaultGate=function(e){return e()};var safeCall=function(e,n){if(typeof e==="function"){var r=config.get("_zoneGate",defaultGate);return r((function(){try{return e(n)}catch(e){throw e}}))}return undefined};var BACKDROP="backdrop";var GESTURE="gesture";var OVERLAY_GESTURE_PRIORITY=39;var createDelegateController=function(e){var n=false;var r;var t=CoreDelegate();var o=function(o){if(o===void 0){o=false}if(r&&!o){return{delegate:r,inline:n}}var a=e.el,i=e.hasController,d=e.delegate;var s=a.parentNode;n=s!==null&&!i;r=n?d||t:d;return{inline:n,delegate:r}};var a=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,t;return __generator(this,(function(a){switch(a.label){case 0:r=o(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(e.el,n)];case 1:return[2,a.sent()];case 2:t=e.hasController;if(t&&n!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var i=function(){var n=o().delegate;if(n&&e.el!==undefined){n.removeViewFromDom(e.el.parentElement,e.el)}};return{attachViewToDom:a,removeViewFromDom:i}};var createTriggerController=function(){var e;var n=function(){if(e){e();e=undefined}};var r=function(r,t){n();var o=t!==undefined?document.getElementById(t):null;if(!o){printIonWarning('A trigger element with the ID "'.concat(t,'" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.'),r);return}var a=function(e,n){var r=function(){n.present()};e.addEventListener("click",r);return function(){e.removeEventListener("click",r)}};e=a(o,r)};return{addClickListener:r,removeClickListener:n}};var hideAnimatingOverlayFromScreenReaders=function(e){if(doc===undefined)return;e.setAttribute("aria-hidden","true")};var hideUnderlyingOverlaysFromScreenReaders=function(e){var n;if(doc===undefined)return;var r=getPresentedOverlays(doc);for(var t=r.length-1;t>=0;t--){var o=r[t];var a=(n=r[t+1])!==null&&n!==void 0?n:e;if(a.hasAttribute("aria-hidden")||a.tagName!=="ION-TOAST"){o.setAttribute("aria-hidden","true")}}};var revealOverlaysToScreenReaders=function(){if(doc===undefined)return;var e=getPresentedOverlays(doc);for(var n=e.length-1;n>=0;n--){var r=e[n];r.removeAttribute("aria-hidden");if(r.tagName!=="ION-TOAST"){break}}};var FOCUS_TRAP_DISABLE_CLASS="ion-disable-focus-trap";export{BACKDROP as B,FOCUS_TRAP_DISABLE_CLASS as F,GESTURE as G,OVERLAY_GESTURE_PRIORITY as O,alertController as a,actionSheetController as b,popoverController as c,createDelegateController as d,createTriggerController as e,present as f,dismiss as g,eventMethod as h,isCancel as i,prepareOverlay as j,setOverlayId as k,loadingController as l,modalController as m,focusFirstDescendant as n,getPresentedOverlay as o,pickerController as p,focusLastDescendant as q,safeCall as s,toastController as t};
@@ -1,4 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(n,e,r,i){function t(n){return n instanceof r?n:new r((function(e){e(n)}))}return new(r||(r=Promise))((function(r,o){function a(n){try{f(i.next(n))}catch(n){o(n)}}function u(n){try{f(i["throw"](n))}catch(n){o(n)}}function f(n){n.done?r(n.value):t(n.value).then(a,u)}f((i=i.apply(n,e||[])).next())}))};var __generator=this&&this.__generator||function(n,e){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,t,o,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(n){return function(e){return f([n,e])}}function f(u){if(i)throw new TypeError("Generator is already executing.");while(a&&(a=0,u[0]&&(r=0)),r)try{if(i=1,t&&(o=u[0]&2?t["return"]:u[0]?t["throw"]||((o=t["return"])&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;if(t=0,o)u=[u[0]&2,o.value];switch(u[0]){case 0:case 1:o=u;break;case 4:r.label++;return{value:u[1],done:false};case 5:r.label++;t=u[1];u=[0];continue;case 7:u=r.ops.pop();r.trys.pop();continue;default:if(!(o=r.trys,o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){r.label=u[1];break}if(u[0]===6&&r.label<o[1]){r.label=o[1];o=u;break}if(o&&r.label<o[2]){r.label=o[2];r.ops.push(u);break}if(o[2])r.ops.pop();r.trys.pop();continue}u=e.call(n,r)}catch(n){u=[6,n];t=0}finally{i=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(n,e,r){if(r||arguments.length===2)for(var i=0,t=e.length,o;i<t;i++){if(o||!(i in e)){if(!o)o=Array.prototype.slice.call(e,0,i);o[i]=e[i]}}return n.concat(o||Array.prototype.slice.call(e))};
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */System.register(["./p-792919fd.system.js","./p-3ad285e3.system.js","./p-9f3008d4.system.js","./p-a69b9fc5.system.js","./p-8635f5e6.system.js","./p-20d469d0.system.js","./p-ff4b7e40.system.js"],(function(n){"use strict";var e,r,i,t,o,a,u,f,d,c,v,s,l;return{setters:[function(n){e=n.d},function(n){r=n.f;i=n.c;t=n.a;o=n.b;a=n.g},function(n){u=n.OVERLAY_BACK_BUTTON_PRIORITY;f=n.shouldUseCloseWatcher},function(n){d=n.b;c=n.c},function(n){v=n.C},function(n){s=n.B},function(n){l=n.p}],execute:function(){var h=this;var m='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';var p=n("n",(function(n,e){var r=n.querySelector(m);w(r,e!==null&&e!==void 0?e:n)}));var y=n("q",(function(n,e){var r=Array.from(n.querySelectorAll(m));var i=r.length>0?r[r.length-1]:null;w(i,e!==null&&e!==void 0?e:n)}));var w=function(n,e){var i=n;var t=n===null||n===void 0?void 0:n.shadowRoot;if(t){i=t.querySelector(m)||n}if(i){r(i)}else{e.focus()}};var b=0;var _=0;var g=new WeakMap;var O=function(n){return{create:function(e){return P(n,e)},dismiss:function(e,r,i){return M(document,e,r,n,i)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){return[2,V(document,n)]}))}))}}};var k=n("a",O("ion-alert"));var T=n("b",O("ion-action-sheet"));var A=n("l",O("ion-loading"));var x=n("m",O("ion-modal"));var j=n("p",O("ion-picker-legacy"));var S=n("c",O("ion-popover"));var I=n("t",O("ion-toast"));var N=n("j",(function(n){if(typeof document!=="undefined"){G(document)}var e=b++;n.overlayIndex=e}));var D=n("k",(function(n){if(!n.hasAttribute("id")){n.id="ion-overlay-".concat(++_)}return n.id}));var P=function(n,e){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(n).then((function(){var r=document.createElement(n);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},e),{hasController:true}));J(document).appendChild(r);return new Promise((function(n){return i(r,n)}))}))}return Promise.resolve()};var B=function(n){return n.classList.contains("overlay-hidden")};var C=function(n,e){var i=n;var t=n===null||n===void 0?void 0:n.shadowRoot;if(t){i=t.querySelector(m)||n}if(i){r(i)}else{e.focus()}};var E=function(n,e){var r=V(e,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover");var i=n.target;if(!r||!i){return}if(r.classList.contains(un)){return}var t=function(){if(r===i){r.lastFocus=undefined}else if(i.tagName==="ION-TOAST"){C(r.lastFocus,r)}else{var n=a(r);if(!n.contains(i)){return}var t=n.querySelector(".ion-overlay-wrapper");if(!t){return}if(t.contains(i)||i===n.querySelector("ion-backdrop")){r.lastFocus=i}else{var o=r.lastFocus;p(t,r);if(o===e.activeElement){y(t,r)}r.lastFocus=e.activeElement}}};var o=function(){if(r.contains(i)){r.lastFocus=i}else if(i.tagName==="ION-TOAST"){C(r.lastFocus,r)}else{var n=r.lastFocus;p(r);if(n===e.activeElement){y(r)}r.lastFocus=e.activeElement}};if(r.shadowRoot){o()}else{t()}};var G=function(n){if(b===0){b=1;n.addEventListener("focus",(function(e){E(e,n)}),true);n.addEventListener("ionBackButton",(function(e){var r=V(n);if(r===null||r===void 0?void 0:r.backdropDismiss){e.detail.register(u,(function(){r.dismiss(undefined,Z)}))}}));if(!f()){n.addEventListener("keydown",(function(e){if(e.key==="Escape"){var r=V(n);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,Z)}}}))}}};var M=function(n,e,r,i,t){var o=V(n,i,t);if(!o){return Promise.reject("overlay does not exist")}return o.dismiss(e,r)};var F=function(n,e){if(e===undefined){e="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"}return Array.from(n.querySelectorAll(e)).filter((function(n){return n.overlayIndex>0}))};var L=function(n,e){return F(n,e).filter((function(n){return!B(n)}))};var V=n("o",(function(n,e,r){var i=L(n,e);return r===undefined?i[i.length-1]:i.find((function(n){return n.id===r}))}));var q=function(n){if(n===void 0){n=false}var e=J(document);var r=e.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(n){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var z=n("f",(function(n,e,r,i,t){return __awaiter(h,void 0,void 0,(function(){var o,a,u,f,v;return __generator(this,(function(l){switch(l.label){case 0:if(n.presented){return[2]}if(n.el.tagName!=="ION-TOAST"){q(true)}document.body.classList.add(s);on(n.el);tn(n.el);n.presented=true;n.willPresent.emit();(o=n.willPresentShorthand)===null||o===void 0?void 0:o.emit();u=d(n);f=n.enterAnimation?n.enterAnimation:c.get(e,u==="ios"?r:i);return[4,K(n,f,n.el,t)];case 1:v=l.sent();if(v){n.didPresent.emit();(a=n.didPresentShorthand)===null||a===void 0?void 0:a.emit()}if(n.el.tagName!=="ION-TOAST"){W(n.el)}if(n.keyboardClose&&(document.activeElement===null||!n.el.contains(document.activeElement))){n.el.focus()}n.el.removeAttribute("aria-hidden");return[2]}}))}))}));var W=function(n){return __awaiter(h,void 0,void 0,(function(){var e,r;return __generator(this,(function(i){switch(i.label){case 0:e=document.activeElement;if(!e){return[2]}r=e===null||e===void 0?void 0:e.shadowRoot;if(r){e=r.querySelector(m)||e}return[4,n.onDidDismiss()];case 1:i.sent();if(document.activeElement===null||document.activeElement===document.body){e.focus()}return[2]}}))}))};var H=n("g",(function(n,r,i,t,o,a,u){return __awaiter(h,void 0,void 0,(function(){var f,v,l,h,m,p,y,w;return __generator(this,(function(b){switch(b.label){case 0:if(!n.presented){return[2,false]}l=e!==undefined?L(e).filter((function(n){return n.tagName!=="ION-TOAST"})):[];h=l.length===1&&l[0].id===n.el.id;if(h){q(false);document.body.classList.remove(s)}n.presented=false;b.label=1;case 1:b.trys.push([1,4,,5]);tn(n.el);n.el.style.setProperty("pointer-events","none");n.willDismiss.emit({data:r,role:i});(f=n.willDismissShorthand)===null||f===void 0?void 0:f.emit({data:r,role:i});m=d(n);p=n.leaveAnimation?n.leaveAnimation:c.get(t,m==="ios"?o:a);if(!(i!==$))return[3,3];return[4,K(n,p,n.el,u)];case 2:b.sent();b.label=3;case 3:n.didDismiss.emit({data:r,role:i});(v=n.didDismissShorthand)===null||v===void 0?void 0:v.emit({data:r,role:i});y=g.get(n)||[];y.forEach((function(n){return n.destroy()}));g.delete(n);n.el.classList.add("overlay-hidden");n.el.style.removeProperty("pointer-events");if(n.el.lastFocus!==undefined){n.el.lastFocus=undefined}return[3,5];case 4:w=b.sent();console.error(w);return[3,5];case 5:n.el.remove();an();return[2,true]}}))}))}));var J=function(n){return n.querySelector("ion-app")||n.body};var K=function(n,e,r,i){return __awaiter(h,void 0,void 0,(function(){var t,o,a;return __generator(this,(function(u){switch(u.label){case 0:r.classList.remove("overlay-hidden");t=n.el;o=e(t,i);if(!n.animated||!c.getBoolean("animated",true)){o.duration(0)}if(n.keyboardClose){o.beforeAddWrite((function(){var n=r.ownerDocument.activeElement;if(n===null||n===void 0?void 0:n.matches("input,ion-input, ion-textarea")){n.blur()}}))}a=g.get(n)||[];g.set(n,__spreadArray(__spreadArray([],a,true),[o],false));return[4,o.play()];case 1:u.sent();return[2,true]}}))}))};var Q=n("h",(function(n,e){var r;var i=new Promise((function(n){return r=n}));R(n,e,(function(n){r(n.detail)}));return i}));var R=function(n,e,r){var i=function(t){o(n,e,i);r(t)};t(n,e,i)};var U=n("i",(function(n){return n==="cancel"||n===Z}));var X=function(n){return n()};var Y=n("s",(function(n,e){if(typeof n==="function"){var r=c.get("_zoneGate",X);return r((function(){try{return n(e)}catch(n){throw n}}))}return undefined}));var Z=n("B","backdrop");var $=n("G","gesture");var nn=n("O",39);var en=n("d",(function(n){var e=false;var r;var i=v();var t=function(t){if(t===void 0){t=false}if(r&&!t){return{delegate:r,inline:e}}var o=n.el,a=n.hasController,u=n.delegate;var f=o.parentNode;e=f!==null&&!a;r=e?u||i:u;return{inline:e,delegate:r}};var o=function(e){return __awaiter(h,void 0,void 0,(function(){var r,i;return __generator(this,(function(o){switch(o.label){case 0:r=t(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(n.el,e)];case 1:return[2,o.sent()];case 2:i=n.hasController;if(i&&e!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var a=function(){var e=t().delegate;if(e&&n.el!==undefined){e.removeViewFromDom(n.el.parentElement,n.el)}};return{attachViewToDom:o,removeViewFromDom:a}}));var rn=n("e",(function(){var n;var e=function(){if(n){n();n=undefined}};var r=function(r,i){e();var t=i!==undefined?document.getElementById(i):null;if(!t){l('A trigger element with the ID "'.concat(i,'" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.'),r);return}var o=function(n,e){var r=function(){e.present()};n.addEventListener("click",r);return function(){n.removeEventListener("click",r)}};n=o(t,r)};return{addClickListener:r,removeClickListener:e}}));var tn=function(n){if(e===undefined)return;n.setAttribute("aria-hidden","true")};var on=function(n){var r;if(e===undefined)return;var i=L(e);for(var t=i.length-1;t>=0;t--){var o=i[t];var a=(r=i[t+1])!==null&&r!==void 0?r:n;if(a.hasAttribute("aria-hidden")||a.tagName!=="ION-TOAST"){o.setAttribute("aria-hidden","true")}}};var an=function(){if(e===undefined)return;var n=L(e);for(var r=n.length-1;r>=0;r--){var i=n[r];i.removeAttribute("aria-hidden");if(i.tagName!=="ION-TOAST"){break}}};var un=n("F","ion-disable-focus-trap")}}}));
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{d as e}from"./p-7b30edcc.js";import{f as n,c as o,a as t,b as i,g as a}from"./p-b51e4004.js";import{OVERLAY_BACK_BUTTON_PRIORITY as r,shouldUseCloseWatcher as d}from"./p-ecceeb90.js";import{b as s,c as l}from"./p-0574e87e.js";import{C as c}from"./p-3cc276f4.js";import{B as u}from"./p-9b97df10.js";import{p as m}from"./p-06fee233.js";const p='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])',v=(e,n)=>{const o=e.querySelector(p);h(o,null!=n?n:e)},f=(e,n)=>{const o=Array.from(e.querySelectorAll(p));h(o.length>0?o[o.length-1]:null,null!=n?n:e)},h=(e,o)=>{let t=e;const i=null==e?void 0:e.shadowRoot;i&&(t=i.querySelector(p)||e),t?n(t):o.focus()};let b=0,y=0;const w=new WeakMap,g=e=>({create:n=>C(e,n),dismiss:(n,o,t)=>P(document,n,o,e,t),getTop:async()=>E(document,e)}),O=g("ion-alert"),T=g("ion-action-sheet"),k=g("ion-loading"),x=g("ion-modal"),j=g("ion-picker-legacy"),A=g("ion-popover"),I=g("ion-toast"),N=e=>{"undefined"!=typeof document&&B(document);const n=b++;e.overlayIndex=n},S=e=>(e.hasAttribute("id")||(e.id="ion-overlay-"+ ++y),e.id),C=(e,n)=>"undefined"!=typeof window&&void 0!==window.customElements?window.customElements.whenDefined(e).then((()=>{const t=document.createElement(e);return t.classList.add("overlay-hidden"),Object.assign(t,Object.assign(Object.assign({},n),{hasController:!0})),q(document).appendChild(t),new Promise((e=>o(t,e)))})):Promise.resolve(),D=(e,o)=>{let t=e;const i=null==e?void 0:e.shadowRoot;i&&(t=i.querySelector(p)||e),t?n(t):o.focus()},B=e=>{0===b&&(b=1,e.addEventListener("focus",(n=>{((e,n)=>{const o=E(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover"),t=e.target;o&&t&&(o.classList.contains(ne)||(o.shadowRoot?(()=>{if(o.contains(t))o.lastFocus=t;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const e=o.lastFocus;v(o),e===n.activeElement&&f(o),o.lastFocus=n.activeElement}})():(()=>{if(o===t)o.lastFocus=void 0;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const e=a(o);if(!e.contains(t))return;const i=e.querySelector(".ion-overlay-wrapper");if(!i)return;if(i.contains(t)||t===e.querySelector("ion-backdrop"))o.lastFocus=t;else{const e=o.lastFocus;v(i,o),e===n.activeElement&&f(i,o),o.lastFocus=n.activeElement}}})()))})(n,e)}),!0),e.addEventListener("ionBackButton",(n=>{const o=E(e);(null==o?void 0:o.backdropDismiss)&&n.detail.register(r,(()=>{o.dismiss(void 0,K)}))})),d()||e.addEventListener("keydown",(n=>{if("Escape"===n.key){const n=E(e);(null==n?void 0:n.backdropDismiss)&&n.dismiss(void 0,K)}})))},P=(e,n,o,t,i)=>{const a=E(e,t,i);return a?a.dismiss(n,o):Promise.reject("overlay does not exist")},M=(e,n)=>((e,n)=>(void 0===n&&(n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"),Array.from(e.querySelectorAll(n)).filter((e=>e.overlayIndex>0))))(e,n).filter((e=>!e.classList.contains("overlay-hidden"))),E=(e,n,o)=>{const t=M(e,n);return void 0===o?t[t.length-1]:t.find((e=>e.id===o))},F=(e=!1)=>{const n=q(document).querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");n&&(e?n.setAttribute("aria-hidden","true"):n.removeAttribute("aria-hidden"))},G=async(e,n,o,t,i)=>{var a,r;if(e.presented)return;"ION-TOAST"!==e.el.tagName&&F(!0),document.body.classList.add(u),Z(e.el),Y(e.el),e.presented=!0,e.willPresent.emit(),null===(a=e.willPresentShorthand)||void 0===a||a.emit();const d=s(e),c=e.enterAnimation?e.enterAnimation:l.get(n,"ios"===d?o:t);await z(e,c,e.el,i)&&(e.didPresent.emit(),null===(r=e.didPresentShorthand)||void 0===r||r.emit()),"ION-TOAST"!==e.el.tagName&&L(e.el),!e.keyboardClose||null!==document.activeElement&&e.el.contains(document.activeElement)||e.el.focus(),e.el.removeAttribute("aria-hidden")},L=async e=>{let n=document.activeElement;if(!n)return;const o=null==n?void 0:n.shadowRoot;o&&(n=o.querySelector(p)||n),await e.onDidDismiss(),null!==document.activeElement&&document.activeElement!==document.body||n.focus()},V=async(n,o,t,i,a,r,d)=>{var c,m;if(!n.presented)return!1;const p=void 0!==e?M(e).filter((e=>"ION-TOAST"!==e.tagName)):[];1===p.length&&p[0].id===n.el.id&&(F(!1),document.body.classList.remove(u)),n.presented=!1;try{Y(n.el),n.el.style.setProperty("pointer-events","none"),n.willDismiss.emit({data:o,role:t}),null===(c=n.willDismissShorthand)||void 0===c||c.emit({data:o,role:t});const e=s(n),u=n.leaveAnimation?n.leaveAnimation:l.get(i,"ios"===e?a:r);t!==Q&&await z(n,u,n.el,d),n.didDismiss.emit({data:o,role:t}),null===(m=n.didDismissShorthand)||void 0===m||m.emit({data:o,role:t}),(w.get(n)||[]).forEach((e=>e.destroy())),w.delete(n),n.el.classList.add("overlay-hidden"),n.el.style.removeProperty("pointer-events"),void 0!==n.el.lastFocus&&(n.el.lastFocus=void 0)}catch(e){console.error(e)}return n.el.remove(),ee(),!0},q=e=>e.querySelector("ion-app")||e.body,z=async(e,n,o,t)=>{o.classList.remove("overlay-hidden");const i=n(e.el,t);e.animated&&l.getBoolean("animated",!0)||i.duration(0),e.keyboardClose&&i.beforeAddWrite((()=>{const e=o.ownerDocument.activeElement;(null==e?void 0:e.matches("input,ion-input, ion-textarea"))&&e.blur()}));const a=w.get(e)||[];return w.set(e,[...a,i]),await i.play(),!0},W=(e,n)=>{let o;const t=new Promise((e=>o=e));return $(e,n,(e=>{o(e.detail)})),t},$=(e,n,o)=>{const a=t=>{i(e,n,a),o(t)};t(e,n,a)},_=e=>"cancel"===e||e===K,H=e=>e(),J=(e,n)=>{if("function"==typeof e)return l.get("_zoneGate",H)((()=>{try{return e(n)}catch(e){throw e}}))},K="backdrop",Q="gesture",R=39,U=e=>{let n,o=!1;const t=c(),i=(i=!1)=>{if(n&&!i)return{delegate:n,inline:o};const{el:a,hasController:r,delegate:d}=e;return o=null!==a.parentNode&&!r,n=o?d||t:d,{inline:o,delegate:n}};return{attachViewToDom:async n=>{const{delegate:o}=i(!0);if(o)return await o.attachViewToDom(e.el,n);const{hasController:t}=e;if(t&&void 0!==n)throw new Error("framework delegate is missing");return null},removeViewFromDom:()=>{const{delegate:n}=i();n&&void 0!==e.el&&n.removeViewFromDom(e.el.parentElement,e.el)}}},X=()=>{let e;const n=()=>{e&&(e(),e=void 0)};return{addClickListener:(o,t)=>{n();const i=void 0!==t?document.getElementById(t):null;i?e=((e,n)=>{const o=()=>{n.present()};return e.addEventListener("click",o),()=>{e.removeEventListener("click",o)}})(i,o):m(`A trigger element with the ID "${t}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`,o)},removeClickListener:n}},Y=n=>{void 0!==e&&n.setAttribute("aria-hidden","true")},Z=n=>{var o;if(void 0===e)return;const t=M(e);for(let e=t.length-1;e>=0;e--){const i=t[e],a=null!==(o=t[e+1])&&void 0!==o?o:n;(a.hasAttribute("aria-hidden")||"ION-TOAST"!==a.tagName)&&i.setAttribute("aria-hidden","true")}},ee=()=>{if(void 0===e)return;const n=M(e);for(let e=n.length-1;e>=0;e--){const o=n[e];if(o.removeAttribute("aria-hidden"),"ION-TOAST"!==o.tagName)break}},ne="ion-disable-focus-trap";export{K as B,ne as F,Q as G,R as O,O as a,T as b,A as c,U as d,X as e,G as f,V as g,W as h,_ as i,N as j,S as k,k as l,x as m,v as n,E as o,j as p,f as q,J as s,I as t}