@ionic/core 8.8.5-dev.11776871786.1e73ab78 → 8.8.5-dev.11777476461.1fd79771

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 (43) hide show
  1. package/components/ion-modal.js +1 -1
  2. package/components/ion-radio-group.js +1 -1
  3. package/components/ion-select-modal.js +1 -1
  4. package/components/ion-select-popover.js +1 -1
  5. package/components/ion-select.js +1 -1
  6. package/components/p-BlNv564p.js +4 -0
  7. package/components/p-D-cP12ZN.js +4 -0
  8. package/components/{p-BZfgPT2N.js → p-DUqnmRFi.js} +1 -1
  9. package/components/{p-Bk2zuNWT.js → p-DvOO1fxp.js} +1 -1
  10. package/dist/cjs/ion-modal.cjs.entry.js +10 -4
  11. package/dist/cjs/ion-radio_2.cjs.entry.js +13 -1
  12. package/dist/cjs/ion-select-modal.cjs.entry.js +18 -7
  13. package/dist/cjs/ion-select_3.cjs.entry.js +18 -7
  14. package/dist/collection/components/content/content.css +0 -6
  15. package/dist/collection/components/modal/modal.js +10 -4
  16. package/dist/collection/components/radio-group/radio-group.js +13 -1
  17. package/dist/collection/components/radio-group/test/fixtures.js +2 -2
  18. package/dist/collection/components/select-modal/select-modal.js +18 -7
  19. package/dist/collection/components/select-modal/test/fixtures.js +4 -0
  20. package/dist/collection/components/select-popover/select-popover.js +18 -7
  21. package/dist/collection/components/select-popover/test/fixtures.js +4 -0
  22. package/dist/docs.json +1 -6
  23. package/dist/esm/ion-modal.entry.js +10 -4
  24. package/dist/esm/ion-radio_2.entry.js +13 -1
  25. package/dist/esm/ion-select-modal.entry.js +18 -7
  26. package/dist/esm/ion-select_3.entry.js +18 -7
  27. package/dist/ionic/ionic.esm.js +1 -1
  28. package/dist/ionic/p-28a9e720.entry.js +4 -0
  29. package/dist/ionic/{p-4dd5e8e0.entry.js → p-8fda6a62.entry.js} +1 -1
  30. package/dist/ionic/{p-9eac4eb1.entry.js → p-aa812c4b.entry.js} +1 -1
  31. package/dist/ionic/{p-4eedd78a.entry.js → p-e0287f41.entry.js} +1 -1
  32. package/dist/types/components/modal/modal.d.ts +6 -0
  33. package/dist/types/components/radio-group/test/fixtures.d.ts +1 -1
  34. package/dist/types/components/select-modal/select-modal.d.ts +1 -0
  35. package/dist/types/components/select-modal/test/fixtures.d.ts +1 -0
  36. package/dist/types/components/select-popover/select-popover.d.ts +1 -0
  37. package/dist/types/components/select-popover/test/fixtures.d.ts +1 -0
  38. package/hydrate/index.js +59 -19
  39. package/hydrate/index.mjs +59 -19
  40. package/package.json +1 -1
  41. package/components/p-EK4xUz-q.js +0 -4
  42. package/components/p-MlJRD6E1.js +0 -4
  43. package/dist/ionic/p-e6c5f060.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import{r as t,c as i,f as o,w as a,e,h as r,d as s,g as n}from"./p-IGIE5vDm.js";import{f as d,i as h,d as l,r as p,a as c,p as m}from"./p-B8xlpH8p.js";import{C as f,a as u,d as b}from"./p-CmFz1Mjc.js";import{e as v,g as x,r as w,b as g,h as y}from"./p-CGmVTdWh.js";import{c as k}from"./p-B-hirT0v.js";import{g as A}from"./p-CIGNaXM1.js";import{G as Y,O,F as E,e as S,B as D,j as T,k as M,f as C,g as B,h as P}from"./p-DTPR1Wpn.js";import{g as j}from"./p-DiVJyqlX.js";import{e as I,w as N}from"./p-BW_TRJm8.js";import{b as R}from"./p-NFFyoJ4Q.js";import{KEYBOARD_DID_OPEN as $}from"./p-9eeaBrnk.js";import{c as L}from"./p-Bum7H1fw.js";import{g as F}from"./p-hHmYLOfE.js";import{createGesture as W}from"./p-Cl0B-RWe.js";import{w as z}from"./p-ZjP4CjeZ.js";import"./p-DB_iPQC-.js";import"./p-BTEOs1at.js";import"./p-D13Eaw-8.js";var H;!function(t){t.Dark="DARK",t.Light="LIGHT",t.Default="DEFAULT"}(H||(H={}));const V={getEngine(){const t=A();if(null==t?void 0:t.isPluginAvailable("StatusBar"))return t.Plugins.StatusBar},setStyle(t){const i=this.getEngine();i&&i.setStyle(t)},getStyle:async function(){const t=this.getEngine();if(!t)return H.Default;const{style:i}=await t.getInfo();return i}},G=(t,i)=>{if(1===i)return 0;const o=1/(1-i);return t*o+-i*o},Z=()=>{!z||z.innerWidth>=768||V.setStyle({style:H.Dark})},_=(t=H.Default)=>{!z||z.innerWidth>=768||V.setStyle({style:t})},K=async(t,i)=>{"function"==typeof t.canDismiss&&await t.canDismiss(void 0,Y)&&(i.isRunning()?i.onFinish((()=>{t.dismiss(void 0,"handler")}),{oneTimeCallback:!0}):t.dismiss(void 0,"handler"))},J=t=>.00255275*2.71828**(-14.9619*t)-1.00255*2.71828**(-.0380968*t)+1,U=.915,Q=(t,i)=>v(400,t/Math.abs(1.1*i),500),X=(t,i)=>{const o=window.innerHeight,a=t.getBoundingClientRect().top,e=Math.round(1e3*(1-i/(o-a)))/1e3;return Math.max(0,Math.min(1,e))},q=t=>{const{currentBreakpoint:i,backdropBreakpoint:o,expandToScroll:a}=t,e=void 0===o||o<i,r=e?`calc(var(--backdrop-opacity) * ${i})`:"0",s=L("backdropAnimation").fromTo("opacity",0,r);return e&&s.beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),{wrapperAnimation:L("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:"translateY(100%)"},{offset:1,opacity:1,transform:`translateY(${100-100*i}%)`}]),backdropAnimation:s,contentAnimation:a?void 0:L("contentAnimation").keyframes([{offset:0,opacity:1,maxHeight:100*(1-i)+"%"},{offset:1,opacity:1,maxHeight:100*i+"%"}])}},tt=t=>{const{currentBreakpoint:i,backdropBreakpoint:o}=t,a=`calc(var(--backdrop-opacity) * ${G(i,o)})`,e=[{offset:0,opacity:a},{offset:1,opacity:0}],r=[{offset:0,opacity:a},{offset:o,opacity:0},{offset:1,opacity:0}],s=L("backdropAnimation").keyframes(0!==o?r:e);return{wrapperAnimation:L("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:`translateY(${100-100*i}%)`},{offset:1,opacity:1,transform:"translateY(100%)"}]),backdropAnimation:s}},it=(t,i)=>{const{presentingEl:o,currentBreakpoint:a,expandToScroll:e}=i,r=x(t),{wrapperAnimation:s,backdropAnimation:n,contentAnimation:d}=void 0!==a?q(i):{backdropAnimation:L().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:L().fromTo("transform","translateY(100vh)","translateY(0vh)"),contentAnimation:void 0};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1}),!e&&(null==d||d.addElement(t.querySelector(".ion-page")));const h=L("entering-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([s]);if(d&&h.addAnimation(d),o){const t=window.innerWidth<768,i="ION-MODAL"===o.tagName&&void 0!==o.presentingElement,a=x(o),e=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"}),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",a=`translateY(${i?"-10px":t}) scale(0.915)`;e.afterStyles({transform:a}).beforeAddWrite((()=>r.style.setProperty("background-color","black"))).addElement(o).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"},{offset:1,filter:"contrast(0.85)",transform:a,borderRadius:"10px 10px 0 0"}]),h.addAnimation(e)}else if(h.addAnimation(n),i){const t=`translateY(-10px) scale(${i?U:1})`;e.afterStyles({transform:t}).addElement(a.querySelector(".modal-wrapper")).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0) scale(1)"},{offset:1,filter:"contrast(0.85)",transform:t}]);const o=L().afterStyles({transform:t}).addElement(a.querySelector(".modal-shadow")).keyframes([{offset:0,opacity:"1",transform:"translateY(0) scale(1)"},{offset:1,opacity:"0",transform:t}]);h.addAnimation([e,o])}else s.fromTo("opacity","0","1")}else h.addAnimation(n);return h},ot=(t,i,o=500)=>{const{presentingEl:a,currentBreakpoint:e}=i,r=x(t),{wrapperAnimation:s,backdropAnimation:n}=void 0!==e?tt(i):{backdropAnimation:L().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:L().fromTo("transform","translateY(0vh)","translateY(100vh)")};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1});const d=L("leaving-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o).addAnimation(s);if(a){const t=window.innerWidth<768,i="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,o=x(a),e=L().beforeClearStyles(["transform"]).afterClearStyles(["transform"]).onFinish((t=>{1===t&&(a.style.setProperty("overflow",""),Array.from(r.querySelectorAll("ion-modal:not(.overlay-hidden)")).filter((t=>void 0!==t.presentingElement)).length<=1&&r.style.setProperty("background-color",""))})),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",o=`translateY(${i?"-10px":t}) scale(0.915)`;e.addElement(a).keyframes([{offset:0,filter:"contrast(0.85)",transform:o,borderRadius:"10px 10px 0 0"},{offset:1,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"}]),d.addAnimation(e)}else if(d.addAnimation(n),i){const t=`translateY(-10px) scale(${i?U:1})`;e.addElement(o.querySelector(".modal-wrapper")).afterStyles({transform:"translate3d(0, 0, 0)"}).keyframes([{offset:0,filter:"contrast(0.85)",transform:t},{offset:1,filter:"contrast(1)",transform:"translateY(0) scale(1)"}]);const a=L().addElement(o.querySelector(".modal-shadow")).afterStyles({transform:"translateY(0) scale(1)"}).keyframes([{offset:0,opacity:"0",transform:t},{offset:1,opacity:"1",transform:"translateY(0) scale(1)"}]);d.addAnimation([e,a])}else s.fromTo("opacity","1","0")}else d.addAnimation(n);return d},at=(t,i)=>{const{currentBreakpoint:o,expandToScroll:a}=i,e=x(t),{wrapperAnimation:r,backdropAnimation:s,contentAnimation:n}=void 0!==o?q(i):{backdropAnimation:L().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:L().keyframes([{offset:0,opacity:.01,transform:"translateY(40px)"},{offset:1,opacity:1,transform:"translateY(0px)"}]),contentAnimation:void 0};s.addElement(e.querySelector("ion-backdrop")),r.addElement(e.querySelector(".modal-wrapper")),!a&&(null==n||n.addElement(t.querySelector(".ion-page")));const d=L().addElement(t).easing("cubic-bezier(0.36,0.66,0.04,1)").duration(280).addAnimation([s,r]);return n&&d.addAnimation(n),d},et=(t,i)=>{const{currentBreakpoint:o}=i,a=x(t),{wrapperAnimation:e,backdropAnimation:r}=void 0!==o?tt(i):{backdropAnimation:L().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:L().keyframes([{offset:0,opacity:.99,transform:"translateY(0px)"},{offset:1,opacity:0,transform:"translateY(40px)"}])};return r.addElement(a.querySelector("ion-backdrop")),e.addElement(a.querySelector(".modal-wrapper")),L().easing("cubic-bezier(0.47,0,0.745,0.715)").duration(200).addAnimation([r,e])},rt=new Set(["","100%","100vw","100vh","100dvw","100dvh","100svw","100svh"]);let st=null,nt=!1;const dt=t=>{const i=getComputedStyle(t),o=i.getPropertyValue("--width").trim(),a=i.getPropertyValue("--height").trim();return!rt.has(o)&&!rt.has(a)},ht=(t,i)=>{t.style.setProperty("--ion-safe-area-top",i.top),t.style.setProperty("--ion-safe-area-bottom",i.bottom),t.style.setProperty("--ion-safe-area-left",i.left),t.style.setProperty("--ion-safe-area-right",i.right)},lt=class{constructor(o){t(this,o),this.didPresent=i(this,"ionModalDidPresent",7),this.willPresent=i(this,"ionModalWillPresent",7),this.willDismiss=i(this,"ionModalWillDismiss",7),this.didDismiss=i(this,"ionModalDidDismiss",7),this.ionBreakpointDidChange=i(this,"ionBreakpointDidChange",7),this.didPresentShorthand=i(this,"didPresent",7),this.willPresentShorthand=i(this,"willPresent",7),this.willDismissShorthand=i(this,"willDismiss",7),this.didDismissShorthand=i(this,"didDismiss",7),this.ionMount=i(this,"ionMount",7),this.ionDragStart=i(this,"ionDragStart",7),this.ionDragMove=i(this,"ionDragMove",7),this.ionDragEnd=i(this,"ionDragEnd",7),this.lockController=k(),this.triggerController=S(),this.coreDelegate=f(),this.isSheetModal=!1,this.inheritedAttributes={},this.inline=!1,this.gestureAnimationDismissing=!1,this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.expandToScroll=!0,this.backdropBreakpoint=0,this.handleBehavior="none",this.backdropDismiss=!0,this.showBackdrop=!0,this.animated=!0,this.isOpen=!1,this.keepContentsMounted=!1,this.focusTrap=!0,this.canDismiss=!0,this.onHandleClick=()=>{const{sheetTransition:t,handleBehavior:i}=this;"cycle"===i&&void 0===t&&this.moveToNextBreakpoint()},this.onBackdropTap=()=>{const{sheetTransition:t}=this;void 0===t&&this.dismiss(void 0,D)},this.onLifecycle=t=>{const i=this.usersElement,o=pt[t.type];if(i&&o){const a=new CustomEvent(o,{bubbles:!1,cancelable:!1,detail:t.detail});i.dispatchEvent(a)}},this.onModalFocus=t=>{const{dragHandleEl:i,el:o}=this;t.target===o&&i&&-1!==i.tabIndex&&i.focus()},this.onSlotChange=({target:t})=>{t.assignedElements().forEach((t=>{t.querySelectorAll("ion-modal").forEach((t=>{null===t.getAttribute("data-parent-ion-modal")&&t.setAttribute("data-parent-ion-modal",this.el.id)}))}))}}onIsOpenChange(t,i){!0===t&&!1===i?this.present():!1===t&&!0===i&&this.dismiss()}triggerChanged(){const{trigger:t,el:i,triggerController:o}=this;t&&o.addClickListener(i,t)}onWindowResize(){this.presented&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout((()=>{const t=this.getSafeAreaContext();if(!t.isCardModal||this.enterAnimation||this.leaveAnimation||this.handleViewTransition(),t.isSheetModal&&this.updateSheetOffsetTop(),!t.isSheetModal&&!t.isCardModal){this.updateSafeAreaOverrides();const{contentEl:t,hasFooter:i}=this.findContentAndFooter();this.clearContentSafeAreaPadding(t),this.applyFullscreenSafeAreaTo(t,i)}}),50))}breakpointsChanged(t){void 0!==t&&(this.sortedBreakpoints=t.sort(((t,i)=>t-i)))}connectedCallback(){const{el:t}=this;T(t),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener(),this.cleanupViewTransitionListener(),this.cleanupParentRemovalObserver(),this.cleanupSafeAreaOverrides()}componentWillLoad(){var t;const{breakpoints:i,initialBreakpoint:a,el:e,htmlAttributes:r}=this,s=this.isSheetModal=void 0!==i&&void 0!==a,n=["aria-label","role"];this.inheritedAttributes=g(e,n),e.parentNode&&(this.cachedOriginalParent=e.parentNode),void 0!==r&&n.forEach((t=>{r[t]&&(this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:r[t]}),delete r[t])})),s&&(this.currentBreakpoint=this.initialBreakpoint),void 0===i||void 0===a||i.includes(a)||o("[ion-modal] - Your breakpoints array must include the initialBreakpoint value."),(null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)||M(this.el)}componentDidLoad(){!0===this.isOpen&&w((()=>this.present())),this.breakpointsChanged(this.breakpoints),this.triggerChanged()}getDelegate(t=!1){if(this.workingDelegate&&!t)return{delegate:this.workingDelegate,inline:this.inline};const i=this.inline=null!==this.el.parentNode&&!this.hasController;return{inline:i,delegate:this.workingDelegate=i?this.delegate||this.coreDelegate:this.delegate}}async checkCanDismiss(t,i){const{canDismiss:o}=this;return"function"==typeof o?o(t,i):o}async present(){const t=await this.lockController.lock();if(this.presented)return void t();const{presentingElement:i,el:o}=this;this.currentBreakpoint=this.initialBreakpoint;const{inline:e,delegate:r}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await u(r,o,this.component,["ion-page"],this.componentProps,e),y(o)?await I(this.usersElement):this.keepContentsMounted||await N(),a((()=>this.el.classList.add("show-modal"))),this.isSheetModal=void 0!==this.breakpoints&&void 0!==this.initialBreakpoint,this.setInitialSafeAreaOverrides();const s=void 0!==i;s&&"ios"===R(this)&&(this.statusBarStyle=await V.getStyle(),Z()),await C(this,"modalEnter",it,at,{presentingEl:i,currentBreakpoint:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll}),this.updateSafeAreaOverrides(),this.applyFullscreenSafeArea(),"undefined"!=typeof window&&(this.keyboardOpenCallback=()=>{this.gesture&&(this.gesture.enable(!1),w((()=>{this.gesture&&this.gesture.enable(!0)})))},window.addEventListener($,this.keyboardOpenCallback)),this.isSheetModal?this.initSheetGesture():s&&this.initSwipeToClose(),this.initViewTransitionListener(),this.initParentRemovalObserver(),t()}initSwipeToClose(){var t;if("ios"!==R(this))return;const{el:i}=this,o=this.leaveAnimation||e.get("modalLeave",ot),a=this.animation=o(i,{presentingEl:this.presentingElement,expandToScroll:this.expandToScroll});if(!c(i))return void m(i);const r=null!==(t=this.statusBarStyle)&&void 0!==t?t:H.Default;this.gesture=((t,i,o,a,e,r,s)=>{const n=.5,c=t.offsetHeight;let m=!1,f=!1,u=null,b=null,w=!0,g=0;const y=W({el:t,gestureName:"modalSwipeToClose",gesturePriority:O,direction:"y",threshold:10,canStart:t=>{const i=t.event.target;if(null===i||!i.closest)return!0;if(u=d(i),u){if(h(u)){const t=x(u);b=t.querySelector(".inner-scroll")}else b=u;return!u.querySelector("ion-refresher")&&0===b.scrollTop}return null===i.closest("ion-footer")},onStart:o=>{const{deltaY:a}=o;w=!u||!h(u)||u.scrollY,f=void 0!==t.canDismiss&&!0!==t.canDismiss,a>0&&u&&l(u),i.progressStart(!0,m?1:0),e()},onMove:a=>{const{deltaY:e}=a;e>0&&u&&l(u);const s=a.deltaY/c,d=s>=0&&f,h=d?.2:.9999,p=d?J(s/h):s,m=v(1e-4,p,h);i.progressStep(m),m>=n&&g<n?_(o):m<n&&g>=n&&Z(),g=m;const b={currentY:a.currentY,deltaY:a.deltaY,velocityY:a.velocityY,progress:X(t,a.deltaY)};r(b)},onEnd:o=>{const e=o.velocityY,r=o.deltaY/c,d=r>=0&&f,h=d?.2:.9999,l=d?J(r/h):r,b=v(1e-4,l,h),x=!d&&(o.deltaY+1e3*e)/c>=n;let g=x?-.001:.001;x?(i.easing("cubic-bezier(0.32, 0.72, 0, 1)"),g+=F([0,0],[.32,.72],[0,1],[1,1],b)[0]):(i.easing("cubic-bezier(1, 0, 0.68, 0.28)"),g+=F([0,0],[1,0],[.68,.28],[1,1],b)[0]);const k=Q(x?r*c:(1-b)*c,e);m=x,y.enable(!1),u&&p(u,w),i.onFinish((()=>{x||y.enable(!0)})).progressEnd(x?1:0,g,k),d&&b>h/4?K(t,i):x&&a();const A={currentY:o.currentY,deltaY:o.deltaY,velocityY:o.velocityY,progress:X(t,o.deltaY)};s(A)}});return y})(i,a,r,(()=>this.cardOnDismiss()),(()=>this.onDragStart()),(t=>this.onDragMove(t)),(t=>this.onDragEnd(t))),this.gesture.enable(!0)}initSheetGesture(){const{wrapperEl:t,initialBreakpoint:i,backdropBreakpoint:o}=this;if(!t||void 0===i)return;const a=this.enterAnimation||e.get("modalEnter",it),r=this.animation=a(this.el,{presentingEl:this.presentingElement,currentBreakpoint:i,backdropBreakpoint:o,expandToScroll:this.expandToScroll});r.progressStart(!0,1);const{gesture:s,moveSheetToBreakpoint:n}=((t,i,o,a,e,r,s=[],n,l,p,c,m,f,u)=>{const b={WRAPPER_KEYFRAMES:[{offset:0,transform:"translateY(0%)"},{offset:1,transform:"translateY(100%)"}],BACKDROP_KEYFRAMES:0!==e?[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1-e,opacity:0},{offset:1,opacity:0}]:[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1,opacity:.01}],CONTENT_KEYFRAMES:[{offset:0,maxHeight:"100%"},{offset:1,maxHeight:"0%"}]},g=t.querySelector("ion-content"),y=o.clientHeight;let k=a,A=0,Y=!1,O=null,S=null,D=null,T=null;const M=s[s.length-1],C=s[0],B=r.childAnimations.find((t=>"wrapperAnimation"===t.id)),P=r.childAnimations.find((t=>"backdropAnimation"===t.id)),j=r.childAnimations.find((t=>"contentAnimation"===t.id)),I=()=>{!1!==t.focusTrap&&!1!==t.showBackdrop&&(t.style.setProperty("pointer-events","auto"),i.style.setProperty("pointer-events","auto"),t.classList.remove(E))},N=()=>{t.style.setProperty("pointer-events","none"),i.style.setProperty("pointer-events","none"),t.classList.add(E)},R=i=>{if(!S&&(S=Array.from(t.querySelectorAll("ion-footer")),!S.length))return;const o=t.querySelector(".ion-page");if(T=i,"stationary"===i)S.forEach((t=>{t.classList.remove("modal-footer-moving"),t.style.removeProperty("position"),t.style.removeProperty("width"),t.style.removeProperty("height"),t.style.removeProperty("top"),t.style.removeProperty("left"),null==o||o.style.removeProperty("padding-bottom"),null==o||o.appendChild(t)}));else{let i=0;S.forEach(((o,a)=>{const e=o.getBoundingClientRect(),r=document.body.getBoundingClientRect();i+=o.clientHeight;const s=e.top-r.top,n=e.left-r.left;if(o.style.setProperty("--pinned-width",`${o.clientWidth}px`),o.style.setProperty("--pinned-height",`${o.clientHeight}px`),o.style.setProperty("--pinned-top",`${s}px`),o.style.setProperty("--pinned-left",`${n}px`),0===a){D=s;const i=t.querySelector("ion-header");i&&(D-=i.clientHeight)}})),S.forEach((t=>{null==o||o.style.setProperty("padding-bottom",`${i}px`),t.classList.add("modal-footer-moving"),t.style.setProperty("position","absolute"),t.style.setProperty("width","var(--pinned-width)"),t.style.setProperty("height","var(--pinned-height)"),t.style.setProperty("top","var(--pinned-top)"),t.style.setProperty("left","var(--pinned-left)"),document.body.appendChild(t)}))}};B&&P&&(B.keyframes([...b.WRAPPER_KEYFRAMES]),P.keyframes([...b.BACKDROP_KEYFRAMES]),null==j||j.keyframes([...b.CONTENT_KEYFRAMES]),r.progressStart(!0,1-k),k>e&&!1!==t.focusTrap&&!1!==t.showBackdrop?I():N()),g&&k!==M&&n&&(g.scrollY=!1);const $=i=>{const{breakpoint:o,canDismiss:a,breakpointOffset:d,animated:h}=i,l=a&&0===o,m=l?k:o,f=0!==m;return k=0,B&&P&&(B.keyframes([{offset:0,transform:`translateY(${100*d}%)`},{offset:1,transform:`translateY(${100*(1-m)}%)`}]),P.keyframes([{offset:0,opacity:`calc(var(--backdrop-opacity) * ${G(1-d,e)})`},{offset:1,opacity:`calc(var(--backdrop-opacity) * ${G(m,e)})`}]),j&&j.keyframes([{offset:0,maxHeight:100*(1-d)+"%"},{offset:1,maxHeight:100*m+"%"}]),r.progressStep(0)),H.enable(!1),l?K(t,r):f||p(),!g||m!==s[s.length-1]&&n||(g.scrollY=!0),n||0!==m||R("stationary"),new Promise((i=>{r.onFinish((()=>{f?(n||R("stationary"),B&&P?w((()=>{B.keyframes([...b.WRAPPER_KEYFRAMES]),P.keyframes([...b.BACKDROP_KEYFRAMES]),null==j||j.keyframes([...b.CONTENT_KEYFRAMES]),r.progressStart(!0,1-m),k=m,c(k),k>e&&!1!==t.focusTrap&&!1!==t.showBackdrop?I():N(),H.enable(!0),i()})):(H.enable(!0),i())):i()}),{oneTimeCallback:!0}).progressEnd(1,0,h?500:0)}))},L=t=>{const i=o.getBoundingClientRect().top+t,a=F(i);return s.reduce(((t,i)=>Math.abs(i-a)<Math.abs(t-a)?i:t))},F=t=>{const i=s[s.length-1],o=z(s[0]),a=z(i),e=Math.round((o-t)/(o-a)*1e3)/1e3;return Math.max(0,Math.min(1,e))},z=i=>{const o=t.getBoundingClientRect();return window.innerHeight-o.height*i},H=W({el:o,gestureName:"modalSheet",gesturePriority:40,direction:"y",threshold:10,canStart:t=>{const i=d(t.event.target);if(k=l(),!n&&i)return 0===(h(i)?x(i).querySelector(".inner-scroll"):i).scrollTop;if(1===k&&i){const t=h(i)?x(i).querySelector(".inner-scroll"):i;return!i.querySelector("ion-refresher")&&0===t.scrollTop}return!0},onStart:i=>{if(Y=void 0!==t.canDismiss&&!0!==t.canDismiss&&0===C,!n){const t=d(i.event.target);O=t&&h(t)?x(t).querySelector(".inner-scroll"):t}n||R("moving"),i.deltaY>0&&g&&(g.scrollY=!1),w((()=>{t.focus()})),r.progressStart(!0,1-k),m()},onMove:t=>{if(n||null===D||null===T||(t.currentY>=D&&"moving"===T?R("stationary"):t.currentY<D&&"stationary"===T&&R("moving")),!n&&t.deltaY<=0&&O)return;t.deltaY>0&&g&&(g.scrollY=!1);const i=s.length>1?1-s[1]:void 0,o=1-k+t.deltaY/y,a=void 0!==i&&o>=i&&Y,e=a?.95:.9999,d=a&&void 0!==i?i+J((o-i)/(e-i)):o;A=v(1e-4,d,e),r.progressStep(A);const h=L(t.deltaY),l={currentY:t.currentY,deltaY:t.deltaY,velocityY:t.velocityY,progress:F(t.currentY),snapBreakpoint:h};f(l)},onEnd:t=>{const i=L(t.deltaY),o={currentY:t.currentY,deltaY:t.deltaY,velocityY:t.velocityY,progress:F(t.currentY),snapBreakpoint:i};if(!n&&t.deltaY<=0&&O&&O.scrollTop>0)return R("stationary"),void u(o);$({breakpoint:i,breakpointOffset:A,canDismiss:Y,animated:!0}),u(o)}});return{gesture:H,moveSheetToBreakpoint:$}})(this.el,this.backdropEl,t,i,o,r,this.sortedBreakpoints,this.expandToScroll,(()=>{var t;return null!==(t=this.currentBreakpoint)&&void 0!==t?t:0}),(()=>this.sheetOnDismiss()),(t=>{this.currentBreakpoint!==t&&(this.currentBreakpoint=t,this.ionBreakpointDidChange.emit({breakpoint:t}))}),(()=>this.onDragStart()),(t=>this.onDragMove(t)),(t=>this.onDragEnd(t)));this.gesture=s,this.moveSheetToBreakpoint=n,this.gesture.enable(!0),(!1===this.showBackdrop||!1===this.focusTrap||o>0)&&this.setupChildRoutePassthrough()}setupChildRoutePassthrough(){var t;this.cachedPageParent=this.getOriginalPageParent();const i=this.cachedPageParent;if(!i||"ION-APP"===i.tagName)return;const o=Array.from(i.children).some((t=>{var i;return!(t===this.el||t instanceof HTMLElement&&"none"===window.getComputedStyle(t).display||"TEMPLATE"===t.tagName||"SLOT"===t.tagName||t.nodeType===Node.TEXT_NODE&&!(null===(i=t.textContent)||void 0===i?void 0:i.trim()))}));if(o)return;i.classList.add("ion-page-overlay-passthrough");const a=i.parentElement;"ION-ROUTER-OUTLET"===(null==a?void 0:a.tagName)&&"ION-APP"!==(null===(t=a.parentElement)||void 0===t?void 0:t.tagName)&&(a.style.setProperty("pointer-events","none"),a.setAttribute("data-overlay-passthrough","true"))}getOriginalPageParent(){if(!this.cachedOriginalParent)return null;let t=this.cachedOriginalParent;for(;t&&!t.classList.contains("ion-page");)t=t.parentElement;return t}cleanupChildRoutePassthrough(){const t=this.cachedPageParent;if(!t)return;t.classList.remove("ion-page-overlay-passthrough");const i=t.parentElement;(null==i?void 0:i.hasAttribute("data-overlay-passthrough"))&&(i.style.removeProperty("pointer-events"),i.removeAttribute("data-overlay-passthrough")),this.cachedPageParent=void 0}sheetOnDismiss(){this.gestureAnimationDismissing=!0,this.animation.onFinish((async()=>{this.currentBreakpoint=0,this.ionBreakpointDidChange.emit({breakpoint:this.currentBreakpoint}),await this.dismiss(void 0,Y),this.gestureAnimationDismissing=!1}))}cardOnDismiss(){this.gestureAnimationDismissing=!0,_(this.statusBarStyle),this.animation.onFinish((async()=>{await this.dismiss(void 0,Y),this.gestureAnimationDismissing=!1}))}async dismiss(t,i){var o;if(this.gestureAnimationDismissing&&i!==Y)return!1;clearTimeout(this.resizeTimeout),this.resizeTimeout=void 0;const e=await this.lockController.lock();if(await this.dismissNestedModals(),"handler"!==i&&!await this.checkCanDismiss(t,i))return e(),!1;const{presentingElement:r}=this;void 0!==r&&"ios"===R(this)&&_(this.statusBarStyle),"undefined"!=typeof window&&this.keyboardOpenCallback&&(window.removeEventListener($,this.keyboardOpenCallback),this.keyboardOpenCallback=void 0);const s=await B(this,t,i,"modalLeave",ot,et,{presentingEl:r,currentBreakpoint:null!==(o=this.currentBreakpoint)&&void 0!==o?o:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll});if(s){const{delegate:t}=this.getDelegate();await b(t,this.usersElement),a((()=>this.el.classList.remove("show-modal"))),this.animation&&this.animation.destroy(),this.gesture&&this.gesture.destroy(),this.cleanupViewTransitionListener(),this.cleanupParentRemovalObserver(),this.cleanupSafeAreaOverrides(),this.cleanupChildRoutePassthrough()}return this.currentBreakpoint=void 0,this.animation=void 0,e(),s}onDidDismiss(){return P(this.el,"ionModalDidDismiss")}onWillDismiss(){return P(this.el,"ionModalWillDismiss")}async setCurrentBreakpoint(t){if(!this.isSheetModal)return void o("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.");if(!this.breakpoints.includes(t))return void o(`[ion-modal] - Attempted to set invalid breakpoint value ${t}. Please double check that the breakpoint value is part of your defined breakpoints.`);const{currentBreakpoint:i,moveSheetToBreakpoint:a,canDismiss:e,breakpoints:r,animated:s}=this;i!==t&&a&&(this.sheetTransition=a({breakpoint:t,breakpointOffset:1-i,canDismiss:void 0!==e&&!0!==e&&0===r[0],animated:s}),await this.sheetTransition,this.sheetTransition=void 0)}async getCurrentBreakpoint(){return this.currentBreakpoint}async moveToNextBreakpoint(){const{breakpoints:t,currentBreakpoint:i}=this;if(!t||null==i)return!1;const o=t.filter((t=>0!==t)),a=o.indexOf(i),e=o[(a+1)%o.length];return await this.setCurrentBreakpoint(e),!0}initViewTransitionListener(){"ios"!==R(this)||!this.presentingElement||this.enterAnimation||this.leaveAnimation||(this.currentViewIsPortrait=window.innerWidth<768)}handleViewTransition(){if(!this.presented)return;const t=window.innerWidth<768;if(this.currentViewIsPortrait===t)return;this.viewTransitionAnimation&&(this.viewTransitionAnimation.destroy(),this.viewTransitionAnimation=void 0);const{presentingElement:i}=this;if(!i)return;let o;o=this.currentViewIsPortrait&&!t?((t,i,o=300)=>{const{presentingEl:a}=i;if(!a)return L("portrait-to-landscape-transition");const e="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,r=x(a),s=document.body,n=L("portrait-to-landscape-transition").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o),d=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"});if(e){const t="translateY(-10px) scale(0.915)",i="translateY(0px) scale(1)";d.addElement(a).afterStyles({transform:i}).fromTo("transform",t,i).fromTo("filter","contrast(0.85)","contrast(1)");const o=L().addElement(r.querySelector(".modal-shadow")).afterStyles({transform:i,opacity:"0"}).fromTo("transform",t,i);n.addAnimation([d,o])}else{const i=x(t),o=L().addElement(i.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity","1","1"),e=L().addElement(i.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)","var(--backdrop-opacity)"),r=`translateY(${CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px"}) scale(0.915)`;d.addElement(a).afterStyles({transform:"translateY(0px) scale(1)","border-radius":"0px"}).beforeAddWrite((()=>s.style.setProperty("background-color",""))).fromTo("transform",r,"translateY(0px) scale(1)").fromTo("filter","contrast(0.85)","contrast(1)").fromTo("border-radius","10px 10px 0 0","0px"),n.addAnimation([d,o,e])}return n})(this.el,{presentingEl:i}):((t,i,o=300)=>{const{presentingEl:a}=i;if(!a)return L("landscape-to-portrait-transition");const e="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,r=x(a),s=document.body,n=L("landscape-to-portrait-transition").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o),d=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"});if(e){const t="translateY(-10px) scale(0.915)",i="translateY(0) scale(1)";d.addElement(a).afterStyles({transform:i}).fromTo("transform",t,i);const o=L().addElement(r.querySelector(".modal-shadow")).afterStyles({transform:i,opacity:"0"}).fromTo("transform",t,i);n.addAnimation([d,o])}else{const i=x(t),o=L().addElement(i.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity","1","1"),e=L().addElement(i.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)","var(--backdrop-opacity)"),r=`translateY(${CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px"}) scale(0.915)`;d.addElement(a).afterStyles({transform:r}).beforeAddWrite((()=>s.style.setProperty("background-color","black"))).keyframes([{offset:0,transform:"translateY(0px) scale(1)",filter:"contrast(1)",borderRadius:"0px"},{offset:.2,transform:"translateY(0px) scale(1)",filter:"contrast(1)",borderRadius:"10px 10px 0 0"},{offset:1,transform:r,filter:"contrast(0.85)",borderRadius:"10px 10px 0 0"}]),n.addAnimation([d,o,e])}return n})(this.el,{presentingEl:i}),this.currentViewIsPortrait=t,this.viewTransitionAnimation=o,o.play().then((()=>{this.viewTransitionAnimation=void 0,w((()=>this.updateSafeAreaOverrides())),this.reinitSwipeToClose()}))}cleanupViewTransitionListener(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=void 0),this.viewTransitionAnimation&&(this.viewTransitionAnimation.destroy(),this.viewTransitionAnimation=void 0)}reinitSwipeToClose(){"ios"===R(this)&&this.presentingElement&&(this.gesture&&(this.gesture.destroy(),this.gesture=void 0),this.animation&&(this.animation.progressEnd(0,0,0),this.animation.destroy(),this.animation=void 0),w((()=>{this.ensureCorrectModalPosition(),this.initSwipeToClose()})))}ensureCorrectModalPosition(){const{el:t,presentingElement:i}=this,o=x(t).querySelector(".modal-wrapper");if(o&&(o.style.transform="translateY(0vh)",o.style.opacity="1"),"ION-MODAL"===(null==i?void 0:i.tagName))if(window.innerWidth<768){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px";i.style.transform=`translateY(${t}) scale(0.915)`}else i.style.transform="translateY(0px) scale(1)"}async dismissNestedModals(){const t=document.querySelectorAll(`ion-modal[data-parent-ion-modal="${this.el.id}"]`);null==t||t.forEach((async t=>{await t.dismiss(void 0,"parent-dismissed")}))}initParentRemovalObserver(){"undefined"!=typeof MutationObserver&&"undefined"!=typeof window&&this.cachedOriginalParent&&this.cachedOriginalParent.nodeType!==Node.DOCUMENT_NODE&&this.cachedOriginalParent.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(this.hasController||this.cachedOriginalParent===document.body||"ION-APP"===this.cachedOriginalParent.tagName||(this.parentRemovalObserver=new MutationObserver((t=>{t.forEach((t=>{"childList"===t.type&&t.removedNodes.length>0&&(Array.from(t.removedNodes).some((t=>{var i,o;const a=t===this.cachedOriginalParent,e=!!this.cachedOriginalParent&&(null===(o=(i=t).contains)||void 0===o?void 0:o.call(i,this.cachedOriginalParent));return a||e}))||this.cachedOriginalParent&&!this.cachedOriginalParent.isConnected)&&(this.dismiss(void 0,"parent-removed"),this.cachedOriginalParent=void 0)}))})),this.parentRemovalObserver.observe(document.body,{childList:!0,subtree:!0})))}cleanupParentRemovalObserver(){var t;null===(t=this.parentRemovalObserver)||void 0===t||t.disconnect(),this.parentRemovalObserver=void 0}onDragStart(){this.ionDragStart.emit()}onDragMove(t){this.ionDragMove.emit(t)}onDragEnd(t){this.ionDragEnd.emit(t)}getSafeAreaContext(){return{isSheetModal:this.isSheetModal,isCardModal:void 0!==this.presentingElement&&"ios"===R(this),presentingElement:this.presentingElement,breakpoints:this.breakpoints,currentBreakpoint:this.currentBreakpoint}}setInitialSafeAreaOverrides(){const t=Object.assign(Object.assign({},this.getSafeAreaContext()),{hasCustomDimensions:dt(this.el)}),i=(t=>{const{isSheetModal:i,isCardModal:o}=t;return i?{top:"0px",bottom:"inherit",left:"0px",right:"0px"}:o?{top:"inherit",bottom:"inherit",left:"0px",right:"0px"}:z&&z.matchMedia("(min-width: 768px) and (min-height: 600px)").matches||t.hasCustomDimensions?{top:"0px",bottom:"0px",left:"0px",right:"0px"}:{top:"inherit",bottom:"inherit",left:"inherit",right:"inherit"}})(t);ht(this.el,i),t.isSheetModal&&this.updateSheetOffsetTop()}updateSheetOffsetTop(){const t=(()=>{if(null!==st)return st;const t=null==z?void 0:z.document;if(!(null==t?void 0:t.body))return 0;const i=t.createElement("div");i.style.cssText="position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;padding-top:var(--ion-safe-area-top,0px);",t.body.appendChild(i);const o=parseFloat(getComputedStyle(i).paddingTop)||0;return i.remove(),st=o,nt||(nt=!0,w((()=>{st=null,nt=!1}))),o})();this.el.style.setProperty("--ion-modal-offset-top",`${t}px`)}updateSafeAreaOverrides(){const{wrapperEl:t,el:i}=this,o=this.getSafeAreaContext();if(o.isSheetModal)return;if(o.isCardModal)return;if(!t)return;const a=(t=>{var i,o;const a=t.getBoundingClientRect(),e=null!==(i=null==z?void 0:z.innerHeight)&&void 0!==i?i:0,r=null!==(o=null==z?void 0:z.innerWidth)&&void 0!==o?o:0;return{top:a.top<=5?"inherit":"0px",bottom:a.bottom>=e-5?"inherit":"0px",left:a.left<=5?"inherit":"0px",right:a.right>=r-5?"inherit":"0px"}})(t);ht(i,a)}applyFullscreenSafeArea(){const t=this.getSafeAreaContext();if(t.isSheetModal||t.isCardModal)return;const{contentEl:i,hasFooter:o}=this.findContentAndFooter();this.applyFullscreenSafeAreaTo(i,o)}applyFullscreenSafeAreaTo(t,i){t&&!i&&t.style.setProperty("--ion-content-safe-area-padding-bottom","var(--ion-safe-area-bottom, 0px)")}clearContentSafeAreaPadding(t){t&&t.style.removeProperty("--ion-content-safe-area-padding-bottom")}findContentAndFooter(){let t=null,i=!1;for(const o of Array.from(this.el.children)){"ION-CONTENT"===o.tagName&&(t=o),"ION-FOOTER"===o.tagName&&(i=!0);for(const a of Array.from(o.children))"ION-CONTENT"!==a.tagName||t||(t=a),"ION-FOOTER"===a.tagName&&(i=!0)}return{contentEl:t,hasFooter:i}}cleanupSafeAreaOverrides(){var t;(t=this.el).style.removeProperty("--ion-safe-area-top"),t.style.removeProperty("--ion-safe-area-bottom"),t.style.removeProperty("--ion-safe-area-left"),t.style.removeProperty("--ion-safe-area-right"),this.el.style.removeProperty("--ion-modal-offset-top");const{contentEl:i}=this.findContentAndFooter();this.clearContentSafeAreaPadding(i)}render(){const{handle:t,isSheetModal:i,presentingElement:o,htmlAttributes:a,handleBehavior:e,inheritedAttributes:n,focusTrap:d,expandToScroll:h}=this,l=!1!==t&&i,p=R(this),c=void 0!==o&&"ios"===p,m="cycle"===e;return r(s,Object.assign({key:"b665328614ae3a0d27ec15ecb8334d14e0d517e7","no-router":!0,tabIndex:m&&i&&l?0:-1},a,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign({[p]:!0,"modal-default":!c&&!i,"modal-card":c,"modal-sheet":i,"modal-no-expand-scroll":i&&!h,"overlay-hidden":!0,[E]:!1===d},j(this.cssClass)),onIonBackdropTap:this.onBackdropTap,onIonModalDidPresent:this.onLifecycle,onIonModalWillPresent:this.onLifecycle,onIonModalWillDismiss:this.onLifecycle,onIonModalDidDismiss:this.onLifecycle,onFocus:this.onModalFocus}),r("ion-backdrop",{key:"263b41858dc0ad44e5a84cd83cf6eaaf32a804d2",ref:t=>this.backdropEl=t,visible:this.showBackdrop,tappable:this.backdropDismiss,part:"backdrop"}),"ios"===p&&r("div",{key:"65eb2a58f20576941e49f5499de644b4c45ad50e",class:"modal-shadow"}),r("div",Object.assign({key:"2817d6cc8015ad013204941fea5ee96c331841f5",role:"dialog"},n,{"aria-modal":"true",class:"modal-wrapper ion-overlay-wrapper",part:"content",ref:t=>this.wrapperEl=t}),l&&r("button",{key:"318f2c1e903cb41c977fbcce529f509c82378079",class:"modal-handle",tabIndex:m?0:-1,"aria-label":"Activate to adjust the size of the dialog overlaying the screen",onClick:m?this.onHandleClick:void 0,part:"handle",ref:t=>this.dragHandleEl=t}),r("slot",{key:"de8e6b0d4126820cc6a02be0af229a3e62afa1dd",onSlotchange:this.onSlotChange})))}get el(){return n(this)}static get watchers(){return{isOpen:[{onIsOpenChange:0}],trigger:[{triggerChanged:0}]}}},pt={ionModalDidPresent:"ionViewDidEnter",ionModalWillPresent:"ionViewWillEnter",ionModalWillDismiss:"ionViewWillLeave",ionModalDidDismiss:"ionViewDidLeave"};lt.style={ios:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}',md:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}'};export{lt as ion_modal}
