{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "error9",
  "title": "404 Did You Mean",
  "description": "Left-aligned 404 for documentation and marketing sites: the requested path is shown struck through in monospace above a did-you-mean box linking to the closest matching page.",
  "dependencies": [
    "clsx",
    "tailwind-merge",
    "lucide-react"
  ],
  "registryDependencies": [
    "button"
  ],
  "files": [
    {
      "path": "registry/error9/error9.tsx",
      "content": "\"use client\";\n\nimport { CornerDownRight } from \"lucide-react\";\nimport Link from \"next/link\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\ninterface ActionLink {\n  label: string;\n  href: string;\n}\n\ninterface Error9Props {\n  code?: string;\n  heading?: string;\n  description?: string;\n  requestedPath?: string;\n  suggestionLabel?: string;\n  suggestion?: ActionLink;\n  button?: ActionLink;\n  className?: string;\n}\n\nexport const error9Demo: Error9Props = {\n  code: \"404\",\n  heading: \"That page moved\",\n  description:\n    \"We could not match this address, but one page comes close. Old links keep working for six months after a move.\",\n  requestedPath: \"/docs/install/quick-start\",\n  suggestionLabel: \"Did you mean\",\n  suggestion: {\n    label: \"/docs/getting-started\",\n    href: \"https://beste.co\",\n  },\n  button: {\n    label: \"Back to home\",\n    href: \"https://beste.co\",\n  },\n};\n\nexport function Error9({\n  code,\n  heading,\n  description,\n  requestedPath,\n  suggestionLabel,\n  suggestion,\n  button,\n  className,\n}: Error9Props) {\n  return (\n    <section className={cn(\"py-16 md:py-24 w-full\", className)}>\n      <div className=\"mx-auto max-w-xl px-4 md:px-6\">\n        {code && (\n          <p className=\"text-sm font-medium uppercase tracking-wider text-muted-foreground\">\n            {code}\n          </p>\n        )}\n\n        {heading && (\n          <h1 className=\"mt-4 text-balance text-3xl font-bold tracking-tight md:text-4xl\">\n            {heading}\n          </h1>\n        )}\n\n        {description && (\n          <p className=\"mt-4 text-base text-muted-foreground md:text-lg\">\n            {description}\n          </p>\n        )}\n\n        {requestedPath && (\n          <p className=\"mt-8 truncate font-mono text-sm text-muted-foreground line-through\">\n            {requestedPath}\n          </p>\n        )}\n\n        {suggestion && (\n          <div className=\"mt-3 flex items-start gap-3 rounded-md border bg-muted p-4\">\n            <CornerDownRight className=\"mt-0.5 size-4 shrink-0 text-muted-foreground\" />\n            <p className=\"min-w-0 text-sm\">\n              {suggestionLabel && (\n                <span className=\"text-muted-foreground\">\n                  {suggestionLabel}{\" \"}\n                </span>\n              )}\n              <Link\n                href={suggestion.href}\n                className=\"break-all font-mono font-medium text-foreground underline underline-offset-4\"\n              >\n                {suggestion.label}\n              </Link>\n            </p>\n          </div>\n        )}\n\n        {button && (\n          <div className=\"mt-8\">\n            <Button variant=\"outline\" asChild>\n              <Link href={button.href}>{button.label}</Link>\n            </Button>\n          </div>\n        )}\n      </div>\n    </section>\n  );\n}\n",
      "type": "registry:component",
      "target": "components/beste/block/error9.tsx"
    }
  ],
  "type": "registry:block"
}