{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "callout",
  "title": "Callout Block",
  "description": "Note, tip, warning, important, and TLDR callouts.",
  "dependencies": [
    "@contentbit/core",
    "@contentbit/blocks",
    "@contentbit/react",
    "lucide-react"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "src/blocks/callout.tsx",
      "content": "import { calloutBlock } from '@contentbit/blocks'\nimport { defineBlockComponent } from '@contentbit/react'\nimport type { LucideIcon } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\nimport { Info, Lightbulb, OctagonAlert, Sparkles, TriangleAlert } from 'lucide-react'\n\ninterface Variant {\n  border: string\n  head: string\n  icon: LucideIcon\n  label: string\n}\n\nconst VARIANTS: Record<string, Variant> = {\n  note: {\n    border: 'border-border',\n    head: 'bg-muted/60 text-muted-foreground',\n    icon: Info,\n    label: 'Note',\n  },\n  tip: {\n    border: 'border-emerald-500/30',\n    head: 'bg-emerald-500/[0.07] text-emerald-700 dark:text-emerald-400',\n    icon: Lightbulb,\n    label: 'Tip',\n  },\n  warning: {\n    border: 'border-amber-500/30',\n    head: 'bg-amber-500/[0.08] text-amber-700 dark:text-amber-400',\n    icon: TriangleAlert,\n    label: 'Warning',\n  },\n  important: {\n    border: 'border-rose-500/30',\n    head: 'bg-rose-500/[0.07] text-rose-700 dark:text-rose-400',\n    icon: OctagonAlert,\n    label: 'Important',\n  },\n  tldr: {\n    border: 'border-sky-500/30',\n    head: 'bg-sky-500/[0.07] text-sky-700 dark:text-sky-400',\n    icon: Sparkles,\n    label: 'TL;DR',\n  },\n}\n\nexport const CalloutBlock = defineBlockComponent(calloutBlock, ({ node, ctx }) => {\n  const data = node.data\n  const type = node.props.type\n  const title = node.props.title\n  const variant = VARIANTS[type] ?? VARIANTS.note\n  const Icon = variant.icon\n  return (\n    <aside data-cb-styled className={cn('bg-card my-6 border', variant.border)}>\n      <div className={cn('flex items-center gap-2 border-b px-4 py-2', variant.head)}>\n        <Icon className=\"size-3.5 shrink-0\" aria-hidden strokeWidth={2.5} />\n        <span className=\"font-mono text-[11px] font-semibold tracking-wider uppercase\">\n          {variant.label}\n        </span>\n        {title ? <span className=\"text-foreground ml-1 text-sm font-medium\">{title}</span> : null}\n      </div>\n      <div className=\"px-4 py-3 text-sm leading-relaxed [&>p]:m-0 [&>p+p]:mt-2\">\n        {ctx.renderMarkdown(data.markdown)}\n      </div>\n    </aside>\n  )\n})\n",
      "type": "registry:component",
      "target": "components/content-blocks/callout.tsx"
    }
  ],
  "type": "registry:component"
}