import React, { useEffect, useMemo, useRef, useState } from "react";
import { motion, AnimatePresence } from "framer-motion";
import {
BookOpen,
ChevronLeft,
ChevronRight,
Moon,
Stars,
Sparkles,
Volume2,
Pause,
Play,
User,
Wand2,
Music2,
Image as ImageIcon,
Castle,
Trees,
Crown,
Heart,
Bird,
Gem,
} from "lucide-react";
import { Button } from "@/components/ui/button";
import { Card, CardContent } from "@/components/ui/card";
import { Progress } from "@/components/ui/progress";
import { Slider } from "@/components/ui/slider";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Switch } from "@/components/ui/switch";
const PAGE_COUNT = 100;
const CHAPTERS = 10;
const kingdoms = [
"Bosque da Lua Dourada",
"Vale das Névoas Azuis",
"Castelo das Estrelas",
"Jardim das Fadas de Cristal",
"Montanhas do Coração Antigo",
"Rio de Prata Cantante",
"Floresta dos Segredos Suaves",
"Ilha do Sol Adormecido",
"Campos da Aurora",
"Torre do Vento Encantado",
];
const guardians = [
"uma loba celestial",
"um cervo de vidro",
"uma coruja dourada",
"um dragão gentil",
"uma raposa luminosa",
"um cavaleiro de musgo",
"uma sereia dos lagos",
"um gato mágico",
"uma princesa viajante",
"um relojoeiro encantado",
];
const treasures = [
"a chave do amanhecer",
"o rubi da coragem",
"a rosa eterna",
"o mapa dos desejos",
"a ampulheta do destino",
"o colar das marés",
"a lanterna dos sonhos",
"o espelho da verdade",
"o sino de prata",
"a pena das memórias",
];
const moods = [
"misteriosa",
"acolhedora",
"brilhante",
"poética",
"encantadora",
"suave",
"heróica",
"sonhadora",
"radiante",
"mágica",
];
const illustrations = [
{ icon: Castle, label: "Castelo encantado" },
{ icon: Trees, label: "Floresta mágica" },
{ icon: Crown, label: "Reino dourado" },
{ icon: Heart, label: "Coração do destino" },
{ icon: Bird, label: "Mensageira celestial" },
{ icon: Gem, label: "Tesouro antigo" },
];
const chapterThemes = [
"O Chamado da Primeira Estrela",
"A Floresta dos Sussurros",
"O Portal das Rosas",
"As Torres do Reino Antigo",
"O Segredo do Lago de Cristal",
"A Coroa da Aurora",
"A Travessia do Vento",
"Os Guardiões do Coração",
"A Última Chave Encantada",
"O Reino que Aprendeu a Sonhar",
];
function makePages() {
return Array.from({ length: PAGE_COUNT }, (_, i) => {
const chapter = Math.floor(i / 10) + 1;
const kingdom = kingdoms[i % kingdoms.length];
const guardian = guardians[(i * 3) % guardians.length];
const treasure = treasures[(i * 7) % treasures.length];
const mood = moods[(i * 5) % moods.length];
const chapterTheme = chapterThemes[chapter - 1];
const illustration = illustrations[i % illustrations.length];
const title =
i === 0
? "Prólogo: A Primeira Luz"
: i === PAGE_COUNT - 1
? "Epílogo: O Reino que Aprendeu a Sonhar"
: `Capítulo ${chapter} · Página ${i + 1}`;
const text =
i === 0
? `Era uma vez, além das nuvens cor de mel, um reino chamado ${kingdom}. Em cada janela brilhava uma esperança antiga, e em cada caminho de pedra havia o eco de um novo destino. Numa noite especialmente ${mood}, uma pequena centelha desceu do céu e escolheu o coração de quem abrisse este livro.`
: i === PAGE_COUNT - 1
? `Quando a última estrela tocou o horizonte, o povo de ${kingdom} entendeu que a verdadeira magia nunca esteve apenas em coroas, torres ou feitiços. Ela morava em gestos de bondade, em promessas cumpridas e na coragem de continuar. E assim, o conto terminou do jeito mais bonito: com espaço para um novo começo.`
: `No coração de ${kingdom}, ${guardian} guardava ${treasure}. A trilha daquela página era ${mood}, feita de brilhos, música distante e escolhas delicadas. A cada passo, a personagem principal aprendia que a magia mais forte nasce quando o medo encontra coragem, quando a dúvida encontra ternura e quando o impossível finalmente decide florescer.`;
const choiceA = i % 3 === 0 ? "Seguir a luz da lanterna encantada" : "Conversar com o guardião do caminho";
const choiceB = i % 2 === 0 ? "Abrir o portal escondido entre as flores" : "Esperar a canção do vento revelar um segredo";
const accent = [
"from-rose-200 via-amber-100 to-fuchsia-200",
"from-sky-200 via-cyan-100 to-indigo-200",
"from-violet-200 via-purple-100 to-pink-200",
"from-emerald-200 via-lime-100 to-teal-200",
"from-yellow-200 via-orange-100 to-rose-200",
][i % 5];
return {
id: i + 1,
chapter,
chapterTheme,
title,
text,
kingdom,
guardian,
treasure,
choiceA,
choiceB,
accent,
quote: `"Toda página guarda um milagre para quem continua lendo."`,
illustration,
};
});
}
function MagicalIllustration({ icon: Icon, label, accent }) {
return (
Ilustração do capítulo
{label}
Arte simbólica para representar o clima visual desta parte do conto, com brilho mágico, relevo suave e atmosfera cinematográfica.
Uma experiência digital luxuosa com capa animada, trilha sonora suave, ilustrações por capítulo, narração selecionável e efeito visual realista de páginas sendo reveladas como um verdadeiro tomo mágico.