Repository navigation
fix(flowchart): respect per-subgraph direction keyword in Dagre layout - #7672
Conversation
…ions by creating virtual subgraph (fixes mermaid-js#4648)
… connections (issue mermaid-js#4648)
🦋 Changeset detectedLatest commit: d619b19 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
✅ Deploy Preview for mermaid-js ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
#4648 should be fixed |
@mermaid-js/examples
mermaid
@mermaid-js/layout-elk
@mermaid-js/layout-tidy-tree
@mermaid-js/mermaid-zenuml
@mermaid-js/parser
@mermaid-js/tiny
commit: |
|
The unit tests are failing with errors such as: and and These failures are expected, for now. This PR depends on a new release of Dagre JS, specifically the changes in this PR I submitted here: dagrejs/dagre#511 That update provides the layout engine with the additional attributes required for these tests to pass. |
knsv-bot
left a comment
There was a problem hiding this comment.
[sisyphus-bot]
Thanks for taking on #4648 @sjackson0109 — this is one of the longest-standing layout bugs in the project, and the angle you've gone for (gate on explicit direction rather than on !externalConnections) is genuinely more principled than the existing logic. That said, before this can land I think it needs more guardrails and a couple of fixes, given how broadly mermaid-graphlib.js reaches.
What's promising
- 🎉 The core conceptual change in
mermaid-graphlib.js:327-330— switching the cluster-extraction predicate from!externalConnectionstoclusterData?.dir— is the right shape of fix. The old check was the actual root cause of the "external edge into a subgraph node leaks direction" behavior reported in #4648 and #6785. Treating "user explicitly saiddirection X" as the trigger for a separate sub-layout is much more intentional. - 🎉 The
TD→TBnormalisation inflowDb.ts:703-706(insideaddSubGraph) plugs a real gap —setDirection()already normalises this for the top-level direction (flowDb.ts:451-453), but subgraph directions previously didn't, which is exactly the "direction TDdoesn't work, you have to usedirection TB" complaint in the issue thread. Mirroring the existing normalisation here is the right call.
Things to address
🔴 [blocking] No automated tests for a shared-layout change
packages/mermaid/src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js is used by every Dagre-based diagram type (flowchart, class, state, etc.). CLAUDE.md is explicit on this:
rendering-util/is shared by all diagram types. Changes here can regress any diagram. Always run full e2e tests (pnpm e2e) after modifying shared rendering code — unit tests alone are insufficient.
The existing Cypress suite already has extensive subgraph-direction coverage in cypress/integration/rendering/flowchart/flowchart-v2.spec.js (around lines 696, 814, 1014+ — multiple test cases mixing top-level and subgraph directions, nested subgraphs, etc.). Two things needed:
- Run those existing tests against the change and post the Argos diff — that's the only way to know whether the new condition regresses existing flowchart layouts. Subgraphs without an explicit
directionkeyword no longer get a separate cluster graph under the new logic (old code: separate graph if!externalConnections; new code: separate graph only ifclusterData?.dir), so default-direction subgraphs may shift visually. - Add a new test in that same file specifically targeting #4648's two patterns: (a) external edge into a subgraph internal node where the subgraph has its own
direction, (b) sibling subgraphs with different directions connected via subgraph-to-subgraph edges. A side-by-side that locks in the fixed behavior would also serve as the long-term regression guard the issue thread has been asking for.
🔴 [blocking] The manual test in test/4648.html won't parse
The mermaid source in the <div class="mermaid"> block has no newlines between top-level statements:
flowchart TD subgraph Group1 direction TB A1 --> A2 A2 --> A3 end subgraph Group2 direction LR
B1 --> B2 B2 --> B3 end subgraph Group3 direction LR C1 --> C2 C2 --> C3 end %% External
connections between subgraphs A3 --- B1 B3 --- C1 %% Wrapper workaround subgraph Wrapper
direction LR subgraph Inner D1 --> D2 D2 --> D3 end end
Mermaid's flowchart parser uses newlines/semicolons as statement separators — flowchart TD subgraph Group1 direction TB A1 --> A2 on a single line is a parse error, not a rendered diagram. Looks like the file was reflowed by an editor at some point. Each statement (flowchart TD, subgraph X, direction Y, each edge, each end) needs its own line. There's also a B1 B3 token sequence in A3 --- B1 B3 --- C1 that won't parse even with newlines — looks like that should be two separate edges (A3 --- B1 and B3 --- C1).
Worth opening this file in the dev server (pnpm dev) and confirming it actually renders before relying on it as the visual proof.
🟡 [important] Test file location
test/ isn't an established directory in this repo — manual test pages live in cypress/platform/ (e.g., cypress/platform/subgraph.html already exists for similar purposes), and automated visual tests live in cypress/integration/rendering/. The new test/4648.html won't be picked up by any tooling and will likely confuse future contributors. Suggest:
- Move the manual page to
cypress/platform/4648.html(or merge it into the existingsubgraph.html), and - Add the automated coverage as a Cypress test in
flowchart-v2.spec.js.
🟡 [important] Missing changeset
This is a user-visible layout-behavior change, so it needs a .changeset/*.md entry. pnpm changeset → patch for mermaid with a fix: description should do it.
🟡 [important] PR description is contradictory
The title says "fix(flowchart): improve subgraph direction handling" and the body says "This PR does not attempt to fix Dagre, but provides a clear test and documentation of the issue." The diff clearly does attempt a fix — both mermaid-graphlib.js and flowDb.ts change runtime layout behavior. Worth rewriting the description to reflect what's actually being changed (which condition, which code path, and what the expected behavior shift is) — that helps future maintainers reading git blame.
Behavioral question worth flagging in the description
Worth being explicit about how the new logic handles subgraphs without an explicit direction keyword:
- Old behavior:
!externalConnections && hasChildren→ create a separate cluster graph, defaulting to the opposite of the parent'srankdir. So a subgraph in aTBflowchart (with nodirection) would lay out internally asLRby default. - New behavior: only
clusterData?.dir && hasChildrentriggers a separate cluster graph. Default-direction subgraphs now inherit the parent'srankdir.
That's a defensible direction (no pun intended), but it's a visible default-behavior change that could shift many existing flowcharts. The full e2e Argos run is the only way to know how broad the impact is — and if the change is intentional, the changeset should call it out so users know what's coming.
Security
No XSS or injection concerns — the layout-algorithm changes don't touch DOM sinks or user-facing string interpolation, and the new manual HTML page is a standard mermaid-init page (not loaded by the published library).
Summary
| Severity | Count |
|---|---|
| 🔴 blocking | 2 |
| 🟡 important | 3 |
| 🟢 nit | 0 |
| 💡 suggestion | 0 |
| 🎉 praise | 2 |
The conceptual fix is the right shape — please don't take the volume of feedback as discouragement. The combination of "shared layout code with broad blast radius" + "no automated tests" + "broken manual repro" is what's pushing this to changes-requested rather than just comments. With the Cypress coverage in place and an Argos diff to look at, this could land cleanly. Happy to help if any of the above is unclear.
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
…ates - Patch dagre-d3-es@7.0.14 via pnpm patch to include applyClusterDirections (runs after main dagre layout) and preserve rankdir on cluster nodes in buildLayoutGraph. This is a forward-port of the same fix in the dagre fork (sjackson0109/dagre@feature/per-cluster-direction, dagrejs/dagre#511). - Fix mermaid-graphlib.js extractor predicate: * Restore the original !externalConnections branch (was accidentally dropped in commit 415af35, causing GLB test regressions where all normal clusters without external connections stopped being extracted) * Keep the new clusterData?.dir branch as the FIRST check, so subgraphs with an explicit direction keyword are ALWAYS given their own sub-graph, even when they have external connections (this is the actual mermaid-js#4648 fix) * Normalize TD→TB in both branches when setting rankdir on clusterGraph (dagre's makeSpaceForEdgeLabels uses 'TB', not 'TD') - Remove premature TD→TB normalization from flowDb.ts addSubGraph — it was changing the parsed dir value before the parser tests could check it, breaking subgraph.spec.js line 325. Direction normalization now happens inside mermaid-graphlib.js when rankdir is set on the cluster sub-graph.
…tor branches Both Branch 1 (explicit direction) and Branch 2 (no external connections) were using copy(child, graph, clusterGraph, child) per-child loops, which is a no-op for leaf nodes and incorrectly handles nested sub-clusters. The original code used copy(node, graph, clusterGraph, node) — a single call with the cluster node as the root — which correctly: - Extracts all direct leaf children into the clusterGraph - Recursively handles nested sub-clusters with proper parent relationships - Removes extracted nodes from the outer graph This fixes all 11 mermaid-graphlib unit tests (GLB4-GLB77) that were regressed by the earlier change, and enables test 2050 (issue mermaid-js#4648) to render correctly in e2e tests.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #7672 +/- ##
==========================================
- Coverage 3.26% 3.26% -0.01%
==========================================
Files 598 598
Lines 60610 60676 +66
Branches 914 914
==========================================
Hits 1981 1981
- Misses 58629 58695 +66
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
…actor (Branch 1 coverage) Adds 3 new unit tests (GLB-DIR1, GLB-DIR2, GLB-DIR3) covering the new clusterData?.dir branch introduced by fix mermaid-js#4648: - GLB-DIR1: cluster with explicit dir + external connections becomes clusterNode - GLB-DIR2: cluster with explicit dir + no external connections becomes clusterNode - GLB-DIR3: sibling clusters with different explicit dirs and inter-cluster edge These tests exercise the ~47 lines of Branch 1 that were flagged by Codecov as having 0% patch coverage.
…an nodes
When copy() extracts a cluster whose leaf nodes have edges that cross the
cluster boundary, edgeInCluster's OR-logic was copying those edges into the
subgraph and auto-creating the external endpoint as a zero-width orphan node.
recursiveRender then called insertNode(nodes, undefined) and crashed, leaving
window.rendered=false and failing Cypress tests for:
issue-4648: sibling subgraphs with different directions and external connections
issue-4648: nested subgraph with external connection
2050: handling of different rendering direction in subgraphs
Fix: check whether BOTH endpoints are strictly inside rootId's cluster.
- Strictly internal edge: copy to newGraph as before.
- Cross-boundary edge: rebind in the outer graph as rootId to externalNode,
so the cluster connection is preserved after removeNode() drops the leaf.
Every compound state node was receiving dir:'TB' (the DEFAULT_NESTED_DOC_DIR default) even when the user wrote no 'direction' keyword inside that state. That truthy dir value caused mermaid-graphlib Branch 1 (clusterData?.dir && hasChildren) to trigger for ALL compound states, including those with external connections, changing their layout relative to the original !externalConnections-based extraction rule. Fix: only set newNode.dir when parsedItem.doc actually contains a 'dir' statement (i.e. the user explicitly wrote 'direction X' inside the state body), leaving dir as undefined otherwise. This restores correct rendering for: State-diagram-v2-A-compound-state-should-be-able-to-link-to-itself State-diagram-v2-handle-transition-from-one-state-in-a-composite-state-to-a-composite-state Compound states WITH explicit direction still go through Branch 1.
…nch 1 The Branch 1 predicate clusterData?.dir was accidentally catching ALL compound state nodes, because state diagram dataFetcher always sets dir:'TB' (DEFAULT_NESTED_DOC_DIR) even when the user wrote no 'direction' keyword. This caused 36 state diagram layouts to regress. A previous attempted fix set dir:undefined for non-explicit state nodes, which broke 36 OTHER diagrams because Branch 2 also relies on clusterData.dir for its sub-layout direction arithmetic. Proper fix: add an explicitDir:boolean field, true only when the user explicitly wrote a 'direction X' keyword in the subgraph/state body. Branch 1 now checks explicitDir instead of dir, so: flowchart subgraph with direction LR : explicitDir:true -> Branch 1 flowchart subgraph without direction: explicitDir:false -> Branch 2/else state compound state with direction LR: explicitDir:true -> Branch 1 state compound state without direction: explicitDir:false -> Branch 2/else Branch 2's direction override (clusterData?.dir) is untouched and keeps working exactly as before for both flowchart and state diagram.
|
The ci items of concern now are the argos-ci tests.
|
|
Any chance one of you can review and consider approving? |
…e-consumption point Agent-Logs-Url: https://github.com/sjackson0109/mermaid/sessions/ed8547c3-2e55-4088-bbec-113a7976d0aa Co-authored-by: sjackson0109 <38080190+sjackson0109@users.noreply.github.com>
Agent-Logs-Url: https://github.com/sjackson0109/mermaid/sessions/ed8547c3-2e55-4088-bbec-113a7976d0aa Co-authored-by: sjackson0109 <38080190+sjackson0109@users.noreply.github.com>
Agent-Logs-Url: https://github.com/sjackson0109/mermaid/sessions/367892ea-7828-42ac-a114-e4e3119212ef Co-authored-by: sjackson0109 <38080190+sjackson0109@users.noreply.github.com>
…-handling fix(flowchart): preserve raw subgraph direction value; normalize TD→TB only for dagre
CI status —
|
| Failing test file | Failures | Root cause |
|---|---|---|
packages/parser/tests/treeView.test.ts |
19 | incomplete treeView parser feature (merged in #7527) |
packages/mermaid/src/diagrams/treeView/parser.spec.ts |
27 | same |
packages/mermaid/src/diagrams/cynefin/cynefin.integration.spec.ts |
15 | @mermaid-js/parser missing DomainBlock/Transition/Cynefin exports (merged in #7535) |
packages/mermaid/src/diagrams/wardley/wardleyParser.spec.ts |
7 | pre-existing |
packages/mermaid/src/diagrams/architecture/svgDraw.spec.ts |
1 | canvas unavailable in jsdom (pre-existing) |
packages/mermaid/src/mermaidAPI.spec.ts |
1 | same canvas issue |
| 2 others | 2 | canvas issue |
Verified locally against upstream/develop: both branches produce 8 failed | 129 passed, 72 individual test failures — identical counts, identical test names.
This PR introduces zero new test failures. All flowchart and graphlib tests pass:
mermaid-graphlib.spec.js→ 19/19 passed ✅ (including 4 new GLB-DIR tests)- All flowchart diagram tests → 971 passed, 3 skipped ✅
|
I could rerun the unit test, and then it worked. GitHub had a network glitch. |
|
Thanks for tackling this one, @sjackson0109 — #4648 has been open since 2023 and the diagnosis here is exactly right. The cluster-extraction predicate using !externalConnections was the wrong signal; pivoting to explicitDir cleanly separates the fix from the legacy default-behavior path. Really nice work, and the writeup in the PR description, (especially the behavior-change matrix) made this a much faster read. |
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
Upstream release: https://github.com/mermaid-js/mermaid/releases/tag/mermaid%4011.16.0 Release notes: ### Minor Changes - [#7535](mermaid-js/mermaid#7535) [`ea1c48f`](mermaid-js/mermaid@ea1c48f) Thanks [@ragelink](https://github.com/ragelink)! - feat(cynefin): Adds the Cynefin framework as a new diagram type (beta) to Mermaid (available as `cynefin-beta`). The Cynefin framework, created by Dave Snowden, is a decision-making framework that categorizes problems into five complexity domains, widely used in agile, incident management, strategy, and organizational design. - [#7721](mermaid-js/mermaid#7721) [`f45cc2c`](mermaid-js/mermaid@f45cc2c) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): add box-drawing character input support for treeView diagrams - [#7550](mermaid-js/mermaid#7550) [`f1f4d45`](mermaid-js/mermaid@f1f4d45) Thanks [@DominicBurkart](https://github.com/DominicBurkart)! - feat(xychart): add per-point text labels for xychart line plots - [#7527](mermaid-js/mermaid#7527) [`b4d0442`](mermaid-js/mermaid@b4d0442) Thanks [@notionparallax](https://github.com/notionparallax)! - feat(treeView): Extends the existing treeView-beta diagram with features useful for representing file/directory structures. - [#7793](mermaid-js/mermaid#7793) [`a6f097d`](mermaid-js/mermaid@a6f097d) Thanks [@SSDWGG](https://github.com/SSDWGG)! - feat(er): support optional ER attribute types with a `?` suffix - [#7772](mermaid-js/mermaid#7772) [`37f2e36`](mermaid-js/mermaid@37f2e36) Thanks [@devareddy05](https://github.com/devareddy05)! - feat(gantt): support multiple `excludes` / `includes` lines so long exclusion lists can be split into commented groups (#6270) - [#7708](mermaid-js/mermaid#7708) [`4e63e9d`](mermaid-js/mermaid@4e63e9d) Thanks [@txmxthy](https://github.com/txmxthy)! - feat(architecture): add `align row|column {ids…}` directive to architecture-beta diagrams so authors can declare horizontal or vertical alignment of services explicitly. - [#7760](mermaid-js/mermaid#7760) [`05223be`](mermaid-js/mermaid@05223be) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(pie): Enhance Pie Chart - Enable donut chart, Set legend position, and highlight slice - [#7251](mermaid-js/mermaid#7251) [`216e4e9`](mermaid-js/mermaid@216e4e9) Thanks [@ydah](https://github.com/ydah)! - feat(railroad): Add support for Railroad Diagrams (Syntax Diagrams) with four input syntaxes: IR (railroad-beta), EBNF (railroad-ebnf-beta), ABNF (railroad-abnf-beta), and PEG (railroad-peg-beta). - [#7774](mermaid-js/mermaid#7774) [`e5c75e6`](mermaid-js/mermaid@e5c75e6) Thanks [@ngdaniels](https://github.com/ngdaniels)! - feat(xychart): enable rotate label on X-axis - [#7791](mermaid-js/mermaid#7791) [`974fa7b`](mermaid-js/mermaid@974fa7b) Thanks [@knsv-bot](https://github.com/knsv-bot)! - feat(swimlane): add swimlane as a standalone diagram type with a dedicated layered orthogonal layout algorithm ### Patch Changes - [#7744](mermaid-js/mermaid#7744) [`633c261`](mermaid-js/mermaid@633c261) Thanks [@ashishjain0512](https://github.com/ashishjain0512)! - fix(architecture): add `architecture.seed` config option to make architecture diagrams render deterministically. Resolves #7729. - [#7732](mermaid-js/mermaid#7732) [`c8ba156`](mermaid-js/mermaid@c8ba156) Thanks [@rkdfx](https://github.com/rkdfx)! - fix: tolerate leading horizontal whitespace before YAML frontmatter delimiters. Closes mermaid-js/mermaid#7613 - [#7314](mermaid-js/mermaid#7314) [`4e4e6c4`](mermaid-js/mermaid@4e4e6c4) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(flowchart): Prevent crash when flowchart node shape is undefined - [#7762](mermaid-js/mermaid#7762) [`cfd2391`](mermaid-js/mermaid@cfd2391) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(class): support styling and callbacks for generic classes - [#7284](mermaid-js/mermaid#7284) [`c1f116d`](mermaid-js/mermaid@c1f116d) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(gantt): Render gantt vertical markers without affecting row layout or chart height - [#7786](mermaid-js/mermaid#7786) [`72fbab1`](mermaid-js/mermaid@72fbab1) Thanks [@knsv-bot](https://github.com/knsv-bot)! - fix(er): allow special characters (e.g. dots) in ER diagram attribute names and types by escaping them with backticks - [#7672](mermaid-js/mermaid#7672) [`4887e97`](mermaid-js/mermaid@4887e97) Thanks [@sjackson0109](https://github.com/sjackson0109)! - fix(flowchart): respect per-subgraph direction keyword in Dagre layout. Fixes #4648 - [#7734](mermaid-js/mermaid#7734) [`a4c1e50`](mermaid-js/mermaid@a4c1e50) Thanks [@OfirHaf](https://github.com/OfirHaf)! - fix(block): read block padding and sanitize config dynamically instead of at module load time - [#7674](mermaid-js/mermaid#7674) [`cc75089`](mermaid-js/mermaid@cc75089) Thanks [@cyphercodes](https://github.com/cyphercodes)! - fix(block): respect current DOMPurify config when sanitizing labels - [#7711](mermaid-js/mermaid#7711) [`be2e282`](mermaid-js/mermaid@be2e282) Thanks [@Jinacker](https://github.com/Jinacker)! - fix(flowchart): render flowchart and state self-loop edges as a single SVG path. - [#7781](mermaid-js/mermaid#7781) [`d945968`](mermaid-js/mermaid@d945968) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(radar): align axis labels based on angular position to prevent clipping - [#7661](mermaid-js/mermaid#7661) [`2f5e9e8`](mermaid-js/mermaid@2f5e9e8) Thanks [@nabila401](https://github.com/nabila401)! - fix(venn): fix 3-circle venn diagram union rendering - [#7780](mermaid-js/mermaid#7780) [`8dcdce4`](mermaid-js/mermaid@8dcdce4) Thanks [@Dharya-dev](https://github.com/Dharya-dev)! - fix(xychart): truncate plot data to match x-axis category count - [#7235](mermaid-js/mermaid#7235) [`1bbc189`](mermaid-js/mermaid@1bbc189) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: Support consecutive LaTeX in node text - [#7247](mermaid-js/mermaid#7247) [`365c1b1`](mermaid-js/mermaid@365c1b1) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix(treeView): Ensure treemap labels render correctly in large nested diagrams - [#7754](mermaid-js/mermaid#7754) [`06a32b7`](mermaid-js/mermaid@06a32b7) Thanks [@palgunatm66](https://github.com/palgunatm66)! - fix(sequence): sequenceDiagram rect backgrounds using theme-aware fallback colors - [#7693](mermaid-js/mermaid#7693) [`afaf306`](mermaid-js/mermaid@afaf306) Thanks [@dull-bird](https://github.com/dull-bird)! - fix(quadrant-chart): allow CJK, emoji, Latin-1 accented characters, and other non-ASCII text in unquoted axis/quadrant/point labels. Fixes #7120. - [#7751](mermaid-js/mermaid#7751) [`79e97cd`](mermaid-js/mermaid@79e97cd) Thanks [@puneetdixit200](https://github.com/puneetdixit200)! - fix(state): render state diagram click tooltips with mermaidTooltip - [#7570](mermaid-js/mermaid#7570) [`c2305df`](mermaid-js/mermaid@c2305df) Thanks [@PinguinsRule](https://github.com/PinguinsRule)! - fix(state): Fix invalid syntax between state and '{' - [#7758](mermaid-js/mermaid#7758) [`a4a250b`](mermaid-js/mermaid@a4a250b) Thanks [@mk24x7](https://github.com/mk24x7)! - fix(venn): render labeled higher-arity unions when the underlying pairwise unions are not declared. Resolves #7656. - Updated dependencies \[[`ea1c48f`](mermaid-js/mermaid@ea1c48f), [`b4d0442`](mermaid-js/mermaid@b4d0442), [`4e63e9d`](mermaid-js/mermaid@4e63e9d), [`216e4e9`](mermaid-js/mermaid@216e4e9)]: - @mermaid-js/parser@1.2.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: give me a 98K <240642031+inhuman-0@users.noreply.github.com>
…-directions" This reverts commit 98a494d, reversed manually where later commits (collapsible subgraphs, perf logging cleanup) had touched the same code, so those unrelated changes are preserved.
Revert fix(flowchart): respect per-subgraph direction keyword in Dagre layout- mermaid-js#7672
Summary
This PR fixes a long-standing bug (#4648, #6785) where subgraphs with an explicit
directionkeyword were silently ignored when those subgraphs had external connections.What changed
packages/mermaid/src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.jsThe cluster-extraction predicate was changed from:
to:
The old check (
!externalConnections) meant that any subgraph with an edge to/from a node outside its boundary would never get its own cluster sub-layout — so the user'sdirectionkeyword was silently discarded. The new check uses theexplicitDirflag (set only when the user wrote an explicitdirection Xkeyword) as the trigger, which is the correct and intentional signal from the user.packages/mermaid/src/diagrams/flowchart/flowDb.tsaddSubGraphnow captureshasExplicitDir = rawDir !== undefinedbefore any inherited-direction fallback, ensuring the flag istrueonly when the user wrote an explicitdirectionkeyword.getDatamapsexplicitDir: subGraph.hasExplicitDirand normalisesdirection TD → TB, mirroring the existing normalisation insetDirectionfor the top-level graph.packages/mermaid/src/diagrams/flowchart/types.tsAdded
hasExplicitDir: booleanto theFlowSubGraphinterface to carry the parse-time flag through to layout.packages/mermaid/src/rendering-util/types.tsAdded
explicitDir?: booleanto theBaseNodeinterface so the flag is visible tomermaid-graphlib.js.Behavior change
direction, no external edgesdirection, has external edgesrankdir❌directionrankdirrankdir(no separate cluster)Tests
Two new regression tests added to
cypress/integration/rendering/flowchart/flowchart-v2.spec.js:Manual visual test page added at
cypress/platform/regression/issue-4648.htmlUnit tests in
mermaid-graphlib.spec.js: all 19 tests pass ✅ including 4 newGLB-DIRtests that specifically exercise theexplicitDir→ separate-cluster code path.Fixes #4648
See also #6785