{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "title": "Card",
  "description": "A composable raised, flat, or inset neumorphic surface.",
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/card.tsx",
      "content": "import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst cardVariants = {\n  raised: \"border-[color:var(--neu-edge)] bg-[var(--neu-surface)] [background-image:var(--neu-fill-raised)] shadow-[var(--neu-shadow-raised-sm)]\",\n  soft: \"bg-[var(--neu-surface-soft)] shadow-none\",\n  inset: \"bg-[var(--neu-surface)] [background-image:var(--neu-fill-inset)] shadow-[var(--neu-shadow-inset)]\",\n  flat: \"border border-[color:var(--border)] bg-[var(--neu-surface)]\",\n} as const;\n\ntype CardVariant = keyof typeof cardVariants;\n\ninterface CardProps extends React.ComponentProps<\"div\"> {\n  variant?: CardVariant;\n}\n\nfunction Card({ className, variant = \"raised\", ...props }: CardProps) {\n  return (\n    <div\n      data-slot=\"card\"\n      data-variant={variant}\n      className={cn(\n        \"flex min-w-0 flex-col gap-4 rounded-[var(--neu-radius-surface)] border border-transparent py-5 text-[var(--card-foreground)] transition-shadow duration-[var(--neu-duration)] motion-reduce:transition-none\",\n        cardVariants[variant],\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-header\"\n      className={cn(\n        \"grid min-w-0 auto-rows-min gap-x-4 gap-y-1 px-5 has-[>[data-slot=card-action]]:grid-cols-[minmax(0,1fr)_auto]\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"h3\">) {\n  return (\n    <h3\n      data-slot=\"card-title\"\n      className={cn(\"min-w-0 text-base font-semibold leading-6 tracking-tight [overflow-wrap:anywhere]\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n  return (\n    <p\n      data-slot=\"card-description\"\n      className={cn(\"min-w-0 text-sm leading-relaxed text-[var(--muted-foreground)] [overflow-wrap:anywhere]\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-action\"\n      className={cn(\"col-start-2 row-span-2 row-start-1 self-start justify-self-end\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return <div data-slot=\"card-content\" className={cn(\"min-w-0 px-5\", className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer\"\n      className={cn(\"flex min-w-0 flex-wrap items-center gap-3 px-5\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Card,\n  CardAction,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n  cardVariants,\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}