import { Components } from 'react-markdown'; export interface MarkdownContentProps { /** Markdown source. */ content: string; /** * Element overrides. Consumers (`MarkdownUI`, `Note`, …) supply their own * typography / link styling here; the engine itself stays opinion-free. */ components?: Components; /** * When `true`, raw HTML in the source is rendered. Defaults to `false` so * caption slots like `Note` stay safe-by-default; the document-style * Markdown widget opts in. */ allowHtml?: boolean; /** * When `true`, `` / `![alt](url)` markdown produces an `` tag. * Defaults to `false` so caption slots stay text-only by default. */ allowImages?: boolean; /** * When `true`, enables GitHub Flavored Markdown (tables, strikethrough, * task lists, autolinks) via `remark-gfm`. Defaults to `false` so existing * consumers keep CommonMark-only parsing. */ gfm?: boolean; } /** * Low-level Markdown rendering primitive. Wraps `react-markdown` with two * opt-in capabilities (`allowHtml`, `allowImages`) and a consumer-supplied * component map for typography. Both default OFF — Note-style consumers * are safe-by-default; MarkdownUI opts both ON to render rich content. * * `allowHtml` plugs in `rehype-raw` so raw HTML nodes in the source are * actually parsed, then `rehype-sanitize` with the default schema strips * `