diff --git a/packages/ui/src/Atoms/Markdown/MermaidDiagram.tsx b/packages/ui/src/Atoms/Markdown/MermaidDiagram.tsx index 3e187d768..216af067a 100644 --- a/packages/ui/src/Atoms/Markdown/MermaidDiagram.tsx +++ b/packages/ui/src/Atoms/Markdown/MermaidDiagram.tsx @@ -15,6 +15,8 @@ import mermaid from "mermaid"; import { useEffect, useId, useState } from "react"; +import { mermaidRenderConfig } from "../../mermaidConfig"; + type Props = { chart: string; }; @@ -33,7 +35,7 @@ export function MermaidDiagram({ chart }: Props) { let cancelled = false; - mermaid.initialize({ startOnLoad: false, theme: "neutral" }); + mermaid.initialize(mermaidRenderConfig); mermaid .render(`mermaid-${id}`, source) diff --git a/packages/ui/src/RichEditor/MermaidNodeView.tsx b/packages/ui/src/RichEditor/MermaidNodeView.tsx index 84fd3dcde..933ddfdf3 100644 --- a/packages/ui/src/RichEditor/MermaidNodeView.tsx +++ b/packages/ui/src/RichEditor/MermaidNodeView.tsx @@ -8,6 +8,8 @@ import { NodeViewContent, NodeViewWrapper } from "@tiptap/react"; import mermaid from "mermaid"; import { useEffect, useId, useState } from "react"; +import { mermaidRenderConfig } from "../mermaidConfig"; + type MermaidMode = "code" | "preview"; function MermaidPreview({ chart }: { chart: string }) { @@ -22,7 +24,7 @@ function MermaidPreview({ chart }: { chart: string }) { let cancelled = false; - mermaid.initialize({ startOnLoad: false, theme: "neutral" }); + mermaid.initialize(mermaidRenderConfig); mermaid .render(`mermaid-editor-${id}`, source) diff --git a/packages/ui/src/mermaidConfig.ts b/packages/ui/src/mermaidConfig.ts new file mode 100644 index 000000000..28038c66c --- /dev/null +++ b/packages/ui/src/mermaidConfig.ts @@ -0,0 +1,23 @@ +// Copyright (c) 2026 Probo Inc . +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +// PERFORMANCE OF THIS SOFTWARE. + +export const mermaidRenderConfig = { + startOnLoad: false, + theme: "neutral", + htmlLabels: true, + markdownAutoWrap: true, + flowchart: { + wrappingWidth: 220, + }, +} as const;