const experienceSteps = [ { id: 'captacao', number: '01', label: 'Captação', title: 'Lead entra com contexto', copy: 'Origem, dados da obra, contato e histórico ficam prontos para uma abordagem comercial mais precisa.', metric: '42 clientes', route: '/clients', }, { id: 'proposta', number: '02', label: 'Proposta', title: 'Escopo vira PDF profissional', copy: 'Modelos por tipo de serviço aceleram o envio com entregáveis, opcionais, cronograma e pagamento.', metric: '9 abertas', route: '/proposals', }, { id: 'projeto', number: '03', label: 'Projeto', title: 'Execução segue no kanban', copy: 'Etapas técnicas, tarefas, anexos e responsáveis aparecem em uma leitura operacional única.', metric: '19 etapas', route: '/projects-in-progress', }, { id: 'financeiro', number: '04', label: 'Financeiro', title: 'Contrato conversa com caixa', copy: 'Parcelas, recebíveis, contas a pagar, despesas fixas e fluxo de caixa fecham o ciclo da operação.', metric: 'R$ 238,9k', route: '/financial/cash-flow', }, ]; const Experience = () => { const [active, setActive] = React.useState(experienceSteps[0].id); const [ref, inView] = useReveal({ threshold: 0.18 }); const current = experienceSteps.find((step) => step.id === active) || experienceSteps[0]; React.useEffect(() => { const id = setInterval(() => { setActive((prev) => { const index = experienceSteps.findIndex((step) => step.id === prev); return experienceSteps[(index + 1) % experienceSteps.length].id; }); }, 3600); return () => clearInterval(id); }, []); return (
ERP + CRM conectando cliente, projeto e recebimento.} kicker="A landing apresenta o ArchPlan como uma jornada contínua: o cliente entra no CRM, vira proposta, contrato, projeto em execução e controle financeiro." />
{[ ['Tempo de proposta', 'menos retrabalho'], ['Projetos', 'etapas selecionadas'], ['Financeiro', 'visão de caixa'], ['ArchIA', 'suporte interno'], ].map(([title, copy]) => (
/ {title}

{copy}

))}
{experienceSteps.map((step, index) => { const selected = step.id === active; return ( ); })}
/ Live operating map {current.route}
Módulo ativo

{current.label}

{current.copy}

{[current.route, '/reports', '/suporte'].map((route) => ( {route} ))}
{current.number}
/ Indicador
{current.metric}
step.id === active) + 1) / experienceSteps.length) * 100}%`, background: 'var(--ink)' }} >
); }; window.Experience = Experience;