'use client'; import { motion } from 'framer-motion'; import { type LucideIcon } from 'lucide-react'; import type { ReactNode } from 'react'; interface BrandSealProps { text?: string; variant?: 'red' | 'gold' | 'blue'; size?: 'sm' | 'md' | 'lg'; } export function BrandSeal({ text = '旗舰', variant = 'red', size = 'md' }: BrandSealProps) { const sizes = { sm: 'w-14 h-14 text-xs', md: 'w-20 h-20 text-sm', lg: 'w-28 h-28 text-base', }; const colors = { red: { border: '#C41E3A', bg: 'rgba(196, 30, 58, 0.06)', text: '#C41E3A', shadow: 'rgba(196, 30, 58, 0.2)', }, gold: { border: '#d97706', bg: 'rgba(217, 119, 6, 0.06)', text: '#d97706', shadow: 'rgba(217, 119, 6, 0.2)', }, blue: { border: '#2563eb', bg: 'rgba(37, 99, 235, 0.06)', text: '#2563eb', shadow: 'rgba(37, 99, 235, 0.2)', }, }; const color = colors[variant]; return (
{text}
); } interface CalligraphyTextProps { children: ReactNode; className?: string; as?: 'h1' | 'h2' | 'h3' | 'span'; } export function CalligraphyText({ children, className = '', as: Tag = 'span', }: CalligraphyTextProps) { return ( {children} ); } interface InkDividerProps { variant?: 'subtle' | 'bold' | 'decorative'; } export function InkDivider({ variant = 'subtle' }: InkDividerProps) { if (variant === 'subtle') { return (
); } if (variant === 'bold') { return (
); } return (
); } interface SectionHeaderProps { badge?: string; title: ReactNode; subtitle?: string; align?: 'left' | 'center'; icon?: LucideIcon; } export function SectionHeader({ badge, title, subtitle, align = 'center', icon: Icon, }: SectionHeaderProps) { return ( {(badge || Icon) && (
{Icon && } {badge}
)}

{title}

{subtitle && (

{subtitle}

)}
); }