{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "title": "Card",
  "description": "A card component.",
  "dependencies": [
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@cubby-ui/elevated"
  ],
  "files": [
    {
      "path": "registry/default/card/card.tsx",
      "content": "import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport {\n  solidSurface,\n  type SurfaceLevel,\n} from \"@/registry/default/lib/elevated\";\n\nconst cardVariants = cva(\"text-card-foreground flex flex-col\", {\n  variants: {\n    variant: {\n      default: \"gap-6 rounded-2xl py-6\",\n      inset: \"rounded-2xl p-1\",\n    },\n  },\n  defaultVariants: {\n    variant: \"default\",\n  },\n});\n\nexport interface CardProps\n  extends\n    React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof cardVariants> {\n  level?: SurfaceLevel;\n  shadowLevel?: SurfaceLevel;\n}\n\nfunction Card({\n  className,\n  variant = \"default\",\n  level = 3,\n  shadowLevel = 1,\n  ...props\n}: CardProps) {\n  return (\n    <div\n      data-slot=\"card\"\n      data-variant={variant}\n      data-level={level}\n      className={cn(\n        cardVariants({ variant }),\n        solidSurface(level, shadowLevel),\n        // bg-muted overrides solidSurface's bg, making the outer a gray frame\n        // while keeping its shadow, rim, and --popup-surface.\n        variant === \"inset\" && \"bg-muted\",\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        \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start has-[[data-slot=card-action]]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n        \"[[data-variant=default]>_&]:gap-1.5 [[data-variant=default]>_&]:px-6\",\n        \"[[data-variant=inset]>_&]:px-3 [[data-variant=inset]>_&]:py-2 [[data-variant=inset]>_&]:pt-1\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-title\"\n      className={cn(\n        \"font-semibold [[data-variant=default]_&]:leading-none\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-description\"\n      className={cn(\"text-muted-foreground text-sm\", 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(\n        \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-content\"\n      className={cn(\n        \"[[data-variant=default]>_&]:px-6\",\n        \"[[data-variant=inset]>_&]:bg-surface-3 [[data-variant=inset]>_&]:flex [[data-variant=inset]>_&]:flex-1 [[data-variant=inset]>_&]:flex-col [[data-variant=inset]>_&]:rounded-lg [[data-variant=inset]>_&]:p-4 [[data-variant=inset]>_&]:shadow-[var(--surface-shadow-3),var(--surface-rim-3)] [[data-variant=inset]>_&]:[--popup-surface:var(--surface-3)]\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer\"\n      className={cn(\n        \"flex items-center [.border-t]:pt-6\",\n        \"[[data-variant=default]>_&]:px-6\",\n        \"[[data-variant=inset]>_&]:mt-auto [[data-variant=inset]>_&]:justify-end [[data-variant=inset]>_&]:pt-4\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Card,\n  CardHeader,\n  CardAction,\n  CardTitle,\n  CardDescription,\n  CardContent,\n  CardFooter,\n  cardVariants,\n};\n",
      "type": "registry:ui",
      "target": "components/ui/cubby-ui/card.tsx"
    }
  ],
  "type": "registry:ui"
}