Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
294 commits
Select commit Hold shift + click to select a range
358810b
Use shared paint for Dagre layout
Jun 5, 2026
876ab0a
Share Dagre node measurement helpers
Jun 5, 2026
3f7252d
feat(erDiagram): add subgraph support
RodrigojndSantos Jun 5, 2026
a396d95
fix: preserve run script argument boundaries
Adi-Beker Jun 6, 2026
6738c58
Update all patch dependencies
renovate[bot] Jun 8, 2026
180b383
Merge pull request #7817 from Adi-Beker/fix-run-args-slicing
pbrolin47 Jun 8, 2026
83fadb5
Fix Dagre shared paint cluster handling
Jun 9, 2026
5289e21
Harden block arrow fallow coverage
Jun 9, 2026
f34ee1f
Merge branch 'codex/common-render-pipeline-2-dagre' into codex/common…
Jun 9, 2026
2dedaf7
Merge branch 'codex/common-render-pipeline-3-dagre-phases' into codex…
Jun 9, 2026
ea8ee30
Merge branch 'codex/common-render-pipeline-4-dagre-layoutdata' into c…
Jun 9, 2026
80d7dc5
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
Jun 9, 2026
5b1516a
Fix common paint cluster type narrowing
Jun 9, 2026
36f91dc
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
Jun 9, 2026
b7f72b4
Sync generated common layout docs
Jun 9, 2026
d6938dd
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
Jun 9, 2026
a1afff9
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 9, 2026
00430c0
Merge remote-tracking branch 'origin/codex/common-render-pipeline-6-d…
Jun 9, 2026
90a35ca
Stabilize Cypress viewer cold renders
Jun 9, 2026
63a4ee6
Merge branch 'codex/common-render-pipeline-3-dagre-phases' into codex…
Jun 9, 2026
f2401e6
Merge branch 'codex/common-render-pipeline-4-dagre-layoutdata' into c…
Jun 9, 2026
8bc6565
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
Jun 9, 2026
20f034c
Fix dagre shared paint graph-backed rendering
Jun 9, 2026
693d18b
Fix dagre ER and class self-loop rendering
Jun 9, 2026
2ef8ca9
Fix class diagram dagre self-loop routing
Jun 9, 2026
e8ea3d1
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 9, 2026
5c3a7b4
Restore class diagram node padding defaults
Jun 9, 2026
c7308a3
Fix class renderer default for docs runtime
Jun 9, 2026
8eb3afc
feat(elk): add keepEntryNodeOnTop option to keep a recursive flow's e…
Jun 9, 2026
530e9c6
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
Jun 9, 2026
c637c35
feat(examples): add relatable examples for every diagram type
claude Jun 10, 2026
a5cccc3
fix(examples): point kanban example at the mermaid repo
claude Jun 10, 2026
04e120a
address review: minor changeset bump, document heuristic limitations
knsv Jun 10, 2026
1d190a8
fix(e2e): escape < in example code before innerHTML injection
claude Jun 10, 2026
9076aa7
Merge pull request #7832 from mermaid-js/claude/eloquent-einstein-lrkqje
sidharthv96 Jun 10, 2026
df0d592
Merge pull request #7821 from mermaid-js/renovate/patch-all-patch
sidharthv96 Jun 10, 2026
fa8f5a1
Merge pull request #7828 from mermaid-js/feature/7827_elk-pin-cyclic-…
knsv Jun 10, 2026
0c7418f
fix: use stable commit IDs in git graph example
sidharthv96 Jun 10, 2026
b5ad763
Merge pull request #7834 from mermaid-js/chore/git-example-stable-ids
sidharthv96 Jun 10, 2026
8c6f1e5
Document DAGRE LayoutData normalization limitations
knsv Jun 10, 2026
c46198a
Merge branch 'codex/common-render-pipeline-4-dagre-layoutdata' into c…
knsv Jun 10, 2026
6249755
Merge branch 'codex/common-render-pipeline-5-dagre-shared-paint' into…
knsv Jun 10, 2026
cdfc0ea
Address review feedback: changeset for class default renderer, paint …
knsv-bot Jun 10, 2026
89f2ebf
Merge pull request #7813 from mermaid-js/codex/common-render-pipeline…
pbrolin47 Jun 10, 2026
9841d26
Merge pull request #7812 from mermaid-js/codex/common-render-pipeline…
pbrolin47 Jun 10, 2026
c256e9a
docs: update Node.js version and package manager instructions in gett…
mohammadhouda Jun 10, 2026
f878d5a
Merge pull request #7811 from mermaid-js/codex/common-render-pipeline…
pbrolin47 Jun 10, 2026
0872879
test: remove redundant typecast in unit test
aloisklink Jun 10, 2026
cd749ff
Merge pull request #7724 from xdumaine/xychart-legends
aloisklink Jun 10, 2026
c81fcd4
feat(erDiagram): add subgraph support
RodrigojndSantos Jun 10, 2026
2364d7d
Merge pull request #7792 from RodrigojndSantos/feat7417
pbrolin47 Jun 11, 2026
bf2db99
Merge pull request #7825 from mohammadhouda/docs/7662_update-getting-…
pbrolin47 Jun 11, 2026
0aab88c
refactor: add getRequiredConfig and getDiagramRoot helpers
filipsajdak Jun 12, 2026
5cfa9b3
refactor(c4): convert c4Db to TypeScript
filipsajdak Jun 12, 2026
16e11e7
refactor(c4): convert c4Renderer and svgDraw to TypeScript
filipsajdak Jun 12, 2026
eea48ef
refactor(c4): convert parser spec files to TypeScript
filipsajdak Jun 12, 2026
d8447a0
chore(c4): add changeset for the TypeScript conversion
filipsajdak Jun 12, 2026
9f9566a
Merge pull request #7845 from filipsajdak/feature/7829_c4-db-typescript
sidharthv96 Jun 12, 2026
a34cbf0
fix(block): allow classdefs to update text color
aloisklink Jun 12, 2026
95327b3
Merge branch 'develop' into codex/common-render-pipeline-2-dagre
pbrolin47 Jun 15, 2026
28d1cce
Merge remote-tracking branch 'origin/codex/common-render-pipeline-2-d…
knsv Jun 15, 2026
4a0e4bb
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 15, 2026
a0449a4
Merge pull request #7808 from mermaid-js/codex/common-render-pipeline…
pbrolin47 Jun 15, 2026
e2c9ec5
Merge pull request #7850 from aloisklink/fix/allow-block-diagram-clas…
knsv Jun 15, 2026
b5f24d0
docs(sequence): document supported box color formats
mkcodes4 Jun 15, 2026
be49880
Merge pull request #7807 from mermaid-js/codex/common-render-pipeline…
pbrolin47 Jun 15, 2026
128f9a7
feat(profiling): add structured, tree-shakeable render profiler + Dev…
knsv Jun 15, 2026
c875f71
fix(flowchart): guard generateDashArray against short/degenerate edges
knsv Jun 15, 2026
89a68e8
fix(c4): keep named attributes that land in earlier positional slots
filipsajdak Jun 14, 2026
fc3e397
refactor(profiling): attribute dagre node-measurement to the measure …
knsv Jun 15, 2026
ef4299e
feat(dev-explorer): benchmark diagram sets with set score, trimmed ti…
knsv Jun 15, 2026
ca41d0f
test(perf): add flowchart performance fixtures and baseline
knsv Jun 15, 2026
e68fdf4
feat(profiling): split layout into external-lib vs wrapper time
knsv Jun 15, 2026
581aacd
test(perf): remove hardcoded layout from fixtures; refresh baseline
knsv Jun 15, 2026
4e1bfaf
refactor(c4): extract a shared assignAttributes helper
filipsajdak Jun 14, 2026
215fe89
chore(c4): add changeset for the named attribute fix
filipsajdak Jun 14, 2026
6510e01
feat(profiling): DevTools phase markers + per-op measure buckets
knsv Jun 16, 2026
e4ada28
feat(dev-explorer): surface per-op buckets; fix layoutLib attribution
knsv Jun 16, 2026
3a466c6
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 16, 2026
cbb790d
Merge pull request #7847 from filipsajdak/bug/7846_c4-named-attribute…
aloisklink Jun 16, 2026
94a8f3f
Merge pull request #7854 from MaryamKhan67/docs-sequence-colors
knsv Jun 17, 2026
9763478
fix(profiling): drop async from non-awaiting profiler test callbacks
knsv Jun 17, 2026
ef022af
style(perf): prettier-format baseline.json
knsv Jun 17, 2026
92a4e0a
perf(rendering): cut measure-phase reflows for node sizing
knsv Jun 16, 2026
06dcd9b
Merge remote-tracking branch 'origin/develop' into feat/render-profiler
knsv Jun 17, 2026
0d37481
fix(profiling): default `injected` at runtime so non-bundled runtimes…
knsv Jun 17, 2026
3c71c05
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 17, 2026
eae66d8
Merge branch 'feat/render-profiler' into perf/measure-phase-reflows
knsv Jun 17, 2026
71b8843
chore(profiler): address PR review feedback
knsv Jun 17, 2026
a2d9686
Merge pull request #7870 from mermaid-js/feat/render-profiler
pbrolin47 Jun 17, 2026
8d874c4
perf(rendering): stop dagre debug-log spam from dominating large renders
knsv Jun 17, 2026
d683d60
Merge remote-tracking branch 'origin/develop' into perf/measure-phase…
knsv Jun 17, 2026
9cf68a6
perf(dagre): comment out expensive graph-serialization debug logs
knsv Jun 17, 2026
5ac7c32
chore: update E2E timings
github-actions[bot] Jun 18, 2026
35d0761
Merge pull request #7871 from mermaid-js/perf/measure-phase-reflows
pbrolin47 Jun 18, 2026
1265ee1
feat(e2e): batch Argos screenshots into folder-wise composite sheets
sidharthv96 Jun 18, 2026
026cc24
fix(ci): inline RUN_VISUAL_TEST in argos-batch job if
sidharthv96 Jun 18, 2026
22d5304
fix(e2e): skip registerArgosTask to prevent in-run Argos uploads
sidharthv96 Jun 18, 2026
165f6f6
ci(e2e): upload batched sheets to mermaid-batched Argos project
sidharthv96 Jun 18, 2026
8f9308d
ci(e2e): use GitHub OIDC for Argos batched uploads
sidharthv96 Jun 18, 2026
4a8163b
ci(e2e): restore Argos token auth for batched uploads
sidharthv96 Jun 18, 2026
77b1bb3
feat(argos): improve composite sheet readability and resolution
sidharthv96 Jun 18, 2026
8e67ad0
Merge pull request #7597 from mermaid-js/update-timings
sidharthv96 Jun 18, 2026
1910d58
ci(e2e): add manual workflow dispatch and explicit Argos tokens
sidharthv96 Jun 18, 2026
df0bc6b
fix(argos): use fixed viewport cell slots in composite sheets
sidharthv96 Jun 18, 2026
6d16242
Merge branch 'develop' into sidv/daffy-pearl
sidharthv96 Jun 18, 2026
8be14f3
ci(e2e): unify Argos uploads on develop auth model
sidharthv96 Jun 18, 2026
efe150b
perf(argos): default sheet scale to 1 to cut composite build time
sidharthv96 Jun 18, 2026
7fb556d
[autofix.ci] apply automated fixes
autofix-ci[bot] Jun 18, 2026
90497db
feat(argos): title above tile and scale small screenshots to fit cell
sidharthv96 Jun 18, 2026
0b22682
perf(argos): cheaper PNG levels, memoized grid, direct-SVG labels, co…
sidharthv96 Jun 18, 2026
e6abf84
Merge pull request #7880 from mermaid-js/sidv/daffy-pearl
sidharthv96 Jun 18, 2026
bbb30b6
ci(e2e): seed develop Argos baseline with grouped + individual screen…
sidharthv96 Jun 18, 2026
4655466
ci(e2e): fold baseline combine + upload into a single step
sidharthv96 Jun 18, 2026
9d54ecf
Merge pull request #7884 from mermaid-js/chore/argos-develop-both-bas…
sidharthv96 Jun 18, 2026
8c72f0b
ci(e2e): run the full Cypress suite across 8 shards instead of 5
sidharthv96 Jun 18, 2026
5b94e95
Merge pull request #7885 from mermaid-js/chore/e2e-8-shards
sidharthv96 Jun 18, 2026
5ec0b14
ci(e2e): split develop Argos baseline into K=3 parallel uploads to av…
sidharthv96 Jun 18, 2026
4c14a0a
Merge branch 'develop' of https://github.com/mermaid-js/mermaid into …
sidharthv96 Jun 18, 2026
c4ef3cc
test(e2e): use a solid-color image in imageShape specs instead of a r…
sidharthv96 Jun 18, 2026
067580a
fix(e2e): scope combined Argos baseline upload globs to image files
sidharthv96 Jun 18, 2026
8a024e3
Merge pull request #7886 from mermaid-js/chore/imageshape-solid-color
sidharthv96 Jun 18, 2026
bec4a76
Merge pull request #7887 from mermaid-js/fix/argos-baseline-image-glob
sidharthv96 Jun 18, 2026
493ba59
ci(e2e): restore e2e coverage instrumentation and fix Codecov upload
sidharthv96 Jun 18, 2026
47dce6d
chore: trim verbose comments
sidharthv96 Jun 18, 2026
a56a468
Merge pull request #7888 from mermaid-js/chore/restore-e2e-coverage
sidharthv96 Jun 18, 2026
30d649b
chore: update E2E timings
github-actions[bot] Jun 19, 2026
adfb40a
Merge pull request #7890 from mermaid-js/update-timings
sidharthv96 Jun 19, 2026
59339ff
fix(coverage): stop unit coverage reporting untested files at 0%
sidharthv96 Jun 19, 2026
625ab8b
Merge pull request #7892 from mermaid-js/chore/unit-coverage-all-false
sidharthv96 Jun 19, 2026
9fc3016
test(c4): add characterization suite + feature matrix
filipsajdak Jun 17, 2026
e5a7ea3
test(c4): cover Deployment_Node aliases and note the sprite gap
filipsajdak Jun 18, 2026
7061723
test(c4): add a forward-looking $shape characterization case
filipsajdak Jun 18, 2026
7a7f4b2
test(c4): add a forward-looking $sprite characterization case
filipsajdak Jun 18, 2026
050cad0
chore: Ignore mcp
sidharthv96 Jun 19, 2026
cea4932
fix: Try bumping to 5 batches when uploading to argos
sidharthv96 Jun 19, 2026
63e6875
feat(coverage): collect e2e coverage with native V8 instead of istanbul
sidharthv96 Jun 19, 2026
155bd30
fix(coverage): raise taskTimeout so V8 coverage hook survives heavy s…
sidharthv96 Jun 19, 2026
6bcfbab
test(e2e): split iconShape matrix into per-form spec files
sidharthv96 Jun 19, 2026
925753d
Merge pull request #7894 from mermaid-js/chore/split-iconshape-spec
sidharthv96 Jun 19, 2026
f8e8f3f
Merge branch 'develop' into feat/e2e-v8-coverage
sidharthv96 Jun 19, 2026
b68b7de
fix(e2e): balance Argos baseline upload by leaf directory (avoid 413)
sidharthv96 Jun 19, 2026
35f8da6
fix(e2e): canonicalize Argos screenshot paths so names are shard-inde…
sidharthv96 Jun 19, 2026
bca69fd
fix(e2e): skip Argos upload when the e2e matrix didn't fully pass
sidharthv96 Jun 19, 2026
a8ea395
Merge pull request #7895 from mermaid-js/fix/deterministic-argos-scre…
sidharthv96 Jun 19, 2026
13a9385
Merge branch 'develop' into feat/e2e-v8-coverage
sidharthv96 Jun 19, 2026
6a6a562
Merge pull request #7893 from mermaid-js/feat/e2e-v8-coverage
sidharthv96 Jun 19, 2026
148c2bd
Merge branch 'develop' into feature/7784_collapsible-subgraphs
knsv Jun 22, 2026
38ca1ec
chore: update E2E timings
github-actions[bot] Jun 22, 2026
d1f6e32
docs(flowchart): document collapsible subgraphs via @{ view: collapsed }
knsv Jun 22, 2026
cc229e3
ci(netlify): pin deploy-preview Node to 24.16.0 for live editor build
knsv Jun 22, 2026
7c0379e
ci: build on Node 24.16.0 to match the live editor
knsv Jun 22, 2026
388ccd0
Merge pull request #7897 from mermaid-js/update-timings
sidharthv96 Jun 22, 2026
598252f
Merge tag 'mermaid@11.16.0' into chore/merge-v11.16.0-back-to-develop
aloisklink Jun 25, 2026
f6816ea
ci(e2e): always round-robin Argos image upload
aloisklink Jun 26, 2026
f65401b
Merge pull request #7918 from mermaid-js/perb/merge-v11.16.0-back-to-…
aloisklink Jun 26, 2026
9cbef5d
fix(treeView): preserve icons in strict security mode
nightt5879 Jun 29, 2026
338c98d
Merge pull request #7924 from nightt5879/bug/7920_treeview-icons-stri…
knsv Jun 29, 2026
449e508
Merge branch 'develop' into feature/7784_collapsible-subgraphs
knsv Jun 29, 2026
ac08cb2
ci: disable Link Checker automatic runs
claude Jul 1, 2026
5c877e1
Merge branch 'develop' into feature/7784_collapsible-subgraphs
knsv Jul 1, 2026
594429b
Merge pull request #7785 from mermaid-js/feature/7784_collapsible-sub…
knsv Jul 1, 2026
0d1ee0a
Merge pull request #7927 from mermaid-js/claude/disable-link-checker-…
knsv Jul 1, 2026
d5077c3
Merge remote-tracking branch 'upstream/develop' into feature/c4-chara…
filipsajdak Jul 2, 2026
f9cbe1e
fix(layout): let a diagram's own spacing win over flowchart defaults
filipsajdak Jul 2, 2026
b9fc252
perf: use `fastdom` to batch `addHtmlSpan` reflows
aloisklink Jul 6, 2026
529653c
Add features section to README
hatim0202 Jul 6, 2026
2e3a65c
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 6, 2026
974d3a1
perf: batch label measure reflows
aloisklink Jul 6, 2026
183b3bc
Merge pull request #7944 from hatim0202/docs/add-feature-section
knsv Jul 7, 2026
158e26c
Merge pull request #7937 from filipsajdak/fix/7932-layout-spacing-pre…
knsv Jul 7, 2026
30103f4
revert: Merge pull request #7709 from mermaid-js/chore/e2e-scope-skip…
aloisklink Jul 7, 2026
04a333f
test(c4): remove LLM-narrative doc file and comments from characteriz…
filipsajdak Jul 7, 2026
9254b0d
test(c4): make characterization tests explicit, asserted, and honest
filipsajdak Jul 7, 2026
f3dea58
Merge pull request #7876 from filipsajdak/feature/c4-characterization…
aloisklink Jul 7, 2026
1795c5f
Merge branch 'develop' into perf/use-fastdom-to-batch-reflows
aloisklink Jul 7, 2026
fcb1258
Update reference to initialize() call in documentation
g1eny0ung Jul 13, 2026
06a1983
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 13, 2026
1e9c756
Revert changes under docs
g1eny0ung Jul 14, 2026
45b27a5
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 14, 2026
f0ffb41
Merge pull request #7963 from g1eny0ung/patch-1
pbrolin47 Jul 14, 2026
0b99218
docs: fix JSDoc TypeScript comment in edges.js
aloisklink Jul 16, 2026
afa2f80
docs: document `fastdom` perf improvement
aloisklink Jul 16, 2026
602b510
test(flowchart): add the collate/hourglass alias pair to the alias suite
filipsajdak Jul 17, 2026
9958395
ci: upload full Argos on `CI: full argos` label
aloisklink Jul 21, 2026
e848423
fix(architecture): allow non-ASCII characters and punctuation in unqu…
aloktomarr Jul 22, 2026
73ef245
fix(railroad): correct EBNF demo keywords
Ehtasham-Yasin Jul 22, 2026
b775d1a
docs: replace remaining directive examples with frontmatter
Hashim1999164 Jul 23, 2026
de3e8b4
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 23, 2026
ee0610f
Merge pull request #7985 from Ehtasham-Yasin/bug/7979_railroad-demo-d…
pbrolin47 Jul 23, 2026
56219a3
Merge pull request #7984 from aloktomarr/fix/architecture-unicode-tit…
pbrolin47 Jul 23, 2026
46d7255
Merge pull request #7989 from Hashim1999164/docs/replace-directives-w…
pbrolin47 Jul 24, 2026
0bf10b4
chore(deps): update dependency sharp to ^0.35.0 [security]
renovate[bot] Jul 25, 2026
1d25451
ci(validate-lockfile): use `on: pull_request`
aloisklink Jul 27, 2026
c51be89
ci(validate-lockfile): use blobless clone
aloisklink Jul 27, 2026
d651a19
ci(validate-lockfile): run on ubuntu-slim
aloisklink Jul 27, 2026
bda578e
ci(validate-lockfile): pin `actions/checkout`
aloisklink Jul 27, 2026
9004959
ci(validate-lockfile): remove `${{}}` from script
aloisklink Jul 27, 2026
702261c
Merge pull request #8003 from aloisklink/ci/remove-use-of-pull_reques…
pbrolin47 Jul 28, 2026
d763009
Merge pull request #7948 from aloisklink/ci/revert-CI-scoping
pbrolin47 Jul 28, 2026
0a678db
Merge pull request #7999 from mermaid-js/renovate/npm-sharp-vulnerabi…
aloisklink Jul 28, 2026
1dad490
chore(deps): update dependency js-yaml to v4.3.0 [security]
renovate[bot] Jul 28, 2026
13e0143
Merge pull request #7978 from mermaid-js/renovate/npm-js-yaml-vulnera…
aloisklink Jul 28, 2026
b60d105
chore(deps): update dependency dompurify to v3.4.12 [security]
renovate[bot] Jul 28, 2026
a4512d6
Merge pull request #7975 from mermaid-js/renovate/npm-dompurify-vulne…
aloisklink Jul 28, 2026
a61fe0e
chore(deps): update dependency vitest to v3.2.6 [security]
renovate[bot] Jul 28, 2026
c081694
Revert "Merge pull request #7672 from sjackson0109/fix/4648-directions"
pbrolin47 Jul 28, 2026
9665f6d
Merge pull request #7976 from mermaid-js/renovate/npm-vitest-vulnerab…
aloisklink Jul 28, 2026
90eeece
Added changeset
pbrolin47 Jul 29, 2026
a2e6720
Merge branch 'develop' into revert-pr-7672
pbrolin47 Jul 29, 2026
1e0a4fb
Merge branch 'develop' into ci/add-ci-argos-full-label
aloisklink Jul 29, 2026
21a103a
ci(pr-labeled): add short "PR Labeled" name
aloisklink Jul 29, 2026
627fc21
Merge pull request #7980 from aloisklink/ci/add-ci-argos-full-label
aloisklink Jul 29, 2026
e9bb95c
Merge branch 'develop' into revert-pr-7672
pbrolin47 Jul 29, 2026
4bc79dd
Merge pull request #8005 from pbrolin47/revert-pr-7672
pbrolin47 Jul 29, 2026
8bb0b7c
fix(shapes): size cylinder width and height independently
filipsajdak Jul 30, 2026
ae3e115
feat(shapes): add a person shape
filipsajdak Jul 30, 2026
cba2890
feat(rendering): render stacked multi-section labels for stereotyped …
filipsajdak Jul 30, 2026
3670b4e
feat(c4): render C4 elements through the unified shapes
filipsajdak Jul 30, 2026
e786744
style(c4): style the unified C4 element labels
filipsajdak Jul 30, 2026
f689356
docs(c4): document opt-in label wrapping via c4.width
filipsajdak Jul 30, 2026
5edc5f3
fix(c4): place relationship endpoints via each shape's intersection
filipsajdak Jul 30, 2026
eef0710
refactor(c4): drop the element-drawing code the unified shapes replaced
filipsajdak Jul 30, 2026
36473b5
fix: treat `node.width` as lower-bound in cylinder
aloisklink Jul 27, 2026
2377cc8
Merge remote-tracking branch 'upstream/develop' into test/flowchart-c…
filipsajdak Jul 30, 2026
04f8cbf
Merge pull request #7842 from filipsajdak/feature/7492_c4-unified-ren…
aloisklink Jul 30, 2026
19563d8
Merge pull request #7972 from filipsajdak/test/flowchart-collate-alias
pbrolin47 Jul 31, 2026
756e058
feat(shapes): add folder shape
filipsajdak Aug 1, 2026
4bbea45
feat(shapes): add bucket shape
filipsajdak Aug 1, 2026
690605d
feat(shapes): add console shape
filipsajdak Aug 1, 2026
af05de3
feat(shapes): add browser shape
filipsajdak Aug 1, 2026
a2c0fb6
feat(shapes): register the folder, bucket, console and browser shapes
filipsajdak Aug 1, 2026
9f49de6
fix(e2e): give flat rendering specs their own Argos sheet group
filipsajdak Aug 1, 2026
a5894cc
fix(deps): update all patch dependencies
renovate[bot] Aug 3, 2026
f0f96c0
Merge pull request #8020 from mermaid-js/renovate/patch-all-patch
aloisklink Aug 4, 2026
5458092
fix(parser): pin langium to 4.2.1 to keep chevrotain v11 and Node 20 …
ashishjain0512 Aug 5, 2026
35133f2
Merge branch 'master' into chore/merge-v11.16.1-to-develop
aloisklink Aug 5, 2026
639938b
Update .changeset/pin-langium-chevrotain-11-node20.md
ashishjain0512 Aug 5, 2026
45dcb84
[autofix.ci] apply automated fixes
autofix-ci[bot] Aug 5, 2026
a167149
Merge branch 'develop' into perf/use-fastdom-to-batch-reflows
aloisklink Aug 5, 2026
372fe05
Merge pull request #8029 from aloisklink/chore/merge-v11.16.1-to-develop
pbrolin47 Aug 5, 2026
dc6f5ef
Merge pull request #7951 from aloisklink/perf/use-fastdom-to-batch-re…
pbrolin47 Aug 5, 2026
3d521b1
Merge pull request #8028 from mermaid-js/bug/8027_pin-langium-chevrot…
pbrolin47 Aug 5, 2026
d93e9c8
Merge pull request #7970 from filipsajdak/feature/general-shapes-fold…
pbrolin47 Aug 10, 2026
b3d1f63
Fixed block rendering due to failing SS in applitools
pbrolin47 Aug 18, 2026
7ba4b6f
[autofix.ci] apply automated fixes
autofix-ci[bot] Aug 18, 2026
4150c73
Make changesets less verbose
pbrolin47 Aug 18, 2026
b5a744a
docs: scope to all v11.17.0 changeset messages
aloisklink Aug 18, 2026
349ebd3
docs: remove non-user visible changeset
aloisklink Aug 18, 2026
8628ef1
docs: remove C4 typescript conversion changeset
aloisklink Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/architecture-unicode-titles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@mermaid-js/parser': patch
---

