{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "ratings-award-wall",
  "title": "Ratings — Award Wall",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-react/blocks/ratings-award-wall/RatingsAwardWall.tsx",
      "content": "'use client'\n\nimport { Award } from 'lucide-react'\nimport { Badge } from '@/components/ui/badge'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent } from '@/components/ui/card'\nimport { Separator } from '@/components/ui/separator'\n\n// Body, category, and period on every entry. A badge without a period is a\n// badge that could be six years old.\nconst awards = [\n  { body: 'G2', category: 'Leader — Analytics Platforms', period: 'Winter 2026' },\n  { body: 'G2', category: 'Best Usability — Mid-Market', period: 'Winter 2026' },\n  { body: 'Capterra', category: 'Best Value — Business Intelligence', period: '2025' },\n  { body: 'TrustRadius', category: 'Top Rated — Data Governance', period: '2025' },\n  { body: 'Product Hunt', category: '#1 Product of the Day', period: 'Mar 2025' },\n  { body: 'SaaS Awards', category: 'Best Data Product, shortlisted', period: '2025' },\n]\n\nexport function RatingsAwardWall() {\n  return (\n    <section data-slot=\"ratings-award-wall\" className=\"bg-background\">\n      <div className=\"mx-auto max-w-6xl px-6 py-20 lg:py-28\">\n        <div className=\"flex flex-wrap items-end justify-between gap-6\">\n          <div className=\"max-w-2xl\">\n            <Badge variant=\"secondary\">Recognition</Badge>\n            <h2 className=\"mt-4 text-3xl font-semibold tracking-tight sm:text-4xl\">\n              Awarded, with the period attached\n            </h2>\n            <p className=\"text-muted-foreground mt-3 text-lg\">\n              Every entry names who gave it, for what, and when. Nothing here is older than a year unless it says so.\n            </p>\n          </div>\n          <Button variant=\"outline\">See the review profiles</Button>\n        </div>\n\n        <div className=\"mt-10 grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n          {awards.map((award) => (\n            <Card key={`${award.body}-${award.category}`}>\n              <CardContent className=\"flex h-full flex-col p-5\">\n                <div className=\"flex items-center gap-3\">\n                  <span\n                    className=\"border-border text-muted-foreground flex size-9 shrink-0 items-center justify-center rounded-lg border\"\n                    aria-hidden=\"true\"\n                  >\n                    <Award className=\"size-4\" />\n                  </span>\n                  <p className=\"text-sm font-semibold\">{award.body}</p>\n                </div>\n                <Separator className=\"my-4\" />\n                <p className=\"text-sm leading-snug\">{award.category}</p>\n                <p className=\"text-muted-foreground mt-auto pt-3 font-mono text-xs\">{award.period}</p>\n              </CardContent>\n            </Card>\n          ))}\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:block",
      "target": "~/components/blocks/RatingsAwardWall.tsx"
    }
  ],
  "dependencies": [
    "lucide-react"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/react/badge.json",
    "https://uipkge.dev/r/react/button.json",
    "https://uipkge.dev/r/react/card.json",
    "https://uipkge.dev/r/react/separator.json"
  ],
  "description": "Grid of third-party awards, each naming the awarding body, the category, and the period it covers, so a badge wall stays checkable rather than decorative.",
  "categories": [
    "marketing"
  ]
}