# MermaidBlockNode (Component)
`MermaidBlockNode` 提供一个易于使用且可扩展的 Mermaid 渲染器,适用于需要在文档中内嵌交互式 Mermaid 图的场景。组件支持渐进式渲染、源码/预览切换、复制源码、导出 SVG,以及伪全屏查看(带缩放与拖拽)。
## Props(关键)
- `node: any` — Mermaid 代码节点(必须)
- `isDark?: boolean` — 暗色模式开关
- `loading?: boolean` — 初始加载占位
- `maxHeight?: string | null` — 最大高度
- `estimatedPreviewHeightPx?: number` — Mermaid 完成渲染前预留的首屏 preview 高度;通过 `MarkdownRender` 渲染 Mermaid 围栏时会自动填入
- `isStrict?: boolean` — 开启 `securityLevel: 'strict'` + DOMPurify,并禁用 HTML labels;用于渲染不可信的 Mermaid 输入(例如用户/LLM 生成的内容),防止 `
```
> 注意:`export` / `openModal` 事件的事件对象现已同时包含 `svgElement`(DOM 节点)和 `svgString`(已序列化的 SVG 字符串),任选其一使用更方便。
## Slot 示例:完全接管右侧操作按钮
```vue
```
## 推荐用法
- 如果你要实现自定义导出/上传,最佳做法是:在 `export` 监听器中 `preventDefault()`,并在监听回调中直接从组件渲染的 DOM 中读取 `svg`。
- 如果你想要完全替换头部的 UI,使用 `header-*` 插槽并把相应 `show*` props 设为 `false` 来隐藏默认按钮。
- 若 Mermaid 内容来自用户/LLM 或任何不可信来源,建议加上 `:is-strict="true"`,组件会对 SVG 进行清理并禁用 HTML labels,从而堵住恶意 `