Fix tiny graph: keep SVG natural size, scroll on overflow

Stop replacing the SVG's width/height attributes — this was shrinking
the graph to fit the container. Instead keep graphviz's native pt
dimensions and let the scroll container handle overflow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 00:14:25 +01:00
parent d98cee8015
commit 16ed81f0db

View File

@@ -1,5 +1,4 @@
import copy
import re
import time
from nicegui import ui
@@ -428,11 +427,7 @@ def _render_graphviz(dot_source: str, selected_node_id: str | None = None):
src = graphviz.Source(dot_source)
svg = src.pipe(format='svg').decode('utf-8')
# (a) Responsive SVG sizing — fill container width, remove fixed height
# so the SVG scales proportionally via its viewBox attribute
svg = re.sub(r'\bwidth="[^"]*"', 'width="100%"', svg, count=1)
svg = re.sub(r'\s*height="[^"]*"', '', svg, count=1)
# (a) Keep SVG at natural size, let scroll container handle overflow
container_id = f'graph-{id(dot_source)}'
html_content = (
f'<div id="{container_id}" '