const DS = window.PoupeuDesignSystem_d64c01; const { Button, Card, Badge, Chip, Icon, Mascot, MascotMessage, InsightCard, FeatureCard, CTASection, SiteFooter, FinancialCard, StatCard, GoalCard, ProgressBar, TransactionItem, DonutChart, BarChart, LineChart } = DS; // Link único para todos os botões "Começar agora". const APP_URL = 'https://app.poupeu.com/'; function Reveal({ children, delay = 0, as = 'div', className = '', style }) { const ref = React.useRef(null); React.useEffect(() => { const el = ref.current; if (!el) return; const io = new IntersectionObserver(es => es.forEach(e => { if (e.isIntersecting) { el.classList.add('pu-in'); io.unobserve(el); } }), { threshold: 0.12 }); io.observe(el); return () => io.disconnect(); }, []); const El = as; return {children}; } function SectionHead({ eyebrow, title, sub, align = 'left', max = 620 }) { return ( {eyebrow &&

{eyebrow}

}

{title}

{sub &&

{sub}

}
); } function PhoneFrame({ children, width = 320, label, style }) { return (
9:41
{children}
{label &&
{label}
}
); } function AppGreeting({ name = 'Marina' }) { return (
Oi, {name} 👋
Agosto de 2026
); } const CAT_SLICES = [ { label: 'Casa', value: 1450, color: 'var(--cat-casa)' }, { label: 'Alimentação', value: 980, color: 'var(--cat-alimentacao)' }, { label: 'Transporte', value: 620, color: 'var(--cat-transporte)' }, { label: 'Lazer', value: 410, color: 'var(--cat-lazer)' }, { label: 'Outros', value: 430, color: 'var(--cat-outros)' }, ]; const MONTH_BARS = [ { label: 'Abr', entrou: 6100, saiu: 4200 }, { label: 'Mai', entrou: 6300, saiu: 4050 }, { label: 'Jun', entrou: 6200, saiu: 3980 }, { label: 'Jul', entrou: 6400, saiu: 4100 }, { label: 'Ago', entrou: 6500, saiu: 3890 }, ]; const BAR_SERIES = [ { key: 'entrou', color: 'var(--chart-2)', label: 'Entrou' }, { key: 'saiu', color: 'var(--chart-6)', label: 'Saiu' }, ]; function ScreenHome({ compact = false }) { return (
Entrou e saiu
{compact ? ( ) : ( Você gastou 12% menos com alimentação este mês. )}
); } function ScreenTransactions() { return (
Transações
{['Todos', 'Receitas', 'Despesas'].map((c, i) => {c})}
Onde você mais gasta
); } function ScreenGoals() { return (
Metas
); } // CTA de fechamento responsiva: no mobile empilha imagem, texto e depois o botão. function ClosingCTA({ title, subtitle, cta = 'Começar agora', mascot = 'encouraging' }) { return (

{title}

{subtitle &&

{subtitle}

}
); } Object.assign(window, { DS, APP_URL, Button, Card, Badge, Chip, Icon, Mascot, MascotMessage, InsightCard, FeatureCard, CTASection, SiteFooter, FinancialCard, StatCard, GoalCard, ProgressBar, TransactionItem, DonutChart, BarChart, LineChart, Reveal, SectionHead, PhoneFrame, ClosingCTA, AppGreeting, ScreenHome, ScreenTransactions, ScreenGoals, CAT_SLICES, MONTH_BARS, BAR_SERIES });