{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "star-rating",
  "title": "Star Rating",
  "author": "Poyraz Avsever",
  "description": "Poyraz Soft Glass star-rating with semantic states and composable variants.",
  "dependencies": [
    "lucide-react@^0.574.0"
  ],
  "registryDependencies": [
    "@poyraz/poyraz-utils",
    "@poyraz/poyraz-theme"
  ],
  "files": [
    {
      "path": "registry/poyraz/ui/phase7/blocks/card-templates/star-rating.tsx",
      "content": "import * as React from \"react\";\nimport { Star } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface StarRatingProps extends React.HTMLAttributes<HTMLDivElement> {\n  rating: number;\n  max?: number;\n  label?: string;\n}\n\nfunction StarRating({ className, label, max = 5, rating, ...props }: StarRatingProps) {\n  return (\n    <div\n      className={cn(\"flex items-center gap-0.5 text-warning-icon\", className)}\n      aria-label={label ?? `${rating} out of ${max} stars`}\n      {...props}\n    >\n      {Array.from({ length: max }, (_, index) => (\n        <Star\n          key={index}\n          className={cn(\n            \"size-3.5\",\n            index < Math.round(rating) ? \"fill-current\" : \"fill-transparent text-border\",\n          )}\n          aria-hidden=\"true\"\n        />\n      ))}\n    </div>\n  );\n}\n\nexport { StarRating };\nexport type { StarRatingProps };\n",
      "type": "registry:component",
      "target": "@ui/blocks/card-templates/star-rating.tsx"
    }
  ],
  "meta": {
    "category": "phase-7-composite",
    "phase": "beta"
  },
  "type": "registry:component"
}