import React, { useState, useEffect } from 'react'; import { Camera, Sparkles, Layout, Type, Download, Image as ImageIcon, ChevronRight, CheckCircle2, Play, LayoutDashboard, History, CreditCard, User, LogOut, UploadCloud, Loader2, Copy, Smartphone, Instagram } from 'lucide-react'; // --- GTM / DATA LAYER TRACKING --- // Mestre: Esta função é o coração do seu rastreamento. // Ela envia os eventos para o GTM para otimização de campanhas. const trackEvent = (eventName, data = {}) => { window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: eventName, ...data }); console.log(`[DataLayer Analytics] ${eventName}:`, data); // Apenas para debug no console }; export default function App() { // Estado Global de Roteamento Simulado const [route, setRoute] = useState('home'); // home, login, register, app const [user, setUser] = useState(null); // Navegação Global const navigateTo = (newRoute, eventName = null) => { setRoute(newRoute); window.scrollTo(0, 0); if (eventName) trackEvent(eventName, { destination: newRoute }); }; const loginUser = (email) => { setUser({ name: 'Lojista VIP', email, credits: 100, plan: 'Pro' }); trackEvent('login_success', { method: 'email' }); navigateTo('app'); }; const logoutUser = () => { setUser(null); navigateTo('home'); }; // --- ROTEADOR PRINCIPAL --- if (route === 'home') return ; if (route === 'login') return ; if (route === 'register') return ; if (route === 'app' && user) return ; return ; } // ========================================== // 1. LANDING PAGE (Focada em Conversão) // ========================================== function LandingPage({ onNavigate }) { useEffect(() => { trackEvent('view_landing_page'); }, []); return (
{/* HEADER */}
Vitrine IA
{/* HERO SECTION */}

Transforme fotos simples da sua loja em posts profissionais que vendem.

Crie fotos com modelos hiper-realistas, posts de venda com preço, stories automáticos e legendas magnéticas em menos de 2 minutos.

{/* HERO IMAGE MOCK */}

1. Foto no Cabide

NOVIDADE

Vestido Elegance • R$149

{/* BENEFÍCIOS */}

O seu estúdio completo e automático

Substitua fotógrafos, designers e copywriters por uma única ferramenta fácil de usar.

} title="Fotos com modelos reais" desc="A IA veste sua peça em modelos hiper-realistas em diversos cenários." /> } title="Posts para Instagram" desc="Templates prontos focados em conversão, com sua marca e preço." /> } title="Stories Automáticos" desc="Formatos verticais dinâmicos criados instantaneamente." /> } title="Legendas que Vendem" desc="Textos persuasivos gerados com base no seu público e produto." />
{/* PREÇO */}
MAIS POPULAR

Plano Pro Lojista

Tudo que você precisa para vender todos os dias.

