1import"../chunks/DsnmJJEf.js";import{p as Ce,x as $e,t as de,g as o,a as J,d as Te,e as qe,s as a,c as n,b as Y,i as Re,u as pe,$ as Ae,r as s,n as S,aM as Ee,h as C}from"../chunks/DmsFP5xW.js";import{d as Me,a as v,s as u}from"../chunks/PR1lq5kH.js";import{e as ze}from"../chunks/CMXXxyw3.js";import{h as De}from"../chunks/f4_VgLXB.js";import{r as $,s as m,c as ue}from"../chunks/wAxOggtr.js";import{s as K}from"../chunks/C87qSo-F.js";import{a as T,b as Le}from"../chunks/D8M5QW8h.js";var Ue=Y('<meta name="robots" content="noindex, nofollow"/>'),We=Y('<div class="signal-card svelte-1kxn4hg"><h4 class="svelte-1kxn4hg"> </h4> <p class="svelte-1kxn4hg"><strong>What this is + why it matters:</strong> </p> <div class="term-chips svelte-1kxn4hg" role="group"><button type="button">Needs work</button> <button type="button">Blind spot</button> <button type="button">Good to go</button></div> <div class="effort-select svelte-1kxn4hg"><label class="field-label">Effort to fix</label> <select class="svelte-1kxn4hg"><option>Quick win</option><option>Small team can do quickly</option><option>Requires significant work</option></select></div> <div class="comment-row svelte-1kxn4hg"><textarea placeholder="Type or dictate a comment..." class="svelte-1kxn4hg"></textarea> <button type="button" class="dictate-btn svelte-1kxn4hg">Dictate</button></div> <div class="effort-select svelte-1kxn4hg"><label class="field-label">Team context</label> <select class="svelte-1kxn4hg"><option>Solo</option><option>Small team (2 to 5)</option><option>Mid-size (6 to 15)</option><option>Enterprise (16+)</option></select></div></div>'),Be=Y('<div class="page-container svelte-1kxn4hg"><h1>Blind Spot Audit</h1> <div class="dashboard-bar svelte-1kxn4hg"><div class="score svelte-1kxn4hg">Overall score: <strong> </strong></div> <div class="term-counts svelte-1kxn4hg"><span class="svelte-1kxn4hg"> </span> <span class="svelte-1kxn4hg"> </span> <span class="svelte-1kxn4hg"> </span></div></div> <div class="team-select svelte-1kxn4hg"><label class="svelte-1kxn4hg"><input type="radio" name="team"/> Solo</label> <label class="svelte-1kxn4hg"><input type="radio" name="team"/> Small team (2 to 5)</label> <label class="svelte-1kxn4hg"><input type="radio" name="team"/> Mid-size (6 to 15)</label> <label class="svelte-1kxn4hg"><input type="radio" name="team"/> Enterprise (16+)</label></div> <div class="signal-grid svelte-1kxn4hg"></div> <button class="generate-btn svelte-1kxn4hg">Generate report (Markdown)</button></div>');function Ve(ve,me){Ce(me,!0);const h=[];let g=$e([{name:"UX",weight:28,signals:[{idx:"01",name:"Core offering clarity",description:"The product's core purpose and value proposition, stated from the user's perspective, not the product's features. If visitors can't answer 'What does this do and for whom?' within 5 seconds, they leave.",weight:28,term:"gtg",effort:"quick",teamContext:"solo",comment:""},{idx:"02",name:"CTA and friction",description:'Download, GitHub, docs, and "get in touch" all compete; no single obvious next step, so visitors leave without a clear path.',weight:28,term:"bs",effort:"quick",teamContext:"solo",comment:""},{idx:"03",name:"Navigation and IA",description:"Clean, conventional, easy to move around. Logical grouping, predictable patterns, no surprise clicks.",weight:28,term:"gtg",effort:"quick",teamContext:"solo",comment:""}]},{name:"Page speed",weight:24,signals:[{idx:"07",name:"Load time and Core Web Vitals",description:"Time to first byte, largest contentful paint, first input delay, cumulative layout shift. Affects both SEO rankings and visitor patience.",weight:24,term:"nw",effort:"quick",teamContext:"solo",comment:""},{idx:"08",name:"Mobile responsiveness",description:"Works across phone sizes. Touch targets, column collapse, font scaling, no horizontal scroll. Essential since most traffic is phone.",weight:24,term:"nw",effort:"quick",teamContext:"solo",comment:""}]}
1,{name:"Accessibility",weight:24,signals:[{idx:"09",name:"Color contrast",description:"Text and UI contrast meets WCAG AA (4.5:1 normal, 3:1 large). Insufficient contrast blocks low-vision users and hurts brand trust.",weight:24,term:"nw",effort:"quick",teamContext:"solo",comment:""},{idx:"10",name:"Tap targets and keyboard nav",description:"Minimum 44x44 px touch targets, logical tab order, visible focus ring. Missing these blocks motor-impaired users entirely.",weight:24,term:"nw",effort:"quick",teamContext:"solo",comment:""}]},{name:"Content",weight:24,signals:[{idx:"11",name:"Readability",description:"Line length, font size, line height, paragraph spacing. Text blocks are comfortably readable at a glance without zooming or straining.",weight:24,term:"gtg",effort:"quick",teamContext:"solo",comment:""}]}].flatMap(e=>e.signals)),c=Re("mid-size");const p=pe(()=>{const e={nw:0,bs:0,gtg:0};for(const t of g)e[t.term]=(e[t.term]||0)+1;return e}),Z=pe(()=>{const e={quick:5,medium:3,hard:1};let t=0,r=0;for(const i of g)i.term!=="gx"&&(t+=i.weight*(e[i.effort]??3),r+=i.weight);return r>0?Math.round(t/r*20):0});function q(e,t){e.term=t}function he(e){if(!("webkitSpeechRecognition"in window)&&!("SpeechRecognition"in window)){alert("Speech recognition is not supported in this browser.");return}const t=window.SpeechRecognition||window.webkitSpeechRecognition,r=new t;r.continuous=!1,r.interimResults=!1,r.lang="en-US",r.onresult=i=>{i.results[0][0].transcript,e.value=e.value?e.value+" "+i.results[0][0].transcript:i.results[0][0].transcript,e.dispatchEvent(new Event("input"))},r.start()}function ge(){const e=[];e.push("# Blind Spot Audit: "+new Date().toLocaleDateString()),e.push(""),e.push("**Overall score:** "+o(Z)+"/100"),e.push("**Terms:** "+o(p).nw+" needs work, "+o(p).bs+" blind spot, "+o(p).gtg+" good to go"),e.push(""),e.push("## Thoughtful questions"),e.push("1. Do the founders feel valued because they are the expert behind the product?"),e.push("2. Is the product's core purpose clearly articulated for the target user?"),e.push("3. What is the single biggest barrier to a first-time visitor trying the product?"),e.push(""),e.push("## Signal findings");for(const l of g)e.push(""),e.push("### "+l.idx+". "+l.name),e.push("What it is and why it matters: "+l.description),e.push("- Term: "+({nw:"Needs work",bs:"Blind spot",gtg:"Good to go"}[l.term]||l.term)),e.push("- Effort to fix: "+({quick:"Quick win",medium:"Small team can do quickly",hard:"Requires significant work"}[l.effort]||l.effort)),e.push("- Team context: "+l.teamContext),e.push("- Notes: "+(l.comment||"none yet"));const t=new Blob([e.join(` 2`)],{type:"text/markdown;charset=utf-8"}),r=URL.createObjectURL(t),i=document.createElement("a");i.href=r,i.download="blind-spot-audit-"+new Date().toISOString().split("T")[0]+".md",i.click(),URL.revokeObjectURL(r)}var R=Be();De("1kxn4hg",e=>{var t=Ue();qe(()=>{Ae.title="Blind Spot Audit Scoring Form | Concept to Cloud"}),J(e,t)});var A=a(n(R),2),E=n(A),ee=a(n(E)),fe=n(ee);s(ee),s(E);var te=a(E,2),M=n(te),be=n(M);s(M);var z=a(M,2),xe=n(z);s(z);var oe=a(z,2),_e=n(oe);s(oe),s(te),s(A);var D=a(A,2),L=n(D),f=n(L);$(f),f.value=f.__value="solo",S(),s(L);var U=a(L,2),b=n(U);$(b),b.value=b.__value="small-team",S(),s(U);var W=a(U,2),x=n(W);$(x),x.value=x.__value="mid-size",S(),s(W);var ae=a(W,2),_=n(ae);$(_),_.value=_.__value="enterprise",S(),s(ae),s(D);var B=a(D,2);ze(B,21,()=>g,e=>e.idx,(e,t,r)=>{var i=We(),l=n(i),we=n(l);s(l);var I=a(l,2),ye=a(n(I));s(I);var k=a(I,2),O=n(k),G=a(O,2),se=a(G,2);s(k);var N=a(k,2),ne=n(N),w=a(ne,2),j=n(w);j.value=j.__value="quick";var Q=a(j);Q.value=Q.__value="medium";var ie=a(Q);ie.value=ie.__value="hard",s(w),s(N);var F=a(N,2),H=n(F);Ee(H);var Se=a(H,2);s(F);var re=a(F,2),le=n(re),y=a(le,2),P=n(y);P.value=P.__value="solo";var V=a(P);V.value=V.__value="small-team";var X=a(V);X.value=X.__value="mid-size";var ce=a(X);ce.value=ce.__value="enterprise",s(y),s(re),s(i),de(()=>{u(we,`${o(t).idx??""}. ${o(t).name??""}`),u(ye,` ${o(t).description??""}`),m(k,"aria-label",`Term for ${o(t).name??""}`),K(O,1,`chip nw ${o(t).term==="nw"?"active":""}`,"svelte-1kxn4hg"),K(G,1,`chip bs ${o(t).term==="bs"?"active":""}`,"svelte-1kxn4hg"),K(se,1,`chip gtg ${o(t).term==="gtg"?"active":""}`,"svelte-1kxn4hg"),m(ne,"for",`effort-${o(t).idx??""}`),m(w,"id",`effort-${o(t).idx??""}`),m(le,"for",`context-${o(t).idx??""}`),m(y,"id",`context-${o(t).idx??""}`)}),v("click",O,()=>q(o(t),"nw")),v("click",G,()=>
2q(o(t),"bs")),v("click",se,()=>q(o(t),"gtg")),ue(w,()=>o(t).effort,d=>o(t).effort=d),Le(H,()=>o(t).comment,d=>o(t).comment=d),v("click",Se,d=>he(d.currentTarget.previousElementSibling)),ue(y,()=>o(t).teamContext,d=>o(t).teamContext=d),J(e,i)}),s(B);var ke=a(B,2);s(R),de(()=>{u(fe,`${o(Z)??""}/100`),u(be,`${o(p).nw??""} needs work`),u(xe,`${o(p).bs??""} blind spot`),u(_e,`${o(p).gtg??""} good to go`)}),T(h,[],f,()=>o(c),e=>C(c,e)),T(h,[],b,()=>o(c),e=>C(c,e)),T(h,[],x,()=>o(c),e=>C(c,e)),T(h,[],_,()=>o(c),e=>C(c,e)),v("click",ke,ge),J(ve,R),Te()}Me(["click"]);export{Ve as component};
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.