fix(architecture): allow non-ASCII characters and punctuation in unquoted titles
5 changes: 5 additions & 0 deletions .changeset/c4-named-attrs-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(c4): named attributes such as `$tags`, `$link` and `$sprite` are no longer clobbered to undefined when they arrive in an earlier positional slot of Person/System/Container/Component/Boundary/Rel statements.
5 changes: 5 additions & 0 deletions .changeset/c4-unified-shapes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(c4): render C4 elements through the unified shape system, using the new person shape
7 changes: 7 additions & 0 deletions .changeset/class-default-unified-renderer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'mermaid': minor
---

feat(class): route `classDiagram` to the unified (v2) renderer by default

Set `class: { defaultRenderer: 'dagre-d3' }` in the config to restore the legacy renderer.
5 changes: 5 additions & 0 deletions .changeset/collapsible-subgraphs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(flowchart): add collapsible flowchart subgraphs via `subgraphId@{ view: collapsed }`
5 changes: 5 additions & 0 deletions .changeset/dagre-quiet-debug-logs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(flowchart): stop dagre layout from spamming `warn`-level logs on every node/edge/cluster
6 changes: 6 additions & 0 deletions .changeset/elk-keep-entry-node-on-top.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@mermaid-js/layout-elk': minor
'mermaid': minor
---

