import * as React from 'react' import { cva, type VariantProps } from 'class-variance-authority' import { cn } from '@/lib/utils' const cardVariants = cva('flex flex-col gap-4 rounded-xl text-text py-6', { variants: { variant: { outline: 'border border-border-tertiary bg-bg-container shadow-sm transition-shadow hover:shadow-md', filled: 'bg-fill-tertiary', ghost: 'bg-transparent', }, }, defaultVariants: { variant: 'outline' }, }) export interface CardProps extends React.HTMLAttributes, VariantProps {} const Card = React.forwardRef( ({ className, variant = 'outline', ...props }, ref) => (
), ) Card.displayName = 'Card' const CardHeader = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardHeader.displayName = 'CardHeader' const CardTitle = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardTitle.displayName = 'CardTitle' const CardDescription = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardDescription.displayName = 'CardDescription' const CardAction = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardAction.displayName = 'CardAction' const CardContent = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardContent.displayName = 'CardContent' const CardFooter = React.forwardRef>( ({ className, ...props }, ref) => (
), ) CardFooter.displayName = 'CardFooter' export type CardHeaderProps = React.HTMLAttributes export type CardTitleProps = React.HTMLAttributes export type CardDescriptionProps = React.HTMLAttributes export type CardActionProps = React.HTMLAttributes export type CardContentProps = React.HTMLAttributes export type CardFooterProps = React.HTMLAttributes export { Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter, cardVariants, }