{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "product-card",
  "title": "Product Card",
  "author": "Poyraz Avsever",
  "description": "Poyraz Soft Glass product-card with semantic states and composable variants.",
  "dependencies": [],
  "registryDependencies": [
    "@poyraz/poyraz-utils",
    "@poyraz/poyraz-theme",
    "@poyraz/card",
    "@poyraz/badge",
    "@poyraz/star-rating"
  ],
  "files": [
    {
      "path": "registry/poyraz/ui/phase7/blocks/card-templates/product-card.tsx",
      "content": "import * as React from \"react\";\nimport { Badge } from \"@/components/ui/atoms/badge\";\nimport {\n  Card,\n  CardFooter,\n  CardHeader,\n  CardHeading,\n  CardImage,\n  CardTitle,\n  type CardProps,\n} from \"@/components/ui/atoms/card\";\nimport { StarRating } from \"@/components/ui/blocks/card-templates/star-rating\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProductCardProps extends Omit<CardProps, \"title\"> {\n  image: string;\n  title: string;\n  price: string;\n  originalPrice?: string;\n  rating?: number;\n  badge?: string;\n  action?: React.ReactNode;\n  href?: string;\n}\nconst ProductCard = React.forwardRef<HTMLDivElement, ProductCardProps>(\n  (\n    { action, badge, className, href, image, originalPrice, price, rating, title, ...props },\n    ref,\n  ) => {\n    const content = (\n      <Card\n        ref={ref}\n        variant=\"interactive\"\n        className={cn(\"group overflow-hidden\", className)}\n        {...props}\n      >\n        <CardImage className=\"relative\">\n          <img\n            src={image}\n            alt=\"\"\n            className=\"size-full object-cover transition-transform duration-300 group-hover:scale-[1.03]\"\n          />\n          {badge && <Badge className=\"absolute right-2 top-2\">{badge}</Badge>}\n        </CardImage>\n        <CardHeader>\n          <CardHeading>\n            <CardTitle className=\"line-clamp-1\">{title}</CardTitle>\n            {rating != null && <StarRating rating={rating} />}\n            <div className=\"flex items-baseline gap-2\">\n              <span className=\"font-semibold\">{price}</span>\n              {originalPrice && (\n                <span className=\"text-xs text-muted-foreground line-through\">{originalPrice}</span>\n              )}\n            </div>\n          </CardHeading>\n        </CardHeader>\n        {action && <CardFooter>{action}</CardFooter>}\n      </Card>\n    );\n    return href ? (\n      <a href={href} className=\"block text-inherit no-underline\">\n        {content}\n      </a>\n    ) : (\n      content\n    );\n  },\n);\nProductCard.displayName = \"ProductCard\";\nexport { ProductCard };\n",
      "type": "registry:block",
      "target": "@ui/blocks/card-templates/product-card.tsx"
    }
  ],
  "meta": {
    "category": "phase-7-card-block",
    "phase": "beta"
  },
  "type": "registry:block"
}