feat(elk): add `elk.keepEntryNodeOnTop` config option to keep a recursive flow's entry node on top
6 changes: 6 additions & 0 deletions .changeset/elk-node-placement-alignment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'mermaid': minor
'@mermaid-js/layout-elk': minor
---

feat(elk): add `elk.nodePlacementAlignment` config option
5 changes: 5 additions & 0 deletions .changeset/every-hats-invent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(er): add subgraph support to ER diagrams.
5 changes: 5 additions & 0 deletions .changeset/examples-relatable-examples.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@mermaid-js/examples': minor
---

feat: add relatable, real-world examples for every diagram type, showcasing each diagram's strengths
5 changes: 5 additions & 0 deletions .changeset/fix-block-diagram-wide-label-overlap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(block): sibling blocks overlapping in block diagrams when one has a label wider than 200px
5 changes: 5 additions & 0 deletions .changeset/fix-edge-dasharray-rangeerror.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix: a `RangeError: Invalid array length` crash when rendering certain edges.
5 changes: 5 additions & 0 deletions .changeset/fix-treeview-icons-strict-security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(treeView): icons disappearing after strict security sanitization.
5 changes: 5 additions & 0 deletions .changeset/general-shapes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(flowchart): add `folder`, `bucket`, `console` (terminal window) and `browser` shapes
5 changes: 5 additions & 0 deletions .changeset/kind-dogs-crash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(block): allow classdefs to update text color
5 changes: 5 additions & 0 deletions .changeset/layout-spacing-precedence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(dagre): let a diagram's own nodeSpacing/rankSpacing take effect in the unified dagre layout
5 changes: 5 additions & 0 deletions .changeset/person-shape.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(flowchart): add `person` shape (circular head above a rounded body), usable in flowcharts via `A@{ shape: person }`
5 changes: 5 additions & 0 deletions .changeset/revert-pr-7672.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

