Repository navigation
fix(deps): update dependency mermaid to v12 - #145
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
from
September 15, 2026 12:50
70f1c44 to
3fdb16a
Compare
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
from
September 24, 2026 19:04
3fdb16a to
e316f47
Compare
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
2 times, most recently
from
October 5, 2026 17:34
3a5cfce to
670b83f
Compare
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
2 times, most recently
from
October 20, 2026 12:35
612f530 to
78c6916
Compare
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
from
October 26, 2026 22:31
78c6916 to
ad6e183
Compare
renovate
Bot
force-pushed
the
renovate/mermaid-12.x
branch
from
November 3, 2026 22:15
ad6e183 to
ce084d0
Compare
This branch has not been deployed
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.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^11.0.0→^12.0.0Release Notes
mermaid-js/mermaid (mermaid)
v12.3.0Compare Source
Minor Changes
#8164
592d0e4Thanks @filipsajdak! - feat: add the open-arrow and hollow-circle edge markers, so a notation can tell two kinds of flow apart by whether the head is filled#8165
5c8aa5dThanks @filipsajdak! - feat: add the BPMN element shapes - events, gateways, activities, data objects, data stores and text annotations - each reporting where a line meets what is drawn#8470
692d22aThanks @openmindednewby! - feat: flowchart edges accept astepnumber (e1@{ step: 1 }); a dot travels the edges in step order and loops, hidden underprefers-reduced-motion#8478
56aa105Thanks @openmindednewby! - feat: addflowchart.stepDurationto set how many seconds each step of the flowchart step animation lasts#8479
800f7efThanks @openmindednewby! - feat: highlight the flowchart edge whose step is playing, in sync with the step animation dot#8480
50d6294Thanks @openmindednewby! - feat: addflowchart.stepNumbersto show each step edge's number in a badgePatch Changes
#8443
2ff8286Thanks @knsv-bot! - fix: agentflow renders thea[/…/]short form as an input instead of falling back to a task with a SHAPE_UNSUPPORTED warning#8661
b200b27Thanks @pbrolin47! - fix: Bump DOMPurify to 3.4.17 to address GHSA-55q2-fjhq-7xh7 and GHSA-6688-9rhm-gjv2#8633
686f350Thanks @sidharthv96! - chore: Remove theuuiddependency and the unused legacy ER diagram renderer#8661
7eec083Thanks @pbrolin47! - fix: Stop an edge from a node inside a subgraph from crossing an edge from the subgraph itself to the same node with ELK 0.10+ (e.g.outer --> awithda --> a, orthree --> twowithtwo --> c2)#8532
42d3760Thanks @Devehab! - fix: upgrade bundled elkjs from 0.9.3 to 0.12.0, which is licensedEPL-2.0 OR GPL-3.0-or-later, so GPL-3.0 projects can ship mermaid with ELK#8162
d5ca27aThanks @filipsajdak! - fix(swimlanes): size a lane that holds a nested subgraph (TB drew it as an empty 0x0 box, and likewise an outer group holding lanes), and grow LR and RL lanes by the nested group's padding#8405
b4299f2Thanks @filipsajdak! - fix: do not draw a stray empty swimlane when a node is listed in two lanes, and warn about it and about a subgraph nested in a lane#8385
37d0aceThanks @filipsajdak! - fix(swimlanes): keep two arrowheads that land on one face of a node apart when a sibling edge is straightened#8385
38e810aThanks @filipsajdak! - fix(swimlanes): an edge routed round the outside of a diamond now arrives at one of its vertices instead of ending in empty space beside it#8385
25d7e31Thanks @filipsajdak! - fix(swimlanes): a second edge leaving a diamond on the same level as its target now leaves from a free vertex instead of running beside the first#8171
a4750b4Thanks @filipsajdak! - fix: dock a swimlane edge on the shape it points at, so a line reaches an event's ring instead of stopping at the room its caption reserves#8385
67315b9Thanks @filipsajdak! - fix: an edge label no longer pushes the nodes it joins a rank apart#8385
21a1f5cThanks @filipsajdak! - fix(swimlanes): stop the crossing cleanup from joining two routes at a corner so they read as one line#8385
e14bc3aThanks @filipsajdak! - fix(swimlanes): an edge no longer arrives at the vertex of a hexagon that another edge leaves from#8459
edd162fThanks @Yun-seoung! - fix: Allow flowchart edge IDs regardless of whitespace after the node shapeEdge IDs may no longer contain
[ ] ( ) { } |.#8402
4f2badeThanks @pcp-cmd! - fix: Render use case include and extend relationship labels with UML guillemets.v12.2.0Compare Source
Minor Changes
6ac38cbThanks @jackroberts236! - feat: Add opt-in mindmap coloring by hierarchy depth usingmindmap.colorBy: depthand the existing theme palette.Patch Changes
#8409
419ee68Thanks @ashishjain0512! - fix: size circle and double-circle nodes from their label instead ofminNodeWidth, and trim neo circle padding#8395
2fb3ff1Thanks @ashishjain0512! - fix: ELK no longer straightens an edge terminal when that would put a label over another edge, or an edge through a label#8394
cbf89abThanks @jackroberts236! - fix: Keep mindmap HTML labels readable in the neo look on themes that repaint node backgrounds#8390
430ac9bThanks @ashishjain0512! - fix: Centre mindmap node labels whenhtmlLabelsis false#8161
d7532edThanks @filipsajdak! - fix: scope a swimlane cluster's DOM id like every other cluster, so two diagrams on one page do not collide#8270
ad8d61aThanks @filipsajdak! - fix(rendering): clip an edge for the layout engine that drew it, so a diagram pinning its own engine (bpmn, swimlanes) still renders when the configured default is another one#8383
9d41c0fThanks @filipsajdak! - fix(swimlanes): split shared terminal lanes again after crossing cleanup, so an edge that detours around another lane no longer ends on the same attachment point as a neighbouring edge#8384
6c67397Thanks @filipsajdak! - fix(swimlanes): move a lane's title band clear of an edge that crosses it, in LR diagrams whose lanes carry no direction of their own and when the edge runs along the band's border#8366
40124c3Thanks @SwastikTripathi! - fix: swimlane nodes with no edges keep their source order inside a lane instead of being sorted by IDv12.1.0Compare Source
Minor Changes
#8303
9140716Thanks @filipsajdak! - feat: add theelk.orientFeedbackEdgesoption, enabled by default. With the ELK layout, an edge from a node that a subgraph feeds back into that subgraph is now routed downstream instead of around the subgraph. This changes the layout of existing ELK diagrams that contain such edges; setelk.orientFeedbackEdges: falseto keep the previous routing.#8250
fd4f5f2Thanks @kartben! - feat: add abitOrderoption to packet diagrams. It defaults toascending, which is the currentbehaviour, and
descendingmirrors every row so it reads from that row's highest bit down to itslowest. Fields are still declared lowest bit first and keep their width, so switching a diagram
between the two conventions only means changing
bitOrder.Patch Changes
#8330
50c9e55Thanks @ashishjain0512! - fix: upgrade chevrotain to 13 so mermaid no longer pulls in vulnerablelodash-es@4.17.23#8259
4c90f5cThanks @afonsojanu! - fix(sequence): allow whitespace between an actor name and its@{ ... }config objectparticipant Bob@{ "type" : "database" }parsed fine, but adding a single space before theconfig object (
participant Bob @{ "type" : "database" }) failed with a confusing parse error,even though the plain form without a config object tolerates trailing whitespace just fine.
#8339
c7fa1a5Thanks @ashishjain0512! - fix: keep ELK class-diagram cardinalities off namespace frames#8334
d67331dThanks @ashishjain0512! - fix(class): place cardinality labels beside their relation ends on dagre's sides with ELK, centre dagre's end labels, and stop clipping their text#8344
99a050bThanks @pbrolin47! - fix: with the ELK layout, an edge label could sit up to 16px beside its edge instead of centred on it, when the edge's terminal jog was straightened after the label's position was computed. The label is now re-projected onto the straightened route#8276
3101c7dThanks @mir-ashiq! - fix(error): show the actual error message in the error diagramWhen a diagram fails to parse, the error diagram now draws the real error message below the
"Syntax error in text" headline, wrapped to at most four lines. Hosts that only show the SVG
(GitHub, GitLab, Obsidian, exported images) no longer hide what actually went wrong, e.g. that the
flowchart edge limit was exceeded and
maxEdgesneeds raising viamermaid.initialize.#8296
aa29345Thanks @pentaoa! - fix: preserve explicit source relations on event modeling reset frames#8297
967bbdeThanks @pentaoa! - fix: reject duplicate event modeling frame IDs before rendering#8337
147f343Thanks @knsv-bot! - fix: a flowchart that declares the same subgraph id more than once now renders as one merged subgraph with the ELK layout instead of producing NaN geometry. Classes andview: collapsedset on a repeated subgraph now apply to it, whichever declaration they follow.#8203
40ef7b4Thanks @MFA-G! - perf(frontmatter): replace the quadratic front matter regex on hot pathsfrontMatterRegexbacktracks polynomially on whitespace-heavy input, so adiagram well inside the default
maxTextSizecould stall parsing for over asecond.
detectTypeandextractFrontMatternow use a linear scanner thatmatches the regex result exactly, leaving no document stripped differently.
#8254
351d7d2Thanks @galshir! - fix: warn when a gantt task references an unknownafter/untiltask id, or when its end value is neither a valid date nor a valid duration#8249
b657a2cThanks @mir-ashiq! - fix(sequence): allow hyphenated actor and participant names when a config object is attached#8300
c38a565Thanks @filipsajdak! - fix: A partial override of an object-valued theme variable such asxyChart,radarorcynefinkeeps the values the theme generates for the keys it leaves out#8333
8afd83cThanks @ashishjain0512! - fix: upgrade the parser to langium 4.4 / chevrotain 13 so bundles no longer includelodash-es@4.17.23#8285
859f1f8Thanks @mir-ashiq! - fix(sequence): allow actor-menu keywords as participant ids in messagesA participant declared as
Link(orLinks,Properties,Details) could not be used as amessage endpoint: the lexer matched the name as the
linkstatement keyword and the parse failed.The
link,links,propertiesanddetailskeywords are now only recognized when an actorfollows them on the same line, so participant ids that happen to spell these words work in
messages, while the statements themselves keep parsing as before.
#8282
b6d952dThanks @belomaxorka! - fix(sequence): allowLinkas a participant ID in messages and actor menusPreserve the ID's case and alias while keeping the
linkandlinksmenu commands supported.#8345
7917c1aThanks @knsv-bot! - fix: xychart measures text in SVG units so legends no longer clip on wide charts scaled to fit their container, and the chart title is dropped instead of overflowing when the chart is too short for it#8338
4a722fbThanks @ashishjain0512! - fix: Centre the xychart title over the plot area instead of the whole chartUpdated dependencies [
8afd83c]:v12.0.0Compare Source
Mermaid 12.0.0 ships ELK as the bundled default layout engine, a new
redux-color/neodefault appearance, and two new diagram types: UML use case diagrams.This is a breaking release (ES2024, Safari 17.4+, Node 22.12+). Existing flowcharts, state and class diagrams will re-lay out and recolour; add
layout: dagre,theme: defaultandlook: classicto your config to keep the old look. Full changelog below.Major Changes
#8213
33442fdThanks @aloisklink! - chore!: require ES2024, Safari 17.4+, Node.JS v22.12+Mermaid is now built to target Safari 17.4+ and ES2024. If you need to support
older browsers, you may need to polyfill or transpile mermaid.
Safari 17.4+ has been chosen as the floor, as unlike Firefox/Chrome,
older iOS devices don't get major Safari updates.
Node.JS v22.12+ is also declared as requirement in our
package.jsonfiles,but as mermaid requires a browser, this is mainly so we can use dependencies that
also declare a Node.JS v22.12+ requirement, without causing issues for users when
running
npm install.#8155
810893cThanks @ashishjain0512! - feat!: ELK is now bundled with mermaid and is the default layout algorithm.ELK previously shipped as a separate
@mermaid-js/layout-elkpackage that sites had to install and register. It is now part of mermaid itself and registered automatically, solayout: elk— and theelk.stress,elk.force,elk.mrtree,elk.sporeOverlap,elk.boxandelk.rectpackingvariants — work with no setup.This changes how existing diagrams look. Flowchart, state, class, entity-relationship, requirement, use-case diagrams that do not specify a
layoutare now laid out by ELK instead of dagre. To keep the previous layout, set dagre explicitly:or globally,
mermaid.initialize({ layout: 'dagre' }).Mindmap is unchanged: it keeps laying out with cose-bilkent unless a layout is explicitly requested (in the tiny build, which ships neither ELK nor cose-bilkent, it falls back to dagre).
Other notes:
mermaid.min.js) inlines it and grows by roughly 500 kB gzipped.@mermaid-js/layout-elkis no longer needed on normal builds — existingmermaid.registerLayoutLoaders(elkLayouts)calls keep working and can be removed. It is still published, and remains the way to add ELK to the tiny build.dist/mermaid.esm.min.mjsnow contains syntax thates-module-lexer(used by Vite) rejects withcontent contains invalid JS syntax. Bundler users are unaffected as long as they import themermaidpackage specifier, which resolves to the core build; only builds that point Vite directly at that dist file need to switch to the package specifier or the core build.An unrecognised
themename now resolves to the default theme in name as well as in variables; previously the invalid name stayed in place while the default's variables were loaded, and every palette-aware stylesheet gates on the name.theme: 'null', the documented way to disable the pre-defined themes, is unaffected. Note thatneopaints node strokes with a gradient when the theme setsuseGradient, whichbasedoes; setting a customnodeBorderonbaseturns the gradient off.#8211
a19bd08Thanks @ashishjain0512! - Removed: thedefaultRendereroption of theflowchart,classandstateconfig sections.Use the top-level
layoutoption instead:Why
What changes for you
#8223
6df1149Thanks @aloisklink! - refactor!: remove layout internal exportsRemove the
clearLayoutRenderState,createCommonLayoutRenderer,defaultMeasureLayout,paintLayoutDatafunctions,and the
CommonLayout*types from Mermaid's public API.These functions were only used by the
@mermaid-js/layout-elkpackage,which now bundles them. Removing them makes it easier to avoid major versions
of mermaid.
Minor Changes
#8048
7a3c1a8Thanks @knsv-bot! - feat: add UML use case diagrams with actors, use cases, system boundaries, relationships, stereotypes, notes, JSON tables, class and style support, accessibility metadata, and business variants.#8073
cd48a64Thanks @knsv-bot! - feat:defaultMeasureLayoutaccepts aunwrapGroupLabelsoption so a layout engine can ask for cluster labels to be measured at their natural width instead of theflowchart.wrappingWidthfallback.insertClusterpaints a plain cluster label with an infinite width while the measurement pass wrapped it at 200px, so a layout that sizes compound nodes from the measured label sized them too narrow. Layouts now opt in explicitly; core no longer inspects the layout's name. Markdown cluster labels stay wrapped, since those are painted wrapped.The bundled ELK layout opts in, which changes the size of labelled subgraphs in ELK-laid-out diagrams. Diagrams laid out with dagre are unaffected.
#8073
0cf3797Thanks @knsv-bot! - feat: let a container pick its own ELK algorithm with@{ algorithm: … }, and addelk.boxandelk.rectpackingto the selectablelayoutvalues.A subgraph carrying
@{ algorithm: elk.box }is laid out with that algorithm in its own coordinate system instead of inheriting the diagram's. Supported values areelk.layered,elk.box,elk.rectpacking,elk.stress,elk.force,elk.mrtree,elk.radial, andelk.sporeOverlap; anything else is ignored with a warning rather than handed to ELK, where an unknown id would abort the layout. Containers with edges crossing their boundary fall back to the inherited algorithm, since isolated layout and cross-boundary edges are incompatible.Also in this release:
elk.boxandelk.rectpackingplace nodes but never route edges. Edges they leave unrouted now fall back to a straight line between the two node centres instead of failing the render.keepEntryNodeOnToppins a cycle's true entry rather than the first-declared node when a back-edge feeds the entry, so recursive flows read from where they actually start.#8193
813c766Thanks @ashishjain0512! -theme,lookandlayoutcan now be set per diagram type, in each diagram's config section —mermaid.initialize({ look: 'classic', flowchart: { look: 'handDrawn' } }), or the same underconfigin front matter. The schema uses the same mechanism to give a diagram type its own default. Resolution, highest first: front matter or directive,initialize(), the diagram type's default, the global default; a diagram-scoped value beats a global one set in the same layer.Swimlanes take
layout: swimlanefrom that schema default instead of having it forced by theirinithook, soswimlane: { layout: ... }and alayoutin front matter are now honoured. An unregistered layout also always falls back todagrewith a warning rather than throwing — state diagrams skipped that fallback, and mindmaps threw whencose-bilkentwas absent, as it is in@mermaid-js/tiny.#8147
43d9fbcThanks @ashishjain0512! - feat(themes): class boxes and flowchart subgraph containers now take a per-item colour under theredux-colorandredux-dark-colorthemes, cycling every 12 as ER entities already do. Collapsed subgraphs keep the slot they would have had expanded; nodes inside a subgraph stay uniform, and explicitclassDeforstylestill wins over the palette.#8191
2878cf3Thanks @ashishjain0512! - feat(themes): composite states now take a per-container colour under theredux-colorandredux-dark-colorthemes, as flowchart subgraphs already do. Each composite gets the palette's border colour on its outline and its background tint behind the title strip; nested composites each take the next colour, so depth stays readable. The body keeps the theme's owncompositeBackground.redux-dark-colorcolours the outlines only, matching how it treats ER, requirement and sequence.The concurrency regions produced by a
--divider share the colour of the composite they split, rather than taking one of their own — the author wrote a single composite, so it is drawn as one thing in parts. Adding a--therefore leaves every other composite's colour untouched.Under the
handDrawnlook, concurrency regions are now filled solid rather than hatched, so that they can carry the palette tint the same way every other look does.States inside a composite stay uniform. A composite carrying its own
classDeforstylekeeps those colours and takes no palette slot, and neither do its concurrency regions; the slot is still spent, so styling one composite does not shift the colours of the ones after it. Note that this opt-out is all-or-nothing: aclassDefthat sets only text properties, such asfont-weight, still takes that composite out of the palette.#8176
16b9a7dThanks @ashishjain0512! - feat(themes): swimlane lanes take a per-lane colour under theredux-colorandredux-dark-colorthemes, cycling every 12 as flowchart subgraphs do. The lane holding ungrouped nodes takes its own slot and now follows the diagram'slook.#8178
75e6c30Thanks @knsv-bot! - feat(usecase): use case diagrams now take colour by role — actors, use cases and system boundaries each get their own colour from the newusecaseActorBkg/usecaseActorBorder,usecaseBkg/usecaseBorderandusecaseBoundaryBkg/usecaseBoundaryBordertheme variables, withusecaseIncludeLine/usecaseExtendLineseparating the two dashed relationship kinds by hue.redux-colorandredux-dark-colorset them; every other theme is unchanged. Colour is keyed to the kind of element, so editing a diagram never recolours the elements around the edit. Setusecase.colorScheme: 'rotate'for the per-element palette cycle instead, andclassDef/stylestill wins over both.Patch Changes
#8211
dc2e453Thanks @ashishjain0512! - fix(block): restore node borders under looks that use a gradient stroke.A block diagram rendered with
look: neolost its node borders entirely. The look-specificrules set
stroke: url(#<svgId>-gradient), and those definitions were appended byrendering-util/render.ts— which block does not use, since it runs its own render loop.An
url(#…)paint that resolves to nothing is painted as none, not as a fallbackcolour, so the border disappeared rather than degrading to a plain stroke.
The definitions now live in
rendering-util/insertLookDefs.tsand both render paths callit, so the two cannot drift into producing different gradients.
This only became visible recently: block did not previously pass
lookto its nodes, sonone of the look-specific rules applied to it and the missing definitions went unnoticed.
#8181
ce0302dThanks @knsv-bot! - fix(block): apply the redux colour palette to composite blocks. Composites now take a per-container colour underredux-colorandredux-dark-color, matching how flowchart subgraphs are coloured — one counter over containers, in declaration order, with the plain shapes left on the flat theme colour. The palette is opt-in: block does not default toredux-colorthe way flowchart and several other diagram types do, so settheme: redux-color(orredux-dark-color) explicitly to see it.classDef/stylestill win.#8211
ad98070Thanks @ashishjain0512! - fix(block): take the node border width from the theme, as every other diagram does.block/styles.tspinnedstroke-width: 1pxon node shapes while the flowchart, class andstate stylesheets all read
strokeWidthfrom the theme. Under a theme that asks for more —neoasks for 2 — a block rendered a visibly thinner border than an identical flowchartnode, and nothing downstream corrected it: the
neorules in the shared stylesheet setstrokeandfilter, neverstroke-width.The gap was invisible until block began propagating
lookto its nodes, because until thennone of the look-specific rules applied to block at all.
Affects only themes whose
strokeWidthis not 1.neois 2;neo-dark,baseand therest are unchanged.
#8231
e2aab3fThanks @knsv-bot! - Use balanced Brandes-Koepf placement for the default ELK preset to improve alignment of branches and composite-state entries. Preserve named non-default presets and explicit placement/alignment options, includingNONE. Some diagrams may become wider or taller;depthFirstretains the previous default layout.#7874
6b79518Thanks @filipsajdak! - fix(c4): allow boundaries as relationship endpointsA
Rel(orBiRel/Rel_*) that referenced a boundary alias threwreferences an unknown shape, because endpoint lookup only searched shapes and not boundaries. Boundary aliases nowresolve as relationship endpoints. Fixes #4864.
#8100
30325d4Thanks @filipsajdak! - fix(c4): stop wrapping non-text named attributes that land in a text slotA named attribute such as
$tagsor$spritecan arrive in the positionalslot of a text field when the argument before it is omitted. It was then
stored as
{ text: value }rather than a string, so$tagsgiven without adescription crashed rendering.
#8148
c3ee3c7Thanks @ashishjain0512! - fix(themes):redux-dark,redux-dark-colorandneo-darkshippedsecondBkgas the literal stringcalculated, so railroad rendered the invalidfill: calculated; it is now computed astheme-darkdoes. The same three themes had gantt done-task labels at 1.07:1 contrast — a light fill under their light task ink — now 5.7:1 or better. The ER and requirement stylesheets also validatelookbefore interpolating it into a CSS selector.#8222
1ee934dThanks @ashishjain0512! - fix: stop ELK-laid-out diagrams loggingUnknown arrow type: arrow_openonce per edge.ELK's arrow table put the edge type
arrow_open— which means "no arrowheads" — into the arrow-type slot, wherenoneis the value that marks a deliberate absence. Anything else is reported as an unknown marker name. Diagrams whose db setsarrowTypeStartitself, such as flowcharts, never reached that fallback; state diagrams, which leave it unset, warned on every edge.Rendering is unchanged: both spellings produced no start marker and the same geometry, since neither has a marker offset. Only the log noise goes away.
#8204
a7831c5Thanks @knsv-bot! - fix: keep ELK subgraph frames out to the border anchor of edges that terminate on the group, so transitions to composite states no longer run along the cluster border#8155
0320406Thanks @ashishjain0512! - fix(elk): a composite state or subgraph containing a loop now opens on its own start node.Cycle breaking was resolved for the root graph but never passed to containers, so a
container laid out on its own fell back to ELK's default,
GREEDY, while the root ranwhatever
elk.presetasked for. The two then reversed different edges of the same cycle.In a composite state that loops, greedy reverses the edge that turns an ordinary state
into a source, and sources sit on the first layer — so the diagram opened on that state
alongside its start circle instead of on the start circle alone. Dagre reverses the other
edge, which is why the two layout engines disagreed on the same diagram.
Containers now resolve cycle breaking from the preset exactly as the root does. Only
containers that actually contain a cycle change; an acyclic subgraph gives a cycle-breaking
strategy nothing to do.
preset: legacystill reaches containers withGREEDY, so it keepsreproducing the earlier rendering inside frames as well as outside them.
#8228
e36b883Thanks @knsv-bot! - Reserve subgraph title padding before ELK routes edges so attachments stay on the painted frame. Clip stale interior endpoints along the incoming segment, avoiding edges that run along the subgraph border.#8199
b993915Thanks @knsv-bot! - fix: keep ELK edges vertical at small nodes — the node now moves onto the routed line instead of the edge bending toward the node's off-centre position#8155
4e00c5cThanks @ashishjain0512! - fix: render ER relationship edges above subgraph backgrounds under the ELK layout instead of hiding them behind the cluster rect#8156
3f05015Thanks @ashishjain0512! - fix(er, requirement, timeline): stop the ER, requirement and timeline stylesheets emitting CSS the browser discards for the colour themes.All three generate one rule per palette slot. ER and requirement looped to
THEME_COLOR_LIMITand indexed the palette by the loop counter, which goes wrong in both directions: a palette shorter than the limit emittedstroke: undefinedfor the overflow slots, and a palette longer than it left entities stamped with a slot that had no rule at all, rendering unstyled beside coloured neighbours. Both now take the loop bound from the palette itself, which is the same length the boxes stamp with — so the rules emitted and the slots stamped cannot disagree. Both also bail before the loop for an empty palette, since wrapping alone is not enough there:i % 0isNaNand[][NaN]isundefined.Timeline keeps looping to
THEME_COLOR_LIMITand wrapping, because it numbers.section-Nclasses rather than palette slots — nothing stamps those, so the palette cycles across however many sections exist.requirementalso emittedfill: ;— a property with no value, which is invalid — whenever there was no background palette. That is the live case forredux-dark-color, which ships a border palette and no background palette so that it colours outlines only. The declaration is now omitted instead.None of
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.