@ionic/core 8.7.4-dev.11756465095.1387c832 → 8.7.4-dev.11756888693.1b2f4d4a

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 (68) hide show
  1. package/components/ion-datetime.js +3 -4
  2. package/components/ion-menu.js +2 -5
  3. package/components/overlays.js +109 -18
  4. package/components/picker-column-option.js +4 -4
  5. package/components/picker-column.js +39 -3
  6. package/components/select-modal.js +1 -1
  7. package/dist/cjs/index.cjs.js +1 -1
  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-datetime_3.cjs.entry.js +4 -4
  11. package/dist/cjs/ion-loading.cjs.entry.js +1 -1
  12. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -6
  13. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  14. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  15. package/dist/cjs/ion-picker-column.cjs.entry.js +39 -3
  16. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  17. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  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/{overlays-Di-PotkY.js → overlays-cmlYi6Sc.js} +108 -17
  21. package/dist/collection/components/datetime/datetime.js +3 -4
  22. package/dist/collection/components/menu/menu.js +2 -9
  23. package/dist/collection/components/picker-column/picker-column.js +39 -3
  24. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +2 -2
  25. package/dist/collection/components/picker-column-option/picker-column-option.js +1 -1
  26. package/dist/collection/components/picker-column-option/picker-column-option.md.css +2 -2
  27. package/dist/collection/components/select-modal/select-modal.ionic.css +4 -0
  28. package/dist/collection/utils/overlays.js +109 -17
  29. package/dist/docs.json +1 -5
  30. package/dist/esm/index.js +1 -1
  31. package/dist/esm/ion-action-sheet.entry.js +1 -1
  32. package/dist/esm/ion-alert.entry.js +1 -1
  33. package/dist/esm/ion-datetime_3.entry.js +4 -4
  34. package/dist/esm/ion-loading.entry.js +1 -1
  35. package/dist/esm/ion-menu_3.entry.js +3 -6
  36. package/dist/esm/ion-modal.entry.js +1 -1
  37. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  38. package/dist/esm/ion-picker-column.entry.js +39 -3
  39. package/dist/esm/ion-popover.entry.js +1 -1
  40. package/dist/esm/ion-select-modal.entry.js +2 -2
  41. package/dist/esm/ion-select_3.entry.js +1 -1
  42. package/dist/esm/ion-toast.entry.js +1 -1
  43. package/dist/esm/{overlays-B1-bMbOY.js → overlays-e6TpXUJS.js} +109 -18
  44. package/dist/ionic/index.esm.js +1 -1
  45. package/dist/ionic/ionic.esm.js +1 -1
  46. package/dist/ionic/{p-f0e88837.entry.js → p-0cffd1bf.entry.js} +1 -1
  47. package/dist/ionic/{p-fcba862e.entry.js → p-1fd86237.entry.js} +1 -1
  48. package/dist/ionic/{p-db20a452.entry.js → p-34198a78.entry.js} +1 -1
  49. package/dist/ionic/p-417569b5.entry.js +4 -0
  50. package/dist/ionic/p-45b08f61.entry.js +4 -0
  51. package/dist/ionic/p-63b6f13f.entry.js +4 -0
  52. package/dist/ionic/p-80de7b65.entry.js +4 -0
  53. package/dist/ionic/{p-00239ebc.entry.js → p-9d9584bd.entry.js} +1 -1
  54. package/dist/ionic/p-9f1d66d0.entry.js +4 -0
  55. package/dist/ionic/p-DkI7cEUN.js +4 -0
  56. package/dist/ionic/{p-c847a353.entry.js → p-bfad272a.entry.js} +1 -1
  57. package/dist/ionic/{p-361408bb.entry.js → p-d45f502a.entry.js} +1 -1
  58. package/dist/ionic/{p-3b1c39cf.entry.js → p-f116e723.entry.js} +1 -1
  59. package/dist/types/components/picker-column/picker-column.d.ts +7 -0
  60. package/hydrate/index.js +157 -33
  61. package/hydrate/index.mjs +157 -33
  62. package/package.json +2 -2
  63. package/dist/ionic/p-47b803fc.entry.js +0 -4
  64. package/dist/ionic/p-66b83d63.entry.js +0 -4
  65. package/dist/ionic/p-9e575e4e.entry.js +0 -4
  66. package/dist/ionic/p-CKq50gmC.js +0 -4
  67. package/dist/ionic/p-a953afe2.entry.js +0 -4
  68. package/dist/ionic/p-f4d11cbb.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -6508,17 +6508,15 @@ const getPresentedOverlay = (doc, overlayTag, id) => {
6508
6508
  */
6509
6509
  const setRootAriaHidden = (hidden = false) => {
6510
6510
  const root = getAppRoot(document);
6511
- const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
6511
+ const viewContainer = root.querySelector('ion-router-outlet, ion-nav, #ion-view-container-root');
6512
6512
  if (!viewContainer) {
6513
6513
  return;
6514
6514
  }
6515
6515
  if (hidden) {
6516
6516
  viewContainer.setAttribute('aria-hidden', 'true');
6517
- viewContainer.setAttribute('inert', '');
6518
6517
  }
6519
6518
  else {
6520
6519
  viewContainer.removeAttribute('aria-hidden');
6521
- viewContainer.removeAttribute('inert');
6522
6520
  }
6523
6521
  };
6524
6522
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
@@ -6526,17 +6524,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
6526
6524
  if (overlay.presented) {
6527
6525
  return;
6528
6526
  }
6529
- /**
6530
- * When an overlay that steals focus
6531
- * is dismissed, focus should be returned
6532
- * to the element that was focused
6533
- * prior to the overlay opening. Toast
6534
- * does not steal focus and is excluded
6535
- * from returning focus as a result.
6536
- */
6537
- if (overlay.el.tagName !== 'ION-TOAST') {
6538
- restoreElementFocus(overlay.el);
6539
- }
6540
6527
  /**
6541
6528
  * Due to accessibility guidelines, toasts do not have
6542
6529
  * focus traps.
@@ -6548,6 +6535,8 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
6548
6535
  setRootAriaHidden(true);
6549
6536
  document.body.classList.add(BACKDROP_NO_SCROLL);
6550
6537
  }
6538
+ hideUnderlyingOverlaysFromScreenReaders(overlay.el);
6539
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
6551
6540
  overlay.presented = true;
6552
6541
  overlay.willPresent.emit();
6553
6542
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -6561,6 +6550,17 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
6561
6550
  overlay.didPresent.emit();
6562
6551
  (_b = overlay.didPresentShorthand) === null || _b === void 0 ? void 0 : _b.emit();
6563
6552
  }
6553
+ /**
6554
+ * When an overlay that steals focus
6555
+ * is dismissed, focus should be returned
6556
+ * to the element that was focused
6557
+ * prior to the overlay opening. Toast
6558
+ * does not steal focus and is excluded
6559
+ * from returning focus as a result.
6560
+ */
6561
+ if (overlay.el.tagName !== 'ION-TOAST') {
6562
+ restoreElementFocus(overlay.el);
6563
+ }
6564
6564
  /**
6565
6565
  * If the focused element is already
6566
6566
  * inside the overlay component then
@@ -6583,7 +6583,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
6583
6583
  * screen readers.
6584
6584
  */
6585
6585
  overlay.el.removeAttribute('aria-hidden');
6586
- overlay.el.removeAttribute('inert');
6587
6586
  };
