{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "card",
  "title": "Card",
  "author": "Poyraz Avsever",
  "description": "Poyraz Soft Glass card component.",
  "dependencies": [
    "class-variance-authority@^0.7.1"
  ],
  "registryDependencies": [
    "@poyraz/poyraz-utils",
    "@poyraz/poyraz-theme"
  ],
  "files": [
    {
      "path": "registry/poyraz/ui/phase5/atoms/card.tsx",
      "content": "import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Card Root ──────────────────────────────────────────────────────────────\n\nconst cardVariants = cva(\n  \"poyraz-card relative flex flex-col overflow-hidden border text-card-foreground transition-[color,background-color,border-color,transform] duration-[var(--poyraz-motion-duration-base)] ease-[var(--poyraz-motion-ease-out)]\",\n  {\n    variants: {\n      variant: {\n        default: \"border-border bg-surface shadow-xs\",\n        soft: \"border-transparent bg-surface-subtle shadow-none\",\n        outline: \"border-border-strong bg-transparent shadow-none\",\n        glass:\n          \"border-glass-border-outer bg-glass shadow-[var(--poyraz-glass-shadow)] backdrop-blur-glass\",\n        elevated: \"border-border/80 bg-surface-elevated shadow-lg\",\n        interactive: \"border-border bg-surface shadow-sm hover:border-primary/25 hover:shadow-md\",\n        bordered: \"border-border-strong bg-surface shadow-none\",\n        highlight: \"border-border border-l-4 border-l-primary bg-surface shadow-xs\",\n        ghost:\n          \"border-transparent bg-transparent shadow-none hover:border-border hover:bg-surface-subtle\",\n      },\n      radius: {\n        none: \"rounded-none\",\n        md: \"rounded-md\",\n        lg: \"rounded-lg\",\n        xl: \"rounded-xl\",\n        \"2xl\": \"rounded-2xl\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n      radius: \"xl\",\n    },\n  },\n);\n\nexport interface CardProps\n  extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n  ({ className, radius, variant, ...props }, ref) => {\n    return (\n      <div\n        ref={ref}\n        data-slot=\"card\"\n        data-variant={variant ?? \"default\"}\n        data-radius={radius ?? \"xl\"}\n        className={cn(cardVariants({ variant, radius }), className)}\n        {...props}\n      />\n    );\n  },\n);\nCard.displayName = \"Card\";\n\n// ─── Card Image ─────────────────────────────────────────────────────────────\n\nexport interface CardImageProps extends React.HTMLAttributes<HTMLDivElement> {\n  /** Aspect ratio utility class, e.g. \"aspect-video\" or \"aspect-square\" */\n  aspect?: string;\n}\n\nconst CardImage = React.forwardRef<HTMLDivElement, CardImageProps>(\n  ({ className, aspect = \"aspect-video\", children, ...props }, ref) => (\n    <div\n      ref={ref}\n      data-slot=\"card-image\"\n      className={cn(\"relative overflow-hidden\", \"border-b border-border-strong\", aspect, className)}\n      {...props}\n    >\n      {children}\n    </div>\n  ),\n);\nCardImage.displayName = \"CardImage\";\n\n// ─── Card Header ────────────────────────────────────────────────────────────\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      data-slot=\"card-header\"\n      className={cn(\n        \"grid grid-cols-[1fr_auto] items-start gap-1.5 p-5 [&_[data-slot=card-description]]:col-start-1\",\n        className,\n      )}\n      {...props}\n    />\n  ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nconst CardHeading = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      data-slot=\"card-heading\"\n      className={cn(\"col-start-1 min-w-0 space-y-1.5\", className)}\n      {...props}\n    />\n  ),\n);\nCardHeading.displayName = \"CardHeading\";\n\n// ─── Card Title ─────────────────────────────────────────────────────────────\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n  ({ className, ...props }, ref) => (\n    <h3\n      ref={ref}\n      data-slot=\"card-title\"\n      className={cn(\n        \"text-base font-semibold leading-tight tracking-tight text-foreground\",\n        className,\n      )}\n      {...props}\n    />\n  ),\n);\nCardTitle.displayName = \"CardTitle\";\n\n// ─── Card Description ───────────────────────────────────────────────────────\n\nconst CardDescription = React.forwardRef<\n  HTMLParagraphElement,\n  React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n  <p\n    ref={ref}\n    data-slot=\"card-description\"\n    className={cn(\"text-sm text-muted-foreground leading-relaxed\", className)}\n    {...props}\n  />\n));\nCardDescription.displayName = \"CardDescription\";\n\n// ─── Card Content ───────────────────────────────────────────────────────────\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div ref={ref} data-slot=\"card-content\" className={cn(\"px-5 pb-5\", className)} {...props} />\n  ),\n);\nCardContent.displayName = \"CardContent\";\n\n// ─── Card Footer ────────────────────────────────────────────────────────────\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      data-slot=\"card-footer\"\n      className={cn(\"mt-auto flex items-center gap-3 border-t border-border px-5 py-4\", className)}\n      {...props}\n    />\n  ),\n);\nCardFooter.displayName = \"CardFooter\";\n\nconst CardAction = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <div\n      ref={ref}\n      data-slot=\"card-action\"\n      className={cn(\"col-start-2 row-span-2 row-start-1 self-start\", className)}\n      {...props}\n    />\n  ),\n);\nCardAction.displayName = \"CardAction\";\n\n// ─── Exports ────────────────────────────────────────────────────────────────\n\nexport {\n  Card,\n  CardImage,\n  CardHeader,\n  CardHeading,\n  CardTitle,\n  CardDescription,\n  CardContent,\n  CardFooter,\n  CardAction,\n  cardVariants,\n};\n",
      "type": "registry:ui",
      "target": "@ui/atoms/card.tsx"
    }
  ],
  "css": {
    ".poyraz-card [data-slot=\"card\"]": {
      "border-radius": "var(--poyraz-radius-lg)"
    }
  },
  "meta": {
    "category": "phase-5-foundation",
    "phase": "beta"
  },
  "type": "registry:ui"
}