// Shared components for WithDev landing variations
const WithDevLogo = ({ size = 28, color = '#fff', accent = '#7c5cff' }) => (
);
// Striped placeholder for imagery
const Placeholder = ({ label = 'image', w = '100%', h = 200, dark = true, radius = 12, style = {} }) => {
const fg = dark ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)';
const bg = dark ? '#141414' : '#f0f0ec';
const text = dark ? 'rgba(255,255,255,0.45)' : 'rgba(0,0,0,0.45)';
return (
{label}
);
};
// Tiny dot indicator
const Dot = ({ color = '#7c5cff', size = 6 }) => (
);
// Arrow icon
const ArrowIcon = ({ size = 14, color = 'currentColor' }) => (
);
// Shared cases data
const CASES = [
{ client: 'Norven Logística', sector: 'Logística', work: 'Plataforma SaaS de rastreio', year: '2025', metric: '+340% throughput' },
{ client: 'Casa Botânica', sector: 'E-commerce', work: 'Loja headless + integrações', year: '2025', metric: '2.1x conversão' },
{ client: 'Mercato Pro', sector: 'Fintech', work: 'App mobile de pagamentos', year: '2024', metric: '180k MAU' },
{ client: 'Atelier Verde', sector: 'Sustentabilidade', work: 'Site institucional + CMS', year: '2024', metric: '0.4s LCP' },
];
const SERVICES = [
{ n: '01', title: 'Sites institucionais', desc: 'Presença digital que converte. Performance, SEO e identidade visual sólidos.' },
{ n: '02', title: 'E-commerce', desc: 'Lojas headless com checkout otimizado e integrações ERP/marketplace.' },
{ n: '03', title: 'Apps mobile', desc: 'iOS e Android nativos ou cross-platform. Do MVP ao app de escala.' },
{ n: '04', title: 'Sistemas web', desc: 'Painéis, ERPs e SaaS sob medida. Arquitetura escalável e bem desenhada.' },
{ n: '05', title: 'Integrações', desc: 'APIs, webhooks, gateways e middleware. Sistemas que conversam de verdade.' },
{ n: '06', title: 'IA & Automações', desc: 'Agentes, RAG, workflows e automações que tiram o trabalho repetitivo do caminho.' },
];
Object.assign(window, { WithDevLogo, Placeholder, Dot, ArrowIcon, CASES, SERVICES });