1import{j as e,r as f}from"./index-BuaC764v.js";const w=["var(--accent)","#4cc9f0","#f38ba8","#94d82d","#ffb347","#c8b6ff","#00b8a9","#fab387"],J=({width:s=360,height:x=160,series:_,yLabel:v,normalize:h=!1,showDots:W=!0,strokeWidth:k=2,headroomPct:T=.08})=>{const b={l:40,r:40,t:22,b:26},$=s-b.l-b.r,M=x-b.t-b.b,L=_[0]?.points.map(c=>c.x)||[],[y,U]=f.useState(null),t=f.useRef(null),o=f.useMemo(()=>{if(h)return 1;let c=0;return _.forEach(d=>d.points.forEach(u=>{u.y!==null&&u.y>c&&(c=u.y)})),(c||1)*(1+T)},[_,h]),n=c=>{const d=c.points;return d.map((u,p)=>{const g=Math.max(d.length-1,1),j=6,A=$-j*2,P=b.l+j+p/g*A,z=u.y===null?null:h?u.y/(Math.max(...c.points.map(D=>D.y||0))||1):u.y,S=z===null?null:b.t+M-z/o*M;return p===0?`M ${P} ${S??0}`:S===null?"":` L ${P} ${S}`}).join("")},i=Array.from({length:5},(c,d)=>d/4),a=f.useMemo(()=>{const d=Math.max(L.length-1,1),u=$-12;return L.map((p,g)=>b.l+6+g/d*u)},[L,$,b.l]),l=c=>{if(!t.current)return;const d=t.current.getBoundingClientRect(),u=c.clientX-d.left;if(!a.length){U(null);return}let p=0,g=1/0;a.forEach((S,D)=>{const F=Math.abs(u-S);F<g&&(g=F,p=D)});const j=L[p];if(!j){U(null);return}const A=c.clientY-d.top,P=[];if(_.forEach((S,D)=>{const F=S.points[p];if(!F||F.y===null)return;const B=S.color||w[D%w.length],Y=h?Math.max(...S.points.map(X=>X.y||0))||1:o,N=h?F.y/Y*o:F.y,K=b.t+M-N/o*M,V=a[p];P.push({sx:V,sy:K,value:F.y||0,seriesLabel:S.label||S.id,color:B})}),!P.length){U(null);return}P.sort((S,D)=>Math.abs(S.sy-A)-Math.abs(D.sy-A));const z=P[0];U({sx:z.sx,sy:z.sy,value:z.value,seriesLabel:z.seriesLabel,color:z.color,date:j})},m=()=>U(null);return e.jsxs("svg",{ref:t,width:s,height:x,role:"img","aria-label":v||"chart",onMouseMove:l,onMouseLeave:m,style:{cursor:"crosshair"},children:[e.jsx("rect",{x:0,y:0,width:s,height:x,fill:"rgba(255,255,255,0.03)",rx:8}),i.map(c=>{const d=b.t+M-c*M,u=h?(c*100).toFixed(0)+"%":Math.round(c*o);return e.jsxs("g",{children:[e.jsx("line",{x1:b.l,x2:s-b.r,y1:d,y2:d,stroke:"rgba(255,255,255,0.08)",strokeWidth:1}),e.jsx("text",{x:b.l-6,y:d+4,fontSize:10,textAnchor:"end",fill:"rgba(255,255,255,0.55)",children:u})]},c)}),L.map((c,d)=>{const p=Math.max(L.length-1,1),g=$-12,j=b.l+6+d/p*g;return e.jsx("text",{x:j,y:x-6,fontSize:10,textAnchor:"middle",fill:"rgba(255,255,255,0.55)",children:c.slice(5)},c)}),_.map((c,d)=>{const u=c.color||w[d%w.length];return e.jsx("path",{d:n(c),fill:"none",stroke:u,strokeWidth:k,strokeLinejoin:"round",strokeLinecap:"round"},c.id)}),W&&_.map((c,d)=>{const u=c.color||w[d%w.length];return c.points.map((p,g)=>{if(p.y===null)return null;const j=h?Math.max(...c.points.map(B=>B.y||0))||1:o,A=h?p.y/j*o:p.y,P=6,z=Math.max(c.points.length-1,1),S=$-P*2,D=b.l+P+g/z*S,F=b.t+M-A/o*M;return e.jsx("circle",{cx:D,cy:F,r:2.5,fill:u},c.id+"_"+g)})}),v&&e.jsx("text",{x:b.l,y:14,fontSize:11,fill:"rgba(255,255,255,0.75)",fontWeight:600,children:v}),y&&e.jsxs("g",{pointerEvents:"none",children:[e.jsx("line",{x1:y.sx,x2:y.sx,y1:b.t,y2:x-b.b,stroke:"rgba(255,255,255,0.25)",strokeDasharray:"4 3"}),e.jsx("circle",{cx:y.sx,cy:y.sy,r:5,fill:y.color,stroke:"#fff",strokeWidth:1}),(()=>{let p=y.sx+10;p+170>s-4&&(p=y.sx-170-10),p<4&&(p=4);let g=y.sy-54-10;g<4&&(g=y.sy+12),g+54>x-4&&(g=x-54-4);const j=y.date,A=h?y.value.toFixed(2):y.value.toLocaleString();return e.jsxs("g",{children:[e.jsx("rect",{x:p,y:g,width:170,height:54,rx:6,fill:"rgba(15,20,28,0.92)",stroke:"rgba(255,255,255,0.15)"}),e.jsx("text",{x:p+8,y:g+16,fontSize:12,fontWeight:600,fill:"#fff",children:y.seriesLabel}),e.jsx("text",{x:p+8,y:g+30,fontSize:11,fill:"rgba(255,255,255,0.85)",children:j}),e.jsx("text",{x:p+8,y:g+44,fontSize:12,fill:y.color,style:{fontVariantNumeric:"tabular-nums"},children:y.seriesLabel.toLowerCase().includes("%")||v&&v.toLowerCase().includes("percent")?y.value.toFixed(1)+"%":A})]})})()]})]})},I=({items:s})=>e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:10,fontSize:11,marginTop:6},children:s.map(x=>e.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:4},children:[e.jsx("span",{style:{width:10,height:10,background:x.color,borderRadius:2}}),x.label]},x.label))}),H=s=>{const x=f.useRef(null),[_,v]=f.useState(600);return f.useEffect(()=>{if(!x.current)return;const h=new ResizeObserver(W=>{for(const k of W){const T=k.contentRect.width;T&&Math.abs(T-_)>4&&v(T)}});return h.observe(x.current),()=>h.disconnect()},[_]),e.jsx("div",{ref:x,style:{width:"100%"},children:e.jsx(J,{width:_,...s})})},O=s=>{if(s===void 0||isNaN(s))return"â";if(s<2e3)return Math.round(s)+" ms";if(s<6e4)return(s/1e3).toFixed(s<1e4?2:1)+" s";const x=Math.round(s/1e3);if(x<3600){const k=Math.floor(x/60),T=x%60;return`${k}m ${T.toString().padStart(2,"0")}s`}const _=Math.floor(x/3600),v=x%3600,h=Math.floor(v/60),W=v%60;return`${_}h ${h}m ${W.toString().padStart(2,"0")}s`},C=(s,x)=>!s||!x?"â":O(s/x),E={"Page loads":"Distinct page initializations (reloads/new visits).","First actions":"Sessions where at least one route or baseline was started.","Activation rate":"First actions / Page loads.","Avg DB load time":"Average time to download + open the map database in-browser.","Avg time to first action":"Average delay from page load to first routing/optimizer action.","P2P routes":"Number of point-to-point route computations completed.","Avg route time":"Average wall time to compute a P2P route (includes multiâsegment).",Cancelled:"User-cancelled route calculations before completion.","Cancellation rate":"Cancelled / (Cancelled + Completed).","Algo (A*/Dij)":"Relative share of A* vs Dijkstra usage for P2P routing.","Mode (Fuel/Jumps)":"Share of optimization modes chosen: minimize fuel (distance) vs hops.",Baselines:"Scout baseline routes generated (starting solution).",Optimizations:"Optimization sessions started after a baseline.","Abandoned baselines":"Baseline generated but optimization not started (session ended).","Avg baseline time":"Average time to compute baseline route.","Avg opt session time":"Average measured optimization session duration until user left.","Avg collected systems":"Average unique systems in collected set per baseline.","LY saved total":"Total lightyears saved by optimizations vs baselines.","LY saved avg":"Average LY saved per optimization session reporting savings.","Waypoints used":"Routes including at least one waypoint.","Avoid used":"Routes where avoid list was non-empty.","Waypoint optimize":"Routes using waypoint order heuristic.","Return to
1start":"Routes or baselines with return-to-start enabled.","Gate reachable":"Scout collections restricted to gate-reachable systems.","Planet-filter baselines":"Baselines built with planet-count filter active.","Compare Regions opens":"Panel opens for the Compare Regions feature (user-initiated).","Blue theme":"Sessions choosing blue accent.","Orange theme":"Sessions choosing orange accent.","Theme switches":"Accent switches after initial load.","Hide UI":"Times UI was hidden (toggle on).","Show Distance":"Times distance overlay was enabled.","Help opens":"Help panel opens (debounced to first open per panel lifetime).","Top UI scale":"Most common chosen UI scale & share.","Shares created":"Short share links generated.","Shares resolved":"Short links opened and decoded.","Resolution rate":"Shares resolved / Shares created.","Route copies total":"Total route note copy actions (P2P + optimized).","Copy rate":"Route copies / (P2P routes + Optimizations).","Modal opens":"Donation modal opened.","Stripe clicks":"Outbound Stripe donation link clicks.","Crypto clicks":"Crypto donation expand / address view clicks.","Stripe CTR":"Stripe clicks / Modal opens.","Cinematic sessions":"Unique sessions that entered cinematic at least once.","Cinematic enters":"Total toggles into cinematic mode (multiple per session).","Cinematic usage":"Cinematic sessions / Page loads.","Avg open duration":"Average total page session length.","Avg active duration":"Average active interaction time (idle gaps >5m capped).","Median open (est)":"Median session length estimated from duration buckets.","Avg cinematic time":"Average time spent in cinematic mode (sessions with time).","Cinematic time share":"Cinematic time / Total session time.","P2P Route Hops":"Distribution of hop counts across completed P2P routes.","Scout Baseline Hops":"Hop count distribution for initial Scout baselines.","Savings (LY)":"Distribution buckets of LY saved (baseline minus optimized).","Planet Bins Active":"How many planet legend bins were enabled during baseline creation.","Workers Used":"Parallel optimization workers selected.","UI Scale":"Chosen interface scale percentages distribution.","Reachability Usage":"Adoption & interaction with jump range reachability tools.","Range Buckets":"Distribution of chosen max jump ranges (approx â sampled on edit pauses).","Last 7 Days (Newest First)":"Daily aggregate snapshot: one JSON per day.","Overlay opens":"User-triggered opens of the overlay panel (includes repeats).","Overlay sessions":"Distinct sessions with at least one open (first open per session).","Marks added":"Total marks created (including duplicates pre-merge).","Mark sessions":"Sessions where at least one mark was added.","Avg marks / session":"Marks added divided by mark sessions (engaged sessions only).","Overlay exports":"JSON export actions.","Overlay imports":"JSON import actions (successful additions).","Avg panel open time":"Average cumulative time the overlay panel remained open per engaged session.","Overlay Marks Count":"Distribution of mark counts present at session snapshot time.","Transmission Replays":"Replay button activations (total).","Replay sessions":"Distinct sessions with at least one replay.",Closes:"Total transmission panel closes.","Early closes":"Closes occurring before intro completed.","Avg open time":"Average cumulative time the transmission panel stayed open (sessions with panel open).","Avg echo time":"Average time in echo (post-intro) phase (sessions with echo time).","Echo Messages":"Distribution of echo message counts appended per session.","Open Share":"Distribution of share of session time panel remained open."},r=({label:s,value:x})=>{const _=E[s];return e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:12,padding:"2px 0"},title:_||void 0,"aria-label":_?`${s}: ${_}`:s,children:[e.jsx("span",{style:{fontSize:12,opacity:.72},children:s}),e.jsx("span",{style:{fontSize:12,fontVariantNumeric:"tabular-nums"},children:x})]})},R=({title:s,rows:x,total:_})=>e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},title:E[s]||void 0,"aria-label":E[s]?`${s}: ${E[s]}`:s,children:[e.jsx("h3",{style:{margin:"0 0 4px 0",fontSize:12,letterSpacing:".5px",textTransform:"uppercase",opacity:.75},children:s}),e.jsx("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11}
1,children:e.jsxs("tbody",{children:[x.map(v=>{const h=_?v.c/_*100:0;return e.jsxs("tr",{style:{borderTop:"1px solid rgba(255,255,255,0.08)"},children:[e.jsx("td",{style:{padding:"3px 4px",opacity:.8},children:v.label}),e.jsx("td",{style:{padding:"3px 4px",fontVariantNumeric:"tabular-nums"},children:v.c}),e.jsx("td",{style:{padding:"3px 4px",width:"55%"},children:e.jsx("div",{style:{background:"rgba(255,255,255,0.08)",height:5,borderRadius:3,position:"relative"},children:e.jsx("div",{style:{position:"absolute",inset:0,width:h+"%",background:"var(--accent)",borderRadius:3}})})}),e.jsxs("td",{style:{padding:"3px 4px",fontVariantNumeric:"tabular-nums",textAlign:"right"},children:[h.toFixed(1),"%"]})]},v.k)}),e.jsxs("tr",{style:{borderTop:"1px solid rgba(255,255,255,0.15)",fontWeight:600},children:[e.jsx("td",{style:{padding:"3px 4px"},children:"Total"}),e.jsx("td",{style:{padding:"3px 4px",fontVariantNumeric:"tabular-nums"},children:_}),e.jsx("td",{}),e.jsx("td",{style:{padding:"3px 4px"},children:"100%"})]})]})})]}),q=()=>{const[s,x]=f.useState(null),[_,v]=f.useState([]),[h,W]=f.useState(null),k=f.useMemo(()=>_.map(t=>({date:t.date?t.date.replace(/\.json$/,""):t.updatedAt.slice(0,10),counters:t.counters,sums:t.sums})),[_]),T=f.useMemo(()=>{const t=(o,n,i)=>({id:o,label:n,color:i,points:k.map(a=>({x:a.date,y:a.counters[o]||0}))});return[t("page_loads","Page Loads",w[0]),t("p2p_routes","P2P Routes",w[1]),t("scout_baselines","ScoutOptimizer Baselines",w[3])]},[k]),b=f.useMemo(()=>[{id:"share_rate",label:"Share Creation %",color:w[0],points:k.map(t=>{const o=t.counters.page_loads||0,n=t.counters.routes_shared||0;return{x:t.date,y:o?n/o*100:0}})},{id:"copy_rate",label:"Route Copy %",color:w[1],points:k.map(t=>{const o=(t.counters.p2p_routes||0)+(t.counters.scout_optimizations||0),n=t.counters.route_copies||0;return{x:t.date,y:o?n/o*100:0}})},{id:"cinematic_rate",label:"Cinematic Usage %",color:w[2],points:k.map(t=>{const o=t.counters.page_loads||0,n=t.counters.cinematic_sessions||0;return{x:t.date,y:o?n/o*100:0}})}],[k]);f.useEffect(()=>{let t=!1;const o=async()=>{try{const i=await fetch("/.netlify/functions/stats?history=30");if(!i.ok)throw new Error("Failed");const a=await i.json();if(t)return;x(a.current),v(a.history||[])}catch(i){t||W(i.message||"Error loading stats")}};o();const n=setInterval(o,15e3);return()=>{t=!0,clearInterval(n)}},[]),f.useEffect(()=>{const t=document.documentElement.style.background,o=document.body.style.background,n=document.body.style.color,i=document.documentElement.style.colorScheme;return document.documentElement.style.background="#0b1119",document.body.style.background="#0b1119",document.body.style.color="#ffffff",document.documentElement.style.colorScheme="dark",document.body.setAttribute("data-ef-stats","true"),()=>{document.body.removeAttribute("data-ef-stats"),document.documentElement.style.background=t,document.body.style.background=o,document.body.style.color=n,document.documentElement.style.colorScheme=i||""}},[]);const $="#0b1119",M="#fff",L=t=>{const o=new Date(t+"T00:00:00Z"),n=(o.getUTCDay()+6)%7;o.setUTCDate(o.getUTCDate()-n+3);const i=new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate())),a=new Date(Date.UTC(i.getUTCFullYear(),0,1)),l=Math.floor(((i.getTime()-a.getTime())/864e5+10)/7);return{year:i.getUTCFullYear(),week:l}},y=f.useMemo(()=>{if(!_.length)return{weeks:[],months:[]};const t=_.map(l=>({date:l.date?l.date.replace(/\.json$/,""):l.updatedAt.slice(0,10),counters:l.counters,sums:l.sums})),o=new Map;for(const l of t){const{year:m,week:c}=L(l.date),d=`${m}-W${c.toString().padStart(2,"0")}`;let u=o.get(d);if(u||(u={key:d,label:`Week ${c}`,range:l.date,days:0,counters:{},sums:{}},o.set(d,u)),u.range){const[p,g]=u.range.includes("â")?u.range.split("â"):[u.range,u.range],j=l.date<p?l.date:p,A=l.date>g?l.date:g;u.range=j===A?j:`${j}â${A}`}u.days++;for(const[p,g]of Object.entries(l.counters))u.counters[p]=(u.counters[p]||0)+g;for(const[p,g]of Object.entries(l.sums))u.sums[p]=(u.sums[p]||0)+g}const n=Array.from(o.values()).sort((l,m)=>l.key.localeCompare(m.key)).reverse(),i=new Map;for(const l of t){const m=l.date.slice(0,7);let c=i.get(m);
1if(!c){const[d]=m.split("-"),u=new Date(`${m}-01T00:00:00Z`).toLocaleString(void 0,{month:"long",timeZone:"UTC"});c={key:m,label:`${u} ${d}`,range:void 0,days:0,counters:{},sums:{}},i.set(m,c)}c.days++;for(const[d,u]of Object.entries(l.counters))c.counters[d]=(c.counters[d]||0)+u;for(const[d,u]of Object.entries(l.sums))c.sums[d]=(c.sums[d]||0)+u}const a=Array.from(i.values()).sort((l,m)=>l.key.localeCompare(m.key)).reverse();return{weeks:n,months:a}},[_]),U=(t,o)=>t.length?e.jsxs("div",{style:{marginTop:34},children:[e.jsx("h2",{style:{fontSize:"15px",margin:"0 0 10px 0",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:o}),e.jsx("div",{style:{overflowX:"auto",border:"1px solid rgba(255,255,255,0.12)",borderRadius:10,background:"rgba(255,255,255,0.04)"},children:e.jsxs("table",{style:{borderCollapse:"collapse",width:"100%",fontSize:12},children:[e.jsx("thead",{children:e.jsx("tr",{style:{textAlign:"left",background:"rgba(255,255,255,0.06)"},children:["Period","Page loads","P2P","Baselines","Opt starts","Shares","Resolved","Avg P2P","Avg baseline","Avg active session","Avg LY saved","Total LY saved","Cinematic sessions","Copy rate %","Days"].map(n=>e.jsx("th",{style:{padding:"6px 8px",fontWeight:600},children:n},n))})}),e.jsx("tbody",{children:t.map(n=>{const i=n.sums.p2p_route_time_count?n.sums.p2p_route_time_ms_sum/n.sums.p2p_route_time_count:void 0,a=n.sums.scout_baseline_time_count?n.sums.scout_baseline_time_ms_sum/n.sums.scout_baseline_time_count:void 0,l=n.sums.active_session_time_count?n.sums.active_session_time_ms_sum/n.sums.active_session_time_count:void 0,m=n.sums.scout_opt_savings_count?n.sums.scout_opt_savings_ly_sum/n.sums.scout_opt_savings_count:void 0,c=n.sums.scout_opt_savings_ly_sum,d=(()=>{const p=(n.counters.p2p_routes||0)+(n.counters.scout_optimizations||0);return p?((n.counters.route_copies||0)/p*100).toFixed(1):"â"})(),u=n.label+(n.range?` (${n.range})`:"");return e.jsxs("tr",{style:{borderTop:"1px solid rgba(255,255,255,0.08)"},children:[e.jsx("td",{style:{padding:"4px 8px",opacity:.85},children:u}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.page_loads||0}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.p2p_routes||0}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.scout_baselines||0}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.scout_optimizations||0}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.routes_shared||0}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.shared_resolved||0}),e.jsx("td",{style:{padding:"4px 8px"},children:i!==void 0?O(i):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:a!==void 0?O(a):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:l!==void 0?O(l):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:m!==void 0?m.toFixed(2):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:c!==void 0?c.toFixed(2):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:n.counters.cinematic_sessions||0}),e.jsx("td",{style:{padding:"4px 8px"},children:d==="â"?"â":d+"%"}),e.jsx("td",{style:{padding:"4px 8px"},children:n.days})]},n.key)})})]})})]}):null;return e.jsxs("div",{style:{maxWidth:1600,margin:"0 auto",padding:"34px 32px 80px 32px",fontFamily:"system-ui, sans-serif",color:M,background:$,boxSizing:"border-box"},children:[e.jsx("h1",{style:{fontSize:"28px",margin:"0 0 10px 0"},children:"Usage Stats"}),e.jsx("p",{style:{margin:"0 0 18px 0",fontSize:"14px",lineHeight:1.5,opacity:.85},children:"Anonymous aggregate counters since deployment. Updates every ~15s. Diagnostic error counters hidden for clarity."}),h&&e.jsx("div",{style:{color:"#f66",marginBottom:12},children:h}),!s&&!h&&e.jsx("div",{children:"Loading..."}),s&&e.jsxs(e.Fragment,{children:[k.length>0&&e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:24,margin:"0 0 40px 0"},"aria-label":"Usage Trend Charts",children:[e.jsxs("section",{style:{flex:"1 1 0",minWidth:600,background:"rgba(255,255,255,0.06)",padding:"20px 22px 16px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:12},children:[e.jsx("h2",{style:{margin:"0 0 12px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Core Usage (Daily)"}),e.jsx(H,{series:T,yLabel:"Count",height:320}),e.jsx(I,{items:T.map(t=>({label:t.label||t.id,color:t.color||w[0]}))})]}),e.jsxs("section",{style:{flex:"1 1 0",minWidth:600,background:"rgba(255,255,255,0.06)",padding:"20px 22px 16px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:12},children:[e.jsx("h2",{style:{margin:"0 0 12px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Engagement Rates (Daily)"}),e.jsx(H,{series:b,yLabel:"Percent",height:320}),e.jsx(I,{items:b.map(t=>({label:t.label||t.id,color:t.color||w[0]}))})]})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit,minmax(300px,1fr))",gap:"20px"},children:[e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Activation & Load"}),e.jsx(r,{label:"Page loads",value:s.counters.page_loads||0}),e.jsx(r,{label:"First actions",value:s.counters.first_actions||0}),e.jsx(r,{label:"Activation rate",value:(()=>{const t=s.counters.page_loads||0,o=s.counters.first_actions||0;return t?(o/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Avg DB load time",value:C(s.sums.db_load_time_ms_sum,s.sums.db_load_time_count)}
1),e.jsx(r,{label:"Avg time to first action",value:C(s.sums.first_route_delay_ms_sum,s.sums.first_route_delay_count)})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"P2P Routing"}),e.jsx(r,{label:"P2P routes",value:s.counters.p2p_routes||0}),e.jsx(r,{label:"Avg route time",value:C(s.sums.p2p_route_time_ms_sum,s.sums.p2p_route_time_count)}),e.jsx(r,{label:"Cancelled",value:s.counters.p2p_cancelled||0}),e.jsx(r,{label:"Cancellation rate",value:(()=>{const t=s.counters.p2p_routes||0;return t?((s.counters.p2p_cancelled||0)/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Algo (A*/Dij)",value:(()=>{const t=s.counters.p2p_algo_astar||0,o=s.counters.p2p_algo_dijkstra||0;if(!t&&!o)return"â";const n=t+o;return`${(t/n*100).toFixed(0)}% / ${(o/n*100).toFixed(0)}%`})()}),e.jsx(r,{label:"Mode (Fuel/Jumps/Explore)",value:(()=>{const t=s.counters.p2p_mode_fuel||0,o=s.counters.p2p_mode_jumps||0,n=s.counters.p2p_mode_explore||0,i=t+o+n;if(!i)return"â";const a=(t/i*100).toFixed(0),l=(o/i*100).toFixed(0),m=(n/i*100).toFixed(0);return`${a}% / ${l}% / ${m}%`})()})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Scout Optimization"}),e.jsx(r,{label:"Baselines",value:s.counters.scout_baselines||0}),e.jsx(r,{label:"Optimizations",value:s.counters.scout_optimizations||0}),e.jsx(r,{label:"Abandoned baselines",value:s.counters.scout_abandoned||0}),e.jsx(r,{label:"Avg baseline time",value:C(s.sums.scout_baseline_time_ms_sum,s.sums.scout_baseline_time_count)}),e.jsx(r,{label:"Avg opt session time",value:C(s.sums.scout_opt_session_time_ms_sum,s.sums.scout_opt_session_time_count)}),e.jsx(r,{label:"Avg collected systems",value:(()=>{const t=s.sums.scout_collected_systems_sum,o=s.sums.scout_collected_systems_count;return!t||!o?"â":(t/o).toFixed(1)})()}),e.jsx(r,{label:"LY saved total",value:(()=>{const t=s.sums.scout_opt_savings_ly_sum;return t?t.toFixed(2)+" LY":"â"})()}),e.jsx(r,{label:"LY saved avg",value:(()=>{const t=s.sums.scout_opt_savings_ly_sum,o=s.sums.scout_opt_savings_count;return!t||!o?"â":(t/o).toFixed(2)+" LY"})()})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Feature Flags & Filters"}),e.jsx(r,{label:"Waypoints used",value:s.counters.waypoints_used||0}),e.jsx(r,{label:"Avoid used",value:s.counters.avoid_used||0}),e.jsx(r,{label:"Waypoint optimize",value:s.counters.waypoint_opt_used||0}),e.jsx(r,{label:"Return to start",value:s.counters.return_to_start||0}),e.jsx(r,{label:"Gate reachable",value:s.counters.gate_reachable||0}),e.jsx(r,{label:"Show stations",value:s.counters.show_stations||0}),e.jsx(r,{label:"Planet-filter baselines",value:s.counters.planet_filter_baselines||0}),e.jsx(r,{label:"Compare Regions opens",value:s.counters.compare_regions_opens||0})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"UI & Theme"}),e.jsx(r,{label:"Blue theme",value:s.counters.theme_blue||0}),e.jsx(r,{label:"Orange theme",value:s.counters.theme_orange||0}),e.jsx(r,{label:"Theme switches",value:s.counters.theme_switches||0}),e.jsx(r,{label:"Hide UI",value:s.counters.ui_hide||0}),e.jsx(r,{label:"Show Distance",value:s.counters.show_distance||0}),e.jsx(r,{label:"Help opens",value:s.counters.help_opens||0}),(()=>
1{const t=Object.keys(s.counters).filter(m=>m.startsWith("ui_scale_"));if(!t.length)return e.jsx(r,{label:"Top UI scale",value:"â"});let o=0,n="",i=0;t.forEach(m=>{const c=s.counters[m]||0;o+=c,c>i&&(i=c,n=m)});const a=o?(i/o*100).toFixed(1)+"%":"â",l=n.replace("ui_scale_","");return e.jsx(r,{label:"Top UI scale",value:`${l}% (${a})`})})()]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Sharing & Donations"}),e.jsx(r,{label:"Shares created",value:s.counters.routes_shared||0}),e.jsx(r,{label:"Shares resolved",value:s.counters.shared_resolved||0}),e.jsx(r,{label:"Resolution rate",value:(()=>{const t=s.counters.routes_shared||0,o=s.counters.shared_resolved||0;return t?(o/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Route copies total",value:s.counters.route_copies||0}),e.jsx(r,{label:"Copy rate",value:(()=>{const t=(s.counters.p2p_routes||0)+(s.counters.scout_optimizations||0);return t?((s.counters.route_copies||0)/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Modal opens",value:s.counters.donate_modal_open||0}),e.jsx(r,{label:"Stripe clicks",value:s.counters.donate_stripe_clicks||0}),e.jsx(r,{label:"Crypto clicks",value:s.counters.donate_crypto_clicks||0}),e.jsx(r,{label:"Stripe CTR",value:(()=>{const t=s.counters.donate_modal_open||0,o=s.counters.donate_stripe_clicks||0;return t?(o/t*100).toFixed(1)+"%":"â"})()})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Transmission"}),e.jsx(r,{label:"Transmission shows",value:s.counters.transmission_shows||0}),e.jsx(r,{label:"Completes",value:s.counters.transmission_completes||0}),e.jsx(r,{label:"Transmission replays",value:s.counters.transmission_replays||0}),e.jsx(r,{label:"Replay sessions",value:s.counters.transmission_replay_sessions||0}),e.jsx(r,{label:"Replay rate",value:(()=>{const t=s.counters.transmission_shows||0,o=s.counters.transmission_replay_sessions||0;return t?(o/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Closes",value:s.counters.transmission_closes||0}),e.jsx(r,{label:"Early closes",value:s.counters.transmission_close_earlies||0}),e.jsx(r,{label:"Early close rate",value:(()=>{const t=s.counters.transmission_closes||0,o=s.counters.transmission_close_earlies||0;return t?(o/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Avg open time",value:C(s.sums.transmission_open_time_ms_sum,s.sums.transmission_open_time_count)}),e.jsx(r,{label:"Avg echo time",value:C(s.sums.transmission_echo_time_ms_sum,s.sums.transmission_echo_time_count)}),e.jsx(r,{label:"Echo msgs total",value:s.counters.transmission_echo_msgs||0})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"User Overlay"}),e.jsx(r,{label:"Overlay opens",value:s.counters.overlay_opens||0}),e.jsx(r,{label:"Overlay sessions",value:s.counters.overlay_sessions||0}),e.jsx(r,{label:"Marks added",value:s.counters.overlay_add_marks||0}),e.jsx(r,{label:"Mark sessions",value:s.counters.overlay_add_sessions||0}),e.jsx(r,{label:"Avg marks / session",value:(()=>{const t=s.counters.overlay_add_marks||0,o=s.counters.overlay_add_sessions||0;return!t||!o?"â":(t/o).toFixed(1)})()}),e.jsx(r,{label:"Overlay exports",value:s.counters.overlay_exports||0}),e.jsx(r,{label:"Overlay imports",value:s.counters.overlay_imports||0}),e.jsx(r,{label:"Avg panel open time",value:C(s.sums.overlay_panel_time_ms_sum,s.sums.overlay_panel_time_count)}
1)]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Session & Cinematic"}),e.jsx(r,{label:"Cinematic sessions",value:s.counters.cinematic_sessions||0}),e.jsx(r,{label:"Cinematic enters",value:s.counters.cinematic_enters||0}),e.jsx(r,{label:"Cinematic usage",value:(()=>{const t=s.counters.page_loads||0,o=s.counters.cinematic_sessions||0;return t?(o/t*100).toFixed(1)+"%":"â"})()}),e.jsx(r,{label:"Avg open duration",value:C(s.sums.session_time_ms_sum,s.sums.session_time_count)}),e.jsx(r,{label:"Avg active duration",value:C(s.sums.active_session_time_ms_sum,s.sums.active_session_time_count)}),(()=>{const t=[{c:s.counters.sess_lt_1m||0,min:0,max:6e4},{c:s.counters.sess_1_5m||0,min:6e4,max:3e5},{c:s.counters.sess_5_15m||0,min:3e5,max:9e5},{c:s.counters.sess_15_60m||0,min:9e5,max:36e5},{c:s.counters.sess_gt_60m||0,min:36e5,max:72e5}],o=t.reduce((l,m)=>l+m.c,0);if(!o)return e.jsx(r,{label:"Median open (est)",value:"â"});let n=0,i=0;const a=o/2;for(const l of t){if(n+l.c>=a){i=(l.min+l.max)/2;break}n+=l.c}return e.jsx(r,{label:"Median open (est)",value:O(i)})})(),e.jsx(r,{label:"Avg cinematic time",value:C(s.sums.cinematic_time_ms_sum,s.sums.cinematic_time_count)}),e.jsx(r,{label:"Cinematic time share",value:(()=>{const t=s.sums.cinematic_time_ms_sum,o=s.sums.session_time_ms_sum;return!t||!o?"â":(t/o*100).toFixed(1)+"%"})()})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.06)",padding:"16px 18px",border:"1px solid rgba(255,255,255,0.15)",borderRadius:10,boxShadow:"0 2px 4px rgba(0,0,0,0.45)"},children:[e.jsx("h2",{style:{margin:"0 0 8px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Reachability"}),e.jsx(r,{label:"Reachability Usage",value:(()=>{const t=s.counters.reachability_tab_open||0,o=s.counters.reachability_computes||0;return`${t} opens / ${o} computes`})()}),e.jsx(r,{label:"Auto on",value:s.counters.reachability_auto_on||0}),e.jsx(r,{label:"Auto off",value:s.counters.reachability_auto_off||0}),e.jsx(r,{label:"Unreachable on",value:s.counters.reachability_enable||0}),e.jsx(r,{label:"Unreachable off",value:s.counters.reachability_disable||0}),e.jsx(r,{label:"Bubble show",value:s.counters.rangebubble_show||0}),e.jsx(r,{label:"Bubble hide",value:s.counters.rangebubble_hide||0}),e.jsx(r,{label:"In-range on",value:s.counters.reachability_inrange_on||0}),e.jsx(r,{label:"In-range off",value:s.counters.reachability_inrange_off||0})]}),e.jsxs("section",{style:{background:"rgba(255,255,255,0.04)",padding:"18px 20px",border:"1px solid rgba(255,255,255,0.12)",borderRadius:12,boxShadow:"0 2px 4px rgba(0,0,0,0.55)",gridColumn:"1 / -1"},children:[e.jsx("h2",{style:{margin:"0 0 14px 0",fontSize:"15px",letterSpacing:".5px",textTransform:"uppercase",opacity:.85},children:"Distributions"}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit,minmax(230px,1fr))",gap:22},children:[(()=>{const t=["hops_lt_10","hops_10_30","hops_30_60","hops_gt_60"],o={hops_lt_10:"<10",hops_10_30:"10â30",hops_30_60:"30â60",hops_gt_60:">60"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"P2P Route Hops",rows:n,total:i})})(),(()=>{const t=["scout_hops_lt_10","scout_hops_10_30","scout_hops_30_60","scout_hops_gt_60"],o={scout_hops_lt_10:"<10",scout_hops_10_30:"10â30",scout_hops_30_60:"30â60",scout_hops_gt_60:">60"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Scout Baseline Hops",rows:n,total:i})})(),(()=>{const t=["save_0_50","save_50_100","save_100_200","save_gt_200"],o={save_0_50:"0â50",save_50_100:"50â100",save_100_200:"100â200",save_gt_200:">200"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Savings (LY)",rows:n,total:i})})(),(()=>{const t=["bins_5","bins_3_4","bins_1_2","bins_0"],o={bins_5:"5",bins_3_4:"3â4",bins_1_2:"1â2",bins_0:"0"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Planet Bins Active",rows:n,total:i})})(),(()=>
1{const o=Object.keys(s.counters).filter(i=>i.startsWith("opt_workers_used_")).sort((i,a)=>parseInt(i.split("_").pop()||"0")-parseInt(a.split("_").pop()||"0")).map(i=>({k:i,c:s.counters[i]||0,label:i.replace("opt_workers_used_","")})),n=o.reduce((i,a)=>i+a.c,0);return e.jsx(R,{title:"Workers Used",rows:o,total:n})})(),(()=>{const o=Object.keys(s.counters).filter(i=>i.startsWith("ui_scale_")).sort((i,a)=>parseInt(i.replace("ui_scale_",""))-parseInt(a.replace("ui_scale_",""))).map(i=>({k:i,c:s.counters[i]||0,label:i.replace("ui_scale_","")+"%"})),n=o.reduce((i,a)=>i+a.c,0);return e.jsx(R,{title:"UI Scale",rows:o,total:n})})(),(()=>{const t=["marks_0","marks_1_5","marks_6_15","marks_16_30","marks_31_60","marks_61_plus"],o={marks_0:"0",marks_1_5:"1â5",marks_6_15:"6â15",marks_16_30:"16â30",marks_31_60:"31â60",marks_61_plus:"61+"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Overlay Marks Count",rows:n,total:i})})(),(()=>{const t=["res_720p","res_1080p","res_1440p","res_4k_plus"],o={res_720p:"â¤720p",res_1080p:"1080p",res_1440p:"1440p",res_4k_plus:"4K+"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Screen Resolution",rows:n,total:i})})(),(()=>{const t=["cores_1_2","cores_3_4","cores_5_8","cores_9_12","cores_13_16","cores_17_plus"],o={cores_1_2:"1â2",cores_3_4:"3â4",cores_5_8:"5â8",cores_9_12:"9â12",cores_13_16:"13â16",cores_17_plus:"17+"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"CPU Cores",rows:n,total:i})})(),(()=>{const o=["echo_0","echo_1_5","echo_6_15","echo_16_30","echo_gt_30"].map(i=>({k:i,c:s.counters[i]||0,label:i.replace("echo_","").replace("gt_",">")})),n=o.reduce((i,a)=>i+a.c,0);return e.jsx(R,{title:"Echo Messages",rows:o,total:n})})(),(()=>{const t=["tx_share_0","tx_share_lt_10","tx_share_10_30","tx_share_30_60","tx_share_gt_60"],o={tx_share_0:"0%",tx_share_lt_10:"<10%",tx_share_10_30:"10â30%",tx_share_30_60:"30â60%",tx_share_gt_60:">60%"},n=t.map(a=>({k:a,c:s.counters[a]||0,label:o[a]})),i=n.reduce((a,l)=>a+l.c,0);return e.jsx(R,{title:"Open Share",rows:n,total:i})})()]})]})]})]}),e.jsxs("div",{style:{marginTop:22,fontSize:"11px",opacity:.5},children:["Updated: ",s?new Date(s.updatedAt).toLocaleString():"â"]}),_.length>0&&e.jsxs("div",{style:{marginTop:30},children:[e.jsx("h2",{style:{fontSize:"16px",margin:"0 0 10px 0"},children:"Last 7 Days (Newest First)"}),e.jsx("div",{style:{overflowX:"auto",border:"1px solid rgba(255,255,255,0.12)",borderRadius:10,background:"rgba(255,255,255,0.04)"},children:e.jsxs("table",{style:{borderCollapse:"collapse",width:"100%",fontSize:"12px"},children:[e.jsx("thead",{children:e.jsx("tr",{style:{textAlign:"left",background:"rgba(255,255,255,0.06)"},children:["Date","Page loads","P2P","Baselines","Opt starts","Shares","Resolved","Avg P2P","Avg baseline","Avg active session","Avg LY saved","Total LY saved","Cinematic sessions","Copy rate %"].map(t=>e.jsx("th",{style:{padding:"6px 8px",fontWeight:600},children:t},t))})}),e.jsx("tbody",{children:[..._].sort((t,o)=>{const n=t.date?t.date.replace(/\.json$/,""):t.updatedAt.slice(0,10);return(o.date?o.date.replace(/\.json$/,""):o.updatedAt.slice(0,10)).localeCompare(n)}).map(t=>{const o=t.sums.p2p_route_time_count?t.sums.p2p_route_time_ms_sum/t.sums.p2p_route_time_count:void 0,n=t.sums.scout_baseline_time_count?t.sums.scout_baseline_time_ms_sum/t.sums.scout_baseline_time_count:void 0,i=t.sums.active_session_time_count?t.sums.active_session_time_ms_sum/t.sums.active_session_time_count:void 0,a=t.sums.scout_opt_savings_count?t.sums.scout_opt_savings_ly_sum/t.sums.scout_opt_savings_count:void 0,l=t.sums.scout_opt_savings_ly_sum,m=(()=>{const c=(t.counters.p2p_routes||0)+(t.counters.scout_optimizations||0);return c?((t.counters.route_copies||0)/c*100).toFixed(1):"â"})();return e.jsxs("tr",{style:{borderTop:"1px solid rgba(255,255,255,0.08)"},children:[e.jsx("td",{style:{padding:"4px 8px",opacity:.85},children:t.date?t.date.replace(/\.json$/,""):t.updatedAt.slice(0,10)}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.page_loads||0}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.p2p_routes||0}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.scout_baselines||0}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.scout_optimizations||0}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.routes_shared||0}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.shared_resolved||0}),e.jsx("td",{style:{padding:"4px 8px"},children:o!==void 0?O(o):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:n!==void 0?O(n):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:i!==void 0?O(i):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:a!==void 0?a.toFixed(2):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:l!==void 0?l.toFixed(2):"â"}),e.jsx("td",{style:{padding:"4px 8px"},children:t.counters.cinematic_sessions||0}),e.jsx("td",{style:{padding:"4px 8px"},children:m==="â"?"â":m+"%"})]},t.date||t.updatedAt)})})]})}),U(y.weeks,"Weekly Rollups (ISO Weeks â Newest First)"),U(y.months,"Monthly Rollups (Newest First)")]})]})};export{q 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.