1import{r as b,H as Z,X as $,c as o,m as p,n as i,o as l,d as e,x as s,b as _,v as I,V as m,F as f,i as E,y as w,J as O,ad as Q,k as oe,W as re,I as ce,cQ as ne,ay as ie,az as de,f as N,P as ue,ac as X,e as q,T as J,aA as ve,Q as me,R as _e,cR as he}from"./main-CKQbcAOR.js";import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";const pe={key:0,class:"plk"},ke={class:"plk-head"},ye={class:"plk-overline"},fe={key:0,class:"plk-allpass"},be={class:"plk-rail"},ge=["title"],we={key:0,class:"plk-gate"},$e={class:"plk-gate-top"},Ce={class:"plk-gate-kicker"},Le={class:"plk-gate-name"},Me={class:"plk-gate-what"},Te={key:0,class:"plk-meter"},xe={class:"plk-meter-track"},Se={class:"plk-meter-nums tnum"},Ee={key:1,class:"plk-fix"},Oe={class:"plk-btns"},Ie=["disabled"],Re=["disabled"],ze={key:2,class:"plk-whytext"},Ye={key:1,class:"plk-passed"},Pe={__name:"ProfitLockCard",setup(U){const Y=b(!0),A=b(1),D=b([]),B=b(null),R=b(!1),k=b(!1),y=b(!1),L=b(""),M=b(!1);async function T(){Y.value=!0;try{const c=await Q("/profit-locks");A.value=(c==null?void 0:c.level)??1,D.value=(c==null?void 0:c.locks)??[],B.value=(c==null?void 0:c.active_gate)??null,R.value=!!(c!=null&&c.all_passed)}catch{}Y.value=!1}Z(T);const u=$(()=>B.value),g=$(()=>{var P;const c=(P=u.value)==null?void 0:P.progress_pct;return c==null?null:Math.min(100,Math.round(c))});function H(c){return c.status==="passed"?"done":u.value&&c.key===u.value.key?"active":"todo"}async function j(){if(!(!u.value||k.value)){k.value=!0,L.value="";try{const c=await Q(`/profit-locks/${u.value.key}/verify`,{method:"POST"});(c==null?void 0:c.status)==="passed"?(y.value=!0,setTimeout(T,2200)):(B.value={...u.value,...c},L.value=u.value.fix||"Not there yet â keep working the plan and check again.")}catch{}k.value=!1}}async function G(){if(!(!u.value||k.value)){k.value=!0;try{await Q(`/profit-locks/${u.value.key}/attest`,{method:"POST",body:{}}),y.value=!0,setTimeout(T,2200)}catch{}k.value=!1}}const F=c=>c==null?"â":Number(c).toLocaleString("en-US");return(c,P)=>{var W,V;return!i(Y)&&i(D).length?(l(),o("div",pe,[e("div",ke,[e("span",ye,"LEVEL "+s(i(A))+" PROFIT LOCKS",1),i(R)?(l(),o("span",fe,[_(m,{icon:"tabler-circle-check-filled",size:"14"}),I(" All locks passed")])):p("",!0)]),e("div",be,[(l(!0),o(f,null,E(i(D),x=>(l(),o("span",{key:x.key,class:w(["plk-chip",`plk-chip--${H(x)}`]),title:x.what},[_(m,{icon:H(x)==="done"?"tabler-circle-check-filled":"tabler-lock",size:"13"},null,8,["icon"]),I(" "+s(x.name),1)],10,ge))),128))]),i(u)&&!i(y)?(l(),o("div",we,[e("div",$e,[e("span",Ce,"PRO
1VE IT TO PASS · Week "+s(i(u).week),1),e("span",Le,s(i(u).name),1),e("p",Me,s(i(u).what),1)]),i(g)!==null?(l(),o("div",Te,[e("div",xe,[e("div",{class:"plk-meter-fill",style:O({width:`${i(g)}%`})},null,4)]),e("span",Se,s(F(i(u).current_value))+" / "+s(F(i(u).target_value))+" "+s(((W=i(u).metric)==null?void 0:W.unit)!=="bool"?((V=i(u).metric)==null?void 0:V.unit)??"":""),1)])):p("",!0),i(L)?(l(),o("p",Ee,s(i(L)),1)):p("",!0),e("div",Oe,[i(u).source==="attested"?(l(),o("button",{key:0,type:"button",class:"plk-btn-ink",disabled:i(k),onClick:G},s(i(u).attest_prompt?"Yes â mark it passed":"Mark it passed"),9,Ie)):(l(),o("button",{key:1,type:"button",class:"plk-btn-ink",disabled:i(k),onClick:j},s(i(k)?"Checkingâ¦":"Check my numbers"),9,Re)),e("button",{type:"button",class:"plk-why",onClick:P[0]||(P[0]=x=>M.value=!i(M))}," Why this gate? ")]),i(M)?(l(),o("p",ze,s(i(u).why),1)):p("",!0)])):i(y)?(l(),o("div",Ye,[_(m,{icon:"tabler-circle-check-filled",size:"18"}),I(" Lock passed â the next week just opened. ")])):p("",!0)])):p("",!0)}}},Ae=ee(Pe,[["__scopeId","data-v-addf5cba"]]),h=U=>(me("data-v-2116e2f0"),U=U(),_e(),U),Be={class:"rm-page"},Ve={class:"rm-header"},Ne={class:"rm-shell"},Ue={class:"rm-header-row"},De={class:"rm-header-brand"},Fe={class:"rm-header-icon"},He=h(()=>e("div",null,[e("div",{class:"rm-header-title"}," The Scaling Roadmap â $0 â $5M+ "),e("div",{class:"rm-header-sub"}," 18 levels · 3 years · one constraint at a time ")],-1)),je={class:"rm-header-actions"},We={class:"rm-gauge-wrap"},Ke={class:"rm-gauge"},Ge=h(()=>e("div",{class:"rm-gauge-track"},null,-1)),Qe={key:0,class:"rm-loading"},Xe={class:"rm-ladder"},qe={class:"rm-path"},Je={class:"rm-year-top"},Ze={class:"rm-year-title"},es={class:"rm-year-range"},ss={class:"rm-year-desc"},ts={class:"rm-year-span"},ls={class:"rm-spine-cell"},as={class:"rm-medal-wrap"},os={key:0,class:"rm-pulse"},rs=["onClick"],cs={class:"rm-card-top"},ns={class:"rm-card-kicker"},is=h(()=>e("span",{class:"rm-cleared-chip"},"Cleared â",-1)),ds={class:"rm-card-band"},us={class:"rm-done-metric"},vs=["onClick"],ms={class:"rm-card-top"},_s={class:"rm-card-kicker rm-card-kicker--orange"}
1,hs=h(()=>e("span",{class:"rm-here-chip"},"ð You are here",-1)),ps={class:"rm-becoming"},ks={class:"rm-card-band"},ys={class:"rm-breaking"},fs=h(()=>e("div",{class:"rm-breaking-label"}," BREAKING NOW ",-1)),bs={class:"rm-breaking-text"},gs={class:"rm-current-metric"},ws=h(()=>e("div",{class:"rm-tools-label"}," YOUR TOOLS FOR THIS LEVEL ",-1)),$s={class:"rm-tool-chips"},Cs=["onClick"],Ls=["src"],Ms={class:"rm-current-foot"},Ts={class:"rm-day-label"},xs=["onClick"],Ss=["onClick"],Es={class:"rm-card-top"},Os={class:"rm-card-kicker"},Is={class:"rm-ahead-band"},Rs={class:"rm-ahead-chips"},zs={class:"rm-chip-role"},Ys={class:"rm-chip-team"},Ps={class:"rm-ahead-constraint"},As=h(()=>e("b",null,"Up ahead:",-1)),Bs=h(()=>e("div",{class:"rm-summit"},[e("img",{src:"/images/onboarding/lina-cheering.png",alt:"Lina at the summit",class:"rm-summit-lina"}),e("div",{class:"rm-summit-flag"}," ð© $5M+ "),e("div",{class:"rm-summit-line"}," Every level breaks one constraint. You only ever need to solve the next one. ")],-1)),Vs={key:0,class:"rm-drawer"},Ns={class:"rm-drawer-head-row"},Us={class:"rm-drawer-id"},Ds={key:1},Fs={class:"rm-drawer-kicker"},Hs={class:"rm-drawer-name"},js={class:"rm-drawer-band"},Ws={class:"rm-drawer-chips"},Ks={class:"rm-drawer-chip"},Gs={class:"rm-drawer-chip"},Qs={class:"rm-drawer-body"},Xs=h(()=>e("div",{class:"rm-eyebrow"}," THE PROBLEM ",-1)),qs={class:"rm-problem"},Js={class:"rm-breaking rm-breaking--drawer"},Zs=h(()=>e("div",{class:"rm-breaking-label"}," PRIMARY CONSTRAINT ",-1)),et={class:"rm-breaking-text"},st=h(()=>e("div",{class:"rm-eyebrow rm-eyebrow--gap"}," WHAT YOU'LL MASTER ",-1)),tt={class:"rm-master"},lt=h(()=>e("div",{class:"rm-eyebrow rm-eyebrow--gap"}," KEY FOCUS AREAS ",-1)),at={class:"rm-focus"},ot={key:0,class:"rm-tools-section"},rt=h(()=>e("div",{class:"rm-eyebrow"}," TOOLS THAT DO THE WORK ",-1)),ct=["onClick"],nt=["src"],it={key:1,class:"rm-tool-row-icon rm-tool-row-icon--fallback"},dt={class:"rm-tool-row-name"},ut={class:"rm-finish"},vt=h(()=>e("div",{class:"rm-finish-head"},[e("span",{class:"rm-finish-flag"},"ð"),e("span",{class:"rm-finish-label"},"THE FINISH LINE")],-1)),mt={class:"rm-finish-text"},_t={class:"rm-finish-unlock"},ht=h(()=>e("img",{src:"/images/onboarding/lina-cheering.png",alt:"",class:"rm-finish-lina"},null,-1)),pt={__name:"index",setup(U){const Y=oe(),A=re(),D=$(()=>A.authUser),B=b(!0),R=b([]),k=b(1),y=b(null),L=["#79C7E0","#3C71B8","#927BB7"];Z(async()=>{var a;document.title=`${ce.app.title} | Scaling Roadmap`;try{const n=[ne().then(v=>{v!=null&&v.success&&(R.value=(v.data??[]).map(t=>({...t,levels:Object.values(t.levels??{})})))}),ie(de().format("YYYY-MM-DD")).then(v=>k.value=(v==null?void 0:v.journey_day)??1).catch(()=>{})];(a=A.authUser)!=null&&a.id||n.push(A.getAuthUser()),await Promise.all(n)}finally{B.value=!1}});const M=$(()=>R.value.flatMap(a=>a.levels)),T=$(()=>{var n;const a=Number(((n=D.value)==null?void 0:n.current_level)??1);return Math.min(Math.max(a,1),M.value.length||18)}),u=$(()=>M.value.find(a=>a.level===T.value)??null);function g(a){return a.level<T.value?"done":a.level===T.value?"current":"ahead"}const H=$(()=>{const a=u.value;return a?`Level ${a.level} · ${a.title} · ${a.revenueMin} â ${a.revenueMax}`:"Level 1"}),j=$(()=>{const n=(M.value.length||18)/3,v=T.value-1;return(Math.floor(v/n)*100/3+(v%n+.5)/n*100/3).toFixed(1)}),G=[{label:"$0",pct:0,shift:"0"},{label:"$1M",pct:33.33,shift:"-50%"},{label:"$3M",pct:66.67,shift:"-50%"},{label:"$5M+",pct:100,shift:"-100%"}],F=["Doer","Marketer","Trainer","Manager","Director","Executive","Chairman"],c=$(()=>{var a;return(((a=u.value)==null?void 0:a.role)??"Doer").replace(" II","")});function P(a){const n=String(a).toLowerCase();return he.find(v=>{const t=String(v.name??"").toLowerCase();return t===n||t.includes(n)||n.includes(t)})??null}function W(a){const n=P(a);return{name:a,icon:(n==null?void 0:n.image)??null,link:n?n.versionUrl??n.url??null:null}}function V(a){return((a==null?void 0:a.tools)??[]).map(W)}function x(a){a.link&&Y.push(a.link)}const d=$(()=>{var S;if(!y.value)return null;const a=M.value.find(z=>z.level===y.value);if(!a)return null;const n=R.value.findIndex(z=>z.levels.some(K=>K.level===a.level)),v=g(a),t=M.value.find(z=>z.level===a.level+1);return{level:a,status:v,color:L[n]??"#3C71B8",yearLabel:((S=R.value[n])==null?void 0:S.title)??"",tools:V(a),nextLabel:t?`Level ${t.level} · ${t.title}`:"the summit · $5M+"}});function se(){var a;(a=document.getElementById("rm-current"))==null||a.scrollIntoView({behavior:"smooth",block:"center"})}function te(){window.history.length>
11?Y.back():Y.push("/dashboard")}const le=$(()=>k.value<=1?"Day 1 · The climb starts here":`Day ${k.value} · in progress`);function ae(a){return((a==null?void 0:a.role)??"").replace(" II","")}return(a,n)=>{const v=Ae;return l(),o("div",Be,[e("header",Ve,[e("div",Ne,[e("div",Ue,[e("div",De,[e("div",Fe,[_(m,{icon:"tabler-mountain",size:"22"})]),He]),e("div",je,[e("button",{class:"rm-pos-chip",type:"button",onClick:se}," ð You're here: "+s(H.value),1),e("button",{class:"rm-close",type:"button",title:"Close",onClick:te},[_(m,{icon:"tabler-x",size:"19"})])])]),_(v,{class:"rm-locks"}),e("div",We,[e("div",Ke,[Ge,e("div",{class:"rm-gauge-fill",style:O({width:`${j.value}%`})},null,4),(l(),o(f,null,E(G,t=>(l(),o(f,{key:t.label},[e("div",{class:"rm-tick",style:O({left:`${t.pct}%`})},null,4),e("div",{class:"rm-tick-label",style:O({left:`${t.pct}%`,transform:`translateX(${t.shift})`})},s(t.label),5)],64))),64)),e("div",{class:"rm-marker",style:O({left:`${j.value}%`})},null,4)])])])]),B.value?(l(),o("div",Qe,[_(ue,{indeterminate:"",color:"primary",size:"34"})])):(l(),o(f,{key:1},[e("div",Xe,[(l(),o(f,null,E(F,(t,S)=>(l(),o(f,{key:t},[e("span",{class:w(["rm-ladder-chip",{"rm-ladder-chip--active":t===c.value}])},s(t),3),S<F.length-1?(l(),N(m,{key:0,icon:"tabler-arrow-right",size:"14",class:"rm-ladder-arrow"})):p("",!0)],64))),64))]),e("div",qe,[(l(!0),o(f,null,E(R.value,(t,S)=>{var z,K;return l(),o("section",{key:t.year},[e("div",{class:"rm-year",style:O({background:L[S]})},[e("div",null,[e("div",Je,[e("h2",Ze," YEAR "+s(t.year)+": "+s(t.title),1),e("span",es,s(t.revenueMin)+" â "+s(t.revenueMax),1)]),e("div",ss,s(t.description)+" â Focus: "+s(t.focus),1)]),e("div",ts," Levels "+s((z=t.levels[0])==null?void 0:z.level)+"â"+s((K=t.levels[t.levels.length-1])==null?void 0:K.level),1)],4),(l(!0),o(f,null,E(t.levels,r=>(l(),o("div",{key:r.level,class:"rm-stop"},[e("div",ls,[e("div",{class:w(["rm-spine",{"rm-spine--gold":r.level<=T.value}])},null,2),e("div",as,[g(r)==="current"?(l(),o("div",os)):p("",!0),e("div",{class:w(["rm-medal",`rm-medal--${g(r)}`]),style:O(g(r)==="ahead"?{borderColor:L[S]}:{})},[g(r)==="done"?(l(),N(m,{key:0,icon:"tabler-check",size:"24",style:{color:"#304058"}})):g(r)==="current"?(l(),N(m,{key:1,icon:"tabler-map-pin-filled",size:"26",style:{color:"#fff"}})):(l(),o("span",{key:2,class:"rm-medal-num",style:O({color:L[S]})},s(r.level),5))],6)])]),g(r)==="done"?(l(),o("div",{key:0,class:w(["rm-card rm-card--done",r.level%2===1?"rm-card--left":"rm-card--right"]),onClick:C=>y.value=r.level},[e("div",cs,[e("span",ns,"LEVEL "+s(r.level)+" · "+s(r.title),1),is]),e("div",ds,s(r.revenueMin)+" â "+s(r.revenueMax),1),e("div",us,[_(m,{icon:"tabler-circle-check-filled",size:"16",style:{color:"#46BC94"}}),I(s(r.successMetric),1)])],10,rs)):g(r)==="current"?(l(),o("div",{key:1,id:"rm-current",class:w(["rm-card rm-card--current",r.level%2===1?"rm-card--left":"rm-card--right"]),onClick:C=>y.value=r.level},[e("div",ms,[e("span",_s,"LEVEL "+s(r.level)+" · "+s(r.title),1),hs]),e("div",ps,[I(" You're becoming: "),e("em",null,"the "+s(ae(r)),1)]),e("div",ks,s(r.revenueMin)+" â "+s(r.revenueMax)+" · Team: "+s(r.team),1),e("div",ys,[fs,e("div",bs,s(r.primaryConstraint),1)]),e("div",gs,[_(m,{icon:"tabler-target-arrow",size:"17",style:{color:"#3C71B8"}}),I(s(r.successMetric),1)]),V(r).length?(l(),o(f,{key:0},[ws,e("div",$s,[(l(!0),o(f,null,E(V(r),C=>(l(),o("span",{key:C.name,class:w(["rm-tool-chip",{"rm-tool-chip--link":C.link}]),onClick:X(kt=>x(C),["stop"])},[C.icon?(l(),o("img",{key:0,src:C.icon,alt:""},null,8,Ls)):p("",!0),I(s(C.name),1)],10,Cs))),128))])],64)):p("",!0),e("div",Ms,[e("span",Ts,s(le.value),1),e("button",{class:"rm-btn-primary",type:"button",onClick:X(C=>y.value=r.level,["stop"])}," Open Level Details ",8,xs)])],10,vs)):(l(),o("div",{key:2,class:w(["rm-card rm-card--ahead",r.level%2===1?"rm-card--left":"rm-card--right"]),onClick:C=>y.value=r.level},[e("div",Es,[e("span",Os,"LEVEL "+s(r.level)+" · "+s(r.title),1),e("span",Is,s(r.revenueMin)+" â "+s(r.revenueMax),1)]),e("div",Rs,[e("span",zs,s(r.role),1),e("span",Ys,"Team: "+s(r.team),1)]),e("div",Ps,[As,I(" "+s(r.primaryConstraint),1)])],10,Ss))]))),128))])}),128)),Bs])],64)),(l(),N(ve,{to:"body"},[_(J,{name:"rm-fade"},{default:q(()=>[d.value?(l(),o("div",{key:0,class:"rm-overlay",onClick:n[0]||(n[0]=t=>y.value=null)})):p("",!0)]),_:1}),_(J,{name:"rm-slide"},{default:q(()=>[d.value?(l(),o("div",Vs,[e("div",{class:"rm-drawer-head",style:O({background:d.value.color})},[e("div",Ns,[e("div",Us,[e("div",{class:w(["rm-drawer-medal",{"rm-drawer-medal--done":d.value.status==="done"}])},[d.value.status==="done"?(l(),N(m,{key:0,icon:"tabler-check",size:"24",style:{color:"#304058"}})):(l(),o("span",Ds,s(d.value.level.level),1))],2),e("div",null,[e("div",Fs," LEVEL "+s(d.value.level.level)+" · "+s(d.value.yearLabel),
11),e("div",Hs,s(d.value.level.title),1),e("div",js,s(d.value.level.revenueMin)+" â "+s(d.value.level.revenueMax),1)])]),e("button",{class:"rm-drawer-close",type:"button",onClick:n[1]||(n[1]=t=>y.value=null)},[_(m,{icon:"tabler-x",size:"17"})])]),e("div",Ws,[e("span",{class:w(["rm-status-chip",`rm-status-chip--${d.value.status}`])},s(d.value.status==="done"?"Cleared â":d.value.status==="current"?"ð You are here":"Up ahead"),3),e("span",Ks,"Role: "+s(d.value.level.role),1),e("span",Gs,"Team: "+s(d.value.level.team),1)])],4),e("div",Qs,[Xs,e("div",qs,s(d.value.level.problem),1),e("div",Js,[Zs,e("div",et,s(d.value.level.primaryConstraint),1)]),st,e("div",tt,[(l(!0),o(f,null,E(d.value.level.master??[],t=>(l(),o("div",{key:t,class:"rm-master-row"},[_(m,{icon:"tabler-circle-check-filled",size:"18",style:{color:"#46BC94"}}),e("span",null,s(t),1)]))),128))]),lt,e("div",at,[(l(!0),o(f,null,E(d.value.level.focusAreas??[],t=>(l(),o("span",{key:t,class:"rm-chip-role"},s(t),1))),128))]),d.value.tools.length?(l(),o("div",ot,[rt,(l(!0),o(f,null,E(d.value.tools,t=>(l(),o("div",{key:t.name,class:w(["rm-tool-row",{"rm-tool-row--link":t.link}]),onClick:S=>x(t)},[t.icon?(l(),o("img",{key:0,src:t.icon,alt:"",class:"rm-tool-row-icon"},null,8,nt)):(l(),o("div",it,[_(m,{icon:"tabler-tool",size:"15"})])),e("div",dt,s(t.name),1),t.link?(l(),N(m,{key:2,icon:"tabler-arrow-right",size:"14",style:{color:"#3C71B8"}})):p("",!0)],10,ct))),128))])):p("",!0),e("div",ut,[vt,e("div",mt," You graduate when: "+s(d.value.level.graduateWhen),1),e("div",_t,[_(m,{icon:"tabler-medal",size:"14"}),I("Unlocks "+s(d.value.nextLabel),1)]),ht])])])):p("",!0)]),_:1})]))])}}},bt=ee(pt,[["__scopeId","data-v-2116e2f0"]]);export{bt 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.