{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "error-4",
  "title": "403 Access Denied",
  "description": "403 access denied page with a lock icon, an explanation of the missing permission, and Back To Dashboard plus Request Access actions.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "button"
  ],
  "files": [
    {
      "path": "registry/blocks/error/4/error-block.tsx",
      "content": "import { Button } from \"@/components/ui/button\"\nimport { IconPlaceholder } from \"@/components/icons/icon-placeholder\"\n\nexport default function ErrorBlock() {\n  return (\n    <section className=\"flex min-h-svh w-full items-center justify-center bg-background px-6 py-16 text-foreground\">\n      <div className=\"mx-auto flex max-w-md flex-col items-center text-center\">\n        <span\n          className=\"flex size-14 items-center justify-center rounded-lg border border-border bg-muted/40\"\n          aria-hidden=\"true\"\n        >\n          <IconPlaceholder\n            lucide=\"Lock\"\n            tabler=\"IconLock\"\n            hugeicons=\"LockIcon\"\n            phosphor=\"Lock\"\n            remixicon=\"RiLock2Line\"\n            className=\"size-6\"\n          />\n        </span>\n        <p className=\"mt-6 text-xs font-semibold tracking-widest text-muted-foreground uppercase\">\n          Error 403\n        </p>\n        <h1 className=\"mt-2 font-heading text-2xl font-bold tracking-tight sm:text-3xl\">\n          Access denied\n        </h1>\n        <p className=\"mt-3 text-sm text-pretty text-muted-foreground\">\n          You don&apos;t have permission to view this page. If you think this is\n          a mistake, ask a workspace admin to grant you access.\n        </p>\n        <div className=\"mt-8 flex flex-col gap-3 sm:flex-row\">\n          <Button render={<a href=\"#\" />} nativeButton={false}>\n            <IconPlaceholder\n              lucide=\"ArrowLeft\"\n              tabler=\"IconArrowLeft\"\n              hugeicons=\"ArrowLeftIcon\"\n              phosphor=\"ArrowLeft\"\n              remixicon=\"RiArrowLeftLine\"\n              data-icon=\"inline-start\"\n              aria-hidden=\"true\"\n            />\n            Back to dashboard\n          </Button>\n          <Button\n            render={<a href=\"#\" />}\n            nativeButton={false}\n            variant=\"outline\"\n          >\n            Request access\n          </Button>\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/blocks/error-4.tsx"
    }
  ],
  "meta": {
    "height": "392px",
    "tier": "free"
  },
  "docs": "Requires a `base-*` style in components.json (the `shadcn init` default). Legacy `new-york`/`radix-*` styles install Radix primitives, which reject the `render` prop this block uses.",
  "categories": [
    "error"
  ],
  "type": "registry:block"
}