voyager-ionic-core 8.3.1 → 8.3.4

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 (121) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +1 -1
  3. package/components/backdrop.js +1 -1
  4. package/components/ion-app.js +1 -2
  5. package/components/ion-input.js +20 -5
  6. package/components/ion-loading.js +1 -1
  7. package/components/ion-picker-legacy.js +1 -1
  8. package/components/ion-segment.js +19 -6
  9. package/components/ion-textarea.js +19 -4
  10. package/components/overlays.js +62 -7
  11. package/dist/cjs/index.cjs.js +1 -1
  12. package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
  13. package/dist/cjs/ion-alert.cjs.entry.js +2 -2
  14. package/dist/cjs/ion-app_8.cjs.entry.js +1 -2
  15. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  16. package/dist/cjs/ion-datetime_3.cjs.entry.js +2 -2
  17. package/dist/cjs/ion-input.cjs.entry.js +20 -5
  18. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  20. package/dist/cjs/ion-modal.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-popover.cjs.entry.js +1 -1
  22. package/dist/cjs/ion-segment_2.cjs.entry.js +19 -6
  23. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  24. package/dist/cjs/ion-textarea.cjs.entry.js +19 -4
  25. package/dist/cjs/ion-toast.cjs.entry.js +1 -1
  26. package/dist/cjs/{overlays-0123d7d4.js → overlays-ba0f6986.js} +62 -7
  27. package/dist/collection/components/action-sheet/action-sheet.js +2 -2
  28. package/dist/collection/components/alert/alert.js +1 -1
  29. package/dist/collection/components/app/app.js +3 -7
  30. package/dist/collection/components/backdrop/backdrop.js +1 -1
  31. package/dist/collection/components/input/input.js +20 -5
  32. package/dist/collection/components/loading/loading.js +1 -1
  33. package/dist/collection/components/picker-legacy/picker.js +1 -1
  34. package/dist/collection/components/segment/segment.js +19 -6
  35. package/dist/collection/components/textarea/textarea.js +19 -4
  36. package/dist/collection/utils/overlays.js +62 -7
  37. package/dist/docs.json +41 -2
  38. package/dist/esm/index.js +1 -1
  39. package/dist/esm/ion-action-sheet.entry.js +3 -3
  40. package/dist/esm/ion-alert.entry.js +2 -2
  41. package/dist/esm/ion-app_8.entry.js +1 -2
  42. package/dist/esm/ion-backdrop.entry.js +1 -1
  43. package/dist/esm/ion-datetime_3.entry.js +2 -2
  44. package/dist/esm/ion-input.entry.js +20 -5
  45. package/dist/esm/ion-loading.entry.js +2 -2
  46. package/dist/esm/ion-menu_3.entry.js +1 -1
  47. package/dist/esm/ion-modal.entry.js +1 -1
  48. package/dist/esm/ion-popover.entry.js +1 -1
  49. package/dist/esm/ion-segment_2.entry.js +19 -6
  50. package/dist/esm/ion-select_3.entry.js +1 -1
  51. package/dist/esm/ion-textarea.entry.js +19 -4
  52. package/dist/esm/ion-toast.entry.js +1 -1
  53. package/dist/esm/{overlays-9c75ec54.js → overlays-ae10d43d.js} +62 -7
  54. package/dist/esm-es5/index.js +1 -1
  55. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  56. package/dist/esm-es5/ion-alert.entry.js +1 -1
  57. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  58. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  59. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  60. package/dist/esm-es5/ion-input.entry.js +1 -1
  61. package/dist/esm-es5/ion-loading.entry.js +1 -1
  62. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  63. package/dist/esm-es5/ion-modal.entry.js +1 -1
  64. package/dist/esm-es5/ion-popover.entry.js +1 -1
  65. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  66. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  67. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  68. package/dist/esm-es5/ion-toast.entry.js +1 -1
  69. package/dist/esm-es5/overlays-ae10d43d.js +4 -0
  70. package/dist/ionic/index.esm.js +1 -1
  71. package/dist/ionic/ionic.esm.js +1 -1
  72. package/dist/ionic/p-04fc24ee.system.js +4 -0
  73. package/dist/ionic/{p-ecb57d24.system.entry.js → p-0790b342.system.entry.js} +1 -1
  74. package/dist/ionic/{p-100b83fd.system.entry.js → p-110e03be.system.entry.js} +1 -1
  75. package/dist/ionic/p-148b8abb.entry.js +4 -0
  76. package/dist/ionic/{p-4b0fedb7.system.entry.js → p-18105026.system.entry.js} +1 -1
  77. package/dist/ionic/p-322c5fb4.system.js +1 -1
  78. package/dist/ionic/{p-d57661a1.entry.js → p-41c89b8d.entry.js} +1 -1
  79. package/dist/ionic/p-44d1539c.system.entry.js +4 -0
  80. package/dist/ionic/{p-772dacba.system.entry.js → p-53add985.system.entry.js} +1 -1
  81. package/dist/ionic/{p-08127172.entry.js → p-5800e441.entry.js} +1 -1
  82. package/dist/ionic/p-5c831f49.js +4 -0
  83. package/dist/ionic/p-60cc7986.entry.js +4 -0
  84. package/dist/ionic/{p-a72fb8a1.system.entry.js → p-63d65dbc.system.entry.js} +1 -1
  85. package/dist/ionic/p-6ceb04b5.entry.js +4 -0
  86. package/dist/ionic/{p-9fef1364.entry.js → p-6d50faff.entry.js} +1 -1
  87. package/dist/ionic/{p-a4d51b8d.system.js → p-79b12fda.system.js} +1 -1
  88. package/dist/ionic/{p-8ed31163.system.entry.js → p-79e7be3a.system.entry.js} +1 -1
  89. package/dist/ionic/p-82ab7ccb.entry.js +4 -0
  90. package/dist/ionic/{p-22c020db.system.entry.js → p-857ca696.system.entry.js} +1 -1
  91. package/dist/ionic/{p-9c23044d.entry.js → p-87a4407b.entry.js} +1 -1
  92. package/dist/ionic/{p-2b7c93b4.entry.js → p-9895e7f3.entry.js} +1 -1
  93. package/dist/ionic/p-9910f786.entry.js +4 -0
  94. package/dist/ionic/{p-5e66bcf2.entry.js → p-9e208825.entry.js} +1 -1
  95. package/dist/ionic/p-a89dac49.entry.js +4 -0
  96. package/dist/ionic/{p-85f73bdd.system.entry.js → p-ad9b5007.system.entry.js} +1 -1
  97. package/dist/ionic/{p-755b27f0.system.entry.js → p-be715dd3.system.entry.js} +1 -1
  98. package/dist/ionic/{p-ed6962d3.system.entry.js → p-be71fe0f.system.entry.js} +1 -1
  99. package/dist/ionic/{p-cff5585e.system.entry.js → p-c71f301f.system.entry.js} +1 -1
  100. package/dist/ionic/{p-a41699db.entry.js → p-d58f21d2.entry.js} +1 -1
  101. package/dist/ionic/{p-f50ae0d5.system.entry.js → p-d754c709.system.entry.js} +1 -1
  102. package/dist/ionic/p-dda5c73d.entry.js +4 -0
  103. package/dist/ionic/{p-9cc3bcc5.system.entry.js → p-f0ab13a8.system.entry.js} +1 -1
  104. package/dist/types/components/app/app.d.ts +0 -1
  105. package/dist/types/components/input/input.d.ts +3 -0
  106. package/dist/types/components/textarea/textarea.d.ts +3 -0
  107. package/dist/types/components.d.ts +3 -0
  108. package/hydrate/index.js +127 -30
  109. package/hydrate/index.mjs +127 -30
  110. package/package.json +1 -1
  111. package/dist/esm-es5/overlays-9c75ec54.js +0 -4
  112. package/dist/ionic/p-0fa0c92b.entry.js +0 -4
  113. package/dist/ionic/p-16207409.system.entry.js +0 -4
  114. package/dist/ionic/p-2c4bdd9d.entry.js +0 -4
  115. package/dist/ionic/p-854f9b64.entry.js +0 -4
  116. package/dist/ionic/p-98871496.system.js +0 -4
  117. package/dist/ionic/p-a440397c.js +0 -4
  118. package/dist/ionic/p-ab8a2ff1.entry.js +0 -4
  119. package/dist/ionic/p-b4c950f8.entry.js +0 -4
  120. package/dist/ionic/p-bfa2e81c.entry.js +0 -4
  121. package/dist/ionic/p-d77e12ca.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  var __awaiter=this&&this.__awaiter||function(t,e,n,i){function r(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,a){function o(t){try{d(i.next(t))}catch(t){a(t)}}function s(t){try{d(i["throw"](t))}catch(t){a(t)}}function d(t){t.done?n(t.value):r(t.value).then(o,s)}d((i=i.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,r,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(t){return function(e){return d([t,e])}}function d(s){if(i)throw new TypeError("Generator is already executing.");while(o&&(o=0,s[0]&&(n=0)),n)try{if(i=1,r&&(a=s[0]&2?r["return"]:s[0]?r["throw"]||((a=r["return"])&&a.call(r),0):r.next)&&!(a=a.call(r,s[1])).done)return a;if(r=0,a)s=[s[0]&2,a.value];switch(s[0]){case 0:case 1:a=s;break;case 4:n.label++;return{value:s[1],done:false};case 5:n.label++;r=s[1];s=[0];continue;case 7:s=n.ops.pop();n.trys.pop();continue;default:if(!(a=n.trys,a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]<a[3])){n.label=s[1];break}if(s[0]===6&&n.label<a[1]){n.label=a[1];a=s;break}if(a&&n.label<a[2]){n.label=a[2];n.ops.push(s);break}if(a[2])n.ops.pop();n.trys.pop();continue}s=e.call(t,n)}catch(t){s=[6,t];r=0}finally{i=a=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};
2
2
  /*!
3
3
  * (C) Ionic http://ionicframework.com - MIT License
4
- */System.register(["./p-25180df3.system.js","./p-f233f1e0.system.js","./p-3ad285e3.system.js","./p-4f255d5a.system.js","./p-ff4b7e40.system.js","./p-98871496.system.js","./p-4609d030.system.js","./p-a69b9fc5.system.js","./p-9146695e.system.js","./p-792919fd.system.js","./p-3e1e14d9.system.js","./p-9f3008d4.system.js","./p-8635f5e6.system.js","./p-20d469d0.system.js"],(function(t){"use strict";var e,n,i,r,a,o,s,d,u,c,l,f,h,p,b,m,v,g,x,w,y,k,j,_,T,Y,z,D,M;return{setters:[function(t){e=t.r;n=t.d;i=t.h;r=t.f;a=t.i},function(t){o=t.E;s=t.a},function(t){d=t.g;u=t.r},function(t){c=t.c},function(t){l=t.p},function(t){f=t.O;h=t.d;p=t.e;b=t.i;m=t.j;v=t.k;g=t.f;x=t.g;w=t.h;y=t.s;k=t.G},function(t){j=t.c;_=t.g},function(t){T=t.c;Y=t.b},function(t){z=t.c},function(t){D=t.w},function(t){M=t.createGesture},function(){},function(){},function(){}],execute:function(){function O(t,e,n,i){var r;if(n==="md"){r=t==="top"?8:-8}else{r=t==="top"?10:-10}if(e&&D){P(e,i);var a=e.getBoundingClientRect();if(t==="top"){r+=a.bottom}else if(t==="bottom"){r-=D.innerHeight-a.top}return{top:"".concat(r,"px"),bottom:"".concat(r,"px")}}else{return{top:"calc(".concat(r,"px + var(--ion-safe-area-top, 0px))"),bottom:"calc(".concat(r,"px - var(--ion-safe-area-bottom, 0px))")}}}function P(t,e){if(t.offsetParent===null){l("The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.",e)}}var I=function(t,e){return Math.floor(t/2-e/2)};var C=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":i.fromTo("transform","translateY(-100%)","translateY(".concat(a,")"));break;case"middle":var c=I(t.clientHeight,u.clientHeight);u.style.top="".concat(c,"px");i.fromTo("opacity",.01,1);break;default:i.fromTo("transform","translateY(100%)","translateY(".concat(o,")"));break}return n.easing("cubic-bezier(.155,1.105,.295,1.12)").duration(400).addAnimation(i)};var E=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":i.fromTo("transform","translateY(".concat(a,")"),"translateY(-100%)");break;case"middle":i.fromTo("opacity",.99,0);break;default:i.fromTo("transform","translateY(".concat(o,")"),"translateY(100%)");break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(i)};var W=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":u.style.setProperty("transform","translateY(".concat(a,")"));i.fromTo("opacity",.01,1);break;case"middle":var c=I(t.clientHeight,u.clientHeight);u.style.top="".concat(c,"px");i.fromTo("opacity",.01,1);break;default:u.style.setProperty("transform","translateY(".concat(o,")"));i.fromTo("opacity",.01,1);break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation(i)};var A=function(t){var e=z();var n=z();var i=d(t);var r=i.querySelector(".toast-wrapper");n.addElement(r).fromTo("opacity",.99,0);return e.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(n)};var H=function(t,e,n){var i=d(t).querySelector(".toast-wrapper");var r=t.clientHeight;var a=i.getBoundingClientRect();var o=0;var s=.5;var u=t.position==="middle"?.5:0;var c=t.position==="top"?-1:1;var l=I(r,a.height);var h=[{offset:0,transform:"translateY(-".concat(l+a.height,"px)")},{offset:.5,transform:"translateY(0px)"},{offset:1,transform:"translateY(".concat(l+a.height,"px)")}];var p=z("toast-swipe-to-dismiss-animation").addElement(i).duration(100);switch(t.position){case"middle":o=r+a.height;p.keyframes(h);p.progressStart(true,.5);break;case"top":o=a.bottom;p.keyframes([{offset:0,transform:"translateY(".concat(e.top,")")},{offset:1,transform:"translateY(-100%)"}]);p.progressStart(true,0);break;case"bottom":default:o=r-a.top;p.keyframes([{offset:0,transform:"translateY(".concat(e.bottom,")")},{offset:1,transform:"translateY(100%)"}]);p.progressStart(true,0);break}var b=function(t){return t*c/o};var m=function(t){var e=u+b(t.deltaY);p.progressStep(e)};var v=function(e){var r=e.velocityY;var a=(e.deltaY+r*1e3)/o*c;g.enable(false);var d=true;var u=1;var f=0;var m=0;if(t.position==="middle"){d=a>=s/2||a<=-s/2;u=1;f=0;var v=i.getBoundingClientRect();var x=v.top-l;var w="".concat(x,"px");var y=e.deltaY<=0?-1:1;var k=(l+v.height)*y;var j=d?"".concat(k,"px"):"0px";var _=[{offset:0,transform:"translateY(".concat(w,")")},{offset:1,transform:"translateY(".concat(j,")")}];p.keyframes(_);m=k-x}else{d=a>=s;u=d?1:0;f=b(e.deltaY);var T=d?1-f:f;m=T*o}var Y=Math.min(Math.abs(m)/Math.abs(r),200);p.onFinish((function(){if(d){n();p.destroy()}else{if(t.position==="middle"){p.keyframes(h).progressStart(true,.5)}else{p.progressStart(true,0)}g.enable(true)}}),{oneTimeCallback:true}).progressEnd(u,f,Y)};var g=M({el:i,gestureName:"toast-swipe-to-dismiss",gesturePriority:f,direction:"y",onMove:m,onEnd:v});return g};var L=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-radius:14px;--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--max-width:700px;--max-height:478px;--start:10px;--end:10px;font-size:clamp(14px, 0.875rem, 43.4px)}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-middle{opacity:0.01}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;min-height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:clamp(17px, 1.0625rem, 21.998px);font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";var G=L;var S=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, var(--ion-background-color-step-800, #333333));--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-50, var(--ion-text-color-step-950, #f2f2f2));--max-width:700px;--start:8px;--end:8px;font-size:0.875rem}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:1.25rem}.toast-message{line-height:1.25rem}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:0.875rem;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, var(--ion-text-color-step-900, #e6e6e6))}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";var N=S;var q=t("ion_toast",function(){function t(t){var i=this;e(this,t);this.didPresent=n(this,"ionToastDidPresent",7);this.willPresent=n(this,"ionToastWillPresent",7);this.willDismiss=n(this,"ionToastWillDismiss",7);this.didDismiss=n(this,"ionToastDidDismiss",7);this.didPresentShorthand=n(this,"didPresent",7);this.willPresentShorthand=n(this,"willPresent",7);this.willDismissShorthand=n(this,"willDismiss",7);this.didDismissShorthand=n(this,"didDismiss",7);this.delegateController=h(this);this.lockController=c();this.triggerController=p();this.customHTMLEnabled=T.get("innerHTMLTemplatesEnabled",o);this.presented=false;this.dispatchCancelHandler=function(t){var e=t.detail.role;if(b(e)){var n=i.getButtons().find((function(t){return t.role==="cancel"}));i.callButtonHandler(n)}};this.createSwipeGesture=function(t){var e=i.gesture=H(i.el,t,(function(){i.dismiss(undefined,k)}));e.enable(true)};this.destroySwipeGesture=function(){var t=i.gesture;if(t===undefined){return}t.destroy();i.gesture=undefined};this.prefersSwipeGesture=function(){var t=i.swipeGesture;return t==="vertical"};this.revealContentToScreenReader=false;this.overlayIndex=undefined;this.delegate=undefined;this.hasController=false;this.color=undefined;this.enterAnimation=undefined;this.leaveAnimation=undefined;this.cssClass=undefined;this.duration=T.getNumber("toastDuration",0);this.header=undefined;this.layout="baseline";this.message=undefined;this.keyboardClose=false;this.position="bottom";this.positionAnchor=undefined;this.buttons=undefined;this.translucent=false;this.animated=true;this.icon=undefined;this.htmlAttributes=undefined;this.swipeGesture=undefined;this.isOpen=false;this.trigger=undefined}t.prototype.swipeGestureChanged=function(){this.destroySwipeGesture();if(this.presented&&this.prefersSwipeGesture()){this.createSwipeGesture(this.lastPresentedPosition)}};t.prototype.onIsOpenChange=function(t,e){if(t===true&&e===false){this.present()}else if(t===false&&e===true){this.dismiss()}};t.prototype.triggerChanged=function(){var t=this,e=t.trigger,n=t.el,i=t.triggerController;if(e){i.addClickListener(n,e)}};t.prototype.connectedCallback=function(){m(this.el);this.triggerChanged()};t.prototype.disconnectedCallback=function(){this.triggerController.removeClickListener()};t.prototype.componentWillLoad=function(){var t;if(!((t=this.htmlAttributes)===null||t===void 0?void 0:t.id)){v(this.el)}};t.prototype.componentDidLoad=function(){var t=this;if(this.isOpen===true){u((function(){return t.present()}))}this.triggerChanged()};t.prototype.present=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,n,i,r,a;var o=this;return __generator(this,(function(s){switch(s.label){case 0:return[4,this.lockController.lock()];case 1:t=s.sent();return[4,this.delegateController.attachViewToDom()];case 2:s.sent();e=this,n=e.el,i=e.position;r=this.getAnchorElement();a=O(i,r,Y(this),n);this.lastPresentedPosition=a;return[4,g(this,"toastEnter",C,W,{position:i,top:a.top,bottom:a.bottom})];case 3:s.sent();this.revealContentToScreenReader=true;if(this.duration>0){this.durationTimeout=setTimeout((function(){return o.dismiss(undefined,"timeout")}),this.duration)}if(this.prefersSwipeGesture()){this.createSwipeGesture(a)}t();return[2]}}))}))};t.prototype.dismiss=function(t,e){return __awaiter(this,void 0,void 0,(function(){var n,i,r,a,o,s,d,u;return __generator(this,(function(c){switch(c.label){case 0:return[4,this.lockController.lock()];case 1:r=c.sent();a=this,o=a.durationTimeout,s=a.position,d=a.lastPresentedPosition;if(o){clearTimeout(o)}return[4,x(this,t,e,"toastLeave",E,A,{position:s,top:(n=d===null||d===void 0?void 0:d.top)!==null&&n!==void 0?n:"",bottom:(i=d===null||d===void 0?void 0:d.bottom)!==null&&i!==void 0?i:""})];case 2:u=c.sent();if(u){this.delegateController.removeViewFromDom();this.revealContentToScreenReader=false}this.lastPresentedPosition=undefined;this.destroySwipeGesture();r();return[2,u]}}))}))};t.prototype.onDidDismiss=function(){return w(this.el,"ionToastDidDismiss")};t.prototype.onWillDismiss=function(){return w(this.el,"ionToastWillDismiss")};t.prototype.getButtons=function(){var t=this.buttons?this.buttons.map((function(t){return typeof t==="string"?{text:t}:t})):[];return t};t.prototype.getAnchorElement=function(){var t=this,e=t.position,n=t.positionAnchor,i=t.el;if(n===undefined){return}if(e==="middle"&&n!==undefined){l('The positionAnchor property is ignored when using position="middle".',this.el);return undefined}if(typeof n==="string"){var r=document.getElementById(n);if(r===null){l('An anchor element with an ID of "'.concat(n,'" was not found in the DOM.'),i);return undefined}return r}if(n instanceof HTMLElement){return n}l("Invalid positionAnchor value:",n,i);return undefined};t.prototype.buttonClick=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(i){switch(i.label){case 0:e=t.role;if(b(e)){return[2,this.dismiss(undefined,e)]}return[4,this.callButtonHandler(t)];case 1:n=i.sent();if(n){return[2,this.dismiss(undefined,e)]}return[2,Promise.resolve()]}}))}))};t.prototype.callButtonHandler=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(i){switch(i.label){case 0:if(!(t===null||t===void 0?void 0:t.handler))return[3,4];i.label=1;case 1:i.trys.push([1,3,,4]);return[4,y(t.handler)];case 2:e=i.sent();if(e===false){return[2,false]}return[3,4];case 3:n=i.sent();console.error(n);return[3,4];case 4:return[2,true]}}))}))};t.prototype.renderButtons=function(t,e){var n;var r=this;if(t.length===0){return}var a=Y(this);var o=(n={"toast-button-group":true},n["toast-button-group-".concat(e)]=true,n);return i("div",{class:o},t.map((function(t){return i("button",Object.assign({},t.htmlAttributes,{type:"button",class:B(t),tabIndex:0,onClick:function(){return r.buttonClick(t)},part:F(t)}),i("div",{class:"toast-button-inner"},t.icon&&i("ion-icon",{"aria-hidden":"true",icon:t.icon,slot:t.text===undefined?"icon-only":undefined,class:"toast-button-icon"}),t.text),a==="md"&&i("ion-ripple-effect",{type:t.icon!==undefined&&t.text===undefined?"unbounded":"bounded"}))})))};t.prototype.renderToastMessage=function(t,e){if(e===void 0){e=null}var n=this,r=n.customHTMLEnabled,a=n.message;if(r){return i("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message",innerHTML:s(a)})}return i("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message"},a)};t.prototype.renderHeader=function(t,e){if(e===void 0){e=null}return i("div",{key:t,class:"toast-header","aria-hidden":e,part:"header"},this.header)};t.prototype.render=function(){var t,e;var n=this,a=n.layout,o=n.el,s=n.revealContentToScreenReader,d=n.header,u=n.message;var c=this.getButtons();var f=c.filter((function(t){return t.side==="start"}));var h=c.filter((function(t){return t.side!=="start"}));var p=Y(this);var b=(t={"toast-wrapper":true},t["toast-".concat(this.position)]=true,t["toast-layout-".concat(a)]=true,t);if(a==="stacked"&&f.length>0&&h.length>0){l("This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.",o)}return i(r,Object.assign({key:"68c336f80af04ba484ca9899bae8f40c0d9b7691",tabindex:"-1"},this.htmlAttributes,{style:{zIndex:"".concat(6e4+this.overlayIndex)},class:j(this.color,Object.assign(Object.assign((e={},e[p]=true,e),_(this.cssClass)),{"overlay-hidden":true,"toast-translucent":this.translucent})),onIonToastWillDismiss:this.dispatchCancelHandler}),i("div",{key:"3483b188f14b700964a123997a60a43a2023a1b6",class:b},i("div",{key:"1b88544a9b87253b364cbec6285625388979b560",class:"toast-container",part:"container"},this.renderButtons(f,"start"),this.icon!==undefined&&i("ion-icon",{key:"bd1c42e3b14af66b880dfe283e3ae910075c0f70",class:"toast-icon",part:"icon",icon:this.icon,lazy:false,"aria-hidden":"true"}),i("div",{key:"a5ef6cdabc1f7c70d11a5f2a0abf8737fe7550e8",class:"toast-content",role:"status","aria-atomic":"true","aria-live":"polite"},!s&&d!==undefined&&this.renderHeader("oldHeader","true"),!s&&u!==undefined&&this.renderToastMessage("oldMessage","true"),s&&d!==undefined&&this.renderHeader("header"),s&&u!==undefined&&this.renderToastMessage("header")),this.renderButtons(h,"end"))))};Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{swipeGesture:["swipeGestureChanged"],isOpen:["onIsOpenChange"],trigger:["triggerChanged"]}},enumerable:false,configurable:true});return t}());var B=function(t){var e;return e={"toast-button":true,"toast-button-icon-only":t.icon!==undefined&&t.text===undefined},e["toast-button-".concat(t.role)]=t.role!==undefined,e["ion-focusable"]=true,e["ion-activatable"]=true,e};var F=function(t){return b(t.role)?"button cancel":"button"};q.style={ios:G,md:N}}}}));
4
+ */System.register(["./p-25180df3.system.js","./p-f233f1e0.system.js","./p-3ad285e3.system.js","./p-4f255d5a.system.js","./p-ff4b7e40.system.js","./p-04fc24ee.system.js","./p-4609d030.system.js","./p-a69b9fc5.system.js","./p-9146695e.system.js","./p-792919fd.system.js","./p-3e1e14d9.system.js","./p-9f3008d4.system.js","./p-8635f5e6.system.js","./p-20d469d0.system.js"],(function(t){"use strict";var e,n,i,r,a,o,s,d,u,c,l,f,h,p,b,m,v,g,x,w,y,k,j,_,T,Y,z,D,M;return{setters:[function(t){e=t.r;n=t.d;i=t.h;r=t.f;a=t.i},function(t){o=t.E;s=t.a},function(t){d=t.g;u=t.r},function(t){c=t.c},function(t){l=t.p},function(t){f=t.O;h=t.d;p=t.e;b=t.i;m=t.j;v=t.k;g=t.f;x=t.g;w=t.h;y=t.s;k=t.G},function(t){j=t.c;_=t.g},function(t){T=t.c;Y=t.b},function(t){z=t.c},function(t){D=t.w},function(t){M=t.createGesture},function(){},function(){},function(){}],execute:function(){function O(t,e,n,i){var r;if(n==="md"){r=t==="top"?8:-8}else{r=t==="top"?10:-10}if(e&&D){P(e,i);var a=e.getBoundingClientRect();if(t==="top"){r+=a.bottom}else if(t==="bottom"){r-=D.innerHeight-a.top}return{top:"".concat(r,"px"),bottom:"".concat(r,"px")}}else{return{top:"calc(".concat(r,"px + var(--ion-safe-area-top, 0px))"),bottom:"calc(".concat(r,"px - var(--ion-safe-area-bottom, 0px))")}}}function P(t,e){if(t.offsetParent===null){l("The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.",e)}}var I=function(t,e){return Math.floor(t/2-e/2)};var C=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":i.fromTo("transform","translateY(-100%)","translateY(".concat(a,")"));break;case"middle":var c=I(t.clientHeight,u.clientHeight);u.style.top="".concat(c,"px");i.fromTo("opacity",.01,1);break;default:i.fromTo("transform","translateY(100%)","translateY(".concat(o,")"));break}return n.easing("cubic-bezier(.155,1.105,.295,1.12)").duration(400).addAnimation(i)};var E=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":i.fromTo("transform","translateY(".concat(a,")"),"translateY(-100%)");break;case"middle":i.fromTo("opacity",.99,0);break;default:i.fromTo("transform","translateY(".concat(o,")"),"translateY(100%)");break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(i)};var W=function(t,e){var n=z();var i=z();var r=e.position,a=e.top,o=e.bottom;var s=d(t);var u=s.querySelector(".toast-wrapper");i.addElement(u);switch(r){case"top":u.style.setProperty("transform","translateY(".concat(a,")"));i.fromTo("opacity",.01,1);break;case"middle":var c=I(t.clientHeight,u.clientHeight);u.style.top="".concat(c,"px");i.fromTo("opacity",.01,1);break;default:u.style.setProperty("transform","translateY(".concat(o,")"));i.fromTo("opacity",.01,1);break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation(i)};var A=function(t){var e=z();var n=z();var i=d(t);var r=i.querySelector(".toast-wrapper");n.addElement(r).fromTo("opacity",.99,0);return e.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(n)};var H=function(t,e,n){var i=d(t).querySelector(".toast-wrapper");var r=t.clientHeight;var a=i.getBoundingClientRect();var o=0;var s=.5;var u=t.position==="middle"?.5:0;var c=t.position==="top"?-1:1;var l=I(r,a.height);var h=[{offset:0,transform:"translateY(-".concat(l+a.height,"px)")},{offset:.5,transform:"translateY(0px)"},{offset:1,transform:"translateY(".concat(l+a.height,"px)")}];var p=z("toast-swipe-to-dismiss-animation").addElement(i).duration(100);switch(t.position){case"middle":o=r+a.height;p.keyframes(h);p.progressStart(true,.5);break;case"top":o=a.bottom;p.keyframes([{offset:0,transform:"translateY(".concat(e.top,")")},{offset:1,transform:"translateY(-100%)"}]);p.progressStart(true,0);break;case"bottom":default:o=r-a.top;p.keyframes([{offset:0,transform:"translateY(".concat(e.bottom,")")},{offset:1,transform:"translateY(100%)"}]);p.progressStart(true,0);break}var b=function(t){return t*c/o};var m=function(t){var e=u+b(t.deltaY);p.progressStep(e)};var v=function(e){var r=e.velocityY;var a=(e.deltaY+r*1e3)/o*c;g.enable(false);var d=true;var u=1;var f=0;var m=0;if(t.position==="middle"){d=a>=s/2||a<=-s/2;u=1;f=0;var v=i.getBoundingClientRect();var x=v.top-l;var w="".concat(x,"px");var y=e.deltaY<=0?-1:1;var k=(l+v.height)*y;var j=d?"".concat(k,"px"):"0px";var _=[{offset:0,transform:"translateY(".concat(w,")")},{offset:1,transform:"translateY(".concat(j,")")}];p.keyframes(_);m=k-x}else{d=a>=s;u=d?1:0;f=b(e.deltaY);var T=d?1-f:f;m=T*o}var Y=Math.min(Math.abs(m)/Math.abs(r),200);p.onFinish((function(){if(d){n();p.destroy()}else{if(t.position==="middle"){p.keyframes(h).progressStart(true,.5)}else{p.progressStart(true,0)}g.enable(true)}}),{oneTimeCallback:true}).progressEnd(u,f,Y)};var g=M({el:i,gestureName:"toast-swipe-to-dismiss",gesturePriority:f,direction:"y",onMove:m,onEnd:v});return g};var L=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-radius:14px;--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--max-width:700px;--max-height:478px;--start:10px;--end:10px;font-size:clamp(14px, 0.875rem, 43.4px)}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-middle{opacity:0.01}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;min-height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:clamp(17px, 1.0625rem, 21.998px);font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";var G=L;var S=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, var(--ion-background-color-step-800, #333333));--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-50, var(--ion-text-color-step-950, #f2f2f2));--max-width:700px;--start:8px;--end:8px;font-size:0.875rem}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:1.25rem}.toast-message{line-height:1.25rem}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:0.875rem;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, var(--ion-text-color-step-900, #e6e6e6))}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";var N=S;var q=t("ion_toast",function(){function t(t){var i=this;e(this,t);this.didPresent=n(this,"ionToastDidPresent",7);this.willPresent=n(this,"ionToastWillPresent",7);this.willDismiss=n(this,"ionToastWillDismiss",7);this.didDismiss=n(this,"ionToastDidDismiss",7);this.didPresentShorthand=n(this,"didPresent",7);this.willPresentShorthand=n(this,"willPresent",7);this.willDismissShorthand=n(this,"willDismiss",7);this.didDismissShorthand=n(this,"didDismiss",7);this.delegateController=h(this);this.lockController=c();this.triggerController=p();this.customHTMLEnabled=T.get("innerHTMLTemplatesEnabled",o);this.presented=false;this.dispatchCancelHandler=function(t){var e=t.detail.role;if(b(e)){var n=i.getButtons().find((function(t){return t.role==="cancel"}));i.callButtonHandler(n)}};this.createSwipeGesture=function(t){var e=i.gesture=H(i.el,t,(function(){i.dismiss(undefined,k)}));e.enable(true)};this.destroySwipeGesture=function(){var t=i.gesture;if(t===undefined){return}t.destroy();i.gesture=undefined};this.prefersSwipeGesture=function(){var t=i.swipeGesture;return t==="vertical"};this.revealContentToScreenReader=false;this.overlayIndex=undefined;this.delegate=undefined;this.hasController=false;this.color=undefined;this.enterAnimation=undefined;this.leaveAnimation=undefined;this.cssClass=undefined;this.duration=T.getNumber("toastDuration",0);this.header=undefined;this.layout="baseline";this.message=undefined;this.keyboardClose=false;this.position="bottom";this.positionAnchor=undefined;this.buttons=undefined;this.translucent=false;this.animated=true;this.icon=undefined;this.htmlAttributes=undefined;this.swipeGesture=undefined;this.isOpen=false;this.trigger=undefined}t.prototype.swipeGestureChanged=function(){this.destroySwipeGesture();if(this.presented&&this.prefersSwipeGesture()){this.createSwipeGesture(this.lastPresentedPosition)}};t.prototype.onIsOpenChange=function(t,e){if(t===true&&e===false){this.present()}else if(t===false&&e===true){this.dismiss()}};t.prototype.triggerChanged=function(){var t=this,e=t.trigger,n=t.el,i=t.triggerController;if(e){i.addClickListener(n,e)}};t.prototype.connectedCallback=function(){m(this.el);this.triggerChanged()};t.prototype.disconnectedCallback=function(){this.triggerController.removeClickListener()};t.prototype.componentWillLoad=function(){var t;if(!((t=this.htmlAttributes)===null||t===void 0?void 0:t.id)){v(this.el)}};t.prototype.componentDidLoad=function(){var t=this;if(this.isOpen===true){u((function(){return t.present()}))}this.triggerChanged()};t.prototype.present=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,n,i,r,a;var o=this;return __generator(this,(function(s){switch(s.label){case 0:return[4,this.lockController.lock()];case 1:t=s.sent();return[4,this.delegateController.attachViewToDom()];case 2:s.sent();e=this,n=e.el,i=e.position;r=this.getAnchorElement();a=O(i,r,Y(this),n);this.lastPresentedPosition=a;return[4,g(this,"toastEnter",C,W,{position:i,top:a.top,bottom:a.bottom})];case 3:s.sent();this.revealContentToScreenReader=true;if(this.duration>0){this.durationTimeout=setTimeout((function(){return o.dismiss(undefined,"timeout")}),this.duration)}if(this.prefersSwipeGesture()){this.createSwipeGesture(a)}t();return[2]}}))}))};t.prototype.dismiss=function(t,e){return __awaiter(this,void 0,void 0,(function(){var n,i,r,a,o,s,d,u;return __generator(this,(function(c){switch(c.label){case 0:return[4,this.lockController.lock()];case 1:r=c.sent();a=this,o=a.durationTimeout,s=a.position,d=a.lastPresentedPosition;if(o){clearTimeout(o)}return[4,x(this,t,e,"toastLeave",E,A,{position:s,top:(n=d===null||d===void 0?void 0:d.top)!==null&&n!==void 0?n:"",bottom:(i=d===null||d===void 0?void 0:d.bottom)!==null&&i!==void 0?i:""})];case 2:u=c.sent();if(u){this.delegateController.removeViewFromDom();this.revealContentToScreenReader=false}this.lastPresentedPosition=undefined;this.destroySwipeGesture();r();return[2,u]}}))}))};t.prototype.onDidDismiss=function(){return w(this.el,"ionToastDidDismiss")};t.prototype.onWillDismiss=function(){return w(this.el,"ionToastWillDismiss")};t.prototype.getButtons=function(){var t=this.buttons?this.buttons.map((function(t){return typeof t==="string"?{text:t}:t})):[];return t};t.prototype.getAnchorElement=function(){var t=this,e=t.position,n=t.positionAnchor,i=t.el;if(n===undefined){return}if(e==="middle"&&n!==undefined){l('The positionAnchor property is ignored when using position="middle".',this.el);return undefined}if(typeof n==="string"){var r=document.getElementById(n);if(r===null){l('An anchor element with an ID of "'.concat(n,'" was not found in the DOM.'),i);return undefined}return r}if(n instanceof HTMLElement){return n}l("Invalid positionAnchor value:",n,i);return undefined};t.prototype.buttonClick=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(i){switch(i.label){case 0:e=t.role;if(b(e)){return[2,this.dismiss(undefined,e)]}return[4,this.callButtonHandler(t)];case 1:n=i.sent();if(n){return[2,this.dismiss(undefined,e)]}return[2,Promise.resolve()]}}))}))};t.prototype.callButtonHandler=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(i){switch(i.label){case 0:if(!(t===null||t===void 0?void 0:t.handler))return[3,4];i.label=1;case 1:i.trys.push([1,3,,4]);return[4,y(t.handler)];case 2:e=i.sent();if(e===false){return[2,false]}return[3,4];case 3:n=i.sent();console.error(n);return[3,4];case 4:return[2,true]}}))}))};t.prototype.renderButtons=function(t,e){var n;var r=this;if(t.length===0){return}var a=Y(this);var o=(n={"toast-button-group":true},n["toast-button-group-".concat(e)]=true,n);return i("div",{class:o},t.map((function(t){return i("button",Object.assign({},t.htmlAttributes,{type:"button",class:B(t),tabIndex:0,onClick:function(){return r.buttonClick(t)},part:F(t)}),i("div",{class:"toast-button-inner"},t.icon&&i("ion-icon",{"aria-hidden":"true",icon:t.icon,slot:t.text===undefined?"icon-only":undefined,class:"toast-button-icon"}),t.text),a==="md"&&i("ion-ripple-effect",{type:t.icon!==undefined&&t.text===undefined?"unbounded":"bounded"}))})))};t.prototype.renderToastMessage=function(t,e){if(e===void 0){e=null}var n=this,r=n.customHTMLEnabled,a=n.message;if(r){return i("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message",innerHTML:s(a)})}return i("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message"},a)};t.prototype.renderHeader=function(t,e){if(e===void 0){e=null}return i("div",{key:t,class:"toast-header","aria-hidden":e,part:"header"},this.header)};t.prototype.render=function(){var t,e;var n=this,a=n.layout,o=n.el,s=n.revealContentToScreenReader,d=n.header,u=n.message;var c=this.getButtons();var f=c.filter((function(t){return t.side==="start"}));var h=c.filter((function(t){return t.side!=="start"}));var p=Y(this);var b=(t={"toast-wrapper":true},t["toast-".concat(this.position)]=true,t["toast-layout-".concat(a)]=true,t);if(a==="stacked"&&f.length>0&&h.length>0){l("This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.",o)}return i(r,Object.assign({key:"68c336f80af04ba484ca9899bae8f40c0d9b7691",tabindex:"-1"},this.htmlAttributes,{style:{zIndex:"".concat(6e4+this.overlayIndex)},class:j(this.color,Object.assign(Object.assign((e={},e[p]=true,e),_(this.cssClass)),{"overlay-hidden":true,"toast-translucent":this.translucent})),onIonToastWillDismiss:this.dispatchCancelHandler}),i("div",{key:"3483b188f14b700964a123997a60a43a2023a1b6",class:b},i("div",{key:"1b88544a9b87253b364cbec6285625388979b560",class:"toast-container",part:"container"},this.renderButtons(f,"start"),this.icon!==undefined&&i("ion-icon",{key:"bd1c42e3b14af66b880dfe283e3ae910075c0f70",class:"toast-icon",part:"icon",icon:this.icon,lazy:false,"aria-hidden":"true"}),i("div",{key:"a5ef6cdabc1f7c70d11a5f2a0abf8737fe7550e8",class:"toast-content",role:"status","aria-atomic":"true","aria-live":"polite"},!s&&d!==undefined&&this.renderHeader("oldHeader","true"),!s&&u!==undefined&&this.renderToastMessage("oldMessage","true"),s&&d!==undefined&&this.renderHeader("header"),s&&u!==undefined&&this.renderToastMessage("header")),this.renderButtons(h,"end"))))};Object.defineProperty(t.prototype,"el",{get:function(){return a(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{swipeGesture:["swipeGestureChanged"],isOpen:["onIsOpenChange"],trigger:["triggerChanged"]}},enumerable:false,configurable:true});return t}());var B=function(t){var e;return e={"toast-button":true,"toast-button-icon-only":t.icon!==undefined&&t.text===undefined},e["toast-button-".concat(t.role)]=t.role!==undefined,e["ion-focusable"]=true,e["ion-activatable"]=true,e};var F=function(t){return b(t.role)?"button cancel":"button"};q.style={ios:G,md:N}}}}));
@@ -4,7 +4,6 @@ export declare class App implements ComponentInterface {
4
4
  el: HTMLElement;
5
5
  componentDidLoad(): void;
6
6
  /**
7
- * @internal
8
7
  * Used to set focus on an element that uses `ion-focusable`.
9
8
  * Do not use this if focusing the element as a result of a keyboard
10
9
  * event as the focus utility should handle this for us. This method
@@ -11,6 +11,8 @@ import type { InputChangeEventDetail, InputInputEventDetail } from './input-inte
11
11
  export declare class Input implements ComponentInterface {
12
12
  private nativeInput?;
13
13
  private inputId;
14
+ private helperTextId;
15
+ private errorTextId;
14
16
  private inheritedAttributes;
15
17
  private isComposing;
16
18
  private slotMutationController?;
@@ -286,6 +288,7 @@ export declare class Input implements ComponentInterface {
286
288
  * Renders the helper text or error text values
287
289
  */
288
290
  private renderHintText;
291
+ private getHintTextID;
289
292
  private renderCounter;
290
293
  /**
291
294
  * Responsible for rendering helper text,
@@ -11,6 +11,8 @@ import type { TextareaChangeEventDetail, TextareaInputEventDetail } from './text
11
11
  export declare class Textarea implements ComponentInterface {
12
12
  private nativeInput?;
13
13
  private inputId;
14
+ private helperTextId;
15
+ private errorTextId;
14
16
  /**
15
17
  * `true` if the textarea was cleared as a result of the user typing
16
18
  * with `clearOnEdit` enabled.
@@ -257,6 +259,7 @@ export declare class Textarea implements ComponentInterface {
257
259
  * Renders the helper text or error text values
258
260
  */
259
261
  private renderHintText;
262
+ private getHintTextID;
260
263
  private renderCounter;
261
264
  /**
262
265
  * Responsible for rendering helper text,
@@ -304,6 +304,9 @@ export namespace Components {
304
304
  "trigger": string | undefined;
305
305
  }
306
306
  interface IonApp {
307
+ /**
308
+ * Used to set focus on an element that uses `ion-focusable`. Do not use this if focusing the element as a result of a keyboard event as the focus utility should handle this for us. This method should be used when we want to programmatically focus an element as a result of another user action. (Ex: We focus the first element inside of a popover when the user presents it, but the popover is not always presented as a result of keyboard action.)
309
+ */
307
310
  "setFocus": (elements: HTMLElement[]) => Promise<void>;
308
311
  }
