PageSourceSearch

https://mithai.ai/assets/roadmap-GbLtGZ5K.js

js mithai.ai collected 2026-10-05 12:18:06 UTC 36,272 bytes, 15 lines download raw bytes

1import{r as b,j as e,N as K,M as F,F as V}from"./index-Dz7N0PDB.js";import{t as N}from"./analytics-CsMZbOZc.js";const O="hsl(var(--background))",c="hsl(var(--primary))",d="hsl(var(--foreground))",v="hsl(var(--muted-foreground))",u="hsl(var(--muted-foreground) / 0.7)",B="hsl(var(--muted-foreground) / 0.45)",a="hsl(var(--border))",W="hsl(var(--card))",f="hsl(var(--muted))",w="hsl(var(--primary) / 0.10)",R="hsl(var(--destructive) / 0.10)",$="hsl(var(--destructive) / 0.30)",T="hsl(var(--destructive))",X="rgba(30,77,58,0.10)",J="rgba(30,77,58,0.30)",q="#4A7C59",Z="https://outlook.office.com/bookwithme/user/[email protected]/meetingtype/_4dv1T4Wek2kxxnEWBbIYA2?anonymous&ismsaljsauthenabled&ep=mLinkFromTile",E=["Strategy","Data","Build","People","Governance"],A={Strategy:{bg:"rgba(30,77,58,0.08)",border:"rgba(30,77,58,0.25)",text:"#1E4D3A"},Data:{bg:"rgba(201,123,47,0.08)",border:"rgba(201,123,47,0.25)",text:"#C97B2F"},Build:{bg:"rgba(74,124,89,0.08)",border:"rgba(74,124,89,0.25)",text:"#4A7C59"},People:{bg:"rgba(160,98,42,0.08)",border:"rgba(160,98,42,0.25)",text:"#A0622A"},Governance:{bg:"rgba(196,154,123,0.08)",border:"rgba(196,154,123,0.30)",text:"#C49A7B"}},I=[{id:"financial_services",label:"Financial Services",helper:"Banks, wealth management, insurance, fintech, asset management"},{id:"healthcare",label:"Healthcare",helper:"Hospitals, health systems, clinics, healthcare technology"},{id:"professional_services",label:"Professional Services",helper:"Consulting, legal, accounting, staffing, advisory firms"},{id:"manufacturing",label:"Manufacturing",helper:"Discrete, process, aerospace, automotive, industrial"},{id:"hospitality",label:"Hospitality",helper:"Hotels, restaurants, travel, event management"},{id:"retail",label:"Retail",helper:"Consumer goods, e-commerce, brick-and-mortar, wholesale"}],H=[{id:"under_50",label:"Under 50 employees",helper:"Founder-led, speed matters, formality harms"},{id:"band_50_250",label:"50–250 employees",helper:"Exec team, real functions, procurement informal",baseline:!0},{id:"band_250_1000",label:"250–1,000 employees",helper:"VPs, procurement gates, change management is a function"},{id:"over_1000",label:"1,000+ employees",helper:"Enterprise scale, committees, multi-entity complexity"}],L=[{id:"A",label:"We've done nothing yet",clarifier:"No AI in production. Maybe personal ChatGPT accounts."},{id:"B",label:"We've experimented with ChatGPT / Copilot",clarifier:"Scattered adoption. No coordinated program."},{id:"C",label:"1–2 pilots, mixed results",clarifier:"Something started. May be stalled or underperforming."},{id:"D",label:"Things in production, want to scale",clarifier:"At least one working AI use case. Want to expand."}],Q=[{id:"CEO",label:"CEO"},{id:"COO",label:"COO"},{id:"CFO",label:"CFO"},{id:"CIO",label:"CIO"}
1],D={financial_services:"E.g., 'our compliance review team spends 4 weeks on each report — we need that to be 4 days'",healthcare:"E.g., 'prior authorization reviews are drowning our staff — we're losing 15 FTE hours a week'",professional_services:"E.g., 'our consultants spend 40% of engagement time on document review instead of client work'",manufacturing:"E.g., 'quality inspection is entirely manual and we're missing defects that cost us on returns'",hospitality:"E.g., 'our customer service team can't handle peak volume — wait times are hurting reviews'",retail:"E.g., 'demand forecasting is done in spreadsheets and we're consistently over or under on inventory'",default:"Describe the specific problem that brought you here — the more specific, the better the roadmap."};function G(i){if(i==="—")return{body:"—",owners:[]};const o=[];return{body:i.replace(/\[([^\]]+)\]/g,(s,l)=>(o.push(l),"")).trim(),owners:o}}function M({role:i}){const o=i.toLowerCase().includes("external");return e.jsx("span",{style:{display:"inline-block",background:o?c:w,border:`1px solid ${o?c:"rgba(30,77,58,0.3)"}`,color:o?"#F7F1E6":"#4A7C59",fontSize:"10px",fontWeight:500,fontFamily:"monospace",padding:"2px 8px",borderRadius:"999px",marginRight:"4px",marginTop:"4px",whiteSpace:"nowrap"},children:i})}function ee({cell:i,lane:o}){const[x,s]=b.useState(!1),l=A[o];if(!i||i.text==="—")return e.jsx("div",{style:{background:l.bg,borderTop:`1px solid ${l.border}`,borderRight:`1px solid ${a}`,padding:"12px",minHeight:"80px",display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx("span",{style:{color:B,fontSize:"13px"},children:"—"})});const{body:h,owners:r}=G(i.text);return e.jsxs("div",{"data-testid":`gantt-cell-w${i.week}-${o.toLowerCase()}`,onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),style:{background:l.bg,borderTop:`1px solid ${l.border}`,borderRight:`1px solid ${a}`,borderLeft:i.rewritten?`3px solid ${c}`:void 0,padding:"10px 10px 10px",minHeight:"80px",position:"relative",transition:"box-shadow 0.15s ease",boxShadow:x?"0 2px 12px rgba(0,0,0,0.4)":void 0,cursor:"default"},children:[i.rewritten&&x&&e.jsx("div",{style:{position:"absolute",top:"-28px",left:"8px",background:f,border:`1px solid ${a}`,color:d,fontSize:"11px",padding:"4px 10px",borderRadius:"4px",whiteSpace:"nowrap",zIndex:10,pointerEvents:"none"},children:"Customised to your pain point"}),e.jsx("p",{style:{fontSize:"12px",lineHeight:"1.5",color:v,margin:0,marginBottom:r.length?"8px":0},children:h}),r.length>0&&e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"0"},children:r.map((g,m)=>e.jsx(M,{role:g},m))})]})}const P=5;function te({cells:i,unlocked:o}){const x=Array.from({length:13},(r,g)=>g+1),s=new Map;for(const r of i)s.set(`${r.week}:${r.lane}`,r);const l=[{weeks:[1,2,3,4],label:"Phase 1 · Foundation"},{weeks:[5,6,7,8],label:"Phase 2 · Pilot Build & Launch"},{weeks:[9,10,11,12,13],label:"Phase 3 · Measure, Decide, Plan Forward"}],h=r=>r<=4?1:r<=8?2:3;return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"hidden md:block",style:{overflowX:"auto",border:`1px solid ${a}`,borderRadius:"6px"},children:e.jsxs("div",{style:{minWidth:"1100px",position:"relative"},children:[e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"120px repeat(13, 1fr)",borderBottom:`2px solid ${a}`},children:[e.jsx("div",{style:{background:W,borderRight:`1px solid ${a}`,padding:"8px 10px"}}),x.map(r=>{const g=h(r),m=l[g-1],y=m.weeks[0]===r;m.weeks[m.weeks.length-1];const t=r===4||r===8;return e.jsxs("div",{style:{background:W,borderRight:t?`2px solid ${c}`:`1px solid ${a}`,borderBottom:`1px solid ${a}`,padding:"6px 4px",textAlign:"center",position:"relative"},children:[y&&e.jsx("span",{style:{fontSize:"10px",fontWeight:600,color:c,whiteSpace:"nowrap",display:"block",marginBottom:"2px"},children:m.label}),e.jsxs("span",{style:{fontSize:"11px",fontWeight:500,color:u},children:["Wk ",r]})]},r)})]}),E.map(r=>{const g=A[r];return e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"120px repeat(13, 1fr)",borderBottom:`1px solid ${a}`},children:[e.jsx("div",{style:{background:g.bg,borderRight:`2px solid ${g.border}`,padding:"12px 10px",display:"flex",alignItems:"flex-start",justifyContent:"center"},children:e.jsx("span",{style:{fontSize:"12px",fontWeight:500,color:g.text,writingMode:"vertical-rl",transform:"rotate(180deg)",letterSpacing:"0.05em",textTransform:"uppercase"},children:r})}),x.map(m=>{const y=s.get(`${m}:${r}`);return e.jsx("div",{style:{borderRight:m===4||m===8?`2px solid ${c}`:`1px solid ${a}`},children:e.jsx(ee,{cell:y,lane:r})},m)})]},r)}),!o&&e.jsx("div",{"aria-hidden":"true",style:{position:"absolute",top:0,left:`calc(120px + ${P-1} * (100% - 120px) / 13)`,right:0,bottom:0,backdropFilter:"blur(5px)",WebkitBackdropFilter:"blur(5px)",background:"hsl(var(--background) / 0.85)",zIndex:2,maskImage:"linear-gradient(to right, transparent 0px, white 32px)",WebkitMaskImage:"linear-gradient(to right, transparent 0px, white 32px)",pointerEvents:"none"}})]})}),e.jsx("div",{className:"md:hidden space-y-4",children:x.map(r=>{const g=h(r),m=l[g-1],y=m.weeks[0]===r,t=!o&&r>=P;return e.jsxs("div",{style:{border:`1px solid ${a}`,borderRadius:"6px",overflow:"hidden",filter:t?"blur(5px)":"none",opacity:t?.5:1,pointerEvents:t?"none":"auto",userSelect:t?"none":"auto",transition:"filter 0.3s ease, opacity 0.3s ease"},children:[y&&e.jsx("div",{style:{background:w,borderBottom:`1px solid ${a}`,padding:"8px 14px"},children:e.jsx("span",{style:{fontSize:"11px",fontWeight:600,color:c},children:m.label})}),e.jsx("div",{style:{background:f,padding:"8px 14px",borderBottom:`1px solid ${a}`},children:e.jsxs("span",{style:{fontSize:"13px",fontWeight:500,color:d},children:["Week ",r]})}),E.map(S=>{const n=s.get(`${r}:${S}`),p=A[S];if(!n||n.text==="—")return null;const{body:j,owners:z}=G(n.text);return e.jsxs("div",{style:{background:p.bg,borderTop:`1px solid ${p.border}`,padding:"12px 14px",borderLeft:n.rewritten?`3px solid ${c}`:void 0},children:[e.jsx("div",{style:{fontSize:"11px",fontWeight:500,color:p.text,textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:"6px"},children:S}),e.jsx("p",{style:{fontSize:"13px",lineHeight:"1.5",color:v,margin:0,marginBottom:z.length?"8px":0},children:j}),z.length>0&&e.jsx("div",{style:{display:"flex",flexWrap:"wrap"},children:z.map((k,C)=>e.jsx(M,{role:k},C))})]},S)})]},r)})})]})}
1function oe({phaseExits:i}){const[o,x]=b.useState(!1);return e.jsxs("div",{style:{border:`1px solid ${a}`,borderRadius:"6px",overflow:"hidden"},children:[e.jsxs("button",{"data-testid":"button-phase-exit-toggle",onClick:()=>x(!o),style:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"14px 18px",background:W,border:"none",cursor:"pointer",textAlign:"left"},children:[e.jsx("span",{style:{fontSize:"14px",fontWeight:600,color:d},children:"Phase exit criteria"}),e.jsx("span",{style:{fontSize:"18px",color:u,lineHeight:1},children:o?"−":"+"})]}),o&&e.jsx("div",{style:{padding:"18px",background:f,borderTop:`1px solid ${a}`},children:i.map((s,l)=>e.jsxs("div",{style:{marginBottom:l<i.length-1?"24px":0},children:[e.jsxs("div",{style:{fontSize:"13px",fontWeight:500,color:c,marginBottom:"8px"},children:[s.phaseLabel," · ",s.phaseTitle]}),e.jsx("ul",{style:{margin:0,padding:"0 0 0 18px"},children:s.criteria.map((h,r)=>e.jsx("li",{style:{fontSize:"14px",color:v,lineHeight:"1.6",marginBottom:"4px"},children:h},r))})]},l))})]})}function ie({roadmapContext:i,onUnlock:o,onDismiss:x}){const[s,l]=b.useState({name:"",email:"",company:"",title:""}),[h,r]=b.useState(!1),[g,m]=b.useState(!1),[y,t]=b.useState("");async function S(n){if(n.preventDefault(),t(""),!s.name||!s.email||!s.company||!s.title){t("All fields are required");return}if(!h){t("Please confirm you agree to our privacy policy");return}m(!0);try{const p=await fetch("/api/roadmap/capture-lead",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,roadmapContext:i,privacyConsent:h})});if(!p.ok){const j=await p.json();throw new Error(j.error||"Failed")}N("roadmap_lead_captured",{surface:"roadmap",industry:i.industry,company_size:i.size,maturity:i.maturity}),o()}catch(p){t(p.message)}finally{m(!1)}}return e.jsx("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"flex-start",justifyContent:"center",paddingTop:"60px",zIndex:20},children:e.jsxs("div",{style:{background:W,border:`1px solid ${a}`,borderRadius:"8px",padding:"36px 32px",maxWidth:"480px",width:"90%",boxShadow:"0 8px 60px rgba(0,0,0,0.6)",position:"relative"},"data-testid":"email-unlock-modal",children:[e.jsx("h3",{style:{fontSize:"22px",fontWeight:500,color:d,marginBottom:"12px",lineHeight:1.3},children:"Read the rest of your roadmap"}),e.jsx("p",{style:{fontSize:"15px",color:v,marginBottom:"24px",lineHeight:"1.6"},children:"Enter your information to unlock Weeks 5–13, the failure callouts, and what comes after Day 90."}),e.jsx("p",{style:{fontSize:"12px",color:u,marginBottom:"18px",lineHeight:"1.5"},children:"Please share only the business context needed for this roadmap — avoid confidential, regulated, or sensitive personal information."}),e.jsxs("form",{onSubmit:S,children:[e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px",marginBottom:"20px"},children:[e.jsx("input",{"data-testid":"input-unlock-name",type:"text",placeholder:"Full name",value:s.name,onChange:n=>l(p=>({...p,name:n.target.value})),style:{width:"100%",padding:"10px 14px",border:`1px solid ${a}`,borderRadius:"4px",fontSize:"15px",color:d,background:f,outline:"none",boxSizing:"border-box"}}),e.jsx("input",{"data-testid":"input-unlock-email",type:"email",placeholder:"Work email",value:s.email,onChange:n=>l(p=>({...p,email:n.target.value})),style:{width:"100%",padding:"10px 14px",border:`1px solid ${a}`,borderRadius:"4px",fontSize:"15px",color:d,background:f,outline:"none",boxSizing:"border-box"}}),e.jsx("input",{"data-testid":"input-unlock-company",type:"text",placeholder:"Company",value:s.company,onChange:n=>l(p=>({...p,company:n.target.value})),style:{width:"100%",padding:"10px 14px",border:`1px solid ${a}`,borderRadius:"4px",fontSize:"15px",color:d,background:f,outline:"none",boxSizing:"border-box"}}),e.jsx("input",{"data-testid":"input-unlock-title",type:"text",placeholder:"Title",value:s.title,onChange:n=>l(p=>({...p,title:n.target.value})),style:{width:"100%",padding:"10px 14px",border:`1px solid ${a}`,borderRadius:"4px",fontSize:"15px",color:d,background:f,outline:"none",boxSizing:"border-box"}})]}),e.jsxs("label",{"data-testid":"checkbox-unlock-consent",style:{display:"flex",alignItems:"flex-start",ga
1p:"10px",cursor:"pointer",marginBottom:"16px"},children:[e.jsx("input",{type:"checkbox",checked:h,onChange:n=>r(n.target.checked),style:{marginTop:"3px",cursor:"pointer",accentColor:"#1E4D3A"}}),e.jsxs("span",{style:{fontSize:"13px",color:v,lineHeight:1.5},children:["I agree to mithAI storing and processing my information as described in the"," ",e.jsx("a",{href:"/privacy",target:"_blank",rel:"noopener noreferrer",style:{color:c,textDecoration:"underline"},children:"privacy policy"}),"."]})]}),y&&e.jsx("p",{style:{fontSize:"13px",color:T,marginBottom:"12px"},children:y}),e.jsx("button",{"data-testid":"button-unlock-roadmap",type:"submit",disabled:g||!h,style:{width:"100%",padding:"13px",background:g||!h?B:c,color:"#fff",border:"none",borderRadius:"4px",fontSize:"15px",fontWeight:600,cursor:g||!h?"not-allowed":"pointer",marginBottom:"12px"},children:g?"Unlocking…":"Unlock full roadmap →"})]}),e.jsx("button",{"data-testid":"button-dismiss-unlock",onClick:x,style:{background:"none",border:"none",color:u,fontSize:"13px",cursor:"pointer",width:"100%",textAlign:"center"},children:"No thanks, give me just the preview"})]})})}const U=["Matched your profile to base skeleton","Loaded industry overlay and size modifier","Customising cells to your pain point…","Selecting failure patterns most relevant to you…","Assembling your 90-day plan"];function re({currentStep:i}){return e.jsxs("div",{style:{maxWidth:"480px",margin:"80px auto",padding:"0 24px",textAlign:"center"},"data-testid":"loading-state",children:[e.jsx("h2",{style:{fontSize:"22px",fontWeight:500,color:d,marginBottom:"8px"},children:"Building your roadmap"}),e.jsx("p",{style:{fontSize:"15px",color:u,marginBottom:"48px"},children:"Takes about 25 seconds."}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"16px",textAlign:"left"},children:U.map((o,x)=>{const s=x<i,l=x===i;return e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"14px"},children:[e.jsx("div",{style:{width:"24px",height:"24px",borderRadius:"50%",flexShrink:0,display:"flex",alignItems:"center",justifyContent:"center",background:s?X:l?w:f,border:`2px solid ${s?J:l?"rgba(30,77,58,0.6)":a}`,animation:l?"pulse 1.5s infinite":void 0},children:s?e.jsx("span",{style:{fontSize:"12px",color:q,fontWeight:500},children:"✓"}):l?e.jsx("span",{style:{fontSize:"10px",color:c},children:"◐"}):e.jsx("span",{style:{fontSize:"10px",color:B},children:"○"})}),e.jsx("span",{style:{fontSize:"14px",color:s?u:l?d:B,fontWeight:l?600:400},children:o})]},x)})}),e.jsx("style",{children:`
2        @keyframes pulse {
3          0%, 100% { opacity: 1; }
4          50% { opacity: 0.5; }
5        }
6      `})]})}const ne={Strategy:{bar:"#1E4D3A",bg:"rgba(30,77,58,0.12)"},Data:{bar:"#C97B2F",bg:"rgba(201,123,47,0.12)"},Build:{bar:"#4A7C59",bg:"rgba(74,124,89,0.12)"},People:{bar:"#A0622A",bg:"rgba(160,98,42,0.12)"},Governance:{bar:"#C49A7B",bg:"rgba(196,154,123,0.12)"}},_=[[95,70],[60,80],[85,55],[75,90],[65,75],[90,60],[80,70],[55,85],[70,65],[85,80],[60,75],[90,55],[75,80],[65,90],[80,70],[55,75],[85,60],[70,85],[90,65],[60,80],[75,55],[85,70],[65,90],[80,60],[70,75],[90,80],[55,65],[75,85],[80,70],[65,90]];function ae(){const i=E,o=[1,2,3,4,5,6];return e.jsxs("div",{style:{position:"relative",border:`1px solid ${a}`,borderRadius:"8px",overflow:"hidden",background:W},children:[e.jsx("div",{style:{overflowX:"hidden",WebkitMaskImage:"linear-gradient(to right, black 28%, transparent 72%)",maskImage:"linear-gradient(to right, black 28%, transparent 72%)"},children:e.jsxs("div",{style:{minWidth:"600px"},children:[e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"80px repeat(6, 1fr)",borderBottom:`1px solid ${a}`,background:W},children:[e.jsx("div",{style:{padding:"8px 10px"}}),o.map(x=>e.jsxs("div",{style:{padding:"8px 4px",textAlign:"center",borderRight:`1px solid ${a}`,fontSize:"11px",fontWeight:600,color:u},children:["Wk ",x]},x))]}),i.map((x,s)=>{const l=ne[x];return e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"80px repeat(6, 1fr)",borderBottom:`1px solid ${a}`},children:[e.jsx("div",{style:{background:l.bg,borderRight:`2px solid ${l.bar}`,padding:"10px 12px",display:"flex",alignItems:"center"},children:e.jsx("span",{style:{fontSize:"11px",fontWeight:500,color:l.bar,letterSpacing:"0.03em"},children:x})}),o.map((h,r)=>{const g=(s*6+r)%_.length,[m,y]=_[g];return e.jsxs("div",{style:{background:l.bg,borderRight:`1px solid ${a}`,padding:"10px 8px",minHeight:"68px"},children:[e.jsx("div",{style:{height:"8px",background:l.bar,borderRadius:"4px",marginBottom:"7px",
6width:`${m}%`}}),e.jsx("div",{style:{height:"8px",background:l.bar,borderRadius:"4px",width:`${y}%`,opacity:.45}})]},h)})]},x)})]})}),e.jsx("div",{style:{position:"absolute",top:0,right:0,bottom:0,width:"48%",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},children:e.jsxs("div",{style:{textAlign:"center",padding:"0 32px"},children:[e.jsx("p",{style:{fontSize:"14px",fontWeight:600,color:d,lineHeight:"1.6",margin:0},children:"Your roadmap, calibrated to your industry, size, and maturity."}),e.jsx("p",{style:{fontSize:"12px",color:v,marginTop:"6px",marginBottom:0},children:"Fill in the form below to generate yours."})]})})]})}function se({onSubmit:i}){const[o,x]=b.useState(()=>{try{const t=sessionStorage.getItem("roadmap-form");return t?JSON.parse(t):{industry:"",size:"",maturity:"",painPoint:"",audience:"CEO"}}catch{return{industry:"",size:"",maturity:"",painPoint:"",audience:"CEO"}}}),[s,l]=b.useState(!1),h=o.painPoint.length,r=o.industry&&o.size&&o.maturity&&o.painPoint.trim().length>10;b.useEffect(()=>{sessionStorage.setItem("roadmap-form",JSON.stringify(o))},[o]);const g=D[o.industry]||D.default;function m(t){t.preventDefault(),r&&i(o)}const y=(t,S)=>x(n=>({...n,[t]:S}));return e.jsx("form",{onSubmit:m,"data-testid":"roadmap-form",children:e.jsxs("div",{style:{maxWidth:"720px",margin:"0 auto"},children:[e.jsxs("div",{style:{marginBottom:"48px"},children:[e.jsx("h3",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"6px"},children:"What industry is your company in?"}),e.jsx("p",{style:{fontSize:"14px",color:u,marginBottom:"20px"},children:"Section 1 of 4"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"12px"},children:I.map(t=>e.jsxs("button",{type:"button","data-testid":`card-industry-${t.id}`,onClick:()=>y("industry",t.id),style:{padding:"16px 18px",border:`2px solid ${o.industry===t.id?c:a}`,borderRadius:"6px",background:o.industry===t.id?w:f,cursor:"pointer",textAlign:"left",transition:"border-color 0.15s, background 0.15s"},children:[e.jsx("div",{style:{fontSize:"15px",fontWeight:600,color:o.industry===t.id?c:d,marginBottom:"4px"},children:t.label}),e.jsx("div",{style:{fontSize:"12px",color:u,lineHeight:"1.4"},children:t.helper})]},t.id))})]}),e.jsxs("div",{style:{marginBottom:"48px"},children:[e.jsx("h3",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"6px"},children:"How large is your company?"}),e.jsx("p",{style:{fontSize:"14px",color:u,marginBottom:"20px"},children:"Section 2 of 4"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:H.map(t=>e.jsxs("button",{type:"button","data-testid":`card-size-${t.id}`,onClick:()=>y("size",t.id),style:{padding:"16px 18px",border:`2px solid ${o.size===t.id?c:a}`,borderRadius:"6px",background:o.size===t.id?w:f,cursor:"pointer",textAlign:"left",display:"flex",justifyContent:"space-between",alignItems:"center",transition:"border-color 0.15s"},children:[e.jsxs("div",{children:[e.jsx("span",{style:{fontSize:"15px",fontWeight:600,color:o.size===t.id?c:d},children:t.label}),t.baseline&&e.jsx("span",{style:{fontSize:"11px",color:u,marginLeft:"8px",fontStyle:"italic"},children:"(baseline)"}),e.jsx("p",{style:{fontSize:"12px",color:u,margin:"2px 0 0"},children:t.helper})]}),e.jsx("div",{style:{width:"18px",height:"18px",borderRadius:"50%",border:`2px solid ${o.size===t.id?c:a}`,background:o.size===t.id?c:f,flexShrink:0}})]},t.id))})]}),e.jsxs("div",{style:{marginBottom:"48px"},children:[e.jsx("h3",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"6px"},children:"Where is your company on AI today?"}),e.jsx("p",{style:{fontSize:"14px",color:u,marginBottom:"20px"},children:"Section 3 of 4"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:L.map(t=>e.jsxs("button",{type:"button","data-testid":`card-maturity-${t.id}`,onClick:()=>y("maturity",t.id),style:{padding:"16px 18px",border:`2px solid ${o.maturity===t.id?c:a}`,borderRadius:"6px",background:o.maturity===t.id?w:f,cursor:"pointer",textAlign:"left",transition:"border-color 0.15s"},children:[e.jsx("div",{style:{fontSize:"15px",fontWeight:600,color:o.maturity===t.id?c:d,marginBottom:"4px"},children:t.label}),e.jsx("div",{style:{fontSize:"12px",color:u},children:t.clarifier})]},t.id))})]}),e.jsxs("div",{style:{marginBottom:"48px"},children:[e.jsx("h3",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"6px"},children:"What's the specific problem that brought you to this roadmap?"}),e.jsx("p",{style:{fontSize:"14px",color:u,marginBottom:"20px"},children:"Section 4 of 4 — The more specific, the more calibrated the roadmap."}),e.jsxs("div",{style:{position:"relative"},children:[e.jsx("textarea",{"data-testid":"textarea-pain-point",value:o.painPoint,onChange:t=>y("painPoint",t.target.value.slice(0,300)),placeholder:g,rows:5,style:{width:"100%",padding:"14px",border:`1px solid ${a}`,borderRadius:"6px",fontSize:"15px",color:d,background:f,lineHeight:"1.6",resize:"vertical",outline:"none",boxSizing:"border-box"}}),e.jsxs("div",{style:{position:"absolute",bottom:"10px",right:"14px",fontSize:"12px",color:h>=280?T:B},children:[h,"/300"]})]})]}),e.jsxs("div",{style:{marginBottom:"48px"},children:[e.jsx("button",{type:"button","data-testid":"button-advanced-toggle",onClick:()=>l(!s),style:{background:"none",border:"none",color:c,fontSize:"14px",cursor:"pointer",padding:0,textDecoration:"underline"},children:s?"Hide":"Customise for a specific exec audience (optional)"}),s&&e.jsxs("div",{style:{marginTop:"16px"},children:[e.jsx("p",{style:{fontSize:"13px",color:u,marginBottom:"12px"},children:"Which exec is this roadmap primarily for? Adjusts framing language."}),e.jsx("div",{style:{display:"flex",gap:"10px",flexWrap:"wrap"},children:Q.map(t=>e.jsx("button",{type:"button","data-testid":`card-audience-${t.id}`,onClick:()=>y("audience",t.id),style:{padding:"8px 20px",border:`2px solid ${o.audience===t.id?c:a}`,borderRadius:"4px",background:o.audience===t.id?w:f,fontSize:"14px",fontWeight:600,color:o.audience===t.id?c:v,cursor:"pointer"},children:t.label},t.id))})]})]}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:"8px"},children:[e.jsx("button",{type:"submit","data-testid":"button-generate-roadmap",disabled:!r,style:{padding:"14px 32px",background:r?c:B,color:r?"#F7F1E6":W,border:"none",borderRadius:"4px",fontSize:"16px",fontWeight:600,cursor:r?"pointer":"not-allowed",transition:"background 0.15s"},children:"Generate my roadmap →"}),e.jsx("span",{style:{fontSize:"13px",color:u},children:"Takes about 25 seconds."})]})]})})}function le({result:i,formData:o}){const[x,s]=b.useState(!1),[l,h]=b.useState(!1),r=!x&&!l,g=I.find(n=>
6n.id===i.context.industry)?.label||i.context.industryName,m=H.find(n=>n.id===i.context.size)?.label||i.context.sizeName,y=L.find(n=>n.id===i.context.maturity)?.label||i.context.maturityLabel,t=o.painPoint.length>60?o.painPoint.slice(0,57)+"…":o.painPoint,S=[{label:"Industry",value:g},{label:"Size",value:m},{label:"Maturity",value:y.split("—")[0].trim()},{label:"Skeleton",value:`${i.skeleton.id} · "${i.skeleton.name}"`},{label:"Pain point",value:t}];return e.jsxs("div",{"data-testid":"roadmap-output",style:{color:d,background:O},children:[i.usedFallback&&e.jsx("div",{style:{background:R,border:`1px solid ${$}`,borderRadius:"6px",padding:"12px 18px",marginBottom:"24px",fontSize:"14px",color:T},children:"Customised content temporarily unavailable — showing baseline roadmap."}),e.jsx("div",{"data-testid":"profile-summary",style:{display:"flex",flexWrap:"wrap",gap:"8px",marginBottom:"32px"},children:S.map((n,p)=>e.jsxs("div",{style:{background:f,border:`1px solid ${a}`,borderRadius:"20px",padding:"6px 14px",fontSize:"13px",color:v},children:[e.jsxs("span",{style:{fontWeight:600,color:u,marginRight:"6px"},children:[n.label,":"]}),n.value]},p))}),e.jsxs("div",{"data-testid":"bet-card",style:{background:w,border:"1px solid rgba(30,77,58,0.25)",borderLeft:`4px solid ${c}`,borderRadius:"6px",padding:"24px 28px",marginBottom:"32px"},children:[e.jsx("div",{style:{fontSize:"12px",fontWeight:500,color:c,textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:"12px"},children:"The 90-day bet"}),e.jsx("p",{style:{fontSize:"22px",fontStyle:"italic",fontWeight:500,color:d,lineHeight:"1.4",margin:0},children:i.skeleton.bet})]}),i.llm.kpis.length>0&&e.jsxs("div",{style:{marginBottom:"40px"},children:[e.jsx("h2",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"16px"},children:"Three KPIs this roadmap commits to moving"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(200px, 1fr))",gap:"16px"},children:i.llm.kpis.map((n,p)=>e.jsxs("div",{"data-testid":`kpi-card-${p}`,style:{background:f,border:`1px solid ${a}`,borderRadius:"6px",padding:"20px"},children:[e.jsx("div",{style:{fontSize:"16px",fontWeight:500,color:d,marginBottom:"8px"},children:n.name}),e.jsx("div",{style:{fontSize:"13px",color:u,marginBottom:"8px"},children:n.measures}),e.jsx("div",{style:{fontSize:"13px",fontStyle:"italic",color:c},children:n.target_framing})]},p))})]}),e.jsxs("div",{style:{position:"relative"},children:[e.jsx("h2",{style:{fontSize:"20px",fontWeight:500,color:d,marginBottom:"20px"},children:"Your 13-week roadmap"}),e.jsx("div",{style:{marginBottom:"32px"},children:e.jsx(te,{cells:i.cells,unlocked:x})}),e.jsxs("div",{style:{filter:r?"blur(8px)":"none",pointerEvents:r?"none":"auto",userSelect:r?"none":"auto",transition:"filter 0.4s ease"},children:[e.jsx("div",{style:{marginBottom:"40px"},children:e.jsx(oe,{phaseExits:i.skeleton.phaseExits})}),i.skeleton.bets&&i.skeleton.bets.length>=2&&e.jsxs("div",{style:{marginBottom:"40px"},children:[e.jsx("h2",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"16px"},children:"Two load-bearing bets this roadmap makes"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))",gap:"16px"},children:i.skeleton.bets.slice(0,2).map((n,p)=>e.jsxs("div",{"data-testid":`bets-card-${p}`,style:{background:f,border:`1px solid ${a}`,borderRadius:"6px",padding:"22px"},children:[e.jsxs("div",{style:{fontSize:"13px",fontWeight:500,color:c,marginBottom:"10px",textTransform:"uppercase",letterSpacing:"0.05em"},children:["Bet ",p+1]}),e.jsx("p",{style:{fontSize:"14px",color:v,lineHeight:"1.6",margin:0},children:n})]},p))})]}),e.jsxs("div",{style:{marginBottom:"40px"},children:[e.jsx("h2",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"16px"},children:"Two places this usually fails"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(280px, 1fr))",gap:"16px"},children:i.llm.failureCallouts.slice(0,2).map((n,p)=>e.jsxs("div",{"data-testid":`failure-callout-${p}`,style:{background:R,border:`1px solid ${$}`,borderRadius:"6px",padding:"22px"},children:[e.jsx("div",{style:{fontSize:"15px",fontWeight:500,color:T,marginBottom:"10px"},children:n.title}),e.jsx("p",{style:{fontSize:"14px",color:v,lineHeight:"1.6",margin:0},children:n.body})]},p))})]}),e.jsxs("div",{style:{marginBottom:"40px"},children:[e.jsx("h2",{style:{fontSize:"18px",fontWeight:500,color:d,marginBottom:"16
6px"},children:"What comes after Week 13"}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"20px"},children:i.llm.nextPaths.slice(0,3).map((n,p)=>e.jsxs("div",{"data-testid":`next-path-${p}`,children:[e.jsx("div",{style:{fontSize:"14px",fontWeight:600,color:c,marginBottom:"10px"},children:n.header}),e.jsx("p",{style:{fontSize:"14px",color:v,lineHeight:"1.65",margin:0},children:n.body})]},p))})]}),e.jsxs("div",{"data-testid":"cta-block",style:{background:w,border:`1px solid ${w}`,borderRadius:"8px",padding:"36px 32px",marginBottom:"40px"},children:[e.jsx("h2",{style:{fontSize:"22px",fontWeight:500,color:d,marginBottom:"8px"},children:"Ready to build this?"}),e.jsx("p",{style:{fontSize:"15px",color:v,marginBottom:"24px"},children:"Two ways forward:"}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:"12px"},children:[e.jsx("a",{"data-testid":"link-strategy-call",href:Z,target:"_blank",rel:"noopener noreferrer",style:{padding:"13px 24px",background:c,color:"#F7F1E6",textDecoration:"none",borderRadius:"4px",fontSize:"15px",fontWeight:600},children:"Schedule a Strategy Call"}),e.jsx("a",{"data-testid":"link-send-framework",href:"mailto:[email protected]?subject=Send me the AI roadmap framework",style:{padding:"13px 24px",background:f,color:d,textDecoration:"none",borderRadius:"4px",fontSize:"15px",fontWeight:600,border:`1px solid ${a}`},children:"Send me the framework"})]})]})]}),r&&e.jsx(ie,{roadmapContext:i.context,onUnlock:()=>s(!0),onDismiss:()=>h(!0)})]}),e.jsxs("div",{style:{borderTop:`1px solid ${a}`,paddingTop:"20px",marginTop:"20px",fontSize:"12px",color:B},children:["This roadmap was generated on ",new Date().toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})," by ",e.jsx(F,{}),"."]})]})}function ce(){const[i,o]=b.useState("landing"),[x,s]=b.useState(0),[l,h]=b.useState(null),[r,g]=b.useState(null),[m,y]=b.useState(""),t=b.useRef(null);function S(){o("form"),setTimeout(()=>{t.current?.scrollIntoView({behavior:"smooth",block:"start"})},50)}const n=b.useCallback(j=>{s(j)},[]);async function p(j){h(j),o("loading"),s(0),y(""),[600,1200,4e3,8e3].forEach((k,C)=>{setTimeout(()=>n(C+1),k)});try{const k=await fetch("/api/roadmap/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)});if(!k.ok){const Y=await k.json();throw new Error(Y.error||"Failed to generate roadmap")}const C=await k.json();N("roadmap_generated",{surface:"roadmap",industry:j.industry,company_size:j.size,maturity:j.maturity,audience:j.audience}),s(U.length),setTimeout(()=>{g(C),o("roadmap"),window.scrollTo({top:0,behavior:"smooth"})},600)}catch(k){y(k.message),o("form")}}return e.jsxs("div",{style:{background:O,color:d,minHeight:"100vh"},"data-testid":"roadmap-page",children:[e.jsx("style",{children:`
7        [data-testid="roadmap-page"] h1,
8        [data-testid="roadmap-page"] h2,
9        [data-testid="roadmap-page"] h3 {
10          font-family: var(--font-display) !important;
11          color: hsl(var(--primary)) !important;
12          font-weight: 500 !important;
13          letter-spacing: -0.01em !important;
14        }
15      `}),e.jsx(K,{}),e.jsxs("main",{id:"main-content",style:{paddingTop:"80px"},children:[(i==="landing"||i==="form")&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{style:{maxWidth:"800px",margin:"0 auto",padding:"80px 24px 60px",textAlign:"center"},children:[e.jsx("h1",{style:{fontSize:"clamp(40px, 7vw, 64px)",fontWeight:800,letterSpacing:"-0.03em",lineHeight:1.2,color:d,marginBottom:"24px"},"data-testid":"hero-headline",children:"The 90-Day AI Roadmap Generator"}),e.jsx("p",{style:{fontSize:"clamp(16px, 2.5vw, 20px)",color:v,lineHeight:"1.65",marginBottom:"16px",maxWidth:"640px",marginLeft:"auto",marginRight:"auto"},children:"Built from real AI engagements. Not generic templates. Tell us about your company, your maturity, and the problem that brought you here — and see a roadmap calibrated to what usually works and what usually breaks."}),e.jsxs("p",{style:{fontSize:"14px",color:u,marginBottom:"40px"},children:["Built on ",e.jsx(F,{}),"'s 90-Day Roadmap framework."]}),e.jsx("button",{"data-testid":"button-start-roadmap",onClick:S,style:{padding:"16px 36px",background:c,color:"#F7F1E6",border:"none",borderRadius:"4px",fontSize:"17px",fontWeight:600,cursor:"pointer",letterSpacing:"-0.01em"},children:"Start your roadmap →"})]}),e.jsx("section",{style:{maxWidth:"960px",margin:"0 auto",padding:"60px 24px",borderTop:`1px solid ${a}`},"data-testid":"how-different-section",children:e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:"0"},children:[{title:"Opinionated, not generic.",body:"Every cell of every roadmap reflects a specific decision about what usually works. No 'it depends' hedging."},{title:"Written by operators, not theorists.",body:"The failure modes are named because someone watched them happen. The timing adjusts to your company size because procurement cycles are real."},{title:"Honest about what breaks.",body:"Most AI roadmaps sell optimism. This one tells you where the pilot dies at Week 7, so you can prevent it."}].map((j,z,k)=>e.jsxs("div",{style:{padding:"32px 32px",borderRight:z<k.length-1?`1px solid ${a}`:void 0},children:[e.jsx("h3",{style:{fontSize:"16px",fontWeight:500,color:d,marginBottom:"12px"},children:j.title}),e.jsx("p",{style:{fontSize:"15px",color:v,lineHeight:"1.65",margin:0},children:j.body})]},z))})}),e.jsx("section",{style:{maxWidth:"960px",margin:"0 auto",padding:"0 24px 60px"},children:e.jsx(ae,{})}),e.jsxs("section",{ref:t,id:"roadmap-form",style:{maxWidth:"960px",margin:"0 auto",padding:"60px 24px 80px",borderTop:`1px solid ${a}`},children:[e.jsx("h2",{style:{fontSize:"28px",fontWeight:500,color:d,marginBottom:"8px"},children:"Build your roadmap"}),e.jsx("p",{style:{fontSize:"15px",color:u,marginBottom:"48px"},children:"Four sections. No wizard. Fill them all, then generate."}),m&&e.jsx("div",{style:{background:R,border:`1px solid ${$}`,color:T,padding:"12px 16px",borderRadius:"6px",fontSize:"14px",marginBottom:"24px"},children:m}),e.jsx(se,{onSubmit:p})]})]}),i==="loading"&&e.jsx(re,{currentStep:x}),i==="roadmap"&&r&&l&&e.jsxs("section",{style:{maxWidth:"1200px",margin:"0 auto",padding:"40px 24px 80px"},children:[e.jsxs("div",{style:{marginBottom:"32px"},children:[e.jsx("button",{"data-testid":"button-back-to-form",onClick:()=>{o("form"),g(null)},style:{background:"none",border:"none",color:c,fontSize:"14px",cursor:"pointer",padding:0,marginBottom:"16
15px",display:"flex",alignItems:"center",gap:"6px"},children:"← Generate a new roadmap"}),e.jsx("h2",{style:{fontSize:"28px",fontWeight:500,color:d,marginBottom:"4px"},children:"Your 90-Day AI Roadmap"}),e.jsxs("p",{style:{fontSize:"15px",color:u},children:["Based on ",r.skeleton.name," skeleton · ",I.find(j=>j.id===r.context.industry)?.label]})]}),e.jsx(le,{result:r,formData:l})]})]}),(i==="landing"||i==="form")&&e.jsx(V,{})]})}export{ce 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.