// https://ui.shadcn.com/docs/components/card import type * as React from 'react' import { cn } from '../../utils/cn' type CardProps = React.HTMLAttributes & { ref?: React.Ref } /** * Surface container for grouping related content. Renders a bordered, * rounded panel with a background. Compose with CardHeader, CardContent, * and CardFooter to build standard card layouts. */ const Card = ({ className, ref, ...props }: CardProps) => (
) Card.displayName = 'Card' /** Top section of a card. Lays out a title and optional description in a grid. Supports an optional CardAction in the trailing column. */ const CardHeader = ({ className, ref, ...props }: CardProps) => (
) CardHeader.displayName = 'CardHeader' type CardTitleProps = React.HTMLAttributes & { ref?: React.Ref } /** Primary heading inside CardHeader. Renders an `

` element. */ const CardTitle = ({ className, ref, ...props }: CardTitleProps) => (

) CardTitle.displayName = 'CardTitle' type CardDescriptionProps = React.HTMLAttributes & { ref?: React.Ref } /** Secondary text below the card title. Renders a `

` in muted foreground. */ const CardDescription = ({ className, ref, ...props }: CardDescriptionProps) => (

) CardDescription.displayName = 'CardDescription' /** Trailing slot in CardHeader for a button or other action element. Aligns to the top-right of the header grid. */ const CardAction = ({ className, ref, ...props }: CardProps) => (

) CardAction.displayName = 'CardAction' /** Main body of the card. Provides horizontal padding and clips overflow. */ const CardContent = ({ className, ref, ...props }: CardProps) => (
) CardContent.displayName = 'CardContent' /** Bottom section of a card. Lays out action buttons in a row, right-aligned. On mobile, buttons expand to full width. */ const CardFooter = ({ className, ref, ...props }: CardProps) => (
) CardFooter.displayName = 'CardFooter' export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CardAction, }