309
312
  interface IonAvatar {
package/hydrate/index.js CHANGED
@@ -5014,9 +5014,19 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
5014
5014
  if (overlay.presented) {
5015
5015
  return;
5016
5016
  }
5017
- setRootAriaHidden(true);
5017
+ /**
5018
+ * Due to accessibility guidelines, toasts do not have
5019
+ * focus traps.
5020
+ *
5021
+ * All other overlays should have focus traps to prevent
5022
+ * the keyboard focus from leaving the overlay.
5023
+ */
5024
+ if (overlay.el.tagName !== 'ION-TOAST') {
5025
+ setRootAriaHidden(true);
5026
+ }
5018
5027
  document.body.classList.add(BACKDROP_NO_SCROLL);
5019
- hideOverlaysFromScreenReaders(overlay.el);
5028
+ hideUnderlyingOverlaysFromScreenReaders(overlay.el);
5029
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
5020
5030
  overlay.presented = true;
5021
5031
  overlay.willPresent.emit();
5022
5032
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -5056,6 +5066,11 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
5056
5066
  * it would still have aria-hidden on being presented again.
5057
5067
  * Removing it here ensures the overlay is visible to screen
5058
5068
  * readers.
5069
+ *
5070
+ * If this overlay was being presented, then it was hidden
5071
+ * from screen readers during the animation. Now that the
5072
+ * animation is complete, we can reveal the overlay to
5073
+ * screen readers.
5059
5074
  */
5060
5075
  overlay.el.removeAttribute('aria-hidden');
5061
5076
  };