4
+ import{r as t,c as i,f as o,w as a,e,h as r,d as s,g as n}from"./p-IGIE5vDm.js";import{f as d,i as h,d as l,r as p,a as c,p as m}from"./p-B8xlpH8p.js";import{C as f,a as u,d as b}from"./p-CmFz1Mjc.js";import{e as v,g as x,r as w,b as g,h as y}from"./p-CGmVTdWh.js";import{c as k}from"./p-B-hirT0v.js";import{g as A}from"./p-CIGNaXM1.js";import{G as Y,O,F as E,e as S,B as D,j as T,k as M,f as C,g as B,h as P}from"./p-DTPR1Wpn.js";import{g as j}from"./p-DiVJyqlX.js";import{e as I,w as N}from"./p-BW_TRJm8.js";import{b as R}from"./p-NFFyoJ4Q.js";import{KEYBOARD_DID_OPEN as $}from"./p-9eeaBrnk.js";import{c as L}from"./p-Bum7H1fw.js";import{g as F}from"./p-hHmYLOfE.js";import{createGesture as W}from"./p-Cl0B-RWe.js";import{w as z}from"./p-ZjP4CjeZ.js";import"./p-DB_iPQC-.js";import"./p-BTEOs1at.js";import"./p-D13Eaw-8.js";var H;!function(t){t.Dark="DARK",t.Light="LIGHT",t.Default="DEFAULT"}(H||(H={}));const V={getEngine(){const t=A();if(null==t?void 0:t.isPluginAvailable("StatusBar"))return t.Plugins.StatusBar},setStyle(t){const i=this.getEngine();i&&i.setStyle(t)},getStyle:async function(){const t=this.getEngine();if(!t)return H.Default;const{style:i}=await t.getInfo();return i}},G=(t,i)=>{if(1===i)return 0;const o=1/(1-i);return t*o+-i*o},Z=()=>{!z||z.innerWidth>=768||V.setStyle({style:H.Dark})},_=(t=H.Default)=>{!z||z.innerWidth>=768||V.setStyle({style:t})},K=async(t,i)=>{"function"==typeof t.canDismiss&&await t.canDismiss(void 0,Y)&&(i.isRunning()?i.onFinish((()=>{t.dismiss(void 0,"handler")}),{oneTimeCallback:!0}):t.dismiss(void 0,"handler"))},J=t=>.00255275*2.71828**(-14.9619*t)-1.00255*2.71828**(-.0380968*t)+1,U=.915,Q=(t,i)=>v(400,t/Math.abs(1.1*i),500),X=(t,i)=>{const o=window.innerHeight,a=t.getBoundingClientRect().top,e=Math.round(1e3*(1-i/(o-a)))/1e3;return Math.max(0,Math.min(1,e))},q=t=>{const{currentBreakpoint:i,backdropBreakpoint:o,expandToScroll:a}=t,e=void 0===o||o<i,r=e?`calc(var(--backdrop-opacity) * ${i})`:"0",s=L("backdropAnimation").fromTo("opacity",0,r);return e&&s.beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),{wrapperAnimation:L("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:"translateY(100%)"},{offset:1,opacity:1,transform:`translateY(${100-100*i}%)`}]),backdropAnimation:s,contentAnimation:a?void 0:L("contentAnimation").keyframes([{offset:0,opacity:1,maxHeight:100*(1-i)+"%"},{offset:1,opacity:1,maxHeight:100*i+"%"}])}},tt=t=>{const{currentBreakpoint:i,backdropBreakpoint:o}=t,a=`calc(var(--backdrop-opacity) * ${G(i,o)})`,e=[{offset:0,opacity:a},{offset:1,opacity:0}],r=[{offset:0,opacity:a},{offset:o,opacity:0},{offset:1,opacity:0}],s=L("backdropAnimation").keyframes(0!==o?r:e);return{wrapperAnimation:L("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:`translateY(${100-100*i}%)`},{offset:1,opacity:1,transform:"translateY(100%)"}]),backdropAnimation:s}},it=(t,i)=>{const{presentingEl:o,currentBreakpoint:a,expandToScroll:e}=i,r=x(t),{wrapperAnimation:s,backdropAnimation:n,contentAnimation:d}=void 0!==a?q(i):{backdropAnimation:L().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:L().fromTo("transform","translateY(100vh)","translateY(0vh)"),contentAnimation:void 0};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1}),!e&&(null==d||d.addElement(t.querySelector(".ion-page")));const h=L("entering-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([s]);if(d&&h.addAnimation(d),o){const t=window.innerWidth<768,i="ION-MODAL"===o.tagName&&void 0!==o.presentingElement,a=x(o),e=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"}),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",a=`translateY(${i?"-10px":t}) scale(0.915)`;e.afterStyles({transform:a}).beforeAddWrite((()=>r.style.setProperty("background-color","black"))).addElement(o).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"},{offset:1,filter:"contrast(0.85)",transform:a,borderRadius:"10px 10px 0 0"}]),h.addAnimation(e)}else if(h.addAnimation(n),i){const t=`translateY(-10px) scale(${i?U:1})`;e.afterStyles({transform:t}).addElement(a.querySelector(".modal-wrapper")).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0) scale(1)"},{offset:1,filter:"contrast(0.85)",transform:t}]);const o=L().afterStyles({transform:t}).addElement(a.querySelector(".modal-shadow")).keyframes([{offset:0,opacity:"1",transform:"translateY(0) scale(1)"},{offset:1,opacity:"0",transform:t}]);h.addAnimation([e,o])}else s.fromTo("opacity","0","1")}else h.addAnimation(n);return h},ot=(t,i,o=500)=>{const{presentingEl:a,currentBreakpoint:e}=i,r=x(t),{wrapperAnimation:s,backdropAnimation:n}=void 0!==e?tt(i):{backdropAnimation:L().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:L().fromTo("transform","translateY(0vh)","translateY(100vh)")};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1});const d=L("leaving-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o).addAnimation(s);if(a){const t=window.innerWidth<768,i="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,o=x(a),e=L().beforeClearStyles(["transform"]).afterClearStyles(["transform"]).onFinish((t=>{1===t&&(a.style.setProperty("overflow",""),Array.from(r.querySelectorAll("ion-modal:not(.overlay-hidden)")).filter((t=>void 0!==t.presentingElement)).length<=1&&r.style.setProperty("background-color",""))})),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",o=`translateY(${i?"-10px":t}) scale(0.915)`;e.addElement(a).keyframes([{offset:0,filter:"contrast(0.85)",transform:o,borderRadius:"10px 10px 0 0"},{offset:1,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"}]),d.addAnimation(e)}else if(d.addAnimation(n),i){const t=`translateY(-10px) scale(${i?U:1})`;e.addElement(o.querySelector(".modal-wrapper")).afterStyles({transform:"translate3d(0, 0, 0)"}).keyframes([{offset:0,filter:"contrast(0.85)",transform:t},{offset:1,filter:"contrast(1)",transform:"translateY(0) scale(1)"}]);const a=L().addElement(o.querySelector(".modal-shadow")).afterStyles({transform:"translateY(0) scale(1)"}).keyframes([{offset:0,opacity:"0",transform:t},{offset:1,opacity:"1",transform:"translateY(0) scale(1)"}]);d.addAnimation([e,a])}else s.fromTo("opacity","1","0")}else d.addAnimation(n);return d},at=(t,i)=>{const{currentBreakpoint:o,expandToScroll:a}=i,e=x(t),{wrapperAnimation:r,backdropAnimation:s,contentAnimation:n}=void 0!==o?q(i):{backdropAnimation:L().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:L().keyframes([{offset:0,opacity:.01,transform:"translateY(40px)"},{offset:1,opacity:1,transform:"translateY(0px)"}]),contentAnimation:void 0};s.addElement(e.querySelector("ion-backdrop")),r.addElement(e.querySelector(".modal-wrapper")),!a&&(null==n||n.addElement(t.querySelector(".ion-page")));const d=L().addElement(t).easing("cubic-bezier(0.36,0.66,0.04,1)").duration(280).addAnimation([s,r]);return n&&d.addAnimation(n),d},et=(t,i)=>{const{currentBreakpoint:o}=i,a=x(t),{wrapperAnimation:e,backdropAnimation:r}=void 0!==o?tt(i):{backdropAnimation:L().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:L().keyframes([{offset:0,opacity:.99,transform:"translateY(0px)"},{offset:1,opacity:0,transform:"translateY(40px)"}])};return r.addElement(a.querySelector("ion-backdrop")),e.addElement(a.querySelector(".modal-wrapper")),L().easing("cubic-bezier(0.47,0,0.745,0.715)").duration(200).addAnimation([r,e])},rt=new Set(["","100%","100vw","100vh","100dvw","100dvh","100svw","100svh"]);let st=null,nt=!1;const dt=t=>{const i=getComputedStyle(t),o=i.getPropertyValue("--width").trim(),a=i.getPropertyValue("--height").trim();return!rt.has(o)&&!rt.has(a)},ht=(t,i)=>{t.style.setProperty("--ion-safe-area-top",i.top),t.style.setProperty("--ion-safe-area-bottom",i.bottom),t.style.setProperty("--ion-safe-area-left",i.left),t.style.setProperty("--ion-safe-area-right",i.right)},lt=class{constructor(o){t(this,o),this.didPresent=i(this,"ionModalDidPresent",7),this.willPresent=i(this,"ionModalWillPresent",7),this.willDismiss=i(this,"ionModalWillDismiss",7),this.didDismiss=i(this,"ionModalDidDismiss",7),this.ionBreakpointDidChange=i(this,"ionBreakpointDidChange",7),this.didPresentShorthand=i(this,"didPresent",7),this.willPresentShorthand=i(this,"willPresent",7),this.willDismissShorthand=i(this,"willDismiss",7),this.didDismissShorthand=i(this,"didDismiss",7),this.ionMount=i(this,"ionMount",7),this.ionDragStart=i(this,"ionDragStart",7),this.ionDragMove=i(this,"ionDragMove",7),this.ionDragEnd=i(this,"ionDragEnd",7),this.lockController=k(),this.triggerController=S(),this.coreDelegate=f(),this.isSheetModal=!1,this.inheritedAttributes={},this.inline=!1,this.gestureAnimationDismissing=!1,this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.expandToScroll=!0,this.backdropBreakpoint=0,this.handleBehavior="none",this.backdropDismiss=!0,this.showBackdrop=!0,this.animated=!0,this.isOpen=!1,this.keepContentsMounted=!1,this.focusTrap=!0,this.canDismiss=!0,this.onHandleClick=()=>{const{sheetTransition:t,handleBehavior:i}=this;"cycle"===i&&void 0===t&&this.moveToNextBreakpoint()},this.onBackdropTap=()=>{const{sheetTransition:t}=this;void 0===t&&this.dismiss(void 0,D)},this.onLifecycle=t=>{const i=this.usersElement,o=pt[t.type];if(i&&o){const a=new CustomEvent(o,{bubbles:!1,cancelable:!1,detail:t.detail});i.dispatchEvent(a)}},this.onModalFocus=t=>{const{dragHandleEl:i,el:o}=this;t.target===o&&i&&-1!==i.tabIndex&&i.focus()},this.onSlotChange=({target:t})=>{t.assignedElements().forEach((t=>{t.querySelectorAll("ion-modal").forEach((t=>{null===t.getAttribute("data-parent-ion-modal")&&t.setAttribute("data-parent-ion-modal",this.el.id)}))}))}}onIsOpenChange(t,i){!0===t&&!1===i?this.present():!1===t&&!0===i&&this.dismiss()}triggerChanged(){const{trigger:t,el:i,triggerController:o}=this;t&&o.addClickListener(i,t)}onWindowResize(){this.presented&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout((()=>{const t=this.getSafeAreaContext();if(!t.isCardModal||this.enterAnimation||this.leaveAnimation||this.handleViewTransition(),t.isSheetModal&&this.updateSheetOffsetTop(),!t.isSheetModal&&!t.isCardModal){this.updateSafeAreaOverrides();const{contentEl:t,hasFooter:i}=this.findContentAndFooter();this.clearContentSafeAreaPadding(t),this.applyFullscreenSafeAreaTo(t,i)}}),50))}breakpointsChanged(t){void 0!==t&&(this.sortedBreakpoints=t.sort(((t,i)=>t-i)))}connectedCallback(){const{el:t}=this;T(t),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener(),this.cleanupViewTransitionListener(),this.cleanupParentRemovalObserver(),this.cleanupSafeAreaOverrides()}componentWillLoad(){var t;const{breakpoints:i,initialBreakpoint:a,el:e,htmlAttributes:r}=this,s=this.isSheetModal=void 0!==i&&void 0!==a,n=["aria-label","role"];this.inheritedAttributes=g(e,n),e.parentNode&&(this.cachedOriginalParent=e.parentNode),void 0!==r&&n.forEach((t=>{r[t]&&(this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:r[t]}),delete r[t])})),s&&(this.currentBreakpoint=this.initialBreakpoint),void 0===i||void 0===a||i.includes(a)||o("[ion-modal] - Your breakpoints array must include the initialBreakpoint value."),(null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)||M(this.el)}componentDidLoad(){!0===this.isOpen&&w((()=>this.present())),this.breakpointsChanged(this.breakpoints),this.triggerChanged()}getDelegate(t=!1){if(this.workingDelegate&&!t)return{delegate:this.workingDelegate,inline:this.inline};const i=this.inline=null!==this.el.parentNode&&!this.hasController;return{inline:i,delegate:this.workingDelegate=i?this.delegate||this.coreDelegate:this.delegate}}async checkCanDismiss(t,i){const{canDismiss:o}=this;return"function"==typeof o?o(t,i):o}async present(){const t=await this.lockController.lock();if(this.presented)return void t();const{presentingElement:i,el:o}=this;this.currentBreakpoint=this.initialBreakpoint;const{inline:e,delegate:r}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await u(r,o,this.component,["ion-page"],this.componentProps,e),y(o)?await I(this.usersElement):this.keepContentsMounted||await N(),a((()=>this.el.classList.add("show-modal"))),this.isSheetModal=void 0!==this.breakpoints&&void 0!==this.initialBreakpoint,this.setInitialSafeAreaOverrides();const s=void 0!==i;s&&"ios"===R(this)&&(this.statusBarStyle=await V.getStyle(),Z()),await C(this,"modalEnter",it,at,{presentingEl:i,currentBreakpoint:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll}),this.updateSafeAreaOverrides(),this.applyFullscreenSafeArea(),"undefined"!=typeof window&&(this.keyboardOpenCallback=()=>{this.gesture&&(this.gesture.enable(!1),w((()=>{this.gesture&&this.gesture.enable(!0)})))},window.addEventListener($,this.keyboardOpenCallback)),this.isSheetModal?this.initSheetGesture():s&&this.initSwipeToClose(),this.initViewTransitionListener(),this.initParentRemovalObserver(),t()}initSwipeToClose(){var t;if("ios"!==R(this))return;const{el:i}=this,o=this.leaveAnimation||e.get("modalLeave",ot),a=this.animation=o(i,{presentingEl:this.presentingElement,expandToScroll:this.expandToScroll});if(!c(i))return void m(i);const r=null!==(t=this.statusBarStyle)&&void 0!==t?t:H.Default;this.gesture=((t,i,o,a,e,r,s)=>{const n=.5,c=t.offsetHeight;let m=!1,f=!1,u=null,b=null,w=!0,g=0;const y=W({el:t,gestureName:"modalSwipeToClose",gesturePriority:O,direction:"y",threshold:10,canStart:t=>{const i=t.event.target;if(null===i||!i.closest)return!0;if(u=d(i),u){if(h(u)){const t=x(u);b=t.querySelector(".inner-scroll")}else b=u;return!u.querySelector("ion-refresher")&&0===b.scrollTop}return null===i.closest("ion-footer")},onStart:o=>{const{deltaY:a}=o;w=!u||!h(u)||u.scrollY,f=void 0!==t.canDismiss&&!0!==t.canDismiss,a>0&&u&&l(u),i.progressStart(!0,m?1:0),e()},onMove:a=>{const{deltaY:e}=a;e>0&&u&&l(u);const s=a.deltaY/c,d=s>=0&&f,h=d?.2:.9999,p=d?J(s/h):s,m=v(1e-4,p,h);i.progressStep(m),m>=n&&g<n?_(o):m<n&&g>=n&&Z(),g=m;const b={currentY:a.currentY,deltaY:a.deltaY,velocityY:a.velocityY,progress:X(t,a.deltaY)};r(b)},onEnd:o=>{const e=o.velocityY,r=o.deltaY/c,d=r>=0&&f,h=d?.2:.9999,l=d?J(r/h):r,b=v(1e-4,l,h),x=!d&&(o.deltaY+1e3*e)/c>=n;let g=x?-.001:.001;x?(i.easing("cubic-bezier(0.32, 0.72, 0, 1)"),g+=F([0,0],[.32,.72],[0,1],[1,1],b)[0]):(i.easing("cubic-bezier(1, 0, 0.68, 0.28)"),g+=F([0,0],[1,0],[.68,.28],[1,1],b)[0]);const k=Q(x?r*c:(1-b)*c,e);m=x,y.enable(!1),u&&p(u,w),i.onFinish((()=>{x||y.enable(!0)})).progressEnd(x?1:0,g,k),d&&b>h/4?K(t,i):x&&a();const A={currentY:o.currentY,deltaY:o.deltaY,velocityY:o.velocityY,progress:X(t,o.deltaY)};s(A)}});return y})(i,a,r,(()=>this.cardOnDismiss()),(()=>this.onDragStart()),(t=>this.onDragMove(t)),(t=>this.onDragEnd(t))),this.gesture.enable(!0)}initSheetGesture(){const{wrapperEl:t,initialBreakpoint:i,backdropBreakpoint:o}=this;if(!t||void 0===i)return;const a=this.enterAnimation||e.get("modalEnter",it),r=this.animation=a(this.el,{presentingEl:this.presentingElement,currentBreakpoint:i,backdropBreakpoint:o,expandToScroll:this.expandToScroll});r.progressStart(!0,1);const{gesture:s,moveSheetToBreakpoint:n}=((t,i,o,a,e,r,s=[],n,l,p,c,m,f,u)=>{const b={WRAPPER_KEYFRAMES:[{offset:0,transform:"translateY(0%)"},{offset:1,transform:"translateY(100%)"}],BACKDROP_KEYFRAMES:0!==e?[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1-e,opacity:0},{offset:1,opacity:0}]:[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1,opacity:.01}],CONTENT_KEYFRAMES:[{offset:0,maxHeight:"100%"},{offset:1,maxHeight:"0%"}]},g=t.querySelector("ion-content"),y=o.clientHeight;let k=a,A=0,Y=!1,O=null,S=null,D=null,T=null;const M=s[s.length-1],C=s[0],B=r.childAnimations.find((t=>"wrapperAnimation"===t.id)),P=r.childAnimations.find((t=>"backdropAnimation"===t.id)),j=r.childAnimations.find((t=>"contentAnimation"===t.id)),I=()=>{!1!==t.focusTrap&&!1!==t.showBackdrop&&(t.style.setProperty("pointer-events","auto"),i.style.setProperty("pointer-events","auto"),t.classList.remove(E))},N=()=>{t.style.setProperty("pointer-events","none"),i.style.setProperty("pointer-events","none"),t.classList.add(E)},R=i=>{if(!S&&(S=Array.from(t.querySelectorAll("ion-footer")),!S.length))return;const o=t.querySelector(".ion-page");if(T=i,"stationary"===i)S.forEach((t=>{t.classList.remove("modal-footer-moving"),t.style.removeProperty("position"),t.style.removeProperty("width"),t.style.removeProperty("height"),t.style.removeProperty("top"),t.style.removeProperty("left"),null==o||o.style.removeProperty("padding-bottom"),null==o||o.appendChild(t)}));else{let i=0;S.forEach(((o,a)=>{const e=o.getBoundingClientRect(),r=document.body.getBoundingClientRect();i+=o.clientHeight;const s=e.top-r.top,n=e.left-r.left;if(o.style.setProperty("--pinned-width",`${o.clientWidth}px`),o.style.setProperty("--pinned-height",`${o.clientHeight}px`),o.style.setProperty("--pinned-top",`${s}px`),o.style.setProperty("--pinned-left",`${n}px`),0===a){D=s;const i=t.querySelector("ion-header");i&&(D-=i.clientHeight)}})),S.forEach((t=>{null==o||o.style.setProperty("padding-bottom",`${i}px`),t.classList.add("modal-footer-moving"),t.style.setProperty("position","absolute"),t.style.setProperty("width","var(--pinned-width)"),t.style.setProperty("height","var(--pinned-height)"),t.style.setProperty("top","var(--pinned-top)"),t.style.setProperty("left","var(--pinned-left)"),document.body.appendChild(t)}))}};B&&P&&(B.keyframes([...b.WRAPPER_KEYFRAMES]),P.keyframes([...b.BACKDROP_KEYFRAMES]),null==j||j.keyframes([...b.CONTENT_KEYFRAMES]),r.progressStart(!0,1-k),k>e&&!1!==t.focusTrap&&!1!==t.showBackdrop?I():N()),g&&k!==M&&n&&(g.scrollY=!1);const $=i=>{const{breakpoint:o,canDismiss:a,breakpointOffset:d,animated:h}=i,l=a&&0===o,m=l?k:o,f=0!==m;return k=0,B&&P&&(B.keyframes([{offset:0,transform:`translateY(${100*d}%)`},{offset:1,transform:`translateY(${100*(1-m)}%)`}]),P.keyframes([{offset:0,opacity:`calc(var(--backdrop-opacity) * ${G(1-d,e)})`},{offset:1,opacity:`calc(var(--backdrop-opacity) * ${G(m,e)})`}]),j&&j.keyframes([{offset:0,maxHeight:100*(1-d)+"%"},{offset:1,maxHeight:100*m+"%"}]),r.progressStep(0)),H.enable(!1),l?K(t,r):f||p(),!g||m!==s[s.length-1]&&n||(g.scrollY=!0),n||0!==m||R("stationary"),new Promise((i=>{r.onFinish((()=>{f?(n||R("stationary"),B&&P?w((()=>{B.keyframes([...b.WRAPPER_KEYFRAMES]),P.keyframes([...b.BACKDROP_KEYFRAMES]),null==j||j.keyframes([...b.CONTENT_KEYFRAMES]),r.progressStart(!0,1-m),k=m,c(k),k>e&&!1!==t.focusTrap&&!1!==t.showBackdrop?I():N(),H.enable(!0),i()})):(H.enable(!0),i())):i()}),{oneTimeCallback:!0}).progressEnd(1,0,h?500:0)}))},L=t=>{const i=o.getBoundingClientRect().top+t,a=F(i);return s.reduce(((t,i)=>Math.abs(i-a)<Math.abs(t-a)?i:t))},F=t=>{const i=s[s.length-1],o=z(s[0]),a=z(i),e=Math.round((o-t)/(o-a)*1e3)/1e3;return Math.max(0,Math.min(1,e))},z=i=>{const o=t.getBoundingClientRect();return window.innerHeight-o.height*i},H=W({el:o,gestureName:"modalSheet",gesturePriority:40,direction:"y",threshold:10,canStart:t=>{const i=d(t.event.target);if(k=l(),!n&&i)return 0===(h(i)?x(i).querySelector(".inner-scroll"):i).scrollTop;if(1===k&&i){const t=h(i)?x(i).querySelector(".inner-scroll"):i;return!i.querySelector("ion-refresher")&&0===t.scrollTop}return!0},onStart:i=>{if(Y=void 0!==t.canDismiss&&!0!==t.canDismiss&&0===C,!n){const t=d(i.event.target);O=t&&h(t)?x(t).querySelector(".inner-scroll"):t}n||R("moving"),i.deltaY>0&&g&&(g.scrollY=!1),w((()=>{t.focus()})),r.progressStart(!0,1-k),m()},onMove:t=>{if(n||null===D||null===T||(t.currentY>=D&&"moving"===T?R("stationary"):t.currentY<D&&"stationary"===T&&R("moving")),!n&&t.deltaY<=0&&O)return;t.deltaY>0&&g&&(g.scrollY=!1);const i=s.length>1?1-s[1]:void 0,o=1-k+t.deltaY/y,a=void 0!==i&&o>=i&&Y,e=a?.95:.9999,d=a&&void 0!==i?i+J((o-i)/(e-i)):o;A=v(1e-4,d,e),r.progressStep(A);const h=L(t.deltaY),l={currentY:t.currentY,deltaY:t.deltaY,velocityY:t.velocityY,progress:F(t.currentY),snapBreakpoint:h};f(l)},onEnd:t=>{const i=L(t.deltaY),o={currentY:t.currentY,deltaY:t.deltaY,velocityY:t.velocityY,progress:F(t.currentY),snapBreakpoint:i};if(!n&&t.deltaY<=0&&O&&O.scrollTop>0)return R("stationary"),void u(o);$({breakpoint:i,breakpointOffset:A,canDismiss:Y,animated:!0}),u(o)}});return{gesture:H,moveSheetToBreakpoint:$}})(this.el,this.backdropEl,t,i,o,r,this.sortedBreakpoints,this.expandToScroll,(()=>{var t;return null!==(t=this.currentBreakpoint)&&void 0!==t?t:0}),(()=>this.sheetOnDismiss()),(t=>{this.currentBreakpoint!==t&&(this.currentBreakpoint=t,this.ionBreakpointDidChange.emit({breakpoint:t}))}),(()=>this.onDragStart()),(t=>this.onDragMove(t)),(t=>this.onDragEnd(t)));this.gesture=s,this.moveSheetToBreakpoint=n,this.gesture.enable(!0),(!1===this.showBackdrop||!1===this.focusTrap||o>0)&&this.setupChildRoutePassthrough()}setupChildRoutePassthrough(){var t;this.cachedPageParent=this.getOriginalPageParent();const i=this.cachedPageParent;if(!i||"ION-APP"===i.tagName)return;const o=Array.from(i.children).some((t=>{var i;return!(t===this.el||t instanceof HTMLElement&&"none"===window.getComputedStyle(t).display||"TEMPLATE"===t.tagName||"SLOT"===t.tagName||t.nodeType===Node.TEXT_NODE&&!(null===(i=t.textContent)||void 0===i?void 0:i.trim()))}));if(o)return;i.classList.add("ion-page-overlay-passthrough");const a=i.parentElement;"ION-ROUTER-OUTLET"===(null==a?void 0:a.tagName)&&"ION-APP"!==(null===(t=a.parentElement)||void 0===t?void 0:t.tagName)&&(a.style.setProperty("pointer-events","none"),a.setAttribute("data-overlay-passthrough","true"))}getOriginalPageParent(){if(!this.cachedOriginalParent)return null;let t=this.cachedOriginalParent;for(;t&&!t.classList.contains("ion-page");)t=t.parentElement;return t}cleanupChildRoutePassthrough(){const t=this.cachedPageParent;if(!t)return;t.classList.remove("ion-page-overlay-passthrough");const i=t.parentElement;(null==i?void 0:i.hasAttribute("data-overlay-passthrough"))&&(i.style.removeProperty("pointer-events"),i.removeAttribute("data-overlay-passthrough")),this.cachedPageParent=void 0}sheetOnDismiss(){this.gestureAnimationDismissing=!0,this.animation.onFinish((async()=>{this.currentBreakpoint=0,this.ionBreakpointDidChange.emit({breakpoint:this.currentBreakpoint}),await this.dismiss(void 0,Y),this.gestureAnimationDismissing=!1}))}cardOnDismiss(){this.gestureAnimationDismissing=!0,_(this.statusBarStyle),this.animation.onFinish((async()=>{await this.dismiss(void 0,Y),this.gestureAnimationDismissing=!1}))}async dismiss(t,i){var o;if(this.gestureAnimationDismissing&&i!==Y)return!1;clearTimeout(this.resizeTimeout),this.resizeTimeout=void 0;const e=await this.lockController.lock();if(await this.dismissNestedModals(),"handler"!==i&&!await this.checkCanDismiss(t,i))return e(),!1;const{presentingElement:r}=this;void 0!==r&&"ios"===R(this)&&_(this.statusBarStyle),"undefined"!=typeof window&&this.keyboardOpenCallback&&(window.removeEventListener($,this.keyboardOpenCallback),this.keyboardOpenCallback=void 0);const s=await B(this,t,i,"modalLeave",ot,et,{presentingEl:r,currentBreakpoint:null!==(o=this.currentBreakpoint)&&void 0!==o?o:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll});if(s){const{delegate:t}=this.getDelegate();await b(t,this.usersElement),a((()=>this.el.classList.remove("show-modal"))),this.animation&&this.animation.destroy(),this.gesture&&this.gesture.destroy(),this.cleanupViewTransitionListener(),this.cleanupParentRemovalObserver(),this.cleanupSafeAreaOverrides(),this.cleanupChildRoutePassthrough()}return this.currentBreakpoint=void 0,this.animation=void 0,e(),s}onDidDismiss(){return P(this.el,"ionModalDidDismiss")}onWillDismiss(){return P(this.el,"ionModalWillDismiss")}async setCurrentBreakpoint(t){if(!this.isSheetModal)return void o("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.");if(!this.breakpoints.includes(t))return void o(`[ion-modal] - Attempted to set invalid breakpoint value ${t}. Please double check that the breakpoint value is part of your defined breakpoints.`);const{currentBreakpoint:i,moveSheetToBreakpoint:a,canDismiss:e,breakpoints:r,animated:s}=this;i!==t&&a&&(this.sheetTransition=a({breakpoint:t,breakpointOffset:1-i,canDismiss:void 0!==e&&!0!==e&&0===r[0],animated:s}),await this.sheetTransition,this.sheetTransition=void 0)}async getCurrentBreakpoint(){return this.currentBreakpoint}async moveToNextBreakpoint(){const{breakpoints:t,currentBreakpoint:i}=this;if(!t||null==i)return!1;const o=t.filter((t=>0!==t)),a=o.indexOf(i),e=o[(a+1)%o.length];return await this.setCurrentBreakpoint(e),!0}initViewTransitionListener(){"ios"!==R(this)||!this.presentingElement||this.enterAnimation||this.leaveAnimation||(this.currentViewIsPortrait=window.innerWidth<768)}handleViewTransition(){if(!this.presented)return;const t=window.innerWidth<768;if(this.currentViewIsPortrait===t)return;this.viewTransitionAnimation&&(this.viewTransitionAnimation.destroy(),this.viewTransitionAnimation=void 0);const{presentingElement:i}=this;if(!i)return;let o;o=this.currentViewIsPortrait&&!t?((t,i,o=300)=>{const{presentingEl:a}=i;if(!a)return L("portrait-to-landscape-transition");const e="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,r=x(a),s=document.body,n=L("portrait-to-landscape-transition").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o),d=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"});if(e){const t="translateY(-10px) scale(0.915)",i="translateY(0px) scale(1)";d.addElement(a).afterStyles({transform:i}).fromTo("transform",t,i).fromTo("filter","contrast(0.85)","contrast(1)");const o=L().addElement(r.querySelector(".modal-shadow")).afterStyles({transform:i,opacity:"0"}).fromTo("transform",t,i);n.addAnimation([d,o])}else{const i=x(t),o=L().addElement(i.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity","1","1"),e=L().addElement(i.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)","var(--backdrop-opacity)"),r=`translateY(${CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px"}) scale(0.915)`;d.addElement(a).afterStyles({transform:"translateY(0px) scale(1)","border-radius":"0px"}).beforeAddWrite((()=>s.style.setProperty("background-color",""))).fromTo("transform",r,"translateY(0px) scale(1)").fromTo("filter","contrast(0.85)","contrast(1)").fromTo("border-radius","10px 10px 0 0","0px"),n.addAnimation([d,o,e])}return n})(this.el,{presentingEl:i}):((t,i,o=300)=>{const{presentingEl:a}=i;if(!a)return L("landscape-to-portrait-transition");const e="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,r=x(a),s=document.body,n=L("landscape-to-portrait-transition").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(o),d=L().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"});if(e){const t="translateY(-10px) scale(0.915)",i="translateY(0) scale(1)";d.addElement(a).afterStyles({transform:i}).fromTo("transform",t,i);const o=L().addElement(r.querySelector(".modal-shadow")).afterStyles({transform:i,opacity:"0"}).fromTo("transform",t,i);n.addAnimation([d,o])}else{const i=x(t),o=L().addElement(i.querySelectorAll(".modal-wrapper, .modal-shadow")).fromTo("opacity","1","1"),e=L().addElement(i.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)","var(--backdrop-opacity)"),r=`translateY(${CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px"}) scale(0.915)`;d.addElement(a).afterStyles({transform:r}).beforeAddWrite((()=>s.style.setProperty("background-color","black"))).keyframes([{offset:0,transform:"translateY(0px) scale(1)",filter:"contrast(1)",borderRadius:"0px"},{offset:.2,transform:"translateY(0px) scale(1)",filter:"contrast(1)",borderRadius:"10px 10px 0 0"},{offset:1,transform:r,filter:"contrast(0.85)",borderRadius:"10px 10px 0 0"}]),n.addAnimation([d,o,e])}return n})(this.el,{presentingEl:i}),this.currentViewIsPortrait=t,this.viewTransitionAnimation=o,o.play().then((()=>{this.viewTransitionAnimation=void 0,w((()=>this.updateSafeAreaOverrides())),this.reinitSwipeToClose()}))}cleanupViewTransitionListener(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=void 0),this.viewTransitionAnimation&&(this.viewTransitionAnimation.destroy(),this.viewTransitionAnimation=void 0)}reinitSwipeToClose(){"ios"===R(this)&&this.presentingElement&&(this.gesture&&(this.gesture.destroy(),this.gesture=void 0),this.animation&&(this.animation.progressEnd(0,0,0),this.animation.destroy(),this.animation=void 0),w((()=>{this.ensureCorrectModalPosition(),this.initSwipeToClose()})))}ensureCorrectModalPosition(){const{el:t,presentingElement:i}=this,o=x(t).querySelector(".modal-wrapper");if(o&&(o.style.transform="translateY(0vh)",o.style.opacity="1"),"ION-MODAL"===(null==i?void 0:i.tagName))if(window.innerWidth<768){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px";i.style.transform=`translateY(${t}) scale(0.915)`}else i.style.transform="translateY(0px) scale(1)"}async dismissNestedModals(){const t=document.querySelectorAll(`ion-modal[data-parent-ion-modal="${this.el.id}"]`);null==t||t.forEach((async t=>{await t.dismiss(void 0,"parent-dismissed")}))}initParentRemovalObserver(){"undefined"!=typeof MutationObserver&&"undefined"!=typeof window&&this.cachedOriginalParent&&this.cachedOriginalParent.nodeType!==Node.DOCUMENT_NODE&&this.cachedOriginalParent.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(this.hasController||this.cachedOriginalParent===document.body||"ION-APP"===this.cachedOriginalParent.tagName||(this.parentRemovalObserver=new MutationObserver((t=>{t.forEach((t=>{"childList"===t.type&&t.removedNodes.length>0&&(Array.from(t.removedNodes).some((t=>{var i,o;const a=t===this.cachedOriginalParent,e=!!this.cachedOriginalParent&&(null===(o=(i=t).contains)||void 0===o?void 0:o.call(i,this.cachedOriginalParent));return a||e}))||this.cachedOriginalParent&&!this.cachedOriginalParent.isConnected)&&(this.dismiss(void 0,"parent-removed"),this.cachedOriginalParent=void 0)}))})),this.parentRemovalObserver.observe(document.body,{childList:!0,subtree:!0})))}cleanupParentRemovalObserver(){var t;null===(t=this.parentRemovalObserver)||void 0===t||t.disconnect(),this.parentRemovalObserver=void 0}onDragStart(){this.ionDragStart.emit()}onDragMove(t){this.ionDragMove.emit(t)}onDragEnd(t){this.ionDragEnd.emit(t)}getSafeAreaContext(){return{isSheetModal:this.isSheetModal,isCardModal:void 0!==this.presentingElement&&"ios"===R(this),presentingElement:this.presentingElement,breakpoints:this.breakpoints,currentBreakpoint:this.currentBreakpoint}}setInitialSafeAreaOverrides(){const t=Object.assign(Object.assign({},this.getSafeAreaContext()),{hasCustomDimensions:dt(this.el)}),i=(t=>{const{isSheetModal:i,isCardModal:o}=t;return i?{top:"0px",bottom:"inherit",left:"0px",right:"0px"}:o?{top:"inherit",bottom:"inherit",left:"0px",right:"0px"}:z&&z.matchMedia("(min-width: 768px) and (min-height: 600px)").matches||t.hasCustomDimensions?{top:"0px",bottom:"0px",left:"0px",right:"0px"}:{top:"inherit",bottom:"inherit",left:"inherit",right:"inherit"}})(t);ht(this.el,i),t.isSheetModal&&this.updateSheetOffsetTop()}updateSheetOffsetTop(){const t=(()=>{if(null!==st)return st;const t=null==z?void 0:z.document;if(!(null==t?void 0:t.body))return 0;const i=t.createElement("div");i.style.cssText="position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;padding-top:var(--ion-safe-area-top,0px);",t.body.appendChild(i);const o=parseFloat(getComputedStyle(i).paddingTop)||0;return i.remove(),st=o,nt||(nt=!0,w((()=>{st=null,nt=!1}))),o})();this.el.style.setProperty("--ion-modal-offset-top",`${t}px`)}updateSafeAreaOverrides(){const{wrapperEl:t,el:i}=this,o=this.getSafeAreaContext();if(o.isSheetModal)return;if(o.isCardModal)return;if(!t)return;const a=(t=>{var i,o;const a=t.getBoundingClientRect(),e=null!==(i=null==z?void 0:z.innerHeight)&&void 0!==i?i:0,r=null!==(o=null==z?void 0:z.innerWidth)&&void 0!==o?o:0;return{top:a.top<=5?"inherit":"0px",bottom:a.bottom>=e-5?"inherit":"0px",left:a.left<=5?"inherit":"0px",right:a.right>=r-5?"inherit":"0px"}})(t);ht(i,a)}applyFullscreenSafeArea(){const t=this.getSafeAreaContext();if(t.isSheetModal||t.isCardModal)return;const{contentEl:i,hasFooter:o}=this.findContentAndFooter();this.applyFullscreenSafeAreaTo(i,o)}applyFullscreenSafeAreaTo(t,i){t&&!i&&t.style.setProperty("--ion-content-safe-area-padding-bottom","var(--ion-safe-area-bottom, 0px)")}clearContentSafeAreaPadding(t){t&&t.style.removeProperty("--ion-content-safe-area-padding-bottom")}findContentAndFooter(){let t=null,i=!1;for(const o of Array.from(this.el.children)){"ION-CONTENT"===o.tagName&&(t=o),"ION-FOOTER"===o.tagName&&(i=!0);for(const a of Array.from(o.children))"ION-CONTENT"!==a.tagName||t||(t=a),"ION-FOOTER"===a.tagName&&(i=!0)}return{contentEl:t,hasFooter:i}}cleanupSafeAreaOverrides(){var t;(t=this.el).style.removeProperty("--ion-safe-area-top"),t.style.removeProperty("--ion-safe-area-bottom"),t.style.removeProperty("--ion-safe-area-left"),t.style.removeProperty("--ion-safe-area-right"),this.el.style.removeProperty("--ion-modal-offset-top");const{contentEl:i}=this.findContentAndFooter();this.clearContentSafeAreaPadding(i)}render(){const{handle:t,isSheetModal:i,presentingElement:o,htmlAttributes:a,handleBehavior:e,inheritedAttributes:n,focusTrap:d,expandToScroll:h}=this,l=!1!==t&&i,p=R(this),c=void 0!==o&&"ios"===p,m="cycle"===e;return r(s,Object.assign({key:"4bf38aa67df9a3f977163bba5423960bbafd16de","no-router":!0,tabIndex:m&&i&&l?0:-1},a,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign({[p]:!0,"modal-default":!c&&!i,"modal-card":c,"modal-sheet":i,"modal-no-expand-scroll":i&&!h,"overlay-hidden":!0,[E]:!1===d},j(this.cssClass)),onIonBackdropTap:this.onBackdropTap,onIonModalDidPresent:this.onLifecycle,onIonModalWillPresent:this.onLifecycle,onIonModalWillDismiss:this.onLifecycle,onIonModalDidDismiss:this.onLifecycle,onFocus:this.onModalFocus}),r("ion-backdrop",{key:"866da40cc5fc8d3e36637098fb3066a5bc9f4e0f",ref:t=>this.backdropEl=t,visible:this.showBackdrop,tappable:this.backdropDismiss,part:"backdrop"}),"ios"===p&&r("div",{key:"5a2a05514ea8592c8feb0465e504aa7c7af17963",class:"modal-shadow"}),r("div",Object.assign({key:"4d327115306451f57d190b06ab8cbb6191a6f1d7",role:"dialog"},n,{"aria-modal":"true",class:"modal-wrapper ion-overlay-wrapper",part:"content",ref:t=>this.wrapperEl=t}),l&&r("button",{key:"d1882835cc049232c0d957e3ba1e79676a07d179",class:"modal-handle",tabIndex:m?0:-1,"aria-label":"Activate to adjust the size of the dialog overlaying the screen",onClick:m?this.onHandleClick:void 0,part:"handle",ref:t=>this.dragHandleEl=t}),r("slot",{key:"81dc58b09cf7d7022b04cd170f53113604364d5e",onSlotchange:this.onSlotChange})))}get el(){return n(this)}static get watchers(){return{isOpen:[{onIsOpenChange:0}],trigger:[{triggerChanged:0}]}}},pt={ionModalDidPresent:"ionViewDidEnter",ionModalWillPresent:"ionViewWillEnter",ionModalWillDismiss:"ionViewWillLeave",ionModalDidDismiss:"ionViewDidLeave"};lt.style={ios:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}',md:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}'};export{lt as ion_modal}
@@ -423,6 +423,12 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
423
423
  * when no footer is present, so ion-content's .inner-scroll includes
