'use client' import { useState, useEffect, useCallback } from 'react' import Image from 'next/image' import { AnimatePresence, motion } from 'framer-motion' import { Check } from '@phosphor-icons/react' import { PulseMockup } from '@/components/marketing/mockups/pulse-mockup' import { PulseFeaturesCarousel } from '@/components/marketing/mockups/pulse-features-carousel' import { FunnelMockup } from '@/components/marketing/mockups/funnel-mockup' import { EmailReportMockup } from '@/components/marketing/mockups/email-report-mockup' interface Slide { headline: string description: string features: string[] mockup: React.ReactNode } const slides: Slide[] = [ { headline: 'Your traffic, at a glance.', description: 'A clean, real-time dashboard that shows pageviews, visitors, bounce rate, and session duration — no learning curve required.', features: [ 'Real-time visitor count', 'Pageview trends over time', 'Bounce rate & session duration', 'Top pages & referrers', ], mockup: , }, { headline: 'Everything you need to know about your visitors.', description: 'Break down your audience by device, browser, OS, country, and language — all without cookies or fingerprinting.', features: [ 'Device & browser breakdown', 'Country & region stats', 'Language preferences', 'Screen size distribution', ], mockup: , }, { headline: 'See where visitors drop off.', description: 'Build funnels to track multi-step flows and find exactly where users abandon your conversion paths.', features: [ 'Multi-step funnel builder', 'Drop-off visualization', 'Conversion rate tracking', 'Custom event support', ], mockup: , }, { headline: 'Reports delivered to your inbox.', description: 'Schedule weekly or monthly email reports so your team stays informed without logging in.', features: [ 'Weekly & monthly digests', 'Customizable metrics', 'Team-wide distribution', 'PDF & inline previews', ], mockup: , }, ] export default function FeatureSlideshow() { const [activeIndex, setActiveIndex] = useState(0) const advance = useCallback(() => { setActiveIndex((prev) => (prev + 1) % slides.length) }, []) useEffect(() => { const timer = setInterval(advance, 5000) return () => clearInterval(timer) }, [advance]) const slide = slides[activeIndex] return (
{/* Background image */} {/* Dark overlay */}
{/* Content */}
{/* Text */}

{slide.headline}

{slide.description}

    {slide.features.map((f) => (
  • {f}
  • ))}
{/* Mockup */}
{/* Orange glow */}
{slide.mockup}
{/* Dot indicators */}
{slides.map((_, i) => (
) }