{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "changelog-1",
  "title": "Version Rail Release Notes",
  "description": "Changelog with a date and version rail on the left and Added, Improved, and Fixed change groups bulleted on the right.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "badge",
    "separator"
  ],
  "files": [
    {
      "path": "registry/blocks/changelog/1/changelog-block.tsx",
      "content": "import { Badge } from \"@/components/ui/badge\"\nimport { Separator } from \"@/components/ui/separator\"\n\ntype ChangeType = \"Added\" | \"Improved\" | \"Fixed\"\n\ntype Release = {\n  version: string\n  date: string\n  summary: string\n  groups: { type: ChangeType; items: string[] }[]\n}\n\nconst releases: Release[] = [\n  {\n    version: \"2.4.0\",\n    date: \"Jun 18, 2026\",\n    summary: \"Faster search and a refreshed billing experience.\",\n    groups: [\n      {\n        type: \"Added\",\n        items: [\n          \"Command palette now searches across projects, members, and files.\",\n          \"Export any table to CSV from the toolbar.\",\n        ],\n      },\n      {\n        type: \"Improved\",\n        items: [\n          \"Billing page loads roughly twice as fast on large workspaces.\",\n          \"Clearer empty states across the dashboard.\",\n        ],\n      },\n      {\n        type: \"Fixed\",\n        items: [\"Resolved a rare sync error when renaming a workspace.\"],\n      },\n    ],\n  },\n  {\n    version: \"2.3.0\",\n    date: \"May 30, 2026\",\n    summary: \"Team workspaces and role-based access.\",\n    groups: [\n      {\n        type: \"Added\",\n        items: [\n          \"Invite teammates with Admin, Editor, or Viewer roles.\",\n          \"Shared component libraries scoped to a workspace.\",\n        ],\n      },\n      {\n        type: \"Fixed\",\n        items: [\n          \"Dark mode contrast on secondary buttons.\",\n          \"Pagination on the activity feed no longer skips a page.\",\n        ],\n      },\n    ],\n  },\n  {\n    version: \"2.2.1\",\n    date: \"May 12, 2026\",\n    summary: \"Stability and polish.\",\n    groups: [\n      {\n        type: \"Improved\",\n        items: [\"Keyboard navigation in dialogs and menus.\"],\n      },\n      {\n        type: \"Fixed\",\n        items: [\"A layout shift when toggling the sidebar.\"],\n      },\n    ],\n  },\n]\n\nexport default function ChangelogBlock() {\n  return (\n    <section className=\"flex w-full items-center justify-center bg-background px-6 py-16 text-foreground\">\n      <div className=\"mx-auto w-full max-w-3xl\">\n        <div className=\"mb-12\">\n          <Badge variant=\"outline\" className=\"mb-4\">\n            Changelog\n          </Badge>\n          <h2 className=\"font-heading text-3xl font-bold tracking-tight\">\n            What&apos;s new\n          </h2>\n          <p className=\"mt-3 text-muted-foreground\">\n            Product updates, improvements, and fixes, shipped regularly.\n          </p>\n        </div>\n\n        <div className=\"flex flex-col gap-10\">\n          {releases.map((release, i) => (\n            <div key={release.version}>\n              {i > 0 && <Separator className=\"mb-10\" />}\n              <div className=\"grid gap-x-8 gap-y-5 md:grid-cols-[180px_1fr]\">\n                <div className=\"flex flex-col items-start gap-1.5\">\n                  <Badge variant=\"secondary\" className=\"font-mono tabular-nums\">\n                    {release.version}\n                  </Badge>\n                  <span className=\"text-xs text-muted-foreground tabular-nums\">\n                    {release.date}\n                  </span>\n                  <p className=\"mt-1 hidden text-sm text-muted-foreground md:block\">\n                    {release.summary}\n                  </p>\n                </div>\n\n                <div className=\"flex flex-col gap-5\">\n                  {release.groups.map((group) => (\n                    <div key={group.type} className=\"flex flex-col gap-2\">\n                      <h3 className=\"font-heading text-sm font-semibold\">\n                        {group.type}\n                      </h3>\n                      <ul className=\"flex flex-col gap-1.5 pl-4.5\">\n                        {group.items.map((item) => (\n                          <li\n                            key={item}\n                            className=\"list-disc text-sm/relaxed text-muted-foreground marker:text-muted-foreground/40\"\n                          >\n                            {item}\n                          </li>\n                        ))}\n                      </ul>\n                    </div>\n                  ))}\n                </div>\n              </div>\n            </div>\n          ))}\n        </div>\n      </div>\n    </section>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/blocks/changelog-1.tsx"
    }
  ],
  "meta": {
    "height": "1008px",
    "tier": "free"
  },
  "categories": [
    "changelog"
  ],
  "type": "registry:block"
}