'use client'; import { motion } from 'framer-motion'; import { useReducedMotion } from '@/hooks/use-reduced-motion'; interface ListPageHeroProps { title: string; subtitle: string; description?: string; stats?: Array<{ value: string; label: string }>; badge?: { text: string; variant?: 'brand' | 'blue' | 'green' | 'neutral'; }; } const BADGE_VARIANTS = { brand: { bg: 'var(--color-brand-bg)', text: 'var(--color-brand)', border: 'rgba(var(--color-brand-rgb), 0.15)', dot: 'var(--color-brand)', }, blue: { bg: 'rgba(var(--color-accent-blue-rgb), 0.08)', text: 'var(--color-accent-blue)', border: 'rgba(var(--color-accent-blue-rgb), 0.15)', dot: 'var(--color-accent-blue)', }, green: { bg: 'rgba(34, 197, 94, 0.08)', text: '#16a34a', border: 'rgba(34, 197, 94, 0.15)', dot: '#22c55e', }, neutral: { bg: 'var(--color-bg-section)', text: 'var(--color-text-secondary)', border: 'var(--color-border-primary)', dot: 'var(--color-text-subtle)', }, }; export function ListPageHero({ title, subtitle, description, stats, badge, }: ListPageHeroProps) { const shouldReduceMotion = useReducedMotion(); const badgeStyle = BADGE_VARIANTS[badge?.variant || 'brand']; return (
{/* Multi-layer background */}
{/* Subtle grid texture */}
); }