1import{j as e}from"./vendor-query-CTPr7COe.js";import{C as o}from"./card-DJ7x89Hu.js";import{B as g}from"./badge-txOk_X55.js";import{P as f}from"./progress-B5YODZs2.js";import{R as n,A as j,X as i,Y as l,T as d,a as b,k as N,l as v}from"./lazy-recharts-Bk9_Zup5.js";import{T as M,D as y,d as w,a2 as R,bn as A,t as S,Z as $,G as k,n as C}from"./vendor-icons-3o8Kmjow.js";import{m as G}from"./proxy-EGdRh4XT.js";import"./vendor-react-CWBOl209.js";import"./index-BwVwZTqu.js";import"./vendor-router-Tzw_FyRy.js";import"./vendor-helmet-CH9LKosZ.js";import"./index-C8087njY.js";import"./index-BOBH645Q.js";function X({startup:c,enrichmentData:L}){const r=(c.name||"").split("").reduce((t,a)=>t+a.charCodeAt(0),0),s={mrr:Math.round((r%500+50)*1e3),customers:Math.round(r%500+100),dau:Math.round(5e3+r%1e4),mau:Math.round(25e3+r%5e4),churn:(2+r%5).toFixed(1),nrr:Math.round(105+r%30),arpu:Math.round(500+r%500),growthRate:Math.round(15+r%35)},m=Array.from({length:12},(t,a)=>({month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][a],mrr:Math.round(s.mrr*Math.pow(.97,11-a)),customers:Math.round(s.customers*Math.pow(.95,11-a)),dau:Math.round(s.dau*Math.pow(.94,11-a))})),h=[{cohort:"Month 0",retention:100},{cohort:"Month 1",retention:92},{cohort:"Month 2",retention:85},{cohort:"Month 3",retention:80},{cohort:"Month 4",retention:76},{cohort:"Month 5",retention:73},{cohort:"Month 6",retention:71},{cohort:"Month 7",retention:69},{cohort:"Month 8",retention:68},{cohort:"Month 9",retention:67},{cohort:"Month 10",retention:66},{cohort:"Month 11",retention:65},{cohort:"Month 12",retention:64}],x=[{metric:"Sessions/User",value:(3.5+r%3).toFixed(1),trend:"+12%"},{metric:"Avg Session Duration",value:`${8+r%5}min`,trend:"+8%"},{metric:"Feature Adoption",value:`${65+r%20}%`,trend:"+15%"},{metric:"Activation Rate",value:`${70+r%15}%`,trend:"+5%"}],u=[{segment:"Enterprise",count:Math.round(s.customers*.15),growth:35,arpu:s.arpu*4},{segment:"Mid-Market",count:Math.round(s.customers*.3),growth:28,arpu:s.arpu*2},{segment:"SMB",count:Math.round(s.customers*.4),growth:22,arpu:s.arpu},{segment:"Startup",count:Math.round(s.customers*.15),growth:18,arpu:s.arpu*.5}],p=[{milestone:"First 100 customers",date:"Q2 2023",achieved:!0},{milestone:"$100K MRR",date:"Q4 2023",achieved:!0},{milestone:"500 customers",date:"Q1 2024",achieved:!0},{milestone:"$500K MRR",date:"Q3 2024",achieved:!1},{milestone:"1000 customers",date:"Q4 2024",achieved:!1}];return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsxs(g,{variant:"outline",className:"mb-2 border-primary/30 text-primary text-xs",children:[e.jsx(M,{className:"w-3 h-3 mr-1"})," Growth Metrics"]}),e.jsx("h2",{className:"text-2xl font-bold text-foreground",children:"Traction & Growth"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Key performance indicators, cohort analysis, and growth trajectory"})]}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[{label:"MRR",value:`$${(s.mrr/1e3).toFixed(0)}K`,icon:y,trend:`+${s.growthRate}%`},{label:"Customers",value:s.customers.toLocaleString(),icon:w,trend:"+18%"},{label:"DAU",value:`${(s.dau/1e3).toFixed(1)}K`,icon:R,trend:"+22%"},{label:"NRR",value:`${s.nrr}%`,icon:A,trend:"+3%"}].map((t,a)=>e.jsx(G.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:a*.05},children:e.jsxs(o,{className:"p-3 bg-card/60 border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(t.icon,{className:"w-3.5 h-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:t.label})]}),e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-xl font-bold text-foreground",children:t.value}),e.jsxs("span",{className:"text-[10px] text-green-400 flex items-center",children:[e.jsx(S,{className:"w-3 h-3"})," ",t.trend]})]})]})},t.label))}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(o,{className:"p-4 bg-card/60 border-border/30",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3",children:"MRR Growth"}),e.jsx("div",{className:"h-48",children:e.jsx(n,{width:"100%",height:"100%",children:e.jsxs(j,{data:m,children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"mrrGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",
1stopColor:"hsl(189,94%,52%)",stopOpacity:.3}),e.jsx("stop",{offset:"95%",stopColor:"hsl(189,94%,52%)",stopOpacity:0})]})}),e.jsx(i,{dataKey:"month",tick:{fill:"hsl(215,18%,55%)",fontSize:10},axisLine:!1,tickLine:!1}),e.jsx(l,{tick:{fill:"hsl(215,18%,55%)",fontSize:10},axisLine:!1,tickLine:!1,tickFormatter:t=>`$${t/1e3}K`}),e.jsx(d,{contentStyle:{background:"hsl(222,22%,9%)",border:"1px solid hsl(222,18%,16%)",borderRadius:8}}),e.jsx(b,{type:"monotone",dataKey:"mrr",stroke:"hsl(189,94%,52%)",fill:"url(#mrrGrad)",strokeWidth:2})]})})})]}),e.jsxs(o,{className:"p-4 bg-card/60 border-border/30",children:[e.jsx("h3",{className:"text-sm font-semibold text-foreground mb-3",children:"Cohort Retention"}),e.jsx("div",{className:"h-48",children:e.jsx(n,{width:"100%",height:"100%",children:e.jsxs(N,{data:h,children:[e.jsx(i,{dataKey:"cohort",tick:{fill:"hsl(215,18%,55%)",fontSize:9},axisLine:!1,tickLine:!1}),e.jsx(l,{tick:{fill:"hsl(215,18%,55%)",fontSize:10},axisLine:!1,tickLine:!1,domain:[0,100],tickFormatter:t=>`${t}%`}),e.jsx(d,{contentStyle:{background:"hsl(222,22%,9%)",border:"1px solid hsl(222,18%,16%)",borderRadius:8}}),e.jsx(v,{type:"monotone",dataKey:"retention",stroke:"hsl(152,76%,42%)",strokeWidth:2,dot:{fill:"hsl(152,76%,42%)",r:3}})]})})}),e.jsx("p",{className:"text-[10px] text-muted-foreground text-center mt-2",children:"12-month retention: 64%"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs(o,{className:"p-4 bg-card/60 border-border/30",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-4 flex items-center gap-2",children:[e.jsx($,{className:"w-4 h-4 text-primary"})," User Engagement"]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:x.map(t=>e.jsxs("div",{className:"p-3 rounded-lg bg-secondary/20",children:[e.jsx("p",{className:"text-[10px] text-muted-foreground",children:t.metric}),e.jsxs("div",{className:"flex items-baseline gap-2 mt-1",children:[e.jsx("span",{className:"text-lg font-bold text-foreground",children:t.value}),e.jsx("span",{className:"text-[10px] text-green-400",children:t.trend})]})]},t.metric))})]}),e.jsxs(o,{className:"p-4 bg-card/60 border-border/30",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-4 flex items-center gap-2",children:[e.jsx(k,{className:"w-4 h-4 text-primary"})," Customer Segments"]}),e.jsx("div",{className:"space-y-3",children:u.map(t=>e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex justify-between text-xs mb-1",children:[e.jsx("span",{className:"text-foreground",children:t.segment}),e.jsxs("span",{className:"text-muted-foreground",children:[t.count," · +",t.growth,"%"]})]}),e.jsx(f,{value:t.count/s.customers*100,className:"h-1.5"})]})},t.segment))})]})]}),e.jsxs(o,{className:"p-4 bg-card/60 border-border/30",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-4 flex items-center gap-2",children:[e.jsx(C,{className:"w-4 h-4 text-primary"})," Growth Milestones"]}),e.jsx("div",{className:"flex flex-wrap gap-4",children:p.map((t,a)=>e.jsxs("div",{className:`flex items-center gap-3 p-3 rounded-lg ${t.achieved?"bg-green-500/10":"bg-secondary/20"}`,children:[e.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center ${t.achieved?"bg-green-500/20 text-green-400":"bg-muted text-muted-foreground"}`,children:t.achieved?"â":a+1}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:t.milestone}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:t.date})]})]},t.milestone))})]})]})}export{X as TractionGrowth};
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.