"use client"
import type React from "react"
import { useState, useEffect } from "react"
import { Button } from "./ui/button"
import { Dialog, DialogContent } from "./ui/dialog"
import {
ChevronLeft,
ChevronRight,
X,
Sparkles,
LayoutDashboard,
HardDrive,
Network,
Box,
Cpu,
FileText,
Rocket,
} from "lucide-react"
import Image from "next/image"
interface OnboardingSlide {
id: number
title: string
description: string
image?: string
icon: React.ReactNode
gradient: string
}
const slides: OnboardingSlide[] = [
{
id: 0,
title: "¡Bienvenido a ProxMenux Monitor!",
description:
"Tu nueva herramienta de monitoreo profesional para Proxmox. Descubre todas las funcionalidades que te ayudarán a gestionar y supervisar tu infraestructura de manera eficiente.",
icon: ,
gradient: "from-blue-500 via-purple-500 to-pink-500",
},
{
id: 1,
title: "Vista General del Sistema",
description:
"Monitorea en tiempo real el estado de tu servidor: CPU, memoria, temperatura, carga del sistema y más. Todo en un dashboard intuitivo y fácil de entender.",
image: "/images/onboarding/imagen1.png",
icon: ,
gradient: "from-blue-500 to-cyan-500",
},
{
id: 2,
title: "Gestión de Almacenamiento",
description:
"Visualiza el estado de todos tus discos y volúmenes. Información detallada de capacidad, uso, salud SMART, temperatura y rendimiento de cada dispositivo de almacenamiento.",
image: "/images/onboarding/imagen2.png",
icon: ,
gradient: "from-cyan-500 to-teal-500",
},
{
id: 3,
title: "Métricas de Red",
description:
"Supervisa el tráfico de red en tiempo real. Estadísticas de ancho de banda, interfaces activas, velocidades de transferencia y gráficos históricos de uso.",
image: "/images/onboarding/imagen3.png",
icon: ,
gradient: "from-teal-500 to-green-500",
},
{
id: 4,
title: "Máquinas Virtuales y Contenedores",
description:
"Gestiona todas tus VMs y contenedores LXC desde un solo lugar. Estado, recursos asignados, uso actual y controles rápidos para cada máquina virtual.",
image: "/images/onboarding/imagen4.png",
icon: ,
gradient: "from-green-500 to-emerald-500",
},
{
id: 5,
title: "Información de Hardware",
description:
"Detalles completos del hardware de tu servidor: CPU, memoria RAM, GPU, discos, red, SAI y más. Especificaciones técnicas, modelos, números de serie y estado de cada componente.",
image: "/images/onboarding/imagen5.png",
icon: ,
gradient: "from-emerald-500 to-blue-500",
},
{
id: 6,
title: "Logs del Sistema",
description:
"Accede a los registros del sistema en tiempo real. Filtra por tipo de evento, busca errores específicos y mantén un seguimiento completo de la actividad de tu servidor.",
image: "/images/onboarding/imagen6.png",
icon: ,
gradient: "from-blue-500 to-indigo-500",
},
{
id: 7,
title: "¡Preparado para el Futuro!",
description:
"ProxMenux Monitor está en constante evolución. Próximamente: alertas personalizadas, notificaciones push, integración con Telegram/Discord, reportes automáticos y muchas más funcionalidades.",
icon: ,
gradient: "from-indigo-500 via-purple-500 to-pink-500",
},
]
export function OnboardingCarousel() {
const [open, setOpen] = useState(false)
const [currentSlide, setCurrentSlide] = useState(0)
const [direction, setDirection] = useState<"next" | "prev">("next")
useEffect(() => {
const hasSeenOnboarding = localStorage.getItem("proxmenux-onboarding-seen")
if (!hasSeenOnboarding) {
setOpen(true)
}
}, [])
const handleNext = () => {
if (currentSlide < slides.length - 1) {
setDirection("next")
setCurrentSlide(currentSlide + 1)
} else {
handleComplete()
}
}
const handlePrev = () => {
if (currentSlide > 0) {
setDirection("prev")
setCurrentSlide(currentSlide - 1)
}
}
const handleSkip = () => {
setOpen(false)
}
const handleComplete = () => {
localStorage.setItem("proxmenux-onboarding-seen", "true")
setOpen(false)
}
const handleDotClick = (index: number) => {
setDirection(index > currentSlide ? "next" : "prev")
setCurrentSlide(index)
}
const slide = slides[currentSlide]
return (
)
}