"use client"; import Image from "next/image"; import Link from "next/link"; import { ArrowRight, BadgePercent, Sparkles } from "lucide-react"; import { AnimatePresence, motion, useReducedMotion } from "motion/react"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; // ADR 0008 sub-fase 4: hero azul con dots de paginacion (carrusel), en vez // del bento estatico de 3 tarjetas en fucsia/rojo/violeta del esquema // arcoiris original. Un slide a la vez, fondo azul de marca en los tres, // para leerse como una sola pieza de marca en vez de 3 bloques de colores // distintos. const slides = [ { id: "celebracion", badge: "Celebración ARI", icon: Sparkles, title: "Hasta 50% OFF", subtitle: "en tesoros seleccionados", description: "Personajes, mochilas y regalos que convierten cualquier día en una celebración.", href: "/catalog", image: "/images/promo/hero-vibrant.webp", imageAlt: "Promoción principal de Ari Shopping", }, { id: "marvel", badge: "Héroes favoritos", icon: BadgePercent, title: "Acción y aventura", subtitle: "colección Marvel", description: "Figuras, mochilas y sets listos para la próxima misión.", href: "/catalog?collection=Marvel", image: "/images/promo/promo-marvel.webp", imageAlt: "Colección Marvel", }, { id: "regalos", badge: "Novedad", icon: Sparkles, title: "Tesoros para regalar", subtitle: "", description: "Personajes y peluches para sorprender en cualquier ocasión.", href: "/catalog", image: "/images/promo/promo-characters.webp", imageAlt: "Personajes y peluches", }, ]; const AUTOPLAY_MS = 6000; export function HeroCarousel() { const reduceMotion = useReducedMotion(); const [index, setIndex] = useState(0); useEffect(() => { if (reduceMotion) return; const timer = setInterval(() => setIndex((current) => (current + 1) % slides.length), AUTOPLAY_MS); return () => clearInterval(timer); }, [reduceMotion]); const slide = slides[index]; const Icon = slide.icon; return (
{slide.badge}

{slide.title}

{slide.subtitle &&

{slide.subtitle}

}

{slide.description}

{slide.imageAlt}
{slides.map((item, itemIndex) => (
); }