424
424
  * safe-area-bottom in its scroll padding. This keeps the modal background
425
425
  * edge-to-edge while ensuring content scrolls clear of the system nav bar.
426
+ *
427
+ * --ion-content-safe-area-padding-bottom is an internal CSS property used
428
+ * only by this code path. It is not part of ion-content's public API and
429
+ * should not be set by consumers. The default of 0px makes it a no-op
430
+ * when unset, which is the expected state for ion-content used outside of
431
+ * a fullscreen modal without a footer.
426
432
  */
427
433
  private applyFullscreenSafeAreaTo;
428
434
  /**
@@ -3,6 +3,6 @@ export declare class RadioFixture {
3
3
  readonly page: E2EPage;
4
4
  private radio;
5
5
  constructor(page: E2EPage);
6
- checkRadio(method: 'keyboard' | 'mouse', selector?: string): Promise<import("@utils/test/playwright").E2ELocator>;
6
+ checkRadio(method: 'keyboard' | 'mouse', selector?: string, key?: 'Space' | 'Enter'): Promise<import("@utils/test/playwright").E2ELocator>;
7
7
  expectChecked(state: boolean): Promise<void>;
8
8
  }
@@ -2,6 +2,7 @@ import type { ComponentInterface } from '../../stencil-public-runtime';
2
2
  import type { SelectModalOption } from './select-modal-interface';
3
3
  export declare class SelectModal implements ComponentInterface {
4
4
  el: HTMLIonSelectModalElement;
5
+ private pendingEnterTarget;
5
6
  header?: string;
6
7
  /**
7
8
  * The text to display on the cancel button.
@@ -12,5 +12,6 @@ export declare class SelectModalPage {
12
12
  screenshot(screenshot: ScreenshotFn, name: string): Promise<void>;
13
13
  clickOption(value: string): Promise<void>;
14
14
  pressSpaceOnOption(value: string): Promise<void>;
15
+ pressEnterOnOption(value: string): Promise<void>;
15
16
  private getOption;
16
17
  }
@@ -5,6 +5,7 @@ import type { SelectPopoverOption } from './select-popover-interface';
5
5
  */
