{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "activity-3",
  "description": "An audit log feed with action-type icon tiles, a two-line event title and detail, a type tag, and a timestamp. For system, security, and audit activity without avatars.",
  "dependencies": [
    "@remixicon/react",
    "@base-ui/react"
  ],
  "registryDependencies": [
    "badge"
  ],
  "files": [
    {
      "path": "registry/blocks/activity/3/activity-block.tsx",
      "content": "import {\n  RiGitMergeLine,\n  RiUploadCloud2Line,\n  RiUserAddLine,\n  RiErrorWarningLine,\n  RiKey2Line,\n} from \"@remixicon/react\"\n\nimport { Badge } from \"@/components/ui/badge\"\n\ntype Event = {\n  icon: typeof RiGitMergeLine\n  title: string\n  detail: string\n  tag: string\n  time: string\n}\n\nconst events: Event[] = [\n  {\n    icon: RiGitMergeLine,\n    title: \"feat/auth-refresh merged\",\n    detail: \"Mara Ellis merged 12 commits into main.\",\n    tag: \"Deploy\",\n    time: \"12 Min Ago\",\n  },\n  {\n    icon: RiUploadCloud2Line,\n    title: \"Production deploy v2.4.1\",\n    detail: \"Build passed and shipped in 4m 12s.\",\n    tag: \"Deploy\",\n    time: \"1 Hour Ago\",\n  },\n  {\n    icon: RiKey2Line,\n    title: \"API key rotated\",\n    detail: \"Leo Tanaka revoked and reissued the production key.\",\n    tag: \"Security\",\n    time: \"3 Hours Ago\",\n  },\n  {\n    icon: RiUserAddLine,\n    title: \"Two members invited\",\n    detail: \"Owen Brooks invited design@acme.com and one other.\",\n    tag: \"Team\",\n    time: \"5 Hours Ago\",\n  },\n  {\n    icon: RiErrorWarningLine,\n    title: \"Usage limit warning\",\n    detail: \"Workspace reached 85% of the monthly API quota.\",\n    tag: \"Alert\",\n    time: \"Yesterday\",\n  },\n]\n\nexport default function ActivityBlock() {\n  return (\n    <section className=\"flex w-full items-center justify-center bg-background px-6 py-16 text-foreground\">\n      <div className=\"w-full max-w-lg border border-border bg-background\">\n        <div className=\"flex items-center justify-between border-b border-border px-5 py-4\">\n          <h2 className=\"text-sm font-semibold\">Audit Log</h2>\n          <Badge variant=\"secondary\">Last 24 Hours</Badge>\n        </div>\n\n        <ul className=\"flex flex-col divide-y divide-border\">\n          {events.map((event) => (\n            <li key={event.title} className=\"flex items-start gap-3 px-5 py-4\">\n              <span className=\"flex size-9 shrink-0 items-center justify-center border border-border bg-muted/40 text-muted-foreground\">\n                <event.icon className=\"size-4.5\" aria-hidden=\"true\" />\n              </span>\n              <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n                <div className=\"flex items-center gap-2\">\n                  <h3 className=\"truncate text-sm font-semibold\">\n                    {event.title}\n                  </h3>\n                  <Badge variant=\"outline\" className=\"shrink-0\">\n                    {event.tag}\n                  </Badge>\n                </div>\n                <p className=\"text-xs/relaxed text-muted-foreground\">\n                  {event.detail}\n                </p>\n              </div>\n              <span className=\"shrink-0 text-xs text-muted-foreground tabular-nums\">\n                {event.time}\n              </span>\n            </li>\n          ))}\n        </ul>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:component"
    }
  ],
  "meta": {
    "height": "65vh",
    "tier": "free"
  },
  "categories": [
    "activity"
  ],
  "type": "registry:block"
}