{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "cta",
  "title": "CTA (Call to Action)",
  "description": "Shared CTA component with link and button variant",
  "dependencies": [
    "class-variance-authority"
  ],
  "registryDependencies": [
    "button"
  ],
  "files": [
    {
      "path": "registry/blocks/shared/cta.tsx",
      "content": "import { cva } from 'class-variance-authority'\n\nimport { Button, buttonVariants } from '@/components/ui/button'\nimport { cn } from '@/lib/utils'\n\nexport type ButtonVariant =\n  'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\n\nexport interface CtaProps {\n  ctaEnabled?: boolean\n  text: string\n  link: string\n  variant?: ButtonVariant\n  size?: 'default' | 'sm' | 'lg'\n}\n\nconst ctaVariants = cva('w-fit rounded-full px-4', {\n  variants: {\n    invert: {\n      true: 'bg-white! text-zinc-900! border-transparent! hover:bg-zinc-100!',\n      false: '',\n    },\n  },\n  defaultVariants: {\n    invert: false,\n  },\n})\n\nexport function Cta({\n  cta,\n  className,\n  invert,\n}: Readonly<{ cta?: CtaProps; className?: string; invert?: boolean }>) {\n  if (!cta?.ctaEnabled) {\n    return null\n  }\n\n  const variant = cta.variant ?? (invert ? 'secondary' : 'default')\n\n  if (!cta?.link) {\n    return (\n      <Button\n        className={cn(ctaVariants({ invert }), className)}\n        variant={variant}\n        size={cta?.size ?? 'default'}\n        aria-label={cta?.text}\n        type=\"button\"\n      >\n        {cta?.text}\n      </Button>\n    )\n  }\n\n  return (\n    <a\n      href={cta.link}\n      target=\"_blank\"\n      rel=\"noopener noreferrer\"\n      aria-label={cta?.text}\n      className={cn(\n        buttonVariants({\n          variant,\n          size: cta?.size ?? 'default',\n          className: cn(ctaVariants({ invert }), className),\n        }),\n      )}\n    >\n      {cta?.text}\n      <span className=\"sr-only\">{`${cta?.text} (opens in new tab)`}</span>\n    </a>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/flx/blocks/shared/cta.tsx"
    }
  ],
  "type": "registry:block"
}