6
6
  export declare class SelectPopover implements ComponentInterface {
7
7
  el: HTMLIonSelectPopoverElement;
8
+ private pendingEnterTarget;
8
9
  /**
9
10
  * The header text of the popover
10
11
  */
@@ -12,5 +12,6 @@ export declare class SelectPopoverPage {
12
12
  screenshot(screenshot: ScreenshotFn, name: string): Promise<void>;
13
13
  clickOption(value: string): Promise<void>;
14
14
  pressSpaceOnOption(value: string): Promise<void>;
15
+ pressEnterOnOption(value: string): Promise<void>;
15
16
  private getOption;
16
17
  }
package/hydrate/index.js CHANGED
@@ -26258,6 +26258,12 @@ class Modal {
26258
26258
  * when no footer is present, so ion-content's .inner-scroll includes
26259
26259
  * safe-area-bottom in its scroll padding. This keeps the modal background
26260
26260
  * edge-to-edge while ensuring content scrolls clear of the system nav bar.
26261
+ *
26262
+ * --ion-content-safe-area-padding-bottom is an internal CSS property used
26263
+ * only by this code path. It is not part of ion-content's public API and
26264
+ * should not be set by consumers. The default of 0px makes it a no-op
26265
+ * when unset, which is the expected state for ion-content used outside of
26266
+ * a fullscreen modal without a footer.
26261
26267
  */
26262
26268
  applyFullscreenSafeAreaTo(contentEl, hasFooter) {
26263
26269
  // Only apply for standard Ionic layouts (has ion-content but no
@@ -26322,20 +26328,20 @@ class Modal {
26322
26328
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26323
26329
  const isHandleCycle = handleBehavior === 'cycle';
26324
26330
  const isSheetModalWithHandle = isSheetModal && showHandle;
26325
- return (hAsync(Host, Object.assign({ key: 'b665328614ae3a0d27ec15ecb8334d14e0d517e7', "no-router": true,
26331
+ return (hAsync(Host, Object.assign({ key: '4bf38aa67df9a3f977163bba5423960bbafd16de', "no-router": true,
26326
26332
  // Allow the modal to be navigable when the handle is focusable
26327
26333
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26328
26334
  zIndex: `${20000 + this.overlayIndex}`,
26329
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '263b41858dc0ad44e5a84cd83cf6eaaf32a804d2', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '65eb2a58f20576941e49f5499de644b4c45ad50e', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '2817d6cc8015ad013204941fea5ee96c331841f5',
26335
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '866da40cc5fc8d3e36637098fb3066a5bc9f4e0f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '5a2a05514ea8592c8feb0465e504aa7c7af17963', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '4d327115306451f57d190b06ab8cbb6191a6f1d7',
26330
26336
  /*
26331
26337
  role and aria-modal must be used on the
26332
26338
  same element. They must also be set inside the
26333
26339
  shadow DOM otherwise ion-button will not be highlighted
26334
26340
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26335
26341
  */
26336
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '318f2c1e903cb41c977fbcce529f509c82378079', class: "modal-handle",
26342
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'd1882835cc049232c0d957e3ba1e79676a07d179', class: "modal-handle",
26337
26343
  // Prevents the handle from receiving keyboard focus when it does not cycle
26338
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'de8e6b0d4126820cc6a02be0af229a3e62afa1dd', onSlotchange: this.onSlotChange }))));
26344
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '81dc58b09cf7d7022b04cd170f53113604364d5e', onSlotchange: this.onSlotChange }))));
26339
26345
  }
26340
26346
  get el() { return getElement(this); }
26341
26347
  static get watchers() { return {
@@ -31348,6 +31354,18 @@ class RadioGroup {
31348
31354
  // to the bottom of the screen
31349
31355
  ev.preventDefault();
31350
31356
  }
31357
+ // Inside a select interface, Enter commits the focused radio
31358
+ // value (matching native <select>). The !ev.repeat guard stops
31359
+ // a held Enter on the triggering ion-select from re-committing
31360
+ // once focus lands in the opened popover/modal.
31361
+ if (ev.key === 'Enter' && inSelectInterface && !ev.repeat) {
31362
+ const previousValue = this.value;
31363
+ this.value = current.value;
31364
+ if (previousValue !== this.value) {
31365
+ this.emitValueChange(ev);
31366
+ }
31367
+ ev.preventDefault();
31368
+ }
31351
31369
  }
31352
31370
  }
31353
31371
  /** @internal */
@@ -31380,7 +31398,7 @@ class RadioGroup {
31380
31398
  const { label, labelId, el, name, value } = this;
31381
31399
  const mode = getIonMode$1(this);
31382
31400
  renderHiddenInput(true, el, name, value, false);
31383
- return (hAsync(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("slot", { key: 'd683b01c1ba34fe843c4b320bce4661a117472a5' })));
31401
+ return (hAsync(Host, { key: '377e4aa3a656cc84b742f9d7a7d4be65d20c69f5', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("slot", { key: 'c3187a2497773b4f15cea3b413b036502bcec8c0' })));
31384
31402
  }
31385
31403
  get el() { return getElement(this); }
31386
31404
  static get watchers() { return {
@@ -37469,6 +37487,10 @@ const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}ion-list.s
37469
37487
  class SelectModal {
37470
37488
  constructor(hostRef) {
37471
37489
  registerInstance(this, hostRef);
37490
+ // Tracks the option that received Enter-keydown so keyup only
37491
+ // dismisses when the press started on the same option. Prevents
37492
+ // Enter on the triggering ion-select from auto-dismissing.
37493
+ this.pendingEnterTarget = null;
37472
37494
  /**
37473
37495
  * The text to display on the cancel button.
37474
37496
  */
@@ -37518,15 +37540,22 @@ class SelectModal {
37518
37540
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { lines: "none", class: Object.assign({
37519
37541
  // TODO FW-4784
37520
37542
  'item-radio-checked': option.value === checked
37521
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
37543
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyDown: (ev) => {
37544
+ if (ev.key === 'Enter' && !ev.repeat) {
37545
+ this.pendingEnterTarget = ev.currentTarget;
37546
+ }
37547
+ }, onKeyUp: (ev) => {
37522
37548
  if (ev.key === ' ') {
37523
- /**
37524
- * Selecting a radio option with keyboard navigation,
37525
- * either through the Enter or Space keys, should
37526
- * dismiss the modal.
37527
- */
37549
+ // Space selects and dismisses in one press.
37528
37550
  this.closeModal();
37529
37551
  }
37552
+ else if (ev.key === 'Enter') {
37553
+ const shouldClose = this.pendingEnterTarget === ev.currentTarget;
37554
+ this.pendingEnterTarget = null;
37555
+ if (shouldClose) {
37556
+ this.closeModal();
37557
+ }
37558
+ }
37530
37559
  } }, option.text))))));
37531
37560
  }
37532
37561
  renderCheckboxOptions() {
@@ -37539,7 +37568,7 @@ class SelectModal {
37539
37568
  } }, option.text))));
