import { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { Button } from "@/components/ui/button"; import { Progress } from "@/components/ui/progress"; import { Input } from "@/components/ui/input"; import { Card, CardContent } from "@/components/ui/card"; import { Check, ArrowRight, Play, Clock, ShieldCheck, Star, BadgeCheck, DollarSign, Hammer, Briefcase, TrendingUp } from "lucide-react"; import chalet3 from "@assets/chalet-3-DYRaIf8i_1771001037626.jpg"; import chalet4 from "@assets/chalet-4-Cvlo-Dai_1771001037627.jpg"; import chaletAFrame from "@assets/e265d1e6-af84-4e15-a83c-a06bea4718bc_1771001065678.jpg"; import checkoutImg from "@assets/chalet-4-Cvlo-Dai_1771001037627.jpg"; import { Carousel, CarouselContent, CarouselItem } from "@/components/ui/carousel"; import Autoplay from "embla-carousel-autoplay"; type Step = "landing" | "quiz" | "analyzing" | "capture" | "sales"; type QuizData = { goal: string; profile: string; attraction: string; firstAction: string; structure: string[]; marketInterest: string[]; name: string; }; const questions = [ { id: 1, question: "Qual é seu principal objetivo com chalés?", image: chaletAFrame, options: ["Vender", "Alugar", "Morar", "Fabricar"], multi: false }, { id: 2, question: "Com qual perfil você mais se identifica?", options: ["Serralheiro / Carpinteiro", "Arquiteto / Engenheiro", "Empreendedor / Investidor", "Pessoa comum"], multi: false }, { id: 3, question: "O que mais te atrai nos projetos de chalé?", options: [ { label: "Nova fonte de renda", icon: }, { label: "Oferecer projetos prontos", icon: }, { label: "Construir com menor custo", icon: }, { label: "Criar novos modelos", icon: }, { label: "Valorizar seu trabalho", icon: } ], multi: false }, { id: 4, question: "Se tivesse os projetos hoje, o que faria primeiro?", options: ["Escolher modelo ideal", "Construir para aluguel", "Mostrar a investidores", "Fechar parceria", "Criar seu próprio projeto", "Adaptar com profissional"], multi: false }, { id: 5, question: "Qual sua estrutura atual? (pode marcar mais de uma)", options: ["Tenho terreno", "Quero alugar terreno", "Tenho parceiro com terreno", "Só quero o projeto", "Tenho equipe", "Tenho ferramentas"], multi: true }, { id: 6, question: "O que mais te chama atenção nesse mercado?", options: [ { label: "Alto lucro", icon: }, { label: "Design fácil de vender", icon: }, { label: "Crescimento Airbnb", icon: }, { label: "Portfólio valorizado", icon: }, { label: "Parcerias", icon: } ], multi: true } ]; export default function QuizApp() { const [step, setStep] = useState("landing"); const [currentQuestion, setCurrentQuestion] = useState(0); const [answers, setAnswers] = useState({ goal: "", profile: "", attraction: "", firstAction: "", structure: [], marketInterest: [], name: "" }); const [progress, setProgress] = useState(0); const handleStart = () => { setStep("quiz"); setProgress(17); }; const handleAnswer = (answer: string | string[]) => { const q = questions[currentQuestion]; const key = Object.keys(answers)[currentQuestion] as keyof QuizData; // Update answers based on question index mapping // This is a simplified mapping for the demo setAnswers(prev => ({ ...prev, [key]: answer })); if (currentQuestion < questions.length - 1) { setCurrentQuestion(prev => prev + 1); setProgress(((currentQuestion + 2) / questions.length) * 100); } else { setStep("capture"); setProgress(100); } }; const handleNameSubmit = (e: React.FormEvent) => { e.preventDefault(); if (answers.name.trim()) { setStep("analyzing"); } }; return (
{step === "landing" && } {step === "quiz" && ( )} {step === "capture" && ( setAnswers(prev => ({ ...prev, name: n }))} onSubmit={handleNameSubmit} /> )} {step === "analyzing" && setStep("sales")} />} {step === "sales" && }
); } function LandingPage({ onStart }: { onStart: () => void }) { return (

Pessoas comuns estão faturando alto com projetos de Chalé Suíço

Responda 6 perguntas rápidas e descubra como usar projetos prontos para lucrar com chalés.

{[chalet4, chalet3, chaletAFrame].map((img, index) => ( {`Chalé ))}
Mercado em crescimento no Airbnb
Projetos que geram alto retorno
Ideal para iniciantes ou investidores
); } function QuizPage({ question, progress, onAnswer, currentAnswer }: any) { const [selected, setSelected] = useState([]); // Reset selection when question changes useEffect(() => { setSelected([]); }, [question.id]); const handleSelect = (option: any) => { const value = typeof option === 'string' ? option : option.label; if (question.multi) { if (selected.includes(value)) { setSelected(prev => prev.filter(i => i !== value)); } else { setSelected(prev => [...prev, value]); } } else { onAnswer(value); } }; const handleMultiSubmit = () => { if (selected.length > 0) { onAnswer(selected); } }; return (
Progresso do quiz {Math.round(progress)}%

{question.question}

{question.image && (
Question context
)}
{question.options.map((opt: any, idx: number) => { const value = typeof opt === 'string' ? opt : opt.label; const isSelected = selected.includes(value); return (
handleSelect(opt)} className={` bg-white p-4 rounded-xl border-2 cursor-pointer transition-all duration-200 flex items-center gap-3 shadow-sm hover:shadow-md ${isSelected ? "border-blue-600 bg-blue-50 text-blue-900" : "border-transparent hover:border-slate-200 text-slate-700" } `} > {typeof opt !== 'string' && opt.icon} {value}
); })}
{question.multi && (

Pode marcar mais de uma opção

)}
); } function CapturePage({ name, setName, onSubmit }: any) { return (
Progresso do quiz 100%

Digite seu nome para personalizar sua experiência

setName(e.target.value)} placeholder="Digite seu nome..." className="h-14 text-lg bg-white border-slate-200" autoFocus />
); } function AnalyzingPage({ onComplete }: { onComplete: () => void }) { const [prepProgress, setPrepProgress] = useState(0); useEffect(() => { const interval = setInterval(() => { setPrepProgress(prev => { if (prev >= 100) { clearInterval(interval); return 100; } return prev + 2; }); }, 50); return () => clearInterval(interval); }, []); return (

Chalés comuns são alugados por mais de R$800 por dia, e tem muita gente garantindo a aposentadoria com chalé.

E o melhor: sem engenheiro, sem arquiteto e sem gastar meses projetando do zero.

Preparando sua apostila... {prepProgress}%

Veja o que dizem nossos clientes

Pessoas reais, resultados reais

{[1,2,3,4,5].map(i => )}

"Os projetos são muito bem detalhados. Economizei semanas de trabalho e meus clientes amaram as opções."

AP

Ana Paula S.

Arquiteta

{[1,2,3,4,5].map(i => )}

"O custo-benefício é imbatível. Já estou no meu segundo chalé usando a planta da apostila."

RM

Ricardo M.

Investidor

{[1,2,3,4,5].map(i => )}

"Finalmente consegui colocar meu sonho em prática sem burocracia. O guia de materiais ajudou muito!"

JS

Juliana S.

Empreendedora

); } function SalesPage({ name }: { name: string }) { const [timeLeft, setTimeLeft] = useState(14 * 60 + 51); useEffect(() => { const timer = setInterval(() => { setTimeLeft((prev) => (prev > 0 ? prev - 1 : 0)); }, 1000); return () => clearInterval(timer); }, []); const formatTime = (seconds: number) => { const mins = Math.floor(seconds / 60); const secs = seconds % 60; return { mins: mins.toString().padStart(2, "0"), secs: secs.toString().padStart(2, "0"), }; }; const time = formatTime(timeLeft); return (
⚠️ Atenção {name}, essa é a sua chance única.

Por ter respondido ao nosso quiz, você ganhou 50% de desconto exclusivo na Apostila de Chalé Suíço 🎉

⚠️ Esse desconto expira ao sair da página.

O que você vai receber:

{[ "Pack completo com +30 projetos de chalés", "Plantas baixas detalhadas e profissionais", "Projetos em 3D para apresentar a clientes", "Guia de materiais e estimativa de custos", "Acesso vitalício + atualizações gratuitas", "Suporte exclusivo via WhatsApp", "Bônus: Planilha de orçamento automática", "Bônus: Guia de locação no Airbnb" ].map((item, i) => (
{item}
))}

Oferta expira em:

{time.mins}
:
{time.secs}

De R$ 39,80

R$ 19,90

Pagamento único, sem mensalidade

Garantia de 7 dias

Se por qualquer motivo você não ficar satisfeito, devolvemos 100% do seu dinheiro. Sem perguntas.

); }