1import{D as Ae,a as _e,aC as ke,d as Ee,r as a,t as Q,aN as V,j as e,c as me,o as ae,b as Me,d6 as qe,B as te,A as De,a2 as Re}from"./main-DX7XzkoU.js";import{B as Le}from"./badge-BOGaWzi1.js";import{A as Pe,a as ze,b as Fe}from"./avatar-DOhOFDwI.js";import{D as $,E as oe,S as ge,a as fe,P as Ie,O as Te}from"./Shell-Be4b4G4B.js";import{Q as Oe}from"./QuestionStep-RxoHXWyj.js";import{i as Be,S as pe,b as he,t as Qe,h as xe,c as $e,Q as W,C as Ye}from"./questions-BNbuY1z3.js";import{r as We,c as Ve,a as Ge}from"./lead-DkePIxeP.js";import{d as L}from"./diagnosticService-DCDJsjWt.js";import{I as Ke}from"./instagram-uOX4SJX4.js";import{S as Ue}from"./search-Du1BtiHK.js";import{L as He}from"./lightbulb-UJa6zn96.js";import{P as Xe}from"./pen-line-BhrW8uZm.js";import{S as Je}from"./scissors-B10sJleR.js";import{B as Ze}from"./binoculars-Dq66Mu9x.js";import{C as es}from"./calendar-check-BaQ-699C.js";import{C as ss}from"./chart-line-DTQyqMKX.js";import"./list-checks-C7F0SyKS.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const as=Ae("GalleryHorizontalEnd",[["path",{d:"M2 7v10",key:"a2pl2d"}],["path",{d:"M6 5v14",key:"1kq3d7"}],["rect",{width:"12",height:"18",x:"10",y:"3",rx:"2",key:"13i7bc"}]]),ts=1e4,os=5e3,rs=1500,ns=4*6e4,is=2e3,cs=7e3,ee=["Lendo suas últimas publicaçõesâ¦","Separando seu conteúdo por gêneroâ¦","Cruzando seguidoras novas com cada postâ¦","Comparando sua audiência com o seu objetivoâ¦","Calculando seu scoreâ¦","Montando seu diagnósticoâ¦"],se=[[Ue,"Ele lê seu perfil como um estrategista","Entende seu público, seu tom, suas cores e o que já deu certo no seu histórico â não tendência genérica."],[He,"Sugere o que postar","Ideias baseadas no que funciona no seu perfil, com o gancho já pronto."],[as,"Cria os carrosséis","Capa, slides e texto na sua identidade visual. Você revisa e publica."],[Xe,"Escreve roteiros de Reels e Stories","Do gancho de abertura ao encerramento, no seu jeito de falar."],[Je,"Edita seus vÃdeos","Cortes, legendas e ritmo. A parte que mais consome seu tempo sai da sua mão."],[Ze,"Monitora seus concorrentes","Mostra o que funciona no seu nicho antes de virar tendência."],[es,"Agenda o mês inteiro","Você planeja uma vez e ele publica sozinho, no horário certo."],[ss,"Acompanha seus números","E traduz cada métrica em uma decisão prática para o próximo post."]],re=new Intl.NumberFormat("pt-BR"),ls=t=>Ye.every(u=>t==null?void 0:t.includes(u)),ds=({awaitingSync:t,connected:u,coverage:l})=>
6{if(l==="full")return null;const m=t?e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"text-foreground",children:"Estamos buscando seus números no Instagram."})," Sua conta já está conectada, e a análise começa assim que a primeira coleta terminar."]}):u&&l==="none"?e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"text-foreground",children:"Seus números ainda não chegaram."})," Sua conta está conectada, mas o Instagram ainda não devolveu as métricas. Dá para seguir â o diagnóstico sai reduzido e melhora quando os dados entrarem."]}):u?e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"text-foreground",children:"Diagnóstico parcial."})," Falta o perfil de quem te segue â idade, gênero e cidade â, então o pilar de Audiência fica de fora. O resto do relatório sai com o que existe."]}):l==="none"?e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"text-foreground",children:"Ainda não temos métricas suas."})," Dá para seguir, mas a análise fica limitada até você conectar sua conta ao ",te.name,"."]}):e.jsxs(e.Fragment,{children:[e.jsx("strong",{className:"text-foreground",children:"Diagnóstico parcial."})," Falta o perfil de quem te segue â idade, gênero e cidade. Esse dado só existe dentro da sua conta: conectando, o pilar de Audiência entra na análise."]});return e.jsx("p",{className:"rounded-xl border border-primary/25 bg-primary/[0.06] p-4 text-sm leading-relaxed text-muted-foreground",children:m})},us=new Intl.DateTimeFormat("pt-BR",{day:"2-digit",month:"2-digit"}),ms=({account:t,showReport:u,onClick:l})=>{const m=u?t.last_diagnostic:null;return e.jsxs("button",{type:"button",onClick:l,className:Re("group flex w-full items-center gap-4 roun
6ded-xl border bg-card p-4 text-left shadow-sm","transition-[border-color,box-shadow,transform] duration-200","md:hover:-translate-y-0.5 md:hover:border-primary/50 md:hover:shadow-card motion-reduce:transform-none","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"),children:[e.jsxs(Pe,{className:"h-12 w-12 ring-2 ring-primary/10",children:[e.jsx(ze,{src:t.photo??void 0,alt:""}),e.jsx(Fe,{children:t.username.slice(0,2).toUpperCase()})]}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"truncate font-semibold",children:t.name}),e.jsxs("p",{className:"truncate text-sm text-muted-foreground",children:["@",t.username,t.followers?` · ${re.format(t.followers)} seguidores`:""]}),e.jsx("p",{className:"mt-1.5 text-sm font-medium text-primary",children:m?`Ver diagnóstico de ${us.format(new Date(m.created_at))}`:t.connected?"Analisar este perfil":"Analisar â sem conexão, o diagnóstico sai reduzido"})]}),e.jsx(De,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform md:group-hover:translate-x-0.5"})]})},Ds=()=>{const t=_e(),u=ke(),[l]=Ee(),m=l.get("refresh")==="1",S=l.get("quiz")==="1",M=a.useMemo(()=>We(),[]),g=a.useMemo(()=>S?{}:(M==null?void 0:M.answers)??{},[M,S]),[x,N]=a.useState(g),[f,q]=a.useState(0),[D,P]=a.useState("quiz"),[o,G]=a.useState(null),[v,z]=a.useState("none"),[F,C]=a.useState(!1),[K,U]=a.useState(!1),[b,j]=a.useState(!1),[r,Y]=a.useState(null),[I,H]=a.useState(!1),[i,d]=a.useState(!1),[A,c]=a.useState(null),_=a.useMemo(()=>Object.keys(g).filter(s=>Be(g,s)),[g]),w=a.useMemo(()=>[...I?["handle"]:[],...pe,..._],[I,_]),y=r===null||i,R=typeof g.categoria=="string"?g.categoria:null,T=R?null:(o==null?void 0:o.category_slug)??null,k=a.useMemo(()=>he(x,T,w),[x,T,w]),p=k[Math.min(f,k.length-1)],O=W[p],ve=x.categoria||(o==null?void 0:o.category_slug)||null,X=a.useCallback((s,h)=>{N(E=>({...E,[s]:h}))},[]),be=a.useCallback((s,h)=>{N(E=>Qe(E,s,h))},[]),je=a.useCallback((s,h)=>{N(E=>({...E,confirma:s,categoria:s==="sim"?h??void 0:void 0}))},[]);a.useEffect(()=>{window.scrollTo({top:0,behavior:"smooth"})},[f,D]),a.useEffect(()=>{Ve()},[]),a.useEffect(()=>{D!=="quiz"||!p||y||Q("diagnostic_quiz_step",{step:p},void 0,p)},[p,D,y]);const J=a.useCallback(async(s,{auto:h,total:E})=>{if(!m&&s.last_diagnostic){t(`/diagnostico/${s.last_diagnostic.id}`,{replace:h});return}d(!0),c(null);try{const n=await L.lookup(s.id);if(!n.found||!n.profile){c("Essa conta não está mais disponÃvel. Recarregue a página.");return}o&&o.id!==n.profile.id&&(N(g),q(0));const ue=!S&&ls(s.answer_keys),Ne=(o==null?void 0:o.id)===n.profile.id;let B=n.profile.category_slug;if(Ne?B=o.category_slug:!xe(B)&&!ue&&!R&&(B=await L.detectCategory(n.profile.id)),G({...n.profile,category_slug:B}
6),z(n.coverage??"none"),C(n.awaiting_sync??!1),j(n.connected??!1),X("handle",n.profile.username),Q("diagnostic_start",{coverage:n.coverage??"none",posts_90d:n.posts_90d??0,accounts:E}),!he(g,R?null:B,[..._,"handle",...pe]).length){P("waiting");return}if(ue){U(!0),P("waiting");return}h?H(!0):q(Ce=>Ce+1)}catch(n){V.error("lookup do perfil falhou",{err:n}),c("Não conseguimos consultar seu perfil agora. Tente de novo em instantes.")}finally{d(!1)}},[g,R,_,t,o,m,X,S]),ne=a.useRef(!1),Z=a.useCallback(async()=>{c(null);try{const s=await L.myProfiles();if(Y(s),!s.length){Q("diagnostic_connect_click",{from:"quiz"},void 0,"quiz"),t("/diagnostico/conectar",{replace:!0});return}s.length===1&&await J(s[0],{auto:!0,total:1})}catch(s){V.error("não foi possÃvel listar as contas do usuário",{err:s}),c("Verifique sua conexão e tente de novo.")}},[t,J]);a.useEffect(()=>{ne.current||(ne.current=!0,Z())},[Z]);const ie=a.useCallback(()=>{f+1>=k.length?(Q("diagnostic_quiz_step",{step:"concluido"},void 0,"concluido"),P("waiting")):q(s=>s+1)},[f,k.length]);if(D==="waiting"&&o)return e.jsx(gs,{profile:o,answers:x,awaitingSync:F,reusePrevious:K,onDone:s=>{u.invalidateQueries({queryKey:["score-summary"]}),t(`/diagnostico/${s}`,{replace:!0})}});if(A&&r===null)return e.jsxs($,{counter:"Erro",children:[e.jsx(oe,{children:"Diagnóstico"}),e.jsx(ge,{children:"Não conseguimos carregar suas contas"}),e.jsx(fe,{children:A}),e.jsx(me,{size:"lg",className:"mt-7",onClick:()=>void Z(),children:"Tentar de novo"})]});if(y)return e.jsx($,{children:e.jsxs("div",{className:"flex items-center gap-4 py-10",children:[e.jsx(ae,{className:"h-7 w-7 shrink-0 animate-spin text-primary"}),e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Abrindo seu diagnóstico"})]})});const ce=f===k.length-1,we=p==="handle",le=xe(T),ye=p==="confirma"||p==="categoria"&&!le,de=s=>e.jsx($,{counter:`${f+1} de ${k.length}`,steps:{total:k.length,current:f+1},children:s}),Se=ye&&o?e.jsxs("div",{className:"mt-7 space-y-4",children:[e.jsx(Ie,{photo:o.photo,name:o.name,username:o.username,detail:`${re.format(o.followers??0)} seguidores · ${re.format(o.posts??0)} publicações`,children:le&&e.jsx(Le,{variant:"secondary",className:"mt-2",children:$e(T).label})}),e.jsx(ds,{awaitingSync:F,connected:b,coverage:v}),(O==null?void 0:O.type)==="detect"&&e.jsx("div",{className:"space-y-2.5",children:[{v:"sim",b:"Sim, é isso",s:"Pode seguir com essa categoria"},{v:"nao",b:"Não, faço outra coisa",s:"Quero escolher a categoria certa"}].map((s,h)=>e.jsx(Te,{index:h,selected:x.confirma===s.v,label:s.b,hint:s.s,onClick:()=>{je(s.v,T),ie()}},s.v))})]}):null;return we?de(e.jsxs("div",{className:"animate-in fade-in slide-in-from-bottom-2 duration-300",children:[e.jsx(oe,{children:W.handle.eyebrow}),e.jsx(ge,{children:W.handle.title}),e.jsx(fe,{children:W.handle.sub}),e.jsxs("div",{className:"mt-7 space-y-3",children:[r.map(s=>e.jsx(ms,{account:s,showReport:!m,onClick:()=>void J(s,{auto:!1,total:r.length})},s.id)),A&&e.jsx("p",{role:"alert",className:"rounded-xl border border-destructive/30 bg-destructive/5 p-4 text-sm",children:A}),e.jsxs(me,{variant:"ghost",className:"gap-2 text-muted-foreground",onClick:()=>{Q("diagnostic_connect_click",{from:"quiz"},void 0,"quiz"),t("/diagnostico/conectar",{state:{fromList:!0}})},children:[e.jsx(Ke,{className:"h-4 w-4"})," Analisar outra conta"]})]})]},p)):O?de(e.jsx(Oe,{question:O,answers:x,categorySlug:ve,onAnswer:X,onToggle:be,onAdvance:ie,onBack:f>0?()=>q(s=>Math.max(0,s-1)):void 0,cta:ce?"Analisar meu perfil":"Continuar",isLast:ce,children:Se},p)):e.jsx($,{children:e.jsxs("div",{className:"flex items-center gap-4 py-10",children:[e.jsx(ae,{className:"h-7 w-7 shrink-0 animate-spin text-primary"}),e.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:"Abrindo seu diagnóstico"})]})})},gs=({profile:t,answers:u,awaitingSync:l,reusePrevious:m,onDone:S})=>{const[M,g]=a.useState(0),{i18n:x}=Me(),N=a.useRef("pt");N.current=(x.resolvedLanguage??x.language).startsWith("pt")?"pt":"en";const[f,q]=a.useState(0),[D,P]=a.useState(0),[o,G]=a.useState(l),[v,z]=a.useState(null),F=a.useRef(!1),C=a.useRef({answers:u,onDone:S,awaitingSync:l,reusePrevious:m});C.current={answers:u,onDone:S,awaitingSync:l,reusePrevious:m},a.useEffect(()=>{if(F.current)return;F.current=!0;let b=Date.now(),j=ts,r=!1;const Y=i=>P(d=>Math.max(d,Math.min(i,se.length))),I=()=>
6{if(r)return;const i=Math.min((Date.now()-b)/j,1);g(i),q(Math.min(Math.floor(i*ee.length),ee.length-1)),Y(Math.floor(i*(se.length+1))),i<1&&requestAnimationFrame(I)},H=async()=>{const i=Date.now()+ns;for(;!r&&Date.now()<i;){Y(Math.floor((Date.now()-b)/cs));try{if(!(await L.lookup(t.id)).awaiting_sync)return}catch(d){V.warn("lookup durante a espera da coleta falhou",{err:d})}await new Promise(d=>setTimeout(d,is))}};return(async()=>{var i,d,A;try{if(C.current.awaitingSync){if(await H(),r)return;G(!1),b=Date.now(),j=os}requestAnimationFrame(I);const{id:c}=await L.start(t.id,C.current.answers,C.current.reusePrevious,N.current);Ge();for(let _=0;_<60&&!r;_++){const w=await L.get(c);if(w.status==="ready"){r||qe(c,w.band_key??((d=(i=w.report)==null?void 0:i.score)==null?void 0:d.band)??null,((A=w.report)==null?void 0:A.coverage)??"none");const y=j-(Date.now()-b);y>0&&await new Promise(R=>setTimeout(R,y)),r||C.current.onDone(c);return}if(w.status==="error"){r||z("Não conseguimos concluir sua análise. Tente de novo em alguns minutos.");return}await new Promise(y=>setTimeout(y,rs))}r||z("A análise está demorando mais que o normal. Tente de novo em alguns minutos.")}catch(c){V.error("diagnóstico falhou",{err:c}),r||z(c instanceof Error?c.message:"Não foi possÃvel gerar seu diagnóstico.")}})(),()=>{r=!0}},[t.id]);const K=o?"Buscando seus números no Instagram":`O ${te.name} está analisando seu perfil`,U=o?"Sua conta acabou de ser conectada e estamos buscando seus números. A análise começa assim que a coleta terminar.":ee[f];return e.jsxs($,{counter:v?"Erro":o?"Coletando":"Analisando",progress:v||o?void 0:M*100,children:[e.jsx(oe,{children:v?"Diagnóstico":`@${t.username}`}),e.jsxs("div",{className:"mt-4 flex items-start gap-4",children:[!v&&e.jsxs("span",{className:"relative mt-1 grid h-9 w-9 shrink-0 place-items-center",children:[e.jsx("span",{className:"absolute inset-0 animate-ping rounded-full bg-primary/20 motion-reduce:animate-none"}),e.jsx(ae,{className:"h-7 w-7 animate-spin text-primary"})]}),e.jsx("h1",{className:"text-[1.6rem] font-bold leading-[1.15] tracking-tight md:text-[2rem]",children:v?"Algo deu errado":K})]}),e.jsx("p",{role:"status","aria-live":"polite",className:"mt-3.5 min-h-6 text-[0.95rem] leading-relaxed text-muted-foreground md:text-base",children:v??U}),e.jsxs("div",{className:"mt-9 rounded-2xl border bg-card p-6 shadow-card md:p-8",children:[e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-primary",children:"Enquanto isso"}),e.jsxs("p",{className:"mt-3 text-lg font-bold tracking-tight md:text-xl",children:["O que é o ",te.name,"?"]}),e.jsx("p",{className:"mt-2 leading-relaxed text-muted-foreground",children:"Uma inteligência artificial que cuida do seu Instagram por completo. Você conecta sua conta e ele assume a operação â você continua sendo a criadora, ele vira sua equipe."})]}),e.jsx("ul",{className:"mt-3 space-y-2.5",children:se.slice(0,D).map(([b,j,r])=>
6e.jsxs("li",{className:"flex items-start gap-4 rounded-xl border bg-card p-4 shadow-sm animate-in fade-in slide-in-from-bottom-3 duration-500 md:p-5",children:[e.jsx("span",{"aria-hidden":"true",className:"grid h-10 w-10 shrink-0 place-items-center rounded-lg bg-primary/10 text-primary",children:e.jsx(b,{className:"h-5 w-5"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"font-semibold leading-snug",children:j}),e.jsx("p",{className:"mt-1 text-sm leading-snug text-muted-foreground",children:r})]})]},j))})]})};export{Ds 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.