37540
37569
  }
37541
37570
  render() {
37542
- return (hAsync(Host, { key: 'f8a4cd6ff23ff01eaa1bdaf3c046814e7b30b23b', class: getIonMode$1(this) }, hAsync("ion-header", { key: '9e29a7e57ad5cf332641111882f16852187ec8ba' }, hAsync("ion-toolbar", { key: 'e6af5d6eabbf4b10799fc8a0b8f91d29b12d41f5' }, this.header !== undefined && hAsync("ion-title", { key: '6056e52d15dbf307571d25e0305d67228a79237d' }, this.header), hAsync("ion-buttons", { key: 'c9aa4fb2e21a93f3a95c5a8f0ba8b7d5553c5a72', slot: "end" }, hAsync("ion-button", { key: '5ffbf512719bcb053b652fc96b1b6154d0593095', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: '0ec9098798a4e6de7a83a0a7e9d10bdcd7c98a78' }, hAsync("ion-list", { key: 'd60b1700d3c2f8655951632de810900707a101f0' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
37571
+ return (hAsync(Host, { key: 'fda0bf6f93cd5ec9f3c64f88a52de849e0e140a2', class: getIonMode$1(this) }, hAsync("ion-header", { key: '27c0b17175a53db9ff159feeeb96451a3f011dab' }, hAsync("ion-toolbar", { key: '91a4155ebc317fbc9f1bb3e26a7e94754b953c9b' }, this.header !== undefined && hAsync("ion-title", { key: 'f6dae8e4e381f322cc90efefd9bb6ef81d4d2f3e' }, this.header), hAsync("ion-buttons", { key: 'e7760532fb2e7e7385ed6e62097d92d96ff20148', slot: "end" }, hAsync("ion-button", { key: '4999b6fc46cba138186546dca67b7950855e6fb7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'c73f80a4bc25b9061ea65cf11e5d811c1a4d8704' }, hAsync("ion-list", { key: 'b21905d15b36ad5eb45845e768918d2763cf48b1' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
37543
37572
  }
37544
37573
  get el() { return getElement(this); }
37545
37574
  static get style() { return {
@@ -37602,6 +37631,10 @@ const selectPopoverMdCss = () => `.sc-ion-select-popover-md-h ion-list.sc-ion-se
37602
37631
  class SelectPopover {
37603
37632
  constructor(hostRef) {
37604
37633
  registerInstance(this, hostRef);
37634
+ // Tracks the option that received Enter-keydown so keyup only
37635
+ // dismisses when the press started on the same option. Prevents
37636
+ // Enter on the triggering ion-select from auto-dismissing.
37637
+ this.pendingEnterTarget = null;
37605
37638
  /**
37606
37639
  * An array of options for the popover
37607
37640
  */
@@ -37677,21 +37710,28 @@ class SelectPopover {
37677
37710
  return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) => (hAsync("ion-item", { class: Object.assign({
37678
37711
  // TODO FW-4784
37679
37712
  'item-radio-checked': option.value === checked
37680
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyUp: (ev) => {
37713
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
37714
+ if (ev.key === 'Enter' && !ev.repeat) {
37715
+ this.pendingEnterTarget = ev.currentTarget;
37716
+ }
37717
+ }, onKeyUp: (ev) => {
37681
37718
  if (ev.key === ' ') {
37682
- /**
37683
- * Selecting a radio option with keyboard navigation,
37684
- * either through the Enter or Space keys, should
37685
- * dismiss the popover.
37686
- */
37719
+ // Space selects and dismisses in one press.
37687
37720
  this.dismissParentPopover();
37688
37721
  }
37722
+ else if (ev.key === 'Enter') {
37723
+ const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
37724
+ this.pendingEnterTarget = null;
37725
+ if (shouldDismiss) {
37726
+ this.dismissParentPopover();
37727
+ }
37728
+ }
37689
37729
  } }, option.text))))));
37690
37730
  }
37691
37731
  render() {
37692
37732
  const { header, message, options, subHeader } = this;
37693
37733
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
37694
- return (hAsync(Host, { key: '0c9845a40d3fc392b0a7d64e2a6ed27d94bb7634', class: getIonMode$1(this) }, hAsync("ion-list", { key: '84a30f6661b0f8c00e6fa199658ed2adbcf27358' }, header !== undefined && hAsync("ion-list-header", { key: '13f5f56bbfbc06751fa516291a2da72629b60ece' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '3d39d18e720e798bbde334e79e6832091c7dfb81' }, hAsync("ion-label", { key: 'd3051b0d140120b44bf5e79572f6f287e7cfb03a', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'b16805956f3316f8ec703c123b76f717488e8637' }, subHeader), message !== undefined && hAsync("p", { key: '2215ac4ab4146a14e75a79192e319a8016286b5f' }, message)))), this.renderOptions(options))));
37734
+ return (hAsync(Host, { key: 'e7449a1ecfcdbf45a79f8e26a00253c4e146448a', class: getIonMode$1(this) }, hAsync("ion-list", { key: '52abdfc8668c3429a0dcefef8ddedb6647fdd894' }, header !== undefined && hAsync("ion-list-header", { key: '978e5c03728756feafcc60a0e10e6ec59bf2ae11' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e93c44e7f07a76def16e4b11f0fb4780d84ed402' }, hAsync("ion-label", { key: 'bba1aac43b0bc7f4f00978dd8301985233f3725c', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ad96f6017cf2cc5219540bded2c4f1ca3b532de2' }, subHeader), message !== undefined && hAsync("p", { key: '3fd038921dc40c4d0c29734433984b279ccaeec3' }, message)))), this.renderOptions(options))));
37695
37735
  }
37696
37736
  get el() { return getElement(this); }
37697
37737
  static get style() { return {