export declare const mermaidPreTemplate = "import React from \"react\";\nimport { Pre, extractAllTextFromChildren } from \"@/components/MDXComponents\";\nimport { Code as CodeBlock } from \"@/components/layout/Code\";\nimport { MermaidView, MermaidPlacement } from \"@/components/layout/Mermaid\";\nimport { parseCodeMeta } from \"@/utils/parseCodeMeta\";\nimport { renderDiagram } from \"@/utils/mermaid\";\n\nconst PLACEMENTS: MermaidPlacement[] = [\n \"top-left\",\n \"top-right\",\n \"bottom-left\",\n \"bottom-right\",\n];\n\ninterface PreProps extends React.HTMLAttributes {\n children?: React.ReactNode;\n}\n\nfunction toPlacement(value: unknown): MermaidPlacement | undefined {\n return typeof value === \"string\" && (PLACEMENTS as string[]).includes(value)\n ? (value as MermaidPlacement)\n : undefined;\n}\n\nfunction createMermaidPre(sourcePath?: string) {\n return function MermaidPre(props: PreProps) {\n const child = React.Children.only(props.children) as React.ReactElement<{\n className?: string;\n meta?: string;\n children?: React.ReactNode;\n }> | null;\n\n const isMermaid =\n child &&\n child.type === \"code\" &&\n /language-mermaid\\b/.test(child.props.className || \"\");\n\n if (child && isMermaid) {\n const code = extractAllTextFromChildren(child.props.children).replace(\n /\\n$/,\n \"\",\n );\n const meta = parseCodeMeta(child.props.meta);\n const result = renderDiagram(code);\n\n if (!result.ok) {\n console.warn(\n `[doccupine] Mermaid diagram in ${sourcePath ?? \"an MDX file\"} could not be rendered, falling back to a code block: ${result.error}`,\n );\n return ;\n }\n\n return (\n \n );\n }\n\n return
;\n  };\n}\n\nexport { createMermaidPre };\n";