fix(flowchart): reverts the behavior change from #7672 (fix/4648-directions), since arrows between subgraphs are broken
5 changes: 5 additions & 0 deletions .changeset/tangy-regions-flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': patch
---

perf: use `fastdom` to batch DOM measurements (up to 25% speedup)
5 changes: 5 additions & 0 deletions .changeset/xychart-legends.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'mermaid': minor
---

feat(xyChart): add legends for named line and bar series
2 changes: 2 additions & 0 deletions .cspell/code-terms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ classdef
classdefid
classentity
classname
clazz
CODEOWNERS
COLONSEP
COMPOSIT_STATE
Expand Down Expand Up @@ -163,6 +164,7 @@ ts-nocheck
tsdoc
typeof
typestr
uninstrumented
unrouted
unshift
urlsafe
Expand Down
2 changes: 2 additions & 0 deletions .cspell/libraries.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Doctave
DokuWiki
dompurify
elkjs
fastdom
fcose
fontawesome
Fonticons
Expand All @@ -48,6 +49,7 @@ matplotlib
mdbook
Mermerd
mkdocs
monocart
Nextra
nodenext
npmjs
Expand Down
1 change: 1 addition & 0 deletions .cspell/mermaid-terms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ sandboxed
sentencepiece
siebling
statediagram
Structurizr
substate
treeview
unfixable
Expand Down
4 changes: 4 additions & 0 deletions .esbuild/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ import type { MermaidBuildOptions } from './util.js';
import { defaultOptions, getBuildConfig } from './util.js';