6588
6587
  /**
6589
6588
  * When an overlay component is dismissed,
@@ -6600,8 +6599,6 @@ const restoreElementFocus = async (overlayEl) => {
6600
6599
  if (!previousElement) {
6601
6600
  return;
6602
6601
  }
6603
- // Ensure active element is blurred to prevent a11y warning issues
6604
- previousElement.blur();
6605
6602
  const shadowRoot = previousElement === null || previousElement === void 0 ? void 0 : previousElement.shadowRoot;
6606
6603
  if (shadowRoot) {
6607
6604
  // If there are no inner focusable elements, just focus the host element.
@@ -6665,6 +6662,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
6665
6662
  }
6666
6663
  overlay.presented = false;
6667
6664
  try {
6665
+ /**
6666
+ * There is no need to show the overlay to screen readers during
6667
+ * the dismiss animation. This is because the overlay will be removed
6668
+ * from the DOM after the animation is complete.
6669
+ */
6670
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
6668
6671
  // Overlay contents should not be clickable during dismiss
6669
6672
  overlay.el.style.setProperty('pointer-events', 'none');
6670
6673
  overlay.willDismiss.emit({ data, role });
@@ -6703,6 +6706,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
6703
6706
  printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
6704
6707
  }
6705
6708
  overlay.el.remove();
6709
+ revealOverlaysToScreenReaders();
6706
6710
  return true;
6707
6711
  };
6708
6712
  const getAppRoot = (doc) => {
@@ -6899,6 +6903,93 @@ const createTriggerController = () => {
6899
6903
  removeClickListener,
6900
6904
  };
6901
6905
  };
6906
+ /**
6907
+ * The overlay that is being animated also needs to hide from screen
6908
+ * readers during its animation. This ensures that assistive technologies
6909
+ * like TalkBack do not announce or interact with the content until the
6910
+ * animation is complete, avoiding confusion for users.
6911
+ *
6912
+ * When the overlay is presented on an Android device, TalkBack's focus rings
6913
+ * may appear in the wrong position due to the transition (specifically
6914
+ * `transform` styles). This occurs because the focus rings are initially
6915
+ * displayed at the starting position of the elements before the transition
6916
+ * begins. This workaround ensures the focus rings do not appear in the
6917
+ * incorrect location.
6918
+ *
6919
+ * If this solution is applied to iOS devices, then it leads to a bug where
6920
+ * the overlays cannot be accessed by screen readers. This is due to
6921
+ * VoiceOver not being able to update the accessibility tree when the
6922
+ * `aria-hidden` is removed.
6923
+ *
6924
+ * @param overlay - The overlay that is being animated.
6925
+ */
6926
+ const hideAnimatingOverlayFromScreenReaders = (overlay) => {
6927
+ if (doc === undefined)
6928
+ return;
6929
+ if (isPlatform('android')) {
6930
+ /**
6931
+ * Once the animation is complete, this attribute will be removed.
6932
+ * This is done at the end of the `present` method.
6933
+ */
6934
+ overlay.setAttribute('aria-hidden', 'true');
6935
+ }
6936
+ };
6937
+ /**
6938
+ * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
6939
+ * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
6940
+ * events here because those events do not fire when the screen readers moves to a non-focusable
6941
+ * element such as text.
6942
+ * Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
6943
+ *
6944
+ * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
6945
+ * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
6946
+ */
6947
+ const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
6948
+ var _a;
6949
+ if (doc === undefined)
6950
+ return;
6951
+ const overlays = getPresentedOverlays(doc);
6952
+ for (let i = overlays.length - 1; i >= 0; i--) {
6953
+ const presentedOverlay = overlays[i];
6954
+ const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
6955
+ /**
6956
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
6957
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
6958
+ * should not have aria-hidden either so focus can remain in the current overlay.
6959
+ */
6960
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
6961
+ presentedOverlay.setAttribute('aria-hidden', 'true');
6962
+ }
6963
+ }
6964
+ };
6965
+ /**
6966
+ * When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
6967
+ * If the top-most overlay is a Toast we potentially need to reveal more overlays since
6968
+ * focus is never automatically moved to the Toast.
6969
+ */
6970
+ const revealOverlaysToScreenReaders = () => {
6971
+ if (doc === undefined)
6972
+ return;
6973
+ const overlays = getPresentedOverlays(doc);
6974
+ for (let i = overlays.length - 1; i >= 0; i--) {
6975
+ const currentOverlay = overlays[i];
6976
+ /**
6977
+ * If the current we are looking at is a Toast then we can remove aria-hidden.
6978
+ * However, we potentially need to keep looking at the overlay stack because there
6979
+ * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
6980
+ * overlay too so focus can move there since focus is never automatically moved to the Toast.
6981
+ */
6982
+ currentOverlay.removeAttribute('aria-hidden');
6983
+ /**
6984
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
6985
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
6986
+ * be hidden from screen readers.
6987
+ */
6988
+ if (currentOverlay.tagName !== 'ION-TOAST') {
6989
+ break;
6990
+ }
6991
+ }
6992
+ };
6902
6993
  const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
6903
6994
 
6904
6995
  let animationPrefix;
@@ -14013,7 +14104,7 @@ class Datetime {
14013
14104
  const renderArray = forcePresentation === 'time-date'
14014
14105
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
14015
14106
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
14016
- return hAsync("ion-picker", { class: FOCUS_TRAP_DISABLE_CLASS }, renderArray);
14107
+ return hAsync("ion-picker", null, renderArray);
14017
14108
  }
14018
14109
  renderDatePickerColumns(forcePresentation) {
14019
14110
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -14640,7 +14731,7 @@ class Datetime {
14640
14731
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
14641
14732
  const hasWheelVariant = hasDatePresentation && preferWheel;
14642
14733
  renderHiddenInput(true, el, name, formatValue(value), disabled);
14643
- return (hAsync(Host, { key: 'd87c9e8d85ae7b1c8af3c8f266b76dd8d364a446', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
14734
+ return (hAsync(Host, { key: '40f8732998d123ef5c700080cc423bb8310654d5', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
14644
14735
  [theme]: true,
14645
14736
  ['datetime-readonly']: readonly,
14646
14737
  ['datetime-disabled']: disabled,
@@ -14650,7 +14741,7 @@ class Datetime {
14650
14741
  [`datetime-size-${size}`]: true,
14651
14742
  [`datetime-prefer-wheel`]: hasWheelVariant,
14652
14743
  [`datetime-grid`]: isGridStyle,
14653
- })) }, hAsync("div", { key: '4d2e7316268ebbadf79f00b5d85928bbeffd283d', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(theme)));
14744
+ })) }, hAsync("div", { key: '0a323aa4e3cd9c96495d0dc3bf7985c8723f5e8c', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(theme)));
14654
14745
  }
14655
14746
  get el() { return getElement(this); }
