{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "hero-01",
  "title": "Hero — Centered",
  "author": "SAASTRO <https://saastro.io>",
  "description": "Centered hero with badge, heading, description, and dual CTA buttons. Zero-JS Astro component.",
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/blocks/hero-01.astro",
      "content": "---\n/**\n * hero-01 — Hero centrado con badge, título, descripción y doble CTA.\n * Bloque Astro puro: cero JS, cero dependencias (ni React ni primitivas).\n * Las clases de botón/badge replican el estilo base-nova de shadcn.\n */\ninterface Props {\n  badge?: string;\n  title: string;\n  description: string;\n  primaryCta: { label: string; href: string };\n  secondaryCta?: { label: string; href: string };\n  class?: string;\n}\nconst { badge, title, description, primaryCta, secondaryCta, class: className } = Astro.props;\n\nconst btn =\n  'inline-flex h-9 shrink-0 items-center justify-center gap-1.5 rounded-lg border border-transparent px-2.5 text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:translate-y-px';\nconst btnPrimary = 'bg-primary text-primary-foreground hover:bg-primary/80';\nconst btnOutline =\n  'border-border bg-background hover:bg-muted hover:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50';\nconst badgeCls =\n  'mb-4 inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent bg-secondary px-2 py-0.5 text-xs font-medium whitespace-nowrap text-secondary-foreground';\n---\n\n<section class:list={['w-full px-6 py-24 md:py-32 lg:py-40', className]}>\n  <div class=\"mx-auto max-w-3xl text-center\">\n    {badge && <span class={badgeCls}>{badge}</span>}\n    <h1 class=\"text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl\">{title}</h1>\n    <p class=\"mt-6 text-lg text-muted-foreground sm:text-xl\">{description}</p>\n    <div class=\"mt-10 flex items-center justify-center gap-4\">\n      <a href={primaryCta.href} class:list={[btn, btnPrimary]}>{primaryCta.label}</a>\n      {secondaryCta && (\n        <a href={secondaryCta.href} class:list={[btn, btnOutline]}>{secondaryCta.label}</a>\n      )}\n    </div>\n  </div>\n</section>\n",
      "type": "registry:component",
      "target": "@components/blocks/hero-01.astro"
    }
  ],
  "meta": {
    "group": "Hero",
    "iframeHeight": "760px"
  },
  "docs": "Astro component — zero JS, no React required. Default import: `import Hero01 from '@/components/blocks/hero-01.astro'` and render statically. Props: badge?, title, description, primaryCta {label, href}, secondaryCta?, class?.",
  "categories": [
    "hero",
    "landing"
  ],
  "type": "registry:block"
}