{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "admin-home",
  "title": "Admin home",
  "description": "The built-in home page under a View-backed section.",
  "files": [
    {
      "path": "registry/admin-home.tsx",
      "content": "import { type HomeProps, type SlotProps } from \"@aotter/mantle-admin/app\";\nimport { useView } from \"@aotter/mantle-admin/hooks\";\n\n/**\n * Surface: browser (Admin's own page only; an MCP host never renders it).\n * Slots: Home\n * Rules: read data only through @aotter/mantle-admin/hooks and link with <AdminLink>. Pass the props you\n * received to `renderDefault`; spread them to change some.\n */\n\n/** The built-in home page under a section listing the first rows of the admin View `pending-requests`. */\nexport function AdminHome(props: SlotProps<HomeProps>) {\n  const queue = useView(\"pending-requests\", {}, { limit: 5 });\n  return (\n    <>\n      {queue.status === \"ready\" ? (\n        <section className=\"mb-6 rounded-lg border p-4\">\n          <h2 className=\"mb-2 text-sm font-semibold\">Waiting for you ({queue.rows.length}{queue.hasMore ? \"+\" : \"\"})</h2>\n          <ul className=\"space-y-1 text-sm\">\n            {queue.rows.map((row, index) => <li key={index} className=\"truncate\">{String(Object.values(row)[0] ?? \"\")}</li>)}\n          </ul>\n        </section>\n      ) : null}\n      {props.renderDefault(props)}\n    </>\n  );\n}\n",
      "type": "registry:component",
      "target": "~/src/admin/admin-home.tsx"
    }
  ],
  "meta": {
    "surface": "browser",
    "slots": [
      "Home"
    ]
  },
  "type": "registry:component"
}