@@ -5113,17 +5128,35 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5113
5128
  if (!overlay.presented) {
5114
5129
  return false;
5115
5130
  }
5116
- const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
5117
5131
  /**
5118
- * If this is the last visible overlay then
5119
- * we want to re-add the root to the accessibility tree.
5132
+ * For accessibility, toasts lack focus traps and don’t receive
5133
+ * `aria-hidden` on the root element when presented.
5134
+ *
5135
+ * All other overlays use focus traps to keep keyboard focus
5136
+ * within the overlay, setting `aria-hidden` on the root element
5137
+ * to enhance accessibility.
5138
+ *
5139
+ * Therefore, we must remove `aria-hidden` from the root element
5140
+ * when the last non-toast overlay is dismissed.
5141
+ */
5142
+ const overlaysNotToast = doc !== undefined ? getPresentedOverlays(doc).filter((o) => o.tagName !== 'ION-TOAST') : [];
5143
+ const lastOverlayNotToast = overlaysNotToast.length === 1 && overlaysNotToast[0].id === overlay.el.id;
5144
+ /**
5145
+ * If this is the last visible overlay that is not a toast
5146
+ * then we want to re-add the root to the accessibility tree.
5120
5147
  */
5121
- if (lastOverlay) {
5148
+ if (lastOverlayNotToast) {
5122
5149
  setRootAriaHidden(false);
5123
5150
  document.body.classList.remove(BACKDROP_NO_SCROLL);
5124
5151
  }
5125
5152
  overlay.presented = false;
5126
5153
  try {
5154
+ /**
5155
+ * There is no need to show the overlay to screen readers during
5156
+ * the dismiss animation. This is because the overlay will be removed
5157
+ * from the DOM after the animation is complete.
5158
+ */
5159
+ hideAnimatingOverlayFromScreenReaders(overlay.el);
5127
5160
  // Overlay contents should not be clickable during dismiss
5128
5161
  overlay.el.style.setProperty('pointer-events', 'none');
5129
5162
  overlay.willDismiss.emit({ data, role });
@@ -5358,6 +5391,28 @@ const createTriggerController = () => {
5358
5391
  removeClickListener,
5359
5392
  };
5360
5393
  };
5394
+ /**
5395
+ * The overlay that is being animated also needs to hide from screen
5396
+ * readers during its animation. This ensures that assistive technologies
5397
+ * like TalkBack do not announce or interact with the content until the
5398
+ * animation is complete, avoiding confusion for users.
5399
+ *
5400
+ * If the overlay is being presented, it prevents focus rings from appearing
5401
+ * in incorrect positions due to the transition (specifically `transform`
5402
+ * styles), ensuring that when aria-hidden is removed, the focus rings are
5403
+ * correctly displayed in the final location of the elements.
5404
+ *
5405
+ * @param overlay - The overlay that is being animated.
5406
+ */
5407
+ const hideAnimatingOverlayFromScreenReaders = (overlay) => {
5408
+ if (doc === undefined)
5409
+ return;
5410
+ /**
5411
+ * Once the animation is complete, this attribute will be removed.
5412
+ * This is done at the end of the `present` method.
5413
+ */
5414
+ overlay.setAttribute('aria-hidden', 'true');
5415
+ };
5361
5416
  /**
5362
5417
  * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
5363
5418
  * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
@@ -5368,7 +5423,7 @@ const createTriggerController = () => {
5368
5423
  * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
5369
5424
  * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
5370
5425
  */
5371
- const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
5426
+ const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
5372
5427
  var _a;
5373
5428
  if (doc === undefined)
5374
5429
  return;
@@ -6551,10 +6606,10 @@ class ActionSheet {
6551
6606
  const headerID = `action-sheet-${overlayIndex}-header`;
6552
6607
  return (hAsync(Host, Object.assign({ key: '7bbd202ca9e19727e7514abbe073687d982f80c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
6553
6608
  zIndex: `${20000 + this.overlayIndex}`,
6554
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '23344a9221a2e6720d7b9de5249dc37256cafa7b', tappable: this.backdropDismiss }), hAsync("div", { key: 'd46361bb5cdc32a7922dcf76b566f358a6174bfa', tabindex: "0" }), hAsync("div", { key: '136c3f2e77c8a2eac8e9ae4bb13d735e1d62598d', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '6168ea8b2be42020b2edeb8ff3a0f3d1254be37a', class: "action-sheet-container" }, hAsync("div", { key: '29b9e6619dc54574733a704d6bf885839151bd84', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (hAsync("div", { key: '536ce764bfddb3816ea3512d90f4acef2ccb8589', id: headerID, class: {
6609
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '23344a9221a2e6720d7b9de5249dc37256cafa7b', tappable: this.backdropDismiss }), hAsync("div", { key: 'fbc2ba15549c2ab04e759e82df6e177fd80cc0a6', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '748ee5235d0b4cb26d6f1b7589f77af2e37ad28a', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '7ce5fa236cf75e9b1e49c4725c9a811078706554', class: "action-sheet-container" }, hAsync("div", { key: 'dc2251f3bcee4a93e3449f09621cbd2b65d329e9', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (hAsync("div", { key: '48d325c8a852f56ed57a9ada1a6709d05ba32ee2', id: headerID, class: {
6555
6610
  'action-sheet-title': true,
6556
6611
  'action-sheet-has-sub-title': this.subHeader !== undefined,
6557
- } }, header, this.subHeader && hAsync("div", { key: '6d888219145824fd36cdfe0d3c8388bbf2769777', class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { key: '46f98f0ed5a9bdb3e35feb9ae71c4489c17b7d77', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'e3c457bced8ad5f692e48de26e65f731fd631b4f' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '4cba6dc559f734ecc852e024959210cd0dd25354', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '9df64989aad1b4d1e75edf4d37ab208965cfe37f', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '558089275a29177cefdb2e38eefc9b5c8b62872b' })))))), hAsync("div", { key: 'fa4df6e043b00a6e4126dbc71cb344cfc2b2e7bc', tabindex: "0" })));
6612
+ } }, header, this.subHeader && hAsync("div", { key: '66093728052eb67f37a35f3232761ce4a08896f3', class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { key: 'f4eb8e3e2885b85af5080df18d0de0bdd1d719de', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '169f4eb09255aba85062baad49ceb151239fbfb7' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '25fb8a466dd67ea94c79cfb4f9965527e1ce6d42', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'eb5b071e120a2c86afdf967af6a763a43044d1ca', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '452ad7e1052b2c681e2d98de8193949755ad4d54' })))))), hAsync("div", { key: 'e1cecf280c987c050d9445e2c458b903f153089b', tabindex: "0", "aria-hidden": "true" })));
6558
6613
  }
