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 (
);
}
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}
}
{cta}
);
}
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 });