1import{r,j as e}from"./vendor-react-CfkQo2Qg.js";import{t as f,d as i,L as $,B as c}from"./index-DgwJNwTT.js";import{I as C}from"./input-lcG-mXEl.js";import{T as Q}from"./textarea-uGghedoR.js";import{S as l}from"./skeleton-Bt_7ANXD.js";import{a7 as A,_ as F,o as I,ao as O,k as H,bG as B,J as G,$ as _,aa as W,q as Z,aD as U,E as J,bk as Y,n as R,aQ as z,Z as K,U as M,al as P,a8 as V}from"./vendor-lucide-CpuI9xs4.js";import"./vendor-cytoscape-q9j-66rY.js";import"./vendor-trpc-CqKgE1xI.js";import"./vendor-vite-preload-BXl3LOEh.js";import"./vendor-radix-overlay-DthDVWT0.js";import"./vendor-radix-base-ZbR3PUjz.js";import"./vendor-recharts-Cht0p0lU.js";import"./vendor-d3-CzMK0bJS.js";import"./vendor-framer-BGJAXFmM.js";import"./dialog-DjfK0bIy.js";import"./useComposition-Yf1f_-1V.js";function be(){const[o,j]=r.useState("sequences"),[u,p]=r.useState(null),[q,v]=r.useState(!1),[x,d]=r.useState(""),[y,m]=r.useState(""),[E,h]=r.useState("audit_complete"),[w,k]=r.useState(""),[S,b]=r.useState(!1),[n,N]=r.useState(null),T=async()=>{b(!0),N(null);try{const g=await(await fetch("/api/cron/cold-lead-enrollment",{method:"POST"})).json();g.success?(N(g),g.enrolled>0?i.success(`â
Enrolled ${g.enrolled} lead${g.enrolled!==1?"s":""} â check [email protected]`):i.info(`Run complete â ${g.message}`)):i.error(g.error??"Test run failed")}catch{i.error("Failed to trigger sequence test")}finally{b(!1)}},{data:s,isLoading:L,refetch:D}=f.revenueOps.listSequences.useQuery(void 0,{staleTime:3e4}),a=f.revenueOps.createSequence.useMutation({onSuccess:()=>{i.success("Sequence created"),v(!1),d(""),D()},onError:t=>i.error(t.message)});return L?e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsx("div",{className:"border-b border-border/50 bg-card/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-5",children:[e.jsx(l,{className:"h-8 w-48 mb-1"}),e.jsx(l,{className:"h-4 w-64"})]})}),e.jsx("div",{className:"max-w-7xl mx-auto px-6 py-8 space-y-4",children:[1,2,3].map(t=>e.jsxs("div",{className:"border border-border/50 rounded-xl bg-card/30 p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(l,{className:"h-5 w-48"}),e.jsx(l,{className:"h-6 w-20 rounded-full"})]}),e.jsxs("div",{className:"flex gap-6",children:[e.jsx(l,{className:"h-4 w-24"}),e.jsx(l,{className:"h-4 w-20"}),e.jsx(l,{className:"h-4 w-20"})]}),e.jsxs("div",{className:"flex gap-2 pt-1",children:[e.jsx(l,{className:"h-8 w-24 rounded"}),e.jsx(l,{className:"h-8 w-24 rounded"})]})]},t))})]}):u?e.jsx(se,{id:u,onBack:()=>p(null)}):e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsxs("div",{className:"border-b border-border/50 bg-card/30",children:[e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx($,{href:"/admin/revenue",className:"text-muted-foreground hover:text-foreground text-sm",children:"â Revenue"}),e.jsx("span",{className:"text-muted-foreground",children:"/"}),e.jsx("h1",{className:"text-2xl font-display font-bold",children:"Email Sequence Engine"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Build sequences, manage enrollments, and monitor the live sending engine"})]}),e.jsx("div",{className:"max-w-7xl mx-auto px-6 flex gap-1 pb-0",children:["sequences","engine"].map(t=>e.jsx("button",{onClick:()=>j(t),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors capitalize ${o===t?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"}`,children:t==="engine"?"â¡ Live Engine":"Sequences"},t))})]}),e.jsx("div",{className:"bg-amber-500/10 border-b border-amber-500/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-amber-400 text-lg",children:"ð"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-amber-300",children:"Testing Mode Active"}),e.jsxs("p",{className:"text-xs text-amber-400/80",children:["All sequence emails are redirected to ",e.jsx("strong",{children:"[email protected]"})," â subjects prefixed with [TEST â real@email]. No real leads receive emails until you disable this."]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[e.jsx("span",{className:"text-xs text-amber-400/70",children:"To open to real leads:"}),e.jsx("code",{className:"text-xs bg-amber-500/20 text-amber-300 px-2 py-1 rounded font-mono",children:"SEQUENCE_TESTING_MODE=false"}),e.jsx("span",{className:"text-xs text-amber-400/70",children:"in Secrets"})]})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(c,{size:"sm",variant:"outline",onClick:T,disabled:S,className:"border-amber-500/50 text-amber-300 hover:bg-amber-500/20 hover:text-amber-200 bg-transparent",children:[S?e.jsx(A,{className:"w-3.5 h-3.5 mr-1.5 animate-spin"}):e.jsx(F,{className:"w-3.5 h-3.5 mr-1.5"}),S?"Running testâ¦":"Run Sequence Test Now"]}),e.jsx("span",{className:"text-xs text-amber-400/60",children:"Triggers cold-lead enrollment immediately â emails go to [email protected]"})]}),n&&e.jsxs("div",{className:"bg-amber-500/10 border border-amber-500/30 rounded-lg p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(I,{className:"w-4 h-4 text-amber-400"}),e.jsx("p",{className:"text-sm font-semibold text-amber-300",children:"Test Run Complete"}),e.jsxs("span",{className:"text-xs text-amber-400/70 ml-auto",children:[n.totalEvaluated," leads evaluated"]})]}
1),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-5 gap-3",children:[e.jsxs("div",{className:"bg-amber-500/10 rounded-md px-3 py-2 text-center",children:[e.jsx("p",{className:"text-xl font-bold text-amber-300",children:n.enrolled}),e.jsx("p",{className:"text-xs text-amber-400/70 mt-0.5",children:"Enrolled"})]}),e.jsxs("div",{className:"bg-amber-500/10 rounded-md px-3 py-2 text-center",children:[e.jsx("p",{className:"text-xl font-bold text-amber-400/60",children:n.skippedAlreadyEnrolled}),e.jsx("p",{className:"text-xs text-amber-400/70 mt-0.5",children:"Already Enrolled"})]}),e.jsxs("div",{className:"bg-amber-500/10 rounded-md px-3 py-2 text-center",children:[e.jsx("p",{className:"text-xl font-bold text-amber-400/60",children:n.skippedSuppressed}),e.jsx("p",{className:"text-xs text-amber-400/70 mt-0.5",children:"Opted Out"})]}),e.jsxs("div",{className:"bg-amber-500/10 rounded-md px-3 py-2 text-center",children:[e.jsx("p",{className:"text-xl font-bold text-amber-400/60",children:n.skippedInvalidEmail}),e.jsx("p",{className:"text-xs text-amber-400/70 mt-0.5",children:"Invalid Email"})]}),e.jsxs("div",{className:"bg-amber-500/10 rounded-md px-3 py-2 text-center",children:[e.jsx("p",{className:"text-xl font-bold text-amber-400/60",children:n.skippedRecentContact}),e.jsx("p",{className:"text-xs text-amber-400/70 mt-0.5",children:"Recent Contact"})]})]}),e.jsx("p",{className:"text-xs text-amber-400/80",children:n.message}),n.enrolledEmails&&n.enrolledEmails.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-amber-300 mb-1.5",children:"Enrolled leads (emails redirected to mike@):"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:n.enrolledEmails.map(t=>e.jsx("span",{className:"text-xs bg-amber-500/20 text-amber-300 px-2 py-0.5 rounded font-mono",children:t},t))})]})]})]})]})}),e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-6",children:[o==="sequences"&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"text-lg font-display font-semibold",children:"Sequences"}),e.jsxs(c,{size:"sm",onClick:()=>v(!0),children:[e.jsx(O,{className:"w-3 h-3 mr-1"})," New Sequence"]})]}),q&&e.jsxs("div",{className:"border border-primary/30 rounded-lg bg-card/30 p-4 space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Create New Sequence"}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(C,{placeholder:"Sequence Name",value:x,onChange:t=>{d(t.target.value),m(t.target.value.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,""))}}),e.jsx(C,{placeholder:"Slug",value:y,onChange:t=>m(t.target.value)})]}),e.jsx(C,{placeholder:"Description",value:w,onChange:t=>k(t.target.value)}),e.jsxs("select",{value:E,onChange:t=>h(t.target.value),className:"bg-card border border-border rounded px-3 py-2 text-sm w-full",children:[e.jsx("option",{value:"audit_complete",children:"After Audit Completion"}),e.jsx("option",{value:"newsletter_subscribe",children:"After Newsletter Subscribe"}),e.jsx("option",{value:"account_signup",children:"After Account Signup"}),e.jsx("option",{value:"discovery_booked",children:"After Discovery Call Booked"}),e.jsx("option",{value:"manual",children:"Manual Enrollment"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(c,{size:"sm",onClick:()=>a.mutate({name:x,slug:y,triggerType:E,description:w}),disabled:!x.trim()||!y.trim()||a.isPending,children:"Create"}),e.jsx(c,{size:"sm",variant:"ghost",onClick:()=>v(!1),children:"Cancel"})]})]}),e.jsxs("div",{className:"space-y-3",children:[s?.map(t=>e.jsxs("div",{onClick:()=>p(t.id),className:"border border-border/50 rounded-lg bg-card/30 p-4 hover:bg-accent/10 cursor-pointer transition-colors",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-sm font-semibold",children:t.name}),t.isActive?e.jsxs("span",{className:"text-xs px-2 py-0.5 rounded bg-lime-500/20 text-lime-400 flex items-center gap-1",children:[e.jsx(H,{className:"w-2 h-2"})," Active"]}):e.jsxs("span",{className:"text-xs px-2 py-0.5 rounded bg-zinc-500/20 text-zinc-400 flex items-center gap-1",children:[e.jsx(B,{className:"w-2 h-2"})," Paused"]})]}),t.description&&e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:t.description})]}),e.jsxs("div",{className:"flex items-center gap-4 shrink-0",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"text-lg font-display font-bold",children:t.totalSteps}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Steps"})]}),e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"text-lg font-display font-bold",children:t.enrollments?.total||0}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Enrolled"})]}),e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"text-lg font-display font-bold text-lime-400",children:t.enrollments?.completed||0}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Completed"})]}),e.jsx(G,{className:"w-4 h-4 text-muted-foreground"})]})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-2 text-xs text-muted-foreground",children:[e.jsxs("span",{children:["Trigger: ",t.triggerType]}),e.jsxs("span",{children:["Created: ",new Date(t.createdAt).toLocaleDateString()]})]})]},t.id)),(!s||s.length===0)&&e.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[e.jsx(_,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),e.jsx("p",{children:"No sequences yet. Create your first email sequence above."})]})]}),e.jsxs("div",{className:"border border-border/50 rounded-lg bg-card/30 p-5 mt-6",children:[e.jsx("h2",{className:"text-lg font-display font-semibold mb-4",children:"Recommended Sequences"}),e.jsx("div",{className:"grid md:grid-cols-3 gap-4",children:[{name:"Post-Audit Nurture",trigger:"audit_complete",steps:5,desc:"5-email sequence after audit completion. Day 0: Results recap. Day 3: Case study. Day 7: ROI calculator. Day 14: Discovery call CTA. Day 21: Final follow-up."},{name:"Newsletter Welcome",trigger:"newsletter_subscribe",steps:3,desc:"3-email welcome series. Day 0: Welcome + best c
1ontent. Day 3: Your story + value prop. Day 7: Free audit CTA."},{name:"Discovery Follow-Up",trigger:"discovery_booked",steps:4,desc:"4-email post-call sequence. Day 0: Thank you + recap. Day 3: Proposal. Day 7: Objection handler. Day 14: Last chance."}].map(t=>e.jsxs("div",{className:"border border-border/30 rounded-lg p-4",children:[e.jsx("h3",{className:"text-sm font-semibold",children:t.name}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:[t.steps," steps · Trigger: ",t.trigger]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:t.desc}),e.jsx(c,{size:"sm",variant:"outline",className:"mt-3 w-full",onClick:()=>{d(t.name),m(t.name.toLowerCase().replace(/\s+/g,"-")),h(t.trigger),k(t.desc),v(!0)},children:"Use Template"})]},t.name))})]})]}),o==="engine"&&e.jsx(X,{sequences:s??[]})]})]})}function X({sequences:o}){const[j,u]=r.useState(""),[p,q]=r.useState(null),[v,x]=r.useState(!1),[d,y]=r.useState(null),{data:m,isLoading:E,refetch:h}=f.sequences.enrollments.useQuery({status:"active",limit:100},{staleTime:15e3}),{data:w,isLoading:k,refetch:S}=f.sequences.eventLog.useQuery({limit:50},{staleTime:15e3}),b=f.sequences.enroll.useMutation({onSuccess:s=>{i.success(s.message),x(!1),u(""),q(null),h()},onError:s=>i.error(s.message)}),n=f.sequences.pause.useMutation({onSuccess:()=>{i.success("Enrollment paused"),h()},onError:s=>i.error(s.message)}),N=f.sequences.runExecutor.useMutation({onSuccess:s=>{y(s),i.success(`Engine run complete â ${s.emailsSent} email(s) sent`),h(),S()},onError:s=>i.error(`Engine error: ${s.message}`)}),T=o.filter(s=>s.isActive);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h2",{className:"text-lg font-display font-semibold flex items-center gap-2",children:[e.jsx(R,{className:"w-5 h-5 text-lime-400"})," Live Engine"]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:["Runs automatically every 15 minutes · Next run in ~",15-new Date().getMinutes()%15," min"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(c,{size:"sm",variant:"outline",onClick:()=>x(!0),children:[e.jsx(z,{className:"w-3 h-3 mr-1"})," Enroll"]}),e.jsxs(c,{size:"sm",onClick:()=>N.mutate(),disabled:N.isPending,children:[N.isPending?e.jsx(A,{className:"w-3 h-3 mr-1 animate-spin"}):e.jsx(K,{className:"w-3 h-3 mr-1"}),"Run Now"]})]})]}),d&&e.jsxs("div",{className:"border border-lime-500/30 rounded-lg bg-lime-500/5 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(I,{className:"w-4 h-4 text-lime-400"}),e.jsx("span",{className:"text-sm font-semibold text-lime-400",children:"Last Manual Run"})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Emails sent:"})," ",e.jsx("span",{className:"font-bold",children:d.emailsSent})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Completed:"})," ",e.jsx("span",{className:"font-bold",children:d.enrollmentsCompleted})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Errors:"})," ",e.jsx("span",{className:"font-bold text-red-400",children:d.errors})]})]}),d.message&&e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:d.message})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-2",children:[e.jsx(M,{className:"w-4 h-4"})," Active Enrollments",m&&e.jsx("span",{className:"text-xs bg-primary/20 text-primary px-2 py-0.5 rounded-full",children:m.length})]}),e.jsx(c,{size:"sm",variant:"ghost",onClick:()=>h(),children:e.jsx(P,{className:"w-3 h-3"})})]}),E?e.jsx("div",{className:"space-y-2",children:[1,2,3].map(s=>e.jsxs("div",{className:"border border-border/50 rounded-lg bg-card/30 p-3 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex-1 space-y-1.5",children:[e.jsx(l,{className:"h-4 w-40"}),e.jsx(l,{className:"h-3 w-56"})]}),e.jsx(l,{className:"h-7 w-16 rounded shrink-0"})]},s))}):m&&m.length>0?e.jsx("div",{className:"space-y-2",children:m.map(s=>e.jsxs("div",{className:"border border-border/50 rounded-lg bg-card/30 p-3 flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:s.email}),s.isOverdue&&e.jsxs("span",{className:"text-xs px-1.5 py-0.5 rounded bg-yellow-500/20 text-yellow-400 flex items-center gap-1 shrink-0",children:[e.jsx(V,{className:"w-2.5 h-2.5"})," Overdue"]})]}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-0.5",children:[s.sequenceName," · Step ",s.currentStep,"/",s.nextStepNumber-1,s.nextSendAt&&e.jsxs("span",{className:"ml-2",children:["· Next: ",new Date(s.nextSendAt).toLocaleDateString()," ",new Date(s.nextSendAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})]})]})]}),e.jsxs(c,{size:"sm",variant:"ghost",className:"shrink-0 text-xs h-7 px-2",onClick:()=>n.mutate({enrollmentId:s.id}),disabled:n.isPending,children:[e.jsx(B,{className:"w-3 h-3 mr-1"})," Pause"]})]},s.id))}):e.jsxs("div",{className:"text-center py-8 text-muted-foreground text-sm",children:[e.jsx(M,{className:"w-6 h-6 mx-auto mb-2 opacity-40"}),"No active enrollments. Click Enroll to add someone."]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-2",children:[e.jsx(U,{className:"w-4 h-4"})," Event Log",e.jsx("span",{className:"text-xs text-muted-foreground font-normal",children:"Last 50 events"})]}),e.jsx(c,{size:"sm",variant:"ghost",onClick:()=>S(),children:e.jsx(P,{className:"w-3 h-3"})})]}),k?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(A,{className:"w-5 h-5 animate-spin text-muted-foreground"})}):w&&w.length>0?e.jsx("div",{className:"border border-border/50 rounded-lg overflow-hidden",children:e.jsxs("table",{className:"w-full text-xs",children:[e.jsx("thead",{className:"bg-card/50 border-b border-border/50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"text-left px-3 py-2 text-muted-foreground font-medium",children:"Time"}),e.jsx("th",{className:"text-left px-3 py-2 text-muted-foreground font-medium",children:"Event"}),e.jsx("th",{className:"text-left px-3 py-2 text-muted-foreground font-medium",children:"Email"}),e.jsx("th",{className:"text-left px-3 py-2 text-muted-foreground font-medium",children:"Sequence"}),e.jsx("th",{className:"text-left px-3 py-2 text-muted-foreground font-medium",children:"Step"})]})}),e.jsx("tbody",{children:w.map(s=>e.jsxs("tr",{className:"border-b border-border/30 hover:bg-accent/5",children:[e.jsx("td",{className:"px-3 py-2 text-muted-foreground whitespace-nowrap",children:new Date(s.createdAt).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),e.jsx("td",{className:"px-3 py-2",children:e.jsx(ee,{type:s.eventType})}),e.jsx("td",{className:"px-3 py-2 truncate max-w-[180px]",children:s.email}),e.jsx("td",{className:"px-3 py-2 text-muted-foreground truncate max-w-[140px]",children:s.sequenceName??"â"}),e.jsx("td",{className:"px-3 py-2 text-muted-foreground",children:s.stepNumber??"â"})]},s.id))})]})}):e.jsxs("div",{className:"text-center py-8 text-muted-foreground text-sm",children:[e.jsx(R,{className:"w-6 h-6 mx-auto mb-2 opacity-40"}),"No events yet. Run the engine to see activity here."]})]}),v&&e.jsx("div",{className:"fixed inset-0 bg-black/60 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-card border border-border rounded-xl p-6 w-full max-w-md
1space-y-4",children:[e.jsx("h3",{className:"text-lg font-display font-bold",children:"Enroll in Sequence"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-muted-foreground mb-1 block",children:"Email address"}),e.jsx(C,{placeholder:"[email protected]",value:j,onChange:s=>u(s.target.value),type:"email"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-muted-foreground mb-1 block",children:"Sequence"}),e.jsxs("select",{value:p??"",onChange:s=>q(Number(s.target.value)||null),className:"bg-background border border-border rounded px-3 py-2 text-sm w-full",children:[e.jsx("option",{value:"",disabled:!0,children:"Select a sequenceâ¦"}),T.map(s=>e.jsx("option",{value:s.id,children:s.name},s.id))]})]})]}),e.jsxs("div",{className:"flex gap-2 pt-1",children:[e.jsxs(c,{className:"flex-1",onClick:()=>b.mutate({email:j,sequenceId:p}),disabled:!j.trim()||!p||b.isPending,children:[b.isPending?e.jsx(A,{className:"w-4 h-4 mr-1 animate-spin"}):e.jsx(z,{className:"w-4 h-4 mr-1"}),"Enroll"]}),e.jsx(c,{variant:"ghost",onClick:()=>x(!1),children:"Cancel"})]})]})})]})}function ee({type:o}){const j={sent:{label:"Sent",cls:"bg-blue-500/20 text-blue-400"},opened:{label:"Opened",cls:"bg-lime-500/20 text-lime-400"},clicked:{label:"Clicked",cls:"bg-purple-500/20 text-purple-400"},bounced:{label:"Bounced",cls:"bg-red-500/20 text-red-400"},unsubscribed:{label:"Unsub",cls:"bg-zinc-500/20 text-zinc-400"},completed:{label:"Done",cls:"bg-lime-500/20 text-lime-400"},error:{label:"Error",cls:"bg-red-500/20 text-red-400"}},{label:u,cls:p}=j[o]??{label:o,cls:"bg-zinc-500/20 text-zinc-400"};return e.jsx("span",{className:`px-1.5 py-0.5 rounded text-xs font-medium ${p}`,children:u})}function se({id:o,onBack:j}){const{data:u,isLoading:p,refetch:q}=f.revenueOps.getSequence.useQuery({id:o},{staleTime:15e3}),[v,x]=r.useState(!1),[d,y]=r.useState(""),[m,E]=r.useState(""),[h,w]=r.useState(0),[k,S]=r.useState(""),[b,n]=r.useState(""),N=f.revenueOps.upsertStep.useMutation({onSuccess:()=>{i.success("Step saved"),x(!1),y(""),E(""),q()},onError:a=>i.error(a.message)});if(p||!u)return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsx("div",{className:"border-b border-border/50 bg-card/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-5",children:[e.jsx(l,{className:"h-4 w-24 mb-2"}),e.jsx(l,{className:"h-8 w-64 mb-1"}),e.jsx(l,{className:"h-4 w-48"})]})}),e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-8 grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsx("div",{className:"lg:col-span-3 grid grid-cols-2 md:grid-cols-4 gap-4",children:[1,2,3,4].map(a=>e.jsxs("div",{className:"border border-border/50 rounded-xl bg-card/30 p-4 space-y-2",children:[e.jsx(l,{className:"h-3 w-20"}),e.jsx(l,{className:"h-8 w-12"})]},a))}),e.jsx("div",{className:"lg:col-span-2 space-y-3",children:[1,2,3].map(a=>e.jsxs("div",{className:"border border-border/50 rounded-xl bg-card/30 p-4 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(l,{className:"h-5 w-32"}),e.jsx(l,{className:"h-4 w-16"})]}),e.jsx(l,{className:"h-3 w-full"}),e.jsx(l,{className:"h-3 w-3/4"})]},a))}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(l,{className:"h-5 w-40"}),[1,2].map(a=>e.jsxs("div",{className:"border border-border/50 rounded-lg bg-card/30 p-3 space-y-1.5",children:[e.jsx(l,{className:"h-4 w-36"}),e.jsx(l,{className:"h-3 w-48"})]},a))]})]})]});const{sequence:T,steps:s,stepStats:L}=u,D=(a,t)=>L.find(g=>g.stepId===a&&g.eventType===t)?.count||0;return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsx("div",{className:"border-b border-border/50 bg-card/30",children:e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsxs("button",{onClick:j,className:"text-muted-foreground hover:text-foreground text-sm flex items-center gap-1",children:[e.jsx(W,{className:"w-4 h-4"})," Back"]}),e.jsx("span",{className:"text-muted-foreground",children:"/"}),e.jsx("h1",{className:"text-2xl font-display font-bold",children:T.name})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:T.description||`Trigger: ${T.triggerType}`})]})}),e.jsxs("div",{className:"max-w-7xl mx-auto px-6 py-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h2",{className:"text-lg font-display font-semibold",children:["Steps (",s.length,")"]}),e.jsxs(c,{size:"sm",onClick:()=>x(!0),children:[e.jsx(O,{className:"w-3 h-3 mr-1"})," Add Step"]})]}),v&&e.jsxs("div",{className:"border border-primary/30 rounded-lg bg-card/30 p-4 space-y-3",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Add Email Step"}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(C,{type:"number",placeholder:"Delay (days)",value:h,onChange:a=>w(parseInt(a.target.value)||0)}),e.jsx(C,{placeholder:"Subject Line",value:d,onChange:a=>y(a.target.value)})]}),e.jsx(Q,{placeholder:"Email body (HTML supported)",value:m,onChange:a=>E(a.target.value),rows:6}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx(C,{placeholder:"CTA URL (optional)",value:k,onChange:a=>S(a.target.value)}),e.jsx(C,{placeholder:"CTA Label (optional)",value:b,onChange:a=>n(a.target.value)})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(c,{size:"sm",onClick:()=>N.mutate({sequenceId:o,stepNumber:s.length+1,delayDays:h,subject:d,bodyHtml:m,ctaUrl:k||void 0,ctaLabel:b||void 0}),disabled:!d.trim()||!m.trim()||N.isPending,children:"Save Step"}),e.jsx(c,{size:"sm",variant:"ghost",onClick:()=>x(!1),children:"Cancel"})]})]}),e.jsxs("div",{className:"space-y-3",children:[s.map(a=>e.jsx("div",{className:"border border-border/50 rounded-lg bg-card/30 p-4",children:e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary/20 flex items-center justify-center text-sm font-mono text-primary shrink-0",children:a.stepNumber}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-sm font-semibold",children:a.subject}),e.jsxs("span",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Z,{className:"w-3 h-3"})," Day ",a.delayDays]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-2",children:[a.bodyHtml.replace(/<[^>]+>/g,"").slice(0,150),"..."]}),a.ctaLabel&&e.jsxs("span",{className:"text-xs text-primary mt-1 inline-block",children:[a.ctaLabel," â"]})]})]}),e.jsxs("div",{className:"flex items-center gap-4 text-xs text-muted-foreground shrink-0",children:[e.jsxs("div",{className:"text-center",children:[e.jsx(U,{className:"w-3 h-3 mx-auto mb-0.5"}),D(a.id,"sent")]}),e.jsxs("div",{className:"text-center",children:[e.jsx(J,{className:"w-3 h-3 mx-auto mb-0.5"}),D(a.id,"opened")]}),e.jsxs("div",{className:"text-center",children:[e.jsx(Y,{className:"w-3 h-3 mx-auto mb-0.5"}),D(a.id,"clicked")]})]})]})},a.id)),s.length===0&&e.jsxs("div",{className:"text-center py-12 text-muted-foreground",children:[e.jsx(_,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),e.jsx("p",{children:"No steps yet. Add your first email step above."})]})]})]})]})}export{be as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.