{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "title": "Card",
  "description": "Displays a card with a header, content, and footer.",
  "registryDependencies": [
    "https://ui.cortexcn.dev/r/utils.json",
    "https://ui.cortexcn.dev/r/design-system-recipes.json"
  ],
  "files": [
    {
      "path": "src/components/card.tsx",
      "content": "import type { ComponentProps } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n// Cortexcn item \"card\", revision c988904bec69, MIT license.\n// https://ui.cortexcn.dev/r/v/card/c988904bec69.json\n\nfunction Card({\n  className,\n  size = \"default\",\n  ...props\n}: ComponentProps<\"div\"> & { size?: \"default\" | \"sm\" }) {\n  return (\n    <div\n      className={cn(\n        \"group/card card-ring flex flex-col gap-(--card-spacing) overflow-hidden rounded-card bg-card-fill py-(--card-spacing) text-card-foreground text-sm shadow-card ring-foreground/10 [--card-spacing:var(--ds-card-padding,--spacing(4))] has-[>img:first-child]:pt-0 has-data-[slot=card-footer]:pb-0 data-[size=sm]:has-data-[slot=card-footer]:pb-0 data-[size=sm]:[--card-spacing:calc(var(--ds-card-padding,--spacing(4))*0.75)] *:[img:first-child]:rounded-t-card *:[img:last-child]:rounded-b-card\",\n        className,\n      )}\n      data-size={size}\n      data-slot=\"card\"\n      {...props}\n    />\n  );\n}\n\nfunction CardHeader({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-card px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)\",\n        className,\n      )}\n      data-slot=\"card-header\"\n      {...props}\n    />\n  );\n}\n\nfunction CardTitle({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"font-medium text-base leading-snug group-data-[size=sm]/card:text-sm\",\n        className,\n      )}\n      data-slot=\"card-title\"\n      {...props}\n    />\n  );\n}\n\nfunction CardDescription({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      data-slot=\"card-description\"\n      {...props}\n    />\n  );\n}\n\nfunction CardAction({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n        className,\n      )}\n      data-slot=\"card-action\"\n      {...props}\n    />\n  );\n}\n\nfunction CardContent({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\"px-(--card-spacing)\", className)}\n      data-slot=\"card-content\"\n      {...props}\n    />\n  );\n}\n\nfunction CardFooter({ className, ...props }: ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"flex items-center rounded-b-card border-t bg-muted/50 p-(--card-spacing)\",\n        className,\n      )}\n      data-slot=\"card-footer\"\n      {...props}\n    />\n  );\n}\n\nexport {\n  Card,\n  CardAction,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n};\n",
      "type": "registry:component",
      "target": "components/card.tsx"
    }
  ],
  "categories": [
    "components"
  ],
  "type": "registry:component",
  "author": "Cortexcn (https://ui.cortexcn.dev)",
  "meta": {
    "license": "MIT",
    "revision": "c988904bec69"
  }
}