{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "education99",
  "title": "Global Partnerships Grid",
  "description": "A global partnerships section showcasing partner institutions with location details and exchange statistics. Perfect for universities highlighting international collaborations.",
  "dependencies": [
    "clsx",
    "tailwind-merge",
    "lucide-react"
  ],
  "registryDependencies": [
    "badge"
  ],
  "files": [
    {
      "path": "registry/education99/education99.tsx",
      "content": "\"use client\";\n\nimport { Building, Globe, type LucideIcon, Users } from \"lucide-react\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { cn } from \"@/lib/utils\";\n\ninterface StatItem {\n  label: string;\n  value: string;\n}\n\ninterface OrganizationItem {\n  id?: string;\n  name: string;\n  location: string;\n  icon?: LucideIcon;\n}\n\ninterface Education99Props {\n  badge?: { label: string; variant?: \"default\" | \"secondary\" | \"outline\" };\n  heading?: string;\n  description?: string;\n  stats?: StatItem[];\n  organizations?: OrganizationItem[];\n  className?: string;\n}\n\nexport const education99Demo: Education99Props = {\n  badge: { label: \"Global Network\", variant: \"secondary\" },\n  heading: \"International Partnerships\",\n  description:\n    \"We collaborate with leading institutions worldwide, providing students with global learning opportunities.\",\n  stats: [\n    { label: \"Countries\", value: \"45+\" },\n    { label: \"Partner Institutions\", value: \"150+\" },\n    { label: \"Annual Exchanges\", value: \"500+\" },\n  ],\n  organizations: [\n    {\n      id: \"1\",\n      name: \"University of Oxford\",\n      location: \"United Kingdom\",\n      icon: Building,\n    },\n    {\n      id: \"2\",\n      name: \"Technical University of Munich\",\n      location: \"Germany\",\n      icon: Building,\n    },\n    {\n      id: \"3\",\n      name: \"National University of Singapore\",\n      location: \"Singapore\",\n      icon: Building,\n    },\n    {\n      id: \"4\",\n      name: \"ETH Zurich\",\n      location: \"Switzerland\",\n      icon: Globe,\n    },\n    {\n      id: \"5\",\n      name: \"CERN\",\n      location: \"Switzerland\",\n      icon: Globe,\n    },\n    {\n      id: \"6\",\n      name: \"Microsoft Research\",\n      location: \"United States\",\n      icon: Users,\n    },\n  ],\n};\n\nexport function Education99({\n  badge,\n  heading,\n  description,\n  stats = [],\n  organizations = [],\n  className,\n}: Education99Props) {\n  const count = organizations.length;\n  const columnCount =\n    count >= 5 ? 3 : count % 4 === 0 ? 4 : count % 3 === 0 ? 3 : 2;\n  const gridCols =\n    columnCount === 4\n      ? \"lg:grid-cols-\"\n      : columnCount === 3\n      ? \"lg:grid-cols-3\"\n      : \"lg:grid-cols-2\";\n\n  return (\n    <section className={cn(\"py-16 md:py-24 w-full\", className)}>\n      <div className=\"mx-auto max-w-6xl px-4 md:px-6\">\n        <div className=\"mx-auto max-w-3xl text-center\">\n          {badge && (\n            <Badge variant={badge.variant} className=\"mb-4\">\n              {badge.label}\n            </Badge>\n          )}\n          {heading && (\n            <h2 className=\"text-3xl font-bold tracking-tight md:text-4xl\">\n              {heading}\n            </h2>\n          )}\n          {description && (\n            <p className=\"mt-4 text-lg text-muted-foreground\">{description}</p>\n          )}\n        </div>\n\n        {stats.length > 0 && (\n          <div className=\"mx-auto mt-12 flex max-w-3xl gap-6 md:gap-8 justify-center items-center\">\n            {stats.map((stat, i) => (\n              <div key={i} className=\"text-center\">\n                <p className=\"text-3xl font-bold text-primary\">{stat.value}</p>\n                <p className=\"mt-1 text-sm text-muted-foreground\">\n                  {stat.label}\n                </p>\n              </div>\n            ))}\n          </div>\n        )}\n\n        {organizations.length > 0 && (\n          <div\n            className={cn(\n              \"mx-auto mt-16 grid max-w-5xl gap-4 sm:grid-cols-2\",\n              gridCols\n            )}\n          >\n            {organizations.map((org) => {\n              const Icon = org.icon || Building;\n              return (\n                <div\n                  key={org.id ?? org.name}\n                  className={cn(\n                    \"flex items-center gap-3 rounded-lg border p-4\"\n                  )}\n                >\n                  <div className=\"flex size-10 shrink-0 items-center justify-center rounded-full bg-muted\">\n                    <Icon className=\"size-5 text-muted-foreground\" />\n                  </div>\n                  <div className=\"min-w-0\">\n                    <p className=\"truncate text-sm font-medium\">{org.name}</p>\n                    <p className=\"text-xs text-muted-foreground\">\n                      {org.location}\n                    </p>\n                  </div>\n                </div>\n              );\n            })}\n          </div>\n        )}\n      </div>\n    </section>\n  );\n}\n",
      "type": "registry:component",
      "target": "components/beste/block/education99.tsx"
    }
  ],
  "type": "registry:block"
}