voyager-ionic-core 8.8.4 → 8.8.5

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 (61) hide show
  1. package/components/ion-action-sheet.js +1 -1
  2. package/components/ion-content.js +1 -1
  3. package/components/ion-modal.js +1 -1
  4. package/components/ion-radio-group.js +1 -1
  5. package/components/ion-select-modal.js +1 -1
  6. package/components/ion-select-popover.js +1 -1
  7. package/components/ion-select.js +1 -1
  8. package/components/p-0z8QSI5b.js +4 -0
  9. package/components/{p-ApmKVjaE.js → p-BGHGpkPX.js} +1 -1
  10. package/components/p-BlNv564p.js +4 -0
  11. package/components/p-D-cP12ZN.js +4 -0
  12. package/components/p-D3Ti70Hx.js +4 -0
  13. package/components/{p-Bk2zuNWT.js → p-DvOO1fxp.js} +1 -1
  14. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  15. package/dist/cjs/ion-app_8.cjs.entry.js +1 -1
  16. package/dist/cjs/ion-modal.cjs.entry.js +99 -45
  17. package/dist/cjs/ion-radio_2.cjs.entry.js +13 -1
  18. package/dist/cjs/ion-select-modal.cjs.entry.js +18 -7
  19. package/dist/cjs/ion-select_3.cjs.entry.js +18 -7
  20. package/dist/collection/components/action-sheet/action-sheet.js +4 -4
  21. package/dist/collection/components/content/content.css +1 -1
  22. package/dist/collection/components/modal/modal.js +73 -44
  23. package/dist/collection/components/modal/safe-area-utils.js +27 -2
  24. package/dist/collection/components/radio-group/radio-group.js +13 -1
  25. package/dist/collection/components/radio-group/test/fixtures.js +2 -2
  26. package/dist/collection/components/select-modal/select-modal.js +18 -7
  27. package/dist/collection/components/select-modal/test/fixtures.js +4 -0
  28. package/dist/collection/components/select-popover/select-popover.js +18 -7
  29. package/dist/collection/components/select-popover/test/fixtures.js +4 -0
  30. package/dist/docs.json +1 -1
  31. package/dist/esm/ion-action-sheet.entry.js +4 -4
  32. package/dist/esm/ion-app_8.entry.js +1 -1
  33. package/dist/esm/ion-modal.entry.js +99 -45
  34. package/dist/esm/ion-radio_2.entry.js +13 -1
  35. package/dist/esm/ion-select-modal.entry.js +18 -7
  36. package/dist/esm/ion-select_3.entry.js +18 -7
  37. package/dist/ionic/ionic.esm.js +1 -1
  38. package/dist/ionic/p-268a3397.entry.js +4 -0
  39. package/dist/ionic/p-28a9e720.entry.js +4 -0
  40. package/dist/ionic/{p-4dd5e8e0.entry.js → p-8fda6a62.entry.js} +1 -1
  41. package/dist/ionic/{p-9eac4eb1.entry.js → p-aa812c4b.entry.js} +1 -1
  42. package/dist/ionic/p-cb27fe68.entry.js +4 -0
  43. package/dist/ionic/p-ce2edb36.entry.js +4 -0
  44. package/dist/types/components/modal/modal.d.ts +41 -3
  45. package/dist/types/components/modal/safe-area-utils.d.ts +16 -0
  46. package/dist/types/components/radio-group/test/fixtures.d.ts +1 -1
  47. package/dist/types/components/select-modal/select-modal.d.ts +1 -0
  48. package/dist/types/components/select-modal/test/fixtures.d.ts +1 -0
  49. package/dist/types/components/select-popover/select-popover.d.ts +1 -0
  50. package/dist/types/components/select-popover/test/fixtures.d.ts +1 -0
  51. package/hydrate/index.js +153 -65
  52. package/hydrate/index.mjs +153 -65
  53. package/package.json +1 -1
  54. package/components/p-1KVKSLu5.js +0 -4
  55. package/components/p-BI7WNErr.js +0 -4
  56. package/components/p-BTF2nRLo.js +0 -4
  57. package/components/p-EK4xUz-q.js +0 -4
  58. package/dist/ionic/p-51c11c47.entry.js +0 -4
  59. package/dist/ionic/p-5681dde4.entry.js +0 -4
  60. package/dist/ionic/p-cb78f5a0.entry.js +0 -4
  61. package/dist/ionic/p-e6c5f060.entry.js +0 -4
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import{r as t,e as o,f as i,h as e,d as n,g as r,c as a,a as s,i as l,w as d,j as c}from"./p-IGIE5vDm.js";import{shouldUseCloseWatcher as b}from"./p-DB_iPQC-.js";import{a as h,b as p}from"./p-NFFyoJ4Q.js";import{i as g,h as m,c as f,e as u,s as x}from"./p-CGmVTdWh.js";import{i as v}from"./p-C53feagD.js";import{c as k,h as w}from"./p-DiVJyqlX.js";import{a as y,p as z,g as C}from"./p-B8xlpH8p.js";import{c as j}from"./p-CtWGkNnJ.js";import{g as T}from"./p-hHmYLOfE.js";import{a as B,d as S}from"./p-CmFz1Mjc.js";import{c as Z}from"./p-B-hirT0v.js";import{t as D}from"./p-BW_TRJm8.js";import"./p-ZjP4CjeZ.js";import"./p-D13Eaw-8.js";import"./p-CIGNaXM1.js";const $=class{constructor(o){t(this,o)}componentDidLoad(){this.rIC((async()=>{const t=h(window,"hybrid");if(o.getBoolean("_testing")||import("./p-CYbRmDdy.js").then((t=>t.startTapClick(o))),o.getBoolean("statusTap",t)&&import("./p-CtA-yJYy.js").then((t=>t.startStatusTap())),o.getBoolean("inputShims",E())){const t=h(window,"ios")?"ios":"android";import("./p-CYvM5g3q.js").then((i=>i.startInputShims(o,t)))}const e=await import("./p-DB_iPQC-.js"),n=t||b();o.getBoolean("hardwareBackButton",n)?e.startHardwareBackButton():(b()&&i("[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used."),e.blockHardwareBackButton()),"undefined"!=typeof window&&import("./p-9eeaBrnk.js").then((t=>t.startKeyboardAssist(window))),import("./p-BmVRXR1y.js").then((t=>this.focusVisible=t.startFocusVisible()))}))}disconnectedCallback(){this.loadTimeout&&clearTimeout(this.loadTimeout)}async setFocus(t){this.focusVisible&&this.focusVisible.setFocus(t)}rIC(t){"requestIdleCallback"in window?window.requestIdleCallback(t):this.loadTimeout=setTimeout(t,32)}render(){const t=p(this);return e(n,{key:"77a7459d3e42b3715a5a7e1cf468e2ebc99e54bb",class:{[t]:!0,"ion-page":!0,"force-statusbar-padding":o.getBoolean("_forceStatusbarPadding")}})}get el(){return r(this)}},E=()=>!(!h(window,"ios")||!h(window,"mobile"))||!(!h(window,"android")||!h(window,"mobileweb"));$.style="html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}";const _=class{constructor(o){t(this,o),this.collapse=!1}render(){const t=p(this);return e(n,{key:"58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b",class:{[t]:!0,"buttons-collapse":this.collapse}},e("slot",{key:"0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8"}))}};_.style={ios:".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}",md:".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}"};const I=class{constructor(o){t(this,o),this.ionScrollStart=a(this,"ionScrollStart",7),this.ionScroll=a(this,"ionScroll",7),this.ionScrollEnd=a(this,"ionScrollEnd",7),this.watchDog=null,this.isScrolling=!1,this.lastScroll=0,this.queued=!1,this.cTop=-1,this.cBottom=-1,this.isMainContent=!0,this.resizeTimeout=null,this.inheritedAttributes={},this.tabsElement=null,this.detail={scrollTop:0,scrollLeft:0,type:"scroll",event:void 0,startX:0,startY:0,startTime:0,currentX:0,currentY:0,velocityX:0,velocityY:0,deltaX:0,deltaY:0,currentTime:0,data:void 0,isScrolling:!0},this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}componentWillLoad(){this.inheritedAttributes=g(this.el)}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),m(this.el)){const t=this.tabsElement=this.el.closest("ion-tabs");null!==t&&(this.tabsLoadCallback=()=>this.resize(),t.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}}disconnectedCallback(){if(this.onScrollEnd(),m(this.el)){const{tabsElement:t,tabsLoadCallback:o}=this;null!==t&&void 0!==o&&t.removeEventListener("ionTabBarLoaded",o),this.tabsElement=null,this.tabsLoadCallback=void 0}this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null)}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(){const{forceOverscroll:t}=this,o=p(this);return void 0===t?"ios"===o&&h("ios"):t}resize(){this.fullscreen?s((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,l(this))}async recalculateDimensions(){s((()=>this.readDimensions()))}readDimensions(){const t=L(this.el),o=Math.max(this.el.offsetTop,0),i=Math.max(t.offsetHeight-o-this.el.offsetHeight,0);(o!==this.cTop||i!==this.cBottom)&&(this.cTop=o,this.cBottom=i,l(this))}onScroll(t){const o=Date.now(),i=!this.isScrolling;this.lastScroll=o,i&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,s((o=>{this.queued=!1,this.detail.event=t,M(this.detail,this.scrollEl,o,i),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((t=>f(this.el,t))),Promise.resolve(this.backgroundContentEl)}scrollToTop(t=0){return this.scrollToPoint(void 0,0,t)}async scrollToBottom(t=0){const o=await this.getScrollElement();return this.scrollToPoint(void 0,o.scrollHeight-o.clientHeight,t)}async scrollByPoint(t,o,i){const e=await this.getScrollElement();return this.scrollToPoint(t+e.scrollLeft,o+e.scrollTop,i)}async scrollToPoint(t,o,i=0){const e=await this.getScrollElement();if(i<32)return null!=o&&(e.scrollTop=o),void(null!=t&&(e.scrollLeft=t));let n,r=0;const a=new Promise((t=>n=t)),s=e.scrollTop,l=e.scrollLeft,d=null!=o?o-s:0,c=null!=t?t-l:0,b=t=>{const o=Math.min(1,(t-r)/i)-1,a=Math.pow(o,3)+1;0!==d&&(e.scrollTop=Math.floor(a*d+s)),0!==c&&(e.scrollLeft=Math.floor(a*c+l)),a<1?requestAnimationFrame(b):n()};return requestAnimationFrame((t=>{r=t,b(t)})),a}onScrollStart(){this.isScrolling=!0,this.ionScrollStart.emit({isScrolling:!0}),this.watchDog&&clearInterval(this.watchDog),this.watchDog=setInterval((()=>{this.lastScroll<Date.now()-120&&this.onScrollEnd()}),100)}onScrollEnd(){this.watchDog&&clearInterval(this.watchDog),this.watchDog=null,this.isScrolling&&(this.isScrolling=!1,this.ionScrollEnd.emit({isScrolling:!1}))}render(){const{fixedSlotPlacement:t,inheritedAttributes:o,isMainContent:i,scrollX:r,scrollY:a,el:s}=this,l=v(s)?"rtl":"ltr",d=p(this),c=this.shouldForceOverscroll(),b="ios"===d;return this.resize(),e(n,Object.assign({key:"8c1bc4a4df8698d3884741eb38512dc059210c50",role:i?"main":void 0,class:k(this.color,{[d]:!0,"content-fullscreen":this.fullscreen,"content-sizing":w("ion-popover",this.el),overscroll:c,[`content-${l}`]:!0}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`}},o),e("div",{key:"5e7412549b51ef7543d9378ecab9aac6bc461588",ref:t=>this.backgroundContentEl=t,id:"background-content",part:"background"}),"before"===t?e("slot",{name:"fixed"}):null,e("div",{key:"33f6fbf7e1e027c7cbd2dda95b487f18dc648cef",class:{"inner-scroll":!0,"scroll-x":r,"scroll-y":a,overscroll:(r||a)&&c},ref:t=>this.scrollEl=t,onScroll:this.scrollEvents?t=>this.onScroll(t):void 0,part:"scroll"},e("slot",{key:"00c8fe7b9e73533c702273c9457d274195d54e98"})),b?e("div",{class:"transition-effect"},e("div",{class:"transition-cover"}),e("div",{class:"transition-shadow"})):null,"after"===t?e("slot",{name:"fixed"}):null)}get el(){return r(this)}},L=t=>{const o=t.closest("ion-tabs");if(o)return o;return t.closest("ion-app, ion-page, .ion-page, page-inner, .popover-content")||(t=>{var o;return t.parentElement?t.parentElement:(null===(o=t.parentNode)||void 0===o?void 0:o.host)?t.parentNode.host:null})(t)},M=(t,o,i,e)=>{const n=t.currentX,r=t.currentY,a=o.scrollLeft,s=o.scrollTop,l=i-t.currentTime;if(e&&(t.startTime=i,t.startX=a,t.startY=s,t.velocityX=t.velocityY=0),t.currentTime=i,t.currentX=t.scrollLeft=a,t.currentY=t.scrollTop=s,t.deltaX=a-t.startX,t.deltaY=s-t.startY,l>0&&l<100){const o=(s-r)/l;t.velocityX=(a-n)/l*.7+.3*t.velocityX,t.velocityY=.7*o+.3*t.velocityY}};I.style=':host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--ion-content-safe-area-padding-bottom, 0px));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}';const O=(t,o)=>{s((()=>{const i=u(0,1-(t.scrollTop-(t.scrollHeight-t.clientHeight-10))/10,1);d((()=>{o.style.setProperty("--opacity-scale",i.toString())}))}))},P=class{constructor(o){t(this,o),this.keyboardCtrl=null,this.keyboardCtrlPromise=null,this.keyboardVisible=!1,this.translucent=!1,this.checkCollapsibleFooter=()=>{if("ios"!==p(this))return;const{collapse:t}=this,o="fade"===t;if(this.destroyCollapsibleFooter(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);this.setupFadeFooter(o)}},this.setupFadeFooter=async t=>{const o=this.scrollEl=await C(t);this.contentScrollCallback=()=>{O(o,this.el)},o.addEventListener("scroll",this.contentScrollCallback),O(o,this.el)}}componentDidLoad(){this.checkCollapsibleFooter()}componentDidUpdate(){this.checkCollapsibleFooter()}async connectedCallback(){const t=j((async(t,o)=>{!1===t&&void 0!==o&&await o,this.keyboardVisible=t}));this.keyboardCtrlPromise=t;const o=await t;this.keyboardCtrlPromise===t?(this.keyboardCtrl=o,this.keyboardCtrlPromise=null):o.destroy()}disconnectedCallback(){this.keyboardCtrlPromise&&(this.keyboardCtrlPromise.then((t=>t.destroy())),this.keyboardCtrlPromise=null),this.keyboardCtrl&&(this.keyboardCtrl.destroy(),this.keyboardCtrl=null)}destroyCollapsibleFooter(){this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0)}render(){const{translucent:t,collapse:o}=this,i=p(this),r=this.el.closest("ion-tabs"),a=null==r?void 0:r.querySelector(":scope > ion-tab-bar");return e(n,{key:"71939c4bbaef5062532a99ee2e33574102a9abad",role:"contentinfo",class:{[i]:!0,[`footer-${i}`]:!0,"footer-translucent":t,[`footer-translucent-${i}`]:t,"footer-toolbar-padding":!(this.keyboardVisible||a&&"bottom"===a.slot),[`footer-collapse-${o}`]:void 0!==o}},"ios"===i&&t&&e("div",{key:"2fa14f61661c47c661cecd696176728d6eafa74f",class:"footer-background"}),e("slot",{key:"8e63696e7c528d5c38201e546bf08135290d0945"}))}get el(){return r(this)}};P.style={ios:"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}",md:"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const W="none",A="banner",X=t=>{const o=document.querySelector(`${t}.ion-cloned-element`);if(null!==o)return o;const i=document.createElement(t);return i.classList.add("ion-cloned-element"),i.style.setProperty("display","none"),document.body.appendChild(i),i},Y=t=>{if(!t)return;const o=t.querySelectorAll("ion-toolbar");return{el:t,toolbars:Array.from(o).map((t=>{const o=t.querySelector("ion-title");return{el:t,background:t.shadowRoot.querySelector(".toolbar-background"),ionTitleEl:o,innerTitleEl:o?o.shadowRoot.querySelector(".toolbar-title"):null,ionButtonsEl:Array.from(t.querySelectorAll("ion-buttons"))}}))}},F=(t,o)=>{"fade"!==t.collapse&&(void 0===o?t.style.removeProperty("--opacity-scale"):t.style.setProperty("--opacity-scale",o.toString()))},H=(t,o=!0)=>{const i=t.el,e=t.toolbars.map((t=>t.ionTitleEl));o?(i.setAttribute("role",A),i.classList.remove("header-collapse-condense-inactive"),e.forEach((t=>{t&&t.removeAttribute("aria-hidden")}))):(i.setAttribute("role",W),i.classList.add("header-collapse-condense-inactive"),e.forEach((t=>{t&&t.setAttribute("aria-hidden","true")})))},R=(t,o,i)=>{s((()=>{const e=t.scrollTop,n=o.clientHeight,r=i?i.clientHeight:0;if(null!==i&&e<r)return o.style.setProperty("--opacity-scale","0"),void t.style.setProperty("clip-path",`inset(${n}px 0px 0px 0px)`);const a=u(0,(e-r)/10,1);d((()=>{t.style.removeProperty("clip-path"),o.style.setProperty("--opacity-scale",a.toString())}))}))},q=class{constructor(o){t(this,o),this.inheritedAttributes={},this.translucent=!1,this.setupFadeHeader=async(t,o)=>{const i=this.scrollEl=await C(t);this.contentScrollCallback=()=>{R(this.scrollEl,this.el,o)},i.addEventListener("scroll",this.contentScrollCallback),R(this.scrollEl,this.el,o)}}componentWillLoad(){this.inheritedAttributes=g(this.el)}componentDidLoad(){this.checkCollapsibleHeader()}componentDidUpdate(){this.checkCollapsibleHeader()}disconnectedCallback(){this.destroyCollapsibleHeader()}async checkCollapsibleHeader(){if("ios"!==p(this))return;const{collapse:t}=this,o="condense"===t,i="fade"===t;if(this.destroyCollapsibleHeader(),o){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;d((()=>{X("ion-title").size="large",X("ion-back-button")})),await this.setupCondenseHeader(o,t)}else if(i){const t=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),o=t?y(t):null;if(!o)return void z(this.el);const i=o.querySelector('ion-header[collapse="condense"]');await this.setupFadeHeader(o,i)}}destroyCollapsibleHeader(){this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=void 0),this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0),this.collapsibleMainHeader&&(this.collapsibleMainHeader.classList.remove("header-collapse-main"),this.collapsibleMainHeader=void 0)}async setupCondenseHeader(t,o){if(!t||!o)return void z(this.el);if("undefined"==typeof IntersectionObserver)return;this.scrollEl=await C(t);const i=o.querySelectorAll("ion-header");if(this.collapsibleMainHeader=Array.from(i).find((t=>"condense"!==t.collapse)),!this.collapsibleMainHeader)return;const e=Y(this.collapsibleMainHeader),n=Y(this.el);e&&n&&(H(e,!1),F(e.el,0),this.intersectionObserver=new IntersectionObserver((t=>{((t,o,i,e)=>{d((()=>{const n=e.scrollTop;((t,o,i)=>{if(!t[0].isIntersecting)return;const e=t[0].intersectionRatio>.9||i<=0?0:100*(1-t[0].intersectionRatio)/75;F(o.el,1===e?void 0:e)})(t,o,n);const r=t[0],a=r.intersectionRect,s=a.width*a.height,l=0===s&&0==r.rootBounds.width*r.rootBounds.height,d=Math.abs(a.left-r.boundingClientRect.left),c=Math.abs(a.right-r.boundingClientRect.right);l||s>0&&(d>=5||c>=5)||(r.isIntersecting?(H(o,!1),H(i)):(0===a.x&&0===a.y||0!==a.width&&0!==a.height)&&n>0&&(H(o),H(i,!1),F(o.el)))}))})(t,e,n,this.scrollEl)}),{root:t,threshold:[.25,.3,.4,.5,.6,.7,.8,.9,1]}),this.intersectionObserver.observe(n.toolbars[n.toolbars.length-1].el),this.contentScrollCallback=()=>{((t,o,i)=>{s((()=>{const e=u(1,1+-t.scrollTop/500,1.1);null===i.querySelector("ion-refresher.refresher-native")&&d((()=>{((t=[],o=1,i=!1)=>{t.forEach((t=>{const e=t.ionTitleEl,n=t.innerTitleEl;e&&"large"===e.size&&(n.style.transition=i?"all 0.2s ease-in-out":"",n.style.transform=`scale3d(${o}, ${o}, 1)`)}))})(o.toolbars,e)}))}))})(this.scrollEl,n,t)},this.scrollEl.addEventListener("scroll",this.contentScrollCallback),d((()=>{void 0!==this.collapsibleMainHeader&&this.collapsibleMainHeader.classList.add("header-collapse-main")})))}render(){const{translucent:t,inheritedAttributes:o}=this,i=p(this),r=this.collapse||"none",a="condense"===r,s=((t,o,i)=>t||o&&"md"===i?W:A)(w("ion-menu",this.el),a,i);return e(n,Object.assign({key:"863c4568cd7b8c0ec55109f193bbbaed68a1346e",role:s,class:{[i]:!0,[`header-${i}`]:!0,"header-translucent":this.translucent,[`header-collapse-${r}`]:!0,[`header-translucent-${i}`]:this.translucent}},o),"ios"===i&&t&&e("div",{key:"25c3bdce328b0b35607d154c8b8374679313d881",class:"header-background"}),e("slot",{key:"b44fab0a9be7920b9650da26117c783e751e1702"}))}get el(){return r(this)}};q.style={ios:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}",md:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const N=class{constructor(o){t(this,o),this.ionNavWillLoad=a(this,"ionNavWillLoad",7),this.ionNavWillChange=a(this,"ionNavWillChange",3),this.ionNavDidChange=a(this,"ionNavDidChange",3),this.lockController=Z(),this.gestureOrAnimationInProgress=!1,this.mode=p(this),this.animated=!0}swipeHandlerChanged(){this.gesture&&this.gesture.enable(void 0!==this.swipeHandler)}async connectedCallback(){const t=()=>{this.gestureOrAnimationInProgress=!0,this.swipeHandler&&this.swipeHandler.onStart()};this.gesture=(await import("./p-Dt1wGZdq.js")).createSwipeBackGesture(this.el,(()=>!this.gestureOrAnimationInProgress&&!!this.swipeHandler&&this.swipeHandler.canStart()),(()=>t()),(t=>{var o;return null===(o=this.ani)||void 0===o?void 0:o.progressStep(t)}),((t,o,i)=>{if(this.ani){this.ani.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(t)}),{oneTimeCallback:!0});let e=t?-.001:.001;t?(this.ani.easing("linear"),e+=o):(this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"),e+=T([0,0],[1,0],[.68,.28],[1,1],o)[0]),this.ani.progressEnd(t?1:0,e,i)}else this.gestureOrAnimationInProgress=!1})),this.swipeHandlerChanged()}componentWillLoad(){this.ionNavWillLoad.emit()}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}async commit(t,o,i){const e=await this.lockController.lock();let n=!1;try{n=await this.transition(t,o,i)}catch(t){c("[ion-router-outlet] - Exception in commit:",t)}return e(),n}async setRouteId(t,o,i,e){return{changed:await this.setRoot(t,o,{duration:"root"===i?0:void 0,direction:"back"===i?"back":"forward",animationBuilder:e}),element:this.activeEl}}async getRouteId(){const t=this.activeEl;return t?{id:t.tagName,element:t,params:this.activeParams}:void 0}async setRoot(t,o,i){if(this.activeComponent===t&&x(o,this.activeParams))return!1;const e=this.activeEl,n=await B(this.delegate,this.el,t,["ion-page","ion-page-invisible"],o);return this.activeComponent=t,this.activeEl=n,this.activeParams=o,await this.commit(n,e,i),await S(this.delegate,e),!0}async transition(t,i,e={}){if(i===t)return!1;this.ionNavWillChange.emit();const{el:n,mode:r}=this,a=this.animated&&o.getBoolean("animated",!0),s=e.animationBuilder||this.animation||o.get("navAnimation");return await D(Object.assign(Object.assign({mode:r,animated:a,enteringEl:t,leavingEl:i,baseEl:n,deepWait:m(n),progressCallback:e.progressAnimation?t=>{void 0===t||this.gestureOrAnimationInProgress?this.ani=t:(this.gestureOrAnimationInProgress=!0,t.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(!1)}),{oneTimeCallback:!0}),t.progressEnd(0,0,0))}:void 0},e),{animationBuilder:s})),this.ionNavDidChange.emit(),!0}render(){return e("slot",{key:"1feffa5a5e225dc0ee28f320e1e979ad8b1d2f11"})}get el(){return r(this)}static get watchers(){return{swipeHandler:[{swipeHandlerChanged:0}]}}};N.style=":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}";const G=class{constructor(o){t(this,o),this.ionStyle=a(this,"ionStyle",7)}sizeChanged(){this.emitStyle()}connectedCallback(){this.emitStyle()}emitStyle(){const t=this.getSize();this.ionStyle.emit({[`title-${t}`]:!0})}getSize(){return void 0!==this.size?this.size:"default"}render(){const t=p(this),o=this.getSize();return e(n,{key:"44e63f8439df64c470692904427b417e19406476",class:k(this.color,{[t]:!0,[`title-${o}`]:!0,"title-rtl":"rtl"===document.dir})},e("div",{key:"784cf60a0db16045391891cc8fad0c7dbeba4039",class:"toolbar-title"},e("slot",{key:"0c720a50479ba257e8756337aeb9b0ab7516a227"})))}get el(){return r(this)}static get watchers(){return{size:[{sizeChanged:0}]}}};G.style={ios:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}",md:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}"};const J=class{constructor(o){t(this,o),this.childrenStyles=new Map}componentWillLoad(){const t=Array.from(this.el.querySelectorAll("ion-buttons")),o=t.find((t=>"start"===t.slot));o&&o.classList.add("buttons-first-slot");const i=t.reverse(),e=i.find((t=>"end"===t.slot))||i.find((t=>"primary"===t.slot))||i.find((t=>"secondary"===t.slot));e&&e.classList.add("buttons-last-slot")}childrenStyle(t){t.stopPropagation();const o=t.target.tagName,i=t.detail,e={},n=this.childrenStyles.get(o)||{};let r=!1;Object.keys(i).forEach((t=>{const o=`toolbar-${t}`,a=i[t];a!==n[o]&&(r=!0),a&&(e[o]=!0)})),r&&(this.childrenStyles.set(o,e),l(this))}render(){const t=p(this),o={};return this.childrenStyles.forEach((t=>{Object.assign(o,t)})),e(n,{key:"b849db2863778dee6c5a251bffa1b3a657aeb036",class:Object.assign(Object.assign({},o),k(this.color,{[t]:!0,"in-toolbar":w("ion-toolbar",this.el)}))},e("div",{key:"67f5bba9c4f527c3f35bfe1313a2b85741f9b246",class:"toolbar-background",part:"background"}),e("div",{key:"085e8c68f056e5b0deb9d1606431fbeb45dae8e5",class:"toolbar-container",part:"container"},e("slot",{key:"15227c79c3baf883fd8c43fdb7e1313453933c79",name:"start"}),e("slot",{key:"0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8",name:"secondary"}),e("div",{key:"57e4628c1fa89df79dd80456259db961bb691404",class:"toolbar-content",part:"content"},e("slot",{key:"82c2f6e1acf8d96db259bd8baf295881801edbd5"})),e("slot",{key:"b2d4afb15214199f206c0a5e08b581e4c9c2f58a",name:"primary"}),e("slot",{key:"bfb909a0c472f8834046c2ea23bef2f562167ad3",name:"end"})))}get el(){return r(this)}};J.style={ios:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}",md:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}"};export{$ as ion_app,_ as ion_buttons,I as ion_content,P as ion_footer,q as ion_header,N as ion_router_outlet,G as ion_title,J as ion_toolbar}
@@ -382,6 +382,11 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
382
382
  private onDragEnd;
383
383
  /**
384
384
  * Creates the context object for safe-area utilities.
385
+ *
386
+ * `hasCustomDimensions` is only set by `setInitialSafeAreaOverrides()`
387
+ * because it is only read by `getInitialSafeAreaConfig()`. Other callers
388
+ * (resize handler, post-animation update, fullscreen-padding apply) would
389
+ * pay a `getComputedStyle()` cost for a value they never consult.
385
390
  */
386
391
  private getSafeAreaContext;
387
392
  /**
@@ -407,12 +412,45 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
407
412
  */
408
413
  private updateSafeAreaOverrides;
409
414
  /**
410
- * Applies padding-bottom to fullscreen modal wrapper to prevent
411
- * content from overlapping system navigation bar.
415
+ * Applies safe-area-bottom scroll padding to ion-content inside
416
+ * fullscreen modals that have no ion-footer. This prevents content
417
+ * from being hidden behind the system navigation bar while keeping
418
+ * the modal background edge-to-edge (no visible gap).
412
419
  */
413
420
  private applyFullscreenSafeArea;
414
421
  /**
415
- * Clears all safe-area overrides and padding from wrapper.
422
+ * Sets --ion-content-safe-area-padding-bottom on the given ion-content
423
+ * when no footer is present, so ion-content's .inner-scroll includes
424
+ * safe-area-bottom in its scroll padding. This keeps the modal background
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.
432
+ */
433
+ private applyFullscreenSafeAreaTo;
434
+ /**
435
+ * Removes the internal --ion-content-safe-area-padding-bottom property
436
+ * from an already-located ion-content. Callers do their own
437
+ * findContentAndFooter() so they can also read hasFooter if needed.
438
+ */
439
+ private clearContentSafeAreaPadding;
440
+ /**
441
+ * Finds ion-content and ion-footer among direct children and one level of
442
+ * grandchildren (for wrapped components like <app-footer><ion-footer>).
443
+ *
444
+ * Intentionally does NOT use findIonContent() or querySelector() because
445
+ * those search the full subtree and would match ion-content inside nested
446
+ * routes/pages. We only want direct slot children (+ one wrapper level).
447
+ *
448
+ * Uses a manual loop instead of querySelector(':scope > ...') because
449
+ * Stencil's mock-doc (used in spec tests) does not support :scope.
450
+ */
451
+ private findContentAndFooter;
452
+ /**
453
+ * Clears all safe-area overrides and padding.
416
454
  */
417
455
  private cleanupSafeAreaOverrides;
418
456
  render(): any;
@@ -18,6 +18,11 @@ export interface ModalSafeAreaContext {
18
18
  presentingElement?: HTMLElement;
19
19
  breakpoints?: number[];
20
20
  currentBreakpoint?: number;
21
+ /**
22
+ * Only consulted by `getInitialSafeAreaConfig()`. Callers that only use the
23
+ * context for non-initial paths can omit this. See `hasCustomModalDimensions()`.
24
+ */
25
+ hasCustomDimensions?: boolean;
21
26
  }
22
27
  /**
23
28
  * Resolves the current root --ion-safe-area-top value to pixels.
@@ -28,6 +33,17 @@ export interface ModalSafeAreaContext {
28
33
  * Results are cached for the current frame to avoid repeated reflows.
29
34
  */
30
35
  export declare const getRootSafeAreaTop: () => number;
36
+ /**
37
+ * True when the modal host declares BOTH a non-fullscreen `--width` AND a
38
+ * non-fullscreen `--height` (i.e. a centered-dialog-like modal that doesn't
39
+ * touch any screen edge).
40
+ *
41
+ * The conservative "both axes" check avoids mis-zeroing safe-area for
42
+ * partial-custom modals where the modal still touches top/bottom edges
43
+ * (e.g. only `--width` overridden). Partial cases fall through to the
44
+ * existing position-based post-animation correction.
45
+ */
46
+ export declare const hasCustomModalDimensions: (hostEl: HTMLElement) => boolean;
31
47
  /**
32
48
  * Returns the initial safe-area configuration based on modal type.
33
49
  * This is called before animation starts and uses configuration-based prediction.
@@ -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
  }