Fix exported SVG canvas bounds - #1134
Merged
Merged
Conversation
Use the validated complete layout when sizing exported files so routed relationship labels cannot be clipped by a second approximate bounds calculation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
MDL validated complete node, route, and relationship-label geometry, then ignored those checked bounds while exporting. A second approximate calculation could produce a smaller SVG canvas and clip labels at the bottom or right edge.
AURA exposed the failure: its Automation label ended near y=1469 in an SVG whose height was 1417, and its Chat Lifecycle label ended near y=638 in an SVG whose height was 554.
Fix
SVG export now uses the complete bounds that already passed geometry validation and adds the existing 50px outer padding. It no longer recomputes an approximate canvas from mutable nodes and edge text.
Diagram positions, routes, Model DSL, saved manual layouts, and interactive viewport sizing are unchanged.
Validation
pnpm test— 20 tests passedpnpm exec tsc --noEmitCHROME_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" go test ./...