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`, `
` / `` 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
* `