{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "form-card",
  "type": "registry:component",
  "title": "Form Card",
  "description": "A form card component.",
  "dependencies": [
    "class-variance-authority"
  ],
  "registryDependencies": [
    "card",
    "separator"
  ],
  "files": [
    {
      "path": "src/components/forms/form-card.tsx",
      "content": "import { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n  Card,\n  CardContent,\n  CardDescription,\n  CardFooter,\n  CardHeader,\n  CardTitle,\n} from \"@/components/ui/card\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { cn } from \"@/lib/utils\";\n\n// py-0\nconst formCardVariants = cva(\n  \"group relative w-full overflow-hidden py-0 shadow-none gap-4\",\n  {\n    variants: {\n      variant: {\n        default: \"\",\n        destructive: \"border-destructive\",\n      },\n      defaultVariants: {\n        variant: \"default\",\n      },\n    },\n  },\n);\n\n// NOTE: Add a formcardprovider to share the variant prop\n\nexport function FormCard({\n  children,\n  className,\n  variant,\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof formCardVariants>) {\n  return (\n    <Card className={cn(formCardVariants({ variant }), className)} {...props}>\n      {children}\n    </Card>\n  );\n}\n\nexport function FormCardHeader({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <CardHeader\n      className={cn(\n        \"px-4 pt-4 group-has-data-[slot=card-upgrade]:pointer-events-none group-has-data-[slot=card-upgrade]:opacity-50 [.border-b]:pb-4\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n    </CardHeader>\n  );\n}\n\nexport function FormCardTitle({ children }: { children: React.ReactNode }) {\n  return <CardTitle>{children}</CardTitle>;\n}\n\nexport function FormCardDescription({\n  children,\n}: {\n  children: React.ReactNode;\n}) {\n  return <CardDescription>{children}</CardDescription>;\n}\n\nexport function FormCardContent({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <CardContent\n      className={cn(\n        \"px-4 group-has-data-[slot=card-upgrade]:pointer-events-none group-has-data-[slot=card-upgrade]:opacity-50\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n    </CardContent>\n  );\n}\n\nexport function FormCardSeparator({\n  ...props\n}: React.ComponentProps<typeof Separator>) {\n  return <Separator {...props} />;\n}\n\nconst formCardFooterVariants = cva(\n  \"border-t flex items-center gap-2 pb-4 px-4 [&>:last-child]:ml-auto [.border-t]:pt-4\",\n  {\n    variants: {\n      variant: {\n        default: \"\",\n        destructive: \"border-destructive bg-destructive/5\",\n      },\n      defaultVariants: {\n        variant: \"default\",\n      },\n    },\n  },\n);\n\nexport function FormCardFooter({\n  children,\n  className,\n  variant,\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof formCardFooterVariants>) {\n  return (\n    <CardFooter\n      className={cn(formCardFooterVariants({ variant }), className)}\n      {...props}\n    >\n      {children}\n    </CardFooter>\n  );\n}\n\nexport function FormCardFooterInfo({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-footer-info\"\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function FormCardGroup({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-group\"\n      className={cn(\"flex flex-col gap-4\", className)}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function FormCardUpgrade({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-upgrade\"\n      className={cn(\"hidden\", className)}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n\nexport function FormCardEmpty({\n  children,\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"card-empty\"\n      className={cn(\n        \"pointer-events-none absolute inset-0 z-10 bg-background opacity-70 blur\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n    </div>\n  );\n}\n",
      "type": "registry:component"
    }
  ]
}