import{j as e}from"./vendor-Dy_Aqit6.js";import{a as t,b as w}from"./plotly-BRtgkqNO.js";import{j,I as N,o as T,T as E,X as M}from"./index-DkRDPfDI.js";const I={danger:{icon:E,iconBg:"bg-red-500/10",iconColor:"text-red-500",buttonClass:"bg-red-500 hover:bg-red-600",borderColor:"border-red-500/20"},warning:{icon:T,iconBg:"bg-amber-500/10",iconColor:"text-amber-500",buttonClass:"bg-amber-500 hover:bg-amber-600",borderColor:"border-amber-500/20"},info:{icon:N,iconBg:"bg-blue-500/10",iconColor:"text-blue-500",buttonClass:"bg-blue-500 hover:bg-blue-600",borderColor:"border-blue-500/20"},success:{icon:j,iconBg:"bg-emerald-500/10",iconColor:"text-emerald-500",buttonClass:"bg-emerald-500 hover:bg-emerald-600",borderColor:"border-emerald-500/20"}},k=w.memo(({title:c,message:l,confirmText:r,cancelText:g,variant:o,isLoading:s,requireTypedConfirmation:a,icon:u,onClose:i,onConfirm:b})=>{const[m,h]=t.useState(""),x=t.useRef(null),d=I[o],y=d.icon,f=a?m.toUpperCase()===a.toUpperCase():!0;t.useEffect(()=>{a&&x.current&&x.current.focus()},[a]);const n=()=>{f&&!s&&b()},p=C=>{h(C.target.value)},v=C=>{C.key==="Enter"&&f&&!s&&b()};return e.jsxs("div",{className:"rounded-2xl border shadow-2xl overflow-hidden bg-white dark:bg-gray-900 border-gray-200 dark:border-gray-700",children:[e.jsxs("div",{className:"relative p-6 pb-4",children:[e.jsx("button",{onClick:i,disabled:s,type:"button",className:"absolute top-4 right-4 p-2 rounded-lg text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors disabled:opacity-50",children:e.jsx(M,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:`p-3 rounded-xl ${d.iconBg} ${d.borderColor} border flex-shrink-0`,children:u?e.jsx("div",{className:d.iconColor,children:u}):e.jsx(y,{className:`w-6 h-6 ${d.iconColor}`})}),e.jsxs("div",{className:"flex-1 min-w-0 pt-1 pr-8",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:c}),e.jsx("p",{className:"mt-2 text-sm text-gray-600 dark:text-gray-300 leading-relaxed",children:l})]})]}),a&&e.jsxs("div",{className:"mt-4 ml-16",children:[e.jsxs("label",{className:"block text-xs font-medium text-gray-500 dark:text-gray-400 mb-2",children:["Type ",e.jsx("span",{className:"font-bold text-gray-900 dark:text-white",children:a})," to confirm"]}),e.jsx("input",{ref:x,type:"text",value:m,onChange:p,onKeyDown:v,placeholder:a,disabled:s,autoComplete:"off",spellCheck:!1,className:"w-full px-4 py-2.5 rounded-xl border text-sm bg-gray-50 dark:bg-gray-800 border-gray-200 dark:border-gray-600 text-gray-900 dark:text-white placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors disabled:opacity-50"})]})]}),e.jsxs("div",{className:"flex gap-3 p-6 pt-4 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50",children:[e.jsx("button",{onClick:i,disabled:s,type:"button",className:"flex-1 px-4 py-2.5 rounded-xl font-medium text-sm bg-gray-200 dark:bg-gray-700 text-gray-900 dark:text-white hover:bg-gray-300 dark:hover:bg-gray-600 transition-colors disabled:opacity-50",children:g}),e.jsx("button",{onClick:n,disabled:s||!f,type:"button",className:` flex-1 px-4 py-2.5 rounded-xl font-medium text-sm text-white ${d.buttonClass} transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2 `,children:s?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}),e.jsx("span",{children:"Processing..."})]}):r})]})]})});k.displayName="ConfirmModalContent";const B=({isOpen:c,onClose:l,onConfirm:r,title:g,message:o,confirmText:s="Confirm",cancelText:a="Cancel",variant:u="danger",isLoading:i=!1,requireTypedConfirmation:b,icon:m})=>{const[h,x]=t.useState(!1),[d,y]=t.useState(!1);t.useEffect(()=>{if(c)x(!0),requestAnimationFrame(()=>{y(!0)}),document.body.style.overflow="hidden";else{y(!1);const n=setTimeout(()=>{x(!1)},200);return document.body.style.overflow="",()=>clearTimeout(n)}return()=>{document.body.style.overflow=""}},[c]),t.useEffect(()=>{const n=p=>{p.key==="Escape"&&!i&&c&&l()};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[c,i,l]);const f=n=>{n.target===n.currentTarget&&!i&&l()};return h?e.jsxs("div",{className:` fixed inset-0 z-[9999] flex items-center justify-center p-4 transition-opacity duration-200 ease-out ${d?"opacity-100":"opacity-0"} `,onClick:f,children:[e.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm"}),e.jsx("div",{className:` relative z-10 w-full max-w-md transition-all duration-200 ease-out ${d?"opacity-100 scale-100 translate-y-0":"opacity-0 scale-95 translate-y-4"} `,onClick:n=>n.stopPropagation(),children:e.jsx(k,{title:g,message:o,confirmText:s,cancelText:a,variant:u,isLoading:i,requireTypedConfirmation:b,icon:m,onClose:l,onConfirm:r})})]}):null},A=()=>{const[c,l]=t.useState(!1),[r,g]=t.useState({title:"",message:""}),o=t.useRef(null),s=t.useCallback(b=>new Promise(m=>{o.current=m,g(b),l(!0)}),[]),a=t.useCallback(()=>{l(!1),setTimeout(()=>{o.current&&(o.current(!1),o.current=null)},50)},[]),u=t.useCallback(()=>{l(!1),setTimeout(()=>{o.current&&(o.current(!0),o.current=null)},50)},[]),i=t.useMemo(()=>()=>e.jsx(B,{isOpen:c,onClose:a,onConfirm:u,title:r.title,message:r.message,confirmText:r.confirmText,cancelText:r.cancelText,variant:r.variant,requireTypedConfirmation:r.requireTypedConfirmation,icon:r.icon}),[c,r,a,u]);return{confirm:s,ConfirmModal:i}};export{A as u};