{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "status-page-shell",
  "title": "Status Page Shell",
  "description": "Outer chrome wrappers (StatusPageShell + StatusPageMain) around header / main / footer. Routing-agnostic with embed-aware Tailwind classes that activate only when an ancestor sets data-embed",
  "files": [
    {
      "path": "src/components/blocks/status-page-shell.tsx",
      "content": "import { cn } from \"@/lib/utils\";\n\n/**\n * StatusPageShell — outer chrome wrapper around `<header>`, `<main>`, and\n * `<footer>`.\n *\n * Bare structural `<div>` with sensible defaults (full-height column with\n * gap). Routing-agnostic: it knows nothing about embed mode. Apps that\n * support embedding wrap this with their own provider that toggles\n * `group/embed` + `data-embed` / `data-hide-*` attributes from above.\n *\n * Override `min-h-screen` via `className` (e.g. `min-h-0`) when mounting\n * inside a constrained container like a dashboard preview card.\n */\nexport function StatusPageShell({\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"status-page-shell\"\n      className={cn(\"flex min-h-screen flex-col gap-4\", className)}\n      {...props}\n    />\n  );\n}\n\n/**\n * StatusPageMain — inner `<main>` content column.\n *\n * Centers content at `max-w-2xl` with the canonical padding and column\n * layout. Routing- and embed-agnostic: callers that support an embed mode\n * layer their own `group-data-*` classes via `className`.\n */\nexport function StatusPageMain({\n  className,\n  ...props\n}: React.ComponentProps<\"main\">) {\n  return (\n    <main\n      data-slot=\"status-page-main\"\n      className={cn(\n        \"mx-auto flex w-full max-w-2xl flex-1 flex-col px-3 py-2\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:ui",
      "target": "components/blocks/status-page-shell.tsx"
    }
  ],
  "type": "registry:block"
}