voyager-ionic-core 8.8.6 → 8.8.8
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.
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/{p-0z8QSI5b.js → p-BeXMwcl5.js} +1 -1
- package/components/p-CEmXdzGo.js +4 -0
- package/components/{p-BlNv564p.js → p-Cf6Z1pmL.js} +1 -1
- package/components/{p-BGHGpkPX.js → p-Q1-Xy3As.js} +1 -1
- package/components/p-ZuZOauwD.js +4 -0
- package/dist/cjs/{input-shims-Dl5cnc_e.js → input-shims-CPL2J8F-.js} +0 -6
- package/dist/cjs/ion-alert.cjs.entry.js +66 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-modal.cjs.entry.js +9 -9
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/alert/alert.js +71 -4
- package/dist/collection/components/content/content.css +1 -1
- package/dist/collection/components/modal/modal.js +9 -9
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +0 -7
- package/dist/docs.json +1 -1
- package/dist/esm/{input-shims-AaDhOpKN.js → input-shims-DbrgeeNb.js} +1 -7
- package/dist/esm/ion-alert.entry.js +66 -4
- package/dist/esm/ion-app_8.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +9 -9
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-cb27fe68.entry.js → p-050873ec.entry.js} +1 -1
- package/dist/ionic/p-164f79c4.entry.js +4 -0
- package/dist/ionic/p-DcSNwXfb.js +4 -0
- package/dist/ionic/p-f3e7b155.entry.js +4 -0
- package/dist/types/components/alert/alert.d.ts +5 -0
- package/dist/types/components/modal/modal.d.ts +3 -3
- package/hydrate/index.js +77 -14
- package/hydrate/index.mjs +77 -14
- package/package.json +4 -4
- package/components/p-CH0NYjKq.js +0 -4
- package/components/p-Cwv-vmkN.js +0 -4
- package/dist/ionic/p-1b02923f.entry.js +0 -4
- package/dist/ionic/p-CYvM5g3q.js +0 -4
- package/dist/ionic/p-ce2edb36.entry.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import{r as t,c as e,e as i,f as r,i as o,h as a,d as n,g as l}from"./p-IGIE5vDm.js";import{E as s,a as d}from"./p-gbVXD275.js";import{c}from"./p-BxIcPWoV.js";import{r as p}from"./p-CGmVTdWh.js";import{c as b}from"./p-B-hirT0v.js";import{d as h,e as m,B as g,i as x,j as u,k as f,f as v,g as w,h as k,s as y}from"./p-DTPR1Wpn.js";import{g as z}from"./p-DiVJyqlX.js";import{b as j}from"./p-NFFyoJ4Q.js";import{c as C}from"./p-Bum7H1fw.js";import"./p-CKvCXMs9.js";import"./p-CIGNaXM1.js";import"./p-ZjP4CjeZ.js";import"./p-Cl0B-RWe.js";import"./p-BTEOs1at.js";import"./p-DB_iPQC-.js";import"./p-CmFz1Mjc.js";const O=t=>{const e=C(),i=C(),r=C();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),r.addElement(t.querySelector(".alert-wrapper")).keyframes([{offset:0,opacity:"0.01",transform:"scale(1.1)"},{offset:1,opacity:"1",transform:"scale(1)"}]),e.addElement(t).easing("ease-in-out").duration(200).addAnimation([i,r])},D=t=>{const e=C(),i=C(),r=C();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",0),r.addElement(t.querySelector(".alert-wrapper")).keyframes([{offset:0,opacity:.99,transform:"scale(1)"},{offset:1,opacity:0,transform:"scale(0.9)"}]),e.addElement(t).easing("ease-in-out").duration(200).addAnimation([i,r])},A=t=>{const e=C(),i=C(),r=C();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),r.addElement(t.querySelector(".alert-wrapper")).keyframes([{offset:0,opacity:"0.01",transform:"scale(0.9)"},{offset:1,opacity:"1",transform:"scale(1)"}]),e.addElement(t).easing("ease-in-out").duration(150).addAnimation([i,r])},I=t=>{const e=C(),i=C(),r=C();return i.addElement(t.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",0),r.addElement(t.querySelector(".alert-wrapper")).fromTo("opacity",.99,0),e.addElement(t).easing("ease-in-out").duration(150).addAnimation([i,r])},$=class{constructor(r){t(this,r),this.didPresent=e(this,"ionAlertDidPresent",7),this.willPresent=e(this,"ionAlertWillPresent",7),this.willDismiss=e(this,"ionAlertWillDismiss",7),this.didDismiss=e(this,"ionAlertDidDismiss",7),this.didPresentShorthand=e(this,"didPresent",7),this.willPresentShorthand=e(this,"willPresent",7),this.willDismissShorthand=e(this,"willDismiss",7),this.didDismissShorthand=e(this,"didDismiss",7),this.delegateController=h(this),this.lockController=b(),this.triggerController=m(),this.customHTMLEnabled=i.get("innerHTMLTemplatesEnabled",s),this.processedInputs=[],this.processedButtons=[],this.isButtonGroupWrapped=!1,this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.buttons=[],this.inputs=[],this.backdropDismiss=!0,this.translucent=!1,this.animated=!0,this.isOpen=!1,this.onBackdropTap=()=>{this.dismiss(void 0,g)},this.dispatchCancelHandler=t=>{if(x(t.detail.role)){const t=this.processedButtons.find((t=>"cancel"===t.role));this.callButtonHandler(t)}}}onIsOpenChange(t,e){!0===t&&!1===e?this.present():!1===t&&!0===e&&this.dismiss()}triggerChanged(){const{trigger:t,el:e,triggerController:i}=this;t&&i.addClickListener(e,t)}onKeydown(t){var e;const i=new Set(this.processedInputs.map((t=>t.type)));if(i.has("checkbox")&&"Enter"===t.key)return void t.preventDefault();if(t.target.classList.contains("alert-wrapper")&&"Tab"===t.key&&t.shiftKey)return t.preventDefault(),void(null===(e=this.wrapperEl)||void 0===e?void 0:e.querySelector(".alert-button:last-child")).focus();if(!i.has("radio")||t.target&&!this.el.contains(t.target)||t.target.classList.contains("alert-button"))return;const r=this.el.querySelectorAll(".alert-radio"),o=Array.from(r).filter((t=>!t.disabled)),a=o.findIndex((e=>e.id===t.target.id));let n;if(["ArrowDown","ArrowRight"].includes(t.key)&&(n=a===o.length-1?o[0]:o[a+1]),["ArrowUp","ArrowLeft"].includes(t.key)&&(n=0===a?o[o.length-1]:o[a-1]),n&&o.includes(n)){const t=this.processedInputs.find((t=>t.id===(null==n?void 0:n.id)));t&&(this.rbClick(t),n.focus())}}buttonsChanged(){this.processedButtons=this.buttons.map((t=>"string"==typeof t?{text:t,role:"cancel"===t.toLowerCase()?"cancel":void 0}:t)),this.isButtonGroupWrapped=!1,this.checkButtonGroupWrap()}inputsChanged(){const t=this.inputs,e=t.find((t=>!t.disabled)),i=t.find((t=>t.checked&&!t.disabled))||e,o=new Set(t.map((t=>t.type)));o.has("checkbox")&&o.has("radio")&&r(`[ion-alert] - Alert cannot mix input types: ${Array.from(o.values()).join("/")}. Please see alert docs for more info.`),this.inputType=o.values().next().value,this.processedInputs=t.map(((t,e)=>{var r;return{type:t.type||"text",name:t.name||`${e}`,placeholder:t.placeholder||"",value:t.value,label:t.label,checked:!!t.checked,disabled:!!t.disabled,id:t.id||`alert-input-${this.overlayIndex}-${e}`,handler:t.handler,min:t.min,max:t.max,cssClass:null!==(r=t.cssClass)&&void 0!==r?r:"",attributes:t.attributes||{},tabindex:"radio"===t.type&&t!==i?-1:0}}))}connectedCallback(){u(this.el),this.triggerChanged(),this.setupButtonGroupResizeObserver()}componentWillLoad(){var t;(null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)||f(this.el),this.inputsChanged(),this.buttonsChanged()}disconnectedCallback(){var t;this.triggerController.removeClickListener(),this.gesture&&(this.gesture.destroy(),this.gesture=void 0),null===(t=this.buttonGroupResizeObserver)||void 0===t||t.disconnect(),this.buttonGroupResizeObserver=void 0}componentDidLoad(){!this.gesture&&"ios"===j(this)&&this.wrapperEl&&(this.gesture=c(this.wrapperEl,(t=>t.classList.contains("alert-button"))),this.gesture.enable(!0)),this.setupButtonGroupResizeObserver(),!0===this.isOpen&&p((()=>this.present())),this.triggerChanged()}async present(){const t=await this.lockController.lock();await this.delegateController.attachViewToDom(),await v(this,"alertEnter",O,A).then((()=>{var t,e;1===this.buttons.length&&0===this.inputs.length?(null===(t=this.wrapperEl)||void 0===t?void 0:t.querySelector(".alert-button")).focus():null===(e=this.wrapperEl)||void 0===e||e.focus()})),t()}async dismiss(t,e){const i=await this.lockController.lock(),r=await w(this,t,e,"alertLeave",D,I);return r&&this.delegateController.removeViewFromDom(),i(),r}onDidDismiss(){return k(this.el,"ionAlertDidDismiss")}onWillDismiss(){return k(this.el,"ionAlertWillDismiss")}rbClick(t){for(const e of this.processedInputs)e.checked=e===t,e.tabindex=e===t?0:-1;this.activeId=t.id,y(t.handler,t),o(this)}cbClick(t){t.checked=!t.checked,y(t.handler,t),o(this)}async buttonClick(t){const e=t.role,i=this.getValues();if(x(e))return this.dismiss({values:i},e);const r=await this.callButtonHandler(t,i);return!1!==r&&this.dismiss(Object.assign({values:i},r),t.role)}async callButtonHandler(t,e){if(null==t?void 0:t.handler){const i=await y(t.handler,e);if(!1===i)return!1;if("object"==typeof i)return i}return{}}getValues(){if(0===this.processedInputs.length)return;if("radio"===this.inputType){const t=this.processedInputs.find((t=>!!t.checked));return t?t.value:void 0}if("checkbox"===this.inputType)return this.processedInputs.filter((t=>t.checked)).map((t=>t.value));const t={};return this.processedInputs.forEach((e=>{t[e.name]=e.value||""})),t}renderAlertInputs(){switch(this.inputType){case"checkbox":return this.renderCheckbox();case"radio":return this.renderRadio();default:return this.renderInput()}}renderCheckbox(){const t=this.processedInputs,e=j(this);return 0===t.length?null:a("div",{class:"alert-checkbox-group"},t.map((t=>a("button",{type:"button",onClick:()=>this.cbClick(t),"aria-checked":`${t.checked}`,id:t.id,disabled:t.disabled,tabIndex:t.tabindex,role:"checkbox",class:Object.assign(Object.assign({},z(t.cssClass)),{"alert-tappable":!0,"alert-checkbox":!0,"alert-checkbox-button":!0,"ion-focusable":!0,"alert-checkbox-button-disabled":t.disabled||!1})},a("div",{class:"alert-button-inner"},a("div",{class:"alert-checkbox-icon"},a("div",{class:"alert-checkbox-inner"})),a("div",{class:"alert-checkbox-label"},t.label)),"md"===e&&a("ion-ripple-effect",null)))))}renderRadio(){const t=this.processedInputs;return 0===t.length?null:a("div",{class:"alert-radio-group",role:"radiogroup","aria-activedescendant":this.activeId},t.map((t=>a("button",{type:"button",onClick:()=>this.rbClick(t),"aria-checked":`${t.checked}`,disabled:t.disabled,id:t.id,tabIndex:t.tabindex,class:Object.assign(Object.assign({},z(t.cssClass)),{"alert-radio-button":!0,"alert-tappable":!0,"alert-radio":!0,"ion-focusable":!0,"alert-radio-button-disabled":t.disabled||!1}),role:"radio"},a("div",{class:"alert-button-inner"},a("div",{class:"alert-radio-icon"},a("div",{class:"alert-radio-inner"})),a("div",{class:"alert-radio-label"},t.label))))))}renderInput(){const t=this.processedInputs;return 0===t.length?null:a("div",{class:"alert-input-group"},t.map((t=>{var e,i,r,o;return a("div",{class:"alert-input-wrapper"},"textarea"===t.type?a("textarea",Object.assign({placeholder:t.placeholder,value:t.value,id:t.id,tabIndex:t.tabindex},t.attributes,{disabled:null!==(i=null===(e=t.attributes)||void 0===e?void 0:e.disabled)&&void 0!==i?i:t.disabled,class:B(t),onInput:e=>{var i;t.value=e.target.value,(null===(i=t.attributes)||void 0===i?void 0:i.onInput)&&t.attributes.onInput(e)}})):a("input",Object.assign({placeholder:t.placeholder,type:t.type,min:t.min,max:t.max,value:t.value,id:t.id,tabIndex:t.tabindex},t.attributes,{disabled:null!==(o=null===(r=t.attributes)||void 0===r?void 0:r.disabled)&&void 0!==o?o:t.disabled,class:B(t),onInput:e=>{var i;t.value=e.target.value,(null===(i=t.attributes)||void 0===i?void 0:i.onInput)&&t.attributes.onInput(e)}})))})))}setupButtonGroupResizeObserver(){var t;this.buttonGroupEl&&"undefined"!=typeof ResizeObserver&&(null===(t=this.buttonGroupResizeObserver)||void 0===t||t.disconnect(),this.buttonGroupResizeObserver=new ResizeObserver((()=>this.checkButtonGroupWrap())),this.buttonGroupResizeObserver.observe(this.buttonGroupEl),this.checkButtonGroupWrap())}checkButtonGroupWrap(){p((()=>{if(!this.buttonGroupResizeObserver)return;const t=this.buttonGroupEl;if(!t)return;const e=Array.from(t.querySelectorAll(".alert-button"));if(e.length<2)return void(this.isButtonGroupWrapped=!1);const i=e[0].offsetTop;this.isButtonGroupWrapped=e.some((t=>t.offsetTop!==i))}))}renderAlertButtons(){const t=this.processedButtons,e=j(this);return a("div",{class:{"alert-button-group":!0,"alert-button-group-vertical":t.length>2||this.isButtonGroupWrapped},ref:t=>this.buttonGroupEl=t},t.map((t=>a("button",Object.assign({},t.htmlAttributes,{type:"button",id:t.id,class:W(t),tabIndex:0,onClick:()=>this.buttonClick(t)}),a("span",{class:"alert-button-inner"},t.text),"md"===e&&a("ion-ripple-effect",null)))))}renderAlertMessage(t){const{customHTMLEnabled:e,message:i}=this;return e?a("div",{id:t,class:"alert-message",innerHTML:d(i)}):a("div",{id:t,class:"alert-message"},i)}render(){const{overlayIndex:t,header:e,subHeader:i,message:r,htmlAttributes:o}=this,l=j(this),s=`alert-${t}-hdr`,d=`alert-${t}-msg`,c=`alert-${t}-sub-hdr`,p=this.inputs.length>0||this.buttons.length>0?"alertdialog":"alert",b=e&&i?`${s} ${c}`:e?s:i?c:null;return a(n,{key:"8d54ccd725ea634be080e67b56fa5efe498f496c",tabindex:"-1",style:{zIndex:`${2e4+t}`},class:Object.assign(Object.assign({},z(this.cssClass)),{[l]:!0,"overlay-hidden":!0,"alert-translucent":this.translucent}),onIonAlertWillDismiss:this.dispatchCancelHandler,onIonBackdropTap:this.onBackdropTap},a("ion-backdrop",{key:"05a238583342285545587de9dce144a82d779193",tappable:this.backdropDismiss}),a("div",{key:"e52c53fd9845e66781af01b2a788a291b45a927c",tabindex:"0","aria-hidden":"true"}),a("div",Object.assign({key:"8417e52eebca24ff436fab0703666db51072f980",class:"alert-wrapper ion-overlay-wrapper",role:p,"aria-modal":"true","aria-labelledby":b,"aria-describedby":void 0!==r?d:null,tabindex:"0",ref:t=>this.wrapperEl=t},o),a("div",{key:"5c560d4800b24d41961423718108b54be6cd6f91",class:"alert-head"},e&&a("h2",{key:"8637b64cd5125b2258115d1c11f3743113658608",id:s,class:"alert-title"},e),i&&!e&&a("h2",{key:"7a4e61a02c29b16b336d8acaf6569b30de6fe71e",id:c,class:"alert-sub-title"},i),i&&e&&a("h3",{key:"30844b6a0a7e3dab46514cd548ecffa86dcd59cb",id:c,class:"alert-sub-title"},i)),this.renderAlertMessage(d),this.renderAlertInputs(),this.renderAlertButtons()),a("div",{key:"39c824fee1e60ad8d6234c79d22ceb8bba8004af",tabindex:"0","aria-hidden":"true"}))}get el(){return l(this)}static get watchers(){return{isOpen:[{onIsOpenChange:0}],trigger:[{triggerChanged:0}],buttons:[{buttonsChanged:0}],inputs:[{inputsChanged:0}]}}},B=t=>{var e,i,r;return Object.assign(Object.assign({"alert-input":!0,"alert-input-disabled":(null!==(i=null===(e=t.attributes)||void 0===e?void 0:e.disabled)&&void 0!==i?i:t.disabled)||!1},z(t.cssClass)),z(t.attributes?null===(r=t.attributes.class)||void 0===r?void 0:r.toString():""))},W=t=>Object.assign({"alert-button":!0,"ion-focusable":!0,"ion-activatable":!0,[`alert-button-role-${t.role}`]:void 0!==t.role},z(t.cssClass));$.style={ios:".sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}",md:".sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}"};export{$ as ion_alert}
|
|
@@ -16,7 +16,10 @@ export declare class Alert implements ComponentInterface, OverlayInterface {
|
|
|
16
16
|
private processedInputs;
|
|
17
17
|
private processedButtons;
|
|
18
18
|
private wrapperEl?;
|
|
19
|
+
private buttonGroupEl?;
|
|
20
|
+
private buttonGroupResizeObserver?;
|
|
19
21
|
private gesture?;
|
|
22
|
+
private isButtonGroupWrapped;
|
|
20
23
|
presented: boolean;
|
|
21
24
|
lastFocus?: HTMLElement;
|
|
22
25
|
el: HTMLIonAlertElement;
|
|
@@ -188,6 +191,8 @@ export declare class Alert implements ComponentInterface, OverlayInterface {
|
|
|
188
191
|
private renderInput;
|
|
189
192
|
private onBackdropTap;
|
|
190
193
|
private dispatchCancelHandler;
|
|
194
|
+
private setupButtonGroupResizeObserver;
|
|
195
|
+
private checkButtonGroupWrap;
|
|
191
196
|
private renderAlertButtons;
|
|
192
197
|
private renderAlertMessage;
|
|
193
198
|
render(): any;
|
|
@@ -419,12 +419,12 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
|
|
|
419
419
|
*/
|
|
420
420
|
private applyFullscreenSafeArea;
|
|
421
421
|
/**
|
|
422
|
-
* Sets --
|
|
422
|
+
* Sets --internal-content-safe-area-padding-bottom on the given ion-content
|
|
423
423
|
* when no footer is present, so ion-content's .inner-scroll includes
|
|
424
424
|
* safe-area-bottom in its scroll padding. This keeps the modal background
|
|
425
425
|
* edge-to-edge while ensuring content scrolls clear of the system nav bar.
|
|
426
426
|
*
|
|
427
|
-
* --
|
|
427
|
+
* --internal-content-safe-area-padding-bottom is an internal CSS property used
|
|
428
428
|
* only by this code path. It is not part of ion-content's public API and
|
|
429
429
|
* should not be set by consumers. The default of 0px makes it a no-op
|
|
430
430
|
* when unset, which is the expected state for ion-content used outside of
|
|
@@ -432,7 +432,7 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
|
|
|
432
432
|
*/
|
|
433
433
|
private applyFullscreenSafeAreaTo;
|
|
434
434
|
/**
|
|
435
|
-
* Removes the internal --
|
|
435
|
+
* Removes the internal --internal-content-safe-area-padding-bottom property
|
|
436
436
|
* from an already-located ion-content. Callers do their own
|
|
437
437
|
* findContentAndFooter() so they can also read hasFooter if needed.
|
|
438
438
|
*/
|
package/hydrate/index.js
CHANGED
|
@@ -10145,6 +10145,7 @@ class Alert {
|
|
|
10145
10145
|
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
10146
10146
|
this.processedInputs = [];
|
|
10147
10147
|
this.processedButtons = [];
|
|
10148
|
+
this.isButtonGroupWrapped = false;
|
|
10148
10149
|
this.presented = false;
|
|
10149
10150
|
/** @internal */
|
|
10150
10151
|
this.hasController = false;
|
|
@@ -10269,6 +10270,13 @@ class Alert {
|
|
|
10269
10270
|
this.processedButtons = buttons.map((btn) => {
|
|
10270
10271
|
return typeof btn === 'string' ? { text: btn, role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined } : btn;
|
|
10271
10272
|
});
|
|
10273
|
+
/**
|
|
10274
|
+
* Reset wrap state so the new button set can be re-evaluated. Without this,
|
|
10275
|
+
* a previously-latched vertical layout would persist even if the new buttons
|
|
10276
|
+
* fit horizontally.
|
|
10277
|
+
*/
|
|
10278
|
+
this.isButtonGroupWrapped = false;
|
|
10279
|
+
this.checkButtonGroupWrap();
|
|
10272
10280
|
}
|
|
10273
10281
|
inputsChanged() {
|
|
10274
10282
|
const inputs = this.inputs;
|
|
@@ -10309,6 +10317,12 @@ class Alert {
|
|
|
10309
10317
|
connectedCallback() {
|
|
10310
10318
|
prepareOverlay(this.el);
|
|
10311
10319
|
this.triggerChanged();
|
|
10320
|
+
/**
|
|
10321
|
+
* If the alert was previously connected and is being reattached, the
|
|
10322
|
+
* ResizeObserver was disconnected. componentDidLoad only fires once per
|
|
10323
|
+
* instance, so re-establish the observer here on reconnect.
|
|
10324
|
+
*/
|
|
10325
|
+
this.setupButtonGroupResizeObserver();
|
|
10312
10326
|
}
|
|
10313
10327
|
componentWillLoad() {
|
|
10314
10328
|
var _a;
|
|
@@ -10319,11 +10333,14 @@ class Alert {
|
|
|
10319
10333
|
this.buttonsChanged();
|
|
10320
10334
|
}
|
|
10321
10335
|
disconnectedCallback() {
|
|
10336
|
+
var _a;
|
|
10322
10337
|
this.triggerController.removeClickListener();
|
|
10323
10338
|
if (this.gesture) {
|
|
10324
10339
|
this.gesture.destroy();
|
|
10325
10340
|
this.gesture = undefined;
|
|
10326
10341
|
}
|
|
10342
|
+
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10343
|
+
this.buttonGroupResizeObserver = undefined;
|
|
10327
10344
|
}
|
|
10328
10345
|
componentDidLoad() {
|
|
10329
10346
|
/**
|
|
@@ -10336,6 +10353,7 @@ class Alert {
|
|
|
10336
10353
|
this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
|
|
10337
10354
|
this.gesture.enable(true);
|
|
10338
10355
|
}
|
|
10356
|
+
this.setupButtonGroupResizeObserver();
|
|
10339
10357
|
/**
|
|
10340
10358
|
* If alert was rendered with isOpen="true"
|
|
10341
10359
|
* then we should open alert immediately.
|
|
@@ -10525,14 +10543,58 @@ class Alert {
|
|
|
10525
10543
|
}
|
|
10526
10544
|
})));
|
|
10527
10545
|
}
|
|
10546
|
+
setupButtonGroupResizeObserver() {
|
|
10547
|
+
var _a;
|
|
10548
|
+
/**
|
|
10549
|
+
* Re-evaluate vertical layout when the button group resizes so a 2-button
|
|
10550
|
+
* group with long text wraps cleanly instead of leaving a stray right-edge
|
|
10551
|
+
* border on the first button.
|
|
10552
|
+
*/
|
|
10553
|
+
if (!this.buttonGroupEl || typeof ResizeObserver === 'undefined') {
|
|
10554
|
+
return;
|
|
10555
|
+
}
|
|
10556
|
+
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10557
|
+
this.buttonGroupResizeObserver = new ResizeObserver(() => this.checkButtonGroupWrap());
|
|
10558
|
+
this.buttonGroupResizeObserver.observe(this.buttonGroupEl);
|
|
10559
|
+
this.checkButtonGroupWrap();
|
|
10560
|
+
}
|
|
10561
|
+
checkButtonGroupWrap() {
|
|
10562
|
+
/**
|
|
10563
|
+
* Defer the layout read out of the ResizeObserver callback so we don't
|
|
10564
|
+
* force synchronous layout and avoid "ResizeObserver loop" warnings when
|
|
10565
|
+
* applying the vertical-layout class itself triggers another resize.
|
|
10566
|
+
*/
|
|
10567
|
+
raf(() => {
|
|
10568
|
+
/**
|
|
10569
|
+
* Bail if the alert was disconnected after this raf was queued.
|
|
10570
|
+
* `buttonGroupEl` persists across disconnect so the observer can be
|
|
10571
|
+
* re-attached on reconnect; the observer reference is the disconnect
|
|
10572
|
+
* sentinel.
|
|
10573
|
+
*/
|
|
10574
|
+
if (!this.buttonGroupResizeObserver) {
|
|
10575
|
+
return;
|
|
10576
|
+
}
|
|
10577
|
+
const groupEl = this.buttonGroupEl;
|
|
10578
|
+
if (!groupEl) {
|
|
10579
|
+
return;
|
|
10580
|
+
}
|
|
10581
|
+
const buttons = Array.from(groupEl.querySelectorAll('.alert-button'));
|
|
10582
|
+
if (buttons.length < 2) {
|
|
10583
|
+
this.isButtonGroupWrapped = false;
|
|
10584
|
+
return;
|
|
10585
|
+
}
|
|
10586
|
+
const firstTop = buttons[0].offsetTop;
|
|
10587
|
+
this.isButtonGroupWrapped = buttons.some((btn) => btn.offsetTop !== firstTop);
|
|
10588
|
+
});
|
|
10589
|
+
}
|
|
10528
10590
|
renderAlertButtons() {
|
|
10529
10591
|
const buttons = this.processedButtons;
|
|
10530
10592
|
const mode = getIonMode$1(this);
|
|
10531
10593
|
const alertButtonGroupClass = {
|
|
10532
10594
|
'alert-button-group': true,
|
|
10533
|
-
'alert-button-group-vertical': buttons.length > 2,
|
|
10595
|
+
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10534
10596
|
};
|
|
10535
|
-
return (hAsync("div", { class: alertButtonGroupClass }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10597
|
+
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10536
10598
|
}
|
|
10537
10599
|
renderAlertMessage(msgId) {
|
|
10538
10600
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10555,9 +10617,9 @@ class Alert {
|
|
|
10555
10617
|
* If neither are defined, do not set aria-labelledby.
|
|
10556
10618
|
*/
|
|
10557
10619
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10558
|
-
return (hAsync(Host, { key: '
|
|
10620
|
+
return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
|
|
10559
10621
|
zIndex: `${20000 + overlayIndex}`,
|
|
10560
|
-
}, 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: '
|
|
10622
|
+
}, 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: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
|
|
10561
10623
|
}
|
|
10562
10624
|
get el() { return getElement(this); }
|
|
10563
10625
|
static get watchers() { return {
|
|
@@ -10600,6 +10662,7 @@ class Alert {
|
|
|
10600
10662
|
"htmlAttributes": [16],
|
|
10601
10663
|
"isOpen": [4, "is-open"],
|
|
10602
10664
|
"trigger": [1],
|
|
10665
|
+
"isButtonGroupWrapped": [32],
|
|
10603
10666
|
"present": [64],
|
|
10604
10667
|
"dismiss": [64],
|
|
10605
10668
|
"onDidDismiss": [64],
|
|
@@ -12367,7 +12430,7 @@ const isRTL$1 = (hostEl) => {
|
|
|
12367
12430
|
return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
|
|
12368
12431
|
};
|
|
12369
12432
|
|
|
12370
|
-
const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--
|
|
12433
|
+
const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--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)}`;
|
|
12371
12434
|
|
|
12372
12435
|
/**
|
|
12373
12436
|
* @slot - Content is placed in the scrollable area if provided without a slot.
|
|
@@ -26273,12 +26336,12 @@ class Modal {
|
|
|
26273
26336
|
this.applyFullscreenSafeAreaTo(contentEl, hasFooter);
|
|
26274
26337
|
}
|
|
26275
26338
|
/**
|
|
26276
|
-
* Sets --
|
|
26339
|
+
* Sets --internal-content-safe-area-padding-bottom on the given ion-content
|
|
26277
26340
|
* when no footer is present, so ion-content's .inner-scroll includes
|
|
26278
26341
|
* safe-area-bottom in its scroll padding. This keeps the modal background
|
|
26279
26342
|
* edge-to-edge while ensuring content scrolls clear of the system nav bar.
|
|
26280
26343
|
*
|
|
26281
|
-
* --
|
|
26344
|
+
* --internal-content-safe-area-padding-bottom is an internal CSS property used
|
|
26282
26345
|
* only by this code path. It is not part of ion-content's public API and
|
|
26283
26346
|
* should not be set by consumers. The default of 0px makes it a no-op
|
|
26284
26347
|
* when unset, which is the expected state for ion-content used outside of
|
|
@@ -26290,17 +26353,17 @@ class Modal {
|
|
|
26290
26353
|
// padding. Custom modals with raw HTML are developer-controlled.
|
|
26291
26354
|
if (!contentEl || hasFooter)
|
|
26292
26355
|
return;
|
|
26293
|
-
contentEl.style.setProperty('--
|
|
26356
|
+
contentEl.style.setProperty('--internal-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
|
|
26294
26357
|
}
|
|
26295
26358
|
/**
|
|
26296
|
-
* Removes the internal --
|
|
26359
|
+
* Removes the internal --internal-content-safe-area-padding-bottom property
|
|
26297
26360
|
* from an already-located ion-content. Callers do their own
|
|
26298
26361
|
* findContentAndFooter() so they can also read hasFooter if needed.
|
|
26299
26362
|
*/
|
|
26300
26363
|
clearContentSafeAreaPadding(contentEl) {
|
|
26301
26364
|
if (!contentEl)
|
|
26302
26365
|
return;
|
|
26303
|
-
contentEl.style.removeProperty('--
|
|
26366
|
+
contentEl.style.removeProperty('--internal-content-safe-area-padding-bottom');
|
|
26304
26367
|
}
|
|
26305
26368
|
/**
|
|
26306
26369
|
* Finds ion-content and ion-footer among direct children and one level of
|
|
@@ -26347,20 +26410,20 @@ class Modal {
|
|
|
26347
26410
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26348
26411
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26349
26412
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26350
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
26413
|
+
return (hAsync(Host, Object.assign({ key: 'd6a271ace939c33703966a1425ab32b7a30bf246', "no-router": true,
|
|
26351
26414
|
// Allow the modal to be navigable when the handle is focusable
|
|
26352
26415
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26353
26416
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26354
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '
|
|
26417
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '51e29823c1444059edc1299e2f8509dda4c39008', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '4292a849e82b83570b18b95e3cbdf05af0a4e170', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'd3131150733c13cd6658545207e4ab49094672b7',
|
|
26355
26418
|
/*
|
|
26356
26419
|
role and aria-modal must be used on the
|
|
26357
26420
|
same element. They must also be set inside the
|
|
26358
26421
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26359
26422
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26360
26423
|
*/
|
|
26361
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
26424
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '3da13bff87602c8c0aa8e3db54375b40d96d3b83', class: "modal-handle",
|
|
26362
26425
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26363
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '
|
|
26426
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '73b22a4eb7ca2e499b9f843b66751a1dbfef69a9', onSlotchange: this.onSlotChange }))));
|
|
26364
26427
|
}
|
|
26365
26428
|
get el() { return getElement(this); }
|
|
26366
26429
|
static get watchers() { return {
|
package/hydrate/index.mjs
CHANGED
|
@@ -10143,6 +10143,7 @@ class Alert {
|
|
|
10143
10143
|
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
10144
10144
|
this.processedInputs = [];
|
|
10145
10145
|
this.processedButtons = [];
|
|
10146
|
+
this.isButtonGroupWrapped = false;
|
|
10146
10147
|
this.presented = false;
|
|
10147
10148
|
/** @internal */
|
|
10148
10149
|
this.hasController = false;
|
|
@@ -10267,6 +10268,13 @@ class Alert {
|
|
|
10267
10268
|
this.processedButtons = buttons.map((btn) => {
|
|
10268
10269
|
return typeof btn === 'string' ? { text: btn, role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined } : btn;
|
|
10269
10270
|
});
|
|
10271
|
+
/**
|
|
10272
|
+
* Reset wrap state so the new button set can be re-evaluated. Without this,
|
|
10273
|
+
* a previously-latched vertical layout would persist even if the new buttons
|
|
10274
|
+
* fit horizontally.
|
|
10275
|
+
*/
|
|
10276
|
+
this.isButtonGroupWrapped = false;
|
|
10277
|
+
this.checkButtonGroupWrap();
|
|
10270
10278
|
}
|
|
10271
10279
|
inputsChanged() {
|
|
10272
10280
|
const inputs = this.inputs;
|
|
@@ -10307,6 +10315,12 @@ class Alert {
|
|
|
10307
10315
|
connectedCallback() {
|
|
10308
10316
|
prepareOverlay(this.el);
|
|
10309
10317
|
this.triggerChanged();
|
|
10318
|
+
/**
|
|
10319
|
+
* If the alert was previously connected and is being reattached, the
|
|
10320
|
+
* ResizeObserver was disconnected. componentDidLoad only fires once per
|
|
10321
|
+
* instance, so re-establish the observer here on reconnect.
|
|
10322
|
+
*/
|
|
10323
|
+
this.setupButtonGroupResizeObserver();
|
|
10310
10324
|
}
|
|
10311
10325
|
componentWillLoad() {
|
|
10312
10326
|
var _a;
|
|
@@ -10317,11 +10331,14 @@ class Alert {
|
|
|
10317
10331
|
this.buttonsChanged();
|
|
10318
10332
|
}
|
|
10319
10333
|
disconnectedCallback() {
|
|
10334
|
+
var _a;
|
|
10320
10335
|
this.triggerController.removeClickListener();
|
|
10321
10336
|
if (this.gesture) {
|
|
10322
10337
|
this.gesture.destroy();
|
|
10323
10338
|
this.gesture = undefined;
|
|
10324
10339
|
}
|
|
10340
|
+
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10341
|
+
this.buttonGroupResizeObserver = undefined;
|
|
10325
10342
|
}
|
|
10326
10343
|
componentDidLoad() {
|
|
10327
10344
|
/**
|
|
@@ -10334,6 +10351,7 @@ class Alert {
|
|
|
10334
10351
|
this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
|
|
10335
10352
|
this.gesture.enable(true);
|
|
10336
10353
|
}
|
|
10354
|
+
this.setupButtonGroupResizeObserver();
|
|
10337
10355
|
/**
|
|
10338
10356
|
* If alert was rendered with isOpen="true"
|
|
10339
10357
|
* then we should open alert immediately.
|
|
@@ -10523,14 +10541,58 @@ class Alert {
|
|
|
10523
10541
|
}
|
|
10524
10542
|
})));
|
|
10525
10543
|
}
|
|
10544
|
+
setupButtonGroupResizeObserver() {
|
|
10545
|
+
var _a;
|
|
10546
|
+
/**
|
|
10547
|
+
* Re-evaluate vertical layout when the button group resizes so a 2-button
|
|
10548
|
+
* group with long text wraps cleanly instead of leaving a stray right-edge
|
|
10549
|
+
* border on the first button.
|
|
10550
|
+
*/
|
|
10551
|
+
if (!this.buttonGroupEl || typeof ResizeObserver === 'undefined') {
|
|
10552
|
+
return;
|
|
10553
|
+
}
|
|
10554
|
+
(_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
10555
|
+
this.buttonGroupResizeObserver = new ResizeObserver(() => this.checkButtonGroupWrap());
|
|
10556
|
+
this.buttonGroupResizeObserver.observe(this.buttonGroupEl);
|
|
10557
|
+
this.checkButtonGroupWrap();
|
|
10558
|
+
}
|
|
10559
|
+
checkButtonGroupWrap() {
|
|
10560
|
+
/**
|
|
10561
|
+
* Defer the layout read out of the ResizeObserver callback so we don't
|
|
10562
|
+
* force synchronous layout and avoid "ResizeObserver loop" warnings when
|
|
10563
|
+
* applying the vertical-layout class itself triggers another resize.
|
|
10564
|
+
*/
|
|
10565
|
+
raf(() => {
|
|
10566
|
+
/**
|
|
10567
|
+
* Bail if the alert was disconnected after this raf was queued.
|
|
10568
|
+
* `buttonGroupEl` persists across disconnect so the observer can be
|
|
10569
|
+
* re-attached on reconnect; the observer reference is the disconnect
|
|
10570
|
+
* sentinel.
|
|
10571
|
+
*/
|
|
10572
|
+
if (!this.buttonGroupResizeObserver) {
|
|
10573
|
+
return;
|
|
10574
|
+
}
|
|
10575
|
+
const groupEl = this.buttonGroupEl;
|
|
10576
|
+
if (!groupEl) {
|
|
10577
|
+
return;
|
|
10578
|
+
}
|
|
10579
|
+
const buttons = Array.from(groupEl.querySelectorAll('.alert-button'));
|
|
10580
|
+
if (buttons.length < 2) {
|
|
10581
|
+
this.isButtonGroupWrapped = false;
|
|
10582
|
+
return;
|
|
10583
|
+
}
|
|
10584
|
+
const firstTop = buttons[0].offsetTop;
|
|
10585
|
+
this.isButtonGroupWrapped = buttons.some((btn) => btn.offsetTop !== firstTop);
|
|
10586
|
+
});
|
|
10587
|
+
}
|
|
10526
10588
|
renderAlertButtons() {
|
|
10527
10589
|
const buttons = this.processedButtons;
|
|
10528
10590
|
const mode = getIonMode$1(this);
|
|
10529
10591
|
const alertButtonGroupClass = {
|
|
10530
10592
|
'alert-button-group': true,
|
|
10531
|
-
'alert-button-group-vertical': buttons.length > 2,
|
|
10593
|
+
'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
|
|
10532
10594
|
};
|
|
10533
|
-
return (hAsync("div", { class: alertButtonGroupClass }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10595
|
+
return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
|
|
10534
10596
|
}
|
|
10535
10597
|
renderAlertMessage(msgId) {
|
|
10536
10598
|
const { customHTMLEnabled, message } = this;
|
|
@@ -10553,9 +10615,9 @@ class Alert {
|
|
|
10553
10615
|
* If neither are defined, do not set aria-labelledby.
|
|
10554
10616
|
*/
|
|
10555
10617
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
10556
|
-
return (hAsync(Host, { key: '
|
|
10618
|
+
return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
|
|
10557
10619
|
zIndex: `${20000 + overlayIndex}`,
|
|
10558
|
-
}, 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: '
|
|
10620
|
+
}, 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: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
|
|
10559
10621
|
}
|
|
10560
10622
|
get el() { return getElement(this); }
|
|
10561
10623
|
static get watchers() { return {
|
|
@@ -10598,6 +10660,7 @@ class Alert {
|
|
|
10598
10660
|
"htmlAttributes": [16],
|
|
10599
10661
|
"isOpen": [4, "is-open"],
|
|
10600
10662
|
"trigger": [1],
|
|
10663
|
+
"isButtonGroupWrapped": [32],
|
|
10601
10664
|
"present": [64],
|
|
10602
10665
|
"dismiss": [64],
|
|
10603
10666
|
"onDidDismiss": [64],
|
|
@@ -12365,7 +12428,7 @@ const isRTL$1 = (hostEl) => {
|
|
|
12365
12428
|
return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
|
|
12366
12429
|
};
|
|
12367
12430
|
|
|
12368
|
-
const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--
|
|
12431
|
+
const contentCss = () => `:host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom) + var(--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)}`;
|
|
12369
12432
|
|
|
12370
12433
|
/**
|
|
12371
12434
|
* @slot - Content is placed in the scrollable area if provided without a slot.
|
|
@@ -26271,12 +26334,12 @@ class Modal {
|
|
|
26271
26334
|
this.applyFullscreenSafeAreaTo(contentEl, hasFooter);
|
|
26272
26335
|
}
|
|
26273
26336
|
/**
|
|
26274
|
-
* Sets --
|
|
26337
|
+
* Sets --internal-content-safe-area-padding-bottom on the given ion-content
|
|
26275
26338
|
* when no footer is present, so ion-content's .inner-scroll includes
|
|
26276
26339
|
* safe-area-bottom in its scroll padding. This keeps the modal background
|
|
26277
26340
|
* edge-to-edge while ensuring content scrolls clear of the system nav bar.
|
|
26278
26341
|
*
|
|
26279
|
-
* --
|
|
26342
|
+
* --internal-content-safe-area-padding-bottom is an internal CSS property used
|
|
26280
26343
|
* only by this code path. It is not part of ion-content's public API and
|
|
26281
26344
|
* should not be set by consumers. The default of 0px makes it a no-op
|
|
26282
26345
|
* when unset, which is the expected state for ion-content used outside of
|
|
@@ -26288,17 +26351,17 @@ class Modal {
|
|
|
26288
26351
|
// padding. Custom modals with raw HTML are developer-controlled.
|
|
26289
26352
|
if (!contentEl || hasFooter)
|
|
26290
26353
|
return;
|
|
26291
|
-
contentEl.style.setProperty('--
|
|
26354
|
+
contentEl.style.setProperty('--internal-content-safe-area-padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
|
|
26292
26355
|
}
|
|
26293
26356
|
/**
|
|
26294
|
-
* Removes the internal --
|
|
26357
|
+
* Removes the internal --internal-content-safe-area-padding-bottom property
|
|
26295
26358
|
* from an already-located ion-content. Callers do their own
|
|
26296
26359
|
* findContentAndFooter() so they can also read hasFooter if needed.
|
|
26297
26360
|
*/
|
|
26298
26361
|
clearContentSafeAreaPadding(contentEl) {
|
|
26299
26362
|
if (!contentEl)
|
|
26300
26363
|
return;
|
|
26301
|
-
contentEl.style.removeProperty('--
|
|
26364
|
+
contentEl.style.removeProperty('--internal-content-safe-area-padding-bottom');
|
|
26302
26365
|
}
|
|
26303
26366
|
/**
|
|
26304
26367
|
* Finds ion-content and ion-footer among direct children and one level of
|
|
@@ -26345,20 +26408,20 @@ class Modal {
|
|
|
26345
26408
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
26346
26409
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
26347
26410
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
26348
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
26411
|
+
return (hAsync(Host, Object.assign({ key: 'd6a271ace939c33703966a1425ab32b7a30bf246', "no-router": true,
|
|
26349
26412
|
// Allow the modal to be navigable when the handle is focusable
|
|
26350
26413
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
26351
26414
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
26352
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '
|
|
26415
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '51e29823c1444059edc1299e2f8509dda4c39008', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '4292a849e82b83570b18b95e3cbdf05af0a4e170', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'd3131150733c13cd6658545207e4ab49094672b7',
|
|
26353
26416
|
/*
|
|
26354
26417
|
role and aria-modal must be used on the
|
|
26355
26418
|
same element. They must also be set inside the
|
|
26356
26419
|
shadow DOM otherwise ion-button will not be highlighted
|
|
26357
26420
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
26358
26421
|
*/
|
|
26359
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
26422
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '3da13bff87602c8c0aa8e3db54375b40d96d3b83', class: "modal-handle",
|
|
26360
26423
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
26361
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '
|
|
26424
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '73b22a4eb7ca2e499b9f843b66751a1dbfef69a9', onSlotchange: this.onSlotChange }))));
|
|
26362
26425
|
}
|
|
26363
26426
|
get el() { return getElement(this); }
|
|
26364
26427
|
static get watchers() { return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "voyager-ionic-core",
|
|
3
|
-
"version": "8.8.
|
|
3
|
+
"version": "8.8.8",
|
|
4
4
|
"description": "Base components for Ionic",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">= 16"
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"tslib": "^2.1.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@axe-core/playwright": "^4.11.
|
|
42
|
+
"@axe-core/playwright": "^4.11.3",
|
|
43
43
|
"@capacitor/core": "^8.0.0",
|
|
44
44
|
"@capacitor/haptics": "^8.0.0",
|
|
45
45
|
"@capacitor/keyboard": "^8.0.0",
|
|
46
46
|
"@capacitor/status-bar": "^8.0.0",
|
|
47
47
|
"@ionic/eslint-config": "^0.3.0",
|
|
48
48
|
"@ionic/prettier-config": "^2.0.0",
|
|
49
|
-
"@playwright/test": "^1.
|
|
49
|
+
"@playwright/test": "^1.59.1",
|
|
50
50
|
"@rollup/plugin-node-resolve": "^8.4.0",
|
|
51
51
|
"@rollup/plugin-virtual": "^2.0.3",
|
|
52
52
|
"@stencil/angular-output-target": "^0.10.0",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"fs-extra": "^9.0.1",
|
|
68
68
|
"jest": "^29.7.0",
|
|
69
69
|
"jest-cli": "^29.7.0",
|
|
70
|
-
"playwright-core": "^1.
|
|
70
|
+
"playwright-core": "^1.59.1",
|
|
71
71
|
"prettier": "^2.6.1",
|
|
72
72
|
"rollup": "^2.26.4",
|
|
73
73
|
"sass": "^1.33.0",
|