1import{r as x,j as e,aT as M,aL as D,L as q,l as Y,aU as Z,aV as ee,s as te,a5 as $,n as j,aW as F,aw as re,a7 as oe,c as ne,aF as se,aK as ae,J as ie,aX as le,R as de,aM as T,aN as L,K as ce,e as me,f as fe,aO as K,a as I,aS as xe}from"./index-C7BCAWyf.js";const v=t=>{const r={};for(const o of t)try{r[o]=window.localStorage.getItem(o)}catch{r[o]=null}return r},_=t=>{for(const[r,o]of Object.entries(t))try{o===null?window.localStorage.removeItem(r):window.localStorage.setItem(r,o)}catch{}},u=t=>[`hl.reader.fontSize.${t}`,`hl.reader.lineHeight.${t}`,`hl.reader.contrast.${t}`,`hl.reduceMotion.${t}`,`hl.reader.seeded.${t}`],g=t=>window.localStorage.getItem(`hl.reader.fontSize.${t}`)??window.localStorage.getItem("hl.reader.fontSize")??"md",S=t=>window.localStorage.getItem(`hl.reader.lineHeight.${t}`)??window.localStorage.getItem("hl.reader.lineHeight")??"normal",E=t=>window.localStorage.getItem(`hl.reader.contrast.${t}`)??window.localStorage.getItem("hl.reader.contrast")??"normal",N=t=>{const r=window.localStorage.getItem(`hl.reduceMotion.${t}`)??window.localStorage.getItem("hl.reduceMotion");return r==="1"?"on":r==="0"?"off":"auto"},he=()=>{const t="__diag__src__alpha",r="__diag__src__beta",o=[...u(t),...u(r)],s=v(o);try{for(const c of o)window.localStorage.removeItem(c);window.localStorage.setItem(`hl.reader.fontSize.${t}`,"lg"),window.localStorage.setItem(`hl.reader.lineHeight.${t}`,"relaxed"),window.localStorage.setItem(`hl.reduceMotion.${t}`,"1"),window.localStorage.setItem(`hl.reader.contrast.${t}`,"high"),window.localStorage.setItem(`hl.reader.fontSize.${r}`,"sm"),window.localStorage.setItem(`hl.reduceMotion.${r}`,"0");const n=g(r),i=N(r),m=g(t),d=S(t),h=N(t),p=E(t);if(n!=="sm")throw new Error(`B fontSize: ${n}`);if(i!=="off")throw new Error(`B motion: ${i}`);if(m!=="lg")throw new Error(`A fontSize after switch: ${m}`);if(d!=="relaxed")throw new Error(`A lineHeight after switch: ${d}`);if(h!=="on")throw new Error(`A motion after switch: ${h}`);if(p!=="high")throw new Error(`A contrast after switch: ${p}`);return{name:"Switch preserves per-slug prefs",status:"pass"}}catch(n){return{name:"Switch preserves per-slug prefs",status:"fail",detail:n instanceof Error?n.message:String(n)}}finally{_(s)}},A=t=>{const r=window.localStorage.getItem(`hl.reduceMotion.${t}`),o=r==="1"?"on":r==="0"?"off":void 0,s=window.localStorage.getItem(`hl.reader.contrast.${t}`)==="high",n={v:1,fontSize:g(t),lineHeight:S(t)};return o&&(n.motion=o),s&&(n.contrast=!0),{parent_slug:t,readerPrefs:n}},pe=()=>{const t="__diag__src__forksrc",r=v(u(t));try{for(const n of u(t))window.localStorage.removeItem(n);window.localStorage.setItem(`hl.reader.fontSize.${t}`,"xl"),window.localStorage.setItem(`hl.reader.lineHeight.${t}`,"loose"),window.localStorage.setItem(`hl.reduceMotion.${t}`,"1"),window.localStorage.setItem(`hl.reader.contrast.${t}`,"high");const o=A(t);if(o.parent_slug,o.readerPrefs.v!==1)throw new Error("readerPrefs.v != 1");if(o.readerPrefs.fontSize!=="xl")throw new Error("fontSize not embedded");if(o.readerPrefs.lineHeight!=="loose")throw new Error("lineHeight not embedded");if(o.readerPrefs.motion!=="on")throw new Error("motion not embedded");if(o.readerPrefs.contrast!==!0)throw new Error("contrast not embedded");if(window.localStorage.removeItem(`hl.reduceMotion.${t}`),"motion"in A(t).readerPrefs)throw new Error("auto motion leaked into snapshot");return{name:"Fork embeds readerPrefs in snapshot",status:"pass"}}catch(o){return{name:"Fork embeds readerPrefs in snapshot",status:"fail",detail:o instanceof Error?o.message:String(o)}}finally{_(r)}},y=(t,r)=>{const o=`hl.reader.seeded.${t}`;if(window.localStorage.getItem(o)==="1")return;const s=r==null?void 0:r.readerPrefs,n=typeof(r==null?void 0:r.parent_slug)=="string"?r.parent_slug:null;if(s&&s.v===1)["sm","md","lg","xl"].includes(s.fontSize)&&window.localStorage.setItem(`hl.reader.fontSize.${t}`,s.fontSize),["tight","normal","relaxed","loose"].includes(s.lineHeight)&&window.localStorage.setItem(`hl.reader.lineHeight.${t}`,s.lineHeight),s.motion==="on"?window.localStorage.setItem(`hl.reduceMotion.${t}`,"1"):s.motion==="off"&&window.localStorage.setItem(`hl.reduceMotion.${t}`,"0"),s.contrast===!0&&window.localStorage.setItem(`hl.reader.contrast.${t}`,"high"),window.localStorage.setItem(o,"1");else if(n){for(const m of["fontSize","lineHeight","contrast"]){const d=window.localStorage.getItem(`hl.reader.${m}.${n}`);d!==null&&window.localStorage.setItem(`hl.reader.${m}.${t}`,d)}const i=window.localStorage.getItem(`hl.reduceMotion.${n}`);(i==="0"||i==="1")&&window.localStorage.setItem(`hl.reduceMotion.${t}`,i),window.localStorage.setItem(o,"1")}},ue=()=>{const t="__diag__src__seedparent",r="__diag__fork__embed",o="__diag__fork__parentonly",s="__diag__fork__neither",n="__diag__fork__sentinel",i=[...u(t),...u(r),...u(o),...u(s),...u(n)],m=v(i);try{for(const d of i)window.localStorage.removeItem(d);if(window.localStorage.setItem(`hl.reader.fontSize.${t}`,"sm"),window.localStorage.setItem(`hl.reader.lineHeight.${t}`,"tight"),window.localStorage.setItem(`hl.reduceMotion.${t}`,"1"),y(r,{parent_slug:t,readerPrefs:{v:1,fontSize:"lg",lineHeight:"loose",motion:"off",contrast:!0}}),g(r)!=="lg")throw new Error("embedded fontSize ignored");if(S(r)!=="loose")throw new Error("embedded lineHeight ignored");if(N(r)!=="off")throw new Error("embedded motion ignored");if(E(r)!=="high")throw new Error("embedded contrast ignored");if(y(o,{parent_slug:t}),g(o)!=="sm")throw new Error("parent fontSize not copied");if(S(o)!=="tight")throw new Error("parent lineHeight not copied");if(N(o)!=="on")throw new Error("parent motion not copied");if(y(s,{}),window.localStorage.getItem(`hl.reader.fontSize.${s}
1`)!==null)throw new Error("seeded with no source data");if(y(n,{parent_slug:t,readerPrefs:{v:1,fontSize:"xl",lineHeight:"normal"}}),y(n,{parent_slug:t,readerPrefs:{v:1,fontSize:"sm",lineHeight:"tight"}}),g(n)!=="xl")throw new Error("sentinel didn't block re-seed");return{name:"SharedGuide seeds embedded â parent_slug â none",status:"pass"}}catch(d){return{name:"SharedGuide seeds embedded â parent_slug â none",status:"fail",detail:d instanceof Error?d.message:String(d)}}finally{_(m)}},ge=()=>{const t="__diag__src__reset",r=["hl.reader.fontSize","hl.reader.lineHeight","hl.reduceMotion","hl.reader.contrast"],o=v([...u(t),...r]);try{window.localStorage.setItem(`hl.reader.fontSize.${t}`,"xl"),window.localStorage.setItem(`hl.reader.lineHeight.${t}`,"loose"),window.localStorage.setItem(`hl.reduceMotion.${t}`,"1"),window.localStorage.setItem(`hl.reader.contrast.${t}`,"high"),window.localStorage.setItem("hl.reader.fontSize","lg"),window.localStorage.setItem("hl.reader.lineHeight","relaxed"),window.localStorage.setItem("hl.reduceMotion","1"),window.localStorage.setItem("hl.reader.contrast","high");for(const s of[`hl.reader.fontSize.${t}`,`hl.reader.lineHeight.${t}`,`hl.reduceMotion.${t}`,`hl.reader.contrast.${t}`,...r])window.localStorage.removeItem(s);for(const s of[`hl.reader.fontSize.${t}`,...r])if(window.localStorage.getItem(s)!==null)throw new Error(`${s} still set after reset`);if(g(t)!=="md")throw new Error("fontSize fallback != md");if(S(t)!=="normal")throw new Error("lineHeight fallback != normal");if(N(t)!=="auto")throw new Error("motion not auto after reset");if(E(t)!=="normal")throw new Error("contrast not normal after reset");return{name:"Reset to system defaults clears all keys",status:"pass"}}catch(s){return{name:"Reset to system defaults clears all keys",status:"fail",detail:s instanceof Error?s.message:String(s)}}finally{_(o)}},G=[he,pe,ue,ge],we=({surface:t})=>{const[r,o]=x.useState(!1),[s,n]=x.useState(!1),[i,m]=x.useState(null),d=()=>{n(!0),requestAnimationFrame(()=>{const c=G.map(b=>{try{return b()}catch(w){return{name:b.name,status:"fail",detail:w instanceof Error?w.message:String(w)}}});m(c),n(!1)})},h=(i==null?void 0:i.filter(c=>c.status==="pass").length)??0,p=(i==null?void 0:i.length)??G.length;return e.jsxs("div",{className:"my-3 rounded-md border border-border bg-card/50 print:hidden",children:[e.jsxs("button",{type:"button",onClick:()=>o(c=>!c),className:"w-full flex items-center justify-between gap-2 px-3 py-2 text-left","aria-expanded":r,children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-[11px] font-mono uppercase tracking-wider text-muted-foreground",children:[e.jsx(M,{className:"w-3.5 h-3.5"}),"Reading prefs · self-test",e.jsxs("span",{className:"text-muted-foreground/60 normal-case tracking-normal",children:["(",t,")"]})]}),e.jsxs("span",{className:"inline-flex items-center gap-2",children:[i&&e.jsxs("span",{className:`text-[10px] font-mono ${h===p?"text-primary":"text-destructive"}`,children:[h,"/",p," pass"]}),e.jsx(D,{className:`w-3.5 h-3.5 text-muted-foreground transition-transform ${r?"rotate-180":""}`})]})]}),r&&e.jsxs("div",{className:"px-3 pb-3 space-y-2",children:[e.jsxs("p",{className:"text-[11px] text-muted-foreground leading-relaxed",children:["Runs four checks against real ",e.jsx("code",{className:"font-mono",children:"localStorage"})," using a disposable ",e.jsx("code",{className:"font-mono",children:"__diag__"})," slug namespace. Your real playbook prefs are snapshotted & restored â nothing you've set is touched."]}),e.jsxs("button",{type:"button",onClick:d,disabled:s,className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-primary text-primary-foreground text-[11px] font-mono uppercase tracking-wider hover:bg-primary/90 disabled:opacity-50",children:[s?e.jsx(q,{className:"w-3 h-3 animate-spin"}):e.jsx(M,{className:"w-3 h-3"}),s?"Running":i?"Re-run checks":"Run checks"]}),i&&e.jsx("ul",{className:"mt-2 space-y-1",children:i.map(c=>e.jsxs("li",{className:"flex items-start gap-2 text-[11px] font-mono",children:[c.status==="pass"?e.jsx(Y,{className:"w-3.5 h-3.5 text-primary mt-0.5 shrink-0"}):e.jsx(Z,{className:"w-3.5 h-3.5 text-destructive mt-0.5 shrink-0"}),e.jsxs("span",{className:"flex-1",children:[e.jsx("span",{className:c.status==="pass"?"text-foreground":"text-destructive",children:c.name}),c.detail&&e.jsx("span",{className:"block text-muted-foreground normal-case",children:c.detail})]})]},c.name))})]})]})};function O(t,r,o){if(!t)return"none";const s=`hl.reader.seeded.${t}`;if(o.getItem(s)==="1")return"already_seeded";const n=(r==null?void 0:r.readerPrefs)??null,i=typeof(r==null?void 0:r.parent_slug)=="string"&&r.parent_slug?r.parent_slug:null;if(n&&n.v===1)return(n.fontSize==="sm"||n.fontSize==="md"||n.fontSize==="lg"||n.fontSize==="xl")&&o.setItem(`hl.reader.fontSize.${t}`,n.fontSize),(n.lineHeight==="tight"||n.lineHeight==="normal"||n.lineHeight==="relaxed"||n.lineHeight==="loose")&&o.setItem(`hl.reader.lineHeight.${t}`,n.lineHeight),n.motion==="on"?o.setItem(`hl.reduceMotion.${t}`,"1"):n.motion==="off"&&o.setItem(`hl.reduceMotion.${t}`,"0"),n.contrast===!0&&o.setItem(`hl.reader.contrast.${t}`,"high"),o.setItem(s,"1"),"embedded";if(i){const m=h=>{const p=o.getItem(`hl.reader.${h}.${i}`);p!==null&&o.setItem(`hl.reader.${h}.${t}`,p)};m("fontSize"),m("lineHeight"),m("contrast");const d=o.getItem(`hl.reduceMotion.${i}`);return(d==="0"||d==="1")&&o.setItem(`hl.reduceMotion.${t}`,d),o.setItem(s,"1"),"parent_slug"}return"none"}function be(t,r){t&&(r.removeItem(`hl.reader.fontSize.${t}`),r.removeItem(`hl.reader.lineHeight.${t}`),r.removeItem(`hl.reader.contrast.${t}`),r.removeItem(`hl.reduceMotion.${t}`),r.removeItem(`hl.reader.seeded.${t}`))}const B={Beginner:"text-primary bg-primary/10 border-primary/20",Intermediate:"text-amber-400 bg-amber-400/10 border-amber-400/20",Advanced:"text-red-400 bg-red-400/10 border-red-400/20"},ye=()=>{var P;const{slug:t}=ee(),[r,o]=x.useState(null),[s,n]=x.useState(""),[i,m]=x.useState(!0),[d,h]=x.useState(!1),[p,c]=x.useState(0),[b,w]=x.useState(null),[U,Q]=x.useState(!1);x.useEffect(()=>{t&&te.from("guide_history").select("query, guide_data").eq("slug",t).eq("is_public",!0).single().then(({data:a,error:l})=>
1{if(l||!a)h(!0);else{o(a.guide_data),n(a.query);const f=a.guide_data;Q(!!(f!=null&&f.readerPrefs&&f.readerPrefs.v===1)||typeof(f==null?void 0:f.parent_slug)=="string");try{O(t,a.guide_data,window.localStorage)}catch{}}m(!1)})},[t]);const V=(a,l)=>{navigator.clipboard.writeText(a),w(l),I.success("Prompt copied!"),setTimeout(()=>w(null),2e3)},W=()=>{if(t)try{be(t,window.localStorage),O(t,r,window.localStorage),I.success("Reading prefs reset for this fork")}catch{I.error("Couldn't reset reading prefs (storage unavailable)")}},H=a=>xe.find(l=>l.name.toLowerCase()===a.toLowerCase());if(i)return e.jsxs("div",{className:"min-h-screen bg-background flex flex-col",children:[e.jsx($,{}),e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(q,{className:"w-8 h-8 animate-spin text-primary"})})]});if(d||!r)return e.jsxs("div",{className:"min-h-screen bg-background flex flex-col",children:[e.jsx($,{}),e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("h1",{className:"text-2xl font-mono font-bold text-foreground mb-2",children:"Guide not found"}),e.jsx("p",{className:"text-sm text-muted-foreground font-mono mb-4",children:"This guide doesn't exist or isn't public."}),e.jsxs(j,{to:"/learn",className:"text-sm font-mono text-primary hover:underline flex items-center gap-1 justify-center",children:[e.jsx(F,{className:"w-4 h-4"})," Generate your own guide"]})]})})]});const X=`https://hackerlabs.ai/learn/${t}`,z="https://hackerlabs.ai/og-guide.png";return e.jsxs("div",{className:"min-h-screen bg-background flex flex-col",children:[e.jsxs(re,{children:[e.jsxs("title",{children:[r.title," | HackerLabs.ai Guide"]}),e.jsx("meta",{name:"description",content:r.description}),e.jsx("meta",{property:"og:title",content:`${r.title} | HackerLabs.ai Guide`}),e.jsx("meta",{property:"og:description",content:r.description}),e.jsx("meta",{property:"og:type",content:"article"}),e.jsx("meta",{property:"og:url",content:X}),e.jsx("meta",{property:"og:image",content:z}),e.jsx("meta",{property:"og:site_name",content:"HackerLabs.ai"}),e.jsx("meta",{property:"article:published_time",content:new Date().toISOString()}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:`${r.title} | HackerLabs.ai Guide`}),e.jsx("meta",{name:"twitter:description",content:r.description}),e.jsx("meta",{name:"twitter:image",content:z})]}),e.jsx($,{}),e.jsx(oe,{items:[{label:"Learn",to:"/learn"},{label:s||"Shared Guide"}]}),e.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e.jsxs("div",{className:"container mx-auto px-4 max-w-4xl pt-6",children:[e.jsxs(j,{to:"/learn",className:"text-xs font-mono text-muted-foreground hover:text-foreground flex items-center gap-1 mb-4",children:[e.jsx(F,{className:"w-3 h-3"})," Generate your own guide"]}),e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-primary/10 border border-primary/20 mb-4",children:[e.jsx(ne,{className:"w-3.5 h-3.5 text-primary"}),e.jsx("span",{className:"text-xs font-mono text-primary",children:"Shared Guide"})]}),e.jsx("p",{className:"text-xs font-mono text-muted-foreground mb-2",children:"Original query:"}),e.jsxs("p",{className:"text-sm font-mono text-foreground mb-6 italic",children:['"',s,'"']}),e.jsx(we,{surface:"/learn/:slug"})]}),e.jsx(se.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"pb-12",children:e.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[e.jsxs("div",{className:"rounded-2xl border border-border bg-card p-6 mb-8",children:[e.jsx("h1",{className:"text-2xl font-mono font-extrabold text-foreground mb-2",children:r.title}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:r.description}),e.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[r.difficulty&&e.jsxs("span",{className:`text-[11px] font-mono px-3 py-1 rounded-full border ${B[r.difficulty]||B.Beginner}`,children:[e.jsx(ae,{className:"w-3 h-3 inline mr-1"}),r.difficulty]}),r.estimatedTime&&e.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground flex items-center gap-1",children:[e.jsx(ie,{className:"w-3 h-3"})," ",r.estimatedTime]}),e.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground",children:[((P=r.steps)==null?void 0:P.length)||0," steps"]}),e.jsx(le,{className:"ml-auto",entry:{id:t??"shared-guide",kind:"guide",source_id:t??"shared-guide",squad_id:null,publisher_user_id:"",title:r.title,summary:r.description,tags:[],payload:{guide_data:r},visibility:"public",is_featured:!1,fork_count:0,view_count:0,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}}),U&&e.jsxs("button",{type:"button",onClick:W,title:"Clear this fork's reading prefs and re-apply the inherited defaults from the source playbook","aria-label":"Reset reading prefs for this fork",className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-md border border-border bg-secondary/40 text-[11px] font-mono text-muted-foreground hover:text-foreground hover:border-primary/40 transition-colors",children:[e.jsx(de,{className:"w-3 h-3"}),e.jsx("span",{children:"Reset fork reading prefs"})]})]})]}),e.jsx("div",{className:"space-y-4 mb-8",children:(r.steps||[]).map((a,l)=>{const f=p===l,C=H(a.toolName);return e.jsxs("div",{className:`rounded-xl border bg-card overflow-hidden transition-colors ${f?"border-primary/40":"border-border"}`,children:[e.jsxs("button",{onClick:()=>c(f?null:l),className:"w-full flex items-center gap-4 p-5 text-left",children:[e.jsx("div",{className:`w-9 h-9 rounded-xl flex items-center justify-center shrink-0 font-mono text-sm font-bold ${f?"bg-primary text-primary-foreground":"bg-secondary text-muted-foreground"}`,children:a.stepNumber}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-mono font-bold text-sm text-foreground",children:a.title}),e.jsxs("p",{className:"text-[11px] text-muted-foreground font-mono mt-0.5",children:["Using ",e.jsx("span",{className:"text-primary",children:a.toolName})]})]}),f?e.jsx(D,{className:"w-4 h-4 text-muted-foreground shrink-0"}):e.jsx(T,{className:"w-4 h-4 text-muted-foreground shrink-0"})]}),f&&e.jsxs("div",{className:"px-5 pb-5 space-y-4",children:[e.jsx("p",{className:"text-sm text-secondary-foreground leading-relaxed",children:a.description}),e.jsx("div",{className:"rounded-lg bg-secondary/50 border border-border p-4",children:e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-primary/10 flex items-center justify-center text-sm font-mono font-bold text-primary",children:a.toolName.charAt(0)}),e.jsxs("div",{children:[e.jsx("p",{className:"font-mono font-bold text-sm text-foreground",children:a.toolName}),e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Recommended tool"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[C&&e.jsx(j,{to:`/tool/${L(C.name)}`,className:"text-[10px] font-mono px-2 py-1 rounded bg-primary/10 text-primary hover:bg-primary/20 transition-colors",children:"View in Directory"}),e.jsxs("a",{href:a.toolUrl,target:"_blank",rel:"noopener noreferrer",className:"text-[10px] font-mono px-2 py-1 rounded bg-secondary text-foreground hover:bg-secondary/80 transition-colors flex items-center gap-1",children:["Open ",e.jsx(ce,{className:"w-3 h-3"})]})]})]})}),a.examplePrompt&&e.jsxs("div",{className:"rounded-lg bg-background border border-border p-4",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("span",{className:"text-[10px] font-mono text-primary uppercase tracking-wider",children:"Example Prompt"}),e.jsxs("button",{onClick:()=>V(a.examplePrompt,l),className:"text-[10px] font-mono flex items-center gap-1 text-muted-foreground hover:text-foreground transition-colors",children:[b===l?e.jsx(me,{className:"w-3 h-3"}):e.jsx(fe,{className:"w-3 h-3"}),b===l?"Copied!":"Copy"]})]}),e.jsx("p",{className:"text-sm font-mono text-foreground leading-relaxed whitespace-pre-wrap",children:a.examplePrompt})]}),a.proTip&&e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg bg-amber-400/5 border border-amber-400/20",children:[e.jsx(K,{className:"w-4 h-4 text-amber-400 shrink-0 mt-0.5"}),e.jsx("p",{className:"text-xs text-secondary-foreground",children:a.proTip})]}),a.alternatives&&a.alternatives.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-[10px] font-mono text-muted-foreground mb-2 uppercase tracking-wider",children:"Alternatives"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.alternatives.map((k,J)=>{const R=H(k.name);return e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-secondary/50 border border-border",children:[e.jsx("span",{className:"text-xs font-mono text-foreground",children:k.name}),e.jsxs("span",{className:"text-[10px] text-muted-foreground",children:["â ",k.reason]}),R&&e.jsx(j,{to:`/tool/${L(R.name)}`,className:"text-primary text-[10px] hover:underline",children:"â"})]},J)})})]}),e.jsxs("div",{className:"flex items-center justify-between pt-2 border-t border-border",children:[l>0?e.jsx("button",{onClick:()=>c(l-1),className:"text-xs font-mono text-muted-foreground hover:text-foreground transition-colors",children:"â Previous step"}):e.jsx("span",{}),l<r.steps.length-1&&e.jsxs("button",{onClick:()=>c(l+1),className:"text-xs font-mono text-primary hover:text-primary/80 transition-colors flex items-center gap-1",children:["Next step ",e.jsx(T,{className:"w-3 h-3"})]})]})]})]},l)})}),r.bonusTips&&r.bonusTips.length>0&&e.jsxs("div",{className:"rounded-xl border border-border bg-card p-5 mb-6",children:[e.jsxs("h3",{className:"font-mono font-bold text-sm text-foreground mb-3 flex items-center gap-2",children:[e.jsx(K,{className:"w-4 h-4 text-amber-400"})," Bonus Tips"]}),e.jsx("ul",{className:"space-y-2",children:r.bonusTips.map((a,l)=>e.jsxs("li",{className:"text-xs text-secondary-foreground flex items-start gap-2",children:[e.jsx("span",{className:"text-primary shrink-0 mt-0.5",children:"â¢"})," ",a]},l))})]}),r.relatedQueries&&r.relatedQueries.length>0&&e.jsxs("div",{className:"rounded-xl border border-border bg-card p-5",children:[e.jsx("h3",{className:"font-mono font-bold text-sm text-foreground mb-3",children:"ð What to learn next"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:r.relatedQueries.map((a,l)=>e.jsx(j,{to:`/learn?q=${encodeURIComponent(a)}`,className:"text-xs font-mono px-3 py-2 rounded-lg border border-border bg-secondary/50 text-muted-foreground hover:text-foreground hover:border-primary/30 transition-colors",children:a},l))})]})]})}),e.jsx("footer",{className:"border-t border-border py-8",children:e.jsx("div",{className:"container mx-auto px-4 text-center",children:e.jsxs("p",{className:"text-sm font-mono text-muted-foreground",children:["© 2026 ",e.jsx("span",{className:"text-foreground",children:"HackerLabs"}),e.jsx("span",{className:"text-primary",children:".ai"})," â Learn anything with AI"]})})})]})]})};export{ye as default}; 2//# sourceMappingURL=SharedGuide-C9eaRGM7.js.map
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.