From 532fd1258d9f49a699f1a499f08967fb11b04fe0 Mon Sep 17 00:00:00 2001 From: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Date: Mon, 19 Oct 2026 03:41:19 +0000 Subject: [PATCH 1/3] feat(web): render Mermaid diagrams with pele Pele draws Mermaid source to SVG synchronously and lazy-loads one chunk per diagram type. Diagrams read their colors from CSS variables mapped to the app theme, so theme changes recolor them without re-rendering, and narrow containers get a reflowed layout instead of a scaled-down one. --- apps/web/package.json | 2 +- apps/web/src/components/ChatMarkdown.tsx | 2 +- .../chat/MermaidDiagram.browser.test.tsx | 66 -- .../src/components/chat/MermaidDiagram.tsx | 357 +++----- apps/web/src/index.css | 14 + pnpm-lock.yaml | 793 +----------------- 6 files changed, 159 insertions(+), 1075 deletions(-) delete mode 100644 apps/web/src/components/chat/MermaidDiagram.browser.test.tsx diff --git a/apps/web/package.json b/apps/web/package.json index 09107e5d126d8..ffe45b138f3b4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -63,8 +63,8 @@ "jszip": "3.10.1", "lucide": "^0.564.0", "lucide-react": "^0.564.0", - "mermaid": "^11.17.2", "morphicons": "^1.7.1", + "pele": "^1.6.0", "react": "catalog:", "react-dom": "catalog:", "react-markdown": "^10.1.0", diff --git a/apps/web/src/components/ChatMarkdown.tsx b/apps/web/src/components/ChatMarkdown.tsx index a608ecb0298b5..7ae052968cf69 100644 --- a/apps/web/src/components/ChatMarkdown.tsx +++ b/apps/web/src/components/ChatMarkdown.tsx @@ -1080,7 +1080,7 @@ function MarkdownMermaidCodeBlock({ } > - + {searching ? (