6559
6614
  get el() { return getElement(this); }
6560
6615
  static get watchers() { return {
@@ -7242,7 +7297,7 @@ class Alert {
7242
7297
  const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
7243
7298
  return (hAsync(Host, Object.assign({ key: 'c7d53f48b359f2bc3480a2e1ba34948fc9378fb0', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7244
7299
  zIndex: `${20000 + overlayIndex}`,
7245
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '18c7e6b5d63435d9a6a82bda951158e7e1af6e92', tappable: this.backdropDismiss }), hAsync("div", { key: 'e35e1a4b81286976c8a6bab570c986f3196b21f4', tabindex: "0" }), hAsync("div", { key: '9089864c80d96ed834bf723f3de863cf1c4a5b97', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'dd600f02c84352059c6cdf98821b9c9a831bcdcb', class: "alert-head" }, header && (hAsync("h2", { key: '11afb605e1ccefc889fbdd2533d491bea8fbf183', id: hdrId, class: "alert-title" }, header)), subHeader && (hAsync("h2", { key: 'e53b0613d09d26e5a2cd7c9c6e63ec2535625ce5', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'cef60ec8b34c9aec8bc698f16f55324d1ce67c72', tabindex: "0" })));
7300
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '18c7e6b5d63435d9a6a82bda951158e7e1af6e92', tappable: this.backdropDismiss }), hAsync("div", { key: '8ea08a2a70239e817442c12596f51b108aca428c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '215ca5d72b8b180788e9748f5f22de01fa5a152a', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '9880acd318428d4b5d670c67dd156477877f99f2', class: "alert-head" }, header && (hAsync("h2", { key: '612dec8dc9bfdcb36e1e4655dc214b7c229b20c8', id: hdrId, class: "alert-title" }, header)), subHeader && (hAsync("h2", { key: 'e3c54c80a1cd9399595064b5a0a887c16fdc8ff8', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '9062655e906b5caf36df6f742fd412552ae510be', tabindex: "0", "aria-hidden": "true" })));
7246
7301
  }
7247
7302
  get el() { return getElement(this); }
7248
7303
  static get watchers() { return {
@@ -7305,7 +7360,6 @@ class App {
7305
7360
  componentDidLoad() {
7306
7361
  }
7307
7362
  /**
7308
- * @internal
7309
7363
  * Used to set focus on an element that uses `ion-focusable`.
7310
7364
  * Do not use this if focusing the element as a result of a keyboard
7311
7365
  * event as the focus utility should handle this for us. This method
@@ -7321,7 +7375,7 @@ class App {
7321
7375
  }
7322
7376
  render() {
7323
7377
  const mode = getIonMode$1(this);
7324
- return (hAsync(Host, { key: 'a562850f242d9d45573e35efdd4bd178254677ef', class: {
7378
+ return (hAsync(Host, { key: 'e95cdeb2709edbc74f4e6ebf77cb110154605b72', class: {
7325
7379
  [mode]: true,
7326
7380
  'ion-page': true,
7327
7381
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -7503,7 +7557,7 @@ class Backdrop {
7503
7557
  }
7504
7558
  render() {
7505
7559
  const mode = getIonMode$1(this);
7506
- return (hAsync(Host, { key: 'c803b4302c8e722064feb03dafe3cb6e190b4f2b', tabindex: "-1", "aria-hidden": "true", class: {
7560
+ return (hAsync(Host, { key: 'fe191068e2aaadfdbe7a463c08d227a1b36d7a98', "aria-hidden": "true", class: {
7507
7561
  [mode]: true,
7508
7562
  'backdrop-hide': !this.visible,
7509
7563
  'backdrop-no-tappable': !this.tappable,
@@ -14962,6 +15016,8 @@ class Input {
14962
15016
  this.ionBlur = createEvent(this, "ionBlur", 7);
14963
15017
  this.ionFocus = createEvent(this, "ionFocus", 7);
14964
15018
  this.inputId = `ion-input-${inputIds++}`;
15019
+ this.helperTextId = `${this.inputId}-helper-text`;
15020
+ this.errorTextId = `${this.inputId}-error-text`;
14965
15021
  this.inheritedAttributes = {};
14966
15022
  this.isComposing = false;
14967
15023
  /**
@@ -15224,8 +15280,21 @@ class Input {
15224
15280
  * Renders the helper text or error text values
15225
15281
  */
15226
15282
  renderHintText() {
15227
- const { helperText, errorText } = this;
15228
- return [hAsync("div", { class: "helper-text" }, helperText), hAsync("div", { class: "error-text" }, errorText)];
15283
+ const { helperText, errorText, helperTextId, errorTextId } = this;
15284
+ return [
15285
+ hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
15286
+ hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
15287
+ ];
15288
+ }
15289
+ getHintTextID() {
15290
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
15291
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
15292
+ return errorTextId;
15293
+ }
15294
+ if (helperText) {
15295
+ return helperTextId;
15296
+ }
15297
+ return undefined;
15229
15298
  }
15230
15299
  renderCounter() {
15231
15300
  const { counter, maxlength, counterFormatter, value } = this;
@@ -15332,7 +15401,7 @@ class Input {
15332
15401
  * TODO(FW-5592): Remove hasStartEndSlots condition
15333
15402
  */
15334
15403
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
15335
- return (hAsync(Host, { key: '907ce98a82b5cfae5a08504cd79e00a2330b7444', class: createColorClasses$1(this.color, {
15404
+ return (hAsync(Host, { key: 'cdde9963d71685e6a4f3f3b3bc52e75d022435cb', class: createColorClasses$1(this.color, {
15336
15405
  [mode]: true,
15337
15406
  'has-value': hasValue,
15338
15407
  'has-focus': hasFocus,
@@ -15343,7 +15412,7 @@ class Input {
15343
15412
  'in-item': inItem,
15344
15413
  'in-item-color': hostContext('ion-item.ion-color', this.el),
15345
15414
  'input-disabled': disabled,
15346
- }) }, hAsync("label", { key: '59d5bb45d2a5b828bba0ed8687a632a551e2f4d8', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: 'f93f129d08246d0e9a601c100d718534d6403853', class: "native-wrapper" }, hAsync("slot", { key: '54eeb1a6bace662b7eb0d7e27180ea3d7e3a3729', name: "start" }), hAsync("input", Object.assign({ key: 'b3e0be55bc1a4a539ae3b0fdcf7fc078723cca16', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '5f6373504a6d0d074bfbf875c794d45ea2748175', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15415
+ }) }, hAsync("label", { key: '4412791c93405f20e50e50363879265180b6078f', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '5c71c43ef3eeb44dde76ed64ce10763834c8fbc7', class: "native-wrapper" }, hAsync("slot", { key: '1d86b58dc299a4208dd02ccdc9ceaea7576698c3', name: "start" }), hAsync("input", Object.assign({ key: '7fc932174485f7d09e6a797dfd49ea11fbad71b6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '46de455e4e308b8d7640b04778f7c7559b4124c6', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15347
15416
  /**
15348
15417
  * This prevents mobile browsers from
15349
15418
  * blurring the input when the clear
@@ -15358,7 +15427,7 @@ class Input {
15358
15427
  * for screen readers as it means users would be unable to swipe past the clear button.
15359
15428
  */
15360
15429
  ev.stopPropagation();
15361
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '230d77973aa83458ceb32bf52e3abe9bc322cfe6', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '9d69ac6e8a3c4b2b303dba2478f82695d5755ed2', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'ac61f16237ce731e0745ab72d0fc3f066252464a', class: "input-highlight" })), this.renderBottomContent()));
15430
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '375e860a20e1807ce0db0e1934a0650fe9929966', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '859d47a1b88aa8377479e5d11e52a6a1c1c30e7e', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'd2d4286b348107e33247b5c0afda0f8bd697ecee', class: "input-highlight" })), this.renderBottomContent()));
15362
15431
  }
15363
15432
  get el() { return getElement(this); }
15364
15433
  static get watchers() { return {
@@ -16894,7 +16963,7 @@ class Loading {
16894
16963
  const ariaLabelledBy = message !== undefined ? msgId : null;
16895
16964
  return (hAsync(Host, Object.assign({ key: 'fb3d2cd7cd0539ed6540d8be50e243c7916b3ca2', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
16896
16965
  zIndex: `${40000 + this.overlayIndex}`,
16897
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'c8bd30782f3040b1b80e88aa924861e439d40754', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4ebfbb67c92e8eb56c27dd7c199b35bf6be1cf63', tabindex: "0" }), hAsync("div", { key: '9492723cd87f1ef75534e449d4bc2b2deb0cb3cc', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'd9eb42454e48c82704d974a68b80ceb4de990417', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'cdb046bad89872f4208ae466979315652766bf3a', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '412d1bb537dafa6e6863d07ddc15f5969fe0617d', tabindex: "0" })));
16966
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'c8bd30782f3040b1b80e88aa924861e439d40754', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7ad4447fafa49aa861d311221b8c2e8171b4c610', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '1879df0d895eb8ee20ccdc94dd35d708c1140b91', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '220f292c136681f5fa91f94669aac75b15e490ce', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'd599084a1426d941bdd080a988d8ad5b9589b823', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'e443897b353a48e0c72718dba04d83d7c5070d73', tabindex: "0", "aria-hidden": "true" })));
16898
16967
  }
16899
16968
  get el() { return getElement(this); }
16900
16969
  static get watchers() { return {
@@ -21888,7 +21957,7 @@ class Picker {
21888
21957
  zIndex: `${20000 + this.overlayIndex}`,
21889
21958
  }, class: Object.assign({ [mode]: true,
21890
21959
  // Used internally for styling
21891
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'da4224447bdbcfbadd1bd63ebe7a7bfdb8aa3129', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '211475c859b7acf4d64556905c45993201d92d43', tabindex: "0" }), hAsync("div", { key: 'c3b3674038155809caea84ae6348ff0d66897a64', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'a21757da70dc7864945a5751d9da3ca4bf87897b', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '0220da1854d09ef22d2d9a32eaa3c3b222be5a0a', class: "picker-columns" }, hAsync("div", { key: '55757c165ba9e38e56b4dee76a9b13d3ff8b21e6', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '160092a46a48287bf75e5dfe3502f1755a2d0c70', class: "picker-below-highlight" }))), hAsync("div", { key: 'e212db6cca7d75fc0eda0baf4312dd51b9b7a4ef', tabindex: "0" })));
21960
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'da4224447bdbcfbadd1bd63ebe7a7bfdb8aa3129', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '65eba425990a21be00fdac90de20a630d284cf97', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'd78ada360801b2c051baa030751f3d83ac81e697', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'd5bd9ddfbdbdaf42048a1496e7939eb3aee6da65', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '96ee1e3ec77c57174b1a93135b66bea6b7002555', class: "picker-columns" }, hAsync("div", { key: 'e11b1c238f350e65bde2ee67eee9d71c830e74e7', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '4d5fc7c723185111ec01fd34ef95a897c301238d', class: "picker-below-highlight" }))), hAsync("div", { key: '899bcad97609c1d971c1b886551db5ba0248a9f4', tabindex: "0", "aria-hidden": "true" })));
21892
21961
  }
21893
21962
  get el() { return getElement(this); }
21894
21963
  static get watchers() { return {
@@ -28844,21 +28913,34 @@ class Segment {
28844
28913
  */
28845
28914
  const centeredX = activeButtonLeft - scrollContainerBox.width / 2 + activeButtonBox.width / 2;
28846
28915
  /**
28847
- * We intentionally use scrollBy here instead of scrollIntoView
28916
+ * newScrollPosition is the absolute scroll position that the
28917
+ * container needs to move to in order to center the active button.
28918
+ * It is calculated by adding the current scroll position
28919
+ * (scrollLeft) to the offset needed to center the button
28920
+ * (centeredX).
28921
+ */
28922
+ const newScrollPosition = el.scrollLeft + centeredX;
28923
+ /**
28924
+ * We intentionally use scrollTo here instead of scrollIntoView
28848
28925
  * to avoid a WebKit bug where accelerated animations break
28849
28926
  * when using scrollIntoView. Using scrollIntoView will cause the
28850
28927
  * segment container to jump during the transition and then snap into place.
28851
28928
  * This is because scrollIntoView can potentially cause parent element
28852
- * containers to also scroll. scrollBy does not have this same behavior, so
28929
+ * containers to also scroll. scrollTo does not have this same behavior, so
28853
28930
  * we use this API instead.
28854
28931
  *
28932
+ * scrollTo is used instead of scrollBy because there is a
28933
+ * Webkit bug that causes scrollBy to not work smoothly when
28934
+ * the active button is near the edge of the scroll container.
28935
+ * This leads to the buttons to jump around during the transition.
28936
+ *
28855
28937
  * Note that if there is not enough scrolling space to center the element
28856
28938
  * within the scroll container, the browser will attempt
28857
28939
  * to center by as much as it can.
28858
28940
  */
28859
- el.scrollBy({
28941
+ el.scrollTo({
28860
28942
  top: 0,
28861
- left: centeredX,
28943
+ left: newScrollPosition,
28862
28944
  behavior: smoothScroll ? 'smooth' : 'instant',
28863
28945
  });
28864
28946
  }
@@ -28987,14 +29069,14 @@ class Segment {
28987
29069
  }
28988
29070
  render() {
28989
29071
  const mode = getIonMode$1(this);
28990
- return (hAsync(Host, { key: 'ad0946134c8d465b760ad792655f1cb9922db520', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29072
+ return (hAsync(Host, { key: 'f1f7103b4c298e037df850ac809a1a7c6e9987a7', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
28991
29073
  [mode]: true,
28992
29074
  'in-toolbar': hostContext('ion-toolbar', this.el),
28993
29075
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
28994
29076
  'segment-activated': this.activated,
28995
29077
  'segment-disabled': this.disabled,
28996
29078
  'segment-scrollable': this.scrollable,
28997
- }) }, hAsync("slot", { key: 'dcdb425bcda0d60acb7c317e5e671ed462715b4a', onSlotchange: this.onSlottedItemsChange })));
29079
+ }) }, hAsync("slot", { key: '6efdb318b13da8d21687084aa0761728fdf12579', onSlotchange: this.onSlottedItemsChange })));
28998
29080
  }
28999
29081
  get el() { return getElement(this); }
29000
29082
  static get watchers() { return {
@@ -30692,6 +30774,8 @@ class Textarea {
30692
30774
  this.ionBlur = createEvent(this, "ionBlur", 7);
30693
30775
  this.ionFocus = createEvent(this, "ionFocus", 7);
30694
30776
  this.inputId = `ion-textarea-${textareaIds++}`;
30777
+ this.helperTextId = `${this.inputId}-helper-text`;
30778
+ this.errorTextId = `${this.inputId}-error-text`;
30695
30779
  /**
30696
30780
  * `true` if the textarea was cleared as a result of the user typing
30697
30781
  * with `clearOnEdit` enabled.
@@ -30969,8 +31053,21 @@ class Textarea {
30969
31053
  * Renders the helper text or error text values
30970
31054
  */
30971
31055
  renderHintText() {
30972
- const { helperText, errorText } = this;
30973
- return [hAsync("div", { class: "helper-text" }, helperText), hAsync("div", { class: "error-text" }, errorText)];
31056
+ const { helperText, errorText, helperTextId, errorTextId } = this;
31057
+ return [
31058
+ hAsync("div", { id: helperTextId, class: "helper-text" }, helperText),
31059
+ hAsync("div", { id: errorTextId, class: "error-text" }, errorText),
31060
+ ];
31061
+ }
31062
+ getHintTextID() {
31063
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
31064
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
31065
+ return errorTextId;
31066
+ }
31067
+ if (helperText) {
31068
+ return helperTextId;
31069
+ }
31070
+ return undefined;
30974
31071
  }
30975
31072
  renderCounter() {
30976
31073
  const { counter, maxlength, counterFormatter, value } = this;
@@ -31023,7 +31120,7 @@ class Textarea {
31023
31120
  * TODO(FW-5592): Remove hasStartEndSlots condition
31024
31121
  */
31025
31122
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31026
- return (hAsync(Host, { key: '37595a18d77dea1a337ac1c672e5f08a4128111d', class: createColorClasses$1(this.color, {
31123
+ return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
31027
31124
  [mode]: true,
31028
31125
  'has-value': hasValue,
31029
31126
  'has-focus': hasFocus,
@@ -31032,7 +31129,7 @@ class Textarea {
31032
31129
  [`textarea-shape-${shape}`]: shape !== undefined,
31033
31130
  [`textarea-label-placement-${labelPlacement}`]: true,
31034
31131
  'textarea-disabled': disabled,
31035
- }) }, hAsync("label", { key: '67342758743e5a40448a32ff695876d39778621f', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: 'a994be8264bf5652811cf816d79a04178954e83f', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e09c93ebcd5b3d227d51e682ca23dfc7fd7027ad', class: "start-slot-wrapper" }, hAsync("slot", { key: 'd39758f21f19ae70aea21e9a9a7b7c20991fe593', name: "start" })), hAsync("div", { key: '6a4e10e53de4bb235ee30def4c9ae5bdee888816', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '9e254e551f124d972e9bc6b09ef0f2bb55890be5', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), hAsync("div", { key: 'a66aa2d2bc4778a0bec56a8b9ec9052a832eb3b2', class: "end-slot-wrapper" }, hAsync("slot", { key: '8e6a90b4475de32e23afc593da4108610dcca663', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '6da03205a8daff45581b20f0af3938634a9d5f8c', class: "textarea-highlight" })), this.renderBottomContent()));
31132
+ }) }, hAsync("label", { key: '48e889571e2d3e7e150b038e4b4b15862b418288', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '6c6c7872ae4d351d8b8d772ad18ce3ba7a0e9a87', class: "textarea-wrapper-inner" }, hAsync("div", { key: '03aef5dfa59af0fa78a3e5c92e0ed72396717d72', class: "start-slot-wrapper" }, hAsync("slot", { key: '39aee9faebb0f1d10de5a5817fd9d9771b074b96', name: "start" })), hAsync("div", { key: '738e8ff603f4c9b9083b3139db861f4b7ec20f79', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '7763fb4f8ffe94635167331c70d21d661544c4f8', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: 'b3af9ec0982c6dbd381afaa02df153d7e90471be', class: "end-slot-wrapper" }, hAsync("slot", { key: '60f99bcd49a5ec2e1fa6e3e77809aefeb9d2d0d6', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '6a7f45639ba027f4da573adae53f1197a6dec383', class: "textarea-highlight" })), this.renderBottomContent()));
31036
31133
  }
31037
31134
  get el() { return getElement(this); }
31038
31135
  static get watchers() { return {