const shouldVisualize = process.argv.includes('--visualize');
// Opt-in: build a profiling-enabled artifact (`pnpm build:esbuild --profiling`).
// Off by default so released bundles never carry the profiler.
const shouldProfile = process.argv.includes('--profiling');

const buildPackage = async (entryName: keyof typeof packageOptions) => {
const commonOptions: MermaidBuildOptions = {
...defaultOptions,
profiling: shouldProfile,
options: packageOptions[entryName],
} as const;
const buildConfigs: MermaidBuildOptions[] = [
Expand Down
48 changes: 42 additions & 6 deletions .esbuild/dev-explorer/console-panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,17 @@
message: string;
};

const pad2 = (n: number) => (n < 10 ? '0' + n : '' + n);

// Manual HH:MM:SS.mmm — NOT `toLocaleTimeString`. The Intl path costs ~1µs/call,
// and the panel formats every visible entry on every render; a chatty render
// (dagre emits thousands of log lines) turned this into seconds of self-time
// (9s+ in profiles). Hand-formatting is ~100x cheaper and locale-irrelevant here.
function formatTs(ts: number) {
const d = new Date(ts);
return (
d.toLocaleTimeString(undefined, { hour12: false }) +
'.' +
String(d.getMilliseconds()).padStart(3, '0')
);
return `${pad2(d.getHours())}:${pad2(d.getMinutes())}:${pad2(d.getSeconds())}.${String(
d.getMilliseconds()
).padStart(3, '0')}`;
}

function _levelVariant(level: LogLevel) {
Expand Down Expand Up @@ -72,6 +76,13 @@
declare showDebug: boolean;
declare filterText: string;

/** Hard cap on retained entries. A single dagre render can emit tens of
* thousands of log lines; without a cap the panel grows unbounded and every
* re-render re-formats the whole list (O(n²)). Keep only the newest N. */
static MAX_LOGS = 5000;
#pending: LogEntry[] = [];
#flushHandle = 0;

constructor() {
super();
this.logs = [];
Expand All @@ -87,11 +98,36 @@
}

clear() {
if (this.#flushHandle) {
cancelAnimationFrame(this.#flushHandle);
this.#flushHandle = 0;
}
this.#pending = [];
this.logs = [];
}

// Batch appends into ONE state update per frame. The old code reassigned
// `this.logs` on every entry, so a render emitting N log lines triggered N
// Lit re-renders, each re-formatting up to N entries → O(n²) and seconds of
// wasted reformatting (the dagre-vs-elk "spinning" was entirely this).
// Coalescing collapses a whole render's logs into a single bounded update.
append(entry: LogEntry) {
this.logs = [...this.logs, entry];
this.#pending.push(entry);
if (this.#flushHandle) {
return;
}
this.#flushHandle = requestAnimationFrame(() => this.#flushPending());
}

#flushPending() {
this.#flushHandle = 0;
if (this.#pending.length === 0) {
return;
}
const merged = [...this.logs, ...this.#pending];
this.#pending = [];
const max = DevConsolePanel.MAX_LOGS;
this.logs = merged.length > max ? merged.slice(merged.length - max) : merged;
}

#visibleText() {
Expand Down Expand Up @@ -181,30 +217,30 @@
placeholder="filter…"
clearable
value=${this.filterText}
@sl-input=${(e: any) => (this.filterText = e.target.value ?? '')}

Check warning on line 220 in .esbuild/dev-explorer/console-panel.ts

View workflow job for this annotation

GitHub Actions / autofix

Unexpected any. Specify a different type
></sl-input>
<sl-checkbox
size="small"
?checked=${this.showDebug}
@sl-change=${(e: any) => (this.showDebug = e.target.checked)}

Check warning on line 225 in .esbuild/dev-explorer/console-panel.ts

View workflow job for this annotation

GitHub Actions / autofix

Unexpected any. Specify a different type
>debug</sl-checkbox
>
<sl-checkbox
size="small"
?checked=${this.showInfo}
@sl-change=${(e: any) => (this.showInfo = e.target.checked)}

Check warning on line 231 in .esbuild/dev-explorer/console-panel.ts

View workflow job for this annotation

GitHub Actions / autofix

Unexpected any. Specify a different type
>info</sl-checkbox
>
<sl-checkbox
size="small"
?checked=${this.showWarn}
@sl-change=${(e: any) => (this.showWarn = e.target.checked)}

Check warning on line 237 in .esbuild/dev-explorer/console-panel.ts

View workflow job for this annotation

GitHub Actions / autofix

Unexpected any. Specify a different type
>warn</sl-checkbox
>
<sl-checkbox
size="small"
?checked=${this.showError}
@sl-change=${(e: any) => (this.showError = e.target.checked)}

Check warning on line 243 in .esbuild/dev-explorer/console-panel.ts

View workflow job for this annotation

GitHub Actions / autofix

Unexpected any. Specify a different type
>error</sl-checkbox
>
<sl-button
Expand Down
Loading
Loading