{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "prose",
  "title": "Prose",
  "description": "Long-form content wrapper that styles raw HTML descendants with the token-driven type scale.",
  "dependencies": [
    "@vllnt/ui@^0.3.0"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/default/prose/prose.tsx",
      "content": "import { cn } from \"@vllnt/ui\";\n\n/** Props for {@link Prose}. */\nexport type ProseProps = React.HTMLAttributes<HTMLDivElement> & {\n  ref?: React.Ref<HTMLDivElement>;\n};\n\nconst proseStyles = cn(\n  \"font-[family-name:var(--font-sans)] text-[length:var(--font-size-body)] leading-[var(--line-height-body)] text-foreground\",\n  \"[&>*+*]:mt-4\",\n  \"[&_h1]:mt-8 [&_h1]:font-[family-name:var(--font-display)] [&_h1]:[font-weight:var(--font-weight-heading)] [&_h1]:text-[length:var(--font-size-h1)] [&_h1]:leading-[var(--line-height-h1)] [&_h1]:tracking-tight\",\n  \"[&_h2]:mt-8 [&_h2]:font-[family-name:var(--font-display)] [&_h2]:[font-weight:var(--font-weight-heading)] [&_h2]:text-[length:var(--font-size-h2)] [&_h2]:leading-[var(--line-height-h2)] [&_h2]:tracking-tight\",\n  \"[&_h3]:mt-6 [&_h3]:font-[family-name:var(--font-display)] [&_h3]:[font-weight:var(--font-weight-heading)] [&_h3]:text-[length:var(--font-size-h3)] [&_h3]:leading-[var(--line-height-h3)] [&_h3]:tracking-tight\",\n  \"[&_h4]:mt-6 [&_h4]:font-[family-name:var(--font-display)] [&_h4]:[font-weight:var(--font-weight-heading)] [&_h4]:text-[length:var(--font-size-h4)] [&_h4]:leading-[var(--line-height-h4)] [&_h4]:tracking-tight\",\n  \"[&_p]:text-[length:var(--font-size-body)] [&_p]:leading-[var(--line-height-body)]\",\n  \"[&_ul]:my-4 [&_ul]:ml-6 [&_ul]:list-disc [&_ol]:my-4 [&_ol]:ml-6 [&_ol]:list-decimal [&_li]:mt-2\",\n  \"[&_a]:font-medium [&_a]:underline [&_a]:underline-offset-4\",\n  \"[&_blockquote]:mt-6 [&_blockquote]:border-l-2 [&_blockquote]:border-border [&_blockquote]:pl-6 [&_blockquote]:italic\",\n  \"[&_code]:rounded [&_code]:bg-muted [&_code]:px-[0.3rem] [&_code]:py-[0.2rem] [&_code]:font-mono [&_code]:text-[0.9em]\",\n  \"[&_strong]:font-semibold\",\n);\n\n/**\n * Long-form content wrapper. Styles raw HTML descendants (headings, paragraphs,\n * lists, quotes, code) with the token-driven type scale, so markdown/CMS output\n * adopts the design system without per-element classes.\n *\n * Prose does not sanitize — sanitize any untrusted CMS/markdown HTML before\n * rendering it inside Prose.\n *\n * @example\n * <Prose>{parsedMarkdown}</Prose>\n */\nconst Prose = ({ className, ref, ...props }: ProseProps) => (\n  <div className={cn(proseStyles, className)} ref={ref} {...props} />\n);\nProse.displayName = \"Prose\";\n\nexport { Prose };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component",
  "version": "0.3.0",
  "stability": "stable",
  "a11y": {
    "notes": "Styling-only wrapper that preserves the semantics of the HTML you nest (headings, lists, quotes, code), so document structure and reading order come from your content."
  }
}