14656
14747
  static get watchers() { return {
@@ -21002,9 +21093,6 @@ class Menu {
21002
21093
  * @param role The role of the element that is closing the menu.
21003
21094
  */
21004
21095
  setOpen(shouldOpen, animated = true, role) {
21005
- var _a;
21006
- // Blur the active element to prevent it from being kept focused inside an element that will be set with aria-hidden="true"
21007
- (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
21008
21096
  return menuController._setOpen(this, shouldOpen, animated, role);
21009
21097
  }
21010
21098
  trapKeyboardFocus(ev, doc) {
@@ -21367,14 +21455,14 @@ class Menu {
21367
21455
  * the ionBackButton listener in the menu controller
21368
21456
  * will handle closing the menu when Escape is pressed.
21369
21457
  */
21370
- return (hAsync(Host, { key: '12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
21458
+ return (hAsync(Host, { key: 'b0e4627dc1a53c796913d3da9b7575f0d69086d0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
21371
21459
  [theme]: true,
21372
21460
  [`menu-type-${type}`]: true,
21373
21461
  'menu-enabled': !disabled,
21374
21462
  [`menu-side-${side}`]: true,
21375
21463
  'menu-pane-visible': isPaneVisible,
21376
21464
  'split-pane-side': hostContext('ion-split-pane', el),
21377
- } }, hAsync("div", { key: 'd43e12f2502ae5da847eb0d2a70d0a3945733739', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '19977e6584bdbb5b01e6e0a4a7f4558087175b33' })), hAsync("ion-backdrop", { key: '22e79a7edca409248bd3637474d6783f1d7de1b3', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
21465
+ } }, hAsync("div", { key: '6733a5a84b2bcb8f52fb2bac1c286ab5ac1a9321', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'a527ba8092d9eb1ee570f3bdd47c6d4d35cd4dfd' })), hAsync("ion-backdrop", { key: '693c82c16d5110cc08eb651309d092a848329cc1', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
21378
21466
  }
21379
21467
  get el() { return getElement(this); }
21380
21468
  static get watchers() { return {
@@ -26572,6 +26660,23 @@ class PickerColumn {
26572
26660
  var _a;
26573
26661
  return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
26574
26662
  };
26663
+ /**
26664
+ * Render an element that overlays the column. This element is for assistive
26665
+ * tech to allow users to navigate the column up/down. This element should receive
26666
+ * focus as it listens for synthesized keyboard events as required by the
26667
+ * slider role: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/slider_role
26668
+ */
26669
+ this.renderAssistiveFocusable = () => {
26670
+ const { activeItem } = this;
26671
+ const valueText = this.getOptionValueText(activeItem);
26672
+ /**
26673
+ * When using the picker, the valuetext provides important context that valuenow
26674
+ * does not. Additionally, using non-zero valuemin/valuemax values can cause
26675
+ * WebKit to incorrectly announce numeric valuetext values (such as a year
26676
+ * like "2024") as percentages: https://bugs.webkit.org/show_bug.cgi?id=273126
26677
+ */
26678
+ return (hAsync("div", { ref: (el) => (this.assistiveFocusable = el), class: "assistive-focusable", role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": valueText, "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }));
26679
+ };
26575
26680
  }
26576
26681
  ariaLabelChanged(newValue) {
26577
26682
  this.ariaLabel = newValue;
@@ -26712,14 +26817,33 @@ class PickerColumn {
26712
26817
  render() {
26713
26818
  const { color, disabled, isActive, numericInput } = this;
26714
26819
  const theme = getIonTheme(this);
26715
- return (hAsync(Host, { key: '7c9603b518a73f9883ff01464fe3f70c14b9059c', class: createColorClasses$1(color, {
26820
+ return (hAsync(Host, { key: '03736b14a79aaadec0f7bdac8b61584bd87ccad0', class: createColorClasses$1(color, {
26716
26821
  [theme]: true,
26717
26822
  ['picker-column-active']: isActive,
26718
26823
  ['picker-column-numeric-input']: numericInput,
26719
26824
  ['picker-column-disabled']: disabled,
26720
- }) }, hAsync("slot", { key: 'e98e79dd51550361131d59a8871fe2990dc40edc', name: "prefix" }), hAsync("div", { key: '85894791c93da84401138285bf4fbb169897c3d6', class: "picker-opts", ref: (el) => {
26825
+ }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '68c982ebabe6549bda8473b5e75fe1a2a5bfac02', name: "prefix" }), hAsync("div", { key: '9347af6d92c2743262627f0e22cd2ab6e36697fa', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
26721
26826
  this.scrollEl = el;
26722
- }, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: 'd9546be214c2faf2340faf31d8468c2f39f31e4c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '47671f18a0a0659c0660b3b82d234e92b6dcc721', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'f3fc8f9cfc67d0d0dfbf7c134524353297117170', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '4c30c1e5df5f1758978458dbd7e405a01d3118fe' }), hAsync("div", { key: '4e71db05a18d645c6fa49d3a6e67a68cc374b868', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '7fd2461759a92a6909ab514a14bdb41f7d2d16d5', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '015fc0875e5e2df575810fd79635ed5a0f5a29dd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'd706a79b1b5b31dc1e358fe1d64b41a2104ea153', name: "suffix" })));
26827
+ },
26828
+ /**
26829
+ * When an element has an overlay scroll style and
26830
+ * a fixed height, Firefox will focus the scrollable
26831
+ * container if the content exceeds the container's
26832
+ * dimensions.
26833
+ *
26834
+ * This causes keyboard navigation to focus to this
26835
+ * element instead of going to the next element in
26836
+ * the tab order.
26837
+ *
26838
+ * The desired behavior is for the user to be able to
26839
+ * focus the assistive focusable element and tab to
26840
+ * the next element in the tab order. Instead of tabbing
26841
+ * to this element.
26842
+ *
26843
+ * To prevent this, we set the tabIndex to -1. This
26844
+ * will match the behavior of the other browsers.
26845
+ */
26846
+ tabIndex: -1 }, hAsync("div", { key: '48aa739ea118e6c6c92dd32aa669afc8cbc9bbd9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '4c5acf2374d2ad96c3cc0e927023d2ba8615ce4d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'ae5cad7c4deeb08619d4021dfa1f2ba7d0cd9c09', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '076bb7a8359908369b56ad8021d812fa0d094f5b' }), hAsync("div", { key: '7cf4d0a8d32a9c304fbdb7469c2a5528b91744b9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '2c6585e2091abc2b83dc77c419d5a8a4d317f499', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '2ee73069dede56b1edc0adfd3037ff0f83389c3e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'f704bf80e0a0c91d0a50114cba974bbb9d7937d1', name: "suffix" })));
26723
26847
  }
26724
26848
  get el() { return getElement(this); }
26725
26849
  static get watchers() { return {
@@ -27111,11 +27235,11 @@ const DECELERATION_FRICTION = 0.97;
27111
27235
  const MAX_PICKER_SPEED = 90;
27112
27236
  const TRANSITION_DURATION = 150;
27113
27237
 
27114
- const ionicPickerColumnOptionMdCss = ".picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
27238
+ const ionicPickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
27115
27239
 
27116
- const pickerColumnOptionIosCss = ".picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}";
27240
+ const pickerColumnOptionIosCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}";
27117
27241
 
27118
- const pickerColumnOptionMdCss = ".picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
27242
+ const pickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
27119
27243
 
27120
27244
  /**
27121
27245
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
@@ -27211,7 +27335,7 @@ class PickerColumnOption {
27211
27335
  return (hAsync(Host, { key: '9ceebae71b6df0b01f36691d82d716f6756625d9', class: createColorClasses$1(color, {
27212
27336
  [theme]: true,
27213
27337
  ['option-disabled']: disabled,
27214
- }) }, hAsync("div", { key: '1f26246d601779dadfaf055d195e2a4959180f5a', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'eed413474a8b7ec7a73da27fa72a2d0a9a2aae2b' }))));
27338
+ }) }, hAsync("button", { key: 'f6b973f486688a74a08b60c09ab41b640e49db6b', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: 'ff9607efb6a87c60c9421c32c81612e4650c6862' }))));
27215
27339
  }
27216
27340
  get el() { return getElement(this); }
27217
27341
  static get watchers() { return {
@@ -35285,7 +35409,7 @@ const textForValue = (opts, value, compareWith) => {
35285
35409
  let selectIds = 0;
35286
35410
  const OPTION_CLASS = 'select-interface-option';
35287
35411
 
35288
- const selectModalIonicCss = ".sc-ion-select-modal-ionic-h{height:100%}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--ion-font-size-450, 1.125rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-700, var(--ion-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"container\"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"label\"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"label\"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~=\"label\"]{font-size:var(--ion-font-size-400, 1rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-600, var(--ion-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--ion-semantics-primary-100, var(--ion-primitives-blue-100, #f2f4fd));--border-radius:var(--ion-border-radius-400, var(--ion-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-end:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-bottom:var(--ion-space-1200, var(--ion-scale-1200, 48px)) !important}";
35412
+ const selectModalIonicCss = ".sc-ion-select-modal-ionic-h{height:100%}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~=\"native\"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--ion-font-size-450, 1.125rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-700, var(--ion-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"container\"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"label\"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~=\"label\"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~=\"label\"]{font-size:var(--ion-font-size-400, 1rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-600, var(--ion-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--ion-semantics-primary-100, var(--ion-primitives-blue-100, #f2f4fd));--border-radius:var(--ion-border-radius-400, var(--ion-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-end:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-bottom:var(--ion-space-1200, var(--ion-scale-1200, 48px)) !important}";
35289
35413
 
35290
35414
  const selectModalIosCss = ".sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:\"\"}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}";
35291
35415
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.7.4-dev.11756465095.1387c832",
3
+ "version": "8.7.4-dev.11756888693.1b2f4d4a",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -45,7 +45,7 @@
45
45
  "@clack/prompts": "^0.11.0",
46
46
  "@ionic/eslint-config": "^0.3.0",
47
47
  "@ionic/prettier-config": "^2.0.0",
48
- "@playwright/test": "^1.55.0",
48
+ "@playwright/test": "^1.54.2",
49
49
  "@rollup/plugin-node-resolve": "^8.4.0",
50
50
  "@rollup/plugin-virtual": "^2.0.3",
51
51
  "@stencil/angular-output-target": "^0.10.0",
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as o,h as i,i as e,d as n,g as t}from"./p-4DxY6_gG.js";import{b as a}from"./p-Cdv0TJ6-.js";import{s as c}from"./p-CKq50gmC.js";import{g as s}from"./p-DiVJyqlX.js";import"./p-DuV7rU9I.js";import"./p-vXpMhGrs.js";import"./p-CqYDGaCK.js";import"./p-BTEOs1at.js";const r=class{constructor(i){o(this,i),this.options=[]}closeModal(){const o=this.el.closest("ion-modal");o&&o.dismiss()}findOptionFromEvent(o){const{options:i}=this;return i.find((i=>i.value===o.target.value))}getValues(o){const{multiple:i,options:e}=this;if(i)return e.filter((o=>o.checked)).map((o=>o.value));const n=o?this.findOptionFromEvent(o):null;return n?n.value:void 0}callOptionHandler(o){const i=this.findOptionFromEvent(o),e=this.getValues(o);(null==i?void 0:i.handler)&&c(i.handler,e)}setChecked(o){const{multiple:i}=this,e=this.findOptionFromEvent(o);i&&e&&(e.checked=o.detail.checked)}renderRadioOptions(){const o=this.options.filter((o=>o.checked)).map((o=>o.value))[0];return i("ion-radio-group",{value:o,onIonChange:o=>this.callOptionHandler(o)},this.options.map((e=>i("ion-item",{lines:"none",class:Object.assign({"item-radio-checked":e.value===o},s(e.cssClass))},i("ion-radio",{value:e.value,disabled:e.disabled,justify:"start",labelPlacement:"end",onClick:()=>this.closeModal(),onKeyUp:o=>{" "===o.key&&this.closeModal()}},e.text)))))}renderCheckboxOptions(){return this.options.map((o=>i("ion-item",{class:Object.assign({"item-checkbox-checked":o.checked},s(o.cssClass))},i("ion-checkbox",{value:o.value,disabled:o.disabled,checked:o.checked,justify:"start",labelPlacement:"end",onIonChange:o=>{this.setChecked(o),this.callOptionHandler(o),e(this)}},o.text))))}render(){return i(n,{key:"deaaaca03648144676358193315e71cb9bc4ceb2",class:a(this)},i("ion-header",{key:"05c4d1b433f902da8e01ba65f833a9399b3d562a"},i("ion-toolbar",{key:"ee89ea93574da163e3b662bd17dade69cf3de865"},void 0!==this.header&&i("ion-title",{key:"18b4ce602cae9ddfae0d2519c89281ecff58dfb1"},this.header),i("ion-buttons",{key:"4c3104688b9581d6e55924ecdd71693ecccfb9db",slot:"end"},i("ion-button",{key:"d17d2f02ba76fae4f22a837c7d95ed4994f44668",onClick:()=>this.closeModal()},"Close")))),i("ion-content",{key:"1ac2a04128b9ede077a03223690626508b3678d0"},i("ion-list",{key:"3a3cd9814d2d434fee4f746dfa41e544accc195f"},!0===this.multiple?this.renderCheckboxOptions():this.renderRadioOptions())))}get el(){return t(this)}};r.style={ionic:'.sc-ion-select-modal-ionic-h{height:100%}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--ion-font-size-450, 1.125rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-700, var(--ion-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--ion-font-size-400, 1rem);font-weight:var(--ion-font-weight-medium, 500);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-600, var(--ion-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--ion-semantics-primary-100, var(--ion-primitives-blue-100, #f2f4fd));--border-radius:var(--ion-border-radius-400, var(--ion-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-end:var(--ion-space-400, var(--ion-scale-400, 16px)) !important;--padding-bottom:var(--ion-space-1200, var(--ion-scale-1200, 48px)) !important}',ios:'.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}',md:'.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}'};export{r as ion_select_modal}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as e,c as t,e as i,j as n,h as o,d as r,g as a}from"./p-4DxY6_gG.js";import{g as s}from"./p-hHmYLOfE.js";import{o as d,B as h,n as l,q as m,G as p}from"./p-CKq50gmC.js";import{G as c}from"./p-BTEOs1at.js";import{b as u,a as b,c as f,s as g}from"./p-Cdv0TJ6-.js";import{o as v,i as x,l as w,e as y}from"./p-DuV7rU9I.js";import{m as k}from"./p-EG6i47Uw.js";import{h as z,c as C}from"./p-DiVJyqlX.js";import{l as j}from"./p-Dhi5xtNS.js";import{u as S,v as A}from"./p-COG0_eom.js";import"./p-CqYDGaCK.js";import"./p-vXpMhGrs.js";import"./p-CVVzZviS.js";const D=class{constructor(i){e(this,i),this.ionWillOpen=t(this,"ionWillOpen",7),this.ionWillClose=t(this,"ionWillClose",7),this.ionDidOpen=t(this,"ionDidOpen",7),this.ionDidClose=t(this,"ionDidClose",7),this.ionMenuChange=t(this,"ionMenuChange",7),this.lastOnEnd=0,this.blocker=c.createBlocker({disableScroll:!0}),this.didLoad=!1,this.operationCancelled=!1,this.isAnimating=!1,this._isOpen=!1,this.inheritedAttributes={},this.handleFocus=e=>{const t=d(document);t&&!t.contains(this.el)||this.trapKeyboardFocus(e,document)},this.isPaneVisible=!1,this.isEndSide=!1,this.disabled=!1,this.side="start",this.swipeGesture=!0,this.maxEdgeStart=50}typeChanged(e,t){const i=this.contentEl;i&&(void 0!==t&&i.classList.remove(`menu-content-${t}`),i.classList.add(`menu-content-${e}`),i.removeAttribute("style")),this.menuInnerEl&&this.menuInnerEl.removeAttribute("style"),this.animation=void 0}disabledChanged(){this.updateState(),this.ionMenuChange.emit({disabled:this.disabled,open:this._isOpen})}sideChanged(){this.isEndSide=v(this.side),this.animation=void 0}swipeGestureChanged(){this.updateState()}async connectedCallback(){"undefined"!=typeof customElements&&null!=customElements&&await customElements.whenDefined("ion-menu"),void 0===this.type&&(this.type=i.get("menuType","overlay"));const e=void 0!==this.contentId?document.getElementById(this.contentId):null;null!==e?(this.el.contains(e)&&n('[ion-menu] - The "contentId" should refer to the main view\'s ion-content, not the ion-content inside of the ion-menu.'),this.contentEl=e,e.classList.add("menu-content"),this.typeChanged(this.type,void 0),this.sideChanged(),k._register(this),this.menuChanged(),this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:document,gestureName:"menu-swipe",gesturePriority:30,threshold:10,blurOnStart:!0,canStart:e=>this.canStart(e),onWillStart:()=>this.onWillStart(),onStart:()=>this.onStart(),onMove:e=>this.onMove(e),onEnd:e=>this.onEnd(e)}),this.updateState()):n('[ion-menu] - Must have a "content" element to listen for drag events on.')}componentWillLoad(){this.inheritedAttributes=x(this.el)}async componentDidLoad(){this.didLoad=!0;const e=this.el.closest("ion-split-pane");null!==e&&(this.isPaneVisible=await e.isVisible()),this.menuChanged(),this.updateState()}menuChanged(){this.didLoad&&this.ionMenuChange.emit({disabled:this.disabled,open:this._isOpen})}async disconnectedCallback(){await this.close(!1),this.blocker.destroy(),k._unregister(this),this.animation&&this.animation.destroy(),this.gesture&&(this.gesture.destroy(),this.gesture=void 0),this.animation=void 0,this.contentEl=void 0}onSplitPaneChanged(e){const t=this.el.closest("ion-split-pane");null!==t&&t===e.target&&(this.isPaneVisible=e.detail.visible,this.updateState())}onBackdropClick(e){this._isOpen&&this.lastOnEnd<e.timeStamp-100&&e.composedPath&&!e.composedPath().includes(this.menuInnerEl)&&(e.preventDefault(),e.stopPropagation(),this.close(void 0,h))}onKeydown(e){"Escape"===e.key&&this.close(void 0,h)}isOpen(){return Promise.resolve(this._isOpen)}isActive(){return Promise.resolve(this._isActive())}open(e=!0){return this.setOpen(!0,e)}close(e=!0,t){return this.setOpen(!1,e,t)}toggle(e=!0){return this.setOpen(!this._isOpen,e)}setOpen(e,t=!0,i){var n;return null===(n=document.activeElement)||void 0===n||n.blur(),k._setOpen(this,e,t,i)}trapKeyboardFocus(e,t){const i=e.target;if(i)if(this.el.contains(i))this.lastFocus=i;else{const{el:e}=this;l(e),this.lastFocus===t.activeElement&&m(e)}}async _setOpen(e,t=!0,i){return!(!this._isActive()||this.isAnimating||e===this._isOpen||(this.beforeAnimation(e,i),await this.loadAnimation(),await this.startAnimation(e,t),this.operationCancelled?(this.operationCancelled=!1,1):(this.afterAnimation(e,i),0)))}async loadAnimation(){const e=this.menuInnerEl.offsetWidth,t=v(this.side);if(e===this.width&&void 0!==this.animation&&t===this.isEndSide)return;this.width=e,this.isEndSide=t,this.animation&&(this.animation.destroy(),this.animation=void 0);const n=this.animation=await k._createAnimation(this.type,this);i.getBoolean("animated",!0)||n.duration(0),n.fill("both")}async startAnimation(e,t){const i=!e,n=u(this),o="ios"===n?"cubic-bezier(0.32,0.72,0,1)":"cubic-bezier(0.0,0.0,0.2,1)",r="ios"===n?"cubic-bezier(1, 0, 0.68, 0.28)":"cubic-bezier(0.4, 0, 0.6, 1)",a=this.animation.direction(i?"reverse":"normal").easing(i?r:o);t?await a.play():a.play({sync:!0}),"reverse"===a.getDirection()&&a.direction("normal")}_isActive(){return!this.disabled&&!this.isPaneVisible}canSwipe(){return this.swipeGesture&&!this.isAnimating&&this._isActive()}canStart(e){return!(document.querySelector("ion-modal.show-modal")||!this.canSwipe())&&(!!this._isOpen||!k._getOpenSync()&&O(window,e.currentX,this.isEndSide,this.maxEdgeStart))}onWillStart(){return this.beforeAnimation(!this._isOpen,p),this.loadAnimation()}onStart(){this.isAnimating&&this.animation?this.animation.progressStart(!0,this._isOpen?1:0):w(!1,"isAnimating has to be true")}onMove(e){if(!this.isAnimating||!this.animation)return void w(!1,"isAnimating has to be true");const t=G(e.deltaX,this._isOpen,this.isEndSide)/this.width;this.animation.progressStep(this._isOpen?1-t:t)}onEnd(e){if(!this.isAnimating||!this.animation)return void w(!1,"isAnimating has to be true");const t=this._isOpen,i=this.isEndSide,n=G(e.deltaX,t,i),o=this.width,r=n/o,a=e.velocityX,d=o/2,h=a>=0&&(a>.2||e.deltaX>d),l=a<=0&&(a<-.2||e.deltaX<-d),m=t?i?h:l:i?l:h;let c=!t&&m;t&&!m&&(c=!0),this.lastOnEnd=e.currentTime;let u=m?.001:-.001;u+=s([0,0],[.4,0],[.6,1],[1,1],y(0,r<0?.01:r,.9999))[0]||0;const b=this._isOpen?!m:m;this.animation.easing("cubic-bezier(0.4, 0.0, 0.6, 1)").onFinish((()=>this.afterAnimation(c,p)),{oneTimeCallback:!0}).progressEnd(b?1:0,this._isOpen?1-u:u,300)}beforeAnimation(e,t){w(!this.isAnimating,"_before() should not be called while animating"),b("android")&&this.el.setAttribute("aria-hidden","true"),this.el.classList.add(_),this.el.setAttribute("tabindex","0"),this.backdropEl&&this.backdropEl.classList.add(E),this.contentEl&&(this.contentEl.classList.add(X),this.contentEl.setAttribute("aria-hidden","true")),this.blocker.block(),this.isAnimating=!0,e?this.ionWillOpen.emit():this.ionWillClose.emit({role:t})}afterAnimation(e,t){var i;this._isOpen=e,this.isAnimating=!1,this._isOpen||this.blocker.unblock(),e?(b("android")&&this.el.removeAttribute("aria-hidden"),this.ionDidOpen.emit(),(null===(i=document.activeElement)||void 0===i?void 0:i.closest("ion-menu"))!==this.el&&this.el.focus(),document.addEventListener("focus",this.handleFocus,!0)):(this.el.removeAttribute("aria-hidden"),this.el.classList.remove(_),this.el.removeAttribute("tabindex"),this.contentEl&&(this.contentEl.classList.remove(X),this.contentEl.removeAttribute("aria-hidden")),this.backdropEl&&this.backdropEl.classList.remove(E),this.animation&&this.animation.stop(),this.ionDidClose.emit({role:t}),document.removeEventListener("focus",this.handleFocus,!0))}updateState(){const e=this._isActive();this.gesture&&this.gesture.enable(e&&this.swipeGesture),e||(this.isAnimating&&(this.operationCancelled=!0),this.afterAnimation(!1,p))}render(){const{type:e,disabled:t,el:i,isPaneVisible:n,inheritedAttributes:a,side:s}=this,d=f(this);return o(r,{key:"12bd2c4e9aa2f314ffc45d7f43290bd9910ca8b0",onKeyDown:g()?null:this.onKeydown,role:"navigation","aria-label":a["aria-label"]||"menu",class:{[d]:!0,[`menu-type-${e}`]:!0,"menu-enabled":!t,[`menu-side-${s}`]:!0,"menu-pane-visible":n,"split-pane-side":z("ion-split-pane",i)}},o("div",{key:"d43e12f2502ae5da847eb0d2a70d0a3945733739",class:"menu-inner",part:"container",ref:e=>this.menuInnerEl=e},o("slot",{key:"19977e6584bdbb5b01e6e0a4a7f4558087175b33"})),o("ion-backdrop",{key:"22e79a7edca409248bd3637474d6783f1d7de1b3",ref:e=>this.backdropEl=e,class:"menu-backdrop",tappable:!1,stopPropagation:!1,part:"backdrop"}))}get el(){return a(this)}static get watchers(){return{type:["typeChanged"],disabled:["disabledChanged"],side:["sideChanged"],swipeGesture:["swipeGestureChanged"]}}},G=(e,t,i)=>Math.max(0,t!==i?-e:e),O=(e,t,i,n)=>i?t>=e.innerWidth-n:t<=n,_="show-menu",E="show-backdrop",X="menu-content-open";D.style={ionic:":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);right:0;left: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){right:0;left: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{right:0;left: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)}",ios:":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);right:0;left: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){right:0;left: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{right:0;left: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}",md:":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);right:0;left: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){right:0;left: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{right:0;left: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)}"};const W=async e=>{const t=await k.get(e);return!(!t||!await t.isActive())},M=class{constructor(t){e(this,t),this.inheritedAttributes={},this.visible=!1,this.disabled=!1,this.autoHide=!0,this.type="button",this.onClick=async()=>k.toggle(this.menu)}componentWillLoad(){this.inheritedAttributes=x(this.el)}componentDidLoad(){this.visibilityChanged()}async visibilityChanged(){this.visible=await W(this.menu)}get menuIcon(){const e=f(this),t={ios:A,ionic:j,md:S};return i.get("menuIcon",t[e]||t.md)}render(){const{color:e,disabled:t,inheritedAttributes:i,menuIcon:n}=this,a=f(this),s=this.autoHide&&!this.visible,d={type:this.type},h=i["aria-label"]||"menu";return o(r,{key:"206b8482b58e7ee49ea89393a15e9cf30578297b",onClick:this.onClick,"aria-disabled":t?"true":null,"aria-hidden":s?"true":null,class:C(e,{[a]:!0,button:!0,"menu-button-hidden":s,"menu-button-disabled":t,"in-toolbar":z("ion-toolbar",this.el),"in-toolbar-color":z("ion-toolbar[color]",this.el),"ion-activatable":!0,"ion-focusable":!0})},o("button",Object.assign({key:"33017f0cde4835383f65b82f24e088dc2cf46517"},d,{disabled:t,class:"button-native",part:"native","aria-label":h}),o("span",{key:"63aadc2910f7fd7ae070fe108822c51441dd8ea5",class:"button-inner"},o("slot",{key:"6696b67329bdf6a0a7db0739d16717eb9ffc5f3b"},o("ion-icon",{key:"7f88dd0caa7003db810bce76189ecbaba9ff6317",part:"icon",icon:n,lazy:!1,"aria-hidden":"true"}))),"md"===a&&o("ion-ripple-effect",{key:"1a2063529bb63cc055fb4bb7d1ad3032df2a74b4",type:"unbounded"})))}get el(){return a(this)}};M.style={ionic:':host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{right:0;left:0;top:0;bottom:0;position:absolute;content:"";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-focused:currentColor;--background-focused-opacity:0.12;--background-hover:currentColor;--background-hover-opacity:0.04;--border-radius:initial;--color:initial;--padding-start:0;--padding-end:0;position:relative;width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px);font-size:var(--ion-font-size-600, 1.5rem)}',ios:':host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{right:0;left:0;top:0;bottom:0;position:absolute;content:"";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host{--background-focused:currentColor;--background-focused-opacity:0.1;--border-radius:4px;--color:var(--ion-color-primary, #0054e9);--padding-start:5px;--padding-end:5px;min-height:32px;font-size:clamp(31px, 1.9375rem, 38.13px)}:host(.ion-activated){opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}',md:':host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{right:0;left:0;top:0;bottom:0;position:absolute;content:"";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host{--background-focused:currentColor;--background-focused-opacity:0.12;--background-hover:currentColor;--background-hover-opacity:0.04;--border-radius:50%;--color:initial;--padding-start:8px;--padding-end:8px;width:3rem;height:3rem;font-size:1.5rem}:host(.ion-color.ion-focused)::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}'};const P=class{constructor(t){e(this,t),this.visible=!1,this.autoHide=!0,this.onClick=()=>k.toggle(this.menu)}connectedCallback(){this.visibilityChanged()}async visibilityChanged(){this.visible=await W(this.menu)}render(){const e=f(this),t=this.autoHide&&!this.visible;return o(r,{key:"c3ddce789a90d720769919ebf854d05cc75f599e",onClick:this.onClick,"aria-hidden":t?"true":null,class:{[e]:!0,"menu-toggle-hidden":t}},o("slot",{key:"f1334ba9d20148b673a0b6185ab5ef92f448f720"}))}};P.style=":host(.menu-toggle-hidden){display:none}";export{D as ion_menu,M as ion_menu_button,P as ion_menu_toggle}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as i,c as t,h as e,d as s,g as n}from"./p-4DxY6_gG.js";import{a as o,c as a,d as r}from"./p-Cdv0TJ6-.js";import{r as l,g as d}from"./p-DuV7rU9I.js";import{b as c,a as h,h as p}from"./p-BYYLxYDJ.js";import{c as u}from"./p-DiVJyqlX.js";import"./p-vXpMhGrs.js";import"./p-Ex5J81sy.js";const f=class{constructor(e){i(this,e),this.ionChange=t(this,"ionChange",7),this.isScrolling=!1,this.isColumnVisible=!1,this.canExitInputMode=!0,this.updateValueTextOnScroll=!1,this.ariaLabel=null,this.isActive=!1,this.disabled=!1,this.color="primary",this.numericInput=!1,this.centerPickerItemInView=(i,t=!0,e=!0)=>{const{isColumnVisible:s,scrollEl:n}=this;if(s&&n){const s=i.offsetTop-3*i.clientHeight+i.clientHeight/2;n.scrollTop!==s&&(this.canExitInputMode=e,this.updateValueTextOnScroll=!1,n.scroll({top:s,left:0,behavior:t?"smooth":void 0}))}},this.setPickerItemActiveState=(i,t)=>{t?i.classList.add(m):i.classList.remove(m)},this.inputModeChange=i=>{if(!this.numericInput)return;const{useInputMode:t,inputModeColumn:e}=i.detail;this.setInputModeActive(!(!t||void 0!==e&&e!==this.el))},this.setInputModeActive=i=>{this.isScrolling?this.scrollEndCallback=()=>{this.isActive=i}:this.isActive=i},this.initializeScrollListener=()=>{const i=o("ios"),{el:t,scrollEl:e}=this;let s,n=this.activeItem;const a=()=>{l((()=>{var o;if(!e)return;s&&(clearTimeout(s),s=void 0),this.isScrolling||(i&&c(),this.isScrolling=!0);const a=e.getBoundingClientRect(),l=a.x+a.width/2,d=a.y+a.height/2,u=t.getRootNode(),f=u instanceof ShadowRoot?u:r;if(void 0===f)return;let m=f.elementsFromPoint(l,d).find((i=>"ION-PICKER-COLUMN-OPTION"===i.tagName));if(void 0===m){const i=f.elementFromPoint(l,d);"ION-PICKER-COLUMN-OPTION"===(null==i?void 0:i.tagName)&&(m=i)}void 0!==n&&this.setPickerItemActiveState(n,!1),void 0===m||m.disabled||(m!==n&&(i&&h(),this.canExitInputMode&&this.exitInputMode()),n=m,this.setPickerItemActiveState(m,!0),this.updateValueTextOnScroll&&(null===(o=this.assistiveFocusable)||void 0===o||o.setAttribute("aria-valuetext",this.getOptionValueText(m))),s=setTimeout((()=>{this.isScrolling=!1,this.updateValueTextOnScroll=!0,i&&p();const{scrollEndCallback:t}=this;t&&(t(),this.scrollEndCallback=void 0),this.canExitInputMode=!0,this.setValue(m.value)}),250))}))};l((()=>{e&&(e.addEventListener("scroll",a),this.destroyScrollListener=()=>{e.removeEventListener("scroll",a)})}))},this.exitInputMode=()=>{const{parentEl:i}=this;null!=i&&(i.exitInputMode(),this.el.classList.remove("picker-column-active"))},this.findNextOption=(i=1)=>{const{activeItem:t}=this;if(!t)return null;let e=t,s=t.nextElementSibling;for(;null!=s;){if(i>0&&i--,"ION-PICKER-COLUMN-OPTION"===s.tagName&&!s.disabled&&0===i)return s;e=s,s=s.nextElementSibling}return e},this.findPreviousOption=(i=1)=>{const{activeItem:t}=this;if(!t)return null;let e=t,s=t.previousElementSibling;for(;null!=s;){if(i>0&&i--,"ION-PICKER-COLUMN-OPTION"===s.tagName&&!s.disabled&&0===i)return s;e=s,s=s.previousElementSibling}return e},this.onKeyDown=i=>{const t=o("mobile");let e=null;switch(i.key){case"ArrowDown":e=t?this.findPreviousOption():this.findNextOption();break;case"ArrowUp":e=t?this.findNextOption():this.findPreviousOption();break;case"PageUp":e=t?this.findNextOption(5):this.findPreviousOption(5);break;case"PageDown":e=t?this.findPreviousOption(5):this.findNextOption(5);break;case"Home":e=this.el.querySelector("ion-picker-column-option:first-of-type");break;case"End":e=this.el.querySelector("ion-picker-column-option:last-of-type")}null!==e&&(this.setValue(e.value),i.preventDefault())},this.getOptionValueText=i=>{var t;return i?null!==(t=i.getAttribute("aria-label"))&&void 0!==t?t:i.innerText:""}}ariaLabelChanged(i){this.ariaLabel=i}valueChange(){this.isColumnVisible&&this.scrollActiveItemIntoView(!0)}componentWillLoad(){const i=this.parentEl=this.el.closest("ion-picker");new IntersectionObserver((i=>{if(i[i.length-1].isIntersecting){const{activeItem:i,el:t}=this;this.isColumnVisible=!0;const e=d(t).querySelector(`.${m}`);e&&this.setPickerItemActiveState(e,!1),this.scrollActiveItemIntoView(),i&&this.setPickerItemActiveState(i,!0),this.initializeScrollListener()}else this.isColumnVisible=!1,this.destroyScrollListener&&(this.destroyScrollListener(),this.destroyScrollListener=void 0)}),{threshold:.001,root:this.parentEl}).observe(this.el),null!==i&&i.addEventListener("ionInputModeChange",(i=>this.inputModeChange(i)))}componentDidRender(){const{el:i,activeItem:t,isColumnVisible:e,value:s}=this;if(e&&!t){const t=i.querySelector("ion-picker-column-option");null!==t&&t.value!==s&&this.setValue(t.value)}}async scrollActiveItemIntoView(i=!1){const t=this.activeItem;t&&this.centerPickerItemInView(t,i,!1)}async setValue(i){!0!==this.disabled&&this.value!==i&&(this.value=i,this.ionChange.emit({value:i}))}async setFocus(){this.assistiveFocusable&&this.assistiveFocusable.focus()}connectedCallback(){var i;this.ariaLabel=null!==(i=this.el.getAttribute("aria-label"))&&void 0!==i?i:"Select a value"}get activeItem(){const{value:i}=this;return Array.from(this.el.querySelectorAll("ion-picker-column-option")).find((t=>!(!this.disabled&&t.disabled)&&t.value===i))}render(){const{color:i,disabled:t,isActive:n,numericInput:o}=this,r=a(this);return e(s,{key:"7c9603b518a73f9883ff01464fe3f70c14b9059c",class:u(i,{[r]:!0,"picker-column-active":n,"picker-column-numeric-input":o,"picker-column-disabled":t})},e("slot",{key:"e98e79dd51550361131d59a8871fe2990dc40edc",name:"prefix"}),e("div",{key:"85894791c93da84401138285bf4fbb169897c3d6",class:"picker-opts",ref:i=>{this.scrollEl=i},role:"slider",tabindex:this.disabled?void 0:0,"aria-label":this.ariaLabel,"aria-valuemin":0,"aria-valuemax":0,"aria-valuenow":0,"aria-valuetext":this.getOptionValueText(this.activeItem),"aria-orientation":"vertical",onKeyDown:i=>this.onKeyDown(i)},e("div",{key:"d9546be214c2faf2340faf31d8468c2f39f31e4c",class:"picker-item-empty","aria-hidden":"true"}," "),e("div",{key:"47671f18a0a0659c0660b3b82d234e92b6dcc721",class:"picker-item-empty","aria-hidden":"true"}," "),e("div",{key:"f3fc8f9cfc67d0d0dfbf7c134524353297117170",class:"picker-item-empty","aria-hidden":"true"}," "),e("slot",{key:"4c30c1e5df5f1758978458dbd7e405a01d3118fe"}),e("div",{key:"4e71db05a18d645c6fa49d3a6e67a68cc374b868",class:"picker-item-empty","aria-hidden":"true"}," "),e("div",{key:"7fd2461759a92a6909ab514a14bdb41f7d2d16d5",class:"picker-item-empty","aria-hidden":"true"}," "),e("div",{key:"015fc0875e5e2df575810fd79635ed5a0f5a29dd",class:"picker-item-empty","aria-hidden":"true"}," ")),e("slot",{key:"d706a79b1b5b31dc1e358fe1d64b41a2104ea153",name:"suffix"}))}get el(){return n(this)}static get watchers(){return{"aria-label":["ariaLabelChanged"],value:["valueChange"]}}},m="option-active";f.style=":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{right:0;left:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";export{f as ion_picker_column}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{b as n,d as o,O as e,s as t}from"./p-Cdv0TJ6-.js";import{n as i,c as a,f as s,m as d,g as r}from"./p-DuV7rU9I.js";import{e as l,j as c,f as u}from"./p-4DxY6_gG.js";import{C as m}from"./p-CqYDGaCK.js";import{B as p}from"./p-BTEOs1at.js";const v='[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])',f=(n,o)=>{const e=n.querySelector(v);b(e,null!=o?o:n)},h=(n,o)=>{const e=Array.from(n.querySelectorAll(v));b(e.length>0?e[e.length-1]:null,null!=o?o:n)},b=(n,o)=>{let e=n;const t=null==n?void 0:n.shadowRoot;if(t&&(e=t.querySelector(v)||n),e){const n=e.closest("ion-radio-group");n?n.setFocus():i(e)}else o.focus()};let y=0,w=0;const g=new WeakMap,O=n=>({create:o=>B(n,o),dismiss:(o,e,t)=>P(document,o,e,n,t),getTop:async()=>M(document,n)}),x=O("ion-alert"),k=O("ion-action-sheet"),T=O("ion-loading"),j=O("ion-modal"),C=O("ion-picker-legacy"),A=O("ion-popover"),D=O("ion-toast"),I=n=>{"undefined"!=typeof document&&G(document);const o=y++;n.overlayIndex=o},S=n=>(n.hasAttribute("id")||(n.id="ion-overlay-"+ ++w),n.id),B=(n,o)=>"undefined"!=typeof window&&void 0!==window.customElements?window.customElements.whenDefined(n).then((()=>{const e=document.createElement(n);return e.classList.add("overlay-hidden"),Object.assign(e,Object.assign(Object.assign({},o),{hasController:!0})),L(document).appendChild(e),new Promise((n=>a(e,n)))})):Promise.resolve(),N=(n,o)=>{let e=n;const t=null==n?void 0:n.shadowRoot;t&&(e=t.querySelector(v)||n),e?i(e):o.focus()},G=n=>{0===y&&(y=1,n.addEventListener("focus",(o=>{((n,o)=>{const e=M(o,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover"),t=n.target;e&&t&&(e.classList.contains(Z)||(e.shadowRoot?(()=>{if(e.contains(t))e.lastFocus=t;else if("ION-TOAST"===t.tagName)N(e.lastFocus,e);else{const n=e.lastFocus;f(e),n===o.activeElement&&h(e),e.lastFocus=o.activeElement}})():(()=>{if(e===t)e.lastFocus=void 0;else if("ION-TOAST"===t.tagName)N(e.lastFocus,e);else{const n=r(e);if(!n.contains(t))return;const i=n.querySelector(".ion-overlay-wrapper");if(!i)return;if(i.contains(t)||t===n.querySelector("ion-backdrop"))e.lastFocus=t;else{const n=e.lastFocus;f(i,e),n===o.activeElement&&h(i,e),e.lastFocus=o.activeElement}}})()))})(o,n)}),!0),n.addEventListener("ionBackButton",(o=>{const t=M(n);(null==t?void 0:t.backdropDismiss)&&o.detail.register(e,(()=>{t.dismiss(void 0,U)}))})),t()||n.addEventListener("keydown",(o=>{if("Escape"===o.key){const o=M(n);(null==o?void 0:o.backdropDismiss)&&o.dismiss(void 0,U)}})))},P=(n,o,e,t,i)=>{const a=M(n,t,i);return a?a.dismiss(o,e):Promise.reject("overlay does not exist")},E=(n,o)=>((n,o)=>(void 0===o&&(o="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"),Array.from(n.querySelectorAll(o)).filter((n=>n.overlayIndex>0))))(n,o).filter((n=>!n.classList.contains("overlay-hidden"))),M=(n,o,e)=>{const t=E(n,o);return void 0===e?t[t.length-1]:t.find((n=>n.id===e))},V=(n=!1)=>{const o=L(document).querySelector("ion-router-outlet, #ion-view-container-root");o&&(n?(o.setAttribute("aria-hidden","true"),o.setAttribute("inert","")):(o.removeAttribute("aria-hidden"),o.removeAttribute("inert")))},$=async(o,e,t,i,a)=>{var s,d;if(o.presented)return;"ION-TOAST"!==o.el.tagName&&q(o.el),"ION-TOAST"!==o.el.tagName&&(V(!0),document.body.classList.add(p)),o.presented=!0,o.willPresent.emit(),null===(s=o.willPresentShorthand)||void 0===s||s.emit();const r=n(o),c=o.enterAnimation?o.enterAnimation:l.get(e,"ios"===r?t:i);await Y(o,c,o.el,a)&&(o.didPresent.emit(),null===(d=o.didPresentShorthand)||void 0===d||d.emit()),!o.keyboardClose||null!==document.activeElement&&o.el.contains(document.activeElement)||o.el.focus(),o.el.removeAttribute("aria-hidden"),o.el.removeAttribute("inert")},q=async n=>{let o=document.activeElement;if(!o)return;o.blur();const e=null==o?void 0:o.shadowRoot;e&&(o=e.querySelector(v)||o),await n.onDidDismiss(),null!==document.activeElement&&document.activeElement!==document.body||o.focus()},F=async(e,t,i,a,s,d,r)=>{var u,m;if(!e.presented)return!1;const v=(void 0!==o?E(o):[]).filter((n=>"ION-TOAST"!==n.tagName));1===v.length&&v[0].id===e.el.id&&(V(!1),document.body.classList.remove(p)),e.presented=!1;try{e.el.style.setProperty("pointer-events","none"),e.willDismiss.emit({data:t,role:i}),null===(u=e.willDismissShorthand)||void 0===u||u.emit({data:t,role:i});const o=n(e),c=e.leaveAnimation?e.leaveAnimation:l.get(a,"ios"===o?s:d);i!==W&&await Y(e,c,e.el,r),e.didDismiss.emit({data:t,role:i}),null===(m=e.didDismissShorthand)||void 0===m||m.emit({data:t,role:i}),(g.get(e)||[]).forEach((n=>n.destroy())),g.delete(e),e.el.classList.add("overlay-hidden"),e.el.style.removeProperty("pointer-events"),void 0!==e.el.lastFocus&&(e.el.lastFocus=void 0)}catch(n){c(`[${e.el.tagName.toLowerCase()}] - `,n)}return e.el.remove(),!0},L=n=>{const o=l.get("appRootSelector","ion-app");return n.querySelector(o)||n.body},Y=async(n,o,e,t)=>{e.classList.remove("overlay-hidden");const i=o(n.el,t);n.animated&&l.getBoolean("animated",!0)||i.duration(0),n.keyboardClose&&i.beforeAddWrite((()=>{const n=e.ownerDocument.activeElement;(null==n?void 0:n.matches("input,ion-input, ion-textarea"))&&n.blur()}));const a=g.get(n)||[];return g.set(n,[...a,i]),await i.play(),!0},_=(n,o)=>{let e;const t=new Promise((n=>e=n));return z(n,o,(n=>{e(n.detail)})),t},z=(n,o,e)=>{const t=i=>{d(n,o,t),e(i)};s(n,o,t)},J=n=>"cancel"===n||n===U,K=n=>n(),R=(n,o)=>{if("function"==typeof n)return l.get("_zoneGate",K)((()=>{try{return n(o)}catch(n){throw n}}))},U="backdrop",W="gesture",H=39,Q=n=>{let o,e=!1;const t=m(),i=(i=!1)=>{if(o&&!i)return{delegate:o,inline:e};const{el:a,hasController:s,delegate:d}=n;return e=null!==a.parentNode&&!s,o=e?d||t:d,{inline:e,delegate:o}};return{attachViewToDom:async o=>{const{delegate:e}=i(!0);if(e)return await e.attachViewToDom(n.el,o);const{hasController:t}=n;if(t&&void 0!==o)throw new Error("framework delegate is missing");return null},removeViewFromDom:()=>{const{delegate:o}=i();o&&void 0!==n.el&&o.removeViewFromDom(n.el.parentElement,n.el)}}},X=()=>{let n;const o=()=>{n&&(n(),n=void 0)};return{addClickListener:(e,t)=>{o();const i=void 0!==t?document.getElementById(t):null;i?n=((n,o)=>{const e=()=>{o.present()};return n.addEventListener("click",e),()=>{n.removeEventListener("click",e)}})(i,e):u(`[${e.tagName.toLowerCase()}] - 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.`,e)},removeClickListener:o}},Z="ion-disable-focus-trap";export{U as B,Z as F,W as G,H as O,x as a,k as b,A as c,Q as d,X as e,$ as f,F as g,_ as h,J as i,I as j,S as k,T as l,j as m,f as n,M as o,C as p,h as q,R as s,D as t}