// Landing sections: Showcase de telas · Testimonials · Compare const { useState: useShowState } = React; // Avatar de iniciais (SVG local) — nome sempre bate, sem depender de foto externa. // Cor derivada do nome pra dar variedade, na paleta da marca. const lpAv = (nome, tam) => { const n = (nome || '?').trim(); const ini = n.split(/\s+/).filter(Boolean).slice(0, 2).map(s => s[0]).join('').toUpperCase() || '?'; let h = 0; for (let i = 0; i < n.length; i++) h = (h * 31 + n.charCodeAt(i)) % 360; const hue = 250 + (h % 80) - 20; // roxo/azul da marca (230–310) const bg = `oklch(0.62 0.14 ${hue})`; const svg = `${ini}`; return 'data:image/svg+xml,' + encodeURIComponent(svg); }; // ─── SHOWCASE ─── const SHOW_TABS = [ { id: 'pipeline', label: 'Pipeline', icon: , eyebrow: 'KANBAN VIVO', title: 'Cada deal numa coluna. Cada coluna, uma decisão.', desc: 'Arrasta, marca como ganho, atribui pra alguém — tudo num gesto. O Ezza puxa contexto da última conversa pra você lembrar onde parou.', features: ['4 etapas customizáveis', 'Filtros por valor, prazo e responsável', 'Hover mostra última atividade'], render: () => , }, { id: 'wa', label: 'WhatsApp', icon: lpICN.whatsapp, eyebrow: 'CONVERSA + DEAL', title: 'WhatsApp e CRM no mesmo painel.', desc: 'Conversa do cliente do lado direito, contexto do deal em cima. Status de entrega, sugestões de resposta e templates aprovados pelo time.', features: ['Sem abrir o WhatsApp Web', 'Templates HSM aprovados', 'Histórico colado ao contato pra sempre'], render: () => , }, { id: 'dash', label: 'Dashboard', icon: , eyebrow: 'NÚMEROS EM TEMPO REAL', title: 'A reunião de segunda já vem pronta.', desc: 'Receita, ticket médio, ciclo de venda, conversão por etapa — atualizados a cada minuto. Exportável em PDF, Excel ou Google Sheets.', features: ['Comparativo mês a mês', 'Drill-down por vendedor', 'Alertas quando algo cai'], render: () => , }, { id: 'auto', label: 'Automações', icon: lpICN.bolt, eyebrow: 'NA LINGUAGEM DO TIME', title: 'Crie regras como se estivesse falando.', desc: '"Se o lead vem de site, manda WhatsApp em 2 minutos". A Ezza traduz pra um workflow visual que qualquer um pode editar.', features: ['Linguagem natural em PT-BR', 'Triggers de WhatsApp, e-mail, slack', 'Histórico de execução auditável'], render: () => , }, ]; function LpShowcase() { const [tab, setTab] = useShowState('pipeline'); const cur = SHOW_TABS.find(t => t.id === tab); return (
UM TOUR PELO PRODUTO

É bonito porque
foi pensado pra você.

{SHOW_TABS.map(t => ( ))}
{cur.eyebrow}

{cur.title}

{cur.desc}

    {cur.features.map((f, i) => (
  • {lpICN.check} {f}
  • ))}
