import * as React from 'react'
import { cn } from '@/lib/utils'
/**
* 中国风卡片组件
* 提供多种传统中国设计风格变体
*/
type ChineseCardVariant = 'default' | 'scroll' | 'plaque' | 'portrait' | 'bamboo'
interface ChineseCardProps extends React.ComponentProps<'div'> {
variant?: ChineseCardVariant
/** 是否显示角饰 */
cornerOrnament?: boolean
/** 是否显示顶部装饰条 */
headerDecoration?: boolean
}
function ChineseCard({
className,
variant = 'default',
cornerOrnament = false,
headerDecoration = false,
children,
...props
}: ChineseCardProps) {
return (
{/* 顶部装饰条 */}
{headerDecoration && (
)}
{/* 角饰元素 */}
{cornerOrnament && (
<>
>
)}
{children}
)
}
function ChineseCardHeader({ className, ...props }: React.ComponentProps<'div'>) {
return (
)
}
function ChineseCardTitle({ className, ...props }: React.ComponentProps<'h3'>) {
return (
)
}
function ChineseCardDescription({ className, ...props }: React.ComponentProps<'p'>) {
return (
)
}
function ChineseCardContent({ className, ...props }: React.ComponentProps<'div'>) {
return (
)
}
function ChineseCardFooter({ className, ...props }: React.ComponentProps<'div'>) {
return (
)
}
/**
* 中国风分隔线
*/
function ChineseDivider({
className,
variant = 'wave',
...props
}: React.ComponentProps<'div'> & {
variant?: 'wave' | 'cloud' | 'meander' | 'simple'
}) {
return (
)
}
/**
* 统计数字组件 - 用于展示大数字
*/
function ChineseStatNumber({
className,
children,
...props
}: React.ComponentProps<'span'>) {
return (
{children}
)
}
/**
* 统计标签组件
*/
function ChineseStatLabel({
className,
children,
...props
}: React.ComponentProps<'span'>) {
return (
{children}
)
}
export {
ChineseCard,
ChineseCardHeader,
ChineseCardTitle,
ChineseCardDescription,
ChineseCardContent,
ChineseCardFooter,
ChineseDivider,
ChineseStatNumber,
ChineseStatLabel,
type ChineseCardVariant,
}