{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "astro-pros-cons",
  "title": "Pros & Cons Block (Astro)",
  "description": "Paired advantages and disadvantages.",
  "dependencies": [
    "@contentbit/core",
    "@contentbit/blocks",
    "@contentbit/astro"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "src/astro/pros-cons.astro",
      "content": "---\nimport type { ProsConsData } from '@contentbit/blocks'\nimport type { ValidatedBlockNode } from '@contentbit/core'\nimport type { AstroBlockContext } from '@contentbit/astro'\n\nimport { splitProsCons } from '@contentbit/blocks'\n\ninterface Props {\n  node: ValidatedBlockNode<unknown>\n  ctx: AstroBlockContext\n}\n\nconst { node, ctx } = Astro.props\nconst { pros, cons } = splitProsCons(node.data as ProsConsData)\nconst [renderedPros, renderedCons] = await Promise.all([\n  Promise.all(pros.map((item) => ctx.renderMarkdown(item))),\n  Promise.all(cons.map((item) => ctx.renderMarkdown(item))),\n])\n\n// Inline lucide paths: check, x.\nconst CHECK = '<path d=\"M20 6 9 17l-5-5\"/>'\nconst X = '<path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/>'\n\nconst columns = [\n  {\n    heading: 'Pros',\n    items: renderedPros,\n    path: CHECK,\n    head: 'bg-emerald-500/[0.07] text-emerald-700 dark:text-emerald-400',\n    mark: 'text-emerald-600 dark:text-emerald-500',\n  },\n  {\n    heading: 'Cons',\n    items: renderedCons,\n    path: X,\n    head: 'bg-rose-500/[0.07] text-rose-700 dark:text-rose-400',\n    mark: 'text-rose-600 dark:text-rose-500',\n  },\n]\n---\n\n<div data-cb-styled class=\"my-6 grid gap-3 sm:grid-cols-2\">\n  {\n    columns.map((col) => (\n      <div class=\"bg-card overflow-hidden rounded-lg border\">\n        <div class:list={['flex items-center gap-2 border-b px-4 py-2.5', col.head]}>\n          <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"3\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n            class=\"size-3.5\"\n            aria-hidden=\"true\"\n            set:html={col.path}\n          />\n          <span class=\"text-xs font-semibold tracking-wider uppercase\">{col.heading}</span>\n        </div>\n        <ul class=\"list-none space-y-2 p-4 text-sm\">\n          {col.items.map((html) => (\n            <li class=\"flex gap-2.5\">\n              <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 24 24\"\n                fill=\"none\"\n                stroke=\"currentColor\"\n                stroke-width=\"2.5\"\n                stroke-linecap=\"round\"\n                stroke-linejoin=\"round\"\n                class:list={['mt-1 size-3.5 shrink-0', col.mark]}\n                aria-hidden=\"true\"\n                set:html={col.path}\n              />\n              <div class=\"min-w-0 leading-relaxed [&>p]:m-0\" set:html={html} />\n            </li>\n          ))}\n        </ul>\n      </div>\n    ))\n  }\n</div>\n",
      "type": "registry:component",
      "target": "components/content-blocks/pros-cons.astro"
    }
  ],
  "type": "registry:component"
}