chore(deps): mermaid ^ 12.0.0 - #15
Open
floatpanebot wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
What?
This PR contains the following updates:
^11.4.1→^12.0.0Release Notes
mermaid-js/mermaid (mermaid)
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 these raises an error: the browser discards the invalid declaration, so the only symptom is a shape rendering unstyled.
#8149
d57ed55Thanks @ashishjain0512! - fix(docs): stopdocs:builddeleting the committeddocs/directory when a later step fails.#7906
1fc5bb3Thanks @knsv-bot! - perf: avoid quadratic parse cost on deeply-indented diagrams (~1.4 s → ~30 ms on a pathological fixture)#8211
b979eb4Thanks @ashishjain0512! - fix(handdrawn): tighten the hachure fill so shapes read as filled rather than striped.The hand-drawn fill drew 4px-wide strokes 5.2px apart, which left visible diagonal
banding across every shape — legible as a texture up close, but at normal diagram size it
read as stripes rather than a fill. Strokes are now 1.5px at 1.5px spacing, so the fill
reads as an even tint while keeping the drawn edge quality.
The striped fill behind state-diagram start, end and fork markers moves the same way, so
those come out close to solid — which is what the UML convention asks for anyway.
Swimlane lane titles previously pinned their own stroke weight and so ignored the shared
value; they now follow it like every other shape.
#8152
7ee4c3fThanks @knsv-bot! - fix: edges attach to non-rectangular shapes on the outline instead of half a pixel off it.This is not ELK-specific.
intersectPolygonis how every non-rectangular shape finds its edge attachment — diamond, stadium, hexagon, trapezoid, subroutine — in every layout, so a dagre-rendered flowchart with a decision diamond is affected exactly as much as an ELK one.intersectLinecomes from Graphics Gems, where the coordinates were integers and the numerator was nudged half a denominator away from zero so the integer division rounded instead of truncating. JavaScript division does neither, so the nudge stopped being a correction and became the whole error: every result came back displaced by0.5 * sign(num) * sign(denom). The magnitude is always exactly half a unit, but the sign is per axis, because the numerator is computed separately for x and y while the denominator is shared — so the two axes could move the same way or opposite ways depending on the geometry, which is why it never looked like a constant offset anyone could spot by eye.That was enough to give an otherwise orthogonal edge a tiny diagonal opening segment, and to put an attachment just inside the node it was meant to touch.
question.tshad been subtracting a flat 0.5 from both axes to compensate for diamonds. That only cancelled the bias when both signs came out positive, and doubled the error to a full unit when they did not — so the compensation goes along with the cause. Rendered output moves by up to a pixel wherever a polygon shape terminates an edge.#8048
a6ec7ffThanks @knsv-bot! - fix: treat</br>as a line break in labelslineBreakRegexonly matched<br>,<br/>and<br />, so the malformed-but-common</br>survived as literal text wherever labels render as plain SVG text. HTML parsersalready treat
</br>as a<br>, so the tag appeared to work in HTML-label mode andfailed everywhere else. It is now accepted on both paths.
Also fixes
hasBreaks()returning alternating results for the same input: it called.test()on a global regex, which advanceslastIndexbetween calls.wrapLabel()usedthe same stateful check and could therefore re-wrap labels that already contained breaks.
#8152
1246a55Thanks @knsv-bot! - fix: don't draw a line hop that has no room next to a bend.A crossing close to a corner used to get a hop squeezed into whatever space was left — as little as 2.9px against a requested 6px, opening exactly on the corner's tangent point. At that size the arc no longer clears the line it is meant to hop, so the two strokes still touch and the corner's curve runs straight into the arc's. It reads as a rendering fault rather than as a crossing.
Hops now keep a straight run clear of the bend, and one that would still have to shrink below 60% of the requested radius is dropped instead of drawn. An undrawn hop is an ordinary crossing, which is a much better failure than a broken-looking one.
This changes swimlane diagrams as well as ELK ones. Swimlanes are the existing consumer of line hops and have them on today, so a swimlane with a crossing near a bend will render differently even for someone not using ELK at all. It shows up wherever a layout stacks edges in narrow lanes: ELK routes subgraph-internal edges 10px apart, and 10px does not hold a 7.07px corner cut plus a 6px hop.
A crossing is also ignored now when it lands inside the stretch where either edge is rounding a bend. Crossings are found on polylines, but a rounded edge is not drawn as its polyline — it leaves the line up to 7.07px before each bend and rejoins it that far after. A crossing found inside that stretch is somewhere the stroke never goes, so the hop was arching over blank paper while the two lines carried on touching beside it.
#8146
def4c81Thanks @ashishjain0512! - fix(themes):redux-colorandredux-dark-colornow define every variable their base themes define, instead of silently falling back to untuned values forprimaryBorderColor,clusterBkg,clusterBorder,altBackground,compositeTitleBackgroundand the state and requirement edge-label backgrounds. Pie, gantt and user-journey also read the theme palette rather than a single pale tint, so pie slices are distinguishable and gantt sections are visibly banded.#8189
3802472Thanks @ashishjain0512! - fix(themes): venn circles follow theredux-colorandredux-dark-colorpalettes. Neither theme defined anyvenn*variable, so every circle rendered in one flat colour.#8185
f5af413Thanks @knsv-bot! - fix: sequence diagram actors under theneolook andreduxthemes. Notes no longer render bold,a
rectsection band is no longer drawn white on white, and participants follow one verticalmodel: every lifeline starts and ends on a shared line, all participant glyphs are one size with
their feet on a common edge, single-line labels share one baseline in the header and in the
mirrored footer, and a multiline label grows away from the lifeline instead of moving it. The
classiclook is unchanged.#8157
a3a92baThanks @ashishjain0512! - fix(sequence): index each actor colour palette by its own length.Every actor-drawing call site read
bkgColorArray[actorCount % borderColorArray.length]— one palette indexed by the other's length. Underredux-colorboth palettes have twelve entries, so the wrong length happens to give the right answer and nothing is visibly broken today. It goes wrong as soon as the two differ in length: the overflow actors resolve toundefined, and d3 then strips the inline fill for some actors and not others.Both palettes now cycle within their own length, via a shared helper. An absent or empty palette still yields
undefinedrather than a substitute colour, which is whatredux-dark-colorrelies on: it ships a border palette and an empty background palette so actors are outlined but not filled.#8232
e691042Thanks @ashishjain0512! - Circle, double circle, Delay and Display nodes size themselves from the label's height as well as its width, so a wrapped label stays inside the outline. Each was sized from the width alone and clipped any label taller than it was wide, whichflowchart.wrappingWidth: 120made common.This replaces the wrapping exemption those shapes carried along with stadium and diamond: it stopped them wrapping at all, so a long label produced a single-line node hundreds of pixels wide. Stadium needs no exemption — its
w >= 1.5hfloor already keeps a wrapped label from closing the caps into a circle — and diamond never needed one.Stacked (
docs) and lined (lin-doc) document nodes lift their label clear of the wavy bottom edge by the wave's full depth rather than half of it, so the last line is no longer clipped by the trough. Plaindocalready did this; the two variants had copied it with the offset halved. Node dimensions are unchanged.#8154
ba0deedThanks @aloisklink! - fix: bundlefastdomto fix issues with globaldefine#8227
b05824aThanks @knsv-bot! - fix(flowchart): stop stadium labels from wrapping into a circle and exempt selected shapes from automatic label wrapping.Long stadium labels wrapped to
flowchart.wrappingWidth, grew taller without growing wider, and turned the stadium into a circle. Stadium now keeps its semicircular caps with an outer width of at least 1.5 times its height and enough clearance that the label stays inside the arcs.Stadium (
terminal,pill), circle (circ), diamond (diam,decision,question), double circle (dbl-circ,double-circle), Display (curv-trap,curved-trapezoid,display) and Delay (delay,half-rounded-rectangle) no longer wrap their labels atflowchart.wrappingWidth. Explicit line breaks are kept, and an explicit node width still takes precedence.#8192
0ec29e9Thanks @ashishjain0512! - fix(state): draw the edge between a state and its note dashed under theneolook. It was rendering solid.The dashes were expressed only as CSS —
.note-edge { stroke-dasharray: 5 }— which is enough underclassicbut not underneo, whereinsertEdgewrites an inlinestroke-dasharrayon every edge, computed from the path length so the arrow markers keep their gaps. An inline style outranks a stylesheet rule, so the note edge took the solid pattern and the.note-edgerule simply lost. The note edge now declarespattern: 'dashed', which is whatinsertEdgereads to choose its dash generator.classicis unchanged.#8225
0d77926Thanks @knsv-bot! - fix(swimlane): seed cycle removal from source nodes so feedback edges are reversed instead of forward flow edges. A cycle liketask --> decision --> fix --> taskno longer placesfixin the middle of thestart --> taskflow line.#8211
93edd72Thanks @ashishjain0512! - fix: keep association markers apart on use-case ovals under ELK. Ovals get the same vertical padding as horizontal, edge attachment points on them are spread across the side, and the ELK renderer now accounts for every end-marker offset (extension, circle, cross, …) so a short entry stub can no longer flip a marker around.Updated dependencies [
33442fd]:Keeping the previous defaults in your integration
Mermaid 12 changes what unconfigured diagrams look like: ELK replaces dagre as the default layout, and
redux-color/neoreplacedefault/classicas theme and look for flowchart, class, state, ER, requirement, sequence, use case, swimlane, Venn and agentflow. If you embed Mermaid and want your users' existing diagrams to render as before, set all three explicitly at initialisation:Diagram authors can do the same per diagram in front matter, and a value there always wins over
initialize().layoutis resolved, ELK variants, and the tiny buildWhy?
Automated dependency update via Renovate.
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 has been generated by Mend Renovate.