import * as React from 'react' import { cn } from '@/lib/utils' import { glassCvaConfig } from '@/recipes/glass-cva' import { type VariantProps, cva } from 'class-variance-authority' const twStyles = { card: ['rounded-lg shadow-sm'], colors: { primary: 'text-foreground-dark bg-primary dark:bg-primary border-primary dark:border-primary', secondary: 'text-foreground-dark bg-secondary dark:bg-secondary border-secondary dark:border-secondary', accent: 'text-foreground-dark bg-accent dark:bg-accent border-accent dark:border-accent', warning: 'text-foreground-dark bg-warning dark:bg-warning border-warning dark:border-warning', danger: 'text-foreground-dark bg-danger dark:bg-danger border-danger dark:border-danger', // success: "bg-success", // info: "bg-info", }, header: 'flex flex-col space-y-1.5 p-6', title: 'text-2xl font-semibold leading-none tracking-tight', description: 'text-sm text-neutral-500 dark:text-neutral-400', content: 'p-6 pt-0', footer: 'flex items-center p-6 pt-0', } const cardVariants = cva(cn(twStyles.card), { variants: { ...glassCvaConfig.variants, color: { default: '', primary: cn(twStyles.colors.primary), secondary: cn(twStyles.colors.secondary), accent: cn(twStyles.colors.accent), warning: cn(twStyles.colors.warning), danger: cn(twStyles.colors.danger), }, }, defaultVariants: { ...glassCvaConfig.defaultVariants, color: 'default', }, }) interface CardProps extends Omit, 'color'>, VariantProps {} const Card = React.forwardRef(({ className, variant, blur, color, ...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 CardContent = React.forwardRef>( ({ className, ...props }, ref) =>

, ) CardContent.displayName = 'CardContent' const CardFooter = React.forwardRef>( ({ className, ...props }, ref) =>
, ) CardFooter.displayName = 'CardFooter' export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }