import React, { useState } from "react"; import { cn } from "@/src/utils/tailwind"; import Image from "next/image"; import { InfoIcon } from "lucide-react"; import { ActionButton } from "@/src/components/ActionButton"; import { Alert, AlertTitle, AlertDescription } from "@/src/components/ui/alert"; export interface ValueProposition { title: string; description: string; icon?: React.ReactNode; } export interface ActionConfig { label: string; href?: string; onClick?: () => void; component?: React.ReactNode; } export interface SplashScreenProps { title: string; description: string; image?: { src: string; alt: string; width: number; height: number; }; videoSrc?: string; valuePropositions?: ValueProposition[]; primaryAction?: ActionConfig; secondaryAction?: ActionConfig; gettingStarted?: string | React.ReactNode; children?: React.ReactNode; className?: string; } interface VideoPlayerProps { videoSrc: string; } function VideoPlayer({ videoSrc }: VideoPlayerProps) { const [hasError, setHasError] = useState(false); const [isLoaded, setIsLoaded] = useState(false); return (
); } export function SplashScreen({ title, description, image, videoSrc, valuePropositions = [], primaryAction, secondaryAction, gettingStarted, children, }: SplashScreenProps) { return (

{title}

{description}

{primaryAction && (primaryAction.component || ( {primaryAction.label} ))} {secondaryAction && (secondaryAction.component || ( {secondaryAction.label} ))}
{gettingStarted && ( Getting Started {gettingStarted} )} {videoSrc && } {!videoSrc && image && (
{image.alt}
)} {children &&
{children}
} {valuePropositions.length > 0 && (
{valuePropositions.map((prop, index) => ( {prop.icon} {prop.title} {prop.description} ))}
)}
); }