PageSourceSearch

https://delivr.to/assets/Home-DIkUQUh1.js

js delivr.to collected 2026-09-25 19:11:42 UTC 79,523 bytes, 24 lines download raw bytes

1import{j as e}from"./query-DmstuUoN.js";import{a as d}from"./vendor-CHI41uxr.js";import{c as q,p as B,a as U,b as le,B as F,D as ce,d as de,e as me,f as ue,g as he,h as xe,C as pe,i as ee,P as ge,j as V,k as fe,R as ye,l as be,T as ve,m as je,n as we,o as Ne,U as ke,L as Ce,q as Se,r as Te,G as De,s as Me}from"./index-CT7kTiav.js";import{u as Ee}from"./useDocumentTitle-BOGfSQQj.js";import{I as O}from"./input-Dvd23oTk.js";import{A as L,a as R,b as $,c as I,d as _,e as A,f as Y,g as H}from"./alert-dialog-DQgxaHUn.js";import{L as W}from"./loader-2-DBtHWqj4.js";import{A as te}from"./arrow-right-CPLP7bUF.js";import{M as Le}from"./mail-D42Ko5db.js";import{I as se}from"./info-Bh9sgHOw.js";import{A as K}from"./alert-circle-Bk1rTHL-.js";import{C as J}from"./check-circle-CiD2n8E-.js";import{H as Re,C as $e,a as Ie}from"./HomeFooter-CVrHDVYN.js";import{T as re,B as _e}from"./target-M1bY3lO6.js";import{S as Ae}from"./send-asV8Ddzp.js";import{T as ae}from"./trending-up-BJitD4Ir.js";import{C as ie}from"./check-circle-2-ChxccshT.js";import{A as He}from"./arrow-down-tXZuTgX2.js";import{S as Pe}from"./shield-CsgJ5rrZ.js";import{E as oe}from"./external-link-toS3VXTH.js";import"./ui-WgsiDFN4.js";const Fe=q("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);const qe=q("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);const Be=q("SearchCheck",[["path",{d:"m8 11 2 2 4-4",key:"1sed1v"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);const Oe=q("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);function E(t,s){if(U.isAxiosError(t)){const r=t,i=r.response?.data?.error||r.response?.data?.message;if(i){const n=i.toLowerCase();return n.includes("unexpected error")?"Have you already registered?":n.includes("expired")?"Your verification code has expired. Please request a new one.":n.includes("not match")||n.includes("invalid")?"The verification code you entered is incorrect. Please try again.":n.includes("already exists")||n.includes("already registered")?"This email is already registered. Please sign in to your account instead.":n.includes("rate limit")||n.includes("too many")?"Too many attempts. Please wait a few minutes before trying again.":i}}return t instanceof Error?t.message:s}const We="delivr.to's Top 10 Payloads";async function ze(t){return(await B.post("/public/signup",{email:t})).data}async function Ue(t,s,r){const i={email:t,code:s};return r&&(i.verification_token=r),(await B.post("/public/verify",i)).data}async function Q(t){await B.post("/public/resend",{email:t})}async function Ge(t){return(await U.get("https://api.delivr.to/templates",{headers:{Authorization:t}})).data}async function Ve(t,s){const i=(await Ge(t)).find(c=>c.template_name===We);if(!i)throw new Error("Health check template not found");const n={template_id:i.template_id,campaign_name:"Mini Health Check",recipient:s,email_results:!0,include_disabled_integrations:!1,sender:"default",as_links:!0,as_attachments:!0,as_body:!0};return(await U.post("https://api.delivr.to/campaign",n,{headers:{Authorization:t,"Content-Type":"application/json"}})).data}function Ye(t={}){const[s,r]=d.useState("idle"),[i,n]=d.useState(""),[o,c]=d.use
1State(null),u=d.useRef(null),h=d.useRef(null),g=d.useRef(!1),l=d.useCallback(()=>{g.current||(r("idle"),n(""),c(null),u.current=null,h.current=null)},[]),f=d.useCallback(a=>{n(a),r("confirming"),c(null)},[]),N=d.useCallback(async()=>{if(i){g.current=!0,r("sending_code"),c(null);try{const a=await ze(i);a.verification_token&&(u.current=a.verification_token),r("awaiting_code")}catch(a){const m=E(a,"Failed to send verification code. Please try again.");c(m),r("error"),t.onError?.(m)}finally{g.current=!1}}},[i,t]),v=d.useCallback(async(a,m)=>{const b=m||i;if(!b){c("Email address is required"),r("error");return}g.current=!0,r("verifying_code"),c(null);try{const w=await Ue(b,a,u.current||void 0);w.token&&(h.current=w.token),m&&n(m),r("code_verified")}catch(w){const p=E(w,"Unable to verify your code. Please try again.");if(p.toLowerCase().includes("expired"))try{await Q(b),c("Your code has expired. A new code has been sent to your email. Please try again."),r("awaiting_code")}catch(S){const D=E(S,"Failed to resend code.");D.toLowerCase().includes("already registered")||D.toLowerCase().includes("unexpected")?c("Your code has expired. If you already have an account, please sign in instead."):c(D),r("error"),t.onError?.(D)}else c(p),r("error"),t.onError?.(p)}finally{g.current=!1}},[i,t]),y=d.useCallback(async()=>{if(i){c(null);try{await Q(i)}catch(a){const m=E(a,"Failed to resend verification code. Please try again.");c(m)}}},[i]),x=d.useCallback(async()=>{if(!h.current||!i){c("Missing authentication token"),r("error");return}g.current=!0,r("launching"),c(null);try{await Ve(h.current,i),r("success"),t.onSuccess?.()}catch(a){const m=E(a,"Failed to launch your health check. Please try again.");c(m),r("error"),t.onError?.(m)}finally{g.current=!1}},[i,t]),k=d.useCallback(()=>{l()},[l]),j=d.useCallback(a=>{u.current=a},[]),C=d.useCallback(()=>{r("awaiting_code"),c(null)},[]);return{step:s,email:i,error:o,isProgressingRef:g,startHealthCheck:f,confirmAndSendCode:N,submitCode:v,resendCode:y,launchHealthCheck:x,closeSuccess:k,reset:l,setVerificationToken:j,goToCodeEntry:C,setEmail:n}}function Ke({size:t=64,className:s}){return e.jsxs("div",{className:le("relative",s),style:{width:t,height:t},children:[e.jsx("div",{className:"absolute inset-0 rounded-full bg-success/20 animate-ping",style:{animationDuration:"1.5s"}}),e.jsx("div",{className:"absolute inset-2 rounded-full bg-success/30 animate-ping",style:{animationDuration:"1.5s",animationDelay:"0.2s"}}),e.jsx("div",{className:"absolute inset-4 rounded-full bg-success/40"}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("svg",{width:t*.5,height:t*.5,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"text-success",children:e.jsx("path",{d:"M20 6L9 17L4 12",className:"animate-draw-check",style:{strokeDasharray:24,strokeDashoffset:24,animation:"draw-check 0.5s ease-out 0.3s forwards"}})})}),e.jsx("style",{children:`
2        @keyframes draw-check {
3          to {
4            stroke-dashoffset: 0;
5          }
6        }
7      `})]})}const G=(t,s)=>{const r=[];for(let i=0;i<t;i++){const n=(i*17+s)%100,o=(i*23+s*2)%100,c=.5+(i*7+s)%10/10,u=.3+(i*11+s)%7/10;r.push({x:n,y:o,size:c,opacity:u})}return r},Je=G(80,42),Qe=G(30,73),Ze=G(15,91);function Xe(){let t='<defs><filter id="g" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="0.6"/></filter></defs>';for(const r of Je){const i=r.size/2,n=r.opacity*.6;t+=`<circle cx="${r.x}%" cy="${r.y}%" r="${i}" fill="white" opacity="${n.toFixed(3)}"/>`}for(const r of Qe){const i=r.size*1.5/2,n=r.opacity*.8;t+=`<circle cx="${r.x}%" cy="${r.y}%" r="${i}" fill="white" opacity="${n.toFixed(3)}"/>`}for(const r of Ze){const i=r.size,n=r.size*1.6;t+=`<circle cx="${r.x}%" cy="${r.y}%" r="${n}" fill="rgba(63,203,255,0.3)" filter="url(#g)"/>`,t+=`<circle cx="${r.x}%" cy="${r.y}%" r="${i}" fill="white" opacity="${r.opacity.toFixed(3)}"/>`}const s=`<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" width="100%" height="100%">${t}</svg>`;return`url("data:image/svg+xml;utf8,${encodeURIComponent(s)}")`}const et=Xe();function tt(){const{step:t,email:s,error:r,setEmail:i,startHealthCheck:n,confirmAndSendCode:o,submitCode:c,launchHealthCheck:u,reset:h,goToCodeEntry:g}=Ye(),[l,f]=d.useState(""),[N,v]=d.useState(""),y=d.useRef(null),x=d.useRef(!1),k=p=>{p.preventDefault(),n(s)},j=()=>{v(s||""),g()},C=async()=>
7{if(l.length>0){const p=N||s;x.current=!0,await c(l,p)}},a=async()=>{f(""),x.current=!0,await o()},m=async()=>{x.current=!0,await u()},b=()=>{f(""),v(""),x.current=!1,h()},w=`${pe}/forgotPassword?client_id=${ee}&response_type=code&scope=aws.cognito.signin.user.admin+email+openid+profile&redirect_uri=${encodeURIComponent(window.location.origin+"/auth/callback")}&state=/app/dashboard`;return e.jsxs("section",{className:"relative min-h-screen flex items-center justify-center overflow-hidden pt-16",children:[e.jsxs("div",{className:"absolute inset-0 bg-[#030712] pointer-events-none",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628] to-[#030712]"}),e.jsxs("div",{className:"absolute top-0 left-0 w-full h-full overflow-hidden",children:[e.jsx("div",{className:"absolute w-[800px] h-[600px] rounded-full blur-[120px] animate-pulse",style:{background:"radial-gradient(ellipse, rgba(63, 203, 255, 0.3) 0%, transparent 70%)",top:"10%",left:"60%",transform:"translate(-50%, -50%)",animationDuration:"8s"}}),e.jsx("div",{className:"absolute w-[600px] h-[500px] rounded-full blur-[100px] animate-pulse",style:{background:"radial-gradient(ellipse, rgba(76, 219, 196, 0.25) 0%, transparent 70%)",top:"70%",left:"20%",transform:"translate(-50%, -50%)",animationDuration:"10s",animationDelay:"2s"}}),e.jsx("div",{className:"absolute w-[500px] h-[400px] rounded-full blur-[80px] animate-pulse",style:{background:"radial-gradient(ellipse, rgba(99, 102, 241, 0.2) 0%, transparent 70%)",top:"40%",left:"80%",transform:"translate(-50%, -50%)",animationDuration:"12s",animationDelay:"4s"}}),e.jsx("div",{className:"absolute w-[700px] h-[500px] rounded-full blur-[100px] animate-pulse",style:{background:"radial-gradient(ellipse, rgba(63, 203, 255, 0.2) 0%, transparent 70%)",top:"90%",left:"10%",transform:"translate(-50%, -50%)",animationDuration:"9s",animationDelay:"1s"}})]}),e.jsx("div",{className:"absolute inset-0",style:{backgroundImage:et,backgroundSize:"100% 100%",backgroundRepeat:"no-repeat"},"aria-hidden":"true"}),e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:`url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")`}})]}),e.jsxs("div",{className:"relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20",children:[e.jsxs("div",{className:"text-center max-w-4xl mx-auto",children:[e.jsxs("h1",{className:"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight mb-6",children:[e.jsx("span",{className:"block text-foreground",children:"Test Your"}),e.jsx("span",{className:"block bg-gradient-to-r from-primary via-primary to-chart-purple bg-clip-text text-transparent",children:"Email & Web Defences"})]}),e.jsx("p",{className:"text-lg sm:text-xl text-muted-foreground max-w-2xl mx-auto mb-10",children:"Deliver real-world malware replications via email and web to discover what reaches your users. Validate your defences with 800+ payloads across 100+ file types."}),e.jsxs("form",{onSubmit:k,className:"flex flex-col sm:flex-row sm:justify-center gap-3 max-w-md mx-auto mb-6",children:[e.jsx(O,{type:"email",placeholder:"Enter your work email",value:s,onChange:p=>i(p.target.value),className:"h-12 bg-card/50 border-border/50 focus:border-primary",required:!0}),e.jsx(F,{type:"submit",size:"lg",className:"h-12 px-6 bg-primary hover:bg-primary/90 text-primary-foreground font-semibold whitespace-nowrap",disabled:t==="sending_code"||t==="verifying_code"||t==="launching",children:t==="sending_code"||t==="verifying_code"||t==="launching"?e.jsxs(e.Fragment,{children:[e.jsx(W,{className:"mr-2 h-4 w-4 animate-spin"}),"Loading..."]}):e.jsxs(e.Fragment,{children:["Launch Health Check",e.jsx(te,{className:"ml-2 h-4 w-4"})]})})]}),e.jsxs("div",{className:"flex items-center justify-center gap-6 text-sm text-muted-foreground",children:[e.jsx("button",{type:"button",onClick:j,className:"hover:text-foreground transition-colors",children:"Got a code? →"}),e.jsx("a",{href:"/payloads",className:"hover:text-foreground transition-colors",children:"Explore payloads →"})]})]}),e.jsxs("div",{className:"mt-16 relative",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-primary/20 via-trans
7parent to-transparent blur-3xl -z-10"}),e.jsx("div",{className:"relative mx-auto max-w-5xl",children:e.jsxs("div",{className:"rounded-xl overflow-hidden border border-border/50 bg-card/30 backdrop-blur shadow-2xl shadow-primary/10",children:[e.jsxs("div",{className:"flex items-center gap-2 px-4 py-3 bg-card/50 border-b border-border/50",children:[e.jsxs("div",{className:"flex gap-1.5",children:[e.jsx("div",{className:"w-3 h-3 rounded-full bg-destructive/60"}),e.jsx("div",{className:"w-3 h-3 rounded-full bg-status-blocked/60"}),e.jsx("div",{className:"w-3 h-3 rounded-full bg-success/60"})]}),e.jsx("div",{className:"flex-1 flex justify-center",children:e.jsx("div",{className:"px-4 py-1 rounded-md bg-background/50 text-xs text-muted-foreground",children:"delivr.to/app/campaign-results"})})]}),e.jsxs("div",{className:"relative aspect-[16/9] sm:aspect-[16/9] bg-gradient-to-br from-card via-card/80 to-background overflow-hidden",children:[e.jsxs("div",{className:"absolute inset-0 p-3 sm:p-6",children:[e.jsxs("div",{className:"hidden md:block absolute left-0 top-0 bottom-0 w-48 bg-card/80 border-r border-border/30 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-6",children:[e.jsx("div",{className:"w-8 h-8 rounded bg-primary/20"}),e.jsx("div",{className:"h-4 w-20 rounded bg-muted/30"})]}),e.jsx("div",{className:"space-y-2",children:[{name:"EICAR Testing",active:!1},{name:"HTML Smuggling",active:!1},{name:"Threat Intel",active:!0},{name:"Containers",active:!1},{name:"Macros",active:!1}].map((p,S)=>e.jsx("div",{className:`h-8 rounded px-3 flex items-center text-xs ${p.active?"bg-primary/20 text-primary":"bg-muted/20 text-muted-foreground"}`,children:p.name},S))})]}),e.jsxs("div",{className:"md:ml-52 space-y-3 sm:space-y-4",children:[e.jsx("div",{className:"h-6 sm:h-8 w-32 sm:w-48 rounded bg-muted/30"}),e.jsx("div",{className:"grid grid-cols-4 gap-2 sm:gap-4",children:[{label:"Delivered",value:"42%",color:"success"},{label:"Blocked",value:"38%",color:"destructive"},{label:"Quarantined",value:"15%",color:"status-blocked"},{label:"Clicks",value:"33",color:"primary"}].map((p,S)=>e.jsxs("div",{className:"p-2 sm:p-4 rounded-lg bg-card/60 border border-border/30",children:[e.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground mb-0.5 sm:mb-1",children:p.label}),e.jsx("div",{className:`text-base sm:text-2xl font-bold text-${p.color}`,children:p.value})]},S))}),e.jsxs("div",{className:"p-2 sm:p-4 rounded-lg bg-card/60 border border-border/30",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2 sm:mb-4",children:[e.jsx("div",{className:"h-3 sm:h-4 w-24 sm:w-32 rounded bg-muted/30"}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 text-[8px] sm:text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 sm:w-3 sm:h-3 rounded-full bg-chart-purple"}),e.jsx("span",{className:"text-muted-foreground",children:"Global"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 sm:w-3 sm:h-3 rounded-full bg-primary"}),e.jsx("span",{className:"text-muted-foreground",children:"You"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 sm:w-3 sm:h-3 rounded-full bg-success"}),e.jsx("span",{className:"text-muted-foreground",children:"Team"})]})]})]}),e.jsx("div",{className:"h-20 sm:h-32 w-full",children:e.jsxs("svg",{viewBox:"0 0 400 100",className:"w-full h-full",preserveAspectRatio:"none",children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"userGradient",x1:"0%",y1:"0%",x2:"0%",y2:"100%",children:[e.jsx("stop",{offset:"0%",stopColor:"hsl(var(--primary))",stopOpacity:"0.3"}),e.jsx("stop",{offset:"100%",stopColor:"hsl(var(--primary))",stopOpacity:"0"})]})}),e.jsx("line",{x1:"0",y1:"25",x2:"400",y2:"25",stroke:"currentColor",strokeOpacity:"0.1"}),e.jsx("line",{x1:"0",y1:"50",x2:"400",y2:"50",stroke:"currentColor",strokeOpacity:"0.1"}),e.jsx("line",{x1:"0",y1:"75",x2:"400",y2:"75",stroke:"currentColor",strokeOpacity:"0.1"}),e.jsx("polygon",{fill:"url(#userGradient)",points:"0,70 50,62 100,55 150,48 200,42 250,35 300,28 350,22 400,18 400,100 0,100",className:"animate-fadeIn",style:{animationDelay:"0.5s",animationFillMode:"backwards"}}
7),e.jsx("polyline",{fill:"none",stroke:"hsl(var(--chart-purple))",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",points:"0,45 50,48 100,44 150,50 200,47 250,52 300,49 350,53 400,50",className:"animate-drawLine",style:{strokeDasharray:500,strokeDashoffset:500,animation:"drawLine 2s ease-out forwards"}}),e.jsx("polyline",{fill:"none",stroke:"hsl(var(--primary))",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",points:"0,70 50,62 100,55 150,48 200,42 250,35 300,28 350,22 400,18",style:{strokeDasharray:500,strokeDashoffset:500,animation:"drawLine 2s ease-out 0.3s forwards"}}),e.jsx("polyline",{fill:"none",stroke:"hsl(var(--success))",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",points:"0,65 50,58 100,52 150,45 200,40 250,32 300,26 350,20 400,15",style:{strokeDasharray:500,strokeDashoffset:500,animation:"drawLine 2s ease-out 0.6s forwards"}})]})})]})]})]}),e.jsx("style",{children:`
8                  @keyframes drawLine {
9                    to {
10                      stroke-dashoffset: 0;
11                    }
12                  }
13                  @keyframes fadeIn {
14                    from {
15                      opacity: 0;
16                    }
17                    to {
18                      opacity: 1;
19                    }
20                  }
21                  .animate-fadeIn {
22                    animation: fadeIn 1s ease-out forwards;
23                  }
24                `}),e.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-background to-transparent"})]})]})})]})]}),e.jsx(L,{open:t==="confirming",onOpenChange:p=>{!p&&!x.current&&b(),p||(x.current=!1)},children:e.jsxs(R,{className:"sm:max-w-[425px]",children:[e.jsxs($,{children:[e.jsxs(I,{className:"flex items-center gap-2",children:[e.jsx(Le,{className:"h-5 w-5 text-primary"}),"Verify Your Email"]}),e.jsx(_,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{children:["We'll send a verification code to ",e.jsx("strong",{children:s})," to confirm you own this address."]}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-start gap-2",children:[e.jsx(se,{className:"h-4 w-4 mt-0.5 shrink-0"}),e.jsxs("span",{children:["For best results, allowlist our sending domain first."," ",e.jsx("a",{href:"https://docs.delivr.to/docs/gettingstarted/preparing_your_environment.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Learn more"})]})]})]})})]}),e.jsxs(A,{children:[e.jsx(Y,{children:"Cancel"}),e.jsx(H,{onClick:a,children:"Send Code"})]})]})}),e.jsx(ce,{open:t==="awaiting_code"||t==="verifying_code",onOpenChange:p=>{!p&&!x.current&&b(),p||(x.current=!1)},children:e.jsxs(de,{className:"sm:max-w-[425px]",children:[e.jsxs(me,{children:[e.jsx(ue,{children:"Enter Verification Code"}),e.jsx(he,{children:t==="awaiting_code"?e.jsxs(e.Fragment,{children:["Enter the code we sent to"," ",e.jsx("strong",{children:s||N})]}):"Verifying your code..."})]}),r&&t==="awaiting_code"&&e.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-md bg-status-blocked/10 border border-status-blocked/20 text-sm text-status-blocked",children:[e.jsx(K,{className:"h-4 w-4 shrink-0"}),r]}),!s&&t==="awaiting_code"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Email Address"}),e.jsx(O,{type:"email",placeholder:"Enter your email",value:N,onChange:p=>v(p.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Verification Code"}),e.jsx(O,{ref:y,type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"Enter code",value:l,onChange:p=>f(p.target.value.replace(/\D/g,"")),disabled:t==="verifying_code",autoFocus:!0})]}),e.jsxs(xe,{children:[e.jsx(F,{variant:"outline",onClick:b,disabled:t==="verifying_code",children:"Cancel"}),e.jsx(F,{onClick:C,disabled:t==="verifying_code"||!l||!s&&!N,children:t==="verifying_code"?e.jsxs(e.Fragment,{children:[e.jsx(W,{className:"mr-2 h-4 w-4 animate-spin"}),"Verifying..."]}):"Verify"})]})]})}),e.jsx(L,{open:t==="code_verified"||t==="launching",children:e.jsxs(R,{className:"sm:max-w-[450px]",children:[e.jsxs($,{className:"flex flex-col items-center text-center space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ke,{size:100}),e.jsx("div",{className:"absolute -bottom-1 -right-1 bg-success rounded-full p-1",children:e.jsx(J,{className:"h-6 w-6 text-background"})})]}),e.jsx(I,{className:"text-2xl font-bold",children:"Email Verified!"}),e.jsx(_,{className:"text-base",children:"Your email has been verified. Click below to start your health check campaign. We'll send you test payloads and email you the results."})]}),e.jsxs(A,{className:"sm:justify-center gap-3 mt-4",children:[e.jsx(Y,{onClick:b,disabled:t==="launching",children:"Cancel"}),e.jsx(H,{onClick:m,disabled:t==="launching",children:t==="launching"?e.jsxs(e.Fragment,{children:[e.jsx(W,{className:"mr-2 h-4 w-4 animate-spin"}),"Launching..."]}):e.jsx(e.Fragment,{children:"Start Health Check"})})]})]})}),e.jsx(L,{open:t==="success",children:e.jsxs(R,{className:"sm:max-w-[425px]",children:[e.jsxs($,{children:[e.jsxs(I,{className:"flex items-center gap-2",children:[e.jsx(J,{className:"h-5 w-5 text-success"}),"Health Check Started! 📬"]}),e.jsx(_,{children:"Your health check campaign has started. Check your inbox for the test payloads and we'll email you the results when complete."})]}),e.jsx(A,{children:e.jsx(H,{onClick:b,children:"Done"})})]})}),e.jsx(L,{open:t==="error",children:e.jsxs(R,{className:"sm:max-w-[500px]",children:[e.jsxs($,{children:[e.jsxs(I,{className:"flex items-center gap-2",children:[e.jsx(K,{className:"h-5 w-5 text-destructive"}),"Something Went Wrong"]}),e.jsx(_,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:r}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["If you already have an account, please"," ",e.jsx("a",{href:"/app/dashboard",className:"text-primary hover:underline",children:"sign in"})," ","and launch the health check from your dashboard. If you've forgotten your password,"," ",e.jsx("a",{href:w,className:"text-primary hover:underline",children:"reset it here"}),". Need help?"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"Contact support"}),"."]})]})})]}),e.jsx(A,{children:e.jsx(H,{onClick:b,children:"Try Again"})})]})})]})}function st({value:t,suffix:s,label:r}
24){const[i,n]=d.useState(0),o=d.useRef(null),c=d.useRef(!1);return d.useEffect(()=>{const u=new IntersectionObserver(([h])=>{if(h.isIntersecting&&!c.current){c.current=!0;const g=2e3,l=60,f=t/l;let N=0;const v=setInterval(()=>{N+=f,N>=t?(n(t),clearInterval(v)):n(Math.floor(N))},g/l)}},{threshold:.5});return o.current&&u.observe(o.current),()=>u.disconnect()},[t]),e.jsxs("div",{ref:o,className:"text-center px-4 sm:px-8",children:[e.jsxs("div",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-primary",children:[i.toLocaleString(),s]}),e.jsx("div",{className:"text-sm sm:text-base text-muted-foreground mt-1",children:r})]})}function rt(){const t=[{value:800,suffix:"+",label:"Available payloads"},{value:100,suffix:"+",label:"File types"},{value:10,suffix:"k+",label:"Campaigns sent"},{value:200,suffix:"k+",label:"Emails sent"}];return e.jsxs("section",{className:"py-16 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[#030712]"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-transparent via-[#0a1628]/30 to-transparent"}),e.jsx("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-8",children:t.map(s=>e.jsx(st,{...s},s.label))})})]})}const M=[{icon:re,title:"Select Your Payloads",description:"Choose from our library of real-world threat emulations based on the attack techniques, file types, or threat actors you want to test against.",details:["Target specific threat actor TTPs","Emulate prevalent malware strains","Select weaponised file types (SVG, PDF, ZIP, etc.)","Use curated templates for common scenarios"]},{icon:Ae,title:"Deliver Your Payloads",description:"Send payloads to test mailboxes via email or host them for browser-based download. [delivr.to] handles realistic formatting and proper delivery for both channels.",details:["Email delivery with attachment, link, or inline methods","Web delivery for browser-based download testing","Schedule or launch immediately","Configure hands-off repeating campaigns"]},{icon:_e,title:"Automated Assessment",description:"Our suite of integrations detect what landed, and in what condition, as well as what was blocked or quarantined. Works for both email and web delivery campaigns.",details:["Real-time delivery detection","Browser download monitoring and verification","Attachment and link rewriting verification","Alert collection from security tools"]},{icon:ae,title:"Track Results Over Time",description:"Build a comprehensive picture of your email and web security posture. Compare results across campaigns, measure improvement and demonstrate return on investment.",details:["Historical trend anal
24ysis","Campaign comparison reports","Threat technique coverage gaps","Executive-ready dashboards"]}];function at({stepIndex:t,isActive:s}){const r="transition-all duration-700",i=s?"opacity-100 scale-100":"opacity-40 scale-95";if(t===0){const n=[{id:"midnight",label:"Midnight Blizzard",type:"threat",x:55,y:90},{id:"kimsuky",label:"Kimsuky",type:"threat",x:70,y:12},{id:"html",label:"HTML",type:"file",x:50,y:65},{id:"msc",label:"MSC",type:"file",x:110,y:25},{id:"smuggle",label:"HTML Smuggling",type:"technique",x:90,y:78},{id:"container",label:"Containers",type:"technique",x:85,y:38},{id:"iso",label:"ISO",type:"file",x:115,y:60}],o=[["midnight","html"],["midnight","smuggle"],["midnight","container"],["kimsuky","msc"],["kimsuky","container"],["html","smuggle"],["msc","container"],["smuggle","container"],["container","iso"]],c=[{name:"interview.msc"},{name:"invoice.iso"}];return e.jsxs("div",{className:`${r} ${i} relative w-full h-48 sm:h-64`,children:[e.jsx("div",{className:"absolute left-2 sm:left-4 top-1/2 -translate-y-1/2 flex flex-col gap-2 z-10",children:c.map((u,h)=>e.jsx("div",{className:`px-2 py-1.5 sm:px-3 sm:py-2 rounded-lg border transition-all duration-500 ${s?"bg-card/90 border-primary/50 shadow-lg shadow-primary/10":"bg-card/30 border-border/30"}`,style:{transitionDelay:`${h*150}ms`},children:e.jsx("div",{className:"text-[9px] sm:text-[11px] font-mono text-foreground",children:u.name})},u.name))}),e.jsx("svg",{className:"absolute inset-0 w-full h-full pointer-events-none",viewBox:"0 0 120 100",preserveAspectRatio:"xMidYMid meet",children:s&&e.jsxs(e.Fragment,{children:[e.jsx("line",{x1:"25",y1:"44",x2:"75",y2:"12",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"25",y1:"44",x2:"115",y2:"25",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"25",y1:"44",x2:"90",y2:"38",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"25",y1:"56",x2:"60",y2:"90",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"25",y1:"56",x2:"55",y2:"65",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"25",y1:"56",x2:"90",y2:"38",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"}),e.jsx("line",{x1:"30",y1:"56",x2:"120",y2:"60",stroke:"hsl(var(--primary))",strokeWidth:"0.5",strokeDasharray:"2 1",strokeOpacity:"0.5"})]})}),e.jsxs("svg",{className:"absolute inset-0 w-full h-full",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid meet",children:[o.map(([u,h],g)=>{const l=n.find(N=>N.id===u),f=n.find(N=>N.id===h);return e.jsx("line",{x1:l.x,y1:l.y,x2:f.x,y2:f.y,stroke:s?"hsl(var(--primary))":"hsl(var(--border))",strokeWidth:s?"0.5":"0.3",strokeOpacity:s?.4:.2,className:"transition-all duration-500",style:{transitionDelay:`${g*40}ms`}},`${u}-${h}`)}),n.map((u,h)=>{const l=u.type==="threat"?"hsl(var(--status-blocked))":u.type==="technique"?"hsl(var(--chart-purple))":"hsl(var(--primary))",f=u.type==="technique"?5:u.type==="threat"?4:3.5,N=f+3,v=h*.4%2;return e.jsxs("g",{className:"transition-all duration-500",style:{transitionDelay:`${h*80}ms`,animation:s?`float-node 3s ease-in-out ${v}s infinite`:"none"},children:[s&&e.jsx("circle",{cx:u.x,cy:u.y,r:N,fill:l,style:{animation:`glow-pulse 2.5s ease-in-out ${h*.3}s infinite`}}),e.jsx("circle",{cx:u.x,cy:u.y,r:f,fill:s?l:"hsl(var(--muted))",stroke:s?l:"hsl(var(--border))",strokeWidth:"0.4"}),e.jsx("text",{x:u.x,y:u.y+(u.type==="technique"?10:9),textAnchor:"middle",fontSize:u.type==="technique"?"3.5":"3",fill:s?"hsl(var(--foreground))":"hsl(var(--muted-foreground))",opacity:s?1:.5,children:u.label})]},u.id)})]})]})}if(t===1){const n=[{id:1,x:50,y:15,blocked:!1,hitTime:0},{id:2,x:35,y:28,blocked:!0,hitTime:900},{id:3,x:65,y:28,blocked:!1,hitTime:0},{id:4,x:25,y:41,blocked:!0,hitTime:1200},{id:5,x:50,y:41,blocked:!1,hitTime:0},{id:6,x:75,y:41,blocked:!0,hitTime:1500}];return e.jsx("div",{className:`${r} ${i} relative w-full h-48 sm:h-64 overflow-hidden`,children:e.jsxs("svg",{className:"absolute inset-0 w-full h-full",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid meet",children:[n.map(o=>e.jsxs("g",{children:[e.jsx("rect",{x:o.x-5,y:o.y-3,width:"10",height:"6",rx:"1",className:"transition-all duration-300",style:{fill:s&&o.blocked?"hsl(var(--status-blocked))":"hsl(var(--primary))",opacity:s&&o.blocked?.6:1,transitionDelay:s&&o.blocked?`${o.hitTime}ms`:"0ms"}}),e.jsx("rect",{x:o.x-6,y:o.y,width:"4",height:"4",rx:"0.5",className:"transition-all duration-300",style:{fill:s&&o.blocked?"hsl(var(--status-blocked))":"hsl(var(--primary))",opacity:s&&o.blocked?.6:1,transitionDelay:s&&o.blocked?`${o.hitTime}ms`:"0ms"}}),e.jsx("rect",{x:o.x+2,y:o.y,width:"4",height:"4",rx:"0.5",className:"transition-all duration-300",style:{fill:s&&o.blocked?"hsl(var(--status-blocked))":"hsl(var(--primary))",opacity:s&&o.blocked?.6:1,transitionDelay:s&&o.blocked?`${o.hitTime}ms`:"0ms"}}),e.jsx("circle",{cx:o.x-2,cy:o.y-1,r:"1",fill:"hsl(var(--background))",opacity:"0.7"}),e.jsx("circle",{cx:o.x+2,cy:o.y-1,r:"1",fill:"hsl(var(--background))",opacity:"0.7"})]},o.id)),s&&e.jsxs(e.Fragment,{children:[e.jsxs("circle",{cx:"35",cy:"28",r:"0",fill:"hsl(var(--success))",children:[e.jsx("animate",{attributeName:"r",from:"2",to:"12",dur:"0.25s",begin:"0.9s",fill:"freeze"}),e.jsx("animate",{attributeName:"opacity",from:"0.9",to:"0",dur:"0.25s",begin:"0.9s",fill:"freeze"})]}),e.jsxs("circle",{cx:"25",cy:"41",r:"0",fill:"hsl(var(--success))",children:[e.jsx("animate",{attributeName:"r",from:"2",to:"12",dur:"0.25s",begin:"1.2s",fill:"freeze"}),e.jsx("animate",{attributeName:"opacity",from:"0.9",to:"0",dur:"0.25s",begin:"1.2s",fill:"freeze"})]}),e.jsxs("circle",{cx:"75",cy:"41",r:"0",fill:"hsl(var(--success))",children:[e.jsx("animate",{attributeName:"r",from:"2",to:"12",dur:"0.25s",begin:"1.5s",fill:"freeze"}),e.jsx("animate",{attributeName:"opacity",from:"0.9",to:"0",dur:"0.25s",begin:"1.5s",fill:"freeze"})]})]}),e.jsxs("g",{style:{animation:s?"defender-shoot 2s ease-in-out forwards":"none"},children:[e.jsx("polygon",{points:"50,82 44,90 56,90",fill:"hsl(var(--success))",className:"transition-opacity duration-500",style:{opacity:s?1:.4}}),e.jsx("rect",{x:"47",y:"84",width:"6",height:"4",fill:"hsl(var(--success))",className:"transition-opacity duration-500",style:{opacity:s?1:.4}})]}),s&&e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:"34.25",y:"82",width:"1.5",height:"4",rx:"0.75",fill:"hsl(var(--success))",opacity:"0",style:{animation:"shoot-up-1 0.2s ease-out 0.7s forwards"}}),e.jsx("rect",{x:"24.25",y:"82",width:"1.5",height:"4",rx:"0.75",fill:"hsl(var(--success))",opacity:"0",style:{animation:"shoot-up-2 0.15s ease-out 1s forwards"}}),e.jsx("rect",{x:"74.25",y:"82",width:"1.5",height:"4",rx:"0.75",fill:"hsl(var(--success))",opacity:"0",style:{animation:"shoot-up-3 0.15s ease-out 1.3s forwards"}})]})]})})}if(t===2){const n=[{name:"invoice.docm",method:"link",status:"rewritten"},{name:"report.iso",method:"link",status:"blocked"},{name:"update.html",method:"body",status:"delivered"},{name:"notice.lnk",method:"attachment",status:"blocked"}];return e.jsx("div",{className:`${r} ${i} relative w-full h-48 sm:h-64`,children:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("div",{className:"grid grid-cols-2 gap-2 sm:gap-3 w-full max-w-[280px] sm:max-w-sm px-2",children:n.map((o,c)=>e.jsxs("div",{className:`p-2 sm:p-3 rounded-lg border transition-all duration-500 ${s?"bg-card/80 border-border/50 shadow-lg":"bg-card/30 border-border/30"}`,style:{transitionDelay:`${c*150}ms`},children:[e.jsx("div",{className:"text-[10px] sm:text-xs font-mono text-foreground truncate mb-1.5 sm:mb-2",children:o.name}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:`flex items-center gap-1 ${s?"text-muted-foreground":"text-muted-foreground
24/50"}`,children:[o.method==="attachment"&&e.jsx("svg",{className:"h-3 w-3 sm:h-4 sm:w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48"})}),o.method==="link"&&e.jsxs("svg",{className:"h-3 w-3 sm:h-4 sm:w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"}),e.jsx("path",{d:"M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"})]}),o.method==="body"&&e.jsxs("svg",{className:"h-3 w-3 sm:h-4 sm:w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),e.jsx("path",{d:"M3 9h18"})]}),e.jsx("span",{className:"text-[8px] sm:text-[10px] hidden sm:inline",children:o.method})]}),e.jsxs("div",{className:`flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[8px] sm:text-[10px] font-medium ${s?o.status==="delivered"?"bg-success/20 text-success":o.status==="rewritten"?"bg-primary/20 text-primary":"bg-status-blocked/20 text-status-blocked":"bg-muted text-muted-foreground"}`,children:[o.status==="delivered"?e.jsx(ie,{className:"h-2.5 w-2.5 sm:h-3 sm:w-3"}):o.status==="rewritten"?e.jsxs("svg",{className:"h-2.5 w-2.5 sm:h-3 sm:w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"}),e.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"})]}):e.jsxs("svg",{className:"h-2.5 w-2.5 sm:h-3 sm:w-3",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{d:"M15 9l-6 6M9 9l6 6"})]}),e.jsx("span",{className:"hidden sm:inline",children:o.status})]})]})]},o.name))})})})}return e.jsx("div",{className:`${r} ${i} relative w-full h-48 sm:h-64`,children:e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsxs("div",{className:"w-full max-w-[200px] sm:max-w-xs h-32 sm:h-40 relative",children:[e.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px bg-border/50"}),e.jsx("div",{className:"absolute bottom-0 left-0 top-0 w-px bg-border/50"}),s&&e.jsxs("div",{className:"absolute -top-6 sm:-top-8 left-0 right-0 flex items-center justify-center gap-3 sm:gap-4 text-[8px] sm:text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-chart-purple"}),e.jsx("span",{className:"text-muted-foreground",children:"Global"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-primary"}),e.jsx("span",{className:"text-muted-foreground",children:"You"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-success"}),e.jsx("span",{className:"text-muted-foreground",children:"Team"})]})]}),e.jsxs("svg",{className:"absolute inset-0 w-full h-full overflow-visible",viewBox:"0 0 200 100",preserveAspectRatio:"none",children:[e.jsx("path",{d:"M 0 45 C 30 48, 50 42, 80 47 S 130 44, 160 48 S 185 45, 200 46",fill:"none",stroke:"hsl(var(--chart-purple))",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"350",strokeDashoffset:s?"0":"350",style:{transition:s?"stroke-dashoffset 2s cubic-bezier(0.25, 0.1, 0.25, 1)":"stroke-dashoffset 0.5s ease-out"}}),e.jsx("path",{d:"M 0 80 C 40 70, 60 55, 80 48 S 120 38, 140 32 S 180 22, 200 18",fill:"none",stroke:"hsl(var(--primary))",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"350",strokeDashoffset:s?"0":"350",style:{transition:s?"stroke-dashoffset 2.5s cubic-bezier(0.25, 0.1, 0.25, 1) 0.3s":"stroke-dashoffset 0.5s ease-out"}}),e.jsx("path",{d:"M 0 75 C 40 65, 60 50, 80 42 S 120 32, 140 26 S 180 18, 200 12",fill:"none",stroke:"hsl(var(--success))",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"350",strokeDashoffset:s?"0":"350",style:{transition:s?"stroke-dashoffset 2.5s cubic-bezier(0.25, 0.1, 0.25, 1) 0.6s":"stroke-dashoffset 0.5s ease-out"}}),s&&e.jsxs(e.Fragment,{children:[e.jsx("circle",{cx:"200",cy:"46",r:"3",fill:"hsl(var(--chart-purple))",style:{opacity:s?1:0,transition:"opacity 0.5s ease-out 1.8s"}}),e.jsx("circle",{cx:"200",cy:"18",r:"3",fill:"hsl(var(--primary))",style:{opacity:s?1:0,transition:"opacity 0.5s ease-out 2.5s"}}),e.jsx("circle",{cx:"200",cy:"12",r:"3",fill:"hsl(var(--success))",style:{opacity:s?1:0,transition:"opacity 0.5s ease-out 2.8s"}})]})]}),e.jsx("div",{className:"absolute -bottom-5 sm:-bottom-6 left-0 text-[10px] sm:text-xs text-muted-foreground",children:"Jan"}),e.jsx("div",{className:"absolute -bottom-5 sm:-bottom-6 right-0 text-[10px] sm:text-xs text-muted-foreground",children:"Dec"}),s&&e.jsx("div",{className:"absolute -bottom-5 sm:-bottom-6 left-1/2 -translate-x-1/2 text-[10px] sm:text-xs text-success font-medium whitespace-nowrap",children:"↑ Outperforming global avg"})]})})})}
24function it(){const[t,s]=d.useState(0),[r,i]=d.useState(null),[n,o]=d.useState({top:0,height:0}),c=d.useRef(new Set),u=d.useRef(-1),h=d.useRef(null),g=d.useRef(null),l=d.useRef([]);d.useEffect(()=>{const v=()=>{if(!g.current||l.current.length<M.length)return;const y=g.current.getBoundingClientRect(),x=l.current[0],k=l.current[M.length-1];if(!x||!k)return;const j=x.getBoundingClientRect(),C=k.getBoundingClientRect(),a=24,m=j.top-y.top+a,w=C.top-y.top+a-m;o({top:m,height:w})};return v(),window.addEventListener("resize",v),()=>window.removeEventListener("resize",v)},[]),d.useEffect(()=>{const v=()=>{if(!g.current||!h.current)return;const x=g.current.getBoundingClientRect(),k=window.innerHeight,j=x.top,C=x.height,m=k*.5-j,w=Math.max(0,Math.min(1,m/C));s(w)};return window.addEventListener("scroll",v,{passive:!0}),v(),()=>window.removeEventListener("scroll",v)},[]);const f=Math.min(M.length-1,Math.floor(t*M.length));d.useEffect(()=>{if(f>u.current&&!c.current.has(f)){c.current.add(f),i(f);const v=setTimeout(()=>i(null),1100);return()=>clearTimeout(v)}u.current=f},[f]);const N=Math.min(f/(M.length-1),1);return e.jsxs("section",{ref:h,className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/30 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4",children:"How It Works"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Test your email and web defences safely, continuously and autonomously."})]}),e.jsxs("div",{ref:g,className:"relative",children:[n.height>0&&e.jsxs("div",{className:"hidden lg:block absolute left-1/2 -translate-x-1/2 w-0.5",style:{to
24p:`${n.top}px`,height:`${n.height}px`},children:[e.jsx("div",{className:"absolute inset-0 bg-border/30 rounded-full"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 rounded-full overflow-hidden transition-all duration-300 ease-out",style:{height:`${N*100}%`},children:e.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(to bottom, hsl(var(--primary)) 0%, hsl(265, 89%, 60%) 33%, hsl(var(--chart-purple)) 66%, hsl(var(--success)) 100%)"}})})]}),e.jsx("div",{className:"space-y-16 sm:space-y-24 lg:space-y-32",children:M.map((v,y)=>{const x=y%2===0,k=v.icon,j=y<=f,C=r===y,a=["hsl(var(--primary))","hsl(265, 89%, 60%)","hsl(var(--chart-purple))","hsl(var(--success))"],m=a[y]||a[0];return e.jsxs("div",{className:"relative",ref:b=>{l.current[y]=b},children:[e.jsxs("div",{className:"hidden lg:flex absolute left-1/2 top-0 -translate-x-1/2 z-10",children:[C&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute inset-0 rounded-full animate-ripple",style:{backgroundColor:m}}),e.jsx("div",{className:"absolute inset-0 rounded-full animate-ripple-delay",style:{backgroundColor:m}})]}),e.jsx("div",{className:`p-3 rounded-full border-2 transition-all duration-500 relative ${j?"text-white scale-110":"bg-background border-border text-muted-foreground"}`,style:j?{backgroundColor:m,borderColor:m,boxShadow:`0 0 20px ${m}40`}:{},children:e.jsx(k,{className:"h-6 w-6"})})]}),e.jsxs("div",{className:`flex flex-col ${x?"lg:flex-row":"lg:flex-row-reverse"} items-stretch gap-8 lg:gap-24`,children:[e.jsxs("div",{className:`flex-1 ${x?"lg:text-right lg:pr-16":"lg:text-left lg:pl-16"} text-center flex flex-col items-center ${x?"lg:items-end":"lg:items-start"}`,children:[e.jsx("div",{className:"lg:hidden flex justify-center mb-4",children:e.jsx("div",{className:`p-3 rounded-full border-2 transition-all duration-500 ${j?"text-white":"bg-background border-border text-muted-foreground"}`,style:j?{backgroundColor:m,borderColor:m}:{},children:e.jsx(k,{className:"h-6 w-6"})})}),e.jsx("h3",{className:`text-2xl sm:text-3xl font-bold mb-4 transition-colors duration-500 ${j?"text-foreground":"text-muted-foreground"}`,children:v.title}),e.jsx("p",{className:`text-base sm:text-lg mb-6 transition-colors duration-500 max-w-md ${j?"text-muted-foreground":"text-muted-foreground/50"}`,children:v.description.includes("[delivr.to]")?v.description.split("[delivr.to]").map((b,w,p)=>e.jsxs("span",{children:[b,w<p.length-1&&e.jsx("span",{className:"text-primary font-medium",children:"delivr.to"})]},w)):v.description}),e.jsx("ul",{className:`space-y-2 ${x?"lg:text-right lg:items-end":"lg:text-left lg:items-start"} flex flex-col items-center`,children:v.details.map((b,w)=>e.jsxs("li",{className:`flex items-center gap-2 text-sm transition-all duration-500 ${x?"lg:flex-row-reverse":""} ${j?"text-muted-foreground":"text-muted-foreground/40"}`,style:{transitionDelay:`${w*100}ms`},children:[e.jsx(ie,{className:`h-4 w-4 flex-shrink-0 transition-colors duration-500 ${j?"text-success":"text-muted"}`}),b]},b))})]}),e.jsx("div",{className:`flex-1 w-full max-w-md mx-auto lg:mx-0 lg:max-w-none ${x?"lg:pl-16":"lg:pr-16"}`,children:e.jsx("div",{className:`p-4 sm:p-8 rounded-2xl border transition-all duration-500 ${j?"bg-card/50 border-border/50":"bg-card/20 border-border/20"}`,children:e.jsx(at,{stepIndex:y,isActive:j})})})]})]},v.title)})})]}),f===0&&e.jsx("div",{className:"hidden lg:flex justify-center mt-12 animate-bounce",children:e.jsx(He,{className:"h-6 w-6 text-muted-foreground"})})]})]})}function ot(){const t=[{icon:Fe,title:"Validate Posture",description:e.jsxs(e.Fragment,{children:["Take a data-driven approach to improving your email and web security. Use our growing suite of"," ",e.jsx("a",{href:"/payloads",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"800+ payloads"})," ","to demonstrate exactly what threats can land in your inbox, and in what condition."]})},{icon:Be,title:"Highlight Gaps",description:e.jsxs(e.Fragment,{children:["Test attachments, links, and inline payloads to assess sandboxing and safe-link controls, then use our"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/campaigns/insights.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"tailored insights"})," ","to prioritise remediation."]})},{icon:ae,title:"Stay Ahead of Threats",description:e.jsxs(e.Fragment,{children:["Emulate the latest offensive tradecraft, from"," ",e.jsx("a",{href:"https://blog.delivr.to/emulating-aitm-and-bitm-attacks-d7a4ac756576",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Adversary-in-the-Middle"})," ","to callback phishing. Tailor custom campaigns to test everything from CEO impersonation to gift card scams."]})}];return e.jsxs("section",{className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/20 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsxs("h2",{className:"text-3xl sm:text-4xl font-bold mb-4",children:["Why Choose ",e.jsx("span",{className:"text-primary",children:"delivr.to"}),"?"]}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Empower your security team with data-driven insights"})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:t.map(s=>e.jsxs("div",{className:"group p-8 rounded-2xl bg-card/50 border border-border/50 hover:border-primary/30 hover:bg-card/80 transition-all duration-300",children:[e.jsx("div",{className:"mb-6 p-4 rounded-xl bg-primary/10 w-fit group-hover:bg-primary/20 transition-colors",children:e.jsx(s.icon,{className:"h-8 w-8 text-primary"})}),e.jsx("h3",{className:"text-xl font-semibold mb-3",children:s.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:s.description})]},s.title))})]})]})}function nt({feature:t}){return e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(be,{className:"h-5 w-5 text-primary shrink-0 mt-0.5"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:t.tooltip?e.jsx(ve,{children:e.jsxs(je,{children:[e.jsxs(we,{className:"inline-flex items-center gap-1 border-b border-dashed border-muted-foreground
24/50 cursor-help",children:[t.text,e.jsx(se,{className:"h-3 w-3"})]}),e.jsx(Ne,{className:"max-w-xs",children:e.jsx("p",{className:"text-xs",children:t.tooltip})})]})}):t.text})]})}function lt(){const t=r=>`https://auth.${V}/signup?client_id=${ee}&response_type=code&scope=aws.cognito.signin.user.admin+email+openid+profile&redirect_uri=${encodeURIComponent(`https://${V}/auth/callback`)}&state=/app/dashboard?source=${r}`,s=[{name:"Starter",price:"£99",priceSubtext:"per month (£999 per annum)",description:"Our most cost-effective plan. 10 downloads and 100 emails a day, perfect for no-frills email and web security validation.",cta:"Subscribe",ctaUrl:t("starter_pricing_table"),icon:ge,iconColor:"text-muted-foreground",features:[{text:"Web & Email Campaigns",tooltip:"Test your defences with both email delivery and browser-based web delivery campaigns."},{text:"100 emails a day"},{text:"10 payload downloads a day"},{text:"1 validated email",tooltip:"Send payloads to your sign up email address only."},{text:"Developer API",tooltip:"Access to the delivr.to API for integration with SOAR and other 3rd party tools."},{text:"Deliverability Tracking",tooltip:"Track what reaches your inbox and how it compares to global deliverability trends."}]},{name:"Premium",price:"£299",priceSubtext:"per month (£2,999 per annum)",description:"Unlimited integrations, tailored insights & recommendations, and 2000 emails a day for a comprehensive view of your email and web security posture.",cta:"Start Trial",ctaUrl:t("premium_pricing_table"),highlighted:!0,icon:fe,iconColor:"text-primary",features:[{text:"Web & Email Campaigns",tooltip:"Test your defences with both email delivery and browser-based web delivery campaigns."},{text:"2000 emails a day"},{text:"Unlimited payload downloads"},{text:"2 validated emails",tooltip:"Send payloads to both your sign up email address and another that you own, i.e. a testing address."},{text:"Developer API",tooltip:"Access to the delivr.to API for integration with SOAR and other 3rd party tools."},{text:"Tailored Insights",tooltip:"Let us analyse your results and give you insight into your attack surface reduction opportunities."},{text:"Recommendations",tooltip:"Immediately actionable recommendations, presented in a tool-agnostic way and ordered by effort vs impact."},{text:"Mailbox Integrations",tooltip:"Integrate with O365 and Google to automatically determine what payloads arrived and in what condition."},{text:"Security Tool Integrations",tooltip:"Integrate with tools such as 365 Defender and Sublime Security to track where threats were detected."}]},{name:"Enterprise",price:"Let's talk.",priceSubtext:"Monthly & annual options",description:"All you can eat everything, plus Team collaboration, custom payloads & templates, full rebranding, and tailored onboarding.",cta:"Book Demo",ctaUrl:"https://calendly.com/delivrto/enterprise",icon:ye,iconColor:"text-chart-purple",features:[{text:"Web & Email Campaigns",tooltip:"Test your defences with both email delivery and browser-based web delivery campaigns."},{text:"Unlimited emails"},{text:"Unlimited downloads"},{text:"Unlimited validated emails",tooltip:"Send payloads to as many email addresses that you own as you like."},{text:"Custom Payloads",tooltip:"Got some secret sauce payloads that you want to test? Upload as many custom payloads as you like."},{text:"Custom Campaigns",tooltip:"Go beyond the default set of campaign templates and build your own campaigns."},{text:"Team Collaboration",tooltip:"Collaborate with other team members and share resources such as campaign results, integrations, and custom payloads."},{text:"Audit Log",tooltip:"Full immutable audit log of organisation-wide activity."},{text:"Recurring Campaigns",tooltip:"Set-and-forget campaigns and get notified when your attack surface changes."},{text:"Custom Branding",tooltip:"Customise the branding sent alongside the payloads for client engagements."}]}];return e.jsxs("section",{id:"pricing",className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/30 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4",children:"Simple, Transparent Pricing"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Choose the plan that fits your security testing needs"})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:s.map(r=>e.jsxs("div",{className:`relative p-8 rounded-2xl bg-card/50 border transition-all duration-300 ${r.highlighted?"border-primary shadow-lg shadow-primary/10 scale-105":"border-border/50 hover:border-primary/30"}`,children:[r.highlighted&&e.jsx("div",{className:"absolute -top-4 left-1/2 -translate-x-1/2 px-4 py-1 rounded-full bg-primary text-primary-foreground text-xs font-semibold",children:"Most Popular"}),e.jsxs("div",{className:"mb-6",children:[e.jsxs("h3",{className:"text-xl font-semibold mb-2 flex items-center gap-2",children:[e.jsx(r.icon,{className:`h-5 w-5 ${r.iconColor}`}),r.name]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:r.description}),e.jsxs("div",{className:"mb-4",children:[e.jsx("span",{className:"text-3xl font-bold",children:r.price}),r.priceSubtext&&e.jsx("span",{className:"text-sm text-muted-foreground block mt-1",children:r.priceSubtext})]})]}),e.jsx(F,{asChild:!0,className:`w-full mb-6 ${r.highlighted?"bg-primary hover:bg-primary/90":"bg-primary/10 hover:bg-primary/20 text-primary"}`,children:e.jsx("a",{href:r.ctaUrl,target:r.name==="Enterprise"?"_blank":void 0,rel:r.name==="Enterprise"?"noopener noreferrer":void 0,children:r.cta})}),e.jsx("ul",{className:"space-y-3",children:r.features.map((i,n)=>e.jsx(nt,{feature:i},n))})]},r.name))})]})]})}const ct={security:{hover:"hover:border-primary/50 hover:bg-primary/5",iconHover:"group-hover:bg-primary/20 group-hover:text-primary",textHover:"group-hover:text-primary"},purple:{hover:"hover:border-chart-purple/50 hover:bg-chart-purple/5",iconHover:"group-hover:bg-chart-purple/20 group-hover:text-chart-purple",textHover:"group-hover:text-chart-purple"},consultants:{hover:"hover:border-success/50 hover:bg-success/5",iconHover:"group-hover:bg-success/20 group-hover:text-success",textHover:"group-hover:text-success"}};function dt(){const t=[{icon:Pe,title:"Security Teams",colorKey:"security",description:e.jsxs(e.Fragment,{children:["Integrate with your"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/integrations/o365_integration.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"Microsoft 365"})," ","and"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/integrations/gmail_integration.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"Google"})," ","mailboxes, and security tools likes"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/integrations/defender_integration.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"Microsoft Defender 365"})," ","and"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/integrations/sublime_integration.html",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"Sublime Security,"})," ","to automatically record what payloads landed in your inbox, and in what condition. Want to confirm links were rewritten and active content was stripped? We can provide the answer."]}
24),ctaUrl:"https://calendly.com/delivrto/enterprise"},{icon:re,title:"Purple Teams",colorKey:"purple",description:e.jsxs(e.Fragment,{children:["Your one-stop shop for payload emulation. Find safe and accurate replications of the latest attack techniques, including"," ",e.jsx("a",{href:"/payloads?q=zipsmuggling&tab=payloads",className:"text-primary hover:underline font-medium",children:"zip smuggling"})," ","&"," ",e.jsx("a",{href:"/payloads?q=polyglot&tab=payloads",className:"text-primary hover:underline font-medium",children:"polyglot files"}),", and test your defences across email and web. Visit our"," ",e.jsx("a",{href:"https://blog.delivr.to/",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"research blog"}),"."]}),ctaUrl:"https://calendly.com/delivrto/enterprise"},{icon:ke,title:"Consultants",colorKey:"consultants",description:e.jsxs(e.Fragment,{children:["Deliver more value to your clients with detailed deliverability tracking and actionable insights. Our automated recommendations help you identify gaps in email and web security controls, while"," ",e.jsx("a",{href:"https://docs.delivr.to/docs/teams/",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline font-medium",children:"team collaboration"})," ","features let you share templates and results across engagements."]}),ctaUrl:"https://calendly.com/delivrto/enterprise"}];return e.jsxs("section",{className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/20 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4",children:"Built for Security Professionals"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Whether you're defending, attacking, or consulting - we've got you covered"})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:t.map(s=>{const r=ct[s.colorKey];return e.jsxs("div",{className:`group p-8 rounded-2xl bg-card/50 border border-border/50 transition-all duration-300 ${r.hover}`,children:[e.jsx("div",{className:`mb-6 p-4 rounded-xl bg-primary/10 w-fit transition-colors duration-300 ${r.iconHover}`,children:e.jsx(s.icon,{className:"h-8 w-8 text-primary transition-colors duration-300"})}),e.jsx("h3",{className:`text-xl font-semibold mb-3 transition-colors duration-300 ${r.textHover}`,children:s.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-6",children:s.description}),e.jsxs("a",{href:s.ctaUrl,target:"_blank",rel:"noopener noreferrer",className:`inline-flex items-center gap-2 text-sm text-primary transition-colors duration-300 ${r.textHover}`,children:["Learn more",e.jsx(te,{className:"h-4 w-4"})]})]},s.title)})})]})]})}const P={techniques:["HTML Smuggling","VBA Macro","Scripting","Containers","DLL Side-loading","Brand Impersonation","Pastejacking","Encryption","ClickFix","BYOI"],threatGroups:["APT29","APT28","Lazarus Group","FIN7","Wizard Spider"],fileTypes:["DOCM","ISO","LNK","HTA","JS","VBS","HTML","PDF","ZIP","DMG","SCPT","AU3","DLL"],software:["Agent Tesla","AsyncRAT","DarkGate","Smoke Loader","Lumma Stealer","MacSync"]},T={technique:"rgba(99, 102, 241, 0.9)","threat-group":"rgba(254, 112, 88, 0.9)","file-type":"rgba(63, 203, 255, 0.9)",software:"rgba(76, 219, 196, 0.9)"},Z={technique:"rgba(99, 102, 241, 0.4)","threat-group":"rgba(254, 112, 88, 0.4)","file-type":"rgba(63, 203, 255, 0.4)",software:"rgba(76, 219, 196, 0.4)"},mt={APT29:["HTML Smuggling","DLL Side-loading","Containers"],APT28:["Scripting","Brand Impersonation","VBA Macro"],"Lazarus Group":["Scripting","DLL Side-loading","Encryption"],FIN7:["VBA Macro","Scripting","Brand Impersonation"],"Wizard Spider":["Encryption","VBA Macro","Containers"],"HTML Smuggling":["HTML","ISO","JS"],"VBA Macro":["DOCM"],"DLL Side-loading":["LNK","ISO","DLL"],"Brand Impersonation":["HTML","PDF"],Pastejacking:["HTML","JS"],Encryption:["DOCM","PDF"],ClickFix:["HTML"],BYOI:["AU3"],Scripting:["JS","VBS","HTA","SCPT","AU3"],Containers:["ISO","LNK","ZIP","DMG","AU3"],"Agent Tesla":["VBA Macro","Scripting"],AsyncRAT:["Scripting","HTML Smuggling"],DarkGate:["HTML Smuggling","Containers","Scripting","BYOI","AU3"],"Smoke Loader":["VBA Macro","Containers"],"Lumma Stealer":["HTML Smuggling","Brand Impersonation","ClickFix"],MacSync:["Scripting","Containers","ZIP","DMG","SCPT"]};function ut(){const t=[];
24return P.techniques.forEach((s,r)=>{t.push({id:`technique-${r}`,label:s,type:"technique",x:0,y:0,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3})}),P.threatGroups.forEach((s,r)=>{t.push({id:`group-${r}`,label:s,type:"threat-group",x:0,y:0,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3})}),P.fileTypes.forEach((s,r)=>{t.push({id:`file-${r}`,label:s,type:"file-type",x:0,y:0,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3})}),P.software.forEach((s,r)=>{t.push({id:`software-${r}`,label:s,type:"software",x:0,y:0,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3})}),t}function ht(t){const s=[],r={};return t.forEach(i=>{r[i.label]=i.id}),Object.entries(mt).forEach(([i,n])=>{const o=r[i];o&&n.forEach(c=>{const u=r[c];u&&!s.find(h=>h.source===o&&h.target===u)&&s.push({source:o,target:u})})}),s}function xt(t,s,r){const n=s-160,o=r-160;t.forEach(c=>{c.x=80+Math.random()*n,c.y=80+Math.random()*o})}function pt(t,s){const r=new Set;return s.forEach(i=>{i.source===t&&r.add(i.target),i.target===t&&r.add(i.source)}),r}function gt(){const t=d.useRef(null),s=d.useRef(null),r=d.useRef(ut()),i=d.useRef(ht(r.current)),n=d.useRef(),o=d.useRef({x:0,y:0}),c=d.useRef(null),u=d.useRef(!1);return d.useEffect(()=>{const h=t.current,g=s.current;if(!h||!g)return;const l=h.getContext("2d");if(!l)return;const f=()=>{const y=g.getBoundingClientRect(),x=window.devicePixelRatio||1;h.width=y.width*x,h.height=y.height*x,h.style.width=`${y.width}px`,h.style.height=`${y.height}px`,l.scale(x,x),u.current||(xt(r.current,y.width,y.height),u.current=!0)};f(),window.addEventListener("resize",f);const N=()=>{const y=g.getBoundingClientRect();l.clearRect(0,0,y.width,y.height);const x=r.current,k=i.current;x.forEach(a=>{a.x+=a.vx,a.y+=a.vy;const m=60;(a.x<m||a.x>y.width-m)&&(a.vx*=-1,a.x=Math.max(m,Math.min(y.width-m,a.x))),(a.y<m||a.y>y.height-m)&&(a.vy*=-1,a.y=Math.max(m,Math.min(y.height-m,a.y))),a.vx+=(Math.random()-.5)*.02,a.vy+=(Math.random()-.5)*.02,a.vx*=.99,a.vy*=.99;const b=.5;a.vx=Math.max(-b,Math.min(b,a.vx)),a.vy=Math.max(-b,Math.min(b,a.vy))});let j=null;for(const a of x)if(Math.sqrt(Math.pow(o.current.x-a.x,2)+Math.pow(o.current.y-a.y,2))<25){j=a;break}c.current=j?.id||null;const C=j?pt(j.id,k):new Set;k.forEach(a=>{const m=x.find(S=>S.id===a.source),b=x.find(S=>S.id===a.target);if(!m||!b)return;const w=j&&(a.source===j.id||a.target===j.id),p=l.createLinearGradient(m.x,m.y,b.x,b.y);if(w)p.addColorStop(0,T[m.type]),p.addColorStop(1,T[b.type]);else{const S=j?"0.1":"0.3";p.addColorStop(0,T[m.type].replace("0.9",S)),p.addColorStop(1,T[b.type].replace("0.9",S))}l.beginPath(),l.moveTo(m.x,m.y),l.lineTo(b.x,b.y),l.strokeStyle=p,l.lineWidth=w?2:1,l.stroke()}),x.forEach(a=>{const m=a.id===c.current,b=C.has(a.id),w=m||b,p=c.current&&!w,S=w?25:15,D=l.createRadialGradient(a.x,a.y,0,a.x,a.y,S);p?D.addColorStop(0,Z[a.type].replace("0.4","0.1")):D.addColorStop(0,Z[a.type]),D.addColorStop(1,"transparent"),l.beginPath(),l.arc(a.x,a.y,S,0,Math.PI*2),l.fillStyle=D,l.fill();const ne=w?8:6;l.beginPath(),l.arc(a.x,a.y,ne,0,Math.PI*2),p?l.fillStyle=T[a.type].replace("0.9","0.3"):l.fillStyle=T[a.type],l.fill(),l.font=w?"bold 11px Inter, sans-serif":"10px Inter, sans-serif",p?l.fillStyle="rgba(255, 255, 255, 0.3)":w?l.fillStyle="#ffffff":l.fillStyle="rgba(255, 255, 255, 0.7)",l.textAlign="center",l.textBaseline="top",l.fillText(a.label,a.x,a.y+12)}),n.current=requestAnimationFrame(N)};N();const v=y=>{const x=h.getBoundingClientRect();o.current={x:y.clientX-x.left,y:y.clientY-x.top}};return h.addEventListener("mousemove",v),()=>{window.removeEventListener("resize",f),h.removeEventListener("mousemove",v),n.current&&cancelAnimationFrame(n.current)}},[]),e.jsxs("section",{className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/50 to-[#030712]"}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"absolute w-[600px] h-[400px] rounded-full blur-[100px] opacity-30",style:{background:"radial-gradient(ellipse, rgba(99, 102, 241, 0.3) 0%, transparent 70%)",top:"20%",left:"10%"}}),e.jsx("div",{className:"absolute w-[500px] h-[350px] rounded-full blur-[80px] opacity-30",style:{background:"radial-gradient(ellipse, rgba(63, 203, 255, 0.3) 0%, transparent 70%)",bottom:"10%",right:"15%"}})]}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsxs("h2",{className:"text-3xl sm:text-4xl font-bold mb-4 text-white",children:["Real-World ",e.jsx("span",{className:"text-primary",children:"Threat Emulation"})]}),e.jsx("p",{className:"text-gray-400 text-lg max-w-2xl mx-auto",children:"Our payloads mirror the techniques, file types, and delivery methods used by real threat actors and malware strains, giving you the most realistic test of your email and web defences."})]}),e.jsxs("div",{ref:s,className:"relative h-[500px] overflow-hidden",children:[e.jsx("canvas",{ref:t,className:"w-full h-full"}),e.jsxs("div",{className:"absolute bottom-4 left-1/2 -translate-x-1/2 flex flex-wrap justify-center gap-3 text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded bg-black/50 backdrop-blur-sm",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:T.technique}}),e.jsx("span",{className:"text-gray-300",children:"Techniques"})]}),e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded bg-black/50 backdrop-blur-sm",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:T["threat-group"]}}),e.jsx("span",{className:"text-gray-300",children:"Threat Groups"})]}),e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded bg-black/50 backdrop-blur-sm",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:T["file-type"]}}),e.jsx("span",{className:"text-gray-300",children:"File Types"})]}),e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 rounded bg-black/50 backdrop-blur-sm",children:[e.jsx("div",{className:"w-2.5 h-2.5 rounded-full",style:{backgroundColor:T.software}}
24),e.jsx("span",{className:"text-gray-300",children:"Malware"})]})]})]})]})]})}function z(t){return t.replace(/^\s*<!\[CDATA\[(.*)\]\]>\s*$/s,"$1").trim()}function ft(t){const s=new DOMParser,i=s.parseFromString(t,"text/xml").querySelectorAll("item"),n=[];return i.forEach(o=>{const c=o.querySelector("title"),u=c?z(c.textContent||""):"",g=o.querySelector("link")?.textContent?.trim()||"",l=o.querySelectorAll("category"),f=[];l.forEach(j=>{const C=z(j.textContent||"");C&&f.push(C)});const v=o.querySelector("pubDate")?.textContent?.trim()||"",y=o.getElementsByTagName("content:encoded")[0];let x="",k="";if(y){const j=z(y.textContent||""),C=s.parseFromString(j,"text/html"),a=C.querySelector("img");a&&(x=a.getAttribute("src")||"");const m=C.querySelector("p");m&&(k=m.textContent?.trim()||"")}u&&g&&n.push({title:u,link:g,image:x,description:k,tags:f,pubDate:v})}),n}function yt(t){try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}catch{return t}}function bt({post:t}){const s=t.tags.slice(0,3);return e.jsxs("a",{href:t.link,target:"_blank",rel:"noopener noreferrer",className:"group flex flex-col w-full h-full bg-card/30 border border-white/10 rounded-2xl overflow-hidden transition-all duration-300 hover:border-primary/50 hover:bg-card/50 backdrop-blur-sm",children:[t.image&&e.jsxs("div",{className:"aspect-video w-full overflow-hidden bg-[#030712] relative rounded-t-2xl",children:[e.jsx("div",{className:"absolute inset-0 bg-primary/50 transition-all duration-300 group-hover:bg-primary/90"}),e.jsx("img",{src:t.image,alt:t.title,width:400,height:225,loading:"lazy",decoding:"async",className:"w-full h-full object-cover grayscale brightness-100 mix-blend-multiply relative transition-all duration-300 group-hover:scale-105 group-hover:grayscale-[30%
24] group-hover:brightness-100"}),e.jsx("div",{className:"absolute inset-0 bg-primary/40 mix-blend-color opacity-80 transition-opacity duration-300 group-hover:opacity-30"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-[#030712] via-[#030712]/50 to-transparent opacity-80 transition-opacity duration-300 group-hover:opacity-40"})]}),e.jsxs("div",{className:"p-5 flex flex-col flex-1",children:[e.jsx("h3",{className:"font-semibold text-white line-clamp-2 mb-2 group-hover:text-primary transition-colors duration-300",children:t.title}),t.description&&e.jsx("p",{className:"text-sm text-muted-foreground line-clamp-3 mb-4",children:t.description}),e.jsxs("div",{className:"mt-auto",children:[s.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-3",children:[s.map(r=>e.jsx("span",{className:"px-2 py-0.5 text-xs rounded-full bg-primary/10 text-primary/80 border border-primary/20",children:r},r)),t.tags.length>3&&e.jsxs("span",{className:"px-2 py-0.5 text-xs rounded-full bg-muted/50 text-muted-foreground",children:["+",t.tags.length-3]})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:yt(t.pubDate)}),e.jsxs("span",{className:"flex items-center gap-1 text-primary opacity-0 group-hover:opacity-100 transition-opacity duration-300",children:["Read more ",e.jsx(oe,{className:"h-3 w-3"})]})]})]})]})]})}function vt(){const[t,s]=d.useState([]),[r,i]=d.useState(!0),[n,o]=d.useState(!1),c=d.useRef(null);d.useEffect(()=>{async function h(){try{const l=(await B.get("/public/rss",{headers:{Accept:"application/xml"},responseType:"text"})).data,f=ft(l);s(f)}catch(g){console.error("Failed to fetch blog feed:",g),o(!0)}finally{i(!1)}}h()},[]);const u=h=>{if(c.current){const l=c.current.clientWidth*.33,f=c.current.scrollLeft+(h==="left"?-l:l);c.current.scrollTo({left:f,behavior:"smooth"})}};return n?null:e.jsxs("section",{className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/30 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4 text-white",children:"Our Research"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Insights and analysis from the delivr.to team on the latest phishing techniques, payload delivery, and email and web security trends"})]}),r&&e.jsx("div",{className:"flex justify-center py-12",children:e.jsx(Ce,{size:32})}),!r&&t.length>0&&e.jsxs("div",{className:"relative",children:[e.jsx("button",{onClick:()=>u("left"),className:"absolute left-0 top-1/2 -translate-y-1/2 -translate-x-4 z-10 p-2 rounded-full bg-background/80 border border-border/50 text-muted-foreground hover:text-white hover:border-primary/50 transition-colors backdrop-blur-sm hidden md:block","aria-label":"Scroll left",children:e.jsx(Se,{className:"h-5 w-5"})}),e.jsx("button",{onClick:()=>u("right"),className:"absolute right-0 top-1/2 -translate-y-1/2 translate-x-4 z-10 p-2 rounded-full bg-background/80 border border-border/50 text-muted-foreground hover:text-white hover:border-primary/50 transition-colors backdrop-blur-sm hidden md:block","aria-label":"Scroll right",children:e.jsx(Te,{className:"h-5 w-5"})}),e.jsx("div",{ref:c,className:"flex gap-6 overflow-x-auto pb-4 scrollbar-hide snap-x snap-mandatory",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:t.map((h,g)=>e.jsx("div",{className:"snap-start flex-shrink-0",style:{width:"400px"},children:e.jsx(bt,{post:h})},g))}),e.jsx("div",{className:"flex justify-center gap-2 mt-4 md:hidden",children:t.slice(0,Math.min(5,t.length)).map((h,g)=>e.jsx("div",{className:"w-2 h-2 rounded-full bg-primary/30"},g))})]}),!r&&t.length>0&&e.jsx("div",{className:"text-center mt-8",children:e.jsxs("a",{href:"https://blog.delivr.to",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-primary hover:text-primary/80 transition-colors",children:["View all posts",e.jsx(oe,{className:"h-4 w-4"})]})})]})]})}function jt(){const t=[{name:"James Coote",role:"Co-Founder",bio:"James has a decade of experience delivering attack simulation and purple teaming services, and has spoken on the topic at conferences such as Blackhat, Defcon & TROOPERS. He was also a member of the UK Armed Force'
24s Joint Cyber Unit.",image:"/images/james.jpeg",social:{twitter:"https://twitter.com/jkcoote",linkedin:"https://www.linkedin.com/in/james-coote-7a77a657/",github:"https://github.com/JamesCooteUK"}},{name:"Alfie Champion",role:"Co-Founder",bio:"Alfie authored 'Practical Purple Teaming' and specialises in attack detection and adversary emulation. He helps organisations validate their detective capabilities through collaborative offensive engagements, and has delivered talks and training at BlackHat, Defcon and RSA.",image:"/images/alfie.jpeg",social:{twitter:"https://twitter.com/ajpc500",linkedin:"https://www.linkedin.com/in/alfie-champion/",github:"https://github.com/ajpc500"}}];return e.jsxs("section",{id:"about-us",className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-[#030712] via-[#0a1628]/40 to-[#030712]"}),e.jsxs("div",{className:"relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4 text-white",children:"About Us"}),e.jsx("p",{className:"text-gray-400 text-lg max-w-2xl mx-auto",children:"Launched in 2023, we're dedicated to empowering individuals and organisations across the globe with the tools they need to test and enhance their email and web security."})]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-8 max-w-4xl mx-auto",children:t.map(s=>e.jsxs("div",{className:"p-8 rounded-2xl bg-white/5 border border-white/10 backdrop-blur-sm",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("img",{src:s.image,alt:s.name,className:"w-16 h-16 rounded-full object-cover border-2 border-primary/20"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold text-lg text-white",children:s.name}),e.jsx("div",{className:"text-sm text-gray-400",children:s.role})]})]}),e.jsx("p",{className:"text-gray-400 text-sm leading-relaxed mb-6",children:s.bio}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx("a",{href:s.social.twitter,target:"_blank",rel:"noopener noreferrer",className:"p-2 rounded-lg bg-white/5 hover:bg-white/10 transition-colors text-gray-300 hover:text-white",children:e.jsx(Oe,{className:"h-5 w-5"})}),e.jsx("a",{href:s.social.linkedin,target:"_blank",rel:"noopener noreferrer",className:"p-2 rounded-lg bg-white/5 hover:bg-white/10 transition-colors text-gray-300 hover:text-white",children:e.jsx(qe,{className:"h-5 w-5"})}),e.jsx("a",{href:s.social.github,target:"_blank",rel:"noopener noreferrer",className:"p-2 rounded-lg bg-white/5 hover:bg-white/10 transition-colors text-gray-300 hover:text-white",children:e.jsx(De,{className:"h-5 w-5"})})]})]},s.name))})]})]})}const X=[{question:"What is purple teaming for email security?",answer:"Purple teaming combines offensive and defensive security testing. For email, it means sending real threat payloads through your production mail infrastructure to measure what actually reaches users' inboxes. This validates your email security controls against techniques used by real threat actors, rather than relying on theoretical assessments or simulated attacks."},{question:"How does delivr.to differ from phishing simulation tools?",answer:"Traditional phishing simulation tools send safe replicas to test user behaviour. delivr.to sends real payload file types and delivery techniques through your production email gateway to test your technical controls. The platform measures whether payloads are blocked, quarantined, or delivered, giving you ground-truth data on your email defence effectiveness."},{question:"What types of payloads can delivr.to test?",answer:"The platform includes 800+ pre-built payloads across 100+ file types, mapped to MITRE ATT&CK techniques. These cover HTML smuggling, SVG smuggling, WebAssembly smuggling, macro-enabled documents, script files, archive containers, QR code phishing, credential harvesting, and more. All payloads are modelled on real threat actor tradecraft observed in the wild."},{question:"How does delivr.to integrate with my existing security tools?",answer:"delivr.to integrates with Microsoft 365 and Gmail for automatic delivery status tracking, Microsoft Defender 365 for detection correlation, and Sublime Security for detection rule development and testing. A REST API is available for integration with SOAR platforms and custom tooling."},{question:"Is it safe to send real payloads through our email infrastru
24cture?",answer:"Yes. Payloads are designed to test your defences without causing harm. They trigger the same detection mechanisms as real threats but do not execute malicious actions. You control which email addresses receive payloads, and all campaigns are logged with full audit trails. Campaigns can be sent to validated addresses that you own."},{question:"How quickly can I get started with delivr.to?",answer:"You can run your first campaign within minutes of signing up. Connect your mailbox (Microsoft 365 or Gmail), select payloads from the library, choose your target email address, and launch a campaign. Results are tracked automatically, showing which payloads were delivered, blocked, or quarantined."}];function wt(){const[t,s]=d.useState(null);return e.jsxs("section",{className:"py-20 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-background via-card/30 to-background"}),e.jsxs("div",{className:"relative max-w-3xl mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsxs("div",{className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4",children:"Frequently Asked Questions"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Common questions about email security testing with delivr.to"})]}),e.jsx("div",{className:"space-y-3",children:X.map((r,i)=>{const n=t===i,o=`faq-answer-${i}`,c=`faq-question-${i}`;return e.jsxs("div",{className:"rounded-lg border border-border/50 bg-card/50 overflow-hidden",children:[e.jsxs("button",{id:c,onClick:()=>s(n?null:i),className:"w-full flex items-center justify-between p-5 text-left","aria-expanded":n,"aria-controls":o,children:[e.jsx("span",{className:"font-medium pr-4",children:r.question}),e.jsx(Me,{className:`h-5 w-5 shrink-0 text-muted-foreground transition-transform ${n?"rotate-180":""}`})]}),e.jsx("div",{id:o,role:"region","aria-labelledby":c,className:`grid transition-all duration-200 ease-in-out ${n?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"}`,children:e.jsx("div",{className:"overflow-hidden",children:e.jsx("p",{className:"px-5 pb-5 text-sm text-muted-foreground leading-relaxed",children:r.answer})})})]},i)})})]}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:X.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))})}})]})}function zt(){return Ee("Purple Teaming for Email & Web Security"),d.useEffect(()=>{const t=document.documentElement,s=t.classList.contains("dark");return t.classList.add("dark"),()=>{s||t.classList.remove("dark")}},[]),e.jsxs("div",{className:"min-h-screen bg-[#030712]",children:[e.jsx(Re,{}),e.jsx(tt,{}),e.jsx(rt,{}),e.jsx(gt,{}),e.jsx(ot,{}),e.jsx(it,{}),e.jsx(dt,{}),e.jsx(lt,{}),e.jsx(wt,{}),e.jsx(vt,{}),e.jsx(jt,{}),e.jsx($e,{}),e.jsx(Ie,{})]})}export{zt as Home};

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.