@ionic/core 9.0.11-dev.11793726772.1e883321 → 9.0.11-dev.11793728481.1fc40367

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 (47) hide show
  1. package/components/ion-content.js +1 -1
  2. package/components/ion-datetime-button.js +1 -1
  3. package/components/ion-datetime.js +1 -1
  4. package/components/ion-select-modal.js +1 -1
  5. package/components/ion-select.js +1 -1
  6. package/components/{p-BCQSEpww.js → p-B7ExaLVL.js} +1 -1
  7. package/components/{p-CseHeZbU.js → p-BCYVFy50.js} +1 -1
  8. package/components/p-ByE0slik.js +4 -0
  9. package/dist/cjs/ion-app_8.cjs.entry.js +5 -13
  10. package/dist/cjs/ion-datetime-button.cjs.entry.js +33 -6
  11. package/dist/cjs/ion-datetime.cjs.entry.js +353 -36
  12. package/dist/cjs/ionic.cjs.js +1 -1
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/collection/components/content/{content.ios.css → content.css} +41 -65
  15. package/dist/collection/components/content/content.js +5 -9
  16. package/dist/collection/components/datetime/datetime.ionic.css +179 -5
  17. package/dist/collection/components/datetime/datetime.ios.css +134 -2
  18. package/dist/collection/components/datetime/datetime.js +406 -33
  19. package/dist/collection/components/datetime/datetime.md.css +120 -0
  20. package/dist/collection/components/datetime/utils/state.js +18 -1
  21. package/dist/collection/components/datetime-button/datetime-button.js +34 -6
  22. package/dist/docs.json +160 -127
  23. package/dist/esm/{format-NT7iHsbA.js → format-DUHrIiJq.js} +1 -1
  24. package/dist/esm/ion-app_8.entry.js +5 -13
  25. package/dist/esm/ion-datetime-button.entry.js +34 -7
  26. package/dist/esm/ion-datetime.entry.js +354 -37
  27. package/dist/esm/ionic.js +1 -1
  28. package/dist/esm/loader.js +1 -1
  29. package/dist/html.html-data.json +20 -0
  30. package/dist/ionic/ionic.esm.js +1 -1
  31. package/dist/ionic/p-56d77e95.entry.js +4 -0
  32. package/dist/ionic/{p-BtccSO5J.js → p-CaOPF8Xt.js} +1 -1
  33. package/dist/ionic/p-b30b468d.entry.js +4 -0
  34. package/dist/ionic/p-ceca04fb.entry.js +4 -0
  35. package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
  36. package/dist/types/components/datetime/datetime.d.ts +71 -2
  37. package/dist/types/components/datetime/utils/state.d.ts +5 -2
  38. package/dist/types/components.d.ts +33 -0
  39. package/hydrate/index.js +400 -56
  40. package/hydrate/index.mjs +400 -56
  41. package/package.json +1 -1
  42. package/components/p-Da8LCPwo.js +0 -4
  43. package/dist/collection/components/content/content.ionic.css +0 -352
  44. package/dist/collection/components/content/content.md.css +0 -347
  45. package/dist/ionic/p-0743a26a.entry.js +0 -4
  46. package/dist/ionic/p-39e3be74.entry.js +0 -4
  47. package/dist/ionic/p-ad46d2fd.entry.js +0 -4
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import{r as t,h as o,i as e,f as i,g as n,d as r,e as a,j as s,w as l,a as c,c as d}from"./p-hR6kxzTq.js";import{focusElements as b}from"./p-BYk20Mf5.js";import{c as h,a as p,b as m}from"./p-DOdxt_P_.js";import{i as f,h as u,c as g,e as k,w as x}from"./p-B36ii-hs.js";import{n as v}from"./p-CXkgZKSx.js";import{i as w}from"./p-Dj4J3LkD.js";import{h as y,c as z}from"./p-BUF_V-Kg.js";import{b as C,p as S,g as j}from"./p-BPA4-c6T.js";import{c as $,a as E}from"./p-BXRdzJMJ.js";import{g as T}from"./p-hHmYLOfE.js";import{a as Z,d as Y}from"./p-Co3ilg7B.js";import{c as B}from"./p-B-hirT0v.js";import{t as P,f as M}from"./p-B7XMQegr.js";import"./p-ZjP4CjeZ.js";import"./p-B_gJaBk0.js";import"./p-BMPN55of.js";import"./p-CIGNaXM1.js";const I=class{constructor(o){t(this,o)}async setFocus(t){b(t)}render(){const t=h(this);return o(i,{key:"3b7e84c7c4187287123413f90838cda89136b2a4",class:{[t]:!0,"ion-page":!0,"force-statusbar-padding":e.getBoolean("_forceStatusbarPadding")}})}get el(){return n(this)}};I.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 L=class{constructor(o){t(this,o),this.collapse=!1}render(){const t=h(this);return o(i,{key:"95c107ba7871c801a5ef14c636dc8e2fe69debf3",class:{[t]:!0,"buttons-collapse":this.collapse}},o("slot",{key:"58669abfce458e1344b84286d4200e305017b958"}))}};L.style={ionic:".sc-ion-buttons-ionic-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.sc-ion-buttons-ionic-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ionic-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ionic-s .button-clear{--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528));--background:transparent;--background-activated:transparent;--background-focused:transparent;--background-hover:transparent}.sc-ion-buttons-ionic-s .button-has-icon-only{width:var(--token-scale-1000, 40px);height:var(--token-scale-1000, 40px)}.sc-ion-buttons-ionic-s ion-icon[slot=icon-only]{font-size:var(--token-font-size-500, 1.25rem)}",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)}.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-h{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:0.12;--background-activated:#000;--background-activated-opacity:0.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:0.12;--background-activated:#000;--background-activated-opacity:0.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)}.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-h{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 A=class{constructor(o){t(this,o),this.ionScrollStart=r(this,"ionScrollStart",7),this.ionScroll=r(this,"ionScroll",7),this.ionScrollEnd=r(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.sizeToContent=!1,this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}fullscreenChanged(){this.setupFullscreenResizeObserver()}componentWillLoad(){this.inheritedAttributes=f(this.el),this.sizeToContent=this.readSizeToContent()}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),u(this.el)){const t=this.tabsElement=this.el.closest("ion-tabs");null!==t&&(this.tabsLoadCallback=()=>this.resize(),t.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}this.setupFullscreenResizeObserver(),this.updateSizeToContent()}componentDidLoad(){this.setupFullscreenResizeObserver()}disconnectedCallback(){if(this.onScrollEnd(),u(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),this.destroyFullscreenResizeObserver()}setupFullscreenResizeObserver(){"undefined"!=typeof ResizeObserver&&(this.fullscreen&&!y("ion-popover",this.el)?void 0===this.fullscreenResizeObserver&&(this.fullscreenResizeObserver=new ResizeObserver((()=>{null!==this.el.offsetParent&&this.resize()})),this.fullscreenResizeObserver.observe(this.el)):this.destroyFullscreenResizeObserver())}updateSizeToContent(){a((()=>{this.sizeToContent=this.readSizeToContent()}))}destroyFullscreenResizeObserver(){void 0!==this.fullscreenResizeObserver&&(this.fullscreenResizeObserver.disconnect(),this.fullscreenResizeObserver=void 0)}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(t){const{forceOverscroll:o}=this;return void 0===o?"ios"===t&&p("ios"):o}readSizeToContent(){if(y("ion-popover",this.el))return!0;const t=this.el.closest("ion-modal");if(null===t)return!1;const o=getComputedStyle(t).getPropertyValue("--height");return"content"===v(o)}resize(){this.updateSizeToContent(),this.fullscreen?a((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,s(this))}async recalculateDimensions(){a((()=>this.readDimensions())),this.updateSizeToContent()}readDimensions(){const t=R(this.el),o=Math.max(this.el.offsetTop,0),e=Math.max(t.offsetHeight-o-this.el.offsetHeight,0);(o!==this.cTop||e!==this.cBottom)&&(this.cTop=o,this.cBottom=e,s(this))}onScroll(t){const o=Date.now(),e=!this.isScrolling;this.lastScroll=o,e&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,a((o=>{this.queued=!1,this.detail.event=t,D(this.detail,this.scrollEl,o,e),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((t=>g(this.el,t))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((t=>g(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,e){const i=await this.getScrollElement();return this.scrollToPoint(t+i.scrollLeft,o+i.scrollTop,e)}async scrollToPoint(t,o,e=0){const i=await this.getScrollElement();if(e<32)return null!=o&&(i.scrollTop=o),void(null!=t&&(i.scrollLeft=t));let n,r=0;const a=new Promise((t=>n=t)),s=i.scrollTop,l=i.scrollLeft,c=null!=o?o-s:0,d=null!=t?t-l:0,b=t=>{const o=Math.min(1,(t-r)/e)-1,a=Math.pow(o,3)+1;0!==c&&(i.scrollTop=Math.floor(a*c+s)),0!==d&&(i.scrollLeft=Math.floor(a*d+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:e,isMainContent:n,scrollX:r,scrollY:a,el:s}=this,l=w(s)?"rtl":"ltr",c=h(this),d=m(this,c),b=this.shouldForceOverscroll(d),p="ios"===c;return this.resize(),o(i,{key:"7e283337732b709e43fe89b08f6852c499b964ff",role:n?"main":void 0,class:z(this.color,{[c]:!0,"content-fullscreen":this.fullscreen,"content-sizing":this.sizeToContent,overscroll:b,[`content-${l}`]:!0}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`},...e},o("div",{key:"0dcbe4f4fe2d0f85b8c36bc656fc619afdc89cfe",ref:t=>this.backgroundContentEl=t,id:"background-content",part:"background"}),"before"===t?o("slot",{name:"fixed"}):null,o("div",{key:"cbe91794c2fc53a59f8994968571a677a2e8346b",class:{"inner-scroll":!0,"scroll-x":r,"scroll-y":a,overscroll:(r||a)&&b},ref:t=>this.scrollEl=t,onScroll:this.scrollEvents?t=>this.onScroll(t):void 0,part:"scroll"},o("slot",{key:"1a6b9bf25051eee41003185e1b519e4c4af2c001"})),p?o("div",{class:"transition-effect"},o("div",{class:"transition-cover"}),o("div",{class:"transition-shadow"})):null,"after"===t?o("slot",{name:"fixed"}):null)}get el(){return n(this)}static get watchers(){return{fullscreen:[{fullscreenChanged:0}]}}},R=t=>{const o=t.closest("ion-tabs");if(o)return o;const i=e.get("appRootSelector","ion-app");return t.closest(`${i}, ion-page, .ion-page, page-inner, .popover-content`)||(t=>t.parentElement?t.parentElement:t.parentNode?.host?t.parentNode.host:null)(t)},D=(t,o,e,i)=>{const n=t.currentX,r=t.currentY,a=o.scrollLeft,s=o.scrollTop,l=e-t.currentTime;if(i&&(t.startTime=e,t.startX=a,t.startY=s,t.velocityX=t.velocityY=0),t.currentTime=e,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}};A.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{right:0px;left:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{right:0px;left: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(--internal-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)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), height 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-header-hide-height, 0px));-webkit-transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));transform:translateY(calc(-1 * var(--internal-header-hide-height, 0px)));-webkit-transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), height 200ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-footer-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll{-webkit-transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:height 200ms cubic-bezier(0.16, 1, 0.3, 1)}:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{height:calc(100% + var(--internal-tab-bar-hide-height, 0px));-webkit-transition:height 350ms cubic-bezier(0.4, 0, 1, 1);transition:height 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){:host(.content-header-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-header-hide-scroll-partner:not(.content-fullscreen).content-header-hide-scroll-hidden) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-footer-hide-scroll-partner:not(.content-fullscreen).content-footer-hide-scroll-hidden) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen)) .inner-scroll,:host(.content-tab-bar-hide-scroll-partner:not(.content-fullscreen).content-tab-bar-hide-scroll-hidden) .inner-scroll{-webkit-transition:none;transition:none}}';const _=(t,o)=>{a((()=>{const e=k(0,1-(t.scrollTop-(t.scrollHeight-t.clientHeight-10))/10,1);l((()=>{o.style.setProperty("--opacity-scale",e.toString())}))}))},H=class{constructor(o){t(this,o),this.keyboardCtrl=null,this.keyboardCtrlPromise=null,this.scrollHideCtrlPromise=null,this.hasWarnedCollapse=!1,this.fadeSetupId=0,this.keyboardVisible=!1,this.translucent=!1,this.checkCollapsibleFooter=async()=>{const{scrollEffect:t,collapse:o}=this;void 0===o||void 0!==t||this.hasWarnedCollapse||(this.hasWarnedCollapse=!0,c(`[ion-footer] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-footer scroll-effect="${o}">`,this.el));const i=t??o;if(i===this.activeEffect)return;const n="hide"===i,r="fade"===i;this.destroyCollapsibleFooter();const a=e.get("appRootSelector","ion-app"),s=this.el.closest(`${a}, ion-page, .ion-page, page-inner`),l=s?C(s):null;if(n&&l)return this.activeEffect=i,void await this.setupScrollEffectHide(l);const d=void 0===t&&"ios"!==h(this);if(r&&!d){if(!l)return void S(this.el);this.setupFadeFooter(l),this.activeEffect=i}},this.setupScrollEffectHide=async t=>{const o=$(t,{el:this.el,cssVar:"--internal-footer-hide-height",hiddenClass:"footer-scroll-hidden",contentPartnerClass:"content-footer-hide-scroll-partner",contentHiddenClass:"content-footer-hide-scroll-hidden"});this.scrollHideCtrlPromise=o;const e=await o;this.scrollHideCtrlPromise===o&&(this.scrollHideCtrlPromise=null,e.init(),this.scrollHideCtrl=e)},this.setupFadeFooter=async t=>{const o=++this.fadeSetupId,e=await j(t);this.fadeSetupId===o&&(this.scrollEl=e,this.contentScrollCallback=()=>{_(e,this.el)},e.addEventListener("scroll",this.contentScrollCallback),_(e,this.el))}}componentDidLoad(){this.checkCollapsibleFooter()}componentDidUpdate(){this.checkCollapsibleFooter()}async connectedCallback(){const t=E((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.destroyCollapsibleFooter(),this.keyboardCtrlPromise&&(this.keyboardCtrlPromise.then((t=>t.destroy())),this.keyboardCtrlPromise=null),this.keyboardCtrl&&(this.keyboardCtrl.destroy(),this.keyboardCtrl=null)}destroyCollapsibleFooter(){this.activeEffect=void 0,this.fadeSetupId++,this.scrollHideCtrlPromise=null,this.scrollHideCtrl&&(this.scrollHideCtrl.destroy(),this.scrollHideCtrl=void 0),this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0)}render(){const{translucent:t,scrollEffect:e,collapse:n}=this,r=h(this),a=e??n,s="hide"===a,l="fade"===a&&!(void 0===e&&"ios"!==r),c=this.el.closest("ion-tabs"),d=c?.querySelector(":scope > ion-tab-bar");return o(i,{key:"a0777b4a639d22e15374879f018efcf589e756f8",role:"contentinfo",class:{[r]:!0,[`footer-${r}`]:!0,"footer-translucent":t,[`footer-translucent-${r}`]:t,"footer-toolbar-padding":!(this.keyboardVisible||d&&"bottom"===d.slot),"footer-collapse-fade":l,"footer-scroll-effect-hide":s}},"ios"===r&&t&&o("div",{key:"d78b46870cbf11c95b066d649c04ec398b66e614",class:"footer-background"}),o("slot",{key:"9dc34787cd29597fe1b1198db317602014ac1483"}))}get el(){return n(this)}};H.style={ionic:"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-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.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.footer-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}",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-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.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{right:0;left: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:0.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}",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-collapse-fade ion-toolbar{--opacity-scale:inherit}ion-footer.footer-scroll-effect-hide{-webkit-transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:-webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1);transition:transform 200ms cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 200ms cubic-bezier(0.16, 1, 0.3, 1)}ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:-webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1);transition:transform 350ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 350ms cubic-bezier(0.4, 0, 1, 1)}@media (prefers-reduced-motion: reduce){ion-footer.footer-scroll-effect-hide,ion-footer.footer-scroll-effect-hide.footer-scroll-hidden{-webkit-transition:none;transition:none}}.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.footer-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const O="none",U="banner",X=t=>{const o=document.querySelector(`${t}.ion-cloned-element`);if(null!==o)return o;const e=document.createElement(t);return e.classList.add("ion-cloned-element"),e.style.setProperty("display","none"),document.body.appendChild(e),e},q=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.scrollEffect??t.collapse)&&(void 0===o?t.style.removeProperty("--opacity-scale"):t.style.setProperty("--opacity-scale",o.toString()))},W=(t,o=!0)=>{const e=t.el,i=t.toolbars.map((t=>t.ionTitleEl));o?(e.setAttribute("role",U),e.classList.remove("header-collapse-condense-inactive"),i.forEach((t=>{t&&t.removeAttribute("aria-hidden")}))):(e.setAttribute("role",O),e.classList.add("header-collapse-condense-inactive"),i.forEach((t=>{t&&t.setAttribute("aria-hidden","true")})))},G=(t,o,e)=>{a((()=>{const i=t.scrollTop,n=o.clientHeight,r=e?e.clientHeight:0;if(null!==e&&i<r)return o.style.setProperty("--opacity-scale","0"),void t.style.setProperty("clip-path",`inset(${n}px 0px 0px 0px)`);const a=k(0,(i-r)/10,1);l((()=>{t.style.removeProperty("clip-path"),o.style.setProperty("--opacity-scale",a.toString())}))}))},N=class{constructor(o){t(this,o),this.inheritedAttributes={},this.scrollHideCtrlPromise=null,this.hasWarnedCollapse=!1,this.fadeCondenseSetupId=0,this.divider=!1,this.translucent=!1,this.setupScrollEffectHide=async t=>{const o=$(t,{el:this.el,cssVar:"--internal-header-hide-height",hiddenClass:"header-scroll-hidden",contentPartnerClass:"content-header-hide-scroll-partner",contentHiddenClass:"content-header-hide-scroll-hidden"});this.scrollHideCtrlPromise=o;const e=await o;this.scrollHideCtrlPromise===o&&(this.scrollHideCtrlPromise=null,e.init(),this.scrollHideCtrl=e)},this.setupFadeHeader=async(t,o)=>{const e=++this.fadeCondenseSetupId,i=await j(t);this.fadeCondenseSetupId===e&&(this.scrollEl=i,this.contentScrollCallback=()=>{G(this.scrollEl,this.el,o)},i.addEventListener("scroll",this.contentScrollCallback),G(this.scrollEl,this.el,o))}}componentWillLoad(){this.inheritedAttributes=f(this.el)}componentDidLoad(){this.checkCollapsibleHeader()}componentDidUpdate(){this.checkCollapsibleHeader()}disconnectedCallback(){this.destroyCollapsibleHeader()}async checkCollapsibleHeader(){const{scrollEffect:t,collapse:o}=this;void 0===o||void 0!==t||this.hasWarnedCollapse||(this.hasWarnedCollapse=!0,c(`[ion-header] - The \`collapse\` property is deprecated. Use \`scrollEffect\` instead.\nExample: <ion-header scroll-effect="${o}">`,this.el));const i=t??o;if(i===this.activeEffect)return;const n="hide"===i,r="condense"===i,a="fade"===i;this.destroyCollapsibleHeader();const s=e.get("appRootSelector","ion-app"),d=this.el.closest(`${s}, ion-page, .ion-page, page-inner`),b=d?C(d):null;if(n&&b)return this.activeEffect=i,void await this.setupScrollEffectHide(b);const p=void 0===t&&"ios"!==h(this);if(r&&!p)l((()=>{X("ion-title").size="large",X("ion-back-button")})),await this.setupCondenseHeader(b,d)&&(this.activeEffect=i);else if(a&&!p){if(!b)return void S(this.el);const t=b.querySelector('ion-header[collapse="condense"],ion-header[scroll-effect="condense"]');this.activeEffect=i,await this.setupFadeHeader(b,t)}}destroyCollapsibleHeader(){this.activeEffect=void 0,this.fadeCondenseSetupId++,this.scrollHideCtrlPromise=null,this.scrollHideCtrl&&(this.scrollHideCtrl.destroy(),this.scrollHideCtrl=void 0),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 S(this.el),!1;if("undefined"==typeof IntersectionObserver)return!1;const e=++this.fadeCondenseSetupId,i=await j(t);if(this.fadeCondenseSetupId!==e)return!1;if(this.scrollEl=i,null===this.el.querySelector('ion-title[size="large"]'))return c('[ion-header] - The condense scroll effect requires an <ion-title size="large"> in the condense header.',this.el),!1;const n=o.querySelectorAll("ion-header");if(this.collapsibleMainHeader=Array.from(n).find((t=>"condense"!==(t.scrollEffect??t.collapse))),!this.collapsibleMainHeader)return!1;const r=q(this.collapsibleMainHeader),s=q(this.el);return!(!r||!s)&&(W(r,!1),F(r.el,0),this.intersectionObserver=new IntersectionObserver((t=>{((t,o,e,i)=>{l((()=>{const n=i.scrollTop;((t,o,e)=>{if(!t[0].isIntersecting)return;const i=t[0].intersectionRatio>.9||e<=0?0:100*(1-t[0].intersectionRatio)/75;F(o.el,1===i?void 0:i)})(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,c=Math.abs(a.left-r.boundingClientRect.left),d=Math.abs(a.right-r.boundingClientRect.right);l||s>0&&(c>=5||d>=5)||(r.isIntersecting?(W(o,!1),W(e)):(0===a.x&&0===a.y||0!==a.width&&0!==a.height)&&n>0&&(W(o),W(e,!1),F(o.el)))}))})(t,r,s,this.scrollEl)}),{root:t,threshold:[.25,.3,.4,.5,.6,.7,.8,.9,1]}),this.intersectionObserver.observe(s.toolbars[s.toolbars.length-1].el),this.contentScrollCallback=()=>{((t,o,e)=>{a((()=>{const i=k(1,1+-t.scrollTop/500,1.1);null===e.querySelector("ion-refresher.refresher-native")&&l((()=>{((t=[],o=1,e=!1)=>{t.forEach((t=>{const i=t.ionTitleEl,n=t.innerTitleEl;i&&"large"===i.size&&(n.style.transition=e?"all 0.2s ease-in-out":"",n.style.transform=`scale3d(${o}, ${o}, 1)`)}))})(o.toolbars,i)}))}))})(this.scrollEl,s,t)},this.scrollEl.addEventListener("scroll",this.contentScrollCallback),l((()=>{void 0!==this.collapsibleMainHeader&&this.collapsibleMainHeader.classList.add("header-collapse-main")})),!0)}render(){const{translucent:t,inheritedAttributes:e,divider:n,scrollEffect:r,collapse:a}=this,s=h(this),l=r??a,c=void 0===r&&"ios"!==s,d="hide"===l,b="condense"===l&&!c&&null!==this.el.querySelector('ion-title[size="large"]'),p="fade"===l&&!c,m="condense"===l&&!b,f=m?"none":y("ion-menu",this.el)?O:U;return o(i,{key:"09f60ca014bb7b3a85d3c0a94e7989d5dbc43f46",role:f,class:{[s]:!0,[`header-${s}`]:!0,"header-translucent":this.translucent,"header-collapse-condense":b,"header-collapse-condense-hidden":m,"header-collapse-fade":p,[`header-translucent-${s}`]:this.translucent,"header-divider":n,"header-scroll-effect-hide":d},...e},"md"!==s&&t&&o("div",{key:"5179b806abb6f04ed294dc50166c4f014028a4e3",class:"header-background"},"ionic"===s&&o("div",{key:"4c9d23456672b5bd4ce55280ec6f3e6c39f162cc",class:"header-background-blur","aria-hidden":"true"},o("div",{key:"9b9da46049e24390491b2b97ab20863f6fefc079",class:"header-background-blur-layer"}),o("div",{key:"fc2899267eea7fdd415cc4f394fb469188bfae50",class:"header-background-blur-layer"}),o("div",{key:"8a9747c21d2bd92670deeec8022a37409fd349c4",class:"header-background-blur-layer"}),o("div",{key:"03abc8d5e1e8554963a7f652349ab65430d14db9",class:"header-background-blur-layer"}),o("div",{key:"6a481b7894c44b37d8e3569784a3b6a1191fba09",class:"header-background-blur-layer"}),o("div",{key:"8e4cf985b7c58a836316baa47c35dbaac765f658",class:"header-background-blur-layer"}),o("div",{key:"4ce7402a8ea8aa8253fc2e69e614c50c22ae2c9d",class:"header-background-blur-layer"}))),o("slot",{key:"1e5ae6dddd080197c7801ed58fb22b9f237b6099"}))}get el(){return n(this)}};N.style={ionic:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 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:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}ion-header.header-divider{border-bottom:var(--token-border-size-025, var(--token-scale-025, 1px)) solid var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df))}ion-toolbar+ion-toolbar{--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px))}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{right:0;left:0;top:0;bottom:0;position:absolute;pointer-events:none}.header-translucent-ionic .header-background-blur,.header-translucent-ionic .header-background-blur-layer{right:0;left:0;top:0;bottom:0;position:absolute}.header-translucent-ionic .header-background-blur-layer:nth-child(1){-webkit-backdrop-filter:blur(var(--token-scale-025, 1px));backdrop-filter:blur(var(--token-scale-025, 1px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(82.64%, #000), color-stop(91%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 82.64%, transparent 91%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(82.64%, #000), color-stop(91%, transparent));mask-image:linear-gradient(to bottom, #000 82.64%, transparent 91%)}.header-translucent-ionic .header-background-blur-layer:nth-child(2){-webkit-backdrop-filter:blur(var(--token-scale-050, 2px));backdrop-filter:blur(var(--token-scale-050, 2px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(74.29%, #000), color-stop(82.64%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 74.29%, transparent 82.64%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(74.29%, #000), color-stop(82.64%, transparent));mask-image:linear-gradient(to bottom, #000 74.29%, transparent 82.64%)}.header-translucent-ionic .header-background-blur-layer:nth-child(3){-webkit-backdrop-filter:blur(var(--token-scale-100, 4px));backdrop-filter:blur(var(--token-scale-100, 4px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(65.93%, #000), color-stop(74.29%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 65.93%, transparent 74.29%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(65.93%, #000), color-stop(74.29%, transparent));mask-image:linear-gradient(to bottom, #000 65.93%, transparent 74.29%)}.header-translucent-ionic .header-background-blur-layer:nth-child(4){-webkit-backdrop-filter:blur(var(--token-scale-200, 8px));backdrop-filter:blur(var(--token-scale-200, 8px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(57.57%, #000), color-stop(65.93%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 57.57%, transparent 65.93%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(57.57%, #000), color-stop(65.93%, transparent));mask-image:linear-gradient(to bottom, #000 57.57%, transparent 65.93%)}.header-translucent-ionic .header-background-blur-layer:nth-child(5){-webkit-backdrop-filter:blur(var(--token-scale-400, 16px));backdrop-filter:blur(var(--token-scale-400, 16px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(49.21%, #000), color-stop(57.57%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 49.21%, transparent 57.57%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(49.21%, #000), color-stop(57.57%, transparent));mask-image:linear-gradient(to bottom, #000 49.21%, transparent 57.57%)}.header-translucent-ionic .header-background-blur-layer:nth-child(6){-webkit-backdrop-filter:blur(var(--token-scale-800, 32px));backdrop-filter:blur(var(--token-scale-800, 32px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(40.86%, #000), color-stop(49.21%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 40.86%, transparent 49.21%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(40.86%, #000), color-stop(49.21%, transparent));mask-image:linear-gradient(to bottom, #000 40.86%, transparent 49.21%)}.header-translucent-ionic .header-background-blur-layer:nth-child(7){-webkit-backdrop-filter:blur(var(--token-scale-1600, 64px));backdrop-filter:blur(var(--token-scale-1600, 64px));-webkit-mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(32.5%, #000), color-stop(40.86%, transparent));-webkit-mask-image:linear-gradient(to bottom, #000 32.5%, transparent 40.86%);mask-image:-webkit-gradient(linear, left top, left bottom, color-stop(32.5%, #000), color-stop(40.86%, transparent));mask-image:linear-gradient(to bottom, #000 32.5%, transparent 40.86%)}.header-translucent-ionic ion-toolbar{--background:linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0))}}",ios:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 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:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}.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{right:0;left: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:0.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-condense ion-toolbar:last-of-type{--border-width:0px}",md:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 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:not(.header-collapse-main):has(~ion-content ion-header.header-collapse-condense){opacity:0}.header-collapse-condense-hidden{display:none}ion-header.header-scroll-effect-hide{-webkit-transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1);transition:transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 300ms cubic-bezier(0, 0, 0.2, 1)}ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1);transition:transform 200ms cubic-bezier(0.4, 0, 1, 1), opacity 300ms cubic-bezier(0.4, 0, 1, 1), -webkit-transform 200ms cubic-bezier(0.4, 0, 1, 1);opacity:0}@media (prefers-reduced-motion: reduce){ion-header.header-scroll-effect-hide,ion-header.header-scroll-effect-hide.header-scroll-hidden{-webkit-transition:none;transition:none}}ion-header{z-index:10}.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{-webkit-box-shadow:none;box-shadow:none}.header-md.header-collapse-condense-inactive:not(.header-collapse-condense){-webkit-box-shadow:none;box-shadow:none}.header-md.header-collapse-fade{-webkit-box-shadow:none;box-shadow:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const J=class{constructor(o){t(this,o),this.ionNavWillLoad=r(this,"ionNavWillLoad",7),this.ionNavWillChange=r(this,"ionNavWillChange",3),this.ionNavDidChange=r(this,"ionNavDidChange",3),this.lockController=B(),this.gestureOrAnimationInProgress=!1,this.mode=m(this),this.animated=!0}swipeGestureChanged(){this.updateGestureEnabled()}swipeHandlerChanged(){this.updateGestureEnabled()}async connectedCallback(){const t=()=>{this.gestureOrAnimationInProgress=!0,this.animated&&e.getBoolean("animated",!0)?this.swipeHandler&&this.swipeHandler.onStart():this.unblockSwipeClicks=M(this.el)};this.gesture=(await import("./p-Hb0L-KUN.js")).createSwipeBackGesture(this.el,(()=>!this.gestureOrAnimationInProgress&&!!this.swipeHandler&&this.swipeHandler.canStart()),(()=>t()),(t=>this.ani?.progressStep(t)),((t,o,e)=>{if(this.ani){this.ani.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(t)}),{oneTimeCallback:!0});let i=t?-.001:.001;t?i+=T([0,0],[.32,.72],[0,1],[1,1],o)[0]:(this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"),i+=T([0,0],[1,0],[.68,.28],[1,1],o)[0]),this.ani.progressEnd(t?1:0,i,e)}else{const{swipeHandler:o,unblockSwipeClicks:e}=this;this.unblockSwipeClicks=void 0,e&&t&&o?.canStart()?new Promise((t=>t(o.onStart()))).then((()=>o.onEnd(!0))).finally((()=>{this.gestureOrAnimationInProgress=!1,e()})):(this.gestureOrAnimationInProgress=!1,e?.())}})),void 0===this.swipeGesture?this.swipeGesture=e.getBoolean("swipeBackEnabled","ios"===this.mode):this.updateGestureEnabled()}componentWillLoad(){this.ionNavWillLoad.emit()}updateGestureEnabled(){this.gesture&&this.gesture.enable(void 0!==this.swipeHandler&&!0===this.swipeGesture)}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0),this.unblockSwipeClicks&&(this.unblockSwipeClicks(),this.unblockSwipeClicks=void 0,this.gestureOrAnimationInProgress=!1)}async commit(t,o,e){const i=await this.lockController.lock();let n=!1;try{n=await this.transition(t,o,e)}catch(t){d("[ion-router-outlet] - Exception in commit:",t)}return i(),n}async setRouteId(t,o,e,i){return{changed:await this.setRoot(t,o,{duration:"root"===e?0:void 0,direction:"back"===e?"back":"forward",animationBuilder:i}),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,e){if(this.activeComponent===t&&x(o,this.activeParams))return!1;const i=this.activeEl,n=await Z(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,i,e),await Y(this.delegate,i),!0}async transition(t,o,i={}){if(o===t)return!1;this.ionNavWillChange.emit();const{el:n,mode:r}=this,a=this.animated&&e.getBoolean("animated",!0),s=i.animationBuilder||this.animation||e.get("navAnimation");return await P({mode:r,animated:a,enteringEl:t,leavingEl:o,baseEl:n,deepWait:u(n),progressCallback:i.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,...i,animationBuilder:s}),this.ionNavDidChange.emit(),!0}render(){return o("slot",{key:"f558387bf490206aaa6f58132995c5080354ec02"})}get el(){return n(this)}static get watchers(){return{swipeGesture:[{swipeGestureChanged:0}],swipeHandler:[{swipeHandlerChanged:0}]}}};J.style=":host{right:0;left:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}";const K=class{constructor(o){t(this,o),this.ionStyle=r(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=h(this),e=this.getSize();return o(i,{key:"8dada0c1d43ccbc7f4011caee41eebbf8796b4bf",class:z(this.color,{[t]:!0,[`title-${e}`]:!0,"title-rtl":w(this.el)})},o("div",{key:"c4686ed4e9ff56eafec66d4c008f858b0310854d",class:"toolbar-title"},o("slot",{key:"b679584fcaed7c57cbae585502c3e48eb98ee63d"})))}get el(){return n(this)}static get watchers(){return{size:[{sizeChanged:0}]}}};K.style={ionic:':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)}.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{font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.555556;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.title-large){font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-700, 1.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.285714}',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)}.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(.ion-color){color:var(--ion-color-base)}: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)}.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(.ion-color){color:var(--ion-color-base)}: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}:host(.title-large){width:100%;height:100%;font-size:1.75rem;font-weight:400}"};const V=class{constructor(o){t(this,o),this.childrenStyles=new Map,this.slotClasses=["has-start-content","has-end-content","has-primary-content","has-secondary-content"],this.showClasses=["show-start","show-end","show-primary","show-secondary"],this.slotSizeVars=["--start-end-size","--primary-secondary-size"]}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 e=t.reverse(),i=e.find((t=>"end"===t.slot))||e.find((t=>"primary"===t.slot))||e.find((t=>"secondary"===t.slot));i&&i.classList.add("buttons-last-slot"),this.updateSlotClasses()}componentDidLoad(){this.updateSlotClasses(),this.updateSlotWidths()}titlePlacementChanged(){this.updateSlotClasses()}getTitlePlacement(){return void 0!==this.titlePlacement?this.titlePlacement:"ionic"===h(this)||"ios"===h(this)?"center":"start"}updateSlotWidths(t=0){setTimeout((()=>{!this.measureAndUpdateSlots()&&t<5&&setTimeout((()=>{this.updateSlotWidths(t+1)}),100)}))}measureAndUpdateSlots(){const t=[{name:"start-end",slots:["start","end"]},{name:"primary-secondary",slots:["primary","secondary"]}],o=new Map;let e=!0;return["start","end","primary","secondary"].forEach((i=>{if(this.el.classList.contains(`has-${i}-content`)){const n=this.el.shadowRoot?.querySelector(`slot[name="${i}"]`);if(n){if(n.assignedElements({flatten:!0}).some((t=>"IMG"===t.tagName||"ION-IMG"===t.tagName||null!==t.querySelector("img, ion-img")))){const{name:o}=t.find((t=>t.slots.includes(i)));this.el.style.setProperty(`--${o}-size`,"auto")}const r=n.offsetWidth;r>0?o.set(i,r):e=!1}}})),t.forEach((({name:t,slots:e})=>{let i=0,n=!1;e.forEach((t=>{o.has(t)&&(n=!0,i=Math.max(i,o.get(t)??0))})),n&&i>0&&this.el.style.setProperty(`--${t}-size`,`${i}px`)})),e}removeSlotClasses(){this.el.classList.remove(...this.slotClasses,...this.showClasses),this.slotSizeVars.forEach((t=>this.el.style.removeProperty(t)))}updateSlotClasses(){if("center"!==this.getTitlePlacement())return void this.removeSlotClasses();const t=[],o=[];["start","end","primary","secondary"].forEach((e=>{const i=`has-${e}-content`;this.hasSlotContent(e)?t.push(i):o.push(i)})),[{name:"end",requiredSlots:["start"],excludeSlots:["end","primary"]},{name:"start",requiredSlots:["end"],excludeSlots:["start","secondary"]},{name:"secondary",requiredSlots:["primary"],excludeSlots:["secondary","start"]},{name:"primary",requiredSlots:["secondary"],excludeSlots:["primary","end"]}].forEach((e=>{const i=e.requiredSlots.every((o=>t.includes(`has-${o}-content`))),n=e.excludeSlots.some((o=>t.includes(`has-${o}-content`))),r=`show-${e.name}`;i&&!n?t.push(r):o.push(r)})),this.el.classList.add(...t),this.el.classList.remove(...o),this.updateSlotWidths()}hasSlotContent(t){const o=this.el.shadowRoot?.querySelector(`slot[name="${t}"]`);return!!o&&o.assignedNodes().length>0}childrenStyle(t){t.stopPropagation();const o=t.target.tagName,e=t.detail,i={},n=this.childrenStyles.get(o)||{};let r=!1;Object.keys(e).forEach((t=>{const o=`toolbar-${t}`,a=e[t];a!==n[o]&&(r=!0),a&&(i[o]=!0)})),r&&(this.childrenStyles.set(o,i),s(this))}render(){const t=h(this),e={};this.childrenStyles.forEach((t=>{Object.assign(e,t)}));const n=this.getTitlePlacement();return o(i,{key:"3b97d3de5b1910257170355995eb7a50a2b6dcc4",class:{...z(this.color,{[t]:!0,"in-toolbar":y("ion-toolbar",this.el),[`toolbar-title-placement-${n}`]:!0}),...e}},o("div",{key:"26f85390aa62f118e585fd8560fba0620b30fd51",class:"toolbar-background",part:"background"}),o("div",{key:"57e32773d5642dde7f5d7cca9aaceb41b4d800bd",class:"toolbar-container",part:"container"},o("slot",{key:"5429b3f898703339749a55af6bb28d7e4d969679",name:"start",onSlotchange:()=>this.updateSlotClasses}),o("slot",{key:"c5565f7020f52a1f075d9c6908ace042d488642f",name:"secondary",onSlotchange:()=>this.updateSlotClasses}),o("div",{key:"2d083bcd57512041321a68b43d6b90144eb20166",class:"toolbar-content",part:"content"},o("slot",{key:"eb8abc0b9b96c699355891fbd0d284094cde7632"})),o("slot",{key:"ca66f2dcce1f5382ed40a120cf32f759597a11ad",name:"primary",onSlotchange:()=>this.updateSlotClasses}),o("slot",{key:"19e3eb792d45c21404fe48f119d68248b5d7dca7",name:"end",onSlotchange:()=>this.updateSlotClasses})))}get el(){return n(this)}static get watchers(){return{titlePlacement:[{titlePlacementChanged:0}]}}};V.style={ionic:":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);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.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;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left: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));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528));--border-color:currentColor;--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--min-height:var(--token-scale-1400, 56px)}.toolbar-container{gap:var(--token-space-400, var(--token-scale-400, 16px));z-index:10}.toolbar-background{z-index:-1}.toolbar-content{-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}:host(.toolbar-searchbar) ::slotted(ion-searchbar){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}::slotted(ion-buttons){gap:var(--token-space-200, var(--token-scale-200, 8px))}::slotted(ion-title){-webkit-padding-start:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-start:var(--token-space-200, var(--token-scale-200, 8px));-webkit-padding-end:var(--token-space-200, var(--token-scale-200, 8px));padding-inline-end:var(--token-space-200, var(--token-scale-200, 8px))}:host(.toolbar-title-large) ::slotted(ion-title){-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px))}:host(.has-end-content) slot[name=end],:host(.show-end) slot[name=end]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-start-content) slot[name=start],:host(.show-start) slot[name=start]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--start-end-size, 0);flex:0 0 var(--start-end-size, 0)}:host(.has-primary-content) slot[name=primary],:host(.show-primary) slot[name=primary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0);-ms-flex-pack:end;justify-content:flex-end;text-align:end}:host(.has-secondary-content) slot[name=secondary],:host(.show-secondary) slot[name=secondary]{display:-ms-flexbox;display:flex;-ms-flex:0 0 var(--primary-secondary-size, 0);flex:0 0 var(--primary-secondary-size, 0)}:host(.toolbar-title-placement-start) ::slotted(ion-title){text-align:start}:host(.toolbar-title-placement-center) ::slotted(ion-title){text-align:center}:host(.toolbar-title-placement-end) ::slotted(ion-title){text-align:end}",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);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.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;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left: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));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}: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);contain:content;-webkit-box-sizing:border-box;box-sizing:border-box}.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;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{right:0;left: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));pointer-events:none}::slotted(ion-progress-bar){right:0;left:0;bottom:0;position:absolute}:host{font-family:var(--ion-font-family, inherit);z-index:10}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{z-index:10}.toolbar-background{z-index:-1}: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{I as ion_app,L as ion_buttons,A as ion_content,H as ion_footer,N as ion_header,J as ion_router_outlet,K as ion_title,V as ion_toolbar}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import{r as t,c as e,h as i,f as o,g as a}from"./p-hR6kxzTq.js";import{f as n,c as r}from"./p-B36ii-hs.js";import{c as s}from"./p-BUF_V-Kg.js";import{c as d}from"./p-DOdxt_P_.js";import{E as c,d as p,P as l,O as m,l as b}from"./p-CaOPF8Xt.js";import"./p-ZjP4CjeZ.js";import"./p-BYk20Mf5.js";import"./p-Dj4J3LkD.js";const h=class{constructor(i){t(this,i),this.datetimeEl=null,this.overlayEl=null,this.datetimePresentation="date-time",this.datetimeActive=!1,this.disabled=!1,this.getParsedDateValues=t=>null==t?[]:Array.isArray(t)?t:[t],this.setDateTimeText=async()=>{const{datetimeEl:t,datetimePresentation:i}=this;if(!t)return;const{value:o,locale:a,formatOptions:n,hourCycle:r,preferWheel:s,multiple:d,selectionMode:h,titleSelectedDatesFormatter:u}=t,f=this.getParsedDateValues(o),x=f.length>0?c(f):[await t.getDefaultPart()];if(!x)return;const v="range"===h,g="multiple"===h||void 0===h&&d,y=x[0],k=p(a,r),w=n?.date??{month:"short",day:"numeric",year:"numeric"};switch(this.dateText=this.timeText=void 0,i){case"date-time":case"time-date":const t=l(a,y,w),i=m(a,y,k,n?.time);s?this.dateText=`${t} ${i}`:(this.dateText=t,this.timeText=i);break;case"date":if(v&&f.length>=2){let t=0,i=f.length-1;b(x[t],x[i])&&([t,i]=[i,t]);const o=[f[t],f[i]];let n=`${l(a,x[t],w)} - ${l(a,x[i],w)}`;if(void 0!==u)try{n=u(o)}catch(t){e("[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:",t)}this.dateText=n}else if(g&&1!==f.length){let t=`${f.length} days`;if(void 0!==u)try{t=u(f)}catch(t){e("[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:",t)}this.dateText=t}else this.dateText=l(a,y,w);break;case"time":this.timeText=m(a,y,k,n?.time);break;case"month-year":this.dateText=l(a,y,n?.date??{month:"long",year:"numeric"});break;case"month":this.dateText=l(a,y,n?.time??{month:"long"});break;case"year":this.dateText=l(a,y,n?.time??{year:"numeric"})}},this.waitForDatetimeChanges=async()=>{const{datetimeEl:t}=this;return t?new Promise((e=>{n(t,"ionRender",e,{once:!0})})):Promise.resolve()},this.handleDateClick=async t=>{const{datetimeEl:e,datetimePresentation:i}=this;if(!e)return;let o=!1;switch(i){case"date-time":case"time-date":!e.preferWheel&&"date"!==e.presentation&&(e.presentation="date",o=!0)}this.selectedButton="date",this.presentOverlay(t,o,this.dateTargetEl)},this.handleTimeClick=t=>{const{datetimeEl:e,datetimePresentation:i}=this;if(!e)return;let o=!1;switch(i){case"date-time":case"time-date":"time"!==e.presentation&&(e.presentation="time",o=!0)}this.selectedButton="time",this.presentOverlay(t,o,this.timeTargetEl)},this.presentOverlay=async(t,e,i)=>{const{overlayEl:o}=this;o&&("ION-POPOVER"===o.tagName?(e&&await this.waitForDatetimeChanges(),o.present({...t,detail:{ionShadowTarget:i}})):o.present())}}async componentWillLoad(){const{datetime:t}=this;if(!t)return void e("[ion-datetime-button] - An ID associated with an ion-datetime instance is required to function properly.",this.el);const i=this.datetimeEl=document.getElementById(t);if(!i)return void e(`[ion-datetime-button] - No ion-datetime instance found for ID '${t}'.`,this.el);if("ION-DATETIME"!==i.tagName)return void e(`[ion-datetime-button] - Expected an ion-datetime instance for ID '${t}' but received '${i.tagName.toLowerCase()}' instead.`,i);new IntersectionObserver((t=>{this.datetimeActive=t[0].isIntersecting}),{threshold:.01}).observe(i);const o=this.overlayEl=i.closest("ion-modal, ion-popover");o&&o.classList.add("ion-datetime-button-overlay"),r(i,(()=>{const t=this.datetimePresentation=i.presentation||"date-time";switch(this.setDateTimeText(),n(i,"ionValueChange",this.setDateTimeText),t){case"date-time":case"date":case"month-year":case"month":case"year":this.selectedButton="date";break;case"time-date":case"time":this.selectedButton="time"}}))}render(){const{color:t,dateText:e,timeText:a,selectedButton:n,datetimeActive:r,disabled:c}=this,p=d(this);return i(o,{key:"e022c5c280d4f889c1ba7ca3e96b38063c5add30",class:s(t,{[p]:!0,[`${n}-active`]:r,"datetime-button-disabled":c})},e&&i("button",{key:"b1267d98cefbce7666b0cafa083c42f3116e2398",class:"ion-activatable",id:"date-button","aria-expanded":r?"true":"false",onClick:this.handleDateClick,disabled:c,part:"native",ref:t=>this.dateTargetEl=t},i("slot",{key:"3fdfa6adf73ee1e35cdb7f318f1d1ddcf4ab4d7b",name:"date-target"},e),"md"===p&&i("ion-ripple-effect",{key:"a832d63c77fffe8d7e0d28827bbb469726373d1e"})),a&&i("button",{key:"c589bdf2b8221609713f0d3554494dd08a1f2e5b",class:"ion-activatable",id:"time-button","aria-expanded":r?"true":"false",onClick:this.handleTimeClick,disabled:c,part:"native",ref:t=>this.timeTargetEl=t},i("slot",{key:"10769ddadf7933d78744facaaa153bb413ff484a",name:"time-target"},a),"md"===p&&i("ion-ripple-effect",{key:"7832de031919ddfb312528b45a3dc8e1c20edea6"})))}get el(){return a(this)}};h.style={ionic:":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}",ios:":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}",md:":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px}"};export{h as ion_datetime_button}
@@ -36,6 +36,10 @@ export type DatetimeHighlight = {
36
36
  date: string;
37
37
  } & DatetimeHighlightStyle;
38
38
  export type DatetimeHighlightCallback = (dateIsoString: string) => DatetimeHighlightStyle | undefined;
39
+ export interface DatetimeRangeParts {
40
+ start: DatetimeParts;
41
+ end?: DatetimeParts;
42
+ }
39
43
  export type DatetimeHourCycle = 'h11' | 'h12' | 'h23' | 'h24';
40
44
  /**
41
45
  * FormatOptions must include date and/or time; it cannot be an empty object
@@ -1,6 +1,6 @@
1
1
  import type { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
2
  import type { Color, StyleEventDetail } from '../../interface';
3
- import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, TitleSelectedDatesFormatter, DatetimeHighlight, DatetimeHighlightCallback, DatetimeHourCycle, FormatOptions } from './datetime-interface';
3
+ import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, DatetimeRangeParts, TitleSelectedDatesFormatter, DatetimeHighlight, DatetimeHighlightCallback, DatetimeHourCycle, FormatOptions } from './datetime-interface';
4
4
  /**
5
5
  * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
6
6
  * @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
@@ -32,6 +32,11 @@ import type { DatetimePresentation, DatetimeChangeEventDetail, DatetimeParts, Ti
32
32
  * @part calendar-day today - The calendar day that contains the current day.
33
33
  * @part calendar-day disabled - The calendar day that is disabled.
34
34
  *
35
+ * @part range-start - The calendar day button that is the start of a range selection.
36
+ * @part range-end - The calendar day button that is the end of a range selection.
37
+ * @part range-selection - The calendar day button that is part of a range selection (includes start and end).
38
+ * @part range-track - The track that connects the start and end days of a range selection.
39
+ *
35
40
  * @part datetime-header - The datetime header contains the content for the `title` slot and the selected date.
36
41
  * @part datetime-title - The element that contains the `title` slot content.
37
42
  * @part datetime-selected-date - The element that contains the selected date.
@@ -47,6 +52,11 @@ export declare class Datetime implements ComponentInterface {
47
52
  private parsedMonthValues?;
48
53
  private parsedYearValues?;
49
54
  private parsedDayValues?;
55
+ /**
56
+ * Set when the user completes a range interactively, so processValue
57
+ * can skip navigation and keep the calendar on the current month.
58
+ */
59
+ private rangeCompletedInteractively;
50
60
  private destroyCalendarListener?;
51
61
  private destroyKeyboardMO?;
52
62
  private destroyOverlayPresentListener?;
@@ -65,7 +75,7 @@ export declare class Datetime implements ComponentInterface {
65
75
  private prevPresentation;
66
76
  private resolveForceDateScrolling?;
67
77
  showMonthAndYear: boolean;
68
- activeParts: DatetimeParts | DatetimeParts[];
78
+ activeParts: DatetimeParts | DatetimeParts[] | DatetimeRangeParts;
69
79
  workingParts: DatetimeParts;
70
80
  el: HTMLIonDatetimeElement;
71
81
  isTimePopoverOpen: boolean;
@@ -155,6 +165,16 @@ export declare class Datetime implements ComponentInterface {
155
165
  presentation: DatetimePresentation;
156
166
  protected presentationChanged(): void;
157
167
  private get isGridStyle();
168
+ private get isMultipleMode();
169
+ private get isRangeMode();
170
+ /**
171
+ * Type guard: returns true if the given activeParts is a DatetimeRangeParts object.
172
+ */
173
+ private isRangeParts;
174
+ /**
175
+ * Returns the current range parts if in range mode, or undefined otherwise.
176
+ */
177
+ private get rangeParts();
158
178
  /**
159
179
  * The text to display on the picker's cancel button.
160
180
  */
@@ -238,8 +258,31 @@ export declare class Datetime implements ComponentInterface {
238
258
  /**
239
259
  * If `true`, multiple dates can be selected at once. Only
240
260
  * applies to `presentation="date"` and `preferWheel="false"`.
261
+ *
262
+ * @deprecated Use `selectionMode="multiple"` instead.
241
263
  */
242
264
  multiple: boolean;
265
+ /**
266
+ * Controls the date selection behavior.
267
+ * `'multiple'` enables selecting multiple individual dates.
268
+ * `'range'` enables selecting a start and end date range.
269
+ * When unset, single-date selection is used.
270
+ *
271
+ * Range selection only works with `presentation="date"` and `preferWheel="false"`.
272
+ */
273
+ selectionMode?: 'multiple' | 'range';
274
+ /**
275
+ * The text shown in the datetime header when the start of the range
276
+ * is empty, also used by screen readers to announce the start date.
277
+ * Only applies when `selectionMode="range"`.
278
+ */
279
+ startDateLabel: string;
280
+ /**
281
+ * The text shown in the datetime header when the end of the range
282
+ * is empty, also used by screen readers to announce the end date.
283
+ * Only applies when `selectionMode="range"`.
284
+ */
285
+ endDateLabel: string;
243
286
  /**
244
287
  * Used to apply custom text and background colors to specific dates.
245
288
  *
@@ -400,7 +443,23 @@ export declare class Datetime implements ComponentInterface {
400
443
  private getActivePart;
401
444
  private closeParentOverlay;
402
445
  private setWorkingParts;
446
+ /**
447
+ * Checks whether the span from start to end contains any disabled day.
448
+ * Used by range mode to prevent selecting across disabled dates.
449
+ */
450
+ private rangeContainsDisabledDate;
403
451
  private setActiveParts;
452
+ /**
453
+ * Handles range selection logic when a day is clicked.
454
+ *
455
+ * Creating a new range: first click sets start, second sets end.
456
+ * Modifying an existing range:
457
+ * - Before range → new start
458
+ * - Within range → new end
459
+ * - After range → new end
460
+ * If the resulting span contains a disabled date, start a new range instead.
461
+ */
462
+ private setActivePartsRange;
404
463
  private get isCalendarPicker();
405
464
  private initializeKeyboardListeners;
406
465
  private focusWorkingDay;
@@ -488,6 +547,16 @@ export declare class Datetime implements ComponentInterface {
488
547
  private renderTimeLabel;
489
548
  private renderTimeOverlay;
490
549
  private getHeaderSelectedDateText;
550
+ /**
551
+ * Returns the formatted range header text.
552
+ * Shows "Start date - End date" with placeholders from startDateLabel/endDateLabel.
553
+ */
554
+ private getRangeHeaderText;
555
+ /**
556
+ * Returns the current range value as an ISO string array for
557
+ * titleSelectedDatesFormatter and ionChange.
558
+ */
559
+ private getRangeValueArray;
491
560
  private renderHeader;
492
561
  /**
493
562
  * Render time picker inside of datetime.
@@ -1,4 +1,4 @@
1
- import type { DatetimeHighlight, DatetimeHighlightCallback, DatetimeHighlightStyle, DatetimeParts } from '../datetime-interface';
1
+ import type { DatetimeHighlight, DatetimeHighlightCallback, DatetimeHighlightStyle, DatetimeParts, DatetimeRangeParts } from '../datetime-interface';
2
2
  export declare const isYearDisabled: (refYear: number, minParts?: DatetimeParts, maxParts?: DatetimeParts) => boolean;
3
3
  /**
4
4
  * Returns true if a given day should
@@ -10,10 +10,13 @@ export declare const isDayDisabled: (refParts: DatetimeParts, minParts?: Datetim
10
10
  * Given a locale, a date, the selected date(s), and today's date,
11
11
  * generate the state for a given calendar day button.
12
12
  */
13
- export declare const getCalendarDayState: (locale: string, refParts: DatetimeParts, activeParts: DatetimeParts | DatetimeParts[], todayParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, dayValues?: number[]) => {
13
+ export declare const getCalendarDayState: (locale: string, refParts: DatetimeParts, activeParts: DatetimeParts | DatetimeParts[], todayParts: DatetimeParts, minParts?: DatetimeParts, maxParts?: DatetimeParts, dayValues?: number[], rangeParts?: DatetimeRangeParts) => {
14
14
  disabled: boolean;
15
15
  isActive: boolean;
16
16
  isToday: boolean;
17
+ isRangeStart: boolean;
18
+ isRangeEnd: boolean;
19
+ isInRange: boolean;
17
20
  ariaSelected: string | null;
18
21
  ariaLabel: string | null;
19
22
  text: string | null;
@@ -1162,6 +1162,11 @@ export namespace Components {
1162
1162
  * @default 'Done'
1163
1163
  */
1164
1164
  "doneText": string;
1165
+ /**
1166
+ * The text shown in the datetime header when the end of the range is empty, also used by screen readers to announce the end date. Only applies when `selectionMode="range"`.
1167
+ * @default 'End date'
1168
+ */
1169
+ "endDateLabel": string;
1165
1170
  /**
1166
1171
  * The first day of the week to use for `ion-datetime`. The default value is `0` and represents Sunday.
1167
1172
  * @default 0
@@ -1218,6 +1223,7 @@ export namespace Components {
1218
1223
  "monthValues"?: number[] | number | string;
1219
1224
  /**
1220
1225
  * If `true`, multiple dates can be selected at once. Only applies to `presentation="date"` and `preferWheel="false"`.
1226
+ * @deprecated Use `selectionMode="multiple"` instead.
1221
1227
  * @default false
1222
1228
  */
1223
1229
  "multiple": boolean;
@@ -1246,6 +1252,10 @@ export namespace Components {
1246
1252
  * @param startDate A valid [ISO-8601 string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format) to reset the datetime state to.
1247
1253
  */
1248
1254
  "reset": (startDate?: string) => Promise<void>;
1255
+ /**
1256
+ * Controls the date selection behavior. `'multiple'` enables selecting multiple individual dates. `'range'` enables selecting a start and end date range. When unset, single-date selection is used. Range selection only works with `presentation="date"` and `preferWheel="false"`.
1257
+ */
1258
+ "selectionMode"?: 'multiple' | 'range';
1249
1259
  /**
1250
1260
  * If `true`, the datetime calendar displays a six-week (42-day) layout, including days from the previous and next months to fill the grid. These adjacent days are selectable unless disabled.
1251
1261
  * @default false
@@ -1276,6 +1286,11 @@ export namespace Components {
1276
1286
  * @default 'fixed'
1277
1287
  */
1278
1288
  "size": 'cover' | 'fixed';
1289
+ /**
1290
+ * The text shown in the datetime header when the start of the range is empty, also used by screen readers to announce the start date. Only applies when `selectionMode="range"`.
1291
+ * @default 'Start date'
1292
+ */
1293
+ "startDateLabel": string;
1279
1294
  /**
1280
1295
  * The theme determines the visual appearance of the component.
1281
1296
  */
@@ -7044,6 +7059,11 @@ declare namespace LocalJSX {
7044
7059
  * @default 'Done'
7045
7060
  */
7046
7061
  "doneText"?: string;
7062
+ /**
7063
+ * The text shown in the datetime header when the end of the range is empty, also used by screen readers to announce the end date. Only applies when `selectionMode="range"`.
7064
+ * @default 'End date'
7065
+ */
7066
+ "endDateLabel"?: string;
7047
7067
  /**
7048
7068
  * The first day of the week to use for `ion-datetime`. The default value is `0` and represents Sunday.
7049
7069
  * @default 0
@@ -7096,6 +7116,7 @@ declare namespace LocalJSX {
7096
7116
  "monthValues"?: number[] | number | string;
7097
7117
  /**
7098
7118
  * If `true`, multiple dates can be selected at once. Only applies to `presentation="date"` and `preferWheel="false"`.
7119
+ * @deprecated Use `selectionMode="multiple"` instead.
7099
7120
  * @default false
7100
7121
  */
7101
7122
  "multiple"?: boolean;
@@ -7135,6 +7156,10 @@ declare namespace LocalJSX {
7135
7156
  * @default false
7136
7157
  */
7137
7158
  "readonly"?: boolean;
7159
+ /**
7160
+ * Controls the date selection behavior. `'multiple'` enables selecting multiple individual dates. `'range'` enables selecting a start and end date range. When unset, single-date selection is used. Range selection only works with `presentation="date"` and `preferWheel="false"`.
7161
+ */
7162
+ "selectionMode"?: 'multiple' | 'range';
7138
7163
  /**
7139
7164
  * If `true`, the datetime calendar displays a six-week (42-day) layout, including days from the previous and next months to fill the grid. These adjacent days are selectable unless disabled.
7140
7165
  * @default false
@@ -7165,6 +7190,11 @@ declare namespace LocalJSX {
7165
7190
  * @default 'fixed'
7166
7191
  */
7167
7192
  "size"?: 'cover' | 'fixed';
7193
+ /**
7194
+ * The text shown in the datetime header when the start of the range is empty, also used by screen readers to announce the start date. Only applies when `selectionMode="range"`.
7195
+ * @default 'Start date'
7196
+ */
7197
+ "startDateLabel"?: string;
7168
7198
  /**
7169
7199
  * The theme determines the visual appearance of the component.
7170
7200
  */
@@ -10545,6 +10575,9 @@ declare namespace LocalJSX {
10545
10575
  "locale": string;
10546
10576
  "firstDayOfWeek": number;
10547
10577
  "multiple": boolean;
10578
+ "selectionMode": 'multiple' | 'range';
10579
+ "startDateLabel": string;
10580
+ "endDateLabel": string;
10548
10581
  "value": string | string[] | null;
10549
10582
  "showDefaultTitle": boolean;
10550
10583
  "showDefaultButtons": boolean;