{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "changelog-02",
  "title": "Changelog 02",
  "description": "A simple changelog block",
  "files": [
    {
      "path": "src/registry/blocks/radix/changelog-02/components/changelog.tsx",
      "content": "import { Separator } from \"@/registry/bases/radix/ui/separator\";\nimport { cn } from \"@/lib/utils\";\n\nconst changelogs = [\n  {\n    version: \"1.0.0\",\n    date: \"2025-06-01\",\n    title: \"Initial Launch\",\n    description:\n      \"We're live! The very first release of our Shadcn UI blocks is here. This version includes the core blocks, dark mode support, and a complete landing page setup to get you started. Thanks for being here from day one!\",\n    features: [\n      \"Released 10+ customized Shadcn UI blocks\",\n      \"Dark mode support\",\n      \"Landing page with hero, features, and footer sections\",\n    ],\n    isMajor: true,\n  },\n  {\n    version: \"1.1.0\",\n    date: \"2025-06-10\",\n    title: \"Pricing Block + Accessibility Improvements\",\n    description:\n      \"We've added a sleek pricing block with a monthly/yearly toggle. Accessibility improvements make your UI more inclusive, and we fixed a few layout issues to ensure a smoother mobile experience.\",\n    features: [\"Added pricing block with monthly/yearly toggle\"],\n    changes: [\"Improved accessibility for buttons and links\"],\n    fixes: [\"Fixed mobile layout issues on testimonials section\"],\n  },\n  {\n    version: \"1.2.0\",\n    date: \"2025-06-20\",\n    title: \"Blog Layout + Search Enhancements\",\n    description:\n      \"Introducing a brand-new blog layout designed for content creators. Search now supports fuzzy matching to make discovery easier. We've also optimized assets for faster load times.\",\n    features: [\"Introduced a clean blog layout for content creators\"],\n    changes: [\n      \"Search bar now uses fuzzy filtering\",\n      \"Optimized all images for performance and SEO\",\n    ],\n    isMajor: false,\n  },\n  {\n    version: \"1.3.0\",\n    date: \"2025-07-01\",\n    title: \"Premium Blocks & Theme Customization\",\n    description:\n      \"This is a big one! We're rolling out premium blocks for advanced use cases, along with filtering options and customizable color themes so you can match your brand identity effortlessly.\",\n    features: [\n      \"Launched premium blocks section\",\n      \"Added category and search filters\",\n      \"Introduced customizable color themes\",\n    ],\n    isMajor: false,\n  },\n  {\n    version: \"1.3.1\",\n    date: \"2025-07-05\",\n    title: \"Minor Fixes\",\n    description:\n      \"A quick patch to clean up a few UI glitches. Fixed image paths and polished up the theme switcher to eliminate flicker issues. Nothing major, but definitely smoother!\",\n    fixes: [\n      \"Fixed broken image links in logo cloud\",\n      \"Resolved theme switcher flicker issue on dark mode\",\n    ],\n    isMajor: false,\n  },\n].reverse();\n\nexport default function Changelog() {\n  return (\n    <section className=\"mx-auto max-w-3xl px-6 py-16\">\n      <h2 className=\"text-balance font-medium text-4xl tracking-tight\">\n        Changelog\n      </h2>\n      <p className=\"mt-2 text-balance text-lg text-muted-foreground tracking-[-0.015em] sm:mt-3 sm:text-xl\">\n        We ship fast. Track all the new features, updates, and fixes in one\n        place.\n      </p>\n\n      <Separator className=\"mt-9\" />\n\n      <div className=\"flex flex-col divide-y sm:mt-16 sm:divide-y-0\">\n        {changelogs.map((changelog) => (\n          <div\n            className=\"relative flex items-start gap-8 py-10 sm:border-l sm:first:pt-0 [&>div]:-mt-1\"\n            key={changelog.version}\n          >\n            <div className=\"sticky top-5 mt-1.5 hidden min-w-40 pl-8 text-lg text-muted-foreground tracking-tight sm:block\">\n              <p className=\"relative z-10 bg-background pl-3 text-base leading-none\">\n                {changelog.date}\n              </p>\n              {/* Dot */}\n              <div\n                className={cn(\n                  \"absolute inset-y-0 left-0 my-auto h-2 w-2 -translate-x-1/2 rounded-full bg-muted-foreground\",\n                  {\n                    \"bg-primary ring-[3px] ring-primary/30\": changelog.isMajor,\n                  }\n                )}\n              />\n              {/* Line */}\n              <div className=\"absolute inset-0 -z-10 my-auto h-px w-full bg-border\" />\n            </div>\n            <div>\n              <h3 className=\"-mt-[0.2lh] font-medium text-2xl tracking-[-0.02em]\">\n                {changelog.title}\n              </h3>\n              <span className=\"mt-2 block text-lg text-muted-foreground tracking-tight sm:hidden\">\n                {changelog.date}\n              </span>\n\n              <p className=\"mt-3 text-muted-foreground\">\n                {changelog.description}\n              </p>\n\n              <div className=\"mt-4 space-y-4\">\n                {changelog.features && (\n                  <div>\n                    <h4 className=\"mb-1 flex items-center gap-2 font-medium text-lg\">\n                      Features:\n                    </h4>\n                    <ul className=\"list-disc pl-5 text-muted-foreground\">\n                      {changelog.features?.map((feature) => (\n                        <li key={feature}>{feature}</li>\n                      ))}\n                    </ul>\n                  </div>\n                )}\n\n                {changelog.changes && (\n                  <div>\n                    <h4 className=\"mb-1 flex items-center gap-2 font-medium text-lg\">\n                      Changes:\n                    </h4>\n                    <ul className=\"list-disc pl-5 text-muted-foreground\">\n                      {changelog.changes?.map((change) => (\n                        <li key={change}>{change}</li>\n                      ))}\n                    </ul>\n                  </div>\n                )}\n\n                {changelog.fixes && (\n                  <div>\n                    <h4 className=\"mb-1 flex items-center gap-2 font-medium text-lg\">\n                      Fixes:\n                    </h4>\n                    <ul className=\"list-disc pl-5 text-muted-foreground\">\n                      {changelog.fixes?.map((fix) => (\n                        <li key={fix}>{fix}</li>\n                      ))}\n                    </ul>\n                  </div>\n                )}\n              </div>\n            </div>\n          </div>\n        ))}\n      </div>\n    </section>\n  );\n}\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:block"
}