e.preventDefault()}>Explorar essa tela →
{cur.render()}
); } // ─── MOCKUPS pequenos ─── function PipelineMockup() { const cols = [ { label: 'Qualificado', count: 3, total: 'R$ 920k', bg: 'oklch(0.96 0.05 245)', accent: 'oklch(0.55 0.16 250)', cards: [ { name: 'Tecnoluz Solar', val: 'R$ 482k', prob: 85, av: 12, tag: 'Hot', prazo: '14 mai', tagBg: 'oklch(0.92 0.07 18)', tagFg: 'oklch(0.40 0.16 18)' }, { name: 'Café do Vale', val: 'R$ 128k', prob: 68, av: 23, tag: 'Novo', prazo: '18 mai', tagBg: 'oklch(0.93 0.06 250)', tagFg: 'oklch(0.40 0.16 250)' }, { name: 'Editora Pampa', val: 'R$ 64k', prob: 52, av: 33, tag: null, prazo: '22 mai' }, ], }, { label: 'Proposta', count: 2, total: 'R$ 670k', bg: 'oklch(0.97 0.07 95)', accent: 'oklch(0.65 0.13 80)', cards: [ { name: 'Construtora Paineiras', val: 'R$ 420k', prob: 72, av: 44, tag: 'VIP', prazo: '15 mai', tagBg: 'oklch(0.18 0.01 250)', tagFg: 'white' }, { name: 'Brasil Logística', val: 'R$ 250k', prob: 60, av: 55, tag: null, prazo: '20 mai' }, ], }, { label: 'Negociação', count: 2, total: 'R$ 482k', active: true, bg: 'oklch(0.96 0.05 18)', accent: 'oklch(0.62 0.18 25)', cards: [ { name: 'Studio Maracá', val: 'R$ 312k', prob: 80, av: 16, tag: 'SLA', prazo: 'hoje', tagBg: 'oklch(0.92 0.07 18)', tagFg: 'oklch(0.40 0.16 18)' }, { name: 'Agropecuária Cerrado', val: 'R$ 170k', prob: 65, av: 27, tag: null, prazo: '16 mai' }, ], }, { label: 'Fechado', count: 4, total: 'R$ 282k', bg: 'oklch(0.96 0.06 160)', accent: 'oklch(0.50 0.13 160)', cards: [ { name: 'Indústria Aurora', val: 'R$ 142k', prob: 100, av: 38, tag: 'Ganho', won: true, prazo: '12 mai', tagBg: 'oklch(0.93 0.07 160)', tagFg: 'oklch(0.30 0.12 160)' }, { name: 'Tecno Sul', val: 'R$ 88k', prob: 100, av: 19, tag: 'Ganho', won: true, prazo: '10 mai', tagBg: 'oklch(0.93 0.07 160)', tagFg: 'oklch(0.30 0.12 160)' }, ], }, ]; return (
{/* Top bar — strip */}
Pipeline +12% no mês
{['Ana Beatriz','Bruno Souza','Camila Lima','Diego Alves','Elena Rocha'].map((nome, i) => ( ))} +3
{cols.map((col, i) => (
{col.active && ( ATIVA )}
{col.label} {col.count}
{col.total}
{col.cards.map((c, k) => (
{/* tag + status */}
{c.tag ? ( {c.tag} ) : } {c.won ? ( ) : ( {c.prazo} )}
{/* nome + valor */}
{c.name}
{c.val}
{/* barra prob + avatar */}
))} {/* + button no fim de cada coluna */}
))}
); } function WaMockup() { return (
Ana Beatriz Carvalho
online · digitando…
Bom dia! Tudo bem por aí?
Oi Ana! Tudo. Te mandei a proposta atualizada 👍
Topa marcar a apresentação 5ª às 14h?
Topo!! Tô olhando o doc agora.
DEAL ATIVO
R$ 482.300
Negociação · 65%
EMPRESA
Tecnoluz Solar
Diretora Comercial
SUGESTÕES
{['Enviar proposta', 'Agendar reunião', 'Marcar como ganho'].map((s, i) => (
{s}
))}
); } function DashMockup() { return (
{[ { l: 'Receita', v: 'R$ 1,98M', d: '↑ 12%', c: 'oklch(0.55 0.16 250)' }, { l: 'Negócios', v: '76', d: '↑ 8', c: 'oklch(0.45 0.13 145)' }, { l: 'Ciclo médio', v: '18d', d: '↓ 3d', c: 'oklch(0.62 0.13 80)' }, { l: 'Conversão', v: '32,4%', d: '↑ 5,8pp', c: 'oklch(0.55 0.16 18)' }, ].map((s, i) => (
{s.l}
{s.v}
{s.d}
))}
Receita por semana
{['Ana Beatriz','Bruno Souza','Camila Lima'].map((p, i) => (
{p.split(' ')[0]}
))}
); } function AutoMockup() { return (
NOVA AUTOMAÇÃO
SE
lead chega via Instagram e ainda não foi contactado
FAZ
envia mensagem no WhatsApp em 2 minutos
ÚLTIMAS EXECUÇÕES
{[ { who: 'Marcos Andrade', ago: 'há 3 min', ok: true }, { who: 'Júlia Mendonça', ago: 'há 14 min', ok: true }, { who: 'Diego Saraiva', ago: 'há 28 min', ok: true }, { who: 'Marina Costa', ago: 'há 1 h', ok: true }, { who: 'Tiago Ribeiro', ago: 'há 2 h', ok: false }, ].map((r, i) => (
{r.ok ? : }
{r.who}
{r.ago}
))}
); } // ─── TESTIMONIALS ─── function LpTestimonials() { return (
HISTÓRIAS REAIS

Quem usa, fala melhor.

"

Trocamos um CRM gringo cheio de feature pela Ezza. Em 3 meses, batemos a meta que não batíamos há 5 trimestres.

Mariana Tavares
Diretora Comercial · Tecnoluz Solar
+42%
em receita
"

O WhatsApp dentro do CRM mudou nossa vida. Não tem mais "vou perguntar no privado" sumindo do histórico.

Rafael Cunha
Head de Vendas · Café do Vale
8h
/semana economizadas
"

Migrei 4 mil contatos em uma tarde. Em duas semanas, todo o time já estava produtivo. Inacreditável.

Patrícia Lemos
Sócia · Studio Maracá
2sem
pra adoção total
); } // ─── COMPARE ─── function LpCompare() { const rows = [ ['Pipeline visual no kanban', ['yes', 'yes', 'yes', 'partial']], ['WhatsApp nativo integrado', ['yes', 'partial','no', 'partial']], ['Automações em linguagem natural', ['yes', 'no', 'no', 'no']], ['Suporte 100% em português', ['yes', 'yes', 'no', 'partial']], ['LGPD com dados no Brasil', ['yes', 'yes', 'no', 'no']], ['Implantação em até 2 semanas', ['yes', 'partial','no', 'no']], ['Pagamento em Pix ou boleto', ['yes', 'yes', 'no', 'no']], ['Preço a partir de', ['R$ 39', 'R$ 67','US$ 24','US$ 18']], ]; const renderCell = (val) => { if (val === 'yes') return ; if (val === 'no') return ; if (val === 'partial') return parcial; return {val}; }; return (
COMPARAÇÃO HONESTA

Como a Ezza se compara
com os de sempre.

Sem marketing, sem asterisco. Você decide.

{rows.map((r, i) => ( ))}
ezzaCRM
RD Station
HubSpot
Pipedrive
{r[0]} {renderCell(r[1][0])} {renderCell(r[1][1])} {renderCell(r[1][2])} {renderCell(r[1][3])}
); } Object.assign(window, { LpShowcase, LpTestimonials, LpCompare });