(()=>{const t=new class{constructor(){this.overlay=null,this.currentResolve=null}show(t={}){const{type:n="warning",title:i="\u78ba\u8a8d\u64cd\u4f5c",message:e="\u60a8\u78ba\u5b9a\u8981\u57f7\u884c\u6b64\u64cd\u4f5c\u55ce\uff1f",confirmText:s="\u78ba\u8a8d",cancelText:c="\u53d6\u6d88",confirmType:o="primary"}=t;return new Promise(t=>{this.currentResolve=t,this.createDialog(n,i,e,s,c,o)})}createDialog(t,n,i,e,s,c){this.overlay&&this.close(!1),this.overlay=document.createElement("div"),this.overlay.className="confirm-overlay";const o=document.createElement("div");o.className=`confirm-dialog ${t}`;const r=document.createElement("div");r.className="confirm-header";const m=document.createElement("div");m.className="confirm-icon",m.innerHTML=this.getIcon(t);const u=document.createElement("div");u.className="confirm-title",u.textContent=n;const a=document.createElement("div");a.className="confirm-message",a.textContent=i,r.appendChild(m),r.appendChild(u),r.appendChild(a);const h=document.createElement("div");h.className="confirm-actions";const d=document.createElement("button");d.className="confirm-btn secondary",d.textContent=s,d.addEventListener("click",()=>this.close(!1));const l=document.createElement("button");l.className=`confirm-btn ${c}`,l.textContent=e,l.addEventListener("click",()=>this.close(!0)),h.appendChild(d),h.appendChild(l),o.appendChild(r),o.appendChild(h),this.overlay.appendChild(o),document.body.appendChild(this.overlay),this.overlay.addEventListener("click",t=>{t.target===this.overlay&&this.close(!1)});const y=t=>{"Escape"===t.key&&(this.close(!1),document.removeEventListener("keydown",y))};document.addEventListener("keydown",y),requestAnimationFrame(()=>{this.overlay.classList.add("active"),l.focus()})}getIcon(t){const n={warning:"\u26a0\ufe0f",danger:"\ud83d\uddd1\ufe0f",info:"\u2139\ufe0f",success:"\u2713"};return n[t]||n.warning}close(t){this.overlay&&(this.overlay.classList.remove("active"),setTimeout(()=>{this.overlay&&this.overlay.parentNode&&this.overlay.parentNode.removeChild(this.overlay),this.overlay=null,this.currentResolve&&(this.currentResolve(t),this.currentResolve=null)},300))}async warning(t,n){return this.show({type:"warning",title:t,message:n,confirmType:"primary"})}async danger(t,n){return this.show({type:"danger",title:t,message:n,confirmText:"\u522a\u9664",confirmType:"danger"})}async info(t,n){return this.show({type:"info",title:t,message:n})}async success(t,n){return this.show({type:"success",title:t,message:n})}};typeof window<"u"&&(window.Confirm=t),typeof module<"u"&&module.exports&&(module.exports=t)})();