R$99 ,90 /mês
); } function BenefitCard({ icon, title, desc }) { return (
{icon}

{title}

{desc}

); } function PricingItem({ text }) { return (
  • {text}
  • ); } // ========================================== // 2. AUTH PAGES (Login & Registro) // ========================================== function LoginPage({ onNavigate, onLogin }) { const [email, setEmail] = useState(''); const handleSubmit = (e) => { e.preventDefault(); onLogin(email || 'teste@loja.com'); }; return (

    Acesse seu estúdio

    setEmail(e.target.value)} className="mt-1 block w-full border border-gray-300 rounded-lg p-3 shadow-sm focus:ring-purple-500 focus:border-purple-500" placeholder="contato@sualoja.com.br"/>
    ); } function RegisterPage({ onNavigate, onLogin }) { const [email, setEmail] = useState(''); const handleSubmit = (e) => { e.preventDefault(); trackEvent('signup_completed'); onLogin(email || 'novo@loja.com'); }; return (

    Crie sua conta

    e comece a vender mais hoje mesmo.

    setEmail(e.target.value)} className="mt-1 block w-full border border-gray-300 rounded-lg p-3" />
    ); } // ========================================== // 3. DASHBOARD & CORE APP // ========================================== function Dashboard({ user, onLogout }) { const [activeTab, setActiveTab] = useState('dashboard'); // dashboard, studio, history, profile, billing const [credits, setCredits] = useState(user.credits); useEffect(() => { trackEvent('view_app_screen', { screen_name: activeTab }); }, [activeTab]); return (
    {/* SIDEBAR LATERAL */} {/* MOBILE HEADER (Simples) */}
    Vitrine IA
    {/* ÁREA PRINCIPAL */}
    {activeTab === 'dashboard' && setActiveTab('studio')} credits={credits} />} {activeTab === 'studio' && setCredits(c => Math.max(0, c-1))} />} {activeTab === 'history' && } {activeTab === 'billing' && } {activeTab === 'profile' && }
    ); } function SidebarItem({ icon, label, active, onClick, highlight }) { const baseClasses = "flex items-center w-full px-3 py-2.5 rounded-xl text-sm font-medium transition-all duration-200 group"; const activeClasses = highlight ? "bg-purple-600 text-white shadow-md shadow-purple-600/20" : "bg-gray-100 text-gray-900"; const inactiveClasses = "text-gray-600 hover:bg-gray-50 hover:text-gray-900"; return ( ); } // --- VIEWS DO DASHBOARD --- function ViewDashboard({ onNavigateToStudio, credits }) { return (

    Visão Geral

    } subtitle="Renova em 15 dias" /> } subtitle="Este mês" /> } subtitle="Este mês" />

    Hora de vender mais.

    Transforme aquela foto simples do estoque em um post que atrai clientes em segundos.

    {/* Abstract shapes */}
    ); } function DashboardCard({ title, value, subtitle, icon }) { return (
    {icon}

    {title}

    {value}

    {subtitle && {subtitle}}
    ); } // ========================================== // MÓDULO CORE: O STUDIO DE CRIAÇÃO (WIZARD) // ========================================== // Mestre: Aqui consolidamos todas as telas de geração (modelo, post, legenda) em um fluxo sem atrito. function ViewStudio({ onDeductCredit }) { const [step, setStep] = useState(1); // 1: Upload, 2: Config Modelo, 3: Processando, 4: Editor (Post+Legenda) const [uploadedImage, setUploadedImage] = useState(null); // Configs da IA const [aiConfig, setAiConfig] = useState({ gender: 'feminina_jovem', style: 'casual', pose: 'em_pe', bg: 'estudio' }); // Imagem Gerada Mock const [generatedImage, setGeneratedImage] = useState(null); // Configs de Post const [postConfig, setPostConfig] = useState({ type: 'post', layout: 'promocao', price: '149', installment: '3x de R$49', pieceType: 'Vestido Midi', targetAudience: 'Mulheres' }); const [generatedCaption, setGeneratedCaption] = useState(''); const handleUpload = (e) => { // Simula o upload mostrando um placeholder genérico de roupa no cabide setUploadedImage("https://images.unsplash.com/photo-1572804013309-82a89b436400?w=500&q=80"); // Blusa mock trackEvent('studio_upload_image'); setStep(2); }; const handleGenerateModel = () => { trackEvent('studio_start_generation', aiConfig); setStep(3); // Loading // Simula chamada de API setTimeout(() => { onDeductCredit(); // Retorna uma imagem de modelo baseada vagamente nas configs (mock) setGeneratedImage("https://images.unsplash.com/photo-1515347619362-710081d58dcc?w=800&q=80"); setStep(4); generateMockCaption(); }, 3000); }; const generateMockCaption = () => { const caption = `✨ Elegância e conforto no mesmo look!\n\nNosso ${postConfig.pieceType} é perfeito para você se sentir linda em qualquer ocasião. Feito com tecido premium e caimento impecável.\n\n🛍️ Disponível agora por R$${postConfig.price} (ou ${postConfig.installment})\n\n👇 Chama no Direct para garantir o seu antes que esgote! Link na bio.`; setGeneratedCaption(caption); trackEvent('studio_generate_caption_auto'); }; const handleDownload = (format) => { trackEvent('download_asset', { format, post_type: postConfig.type }); alert(`Iniciando download do ${format} gerado... (Simulação)`); }; return (
    {/* Header do Studio */}

    Estúdio IA

    {step > 1 && step < 4 && }
    {/* Área de Trabalho */}
    {/* STEP 1: UPLOAD */} {step === 1 && (

    Envie a foto da roupa

    Tire uma foto da peça em um cabide, manequim ou no chão bem iluminado. (JPG, PNG, WEBP)

    )} {/* STEP 2: CONFIGURAR IA */} {step === 2 && (
    {/* Esquerda: Preview da Original */}

    Foto Original

    Original
    {/* Direita: Controles */}

    Como deseja a foto final?

    setAiConfig({...aiConfig, gender: v})} options={[{v:'feminina_jovem', l:'Feminina Jovem'}, {v:'feminina_adulta', l:'Feminina Adulta'}, {v:'masculina_jovem', l:'Masculina Jovem'}]} /> setAiConfig({...aiConfig, style: v})} options={[{v:'casual', l:'Casual Dia a Dia'}, {v:'elegante', l:'Elegante / Festa'}, {v:'streetwear', l:'Streetwear Moderno'}]} /> setAiConfig({...aiConfig, pose: v})} options={[{v:'em_pe', l:'Em pé natural'}, {v:'andando', l:'Andando (Dinâmico)'}, {v:'pose_fashion', l:'Pose Fashionista'}]} /> setAiConfig({...aiConfig, bg: v})} options={[{v:'estudio', l:'Estúdio Branco'}, {v:'urbano', l:'Ambiente Urbano'}, {v:'loja', l:'Loja Elegante'}]} />
    )} {/* STEP 3: LOADING */} {step === 3 && (

    A IA está trabalhando...

    Ajustando iluminação, vestindo a peça na modelo e renderizando os detalhes (aprox. 15s).

    )} {/* STEP 4: EDITOR FINAL (Onde a mágica da conversão acontece) */} {step === 4 && (
    {/* Esquerda: Configurações de Venda & Copy */}

    Formato & Preço

    setPostConfig({...postConfig, price: e.target.value})} placeholder="Valor (ex: 149)" className="w-full border border-gray-300 rounded-lg p-2 text-sm mb-2" /> setPostConfig({...postConfig, installment: e.target.value})} placeholder="Parcelas (ex: 3x de R$49)" className="w-full border border-gray-300 rounded-lg p-2 text-sm" />