Compare commits

...

706 Commits

Author SHA1 Message Date
Ashish Jain
2b3cb6a362 Merge pull request #6713 from mermaid-js/changeset-release/master
Version Packages
2025-07-03 15:51:36 +02:00
github-actions[bot]
89ac2932c4 Version Packages 2025-07-03 13:28:11 +00:00
Ashish Jain
e828609749 Merge pull request #6695 from mermaid-js/develop
Pre-Release
2025-07-03 15:24:36 +02:00
Ashish Jain
91f141f772 Merge pull request #6711 from mermaid-js/update-lychee-for-phpbb
Updated phpbb url  to support 403 in lychee
2025-07-03 12:53:41 +00:00
shubham-mermaid
c77b968f1e Updated phpbb url to support 403 in lychee 2025-07-03 18:12:12 +05:30
Ashish Jain
ba13981905 Updated lychee for working url phpbb.com 2025-07-03 12:56:09 +02:00
Alois Klink
a7a94b95e1 Merge pull request #6707 from mermaid-js/4838-gitgraph-chronology-duplicate-id
4838: Log warning for duplicate commit IDs in gitGraph
2025-07-03 10:34:25 +00:00
darshanr0107
31f141c61a Merge branch 'develop' into 4838-gitgraph-chronology-duplicate-id 2025-07-03 15:39:40 +05:30
darshanr0107
fb017bebfd resolve PR comment
Co-authored-by: Alois Klink <alois@aloisklink.com>
2025-07-03 15:39:26 +05:30
darshanr0107
648698a43a resolve PR comments 2025-07-03 13:57:36 +05:30
Sidharth Vinod
a5e4729c76 Merge pull request #6700 from mermaid-js/update-timings
Update E2E Timings
2025-07-03 12:52:12 +05:30
github-actions[bot]
c884def5fc chore: update E2E timings 2025-07-03 04:14:58 +00:00
darshanr0107
592c5bb880 add changeset 2025-07-02 12:16:17 +05:30
darshanr0107
da0c6c6c32 log warning when duplicate commit IDs are encountered 2025-07-02 11:59:20 +05:30
Knut Sveidqvist
d9396eedd6 Merge pull request #6698 from mermaid-js/update-urls-in-docs
Added updated chatgpt  plugin url and removed failing url
2025-06-27 12:46:28 +00:00
shubham-mermaid
5f9601b6a8 Merge branch 'develop' into update-urls-in-docs 2025-06-27 17:53:04 +05:30
shubham-mermaid
378f8ece0c Added updated chatgpt plugin url and removed failing url 2025-06-27 17:50:45 +05:30
shubham-mermaid
148a42a31a Merge pull request #6590 from mermaid-js/knsv-treemap
Adding support for the new diagram type nested treemap
2025-06-27 10:31:32 +00:00
shubham-mermaid
8980ca4526 Added classes and outernodes in imperativestate 2025-06-27 15:18:53 +05:30
shubham-mermaid
caa04aad8b Updated code as per suggestions 2025-06-27 13:48:44 +05:30
shubham-mermaid
3dc06ea9bd fixed unwanted vitepress from lockfile 2025-06-26 19:27:40 +05:30
shubham-mermaid
c311c1ba5d Merge branch 'develop' into knsv-treemap 2025-06-26 18:40:43 +05:30
Sidharth Vinod
11a86d9c06 Merge pull request #6689 from mermaid-js/#6669-pnpm-lock-workflow-validation-
Added step to install pnpm
2025-06-26 12:59:17 +00:00
shubham-mermaid
037bec189c Updated as per suggestions 2025-06-26 17:43:06 +05:30
shubham-mermaid
9b164dd185 Added step to install pnpm and echo statements for debugging. 2025-06-26 14:41:03 +05:30
shubham-mermaid
4ee124bf91 Merge branch 'develop' into knsv-treemap 2025-06-26 13:04:47 +05:30
Sidharth Vinod
e7970c66ee Merge pull request #6670 from mermaid-js/#6669-pnpm-lock-validations
Added workflow file for validating pnpm-lock file
2025-06-23 09:11:05 +00:00
shubham-mermaid
c7b96be683 Merge branch 'develop' into #6669-pnpm-lock-validations 2025-06-23 12:43:35 +05:30
shubham-mermaid
0623a87d70 Removed js file check in paths 2025-06-23 12:43:13 +05:30
shubham-mermaid
c5f89eaa9a Update .github/workflows/validate-lockfile.yml
Co-authored-by: Sidharth Vinod <github@sidharth.dev>
2025-06-23 12:41:21 +05:30
Sidharth Vinod
1fbe550285 Merge pull request #6659 from sametcn99/patch-1
Add vitepress plugin link
2025-06-21 05:46:08 +00:00
Sidharth Vinod
b3724f04c4 Merge pull request #6673 from mermaid-js/kill-the-bird
Kill the bird
2025-06-21 05:41:04 +00:00
Nacho Orlandoni
2f58a0e188 Kill the bird
This seems like an abandoned product, where the author went on a rampage trying to get it included into as many repositories as he can as a publicity stunt and no longer even works...
2025-06-20 22:07:14 -04:00
shubham-mermaid
6f1e0e4d17 Updated message 2025-06-20 18:57:22 +05:30
shubham-mermaid
7dd8ddc3eb Added generic message. 2025-06-20 18:55:45 +05:30
shubham-mermaid
222d7170f7 Added changeset 2025-06-20 14:11:26 +05:30
shubham-mermaid
3137cff4a5 Added auto-comment 2025-06-20 14:07:37 +05:30
shubham-mermaid
b45b1d7795 Trigger Build 2025-06-20 13:54:18 +05:30
shubham-mermaid
e1030b186e Added validation for packages/mermaid/src/vitepress path 2025-06-20 13:18:50 +05:30
shubham-mermaid
334c8c2962 use depth 0 2025-06-20 13:12:56 +05:30
shubham-mermaid
bdaa3f693a Added PR based sha 2025-06-20 13:11:33 +05:30
shubham-mermaid
be13fb0391 Updated origin to event.pull_request.base.ref 2025-06-20 12:53:47 +05:30
shubham-mermaid
c120901744 Added workflow file for validating pnpm-lock file 2025-06-20 12:47:17 +05:30
Sidharth Vinod
1f07a781e4 Merge pull request #6660 from mermaid-js/changeset-release/master
Version Packages
2025-06-20 10:32:20 +05:30
github-actions[bot]
3132387ede Version Packages 2025-06-19 12:43:20 +00:00
Sidharth Vinod
f41b4c96f9 Update bitter-colts-remain.md 2025-06-19 18:11:16 +05:30
Sidharth Vinod
26bd456c01 chore: Revert manual version upgrade 2025-06-19 13:59:46 +05:30
Sidharth Vinod
8ef7040a8d chore: Update changeset 2025-06-19 13:55:00 +05:30
autofix-ci[bot]
badb019d38 [autofix.ci] apply automated fixes 2025-06-17 11:17:51 +00:00
Sidharth Vinod
e7ec8ed527 fix: Copy changelog to tiny 2025-06-17 16:35:46 +05:30
samet
d85a393bcd Add vitepress plugin link 2025-06-17 14:04:55 +03:00
Sidharth Vinod
7c1e655675 chore: Update changeset to minor bump 2025-06-17 16:34:31 +05:30
Sidharth Vinod
df2ccaa14b Merge pull request #6658 from mermaid-js/develop
Pre-Release
2025-06-17 16:13:14 +05:30
Sidharth Vinod
797ba43d6e chore: lychee ignore mermaid-preview 2025-06-17 16:05:45 +05:30
Sidharth Vinod
d628a971ef Merge branch 'master' into develop
* master: (46 commits)
  Add canonicals to pages migrated to docs.mermaidchart.com
  chore: minor update
  chore: dynamically change text size depending on route
  chore: update text size to lg
  chore: remove tooltip
  chore: update as per PR comment
  chore: Update banner ad
  chore: Use mermaid.live as fallback links in button
  chore: Tweak shadows
  chore : fix UI
  chore: Update URL
  chore: UI refactor
  chore: Update UI design
  chore: removed index and used flag
  chore: code refactor
  chore: Update as per PR suggestion.
  chore: add event listener for button.
  Feat: Add editor popup modal
  Skip foswiki link check
  feat: Pause animation when hovering
  ...
2025-06-17 15:53:29 +05:30
shubham-mermaid
8049b6aef8 Merge pull request #6616 from mermaid-js/fix/timeline-vertical-lines-6610
fix(timeline): ensure consistent vertical line lengths with visible arrowheads
2025-06-17 10:05:42 +00:00
shubham-mermaid
84802118be Merge branch 'develop' into fix/timeline-vertical-lines-6610 2025-06-17 15:18:44 +05:30
shubham-mermaid
e2ef425245 Merge branch 'develop' into fix/timeline-vertical-lines-6610 2025-06-17 14:48:24 +05:30
shubham-mermaid
da98732961 Sync with develop for pnpm-lock 2025-06-17 14:43:13 +05:30
shubham-mermaid
efa11a7325 Merge pull request #6648 from mermaid-js/6647-handle-node-order-elk
#6647 Make elk respect the order of nodes based from the code
2025-06-17 09:08:31 +00:00
Ashish Jain
e5f6ea0b13 Add canonicals to pages migrated to docs.mermaidchart.com 2025-06-17 10:16:46 +02:00
Sidharth Vinod
9562a769db Merge pull request #6624 from mermaid-js/rajat-ht/chore-update-banner-ad
chore: update banner ad
2025-06-16 11:09:18 +05:30
rajat-ht
5cfda33d04 chore: minor update 2025-06-13 22:57:21 +05:30
Knut Sveidqvist
e682172823 Reverting the elk.layered.wrapping.validify.strategy setting 2025-06-11 17:06:17 +02:00
Knut Sveidqvist
85c5b9b4c0 #6647 Make elk respect the order of nodes based from the code 2025-06-11 17:00:29 +02:00
rajat-ht
1e68ed9cc1 chore: dynamically change text size depending on route 2025-05-30 22:50:55 +05:30
rajat-ht
1337c60784 chore: update text size to lg 2025-05-29 22:34:40 +05:30
rajat-ht
a12d1f731a chore: remove tooltip 2025-05-29 17:16:19 +05:30
rajat-ht
b6ba9b79df chore: update as per PR comment 2025-05-29 17:06:25 +05:30
rajat-ht
ce227b5519 chore: Update banner ad 2025-05-29 16:22:20 +05:30
Sidharth Vinod
8a703bd09f Merge pull request #6600 from kimulaco/docs/6599_fix-preview-error
docs: fix preview errors in the flowchart documentation
2025-05-28 22:22:22 +05:30
Sidharth Vinod
c4de3cdc57 Merge pull request #6609 from mermaid-js/rajat-ht/feat-add-editor-popup-modal
Feat: Add editor popup modal
2025-05-28 21:54:21 +05:30
Sidharth Vinod
ef449a601b chore: Use mermaid.live as fallback links in button 2025-05-28 21:53:24 +05:30
Sidharth Vinod
8e84a1a8af chore: Tweak shadows 2025-05-28 21:47:21 +05:30
rajat-ht
a3552e7936 chore : fix UI 2025-05-28 21:27:55 +05:30
rajat-ht
646cdf0d32 chore: Update URL 2025-05-28 02:32:32 +05:30
rajat-ht
99048bfa01 chore: UI refactor 2025-05-27 18:34:32 +05:30
Ashish Jain
ca80f719ea fix(timeline): ensure consistent vertical line lengths with visible arrowheads
- Fixed inconsistent vertical line lengths in timeline diagrams
- All vertical lines now extend to same depth regardless of event count
- Added sufficient padding for clear visibility of dashed lines and arrowheads
- Added comprehensive test case and demo example

Fixes #6610
2025-05-26 12:16:58 +02:00
rajat-ht
0cabc6e8ed chore: Update UI design 2025-05-23 22:14:18 +05:30
rajat-ht
5fe0f53179 chore: removed index and used flag 2025-05-23 16:53:06 +05:30
rajat-ht
e2e3cd2bbd chore: code refactor 2025-05-23 16:30:59 +05:30
rajat-ht
ffb9016d65 Merge branch 'master' of https://github.com/mermaid-js/mermaid into rajat-ht/feat-add-editor-popup-modal 2025-05-23 15:55:04 +05:30
rajat-ht
3c03f289b4 chore: Update as per PR suggestion. 2025-05-23 15:49:12 +05:30
Sidharth Vinod
c6035936b6 Merge pull request #6594 from mermaid-js/rajat-ht/chore-update-tooltip
Chore: Update tooltip
2025-05-22 12:35:56 +05:30
Sidharth Vinod
818699f347 Merge pull request #6595 from yoshinorin/patch-1
docs: fix Markdown links on the `Questions or Suggestions` page
2025-05-22 12:34:14 +05:30
rajat-ht
f23a26e528 chore: add event listener for button. 2025-05-21 17:11:29 +05:30
rajat-ht
48e6e60753 Feat: Add editor popup modal 2025-05-20 20:00:30 +05:30
Knut Sveidqvist
dc3ed65c18 Commented out skipped tests 2025-05-20 15:26:27 +02:00
Knut Sveidqvist
43092e6e11 Fixed rendering issues found while testing, setting to treemap-beta 2025-05-20 15:22:49 +02:00
Knut Sveidqvist
878e77acab Updates after review comments 2025-05-20 12:56:31 +02:00
Sidharth Vinod
2372cd7b21 Skip foswiki link check 2025-05-20 15:31:12 +05:30
Sidharth Vinod
51f0cb2892 feat: Pause animation when hovering 2025-05-20 15:17:56 +05:30
Sidharth Vinod
14e3d77c75 fix: Specifically hide tooltip, instead of using a very specific selector to show 2025-05-20 15:13:38 +05:30
Sidharth Vinod
875fef691b fix: Use CSS instead of JS to hide/show tooltip 2025-05-20 15:01:39 +05:30
Alois Klink
7075f833d0 Merge pull request #6566 from arpitjain099/develop
fix: escape backslashes before parentheses in URL replacement logic
2025-05-20 06:41:51 +00:00
Sidharth Vinod
d629c5eae5 Merge pull request #6581 from ZenUml/feat/update-zenuml-core-to-3_31_1-rebased
Upgrade @zenuml/core to v3.31.1.
2025-05-19 20:16:38 +05:30
Ashish Jain
80904da253 Merge pull request #6423 from BambioGaming/feature/6314_state-click
Feature: Added support for clickable states using the click directive
2025-05-19 05:56:17 +00:00
kimulaco
e6be1e9202 docs(flowchart): disable image shape preview 2025-05-18 08:45:56 +09:00
kimulaco
6f5d889f19 docs(flowchart): fix the example code of Markdown Strings 2025-05-18 08:36:43 +09:00
Knut Sveidqvist
63827db60d Added padding as configuration 2025-05-15 10:59:47 +02:00
Knut Sveidqvist
41108358f6 Adding support for title and accessibilities 2025-05-15 10:44:46 +02:00
Peng Xiao
ec0786a6fa Merge branch 'develop' into feat/update-zenuml-core-to-3_31_1-rebased 2025-05-14 22:00:31 +10:00
autofix-ci[bot]
2ea6695b4b [autofix.ci] apply automated fixes 2025-05-13 16:16:39 +00:00
yoshinorin
6485d1fbca docs: fix Markdown links on the Questions or Suggestions page 2025-05-14 01:04:29 +09:00
Arpit Jain
d0f1dafd49 Merge branch 'develop' into develop 2025-05-13 22:43:34 +09:00
Ashish Jain
f970fc8bea Merge branch 'develop' into knsv-treemap 2025-05-13 14:39:53 +02:00
Ashish Jain
015afc53d5 Merge pull request #6588 from mermaid-js/omkar/fix-er-diagram-styling
Fix: Apply proper styling for Mermaid ER diagrams
2025-05-13 11:48:18 +00:00
rajat-ht
1f44143936 Chore update tooltip 2025-05-13 15:28:24 +05:30
Knut Sveidqvist
db461a4c6c Updated lockfile 2025-05-12 19:21:25 +02:00
Knut Sveidqvist
fe33d5fb53 Merge remote-tracking branch 'origin/develop' into knsv-treemap 2025-05-12 19:18:04 +02:00
Knut Sveidqvist
64c4d4197b Prettier fix for json file 2025-05-12 18:30:06 +02:00
Knut Sveidqvist
ed7bab76f2 Fixed linting issues in markdown file 2025-05-12 18:27:40 +02:00
Knut Sveidqvist
f338802642 Adding changeset 2025-05-12 18:05:43 +02:00
Knut Sveidqvist
445595f942 Handling longer summaries for sections and lint fixes for the renderer 2025-05-12 17:57:23 +02:00
Knut Sveidqvist
66ce617bea Added support for valueFormat directive - linting 2025-05-12 17:47:00 +02:00
Knut Sveidqvist
3e07a5acff Added support for valueFormat directive 2025-05-12 17:46:19 +02:00
Knut Sveidqvist
df1e739194 Added support for valueFormat directive 2025-05-12 17:40:23 +02:00
Knut Sveidqvist
2def5a0768 Added visual tests 2025-05-12 17:16:29 +02:00
Knut Sveidqvist
2746bccef3 Added rendering and documentation for treemap - linting 2025-05-12 15:54:06 +02:00
Knut Sveidqvist
f0c3dfe3b3 Added rendering and documentation for treemap 2025-05-12 15:47:58 +02:00
Arpit Jain
942ae8dcbc Update text associated with change 2025-05-12 11:14:36 +00:00
Arpit Jain
cadcddd40c update change version to patch 2025-05-12 11:13:04 +00:00
Arpit Jain
bca6ed67c3 Add pnpm message for change 2025-05-12 10:39:42 +00:00
Alois Klink
f20c677982 test(e2e): fix arrowMarkerAbsolute: true test
The `/` and `:` characters in `url()` are now escaped using
`CSS.escape`.

See: e79147dcfc
2025-05-12 12:00:09 +02:00
Alois Klink
e46fd145b2 test(e2e): skip arrowMarkerAbsolute: 'false'
This feature looks like it's been broken for a long time, but something
about the Cypress environment was rewriting the URL to be relative,
causing this test to incorrectly pass.
2025-05-12 11:56:26 +02:00
omkarht
b1cf291273 added changeset 2025-05-12 15:23:35 +05:30
omkarht
cac1779c22 Fix: apply proper styling for Mermaid ER diagrams 2025-05-12 15:14:20 +05:30
autofix-ci[bot]
96bd7de40d [autofix.ci] apply automated fixes 2025-05-10 05:33:28 +00:00
Arpit Jain
82874c6584 Add missing export command 2025-05-10 05:28:44 +00:00
Arpit Jain
e79147dcfc update occurrences with getUrl and use CSS.escape function instead 2025-05-10 05:12:48 +00:00
Arpit Jain
28131bab98 Merge branch 'mermaid-js:develop' into develop 2025-05-10 13:53:52 +09:00
BambioGaming
9d6b9369e6 Merge branch 'develop' into feature/6314_state-click 2025-05-09 13:51:51 +01:00
khalil
80351d9f59 Merge branch 'feature/6314_state-click' of https://github.com/BambioGaming/mermaid into feature/6314_state-click 2025-05-09 13:49:44 +01:00
khalil
7b307f812f fixed merge conflicts 2025-05-09 13:47:45 +01:00
khalil
071df09395 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into feature/6314_state-click 2025-05-09 13:26:26 +01:00
Sidharth Vinod
0d047ccbcc Update mermaid-tiny README.md 2025-05-09 05:04:43 -07:00
Knut Sveidqvist
680d65114c Added class suppoort to the grammar 2025-05-09 13:47:45 +02:00
MrCoder
d463f00160 Update pnpm-lock.yaml to match patchedDependencies configuration 2025-05-09 21:22:58 +10:00
MrCoder
941bc69835 chore: Upgrade @zenuml/core to version 0.3.0 2025-05-09 19:28:13 +10:00
MrCoder
107b6cae87 Upgrade @zenuml/core to v3.31.1.
It fixes the issue https://github.com/mermaid-js/mermaid-cli/issues/584 among other improvements.
2025-05-09 19:20:20 +10:00
Sidharth Vinod
1b044a24fa Merge pull request #4734 from mermaid-js/sidv/tinyMermaid
Add `mermaid.tiny.min.js`. 69.7% size reduction.
2025-05-09 05:27:29 +00:00
Sidharth Vinod
17a156901a Merge pull request #5980 from BryanCrotazGivEnergy/packet-diagram-bit-counts
Feature: Packet diagram can use bit counts - implements #5978
2025-05-09 04:59:53 +00:00
Sidharth Vinod
fa22ed137c Merge branch 'develop' into packet-diagram-bit-counts 2025-05-09 10:21:00 +05:30
Sidharth Vinod
6b886abf39 Merge pull request #6578 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.6 [security]
2025-05-09 01:54:06 +05:30
renovate[bot]
4fd64c5bc0 chore(deps): update dependency vite to v6.1.6 [security] 2025-05-08 19:16:11 +00:00
Sidharth Vinod
7e245f970f Merge pull request #6555 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.6 [security]
2025-05-08 19:02:02 +00:00
Knut Sveidqvist
4f8f929340 adjusted layout and theme support 2025-05-08 16:32:40 +02:00
Knut Sveidqvist
3629e8e480 Update treemap renderer for improved padding and layout adjustments 2025-05-08 14:20:05 +02:00
Knut Sveidqvist
ff48c2e1da adjusted layout WIP 2025-05-08 13:42:50 +02:00
Knut Sveidqvist
1bd13b50f1 added proper hierarchy from parsed data 2025-05-08 11:19:19 +02:00
renovate[bot]
bbe3489b4f chore(deps): update dependency vite to v6.1.6 [security] 2025-05-08 07:32:47 +00:00
Sidharth Vinod
31ba692f65 Merge pull request #6563 from mermaid-js/renovate/peter-evans-create-pull-request-digest
chore(deps): update peter-evans/create-pull-request digest to 889dce9
2025-05-08 07:18:11 +00:00
Sidharth Vinod
b073175fe9 Merge pull request #6564 from mermaid-js/renovate/eslint
chore(deps): update eslint (minor)
2025-05-08 07:13:06 +00:00
renovate[bot]
e2e22de1d9 chore(deps): update eslint 2025-05-07 20:28:30 +00:00
renovate[bot]
c370ebe520 chore(deps): update peter-evans/create-pull-request digest to 889dce9 2025-05-07 20:27:29 +00:00
BambioGaming
d732fa5f86 Update .changeset/public-things-stare.md
Co-authored-by: Ashish Jain <ashishjain0512@gmail.com>
2025-05-07 21:21:56 +01:00
Ashish Jain
ce1bfb2af5 Merge pull request #6470 from nour0205/fix/flowchart-inherit-dir
feat(flowchart): add inheritDir option for subgraph direction
2025-05-07 20:06:49 +00:00
Ashish Jain
c6d8590d8f Merge pull request #6541 from nour0205/docs/fix-annotation-style-clarification
docs(classDiagram): Clarify annotation syntax and recommend inline st…
2025-05-07 20:01:46 +00:00
Ashish Jain
10505a0392 Merge pull request #6575 from mermaid-js/omkar/fix-er-diagram-row-height-adjustment
Fix: Adjust ER diagram row height calculation and layout rendering
2025-05-07 19:59:05 +00:00
Knut Sveidqvist
e0a075ecca Adding treemap 2025-05-07 18:16:00 +02:00
omkarht
2a10143406 Fix: Adjust ER diagram row height calculation and layout rendering 2025-05-07 20:47:15 +05:30
Knut Sveidqvist
40eb0cc240 Passing tests 2025-05-07 16:15:14 +02:00
Sidharth Vinod
d702a7164e Merge pull request #6574 from mermaid-js/sidv/updateImages
fix: Update images
2025-05-07 15:13:12 +05:30
Sidharth Vinod
8a0bc64282 Merge pull request #6573 from mermaid-js/sidv/fixAvatarFetch
chore: Batch avatar download to avoid GitHub rate limiting.
2025-05-07 15:12:08 +05:30
Sidharth Vinod
ac0283ff97 fix: Update images 2025-05-07 15:10:22 +05:30
Sidharth Vinod
84faddc9e5 chore: Batch avatar download to avoid GitHub rate limiting. 2025-05-07 12:24:29 +05:30
Sidharth Vinod
5e3f21f572 Merge pull request #6570 from mermaid-js/sidv/ogTags
feat: Add og tags
2025-05-06 20:51:26 +05:30
Sidharth Vinod
05c74ed9ce feat: Add og tags 2025-05-06 20:44:15 +05:30
Sidharth Vinod
b106346119 Merge pull request #6568 from mermaid-js/announcement-bar-update
chore: Update announcement bar
2025-05-06 10:43:04 +05:30
rajat-ht
c09232c44d chore: update utm_campaign 2025-05-06 03:52:21 +05:30
rajat-ht
714496af6d chore: minor change 2025-05-06 03:46:01 +05:30
rajat-ht
5d61a30237 chore: update as per suggestion 2025-05-06 03:30:49 +05:30
rajat-ht
02ff3c1216 chore: Update announcement bar 2025-05-05 21:17:09 +05:30
autofix-ci[bot]
1f897a851b [autofix.ci] apply automated fixes 2025-05-05 12:30:50 +00:00
Arpit Jain
8af636c58d Fix Incomplete string escaping or encoding
errors
2025-05-05 12:15:41 +00:00
Sidharth Vinod
a566353030 Merge pull request #6549 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.6 [security]
2025-05-02 02:24:52 +05:30
renovate[bot]
d396c6b760 chore(deps): update dependency vite to v6.1.6 [security] 2025-05-01 20:52:36 +00:00
Sidharth Vinod
8d9f027f40 Merge pull request #6544 from nourhenta/fix-fontFamily-docs-v2
docs(theme): document fontFamily customization in themeVariables
2025-05-02 02:21:03 +05:30
Sidharth Vinod
560700eaf8 Merge pull request #6540 from mermaid-js/renovate/major-eslint
chore(deps): update dependency eslint-plugin-unicorn to v59
2025-05-01 20:18:23 +00:00
nourhenta
819843cf2a corrected font size text 2025-05-01 20:53:37 +01:00
Sidharth Vinod
5e2870f6f2 Merge pull request #6545 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.5 [security]
2025-04-29 13:22:53 +00:00
nourhenta
c364ff463a docs(theme): fix table formatting by removing extra line between fontFamily and fontSize 2025-04-29 13:31:42 +01:00
renovate[bot]
8738288bc0 chore(deps): update dependency eslint-plugin-unicorn to v59 2025-04-29 06:51:00 +00:00
Sidharth Vinod
74ef4ce9c6 Merge pull request #6479 from Shahir-47/feature/3250/add_vertline_to_gantt_plot
feat: Add vertical line to gantt plot at specified time
2025-04-29 06:25:57 +00:00
renovate[bot]
2b41bf083c chore(deps): update dependency vite to v6.1.5 [security] 2025-04-29 06:24:35 +00:00
Sidharth Vinod
249f22763b Merge pull request #6522 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.5 [security]
2025-04-29 11:53:03 +05:30
Sidharth Vinod
444d35b9b4 Merge pull request #6513 from mermaid-js/renovate/peter-evans-create-pull-request-digest
chore(deps): update peter-evans/create-pull-request digest to 3b1f4bf
2025-04-29 11:52:38 +05:30
Sidharth Vinod
83543bc790 Merge pull request #6539 from mermaid-js/renovate/eslint
chore(deps): update eslint (minor)
2025-04-29 11:52:22 +05:30
nourhenta
379559c992 docs(theme): document fontFamily customization in themeVariables 2025-04-28 23:06:02 +01:00
Megan Triplett
c61b879711 Merge branch 'develop' into feature/3250/add_vertline_to_gantt_plot 2025-04-28 16:22:07 -04:00
renovate[bot]
67806022b9 chore(deps): update eslint 2025-04-28 19:56:38 +00:00
nour kouider
f8c54317c5 docs(classDiagram): Clarify annotation syntax and recommend inline style (#6538) 2025-04-28 10:27:06 +01:00
renovate[bot]
65f778d183 chore(deps): update peter-evans/create-pull-request digest to 3b1f4bf 2025-04-28 06:44:55 +00:00
renovate[bot]
ed67c36440 chore(deps): update dependency vite to v6.1.5 [security] 2025-04-28 06:44:24 +00:00
Knut Sveidqvist
908043183e Merge pull request #6523 from NourBenz/bug/6518_allow-empty-colon-messaage
fix(sequenceDiagram): allow empty message after colon (Fixes #6518)
2025-04-28 06:30:32 +00:00
nghtlinh
97b79c3578 Added the changeset 2025-04-27 14:09:39 -04:00
nghtlinh
8d4c5d5278 Deleted unused code 2025-04-27 13:51:38 -04:00
nghtlinh
9988a61ec5 Merge remote-tracking branch 'origin/feature/3250/add_vertline_to_gantt_plot' into feature/3250/add_vertline_to_gantt_plot 2025-04-25 15:58:38 -04:00
nghtlinh
d4e737e451 Deleted unused method 2025-04-25 15:43:00 -04:00
NourBenz
b821454927 Merge branch 'develop' into bug/6518_allow-empty-colon-messaage 2025-04-25 19:01:21 +01:00
Sidharth Vinod
cee43a45f6 Merge pull request #6355 from mermaid-js/update-homepage
DOCS: Update homepage
2025-04-24 21:12:40 +05:30
Monica Nguyen
475532a839 Merge branch 'develop' into feature/3250/add_vertline_to_gantt_plot 2025-04-24 11:39:10 -04:00
Sidharth Vinod
c8daf9aa43 docs: Update tiny doc 2025-04-24 12:53:04 +05:30
Sidharth Vinod
cf8fc2a541 Merge pull request #6514 from mermaid-js/renovate/wei-curl-digest
chore(deps): update wei/curl digest to 012398a
2025-04-24 12:38:30 +05:30
Sidharth Vinod
08b6524a35 Merge pull request #6511 from SimonMarquis/patch-1
`layout-elk` package documentation misleading version
2025-04-24 11:21:55 +05:30
Sidharth Vinod
221aa3ed19 Merge pull request #6515 from mermaid-js/update-timings
Update E2E Timings
2025-04-24 11:20:27 +05:30
github-actions[bot]
640a65f9a7 chore: update E2E timings 2025-04-24 04:07:51 +00:00
NourBz
c17277e743 added changeset and unit test 2025-04-22 21:45:24 +01:00
NourBz
7b3fd044e8 fix(sequenceDiagram): allow empty message after colon (Fixes #6518) 2025-04-22 21:18:03 +01:00
Megan Triplett
566b3db15f Merge branch 'mermaid-js:develop' into feature/3250/add_vertline_to_gantt_plot 2025-04-22 15:16:18 -04:00
renovate[bot]
2483e6e434 chore(deps): update wei/curl digest to 012398a 2025-04-21 02:47:37 +00:00
Simon Marquis
e7b39f3fa3 layout-elk package documentation misleading version
It shows `layout-elk@11` in CDN code snippet while this package is currently on v0.1.7.
2025-04-20 12:44:44 +01:00
Sidharth Vinod
1c1d7d0300 Merge pull request #6282 from mermaid-js/saurabh/refactor-fontawesome-icon-usage
Refactor fontawesome icon usage.
2025-04-20 01:04:40 -07:00
Sidharth Vinod
e8ee4bdb48 Merge pull request #6506 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.5 [security]
2025-04-20 05:57:33 +00:00
Sidharth Vinod
2afa96c2a8 Merge pull request #6495 from generrosity/patch-1
DOC: more complete gantt example
2025-04-20 05:56:50 +00:00
autofix-ci[bot]
7c42d08ef2 [autofix.ci] apply automated fixes 2025-04-20 05:42:45 +00:00
generrosity
d0520e6a50 code review - wording and removals
- wording choice to match writing
- removing incorrect assumptions about String quotation and insensitivity.

Co-authored-by: Sidharth Vinod <github@sidharth.dev>
2025-04-20 17:38:10 +12:00
autofix-ci[bot]
a703a195d4 [autofix.ci] apply automated fixes 2025-04-20 05:25:49 +00:00
generrosity
05b5607265 removing directives note
misundeerstood

Co-authored-by: Sidharth Vinod <github@sidharth.dev>
2025-04-20 17:21:19 +12:00
renovate[bot]
2b28966f8d chore(deps): update dependency vite to v6.1.5 [security] 2025-04-19 13:50:59 +00:00
Sidharth Vinod
4077088f18 test: Tweak flowchart tests 2025-04-19 18:19:36 +05:30
Sidharth Vinod
867484a2cc Revert "temp: Remove tests to check if cypress passes"
This reverts commit b0b76ef7a2.
2025-04-19 18:12:03 +05:30
Sidharth Vinod
5ea7088e04 test: fix flowchart width in test 2025-04-19 18:11:44 +05:30
autofix-ci[bot]
646230d603 [autofix.ci] apply automated fixes 2025-04-19 10:01:32 +00:00
generrosity
5a7e734da4 sp check 2025-04-19 21:57:08 +12:00
generrosity
2924b94fbc Merge branch 'develop' into patch-1 2025-04-19 20:53:34 +12:00
generrosity
f8c6ae5d17 stripping comments from gantt example
as requested, I've pulled comments onto the main syntax pages, so stripping many of the comments from here
2025-04-19 20:07:12 +12:00
generrosity
8d7330aeb3 Adding to mermaid syntax
Following on from recommendation from code senior👌;

adding details to mermaid syntax in a more useful location;
- comments (tho not totally truethful)
- indenting
- case insensitive
- string handling
- expectations with invalid keywords or parameters
2025-04-19 20:04:30 +12:00
generrosity
6a6c9f6254 Add Frontmatteer to syntax more explicitly 2025-04-19 19:38:14 +12:00
Sidharth Vinod
b0b76ef7a2 temp: Remove tests to check if cypress passes 2025-04-19 11:39:43 +05:30
Sidharth Vinod
53e89d97a0 Merge branch 'develop' into saurabh/refactor-fontawesome-icon-usage 2025-04-18 12:39:47 -07:00
Sidharth Vinod
59b400652b Merge pull request #6302 from guzzit/patch-1
Added class styling example to block.md
2025-04-18 19:08:58 +00:00
Sidharth Vinod
e8124d8828 Merge pull request #6340 from Baraka24/docs/6339_add-tiki-to-integrations-community-list
docs(integrations): add tiki to community list cms/ecm
2025-04-18 19:07:42 +00:00
Sidharth Vinod
26e3bea2fe Merge pull request #6349 from IceFreez3r/docs/parameters-header-level
Docs/Fix parameter heading level
2025-04-18 19:06:50 +00:00
Sidharth Vinod
1fda77db13 Merge pull request #6383 from suelambot/docs/6382_error-class-diag-action-full-example
6382 - fix error on classDiagram.md
2025-04-18 19:04:57 +00:00
Sidharth Vinod
5b2227b3be Merge pull request #6418 from mermaid-js/renovate/npm-vite-vulnerability
chore(deps): update dependency vite to v6.1.5 [security]
2025-04-18 19:00:16 +00:00
Sidharth Vinod
68670535bf docs: Update tiny docs 2025-04-18 17:16:51 +05:30
renovate[bot]
7a6f13707f chore(deps): update dependency vite to v6.1.5 [security] 2025-04-18 11:20:41 +00:00
Sidharth Vinod
9d838d4e7a fix: e2e-applitools.yml 2025-04-18 16:48:58 +05:30
Sidharth Vinod
a92ae7a16c chore: Update katex message 2025-04-18 15:53:37 +05:30
Sidharth Vinod
8800de9309 Merge branch 'sidv/tinyMermaid' of https://github.com/mermaid-js/mermaid into sidv/tinyMermaid
* 'sidv/tinyMermaid' of https://github.com/mermaid-js/mermaid:
  [autofix.ci] apply automated fixes
2025-04-18 15:51:58 +05:30
Sidharth Vinod
d2c53552ff chore: Disable sourcemap for tiny 2025-04-18 15:51:42 +05:30
autofix-ci[bot]
91a7564db6 [autofix.ci] apply automated fixes 2025-04-18 10:12:40 +00:00
Sidharth Vinod
a037cdcf13 chore: patch bump tiny 2025-04-18 15:34:29 +05:30
Sidharth Vinod
3753967c8f fix: Update tiny file name 2025-04-18 15:33:31 +05:30
Sidharth Vinod
549dc86b21 chore: Revert unrelated changes 2025-04-18 15:26:23 +05:30
Sidharth Vinod
e97f25f13e chore: Match tiny version 2025-04-18 15:18:05 +05:30
Sidharth Vinod
c3c609a965 chore: Remove changelog for tiny 2025-04-18 15:17:50 +05:30
Sidharth Vinod
c81a7d13e0 chore: Revert unrelated changes 2025-04-18 15:13:14 +05:30
Sidharth Vinod
e561acac23 chore: Remove unnecessary workflows 2025-04-18 15:09:53 +05:30
Sidharth Vinod
86a0a7fe3a chore: Add sourcemaps back 2025-04-18 15:09:04 +05:30
Sidharth Vinod
5a8f32b8cb Merge branch 'sidv/tinyMermaid' of https://github.com/mermaid-js/mermaid into sidv/tinyMermaid
* 'sidv/tinyMermaid' of https://github.com/mermaid-js/mermaid:
  [autofix.ci] apply automated fixes
2025-04-18 15:06:49 +05:30
autofix-ci[bot]
c6e640ab75 [autofix.ci] apply automated fixes 2025-04-18 09:36:34 +00:00
Sidharth Vinod
f6862c5af5 chore: Tiny version 2025-04-18 15:05:17 +05:30
Sidharth Vinod
bd8b93327e chore: Tiny version 2025-04-18 15:05:02 +05:30
Sidharth Vinod
4a63901af9 chore: Copy changelog to tiny 2025-04-18 15:02:16 +05:30
Sidharth Vinod
8c52edf3ef chore: Move architecture into largeFeature 2025-04-18 14:56:13 +05:30
Sidharth Vinod
da610bff1d chore: Add @mermaid-js/tiny package 2025-04-18 14:55:53 +05:30
Sidharth Vinod
db389e589d Merge branch 'develop' into sidv/tinyMermaid
* develop: (1682 commits)
  docs: Fix casing of Frontmatter config
  spelling: youtube
  spelling: without
  spelling: withdrawal
  spelling: very
  spelling: typescript
  spelling: tooltip
  spelling: to
  spelling: threshold
  spelling: themeable
  spelling: the
  spelling: than
  spelling: text
  spelling: task
  spelling: syntax
  spelling: svg
  spelling: subgraphs
  spelling: style
  spelling: string
  spelling: strict
  ...
2025-04-18 14:10:49 +05:30
Sidharth Vinod
24aec8c280 Merge pull request #6343 from jeswr/fix/timeline-event-colons
fix: allow colons in events
2025-04-18 08:30:02 +00:00
Sidharth Vinod
8c4fc3c6ff Merge pull request #5993 from jakebeamish/patch-1
Fix code block typo in syntax-reference.md
2025-04-18 01:24:15 -07:00
Sidharth Vinod
d72ee5fc95 Merge pull request #6502 from jsoref/spelling
chore: Fix spelling
2025-04-18 01:21:21 -07:00
Sidharth Vinod
b3ff80f211 Merge pull request #6499 from jsoref/docs/6498_remove-deprecated-init-config
chore: Remove deprecated init config
2025-04-18 08:06:08 +00:00
Sidharth Vinod
8a34154efa docs: Fix casing of Frontmatter config 2025-04-18 13:28:41 +05:30
autofix-ci[bot]
79b47be35f [autofix.ci] apply automated fixes 2025-04-18 03:52:33 +00:00
generrosity
054f5444d6 spellchecked
inconsistently misspelling inconsistently misspelling
2025-04-18 15:48:08 +12:00
generrosity
beb80db25a shift directives to frontmatter
* shifting directives to frontmatter as recomended - it is literally about to me removed, 
* tweaking context comment about directives
* tweaking code in general formatting, spelling, wording
2025-04-18 15:37:50 +12:00
generrosity
fbdbd9d0dd Merge branch 'develop' into patch-1 2025-04-18 15:35:17 +12:00
Josh Soref
8ce1f70066 spelling: youtube
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
334294c6af spelling: without
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
e0f3f2bd5a spelling: withdrawal
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
6dad2ab327 spelling: very
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
4d2e424c30 spelling: typescript
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
ff217957fc spelling: tooltip
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
866b29c050 spelling: to
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
a463d11e57 spelling: threshold
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
5267f7c6ea spelling: themeable
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
2bdecc2842 spelling: the
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
d8efe9a55d spelling: than
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
ae564f30af spelling: text
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
2a6da19956 spelling: task
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
de41669320 spelling: syntax
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
02b997f4e4 spelling: svg
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
90c0908ed5 spelling: subgraphs
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
a7d76b2695 spelling: style
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
e46c7ae996 spelling: string
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
af7a5fe77d spelling: strict
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
f9fbadbbe2 spelling: state
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
dec82de586 spelling: some
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
598c72853f spelling: sibling
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
b1e1a0c0d7 spelling: should
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
a9f3b432ff spelling: set
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
cd2ab38927 spelling: semicolon
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
04448e3b6a spelling: section
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
2a12a64c06 spelling: router
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
586b528a16 spelling: righty
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
36e6e6e1be spelling: rendering
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
1de7d31d90 spelling: quotation
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
34d91d0e88 spelling: previously
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:55 -04:00
Josh Soref
101dc6d52c spelling: precedence
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
1fbe17e04c spelling: possible
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
8fed1c86b0 spelling: on
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
b808801347 spelling: nonexistent
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
58ec4ca39f spelling: node
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
7e3d547094 spelling: neither-nor
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
79f010143a spelling: mobile
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
aa9df775cd spelling: misspelling
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
2601ec89c8 spelling: markdown
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
566415c189 spelling: make
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
cbabc7b709 spelling: lefty
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
873962c739 spelling: label
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
2aeb435f19 spelling: kick-start
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
e0818c9e47 spelling: key
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
a3753d8f4d spelling: javascript
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
308e2cc107 spelling: is
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
a578cb8def spelling: is not
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
a823bf043b spelling: introduced
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
3980c99c22 spelling: into
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
c81f63b462 spelling: id
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
16167a64e5 spelling: html
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
cba4d733f0 spelling: hierarchy
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
6a0fb67ab7 spelling: hierarchical
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
4bfd0f753d spelling: have
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
bf83262d7c spelling: handle huge
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
ccdd0f0146 spelling: handdrawn
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
82646432a1 spelling: grammar
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
c82579097c spelling: github
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
92132ad4f1 spelling: gitgraph
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
8564ebbdbd spelling: fundamentals
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
1ca6ff93ff spelling: from
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
20098b287b spelling: for
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
0474a8422b spelling: for example
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
075f0f580f spelling: excluding
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
78ded6452f spelling: even though
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
08085b8821 spelling: distinguish
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
5f35d70ce2 spelling: detected
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
08951dbbf0 spelling: delegate
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
7caf377963 spelling: definition
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
0103da0179 spelling: cspell:ignore
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
a6c9ab04dc spelling: corresponding
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
b9c472e091 spelling: compound
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
4ed4756220 spelling: columns
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
4b12ebee51 spelling: code paths
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
d6e1541bc8 spelling: cluster
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
0507fe114e spelling: cannot
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
2bb77406fb spelling: bypass
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:54 -04:00
Josh Soref
2215bf6aaa spelling: bullet
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
206cc51578 spelling: bronze
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
c4c55277cb spelling: boundaries
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
0c2d222aa6 spelling: beginning
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
fc3d4859db spelling: been
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
c7714fd666 spelling: backticked
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
e2bf95c922 spelling: backslash
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
a79a50b77f spelling: axis
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
9133fcb9a8 spelling: axis name
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
00e9ed2024 spelling: assignments
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
5919d39812 spelling: and
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
f5fa0ae876 spelling: an
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
de9eb67040 spelling: accessibilities
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
cb7518a960 spelling: a
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
34bf5c8be1 Shorten alt text 2025-04-17 17:38:53 -04:00
Josh Soref
7d1319f97c Clarify that a is a tag 2025-04-17 17:38:53 -04:00
Josh Soref
9c46e960e7 link: theming your diagram
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
cd956e1b60 link: mermaid needs more Collaborators
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
78cf1706a9 link: list of currently used variable names
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
607e9ab989 link: implementation in the live editor
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
Josh Soref
0cf0b684cf link: add custom icons
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-04-17 17:38:53 -04:00
autofix-ci[bot]
cb0cb5dfc7 [autofix.ci] apply automated fixes 2025-04-17 17:50:20 +00:00
Josh Soref
330c48fa3f chore: Use yaml instead of note for standalone config: example 2025-04-17 13:45:27 -04:00
Josh Soref
2ff6de11dc chore: Change %%{init...}%% to config: 2025-04-17 13:42:28 -04:00
Josh Soref
385fab8c67 chore: Remove trailing whitespace 2025-04-17 13:42:28 -04:00
Udval E.
e49911e748 Merge branch 'develop' into feature/3250/add_vertline_to_gantt_plot 2025-04-17 12:21:17 -04:00
Sidharth Vinod
a3fed10d55 Merge pull request #6497 from jsoref/docs/6496_fix-duplicate-and-missing-examples
chore: Fix duplicate and missing examples
2025-04-17 14:11:12 +00:00
autofix-ci[bot]
2a859f2739 [autofix.ci] apply automated fixes 2025-04-17 11:08:43 +00:00
generrosity
dbbe014c5b Merge branch 'develop' into patch-1 2025-04-17 23:02:53 +12:00
Josh Soref
c7fa906115 chore: Change mermaid blocks to mermaid-example in docs 2025-04-17 06:50:20 -04:00
Josh Soref
3c69bd34c7 chore: Remove duplicate mermaid blocks 2025-04-17 06:46:24 -04:00
autofix-ci[bot]
ceef0558be [autofix.ci] apply automated fixes 2025-04-17 10:44:26 +00:00
generrosity
63b90e8b9b tweaks
adding some of the correct terms and references, depreciation
2025-04-17 22:23:21 +12:00
Sidharth Vinod
f5d27bf7ef Merge pull request #6491 from jsoref/docs/6490_convert-from-init-to-config
chore: Switch from `%%{init` to `config:`
2025-04-17 04:33:19 +00:00
Sidharth Vinod
5a03f07853 Merge pull request #6486 from mermaid-js/update-timings
Update E2E Timings
2025-04-16 21:35:14 -07:00
github-actions[bot]
8474cf43fe chore: update E2E timings 2025-04-17 04:05:18 +00:00
autofix-ci[bot]
f56895832f [autofix.ci] apply automated fixes 2025-04-16 20:46:18 +00:00
Josh Soref
8975a1907a chore: Switch from %%{init to config:
Use format which works reliably...
2025-04-16 16:40:13 -04:00
udvale
62b4228df4 changed some color aspects for vertline based on theme 2025-04-16 15:44:21 -04:00
udvale
c552dc7551 Add documentation for vert feature in Gantt chart
Co-authored-by: Monica Nguyen <nghtlinh25@gmail.com>
Co-authored-by: Megan Triplett <megantriplett10@gmail.com>
2025-04-16 14:52:24 -04:00
generrosity
e425a45755 extra sample gantt chart with extras 2025-04-16 21:15:14 +12:00
megantriplett
d177211286 added a snapshot test 2025-04-15 15:55:57 -04:00
Monica Nguyen
a07d365c1c Merge branch 'develop' into feature/3250/add_vertline_to_gantt_plot 2025-04-15 15:46:45 -04:00
Jesse Wright
1f512e9671 Merge branch 'develop' into fix/timeline-event-colons 2025-04-15 12:03:58 +01:00
Sidharth Vinod
12b6371abf chore: Add details to e2e-timings 2025-04-15 12:37:34 +05:30
Sidharth Vinod
88ae4ef704 chore: Remove incorrect language tag 2025-04-15 12:21:46 +05:30
Sidharth Vinod
df9df9dc32 docs: Add changeset 2025-04-15 12:16:49 +05:30
Sidharth Vinod
ea321168bd chore: Update bits syntax to use +<count> 2025-04-15 12:14:06 +05:30
Sidharth Vinod
d7730aba46 Merge branch 'develop' into pr/BryanCrotazGivEnergy/5980
* develop: (492 commits)
  chore: Ignore timeout domains
  [autofix.ci] apply automated fixes
  [autofix.ci] apply automated fixes
  Create neat-moose-compare.md
  chore: Add changeset
  updated tests
  modified description of showDataLabel in config schema and added it to docs
  fix(deps): update all major dependencies
  chore(deps): update peter-evans/create-pull-request digest to a7b20e1
  fix(deps): update dependency dompurify to ^3.2.5
  [autofix.ci] apply automated fixes
  Update integrations-community.md
  [autofix.ci] apply automated fixes
  Add Mermaid plus for Confluence into integrations-community.md
  refactor xy-chart tests
  added new tests
  added new tests
  chore(deps): update eslint
  chore: Update change detection logic
  chore: Use git to read old timings
  ...
2025-04-15 11:45:33 +05:30
Sidharth Vinod
5310d60e63 Merge pull request #6296 from mermaid-js/sidv/stateDB-ts
chore: Convert StateDB to TS
2025-04-15 04:10:13 +00:00
Sidharth Vinod
3ae87ca06a chore: Ignore timeout domains 2025-04-15 09:42:52 +05:30
Sidharth Vinod
24f23efdad Merge branch 'develop' into saurabh/refactor-fontawesome-icon-usage 2025-04-14 20:15:48 -07:00
Sidharth Vinod
e2520dde20 Merge branch 'develop' into sidv/stateDB-ts 2025-04-14 20:14:58 -07:00
Sidharth Vinod
3e8204aa21 Merge pull request #6365 from mermaid-js/renovate/major-all-major
fix(deps): update all major dependencies (major)
2025-04-15 03:13:33 +00:00
Sidharth Vinod
0b57984d27 Merge pull request #6475 from Shahir-47/feature/5806_xy-chart-data-labels
feat: Dynamically Render Data Labels Within Bar Charts
2025-04-15 03:13:03 +00:00
Sidharth Vinod
bcaa40f1d5 Merge pull request #6225 from Shahir-47/feature/3508_color-user-journey-title
feat: Add support for styling Journey Diagram title (color, font-family, and font-size)
2025-04-15 03:12:24 +00:00
autofix-ci[bot]
0107494b59 [autofix.ci] apply automated fixes 2025-04-15 02:32:13 +00:00
autofix-ci[bot]
11c3ac58fd [autofix.ci] apply automated fixes 2025-04-15 02:25:23 +00:00
Sidharth Vinod
af2eb13932 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-04-14 19:23:47 -07:00
Sidharth Vinod
41e84b726a Create neat-moose-compare.md 2025-04-14 19:23:19 -07:00
Sidharth Vinod
a1ba65c0c0 chore: Add changeset 2025-04-14 19:20:47 -07:00
Shahir Ahmed
5fe6e5dccc Merge branch 'develop' into feature/5806_xy-chart-data-labels
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-14 14:44:53 -04:00
pranavm2109
946452c7b4 updated tests
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-04-14 14:38:23 -04:00
pranavm2109
4bb6351489 modified description of showDataLabel in config schema and added it to docs
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-04-14 13:53:18 -04:00
renovate[bot]
8c63a2e411 fix(deps): update all major dependencies 2025-04-14 07:25:55 +00:00
Sidharth Vinod
4467fd4363 Merge pull request #6482 from mermaid-js/renovate/peter-evans-create-pull-request-digest
chore(deps): update peter-evans/create-pull-request digest to a7b20e1
2025-04-14 07:09:53 +00:00
renovate[bot]
7e567a8759 chore(deps): update peter-evans/create-pull-request digest to a7b20e1 2025-04-14 06:17:30 +00:00
Ashish Jain
edf062720d Merge pull request #6459 from mermaid-js/renovate/patch-dompurify
fix(deps): update dependency dompurify to ^3.2.5
2025-04-14 06:03:40 +00:00
renovate[bot]
3348eea6af fix(deps): update dependency dompurify to ^3.2.5 2025-04-14 04:46:04 +00:00
Sidharth Vinod
ae7ffab9ac Merge pull request #6483 from universeroc/develop
Add Mermaid plus for Confluence into integrations-community.md
2025-04-14 04:32:13 +00:00
autofix-ci[bot]
ecdbc676d2 [autofix.ci] apply automated fixes 2025-04-14 04:01:42 +00:00
universeroc
6a01b04e3c Update integrations-community.md 2025-04-14 11:55:45 +08:00
autofix-ci[bot]
aafe8de3d3 [autofix.ci] apply automated fixes 2025-04-14 03:52:31 +00:00
universeroc
24287637b5 Add Mermaid plus for Confluence into integrations-community.md 2025-04-14 11:43:32 +08:00
Shahir Ahmed
f69cc17795 refactor xy-chart tests
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-11 16:24:10 -04:00
nghtlinh
f5c99a2a4f Deleted "special" tag residue 2025-04-11 16:04:14 -04:00
nghtlinh
244703a904 Merge branch 'monica_branch' of https://github.com/Shahir-47/mermaid into monica_branch 2025-04-11 15:18:09 -04:00
Monica Nguyen
59a9e1b300 Merge branch 'mermaid-js:develop' into monica_branch 2025-04-11 15:15:40 -04:00
nghtlinh
167a625413 Merge branch 'monica_branch' of https://github.com/Shahir-47/mermaid into monica_branch 2025-04-11 15:13:00 -04:00
nghtlinh
296cb64fa5 deleted repeated code 2025-04-11 15:11:14 -04:00
Shahir Ahmed
934f4da507 Merge remote-tracking branch 'origin/develop' into feature/3508_color-user-journey-title
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-11 00:16:46 -04:00
Shahir Ahmed
6957f35782 Merge branch 'develop' into feature/5806_xy-chart-data-labels
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-10 21:42:37 -04:00
Shahir Ahmed
b00be59ea8 added new tests
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-10 21:22:36 -04:00
Shahir Ahmed
dff00f2c4f added new tests
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-10 21:04:55 -04:00
udvale
2009177375 the title is centered at vert line 2025-04-10 16:35:41 -04:00
Sidharth Vinod
eb9987435a Merge pull request #6364 from mermaid-js/renovate/eslint
chore(deps): update eslint (minor)
2025-04-10 07:18:54 +00:00
Sidharth Vinod
a300d0db94 Merge pull request #6391 from regisbsb/patch-1
Remove duplicates in integrations-community.md
2025-04-10 07:16:37 +00:00
Sidharth Vinod
7e7f3c56c2 Merge pull request #6456 from nour0205/fix/edge-id-en-dash-docs-6455
fix(docs): fix edge ID example
2025-04-10 07:10:08 +00:00
nghtlinh
81fa2a675f Rendered vert task at last + Trying to reposition vert label 2025-04-09 18:15:26 -04:00
nghtlinh
2203792164 Added permananet color for the vertical line 2025-04-09 16:13:34 -04:00
nghtlinh
5bbc9b4f5b Merge branch 'Issue3250/addDateToGantt' into monica_branch 2025-04-09 15:44:04 -04:00
renovate[bot]
ea987861f3 chore(deps): update eslint 2025-04-09 13:45:21 +00:00
Sidharth Vinod
8005262d76 Merge branch 'master' into update-homepage
* master: (242 commits)
  update logic
  Version Packages
  Add missing changeset for requirement diagram fix
  Update mermaid version palceholder
  test(e2e): fix Cypress config for Node.JS v20.19.0
  fix: restore curve type configuration functionality for flowcharts (#6193)
  update promo bar content
  rework contains geometry to avoid clipping
  try arrowhead
  #6380: move requirements containment arrow to start
  ⚗️ Add radar renderer tests
  🩹 Fix: text-color ➙ color
  [autofix.ci] apply automated fixes
  🆙 Run pnpm changeset
  🖼️ Add Radar Demo with custom opacity
  📚 Add documentation
  🖼️ Add Radar Demo
  ⚗️ Add Cypress test
  🎨 Add themes for radar
  📊 Add radar chart
  ...
2025-04-09 19:13:35 +05:30
nour kouider
463eb07979 fix(config.schema): add inheritDir to Flowchart config and regenerate types/docs 2025-04-09 11:34:06 +01:00
Sidharth Vinod
a3cf9de01b fix: Move Tooltip as vue component 2025-04-09 15:50:27 +05:30
Sidharth Vinod
9a90aca8e6 chore: Add mermaid logo 2025-04-09 15:35:58 +05:30
nour0205
8c9b38ed90 Merge branch 'develop' into fix/flowchart-inherit-dir 2025-04-09 11:04:49 +01:00
Sidharth Vinod
963b1e3ec5 chore: Fix intro link 2025-04-09 15:32:31 +05:30
Sidharth Vinod
208d29e3d6 chore: Update live editor link 2025-04-09 15:31:25 +05:30
Sidharth Vinod
5c865e7b71 chore: Remove duplicate cspell 2025-04-09 15:29:08 +05:30
Sidharth Vinod
7ce9dbcece docs: Add target to external link 2025-04-09 15:27:53 +05:30
nour kouider
36fe04bd46 feat(flowchart): add inheritDir option for subgraph direction 2025-04-09 10:56:30 +01:00
Sidharth Vinod
ff786b4ef8 docs: Update homepage links 2025-04-09 15:25:02 +05:30
Sidharth Vinod
b81b665137 feat: Add tooltip for MermaidChart links 2025-04-09 15:24:23 +05:30
Sidharth Vinod
178c7130c6 Merge pull request #6465 from aloisklink/build/fix-mermaid-zenuml
build: fix `mermaid-zenuml` IIFE build and add changesets
2025-04-09 01:42:37 -07:00
Sidharth Vinod
f87d0dd88a chore: Update change detection logic 2025-04-09 13:20:19 +05:30
Sidharth Vinod
2396f90269 Merge pull request #6467 from mermaid-js/sidv/checkTimings
Reduce timing update PRs
2025-04-08 23:54:15 -07:00
Sidharth Vinod
97e35fd30a chore: Use git to read old timings 2025-04-09 12:19:13 +05:30
Sidharth Vinod
7a5f999f42 chore: Add compare-timings script
Avoid creating unnecessary PRs when there is no significant timings change.
2025-04-09 12:08:57 +05:30
Sidharth Vinod
cd8d74bb96 Merge pull request #6274 from Shahir-47/bug/5955_adjust-diagram-position-with-legend-width
fix: Prevent Legend Labels from Overlapping Diagram Elements in Journey Diagrams
2025-04-08 17:17:06 +00:00
Sidharth Vinod
56c6853e05 Merge pull request #6463 from AaronMoat/undefined
Fix incorrect `style="undefined;"` output in some Mermaid diagrams
2025-04-08 12:46:11 +00:00
Sidharth Vinod
01e2af0cfd Merge pull request #6407 from thomascizeron/fix/6162_greedyRegexInCommonLangium
Fix: greedy regex in common langium
2025-04-08 11:33:43 +00:00
Sidharth Vinod
f55ff99f74 Merge branch 'develop' into fix/6162_greedyRegexInCommonLangium 2025-04-08 04:25:20 -07:00
Aaron Moat
d25770ee73 Format changeset message 2025-04-08 19:55:05 +10:00
Aaron Moat
2b05d7e1ed Fix incorrect style="undefined;" output in some Mermaid diagrams 2025-04-08 19:49:47 +10:00
Sidharth Vinod
30735266a4 Merge pull request #6461 from mermaid-js/update-timings
Update E2E Timings
2025-04-08 00:14:25 -07:00
github-actions[bot]
926862c196 chore: update E2E timings 2025-04-08 06:53:44 +00:00
Sidharth Vinod
44e668e704 chore: Update permission for timings action 2025-04-08 11:58:46 +05:30
Sidharth Vinod
404216273a chore: Fix PR action in e2e-timings 2025-04-08 11:01:28 +05:30
Sidharth Vinod
5a6831ae7e chore: Fix branch in e2e-timings 2025-04-08 10:13:59 +05:30
Alois Klink
03119fea2c chore(zenuml): add pending ZenUML changesets
Add ZenUML changesets for:

- Bumping the minimum version of ZenUML to 3.23.28
- Limiting the `peerDepdencies` to v10 and v11

See: 9d06d8f31e
See: 0ad44c12fe
2025-04-07 17:58:40 +08:00
Alois Klink
5351211256 build(zenuml): add back IIFE ZenUML builds
These are present in [v0.2.0][1] so removing these would be a breaking
change. I suspect we accidentally removed them when we moved from
Vite to ESBuild.

[1]: https://www.npmjs.com/package/@mermaid-js/mermaid-zenuml/v/0.2.0
2025-04-07 17:58:40 +08:00
Alois Klink
92c0aa4331 build(esbuild): support multiple IIFE packages
Support multiple IIFE packages by namespacing all of them into a
`globalThis.__esbuild_esm_mermaid_nm` object.
2025-04-07 17:58:40 +08:00
Alois Klink
7bd5c03d87 Merge pull request #6426 from internetisaiah/patch-1
Fix formatting of ELK example in ERD + clarify usage
2025-04-07 08:35:03 +00:00
Alois Klink
de72e18a7f docs: improve elk section of ER docs 2025-04-07 16:07:43 +08:00
khalil
3f493acc6a fixed unit test 2025-04-06 21:02:22 +01:00
khalil
d2239549e6 fixed unit test 2025-04-06 20:49:43 +01:00
khalil
f8d8f74f34 fixed unit test 2025-04-06 20:41:29 +01:00
khalil
74a9336d42 fixed unit test 2025-04-06 00:07:48 +01:00
khalil
ca2b16119d fixed unit test 2025-04-05 21:49:02 +01:00
khalil
2d9034c983 fixed unit test 2025-04-05 21:30:03 +01:00
khalil
aa6cb86899 added changeset and unit test 2025-04-05 20:46:16 +01:00
khalil
99797632ab reset branch and readded commits 2025-04-05 20:37:11 +01:00
nour kouider
4fdb1d5906 docs: correct edge syntax from -> to --> 2025-04-05 13:39:30 +01:00
Shahir Ahmed
a2bf5103ce test for vertical xy-axis
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-04 21:44:00 -04:00
Shahir Ahmed
8b7a4db2ef test for horzontal xy-axis
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-04 21:34:46 -04:00
nghtlinh
a43965ac2c Put label right down the vert line 2025-04-04 15:57:55 -04:00
nghtlinh
8eb2000b98 Adjusted label calculation for x and y values 2025-04-04 15:44:09 -04:00
Shahir Ahmed
73f8dee643 add config to test files
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-04-04 15:22:40 -04:00
pranavm2109
8bdd7ec719 updated tests to account for showDataLabel set to false as default
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-04-04 15:20:51 -04:00
megantriplett
7e1cec95ef fixed bug where background is removed @monicanguyen25 @udvale 2025-04-04 15:17:02 -04:00
megantriplett
ec2c76a703 deleted some old commented out code 2025-04-04 15:02:54 -04:00
nour kouider
7facc8f50d docs: fix edge ID example and regenerate flowchart output 2025-04-04 19:04:02 +01:00
autofix-ci[bot]
52cd9e8e55 [autofix.ci] apply automated fixes 2025-04-04 17:37:42 +00:00
nour kouider
9208e7faaf fix(docs): fix edge ID example 2025-04-04 18:22:56 +01:00
nghtlinh
d0ee6079b3 Positioned the label in the center of the vert line + Brough back the background 2025-04-03 20:43:32 -04:00
Shahir Ahmed
2798e27b1e dynamically resizes horizontal xychart bar
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-04-02 23:00:12 -04:00
Shahir Ahmed
f4c08a0c6f dynamically resizes vertical xychart bar
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-04-02 22:25:34 -04:00
Monica Nguyen
c28c05780c Merge branch 'mermaid-js:develop' into monica_branch 2025-04-02 17:39:11 -04:00
Shahir Ahmed
6a538da07d Merge branch 'develop' into feature/5806_xy-chart-data-labels 2025-04-02 17:22:13 -04:00
Shahir Ahmed
b2dfa74865 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-04-02 17:19:44 -04:00
Shahir Ahmed
930e917215 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-04-02 17:18:45 -04:00
megantriplett
c8e87b113b Merge branch 'Megan3250' of https://github.com/Shahir-47/mermaid into Megan3250 2025-04-02 17:17:32 -04:00
Megan Triplett
8627fb0f62 Merge branch 'mermaid-js:develop' into Megan3250 2025-04-02 17:16:50 -04:00
Thomas Di Cizerone
cdbd3e58a3 🆙 Run pnpm changeset 2025-04-02 18:50:20 +02:00
Thomas Di Cizerone
630c4d6954 🤏 Update Note comment 2025-04-02 18:50:20 +02:00
Thomas Di Cizerone
fd4493733f Add TODO for architecture support of title embedded in render 2025-04-02 18:50:20 +02:00
Thomas Di Cizerone
e588743bf4 ⚗️ Add unit tests and e2e for architecture diagram with titleAndAccessibilities 2025-04-02 18:50:20 +02:00
Thomas Di Cizerone
04d68e7f9a ⚗️ Add parser tests for architecture and other edge cases encountered 2025-04-02 18:50:20 +02:00
Thomas Di Cizerone
9795b6e089 🖋️ Refactor common grammar to avoid unwanted greedy terminals 2025-04-02 18:50:20 +02:00
Sidharth Vinod
a9be1a4146 Merge pull request #6398 from mermaid-js/update-content
DOCS: update promo bar content
2025-04-02 02:22:53 -07:00
Steph
617c7393bf update logic 2025-04-01 23:41:43 -07:00
Ashish Jain
ceb8d4c7ef Merge pull request #6445 from mermaid-js/omkarht/chore/downgrade-chokidar-to-3.6.0
chore: Downgrade chokidar to 3.6.0 for hot reloading fix
2025-04-01 12:43:53 +00:00
omkarht
32c70a0f6a chore: Downgrade chokidar to 3.6.0 for hot reloading fix 2025-03-31 20:38:12 +05:30
Knut Sveidqvist
af2632f14a Merge pull request #6442 from mermaid-js/renovate/major-eslint
chore(deps): update dependency eslint-plugin-unicorn to v58
2025-03-31 07:33:19 +00:00
renovate[bot]
8f89ba1930 chore(deps): update dependency eslint-plugin-unicorn to v58 2025-03-31 01:56:12 +00:00
megantriplett
c1db4f2ed0 Moved text to bottom of graph, even when rows are added/deleted 2025-03-28 16:08:44 -04:00
Shahir Ahmed
ad6f855f5e adds dynamic text adjustment
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-28 16:04:51 -04:00
Shahir Ahmed
f2f2a1d275 adds test and horizontal support
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-27 23:09:27 -04:00
Shahir Ahmed
17fcf43cdb fix typo
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-27 22:14:07 -04:00
Monica Nguyen
4fff67e4af Merge branch 'mermaid-js:develop' into monica_branch 2025-03-27 22:08:09 -04:00
nghtlinh
350543a5e2 Created a new tag Special working similar as Milestone but draw a line 2025-03-27 21:51:57 -04:00
Shahir Ahmed
99a2dc7c1f adds label data to bar chart
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-27 21:51:21 -04:00
Shahir Ahmed
34e756fde6 add label config
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-27 20:32:35 -04:00
Shahir Ahmed
f74fad057a Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-03-27 20:16:45 -04:00
Shahir Ahmed
32ea973b12 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-03-27 20:14:13 -04:00
isaiah robinson
0104d19f66 Fix formatting of ELK example in ERD + clarify usage 2025-03-27 15:47:43 -07:00
megantriplett
e8986eb546 Removed previous x movement for vert and moved text down (not exactly at bottom yet) 2025-03-26 18:37:09 -04:00
Ashish Jain
936d1074b2 Merge pull request #6413 from mermaid-js/master
Merge back v11.6.0 to develop
2025-03-25 12:51:55 +00:00
Ashish Jain
7b2083926d Merge pull request #6412 from mermaid-js/changeset-release/master
Version Packages
2025-03-25 12:42:47 +01:00
github-actions[bot]
bb9210c55e Version Packages 2025-03-25 11:37:21 +00:00
Ashish Jain
16d9b63457 Add missing changeset for requirement diagram fix 2025-03-25 12:35:21 +01:00
Ashish Jain
bf3370fa5b Merge pull request #6409 from mermaid-js/release/11.6.0
Release/11.6.0
2025-03-25 11:51:37 +01:00
Ashish Jain
9f9091e5e4 Update mermaid version palceholder 2025-03-25 11:20:09 +01:00
Ashish Jain
d1b1a67d99 Merge pull request #6410 from aloisklink/test/fix-cypress-on-nodejs-v20.19.0
test(e2e): fix Cypress config for Node.JS v20.19.0
2025-03-25 09:55:42 +00:00
Alois Klink
ac625bdc7f test(e2e): fix Cypress config for Node.JS v20.19.0
Node.JS v20.19.0 breaks `import '@cypress/code-coverage/task'` in the
`cypress.config.ts` for some reason (this is probably due to the new
`experimental-require-module` feature that is enabled by default in
Node.JS v20.19.0).

As a work-around, we can change this to
`@cypress/code-coverage/task.js`.

See: https://github.com/cypress-io/code-coverage/pull/940
See: https://nodejs.org/en/blog/release/v20.19.0
2025-03-25 18:28:13 +09:00
Ashish Jain
40b85c3bbf Merge pull request #6408 from mermaid-js/fix/6193-curve-interpolation
fix: restore curve type configuration functionality for flowcharts
2025-03-24 22:34:09 +01:00
Ashish Jain
f8e329f890 Merge branch 'develop' into fix/6193-curve-interpolation 2025-03-24 21:21:11 +01:00
Ashish Jain
9b9cec9809 Merge pull request #6386 from bollwyvl/patch-5
Move requirements containment arrow to edge start
2025-03-24 02:13:53 +01:00
Ashish Jain
ad653138e1 fix: restore curve type configuration functionality for flowcharts (#6193) 2025-03-24 00:25:03 +01:00
megantriplett
a401a4ab49 Made vert render a vertical line 2025-03-21 15:39:38 -04:00
megantriplett
2bc3a0f97c vert is now a copy of milestone tag 2025-03-21 15:28:34 -04:00
Ashish Jain
f5f3b08f12 Merge pull request #6381 from thomascizeron/feat/2280_radarDiagram
feat: Add radar diagram
2025-03-21 12:37:37 +01:00
Steph
ce68da3fee update promo bar content 2025-03-20 20:11:59 -07:00
Shahir Ahmed
f7e31a978b update docs
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 23:44:21 -04:00
Shahir Ahmed
2d583b186d fix some pixel issues
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 22:51:02 -04:00
Shahir Ahmed
b322392f97 refactor tests
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 21:18:45 -04:00
Shahir Ahmed
573b6d9ba7 remove redundant test
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 20:58:17 -04:00
Shahir Ahmed
ea39254556 ensure maxLabelWidth is a number
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 20:41:43 -04:00
Shahir Ahmed
044a3d9686 Set legend width baseline (conf.leftMargin) and expand dynamically
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-19 20:34:44 -04:00
autofix-ci[bot]
f28f7b713d [autofix.ci] apply automated fixes 2025-03-18 23:58:40 +00:00
Regis Bittencourt
cfbd05515e Remove duplicates in integrations-community.md 2025-03-18 20:53:19 -03:00
megantriplett
1125f5a283 added new tag "vert" in ganttDB 2025-03-18 16:10:16 -04:00
Steph
fa4d4806fa update button text 2025-03-18 13:08:12 -07:00
Shahir Ahmed
20927a1c8e remove max and min attributes for maxLabelWidth
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-18 15:39:58 -04:00
pranavm2109
b2ab34ca2b fixed linting issue
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-03-18 15:36:50 -04:00
Shahir Ahmed
55e1dd0ead implemented knuth-plass line-breaking algorithm
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-03-18 15:32:04 -04:00
Shahir Ahmed
a403f78168 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-03-18 15:17:45 -04:00
Shahir Ahmed
6c45aa3602 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-03-18 15:15:45 -04:00
Nicholas Bollweg
85ce310884 rework contains geometry to avoid clipping 2025-03-17 16:36:46 -05:00
Nicholas Bollweg
fac570cb8c try arrowhead 2025-03-17 15:43:57 -05:00
Nicholas Bollweg
a7bcd7dee5 #6380: move requirements containment arrow to start 2025-03-17 15:32:52 -05:00
autofix-ci[bot]
91bcd2da8c [autofix.ci] apply automated fixes 2025-03-17 11:16:26 +00:00
sue
ec2330875e 6382 - fix error on classDiagram.md
Fixing the error on the beginner's full action example in the class
diagram's documentation

Error: Error: Parse error on line 23:
...      callback Duck callback "Tooltip"
-----------------------^
Expecting 'NEWLINE', 'EOF', 'SQS', 'STR', 'DOT', 'GENERICTYPE', 'LABEL', 'STRUCT_START', 'STRUCT_STOP', 'STYLE_SEPARATOR', 'ANNOTATION_END', 'ALPHA', 'AGGREGATION', 'EXTENSION', 'COMPOSITION', 'DEPENDENCY', 'LOLLIPOP', 'LINE', 'DOTTED_LINE', 'CALLBACK_NAME', 'HREF', 'NUM', 'MINUS', 'UNICODE_TEXT', 'BQUOTE_STR', got 'CALLBACK'
2025-03-17 12:11:16 +01:00
Thomas Di Cizerone
bb5a7a585e ⚗️ Add radar renderer tests 2025-03-16 22:04:30 +01:00
Thomas Di Cizerone
5d1b27132a 🩹 Fix: text-color ➙ color 2025-03-16 19:00:25 +01:00
autofix-ci[bot]
288abd01e0 [autofix.ci] apply automated fixes 2025-03-16 17:46:44 +00:00
Thomas Di Cizerone
95d73bc3f0 🆙 Run pnpm changeset 2025-03-16 18:41:43 +01:00
Thomas Di Cizerone
0f5125b5e3 🖼️ Add Radar Demo with custom opacity 2025-03-16 18:34:00 +01:00
Thomas Di Cizerone
12c120368d 📚 Add documentation 2025-03-16 18:20:03 +01:00
Thomas Di Cizerone
a7f2c0bc34 🖼️ Add Radar Demo 2025-03-16 18:20:03 +01:00
Thomas Di Cizerone
5e97b2f764 ⚗️ Add Cypress test 2025-03-16 18:19:54 +01:00
Thomas Di Cizerone
d53c66dde5 🎨 Add themes for radar 2025-03-16 18:15:30 +01:00
Thomas Di Cizerone
1fb91d14c9 📊 Add radar chart 2025-03-16 18:13:50 +01:00
Thomas Di Cizerone
d80cc38bb2 🖋️ Add grammar for Radar chart 2025-03-16 18:00:50 +01:00
Ashish Jain
d6022408a9 Merge pull request #6375 from mermaid-js/master
Merge back v11.5.0 back to develop
2025-03-13 11:37:53 +01:00
Steph
c8f01b14a8 update links 2025-03-11 13:21:07 -07:00
autofix-ci[bot]
cdaea58096 [autofix.ci] apply automated fixes 2025-03-11 13:31:24 +00:00
Baraka Kinywa
b3d8fa917f docs(integrations): add tiki to community list cms/ecm 2025-03-11 16:26:34 +03:00
Steph
91931531a6 update link 2025-03-06 11:48:17 -08:00
Steph
50e4641666 minor updates 2025-03-05 22:26:12 -08:00
Steph
1bed6432ac update styling and add assets 2025-03-05 21:24:38 -08:00
autofix-ci[bot]
ee5dc5ae80 [autofix.ci] apply automated fixes 2025-03-03 10:25:08 +00:00
IceFreez3r
b7940b64cd Fix parameter heading level
The "Parameters" sections belong to "Icon Shape" and "Image Shape" respectively and should therefore have one more level than them.
2025-03-03 11:16:33 +01:00
Jesse Wright
1ddaf10b89 chore: create changeset 2025-03-02 22:34:55 +00:00
Jesse Wright
02b833f251 chore: remove hash and semicolon ignore 2025-03-02 22:17:21 +00:00
Jesse Wright
0ce0c3cd75 fix: allow colons in events 2025-03-02 22:04:12 +00:00
Steph
11f7f426cb verbiage updates 2025-02-28 08:05:42 -08:00
saurabhg772244
a31adc63a9 Updated docs and e2e test case 2025-02-28 19:09:21 +05:30
Shahir Ahmed
91e2c04e56 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-02-27 15:33:52 -05:00
Shahir Ahmed
a2f0d8e4d6 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-02-27 15:32:51 -05:00
autofix-ci[bot]
f60ecfc2c4 [autofix.ci] apply automated fixes 2025-02-26 13:26:09 +00:00
Saurabh Gore
06877dcc47 Update cypress/platform/viewer.js
Co-authored-by: Alois Klink <alois@aloisklink.com>
2025-02-26 18:48:27 +05:30
Saurabh Gore
050fbd9da2 Update packages/mermaid/src/docs/syntax/flowchart.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2025-02-26 18:47:29 +05:30
Saurabh Gore
1be1e34e72 Update packages/mermaid/src/docs/syntax/flowchart.md
Co-authored-by: Alois Klink <alois@aloisklink.com>
2025-02-26 18:45:13 +05:30
Sidharth Vinod
9e29fd0c4a Merge branch 'develop' into sidv/stateDB-ts 2025-02-26 13:37:43 +01:00
Sidharth Vinod
a2650adec2 chore: Remove ! in datafetcher
Co-authored-by: Saurabh Gore <167211619+saurabhg772244@users.noreply.github.com>
2025-02-26 18:07:10 +05:30
saurabhg772244
b0c1460940 Convert Font Awesome loading from HTML to JS 2025-02-26 12:55:01 +05:30
Shahir Ahmed
7c7fd4bc5e adds test for line wrapping
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-25 18:40:27 -05:00
pranavm2109
baa261fdd1 Merge branch 'bug/5955_adjust-diagram-position-with-legend-width' of https://github.com/SeniorSeniorMath-SciLib2k24/mermaid into bug/5955_adjust-diagram-position-with-legend-width 2025-02-25 16:13:28 -05:00
pranavm2109
aaf15fccc1 added first draft of test to see if label text is being wrapped in different lines
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-25 16:13:14 -05:00
autofix-ci[bot]
3724d11255 [autofix.ci] apply automated fixes 2025-02-25 20:55:26 +00:00
pranavm2109
5510f18d33 removed function to get rem in px since config schema now has maxLabelWidth
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-25 15:50:10 -05:00
Shahir Ahmed
edbf125c83 wraps long text into new line
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-25 15:43:00 -05:00
pranavm2109
ad6248147c revised current cypress test
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-25 15:29:29 -05:00
Shahir Ahmed
d47e4724cb wraps long text into new line
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-25 15:21:08 -05:00
Shahir Ahmed
4f592115e0 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-02-25 15:09:56 -05:00
Shahir Ahmed
d2d78a5576 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-02-25 15:07:54 -05:00
saurabhg772244
e045e0b42d Code refactor and updated docs 2025-02-25 18:25:59 +05:30
Shahir Ahmed
50816a7f98 remove magic value
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-21 17:35:32 -05:00
Shahir Ahmed
a318ea3692 removes cy.then and magic value
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-21 16:15:24 -05:00
Shahir Ahmed
1424127127 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-02-21 15:33:13 -05:00
Shahir Ahmed
9c27125f2d changes default values
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-21 15:27:01 -05:00
Shahir Ahmed
6140be24da Merge branch 'develop' into feature/3508_color-user-journey-title 2025-02-21 15:04:12 -05:00
saurabhg772244
2fb7bc2806 fix pnpm lock and use promise.all to speed up icon replacement 2025-02-21 23:45:33 +05:30
saurabhg772244
83a6e696c6 fix lock file 2025-02-21 23:07:25 +05:30
saurabhg772244
a89e001d01 Merge branch 'saurabh/refactor-fontawesome-icon-usage' of github.com-mermaid:mermaid-js/mermaid into saurabh/refactor-fontawesome-icon-usage 2025-02-21 23:00:47 +05:30
saurabhg772244
6a81a907d1 Merge branch 'develop' of github.com-mermaid:mermaid-js/mermaid into saurabh/refactor-fontawesome-icon-usage 2025-02-21 23:00:33 +05:30
saurabhg772244
16573d97f5 Updated docs, added visual regression test 2025-02-21 19:45:14 +05:30
Sidharth Vinod
5abda14809 Merge branch 'develop' into sidv/stateDB-ts 2025-02-20 16:31:59 +05:30
Sidharth Vinod
bb4b92a663 fix: Type issue in getDirectionStatement 2025-02-19 18:59:30 +05:30
Sidharth Vinod
9bd599666b Merge branch 'develop' into sidv/stateDB-ts
* develop:
  chore: Remove deprecated rule
  chore(deps): update eslint
  chore: Add tslib
  chore(deps): update eslint
  chore: Minor refactor
  chore: Update actions/cache
  chore: Update actions/cache
  added changeset
  added test cases to check state diagram direction
  fix: CodeQL double escape warning
  refatored code
  chore(deps): update eslint
  Fix: state diagram default direction update
  [autofix.ci] apply automated fixes
  fix(deps): update all patch dependencies
2025-02-19 18:38:30 +05:30
autofix-ci[bot]
36894fe14a [autofix.ci] apply automated fixes 2025-02-19 10:47:08 +00:00
Gozie Joshua
efe834e772 Added class styling example to block.md 2025-02-19 11:19:24 +01:00
saurabhg772244
8857e77495 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into saurabh/refactor-fontawesome-icon-usage 2025-02-19 11:35:03 +05:30
Shahir Ahmed
5dab86a067 Merge branch 'bug/5955_adjust-diagram-position-with-legend-width' of https://github.com/Shahir-47/mermaid into bug/5955_adjust-diagram-position-with-legend-width 2025-02-18 16:12:37 -05:00
Shahir Ahmed
9ef35549f4 Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-02-18 16:05:16 -05:00
pranavm2109
4beed963b8 updated descriptions of parameters in schema
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-18 16:03:12 -05:00
pranavm2109
3122c3b75c updated descriptions of parameters in schema
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-18 16:01:40 -05:00
pranavm2109
dffa689e2b updated documentation
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-18 15:58:03 -05:00
pranavm2109
5ed2278887 Merge branch 'feature/3508_color-user-journey-title' of https://github.com/SeniorSeniorMath-SciLib2k24/mermaid into feature/3508_color-user-journey-title 2025-02-18 15:36:56 -05:00
pranavm2109
d6376ca1ff Reverted to using configObject in place of conf
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-18 15:36:51 -05:00
autofix-ci[bot]
99bd0c48fa [autofix.ci] apply automated fixes 2025-02-18 20:31:21 +00:00
pranavm2109
eb7289a65a Merge branch 'feature/3508_color-user-journey-title' of https://github.com/SeniorSeniorMath-SciLib2k24/mermaid into feature/3508_color-user-journey-title 2025-02-18 15:26:10 -05:00
pranavm2109
80c6b945fa Removed title style documentation from theming.md
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-18 15:25:12 -05:00
saurabhg772244
a81c3187ba removed font awesome packages and used registered icons instead 2025-02-18 19:53:18 +05:30
Sidharth Vinod
39a5abc714 chore: Minor refactors to stateDB 2025-02-18 13:50:49 +05:30
Sidharth Vinod
6650efc1a6 fix: Note position 2025-02-18 00:51:38 +05:30
Sidharth Vinod
a4754ad195 chore: Add changeset 2025-02-18 00:33:47 +05:30
Sidharth Vinod
91cbe5bc01 fix: StateStmt import 2025-02-18 00:29:57 +05:30
Sidharth Vinod
d2996dd553 fix: Statement handling 2025-02-18 00:23:58 +05:30
Sidharth Vinod
7a7836ad90 Merge branch 'develop' into sidv/stateDB-ts
* develop:
  Added changeset.
  refactor: handle StateDB `.extract()` properly
2025-02-17 23:50:10 +05:30
Sidharth Vinod
7ca9242b24 chore: Add types to stateDB and dataFetcher 2025-02-17 23:47:56 +05:30
Sidharth Vinod
438f388b5c chore: Rename dataFetcher 2025-02-17 00:27:43 +05:30
Sidharth Vinod
e89c77a5ca chore: Remove id-cache 2025-02-17 00:27:02 +05:30
Sidharth Vinod
31984acfe0 chore: Rename stateDB 2025-02-15 22:52:35 +05:30
Sidharth Vinod
9badfe7489 Merge branch 'develop' into feature/3508_color-user-journey-title 2025-02-15 22:33:13 +05:30
Sidharth Vinod
27912bee8c Merge branch 'develop' into bug/5955_adjust-diagram-position-with-legend-width 2025-02-15 22:14:44 +05:30
Shahir Ahmed
7aef182fbf Merge branch 'develop' into feature/3508_color-user-journey-title 2025-02-14 16:45:20 -05:00
autofix-ci[bot]
2fb6ea7b77 [autofix.ci] apply automated fixes 2025-02-14 21:23:01 +00:00
pranavm2109
add48da4c8 modifed journey diagram config scheme to contain title specific styles, and undid previous theme-wide changes
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-14 16:17:09 -05:00
Saurabh Gore
d63d3bf1e7 added changeset 2025-02-14 16:37:41 +05:30
Saurabh Gore
33e5694a75 update styles so that proper fill is applied to icons 2025-02-14 16:32:59 +05:30
Saurabh Gore
302ba725ae embed free font awesome svg instead of i tag. pro icons will still work with i tag 2025-02-14 16:32:11 +05:30
Shahir Ahmed
5f7c68def7 refactor: standardize variable naming and improve legend width calculations
Co-authored-by: pranavm2109 <mishrap@dickinson.edu>
2025-02-13 01:46:27 -05:00
Sidharth Vinod
82d019234a chore: Cleanup 2025-02-13 09:50:04 +05:30
Shahir Ahmed
d618b8398e adds test for journey
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-12 19:54:56 -05:00
Shahir Ahmed
db4ea020ba testing
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-12 18:39:03 -05:00
pranavm2109
5366e8b692 added first draft of cypress visual tests
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-02-12 15:19:37 -05:00
Shahir Ahmed
fbac4c61bb diagram adjusts with legend width changes
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-02-05 19:27:32 -05:00
Shahir Ahmed
d81ddf246c fixes titleColor default value
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-31 17:57:25 -05:00
Shahir Ahmed
ffe1bb359f update pnpm-lock.yaml
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-31 17:30:34 -05:00
Shahir Ahmed
88a39f8e16 update dependencies for CI/CD pipeline
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-31 17:28:55 -05:00
Shahir Ahmed
9fb46ae88f improves description for user journey diagram title test
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-29 16:20:43 -05:00
Shahir Ahmed
798fb98b2a Merge branch 'develop' into feature/3508_color-user-journey-title
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-29 16:15:00 -05:00
Shahir Ahmed
7c0af381d1 adds styling, font-weight and font-family tests for user jounrey title
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-29 16:11:57 -05:00
pranavm2109
384f59eee2 called getConfig() once in draw function and used returned value elsewhere within
Co-authored-by: Shahir Ahmed <ahmeds@dickinson.edu>
2025-01-29 14:45:42 -05:00
Shahir Ahmed
03ff28e927 removes console.warn()
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-25 22:12:16 -05:00
Shahir Ahmed
16a1a90705 adds font family and font size to the title of the user journey diagram
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-25 22:01:30 -05:00
Shahir Ahmed
3221cbfa0a add titleColor theme variable to theming.md
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-25 21:23:35 -05:00
Shahir Ahmed
f0a8ccb177 Merge branch 'develop' into feature/3508_color-user-journey-title
Co-authored-by: Pranav Mishra <mishrap@dickinson.edu>
2025-01-25 21:12:11 -05:00
Shahir Ahmed
a30705cdcc Enhance user journey diagram title color configuration 2025-01-25 20:33:39 -05:00
autofix-ci[bot]
9ff09f28e7 [autofix.ci] apply automated fixes 2024-10-23 14:25:38 +00:00
Jake Beamish
eddd8313c9 Fix code block typo
Previously, the h4 line "#### Using Dagre Layout with Classic Look:" was included at the bottom of the previous Example configuration code block. Now it renders as a h4
2024-10-23 15:03:36 +01:00
Bryan
c828867852 add documentation 2024-10-19 17:50:00 +01:00
Bryan
5fca47c5ec Revert "run prettier"
This reverts commit 6d33d93b15.
2024-10-18 21:30:10 +01:00
Bryan
4cd3f0a8bb try implementing assert as if->throw 2024-10-18 21:21:15 +01:00
Bryan
73653c348d remove import for assert 2024-10-18 21:12:55 +01:00
Bryan
0bc07f356d add import for assert 2024-10-18 20:54:10 +01:00
Bryan
6d33d93b15 run prettier 2024-10-18 20:28:37 +01:00
autofix-ci[bot]
d54eed9d62 [autofix.ci] apply automated fixes 2024-10-18 19:22:20 +00:00
Bryan
0fdfd91069 lint the documentation 2024-10-18 20:17:30 +01:00
Bryan
93577619b2 add documentation 2024-10-18 20:09:29 +01:00
Bryan
b602f67abe Add bit count syntax to packet diagram 2024-10-18 20:05:42 +01:00
Sidharth Vinod
70038e90ce Merge branch 'develop' into sidv/tinyMermaid
* develop: (52 commits)
  docs: Add quadrant point styling
  feat: Change precedence of styling
  chore(deps): update all minor dependencies
  chore(deps): update all patch dependencies
  fix: eslint ignore, type definition
  chore(deps): update all patch dependencies
  fix: Remove `ImperativeState` type restriction.
  📝🐛 fix schema link
  update latest news section
  Changes to rendering/gitGraph.spec.js - Added additional rendering test functionality for recognizing 'switch' as an alias to 'checkout'.
  1. Changes to gitGraph.jison - Updated the regex to allow either 'checkout' or 'switch' 2. Changes to gitGraphParser.spec.js - Additional test coverage added for the changes made to the parser. 3. Changes to gitGraphParserV2.spec.js - Additional test coverafe added for the changes made to the parser. 4. Changes to gitgraph.md - Updated documentation to let users know that checkout/switch can be used interchangeably.
  revert from and to type to object
  add eslint rule consistent-type-definations
  Update createText.ts
  chore(deps): update all patch dependencies
  revert lock file
  simplify message type from and to
  move types to separate file
  use interfaces instead of types
  feat: create utils func + test cases
  ...
2024-04-16 12:34:42 +05:30
Sidharth Vinod
49f2de9547 Merge branch 'develop' into sidv/tinyMermaid
* develop: (101 commits)
  Add extra test
  Add visual test
  Wait for image to be rendered
  Update docs
  Linting
  chore:  temp fix for eslint OOM
  chore: Update error snapshots
  Fix ESLint
  chore: Prettier
  chore: YOLO `pnpm --recursive update`
  chore: Remove commitlint
  Fix flowchart-elk render test
  chore: Add example page link in index
  Fix flowchart-elk render test
  chore: Add example page link in index
  fix: Remove space which caused extra newline on diagrams
  fix: Remove repeated config calls
  fix: ELK diagram remove re-parsing
  chore: Minor fixes #4856
  chore: Increase ESLint memory limit
  ...
2024-03-23 18:47:27 +05:30
sidharthv96
80eaafa001 Update docs 2024-03-08 14:24:44 +00:00
Sidharth Vinod
cedc1d4e28 Merge branch 'develop' into sidv/tinyMermaid
* develop: (31 commits)
  make LLM integrations a new headline
  build docs
  ci(e2e): avoid commenting on PRs in CI
  chore: Remove unused imports in block
  Fix spelling
  Update docs
  Lychee ignore chrome webstore
  Update link
  chore(deps): update all patch dependencies
  build(docs): vendor CSS dependencies
  chore(deps): update all minor dependencies
  fix linting issues
  Ran lint:fix
  Fix chrome webstore url causing 404
  Add LLM integration section in productivity tools and add HueHive
  build(deps): update `langium` to `v3` and apply the required changes
  Remove dummy change from e2e.yml
  Remove dummy change
  Remove log
  Format message
  ...
2024-03-08 19:43:56 +05:30
Sidharth Vinod
882e4971eb Remove katex from mermaid.tiny 2024-03-01 12:54:42 +05:30
Sidharth Vinod
3a12a63c32 Merge branch 'next' into sidv/tinyMermaid
* next: (269 commits)
  Resolves E2E testing issues and issue #5343
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Added link to Blazorade Mermaid to the community integrations page.
  Bump node version
  Add lcov to cspell
  Correcting path to docker-entrypoint.sh
  Update recommended Vitest extension
  Replace mermaid-js.github.io links
  Replace links to docs with links to webhelp
  Link to contributing page on webhelp
  Changes to timeline.md 1. Added colons to all 'NOTES' for consistency.
  Changes to timeline.md 1. Updates the Wikipedia citation to include a link. 2. Removed periods from documentation sections to be consistent (some had periods, some didn't) 3. Added a space to a coding example for spacing consistency.
  Replace version number placeholder
  ...
2024-03-01 12:48:22 +05:30
Sidharth Vinod
c1d31476cd Ignore node_modules 2024-01-24 09:44:25 +05:30
Sidharth Vinod
b23b97f612 Fix artifact upload 2024-01-24 09:41:00 +05:30
Sidharth Vinod
bd1789c54b Merge branch 'next' into sidv/tinyMermaid
* next: (562 commits)
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  Fix applitools
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Cleanup e2e.yml
  Ignore push events on merge queue
  Remove ::
  Remove ::
  ...
2024-01-24 09:25:52 +05:30
Sidharth Vinod
5feececff6 Merge branch 'next' into sidv/tinyMermaid
* next: (27 commits)
  chore: Fix type
  refactor!: remove MermaidConfig type enum fallback
  test: rewrite some `config` vals to tighten types
  chore: Add comment for `yy`.
  chore: Increase heap size when building
  chore: increase `test-util.ts` converage by returning `undefined`
  chore: add `vitest` imports to `test-util.ts`
  chore: run `pnpm lint:fix`
  create `noErrorsOrAlternatives` parser helper function
  chore: export `InfoModule` from `infoModule.ts`
  docs(parser): create `packages/parser` README.md file
  build: build `.langium` file using `generate` from `langium-cli`
  build: update `langium` and `langium-cli` to `v2.0.1`
  fix: fix if statment logic checks if `parser` is not `undefined`
  chore: add a comment illustrate why we build packages sequentially
  chore: refactore `&&` into `if` in `populateCommonDb`
  chore: remove `./*` part from `exports` in `parser/package.json`
  fix: use `execFileSync` instead of `execSync` in `generateLangium`
  fix(mermaid): mark `mermaid-parser` dependecy with `^`
  reorder `packages/parser` after `packages/mermaid/src/vitepress`
  ...
2023-09-08 16:43:32 +05:30
Sidharth Vinod
87b0025691 Merge branch 'develop' into sidv/tinyMermaid
* develop: (189 commits)
  Remove unnecessary tests
  Remove optional chaining
  chore: Update docs
  refactor: Use `||` instead of `??`
  Update flowchart.md (#4798)
  Update flowchart.md (#4792)
  core: Adapt changes from 3f7bafb2d7
  Update cypress/helpers/util.js
  chore: Update docs
  chore: Add deprecation notices, improve types
  chore: Cleanup gitGraph tests
  chore: Fix unit tests
  chore(deps): update all patch dependencies
  chore: Update docs
  Update docs
  New Mermaid Live Editor for Confluence Cloud (#4814)
  Update link to Discourse theme component (#4811)
  Update flowchart.md (#4810)
  chore: remove unneeded `CommomDB`
  chore: Update docs
  ...
2023-09-08 16:32:53 +05:30
Sidharth Vinod
e32747dc6f Merge branch 'next' into sidv/tinyMermaid
* next:
  Fixed wrong collapsible option at the left menu, updated vue
2023-08-20 00:35:17 +05:30
Sidharth Vinod
6936f6cd02 Merge branch 'next' into sidv/tinyMermaid
* next:
  chore: Move liveReload code into script.
  Fix minify undefined
2023-08-17 16:24:33 +05:30
Sidharth Vinod
841619a7d2 Merge branch 'next' into sidv/tinyMermaid
* next:
  chore: Move SVG import to comment.
  build docs
  Remove whitespace on empty line
  chore: Fix minify
  Documentation for #2509
  Update all minor dependencies
  Update all patch dependencies
  make more `RectData` required and remove optional assignment
  use lineBreakRegex in `svgDrawCommon`
  fix svgDrawCommon import by adding `.js`
  add types to `svgDrawCommon.ts`
  convert `svgDrawCommon` to TS
2023-08-17 12:41:11 +05:30
Sidharth Vinod
905cc365e7 chore: Fix ordering issue 2023-08-16 11:08:09 +05:30
Sidharth Vinod
55266c4085 chore: Simplify diagram exclusion
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-16 11:01:19 +05:30
Sidharth Vinod
5f95a26218 fix: Center version text in SVG 2023-08-14 14:31:37 +05:30
Sidharth Vinod
91b7d4234e chore: Highlight if tiny version is used in error and info. 2023-08-14 14:31:07 +05:30
Sidharth Vinod
0280316b03 Remove sourcemaps 2023-08-14 09:55:00 +05:30
Sidharth Vinod
7afe87bb52 Merge branch 'sidv/splitChunks' into sidv/tinyMermaid
* sidv/splitChunks:
  Fix import
2023-08-14 09:25:07 +05:30
Sidharth Vinod
9632049bf2 v11.0.0-alpha.3 2023-08-14 09:09:32 +05:30
Sidharth Vinod
13a6f04945 chore: Add vite support for define 2023-08-14 09:05:56 +05:30
Sidharth Vinod
58a744782a Merge branch 'sidv/splitChunks' into sidv/tinyMermaid
* sidv/splitChunks:
  chore: Fix outfile names
2023-08-14 08:58:29 +05:30
Sidharth Vinod
63d5808848 Merge branch 'sidv/splitChunks' into sidv/tinyMermaid
* sidv/splitChunks:
  chore: Add analyzer comment
  chore: Split chunks into folders
  chore: Split chunks into folders
  chore: Add defaultOptions to server
  chore: Split chunks into folders
2023-08-14 08:39:43 +05:30
Sidharth Vinod
a1541aa6f5 chore: Split chunks into folders 2023-08-14 08:14:43 +05:30
Sidharth Vinod
5f3c4fccaf chore: Add tiny bundle
Excludes elk and mindmap at build time
2023-08-14 07:34:16 +05:30
347 changed files with 14184 additions and 3894 deletions

View File

@@ -27,6 +27,7 @@ const MERMAID_CONFIG_DIAGRAM_KEYS = [
'block',
'packet',
'architecture',
'radar',
] as const;
/**

View File

@@ -47,13 +47,13 @@ edgesep
EMPTYSTR
enddate
ERDIAGRAM
eslint
flatmap
forwardable
frontmatter
funs
gantt
GENERICTYPE
getBoundarys
grammr
graphtype
halign
@@ -88,6 +88,7 @@ NODIR
NSTR
outdir
Qcontrolx
QSTR
reinit
rels
reqs

View File

@@ -2,8 +2,10 @@
Ashish Jain
cpettitt
Dong Cai
knsv
Knut Sveidqvist
Nikolay Rozhkov
Peng Xiao
Per Brolin
Sidharth Vinod
subhash-halder
Vinod Sidharth

View File

@@ -26,6 +26,7 @@ dompurify
elkjs
fcose
fontawesome
Fonticons
Forgejo
Foswiki
Gitea

View File

@@ -13,11 +13,10 @@ gitgraph
gzipped
handDrawn
kanban
knsv
Knut
marginx
marginy
Markdownish
mermaidchart
mermaidjs
mindmap
mindmaps
@@ -35,7 +34,6 @@ sandboxed
siebling
statediagram
substate
Sveidqvist
unfixable
Viewbox
viewports

View File

@@ -1,5 +1,5 @@
import { build } from 'esbuild';
import { mkdir, writeFile } from 'node:fs/promises';
import { cp, mkdir, readFile, rename, writeFile } from 'node:fs/promises';
import { packageOptions } from '../.build/common.js';
import { generateLangium } from '../.build/generateLangium.js';
import type { MermaidBuildOptions } from './util.js';
@@ -31,6 +31,27 @@ const buildPackage = async (entryName: keyof typeof packageOptions) => {
// mermaid.js
{ ...iifeOptions },
// mermaid.min.js
{ ...iifeOptions, minify: true, metafile: shouldVisualize },
// mermaid.tiny.min.js
{
...iifeOptions,
minify: true,
includeLargeFeatures: false,
metafile: shouldVisualize,
sourcemap: false,
}
);
}
if (entryName === 'mermaid-zenuml') {
const iifeOptions: MermaidBuildOptions = {
...commonOptions,
format: 'iife',
globalName: 'mermaid-zenuml',
};
buildConfigs.push(
// mermaid-zenuml.js
{ ...iifeOptions },
// mermaid-zenuml.min.js
{ ...iifeOptions, minify: true, metafile: shouldVisualize }
);
}
@@ -57,6 +78,21 @@ const handler = (e) => {
process.exit(1);
};
const buildTinyMermaid = async () => {
await mkdir('./packages/tiny/dist', { recursive: true });
await rename(
'./packages/mermaid/dist/mermaid.tiny.min.js',
'./packages/tiny/dist/mermaid.tiny.js'
);
// Copy version from mermaid's package.json to tiny's package.json
const mermaidPkg = JSON.parse(await readFile('./packages/mermaid/package.json', 'utf8'));
const tinyPkg = JSON.parse(await readFile('./packages/tiny/package.json', 'utf8'));
tinyPkg.version = mermaidPkg.version;
await writeFile('./packages/tiny/package.json', JSON.stringify(tinyPkg, null, 2) + '\n');
await cp('./packages/mermaid/CHANGELOG.md', './packages/tiny/CHANGELOG.md');
};
const main = async () => {
await generateLangium();
await mkdir('stats', { recursive: true });
@@ -65,6 +101,7 @@ const main = async () => {
for (const pkg of packageNames) {
await buildPackage(pkg).catch(handler);
}
await buildTinyMermaid();
};
void main();

View File

@@ -14,6 +14,7 @@ export interface MermaidBuildOptions extends BuildOptions {
metafile: boolean;
format: 'esm' | 'iife';
options: PackageOptions;
includeLargeFeatures: boolean;
}
export const defaultOptions: Omit<MermaidBuildOptions, 'entryName' | 'options'> = {
@@ -21,6 +22,7 @@ export const defaultOptions: Omit<MermaidBuildOptions, 'entryName' | 'options'>
metafile: false,
core: false,
format: 'esm',
includeLargeFeatures: true,
} as const;
const buildOptions = (override: BuildOptions): BuildOptions => {
@@ -39,12 +41,18 @@ const buildOptions = (override: BuildOptions): BuildOptions => {
};
};
const getFileName = (fileName: string, { core, format, minify }: MermaidBuildOptions) => {
const getFileName = (
fileName: string,
{ core, format, minify, includeLargeFeatures }: MermaidBuildOptions
) => {
if (core) {
fileName += '.core';
} else if (format === 'esm') {
fileName += '.esm';
}
if (!includeLargeFeatures) {
fileName += '.tiny';
}
if (minify) {
fileName += '.min';
}
@@ -54,23 +62,27 @@ const getFileName = (fileName: string, { core, format, minify }: MermaidBuildOpt
export const getBuildConfig = (options: MermaidBuildOptions): BuildOptions => {
const {
core,
metafile,
format,
minify,
options: { name, file, packageName },
globalName = 'mermaid',
includeLargeFeatures,
...rest
} = options;
const external: string[] = ['require', 'fs', 'path'];
const outFileName = getFileName(name, options);
const output: BuildOptions = buildOptions({
...rest,
absWorkingDir: resolve(__dirname, `../packages/${packageName}`),
entryPoints: {
[outFileName]: `src/${file}`,
},
metafile,
minify,
globalName,
logLevel: 'info',
chunkNames: `chunks/${outFileName}/[name]-[hash]`,
define: {
// This needs to be stringified for esbuild
includeLargeFeatures: `${includeLargeFeatures}`,
'import.meta.vitest': 'undefined',
},
});
@@ -89,11 +101,12 @@ export const getBuildConfig = (options: MermaidBuildOptions): BuildOptions => {
if (format === 'iife') {
output.format = 'iife';
output.splitting = false;
output.globalName = '__esbuild_esm_mermaid';
const originalGlobalName = output.globalName ?? 'mermaid';
output.globalName = `__esbuild_esm_mermaid_nm[${JSON.stringify(originalGlobalName)}]`;
// Workaround for removing the .default access in esbuild IIFE.
// https://github.com/mermaid-js/mermaid/pull/4109#discussion_r1292317396
output.footer = {
js: 'globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default;',
js: `globalThis[${JSON.stringify(originalGlobalName)}] = globalThis.${output.globalName}.default;`,
};
output.outExtension = { '.js': '.js' };
} else {

View File

@@ -29,7 +29,7 @@ body:
label: Colors
description: |-
A detailed list of the different colour values to use.
A list of currently used variable names can be found [here](https://mermaid-js.github.io/mermaid/#/theming?id=theme-variables-reference-table)
See the [list of currently used variable names](https://mermaid-js.github.io/mermaid/#/theming?id=theme-variables-reference-table)
placeholder: |-
- background: #f4f4f4
- primaryColor: #fff4dd

10
.github/lychee.toml vendored
View File

@@ -46,11 +46,17 @@ exclude = [
# Drupal 403
"https://(www.)?drupal.org",
# Swimm returns 404, eventhough the link is valid
# Phbpp 403
"https://(www.)?phpbb.com",
# Swimm returns 404, even though the link is valid
"https://docs.swimm.io",
# Timeout
"https://huehive.co"
"https://huehive.co",
"https://foswiki.org",
"https://www.gnu.org",
"https://mermaid-preview.com"
]
# Exclude all private IPs from checking.

2
.github/stale.yml vendored
View File

@@ -15,5 +15,5 @@ markComment: >
If you are still interested in this issue and it is still relevant you can comment to revive it.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been been automatically closed due to a lack of activity.
This issue has been automatically closed due to a lack of activity.
This is done to maintain a clean list of issues that the community is interested in developing.

View File

@@ -45,13 +45,15 @@ jobs:
- if: ${{ env.USE_APPLI }}
name: Notify applitools of new batch
# Copied from docs https://applitools.com/docs/topics/integrations/github-integration-ci-setup.html
run: curl -L -d '' -X POST "$APPLITOOLS_SERVER_URL/api/externals/github/push?apiKey=$APPLITOOLS_API_KEY&CommitSha=$GITHUB_SHA&BranchName=${APPLITOOLS_BRANCH}$&ParentBranchName=$APPLITOOLS_PARENT_BRANCH"
env:
# e.g. mermaid-js/mermaid/my-branch
APPLITOOLS_BRANCH: ${{ github.repository }}/${{ github.ref_name }}
APPLITOOLS_PARENT_BRANCH: ${{ github.event.inputs.parent_branch }}
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com'
uses: wei/curl@012398a392d02480afa2720780031f8621d5f94c
with:
args: -X POST "$APPLITOOLS_SERVER_URL/api/externals/github/push?apiKey=$APPLITOOLS_API_KEY&CommitSha=$GITHUB_SHA&BranchName=${APPLITOOLS_BRANCH}$&ParentBranchName=$APPLITOOLS_PARENT_BRANCH"
- name: Cypress run
uses: cypress-io/github-action@18a6541367f4580a515371905f499a27a44e8dbe # v6.7.12

View File

@@ -11,6 +11,7 @@ concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
pull-requests: write
jobs:
timings:
@@ -29,6 +30,7 @@ jobs:
uses: cypress-io/github-action@18a6541367f4580a515371905f499a27a44e8dbe # v6.7.12
with:
runTests: false
- name: Cypress run
uses: cypress-io/github-action@18a6541367f4580a515371905f499a27a44e8dbe # v6.7.12
id: cypress
@@ -44,15 +46,25 @@ jobs:
SPLIT: 1
SPLIT_INDEX: 0
SPLIT_FILE: 'cypress/timings.json'
- name: Commit changes
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4
- name: Compare timings
id: compare
run: |
OUTPUT=$(pnpm tsx scripts/compare-timings.ts)
echo "$OUTPUT" >> $GITHUB_STEP_SUMMARY
echo "output<<EOF" >> $GITHUB_OUTPUT
echo "$OUTPUT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Commit and create pull request
uses: peter-evans/create-pull-request@889dce9eaba7900ce30494f5e1ac7220b27e5c81
with:
add: 'cypress/timings.json'
author_name: 'github-actions[bot]'
author_email: '41898282+github-actions[bot]@users.noreply.github.com'
message: 'chore: update E2E timings'
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
branch: release-promotion
add-paths: |
cypress/timings.json
commit-message: 'chore: update E2E timings'
branch: update-timings
title: Update E2E Timings
body: ${{ steps.compare.outputs.output }}
delete-branch: true
sign-commits: true

70
.github/workflows/validate-lockfile.yml vendored Normal file
View File

@@ -0,0 +1,70 @@
name: Validate pnpm-lock.yaml
on:
pull_request:
paths:
- 'pnpm-lock.yaml'
- '**/package.json'
- '.github/workflows/validate-lockfile.yml'
jobs:
validate-lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
- name: Validate pnpm-lock.yaml entries
id: validate # give this step an ID so we can reference its outputs
run: |
issues=()
# 1) No tarball references
if grep -qF 'tarball:' pnpm-lock.yaml; then
issues+=("• Tarball references found (forbidden)")
fi
# 2) No unwanted vitepress paths
if grep -qF 'packages/mermaid/src/vitepress' pnpm-lock.yaml; then
issues+=("• Disallowed path 'packages/mermaid/src/vitepress' present. Run `rm -rf packages/mermaid/src/vitepress && pnpm install` to regenerate.")
fi
# 3) Lockfile only changes when package.json changes
git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} > changed.txt
if grep -q '^pnpm-lock.yaml$' changed.txt && ! grep -q 'package.json' changed.txt; then
issues+=("• pnpm-lock.yaml changed without any package.json modification")
fi
# If any issues, output them and fail
if [ ${#issues[@]} -gt 0 ]; then
# Use the new GITHUB_OUTPUT approach to set a multiline output
{
echo "errors<<EOF"
printf '%s\n' "${issues[@]}"
echo "EOF"
} >> $GITHUB_OUTPUT
exit 1
fi
- name: Comment on PR if validation failed
if: failure()
uses: peter-evans/create-or-update-comment@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.pull_request.number }}
body: |
The following issue(s) were detected:
${{ steps.validate.outputs.errors }}
Please address these and push an update.
_Posted automatically by GitHub Actions_

View File

@@ -94,6 +94,10 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
}),
...visualizerOptions(packageName, core),
],
define: {
// Needs to be string
includeLargeFeatures: 'true',
},
};
if (watch && config.build) {

View File

@@ -256,7 +256,7 @@ mermaid.run({
- Problem showing graph with php on localhost [\#502](https://github.com/knsv/mermaid/issues/502)
- logLevel's option doesnt work at 7.0.0 [\#501](https://github.com/knsv/mermaid/issues/501)
- How do I get the log for a render or parse attempt? [\#500](https://github.com/knsv/mermaid/issues/500)
- Mermaid neutral style style to built in latest release [\#499](https://github.com/knsv/mermaid/issues/499)
- Mermaid neutral style to built in latest release [\#499](https://github.com/knsv/mermaid/issues/499)
- Any plans for adding a typescript definition file? [\#495](https://github.com/knsv/mermaid/issues/495)
- Gantt diagrams too narrow [\#493](https://github.com/knsv/mermaid/issues/493)
- Flowchart edge labels placement [\#490](https://github.com/knsv/mermaid/issues/490)
@@ -833,7 +833,7 @@ mermaid.run({
- Merge pull request \#1 from knsv/master [\#96](https://github.com/knsv/mermaid/pull/96) ([gkchic](https://github.com/gkchic))
- Removed duplicated section in flowchart docs [\#94](https://github.com/knsv/mermaid/pull/94) ([kaime](https://github.com/kaime))
- Grammar changes to sequence page [\#93](https://github.com/knsv/mermaid/pull/93) ([gkchic](https://github.com/gkchic))
- Github buttons [\#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic))
- GitHub buttons [\#89](https://github.com/knsv/mermaid/pull/89) ([gkchic](https://github.com/gkchic))
- Template change [\#88](https://github.com/knsv/mermaid/pull/88) ([gkchic](https://github.com/gkchic))
## [0.3.1](https://github.com/knsv/mermaid/tree/0.3.1) (2015-01-05)
@@ -1002,4 +1002,4 @@ mermaid.run({
## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16)
\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)_
\* _This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/GitHub-Changelog-Generator)_

View File

@@ -44,7 +44,7 @@ Try Live Editor previews of future releases: <a href="https://develop.git.mermai
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<a href="https://mermaid.js.org/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid.js.org/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt='Banner for "The Official Guide to Mermaid.js" book'></a>
## Table of content
@@ -95,10 +95,6 @@ In our release process we rely heavily on visual regression tests using [applito
<!-- </Main description> -->
## Mermaid AI Bot
[Mermaid](https://codeparrot.ai/oracle?owner=mermaid-js&repo=mermaid) Bot will help you understand this repository better. You can ask for code examples, installation guide, debugging help and much more.
## Examples
**The following are some examples of the diagrams, charts and graphs that can be made using Mermaid. Click here to jump into the [text syntax](https://mermaid.js.org/intro/syntax-reference.html).**
@@ -451,7 +447,7 @@ For public sites, it can be precarious to retrieve text from users on the intern
As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing javascript in the code from being executed. This is a great step forward for better security.
_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
_Unfortunately you cannot have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
## Reporting vulnerabilities

View File

@@ -43,13 +43,13 @@ Mermaid
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<a href="https://mermaid.js.org/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt="Explore Mermaid.js in depth, with real-world examples, tips & tricks from the creator... The first official book on Mermaid is available for purchase. Check it out!"></a>
<a href="https://mermaid.js.org/landing/"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/intro/img/book-banner-post-release.jpg" alt='Banner for "The Official Guide to Mermaid.js" book'></a>
## 关于 Mermaid
<!-- <Main description> -->
Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。
Mermaid 是一个基于 JavaScript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。
> Doc-Rot 是 Mermaid 致力于解决的一个难题。

View File

@@ -1,8 +1,8 @@
import eyesPlugin from '@applitools/eyes-cypress';
import { registerArgosTask } from '@argos-ci/cypress/task';
import coverage from '@cypress/code-coverage/task';
import coverage from '@cypress/code-coverage/task.js';
import { defineConfig } from 'cypress';
import { addMatchImageSnapshotPlugin } from 'cypress-image-snapshot/plugin';
import { addMatchImageSnapshotPlugin } from 'cypress-image-snapshot/plugin.js';
import cypressSplit from 'cypress-split';
export default eyesPlugin(

View File

@@ -69,7 +69,9 @@ describe('Configuration', () => {
.and('include', 'url(#');
});
});
it('should handle arrowMarkerAbsolute explicitly set to "false" as false', () => {
// This has been broken for a long time, but something about the Cypress environment was
// rewriting the URL to be relative, causing the test to incorrectly pass.
it.skip('should handle arrowMarkerAbsolute explicitly set to "false" as false', () => {
renderGraph(
`graph TD
A[Christmas] -->|Get money| B(Go shopping)
@@ -112,7 +114,7 @@ describe('Configuration', () => {
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(http://localhost');
.and('include', 'url(http\\:\\/\\/localhost');
});
});
it('should not taint the initial configuration when using multiple directives', () => {

View File

@@ -20,7 +20,7 @@ describe('Interaction', () => {
});
it('Graph: should handle a click on a node with a bound url', () => {
// When there is a URL, cy.contains selects the a tag instead of the span. The .node is a child of a, so we have to use find instead of parent.
// When there is a URL, `cy.contains()` selects the `a` tag instead of the `span` tag. The .node is a child of `a`, so we have to use `find()` instead of `parent`.
cy.contains('URLTest1').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
@@ -146,7 +146,7 @@ describe('Interaction', () => {
});
});
describe('Interaction - security level other, missspelling', () => {
describe('Interaction - security level other, misspelling', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/click_security_other.html');
});

View File

@@ -19,6 +19,25 @@ describe.skip('architecture diagram', () => {
`
);
});
it('should render a simple architecture diagram with titleAndAccessibilities', () => {
imgSnapshotTest(
`architecture-beta
title Simple Architecture Diagram
accTitle: Accessibility Title
accDescr: Accessibility Description
group api(cloud)[API]
service db(database)[Database] in api
service disk1(disk)[Storage] in api
service disk2(disk)[Storage] in api
service server(server)[Server] in api
db:L -- R:server
disk1:T -- B:server
disk2:T -- B:db
`
);
});
it('should render an architecture diagram with groups within groups', () => {
imgSnapshotTest(
`architecture-beta
@@ -172,7 +191,7 @@ describe.skip('architecture diagram', () => {
);
});
it('should render an architecture diagram with a resonable height', () => {
it('should render an architecture diagram with a reasonable height', () => {
imgSnapshotTest(
`architecture-beta
group federated(cloud)[Federated Environment]

View File

@@ -14,7 +14,7 @@ describe('Block diagram', () => {
);
});
it('BL2: should handle colums statement in sub-blocks', () => {
it('BL2: should handle columns statement in sub-blocks', () => {
imgSnapshotTest(
`block-beta
id1["Hello"]
@@ -30,7 +30,7 @@ describe('Block diagram', () => {
);
});
it('BL3: should align block widths and handle colums statement in sub-blocks', () => {
it('BL3: should align block widths and handle columns statement in sub-blocks', () => {
imgSnapshotTest(
`block-beta
block
@@ -46,7 +46,7 @@ describe('Block diagram', () => {
);
});
it('BL4: should align block widths and handle colums statements in deeper sub-blocks then 1 level', () => {
it('BL4: should align block widths and handle columns statements in deeper sub-blocks then 1 level', () => {
imgSnapshotTest(
`block-beta
columns 1
@@ -66,7 +66,7 @@ describe('Block diagram', () => {
);
});
it('BL5: should align block widths and handle colums statements in deeper sub-blocks then 1 level (alt)', () => {
it('BL5: should align block widths and handle columns statements in deeper sub-blocks then 1 level (alt)', () => {
imgSnapshotTest(
`block-beta
columns 1
@@ -236,7 +236,7 @@ describe('Block diagram', () => {
);
});
it('BL17: width alignment - blocks shold be equal in width', () => {
it('BL17: width alignment - blocks should be equal in width', () => {
imgSnapshotTest(
`block-beta
A("This is the text")

View File

@@ -429,7 +429,7 @@ describe('Class diagram', () => {
classDiagram
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
-String Many
#int Members
+And()
-Many()
@@ -443,7 +443,7 @@ describe('Class diagram', () => {
classDiagram
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
-String Many
#int Members
+And()
-Many()
@@ -459,7 +459,7 @@ describe('Class diagram', () => {
namespace testingNamespace {
class \`This\nTitle\nHas\nMany\nNewlines\` {
+String Also
-Stirng Many
-String Many
#int Members
+And()
-Many()

View File

@@ -208,13 +208,13 @@ describe('Flowchart ELK', () => {
`flowchart-elk TB
internet
nat
routeur
router
lb1
lb2
compute1
compute2
subgraph project
routeur
router
nat
subgraph subnet1
compute1
@@ -225,8 +225,8 @@ describe('Flowchart ELK', () => {
lb2
end
end
internet --> routeur
routeur --> subnet1 & subnet2
internet --> router
router --> subnet1 & subnet2
subnet1 & subnet2 --> nat --> internet
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
@@ -443,7 +443,7 @@ flowchart-elk TD
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('63-elk: title on subgraphs should be themable', () => {
it('63-elk: title on subgraphs should be themeable', () => {
imgSnapshotTest(
`
%%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%

View File

@@ -0,0 +1,28 @@
import { imgSnapshotTest } from '../../helpers/util.ts';
const themes = ['default', 'forest', 'dark', 'base', 'neutral'];
describe('when rendering flowchart with icons', () => {
for (const theme of themes) {
it(`should render icons from fontawesome library on theme ${theme}`, () => {
imgSnapshotTest(
`flowchart TD
A("fab:fa-twitter Twitter") --> B("fab:fa-facebook Facebook")
B --> C("fa:fa-coffee Coffee")
C --> D("fa:fa-car Car")
D --> E("fab:fa-github GitHub")
`,
{ theme }
);
});
it(`should render registered icons on theme ${theme}`, () => {
imgSnapshotTest(
`flowchart TD
A("fa:fa-bell Bell")
`,
{ theme }
);
});
}
});

View File

@@ -99,7 +99,7 @@ describe('Flowchart v2', () => {
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(417 * 0.95, 417 * 1.05);
expect(maxWidthValue).to.be.within(440 * 0.95, 440 * 1.05);
});
});
it('8: should render a flowchart when useMaxWidth is false', () => {
@@ -118,7 +118,7 @@ describe('Flowchart v2', () => {
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
expect(width).to.be.within(417 * 0.95, 417 * 1.05);
expect(width).to.be.within(440 * 0.95, 440 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
@@ -198,13 +198,13 @@ describe('Flowchart v2', () => {
`flowchart TB
internet
nat
routeur
router
lb1
lb2
compute1
compute2
subgraph project
routeur
router
nat
subgraph subnet1
compute1
@@ -215,8 +215,8 @@ describe('Flowchart v2', () => {
lb2
end
end
internet --> routeur
routeur --> subnet1 & subnet2
internet --> router
router --> subnet1 & subnet2
subnet1 & subnet2 --> nat --> internet
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
@@ -433,7 +433,7 @@ flowchart TD
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('63: title on subgraphs should be themable', () => {
it('63: title on subgraphs should be themeable', () => {
imgSnapshotTest(
`
%%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%
@@ -699,7 +699,7 @@ A --> B
{ flowchart: { titleTopMargin: 10 } }
);
});
it('3192: It should be possieble to render flowcharts with invisible edges', () => {
it('3192: It should be possible to render flowcharts with invisible edges', () => {
imgSnapshotTest(
`---
title: Simple flowchart with invisible edges
@@ -1076,11 +1076,11 @@ end
);
});
});
describe('New @ sytax for node metadata edge cases', () => {
describe('New @ syntax for node metadata edge cases', () => {
it('should be possible to use @ syntax to add labels on multi nodes', () => {
imgSnapshotTest(
`flowchart TB
n2["label for n2"] & n4@{ label: "labe for n4"} & n5@{ label: "labe for n5"}
n2["label for n2"] & n4@{ label: "label for n4"} & n5@{ label: "label for n5"}
`,
{}
);
@@ -1088,7 +1088,7 @@ end
it('should be possible to use @ syntax to add labels with trail spaces and &', () => {
imgSnapshotTest(
`flowchart TB
n2["label for n2"] & n4@{ label: "labe for n4"} & n5@{ label: "labe for n5"}
n2["label for n2"] & n4@{ label: "label for n4"} & n5@{ label: "label for n5"}
`,
{}
);
@@ -1097,8 +1097,8 @@ end
imgSnapshotTest(
`flowchart TB
n2["label for n2"]
n4@{ label: "labe for n4"}
n5@{ label: "labe for n5"}
n4@{ label: "label for n4"}
n5@{ label: "label for n5"}
`,
{}
);

View File

@@ -934,4 +934,43 @@ graph TD
}
);
});
it('68: should honor subgraph direction when inheritDir is false', () => {
imgSnapshotTest(
`
%%{init: {"flowchart": { "inheritDir": false }}}%%
flowchart TB
direction LR
subgraph A
direction TB
a --> b
end
subgraph B
c --> d
end
`,
{
fontFamily: 'courier',
}
);
});
it('69: should inherit global direction when inheritDir is true', () => {
imgSnapshotTest(
`
%%{init: {"flowchart": { "inheritDir": true }}}%%
flowchart TB
direction LR
subgraph A
direction TB
a --> b
end
subgraph B
c --> d
end
`,
{
fontFamily: 'courier',
}
);
});
});

View File

@@ -117,7 +117,7 @@ describe('Gantt diagram', () => {
{}
);
});
it('should FAIL redering a gantt chart for issue #1060 with invalid date', () => {
it('should FAIL rendering a gantt chart for issue #1060 with invalid date', () => {
imgSnapshotTest(
`
gantt
@@ -358,6 +358,23 @@ describe('Gantt diagram', () => {
);
});
it('should render a gantt diagram with a vert tag', () => {
imgSnapshotTest(
`
gantt
title A Gantt Diagram
dateFormat ss
axisFormat %Ss
section Section
A task : a1, 00, 6s
Milestone : vert, 01,
section Another
Task in sec : 06, 3s
another task : 3s
`
);
});
it('should render a gantt diagram with tick is 2 milliseconds', () => {
imgSnapshotTest(
`
@@ -573,7 +590,7 @@ describe('Gantt diagram', () => {
`
);
});
it('should render a gantt diagram exculding friday and saturday', () => {
it('should render a gantt diagram excluding friday and saturday', () => {
imgSnapshotTest(
`gantt
title A Gantt Diagram
@@ -584,7 +601,7 @@ describe('Gantt diagram', () => {
A task :a1, 2024-02-28, 10d`
);
});
it('should render a gantt diagram exculding saturday and sunday', () => {
it('should render a gantt diagram excluding saturday and sunday', () => {
imgSnapshotTest(
`gantt
title A Gantt Diagram
@@ -671,7 +688,7 @@ describe('Gantt diagram', () => {
title Gantt Digram
dateFormat YYYY-MM-DD
section Section
;A task with a semiclon :a1, 2014-01-01, 30d
;A task with a semicolon :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d

View File

@@ -11,7 +11,7 @@ describe('Git Graph diagram', () => {
{}
);
});
it('2: should render a simple gitgraph with commit on main branch with Id', () => {
it('2: should render a simple gitgraph with commit on main branch with id', () => {
imgSnapshotTest(
`gitGraph
commit id: "One"
@@ -253,7 +253,7 @@ describe('Git Graph diagram', () => {
`
gitGraph
checkout main
%% Make sure to manually set the ID of all commits, for consistent visual tests
%% Make sure to manually set the id of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
@@ -343,7 +343,7 @@ gitGraph
{}
);
});
it('16: should render a simple gitgraph with commit on main branch with Id | Vertical Branch', () => {
it('16: should render a simple gitgraph with commit on main branch with id | Vertical Branch', () => {
imgSnapshotTest(
`gitGraph TB:
commit id: "One"
@@ -585,7 +585,7 @@ gitGraph
`
gitGraph TB:
checkout main
%% Make sure to manually set the ID of all commits, for consistent visual tests
%% Make sure to manually set the id of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
@@ -1024,7 +1024,7 @@ gitGraph TB:
{}
);
});
it('51: should render a simple gitgraph with commit on main branch with Id | Vertical Branch - Bottom-to-top', () => {
it('51: should render a simple gitgraph with commit on main branch with id | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "One"
@@ -1266,7 +1266,7 @@ gitGraph TB:
`
gitGraph BT:
checkout main
%% Make sure to manually set the ID of all commits, for consistent visual tests
%% Make sure to manually set the id of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
@@ -1491,7 +1491,7 @@ gitGraph TB:
`
gitGraph
switch main
%% Make sure to manually set the ID of all commits, for consistent visual tests
%% Make sure to manually set the id of all commits, for consistent visual tests
commit id: "1-abcdefg"
switch main
branch branch1

View File

@@ -63,4 +63,199 @@ section Checkout from website
{ journey: { useMaxWidth: false } }
);
});
it('should initialize with a left margin of 150px for user journeys', () => {
renderGraph(
`
---
config:
journey:
maxLabelWidth: 320
---
journey
title User Journey Example
section Onboarding
Sign Up: 5:
Browse Features: 3:
Use Core Functionality: 4:
section Engagement
Browse Features: 3
Use Core Functionality: 4
`,
{ journey: { useMaxWidth: true } }
);
let diagramStartX;
cy.contains('foreignobject', 'Sign Up').then(($diagram) => {
diagramStartX = parseFloat($diagram.attr('x'));
expect(diagramStartX).to.be.closeTo(150, 2);
});
});
it('should maintain sufficient space between legend and diagram when legend labels are longer', () => {
renderGraph(
`journey
title Web hook life cycle
section Darkoob
Make preBuilt:5: Darkoob user
register slug : 5: Darkoob userf deliberately increasing the size of this label to check if distance between legend and diagram is maintained
Map slug to a Prebuilt Job:5: Darkoob user
section External Service
set Darkoob slug as hook for an Event : 5 : admin Exjjjnjjjj qwerty
listen to the events : 5 : External Service
call darkoob endpoint : 5 : External Service
section Darkoob
check for inputs : 5 : DarkoobAPI
run the prebuilt job : 5 : DarkoobAPI
`,
{ journey: { useMaxWidth: true } }
);
let LabelEndX, diagramStartX;
// Get right edge of the legend
cy.contains('tspan', 'Darkoob userf').then((textBox) => {
const bbox = textBox[0].getBBox();
LabelEndX = bbox.x + bbox.width;
});
// Get left edge of the diagram
cy.contains('foreignobject', 'Make preBuilt').then((rect) => {
diagramStartX = parseFloat(rect.attr('x'));
});
// Assert right edge of the diagram is greater than or equal to the right edge of the label
cy.then(() => {
expect(diagramStartX).to.be.gte(LabelEndX);
});
});
it('should wrap a single long word with hyphenation', () => {
renderGraph(
`
---
config:
journey:
maxLabelWidth: 100
---
journey
title Long Word Test
section Test
VeryLongWord: 5: Supercalifragilisticexpialidocious
`,
{ journey: { useMaxWidth: true } }
);
// Verify that the line ends with a hyphen, indicating proper hyphenation for words exceeding maxLabelWidth.
cy.get('tspan').then((tspans) => {
const hasHyphen = [...tspans].some((t) => t.textContent.trim().endsWith('-'));
return expect(hasHyphen).to.be.true;
});
});
it('should wrap text on whitespace without adding hyphens', () => {
renderGraph(
`
---
config:
journey:
maxLabelWidth: 200
---
journey
title Whitespace Test
section Test
TextWithSpaces: 5: Gustavo Fring is played by Giancarlo Esposito and is a character in Breaking Bad.
`,
{ journey: { useMaxWidth: true } }
);
// Verify that none of the text spans end with a hyphen.
cy.get('tspan').each(($el) => {
const text = $el.text();
expect(text.trim()).not.to.match(/-$/);
});
});
it('should wrap long labels into multiple lines, keep them under max width, and maintain margins', () => {
renderGraph(
`
---
config:
journey:
maxLabelWidth: 320
---
journey
title User Journey Example
section Onboarding
Sign Up: 5: This is a long label that will be split into multiple lines to test the wrapping functionality
Browse Features: 3: This is another long label that will be split into multiple lines to test the wrapping functionality
Use Core Functionality: 4: This is yet another long label that will be split into multiple lines to test the wrapping functionality
section Engagement
Browse Features: 3
Use Core Functionality: 4
`,
{ journey: { useMaxWidth: true } }
);
let diagramStartX, maxLineWidth;
// Get the diagram's left edge x-coordinate
cy.contains('foreignobject', 'Sign Up')
.then(($diagram) => {
diagramStartX = parseFloat($diagram.attr('x'));
})
.then(() => {
cy.get('text.legend').then(($lines) => {
// Check that there are multiple lines
expect($lines.length).to.be.equal(9);
// Check that all lines are under the maxLabelWidth
$lines.each((index, el) => {
const bbox = el.getBBox();
expect(bbox.width).to.be.lte(320);
maxLineWidth = Math.max(maxLineWidth || 0, bbox.width);
});
/** The expected margin between the diagram and the legend is 150px, as defined by
* conf.leftMargin in user-journey-config.js
*/
expect(diagramStartX - maxLineWidth).to.be.closeTo(150, 2);
});
});
});
it('should correctly render the user journey diagram title with the specified styling', () => {
renderGraph(
`---
config:
journey:
titleColor: "#2900A5"
titleFontFamily: "Times New Roman"
titleFontSize: "5rem"
---
journey
title User Journey Example
section Onboarding
Sign Up: 5: John, Shahir
Complete Profile: 4: John
section Engagement
Browse Features: 3: John
Use Core Functionality: 4: John
section Retention
Revisit Application: 5: John
Invite Friends: 3: John
size: 2rem
`
);
cy.get('text').contains('User Journey Example').as('title');
cy.get('@title').then(($title) => {
expect($title).to.have.attr('fill', '#2900A5');
expect($title).to.have.attr('font-family', 'Times New Roman');
expect($title).to.have.attr('font-size', '5rem');
});
});
});

View File

@@ -62,7 +62,7 @@ describe('Kanban diagram', () => {
{}
);
});
it('6: should handle assigments', () => {
it('6: should handle assignments', () => {
imgSnapshotTest(
`kanban
id1[Todo]
@@ -118,7 +118,7 @@ kanban
docs[Create Documentation]
docs[Create Blog about the new diagram]
id7[In progress]
id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.]
id6[Create renderer so that it works in all cases. We also add some extra text here for testing purposes. And some more just for the extra flare.]
id8[Design grammar]@{ assigned: 'knsv' }
id9[Ready for deploy]
id10[Ready for test]

View File

@@ -146,7 +146,7 @@ root
shouldHaveRoot
);
});
it('text shouhld wrap with icon', () => {
it('text should wrap with icon', () => {
imgSnapshotTest(
`mindmap
root

View File

@@ -64,7 +64,7 @@ describe('pie chart', () => {
});
});
it('should render a pie diagram when textPosition is setted', () => {
it('should render a pie diagram when textPosition is set', () => {
imgSnapshotTest(
`pie
"Dogs": 50

View File

@@ -45,7 +45,7 @@ describe('Quadrant Chart', () => {
{}
);
});
it('should able to render y-axix on right side', () => {
it('should able to render y-axis on right side', () => {
imgSnapshotTest(
`
%%{init: {"quadrantChart": {"yAxisPosition": "right"}}}%%
@@ -61,7 +61,7 @@ describe('Quadrant Chart', () => {
{}
);
});
it('should able to render x-axix on bottom', () => {
it('should able to render x-axis on bottom', () => {
imgSnapshotTest(
`
%%{init: {"quadrantChart": {"xAxisPosition": "bottom"}}}%%
@@ -77,7 +77,7 @@ describe('Quadrant Chart', () => {
{}
);
});
it('should able to render x-axix on bottom and y-axis on right', () => {
it('should able to render x-axis on bottom and y-axis on right', () => {
imgSnapshotTest(
`
%%{init: {"quadrantChart": {"xAxisPosition": "bottom", "yAxisPosition": "right"}}}%%

View File

@@ -0,0 +1,79 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('radar structure', () => {
it('should render a simple radar diagram', () => {
imgSnapshotTest(
`radar-beta
title Best Radar Ever
axis A, B, C
curve c1{1, 2, 3}
`
);
});
it('should render a radar diagram with multiple curves', () => {
imgSnapshotTest(
`radar-beta
title Best Radar Ever
axis A, B, C
curve c1{1, 2, 3}
curve c2{2, 3, 1}
`
);
});
it('should render a complex radar diagram', () => {
imgSnapshotTest(
`radar-beta
title My favorite ninjas
axis Agility, Speed, Strength
axis Stam["Stamina"] , Intel["Intelligence"]
curve Ninja1["Naruto Uzumaki"]{
Agility 2, Speed 2,
Strength 3, Stam 5,
Intel 0
}
curve Ninja2["Sasuke"]{2, 3, 4, 1, 5}
curve Ninja3 {3, 2, 1, 5, 4}
showLegend true
ticks 3
max 8
min 0
graticule polygon
`
);
cy.get('svg').should((svg) => {
expect(svg).to.have.length(1);
});
});
it('should render radar diagram with config override', () => {
imgSnapshotTest(
`radar-beta
title Best Radar Ever
axis A,B,C
curve mycurve{1,2,3}`,
{ radar: { marginTop: 100, axisScaleFactor: 0.5 } }
);
});
it('should parse radar diagram with theme override', () => {
imgSnapshotTest(
`radar-beta
axis A,B,C
curve mycurve{1,2,3}`,
{ theme: 'base', themeVariables: { fontSize: 80, cScale0: '#FF0000' } }
);
});
it('should handle radar diagram with radar style override', () => {
imgSnapshotTest(
`radar-beta
axis A,B,C
curve mycurve{1,2,3}`,
{ theme: 'base', themeVariables: { radar: { axisColor: '#FF0000' } } }
);
});
});

View File

@@ -138,8 +138,8 @@ describe('State diagram', () => {
imgSnapshotTest(
`
stateDiagram-v2
State1: This a a single line description
State2: This a a multi line description
State1: This a single line description
State2: This a multi line description
State2: here comes the multi part
[*] --> State1
State1 --> State2
@@ -345,7 +345,7 @@ stateDiagram
}
);
});
it('v2 width of compond state should grow with title if title is wider', () => {
it('v2 width of compound state should grow with title if title is wider', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -402,8 +402,8 @@ stateDiagram-v2
`
stateDiagram-v2
MyState
note left of MyState : I am a leftie
note right of MyState : I am a rightie
note left of MyState : I am a lefty
note right of MyState : I am a righty
`,
{
logLevel: 0,
@@ -552,7 +552,7 @@ style AState fill:#636,border:1px solid red,color:white;
{ logLevel: 0, fontFamily: 'courier' }
);
});
it(' should let styles take preceedence over classes', () => {
it(' should let styles take precedence over classes', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -565,7 +565,7 @@ style AState fill:#636,border:1px solid red,color:white;
{ logLevel: 0, fontFamily: 'courier' }
);
});
it(' should allow styles to take effect in stubgraphs', () => {
it(' should allow styles to take effect in subgraphs', () => {
imgSnapshotTest(
`
stateDiagram

View File

@@ -129,8 +129,8 @@ describe('State diagram', () => {
imgSnapshotTest(
`
stateDiagram
State1: This a a single line description
State2: This a a multi line description
State1: This a single line description
State2: This a multi line description
State2: here comes the multi part
[*] --> State1
State1 --> State2

View File

@@ -7,7 +7,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
`,
{}
@@ -35,7 +35,7 @@ describe('Timeline diagram', () => {
section Stone Age
7600 BC : Britain's oldest known house was built in Orkney, Scotland
6000 BC : Sea levels rise and Britain becomes an island.<br> The people who live here are hunter-gatherers.
section Broze Age
section Bronze Age
2300 BC : People arrive from Europe and settle in Britain. <br>They bring farming and metalworking.
: New styles of pottery and ways of burying the dead appear.
2200 BC : The last major building works are completed at Stonehenge.<br> People now bury their dead in stone circles.
@@ -51,7 +51,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
`,
{}
@@ -68,7 +68,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -84,7 +84,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -101,7 +101,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -118,7 +118,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -135,7 +135,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -152,7 +152,7 @@ describe('Timeline diagram', () => {
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -161,4 +161,68 @@ describe('Timeline diagram', () => {
{}
);
});
it('11: should render timeline with many stacked events and proper timeline line length', () => {
imgSnapshotTest(
`timeline
title Medical Device Lifecycle
section Pre-Development
Quality Management System : Regulatory Compliance : Risk Management
section Development
Management Responsibility : Planning Activities : Human Resources
Resource Management : Management Reviews : Infrastructure
section Post-Development
Product Realization Activities : Planning Activities : Customer-related Processes
Post-Production Activities : Feedback : Complaints : Adverse Events
: Research and Development : Purchasing Activities
: Production Activities : Installation Activities
: Servicing Activities : Post-Market Surveillance
`,
{}
);
});
it('12: should render timeline with proper vertical line lengths for all columns', () => {
imgSnapshotTest(
`---
config:
theme: base
themeVariables:
fontFamily: Fira Sans
fontSize: 17px
cScale0: '#b3cde0'
cScale1: '#f49090'
cScale2: '#85d5b8'
---
timeline
title Medical Device Lifecycle
section Planning
Quality Management System (4): Regulatory Compliance (4.1.1)
: Risk Management (4.1.2)
Management Resposibility (5): Planning Activities (5.4)
: Management Reviews (5.6)
Resource Management (6): Human Resources (6.2)
: Infrastructure (6.3)
section Realization
Research and Development (7.3): RnD Planning (7.3.2)
: Inputs (7.3.3)
: Outputs (7.3.4)
: Review (7.3.5)
: Verification (7.3.6)
: Validation (7.3.7)
Purchasing (7.4): Purchasing Process (7.4.1)
: Purchasing Information (7.4.2)
Production (7.5): Production Activities (7.5.1)
: Production Feedback (8.2.1)
Installation (7.5.3): Installation Activities (7.5.3)
Servicing (7.5.4): Servicing Activities (7.5.4)
section Post-Production
Post-Market Activities (8): Feedback (8.2.1)
: Complaints (8.2.2)
: Adverse Events (8.2.3)
`,
{}
);
});
});

View File

@@ -0,0 +1,382 @@
import { imgSnapshotTest } from '../../helpers/util.ts';
describe('Treemap Diagram', () => {
it('1: should render a basic treemap', () => {
imgSnapshotTest(
`treemap-beta
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
it('2: should render a hierarchical treemap', () => {
imgSnapshotTest(
`treemap-beta
"Products"
"Electronics"
"Phones": 50
"Computers": 30
"Accessories": 20
"Clothing"
"Men's"
"Shirts": 10
"Pants": 15
"Women's"
"Dresses": 20
"Skirts": 10
`,
{}
);
});
it('3: should render a treemap with styling using classDef', () => {
imgSnapshotTest(
`treemap-beta
"Section 1"
"Leaf 1.1": 12
"Section 1.2":::class1
"Leaf 1.2.1": 12
"Section 2"
"Leaf 2.1": 20:::class1
"Leaf 2.2": 25
"Leaf 2.3": 12
classDef class1 fill:red,color:blue,stroke:#FFD600;
`,
{}
);
});
it('4: should handle long text that wraps', () => {
imgSnapshotTest(
`treemap-beta
"Main Category"
"This is a very long item name that should wrap to the next line when rendered in the treemap diagram": 50
"Short item": 20
`,
{}
);
});
it('5: should render with a forest theme', () => {
imgSnapshotTest(
`---
config:
theme: forest
---
treemap-beta
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
it('6: should handle multiple levels of nesting', () => {
imgSnapshotTest(
`treemap-beta
"Level 1"
"Level 2A"
"Level 3A": 10
"Level 3B": 15
"Level 2B"
"Level 3C": 20
"Level 3D"
"Level 4A": 5
"Level 4B": 5
`,
{}
);
});
it('7: should handle classDef with multiple styles', () => {
imgSnapshotTest(
`treemap-beta
"Main"
"A": 20
"B":::important
"B1": 10
"B2": 15
"C": 5:::secondary
classDef important fill:#f96,stroke:#333,stroke-width:2px;
classDef secondary fill:#6cf,stroke:#333,stroke-dasharray:5 5;
`,
{}
);
});
it('8: should handle dollar value formatting with thousands separator', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: "$0,0"
---
treemap
"Budget"
"Operations"
"Salaries": 700000
"Equipment": 200000
"Supplies": 100000
"Marketing"
"Advertising": 400000
"Events": 100000
`,
{}
);
});
it('8a: should handle percentage formatting', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: ".1%"
---
treemap-beta
"Market Share"
"Company A": 0.35
"Company B": 0.25
"Company C": 0.15
"Others": 0.25
`,
{}
);
});
it('8b: should handle decimal formatting', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: ".2f"
---
treemap-beta
"Metrics"
"Conversion Rate": 0.0567
"Bounce Rate": 0.6723
"Click-through Rate": 0.1289
"Engagement": 0.4521
`,
{}
);
});
it('8c: should handle dollar sign with decimal places', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: "$.2f"
---
treemap-beta
"Product Prices"
"Basic": 19.99
"Standard": 49.99
"Premium": 99.99
"Enterprise": 199.99
`,
{}
);
});
it('8d: should handle dollar sign with thousands separator and decimal places', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: "$,.2f"
---
treemap-beta
"Revenue"
"Q1": 1250345.75
"Q2": 1645789.25
"Q3": 1845123.50
"Q4": 2145678.75
`,
{}
);
});
it('8e: should handle simple thousands separator', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: ","
---
treemap-beta
"User Counts"
"Active Users": 1250345
"New Signups": 45789
"Churned": 12350
"Converted": 78975
`,
{}
);
});
it('8f: should handle valueFormat set via directive with dollar and thousands separator', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: "$,.0f"
---
treemap-beta
"Sales by Region"
"North": 1234567
"South": 7654321
"East": 4567890
"West": 9876543
`,
{}
);
});
it('8g: should handle scientific notation format', () => {
imgSnapshotTest(
`---
config:
treemap:
valueFormat: ".2e"
---
treemap-beta
"Scientific Values"
"Value 1": 1234567
"Value 2": 0.0000123
"Value 3": 1000000000
`,
{}
);
});
it('9: should handle a complex example with multiple features', () => {
imgSnapshotTest(
`---
config:
theme: dark
treemap:
valueFormat: "$0,0"
---
treemap-beta
"Company Budget"
"Engineering":::engineering
"Frontend": 300000
"Backend": 400000
"DevOps": 200000
"Marketing":::marketing
"Digital": 250000
"Print": 100000
"Events": 150000
"Sales":::sales
"Direct": 500000
"Channel": 300000
classDef engineering fill:#6b9bc3,stroke:#333;
classDef marketing fill:#c36b9b,stroke:#333;
classDef sales fill:#c3a66b,stroke:#333;
`,
{}
);
});
it('10: should render the example from documentation', () => {
imgSnapshotTest(
`
treemap-beta
"Section 1"
"Leaf 1.1": 12
"Section 1.2":::class1
"Leaf 1.2.1": 12
"Section 2"
"Leaf 2.1": 20:::class1
"Leaf 2.2": 25
"Leaf 2.3": 12
classDef class1 fill:red,color:blue,stroke:#FFD600;
`,
{}
);
});
it('11: should handle comments', () => {
imgSnapshotTest(
`
treemap-beta
%% This is a comment
"Category A"
"Item A1": 10
"Item A2": 20
%% Another comment
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
/*
it.skip('12: should render a treemap with title', () => {
imgSnapshotTest(
`
treemap-beta
title Treemap with Title
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
it.skip('13: should render a treemap with accessibility attributes', () => {
imgSnapshotTest(
`
treemap-beta
accTitle: Accessible Treemap Title
accDescr: This is a description of the treemap for accessibility purposes
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
it.skip('14: should render a treemap with title and accessibility attributes', () => {
imgSnapshotTest(
`
treemap
title Treemap with Title and Accessibility
accTitle: Accessible Treemap Title
accDescr: This is a description of the treemap for accessibility purposes
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
`,
{}
);
});
*/
});

View File

@@ -179,6 +179,7 @@ describe('XY Chart', () => {
axisLineWidth: 5
chartOrientation: horizontal
plotReservedSpacePercent: 60
showDataLabel: true
---
xychart-beta
title "Sales Revenue"
@@ -315,4 +316,516 @@ describe('XY Chart', () => {
);
cy.get('svg');
});
it('should render vertical bar chart with labels', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
`,
{}
);
});
it('should render horizontal bar chart with labels', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
`,
{}
);
});
it('should render vertical bar chart without labels by default', () => {
imgSnapshotTest(
`
xychart-beta
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
`,
{}
);
});
it('should render horizontal bar chart without labels by default', () => {
imgSnapshotTest(
`
---
config:
xyChart:
chartOrientation: horizontal
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]
y-axis "Revenue (in $)" 4000 --> 11000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]
`,
{}
);
});
it('should render multiple bar plots vertically with labels correctly', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Multiple Bar Plots"
x-axis Categories [A, B, C]
y-axis "Values" 0 --> 100
bar [10, 50, 90]
`,
{}
);
});
it('should render multiple bar plots horizontally with labels correctly', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Multiple Bar Plots"
x-axis Categories [A, B, C]
y-axis "Values" 0 --> 100
bar [10, 50, 90]
`,
{}
);
});
it('should render a single bar with label for a vertical xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Single Bar Chart"
x-axis Categories [A]
y-axis "Value" 0 --> 100
bar [75]
`,
{}
);
});
it('should render a single bar with label for a horizontal xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Single Bar Chart"
x-axis Categories [A]
y-axis "Value" 0 --> 100
bar [75]
`,
{}
);
});
it('should render negative and decimal values with correct labels for vertical xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Decimal and Negative Values"
x-axis Categories [A, B, C]
y-axis -10 --> 10
bar [ -2.5, 0.75, 5.1 ]
`,
{}
);
});
it('should render negative and decimal values with correct labels for horizontal xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Decimal and Negative Values"
x-axis Categories [A, B, C]
y-axis -10 --> 10
bar [ -2.5, 0.75, 5.1 ]
`,
{}
);
});
it('should render data labels within each bar in the vertical xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan,b,c]
y-axis "Revenue (in $)" 4000 --> 12000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000, 3000, 2000, 500, 2000, 3000, 11000, 5000, 6000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
// Check horizontal alignment (within tolerance)
expect(textProps.x + textProps.width / 2).to.be.closeTo(
barProps.x + barProps.width / 2,
5
);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
});
});
});
});
it('should render data labels within each bar in the horizontal xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan,b,c]
y-axis "Revenue (in $)" 4000 --> 12000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000, 3000, 2000, 500, 2000, 3000, 11000, 5000, 6000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
expect(textProps.y + textProps.height / 2).to.be.closeTo(
barProps.y + barProps.height / 2,
5
);
});
});
});
});
it('should render data labels within each bar in the vertical xy-chart with a lot of bars of different sizes', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s]
y-axis "Revenue (in $)" 4000 --> 12000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000, 8000, 10000, 5000, 7600, 4999,11000 ,5000,6000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
// Check horizontal alignment (within tolerance)
expect(textProps.x + textProps.width / 2).to.be.closeTo(
barProps.x + barProps.width / 2,
5
);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
});
});
});
});
it('should render data labels within each bar in the horizontal xy-chart with a lot of bars of different sizes', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s]
y-axis "Revenue (in $)" 4000 --> 12000
bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000, 8000, 10000, 5000, 7600, 4999,11000 ,5000,6000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
expect(textProps.y + textProps.height / 2).to.be.closeTo(
barProps.y + barProps.height / 2,
5
);
});
});
});
});
it('should render data labels correctly for a bar in the vertical xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan]
y-axis "Revenue (in $)" 3000 --> 12000
bar [4000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
// Check horizontal alignment (within tolerance)
expect(textProps.x + textProps.width / 2).to.be.closeTo(
barProps.x + barProps.width / 2,
5
);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
});
});
});
});
it('should render data labels correctly for a bar in the horizontal xy-chart', () => {
imgSnapshotTest(
`
---
config:
xyChart:
showDataLabel: true
chartOrientation: horizontal
---
xychart-beta
title "Sales Revenue"
x-axis Months [jan]
y-axis "Revenue (in $)" 3000 --> 12000
bar [4000]
`,
{}
);
cy.get('g.bar-plot-0').within(() => {
cy.get('rect').each(($rect, index) => {
// Extract bar properties
const barProps = {
x: parseFloat($rect.attr('x')),
y: parseFloat($rect.attr('y')),
width: parseFloat($rect.attr('width')),
height: parseFloat($rect.attr('height')),
};
// Get the text element corresponding to this bar by index.
cy.get('text')
.eq(index)
.then(($text) => {
const bbox = $text[0].getBBox();
const textProps = {
x: bbox.x,
y: bbox.y,
width: bbox.width,
height: bbox.height,
};
// Verify that the text label is positioned within the boundaries of the bar.
expect(textProps.x).to.be.greaterThan(barProps.x);
expect(textProps.x + textProps.width).to.be.lessThan(barProps.x + barProps.width);
expect(textProps.y).to.be.greaterThan(barProps.y);
expect(textProps.y + textProps.height).to.be.lessThan(barProps.y + barProps.height);
expect(textProps.y + textProps.height / 2).to.be.closeTo(
barProps.y + barProps.height / 2,
5
);
});
});
});
});
});

View File

@@ -60,7 +60,7 @@
<pre id="diagram" class="mermaid2">
timeline
title My day
section section with no tasks
section Section with no tasks
section Go to work at the dog office
1930 : first step : second step is a long step
: third step
@@ -70,18 +70,18 @@
1960 : India fights poverty, looses war to China and gets nuclear weapons from USA and USSR
1970 : Green Revolution comes to india
section Another section with no tasks
I am a big big big tasks
I am not so big tasks
I am a very, very big task
I am not so big task
</pre>
<pre id="diagram" class="mermaid">
timeline
title MermaidChart 2023 Timeline
section 2023 Q1 <br> Release Personal Tier
Buttet 1 : sub-point 1a : sub-point 1b
Bullet 1 : sub-point 1a : sub-point 1b
: sub-point 1c
Bullet 2 : sub-point 2a : sub-point 2b
section 2023 Q2 <br> Release XYZ Tier
Buttet 3 : sub-point <br> 3a : sub-point 3b
Bullet 3 : sub-point <br> 3a : sub-point 3b
: sub-point 3c
Bullet 4 : sub-point 4a : sub-point 4b
@@ -93,7 +93,7 @@
section Stone Age
7600 BC : Britain's oldest known house was built in Orkney, Scotland
6000 BC : Sea levels rise and Britain becomes an island. The people who live here are hunter-gatherers.
section Broze Age
section Bronze Age
2300 BC : People arrive from Europe and settle in Britain. They bring farming and metalworking.
: New styles of pottery and ways of burying the dead appear.
2200 BC : The last major building works are completed at Stonehenge. People now bury their dead in stone circles.
@@ -106,7 +106,7 @@
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google : Pixar
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008s : Instagram
@@ -122,7 +122,7 @@
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google : Pixar
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008s : Instagram
@@ -139,7 +139,7 @@
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008 : Instagram
@@ -152,7 +152,7 @@
title History of Social Media Platform
2002 : LinkedIn
2004 : Facebook : Google
2005 : Youtube
2005 : YouTube
2006 : Twitter
2007 : Tumblr
2008s : Instagram

View File

@@ -37,7 +37,7 @@
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
+withdrawal(amount) int
}
cssClass "BankAccount" customCss
@@ -56,7 +56,7 @@ classE o-- classF : aggregation
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
+withdrawal(amount) int
}
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~

View File

@@ -77,7 +77,7 @@
document.getElementsByTagName('body')[0].appendChild(div);
}
mermaid.initialize({ startOnLoad: true, securityLevel: 'strct', logLevel: 1 });
mermaid.initialize({ startOnLoad: true, securityLevel: 'strict_', logLevel: 1 });
</script>
</body>
</html>

View File

@@ -31,7 +31,7 @@
flowchart BT subgraph S1 sub1 -->sub2 end subgraph S2 sub4 end S1 --> S2 sub1 --> sub4
</div>
<div class="mermaid2" style="width: 50%; height: 200px">
sequenceDiagram Alice->>Bob:Extremely utterly long line of longness which had preivously
sequenceDiagram Alice->>Bob:Extremely utterly long line of longness which had previously
overflown the actor box as it is much longer than what it should be Bob->>Alice: I'm short
though
</div>
@@ -61,9 +61,9 @@
#quot;elit#quot;."}}
</div>
<div class="mermaid2" style="width: 50%; height: 50%">
flowchart TB internet nat routeur lb1 lb2 compute1 compute2 subgraph project routeur nat
subgraph subnet1 compute1 lb1 end subgraph subnet2 compute2 lb2 end end internet --> routeur
routeur --> subnet1 & subnet2 subnet1 & subnet2 --> nat --> internet
flowchart TB internet nat router lb1 lb2 compute1 compute2 subgraph project router nat
subgraph subnet1 compute1 lb1 end subgraph subnet2 compute2 lb2 end end internet --> router
router --> subnet1 & subnet2 subnet1 & subnet2 --> nat --> internet
</div>
<div class="mermaid2" style="width: 50%; height: 50%">
flowchart TD subgraph one[One] subgraph sub_one[Sub One] _sub_one end end subgraph two[Two]

View File

@@ -7,7 +7,7 @@
rel="stylesheet"
/>
<style>
svg {
svg:not(svg svg) {
border: 2px solid darkred;
}
.exClass2 > rect,

View File

@@ -38,7 +38,7 @@
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
+withdrawal(amount) int
}
cssClass "BankAccount" customCss
</pre>

View File

@@ -32,8 +32,26 @@
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
rel="stylesheet"
/>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Recursive:wght@300..1000&display=swap"
rel="stylesheet"
/>
<style>
.recursive-mermaid {
font-family: 'Recursive', sans-serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
font-variation-settings:
'slnt' 0,
'CASL' 0,
'CRSV' 0.5,
'MONO' 0;
}
body {
/* background: rgb(221, 208, 208); */
/* background: #333; */
@@ -45,7 +63,9 @@
h1 {
color: grey;
}
.mermaid {
border: 1px solid red;
}
.mermaid2 {
display: none;
}
@@ -83,6 +103,11 @@
width: 100%;
}
.class2 {
fill: red;
fill-opacity: 1;
}
/* tspan {
font-size: 6px !important;
} */
@@ -106,19 +131,63 @@
<body>
<pre id="diagram4" class="mermaid">
treemap
"Section 1"
"Leaf 1.1": 12
"Section 1.2":::class1
"Leaf 1.2.1": 12
"Section 2"
"Leaf 2.1": 20:::class1
"Leaf 2.2": 25
"Leaf 2.3": 12
classDef class1 fill:red,color:blue,stroke:#FFD600;
</pre
>
<pre id="diagram4" class="mermaid2">
---
config:
treemap:
valueFormat: '$0,0'
---
treemap
"Budget"
"Operations"
"Salaries": 7000
"Equipment": 2000
"Supplies": 1000
"Marketing"
"Advertising": 4000
"Events": 1000
</pre
>
<pre id="diagram4" class="mermaid">
treemap
title Accessible Treemap Title
"Category A"
"Item A1": 10
"Item A2": 20
"Category B"
"Item B1": 15
"Item B2": 25
</pre>
<pre id="diagram4" class="mermaid2">
flowchart LR
AB["apa@apa@"] --> B(("`apa@apa`"))
</pre>
<pre id="diagram4" class="mermaid">
<pre id="diagram4" class="mermaid2">
flowchart
D(("for D"))
</pre>
<pre id="diagram4" class="mermaid">
<pre id="diagram4" class="mermaid2">
flowchart LR
A e1@==> B
e1@{ animate: true}
</pre>
<pre id="diagram4" class="mermaid">
<pre id="diagram4" class="mermaid2">
flowchart LR
A e1@--> B
classDef animate stroke-width:2,stroke-dasharray:10\,8,stroke-dashoffset:-180,animation: edge-animation-frame 6s linear infinite, stroke-linecap: round
@@ -386,7 +455,7 @@ kanban
[Create Documentation]
docs[Create Blog about the new diagram]
id7[In progress]
id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.]
id6[Create renderer so that it works in all cases. We also add some extra text here for testing purposes. And some more just for the extra flare.]
id9[Ready for deploy]
id8[Design grammar]@{ assigned: 'knsv' }
id10[Ready for test]
@@ -438,7 +507,7 @@ kanban
alert('It worked');
}
await mermaid.initialize({
// theme: 'base',
// theme: 'forest',
// theme: 'default',
// theme: 'forest',
// handDrawnSeed: 12,
@@ -449,11 +518,7 @@ kanban
// layout: 'fixed',
// htmlLabels: false,
flowchart: { titleTopMargin: 10 },
// fontFamily: 'Caveat',
// fontFamily: 'Kalam',
// fontFamily: 'courier',
fontFamily: 'arial',
fontFamily: "'Recursive', sans-serif",
sequence: {
actorFontFamily: 'courier',
noteFontFamily: 'courier',

View File

@@ -14,12 +14,28 @@ function markRendered() {
}
}
function loadFontAwesomeCSS() {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css';
document.head.appendChild(link);
return new Promise((resolve, reject) => {
link.onload = resolve;
link.onerror = () => reject(new Error('Failed to load FontAwesome'));
});
}
/**
* ##contentLoaded Callback function that is called when page is loaded. This functions fetches
* configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
* page.
*/
const contentLoaded = async function () {
await loadFontAwesomeCSS();
await Promise.all(Array.from(document.fonts, (font) => font.load()));
let pos = document.location.href.indexOf('?graph=');
if (pos > 0) {
pos = pos + 7;
@@ -50,8 +66,13 @@ const contentLoaded = async function () {
mermaid.registerLayoutLoaders(layouts);
mermaid.initialize(graphObj.mermaid);
/**
* CC-BY-4.0
* Copyright (c) Fonticons, Inc. - https://fontawesome.com/license/free
* https://fontawesome.com/icons/bell?f=classic&s=regular
*/
const staticBellIconPack = {
prefix: 'fa6-regular',
prefix: 'fa',
icons: {
bell: {
body: '<path fill="currentColor" d="M224 0c-17.7 0-32 14.3-32 32v19.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416h400c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6c-28.3-35.5-43.8-79.6-43.8-125V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32m0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3c25.8-40 39.7-86.7 39.7-134.6V208c0-61.9 50.1-112 112-112m64 352H160c0 17 6.7 33.3 18.7 45.3S207 512 224 512s33.3-6.7 45.3-18.7S288 465 288 448"/>',

View File

@@ -105,7 +105,7 @@
let diagram = 'graph LR\n';
diagram += " B(<a href='<";
diagram += 'script></';
diagram += "script>Javascript:xssAttack`1`'>Click)";
diagram += "script>JavaScript:xssAttack`1`'>Click)";
// diagram += "script\u003aalert\u0028document.domain\u0029\` src=x>\"\);\n";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;

View File

@@ -50,7 +50,7 @@
setPoints(List~int~ points)
getPoints() List~int~
}
Square : -List~string~ messages
Square : +setMessages(List~string~ messages)
Square : +getMessages() List~string~
@@ -88,7 +88,7 @@
---
classDiagram
class Duck {
}
</pre>
</div>
@@ -127,8 +127,8 @@
-attribute:type
- attribute : type
test
+ GetAttribute() type
+ GetAttribute() type
+ GetAttribute() type
}
</pre>
@@ -449,7 +449,7 @@
---
config:
theme: forest
look: handDrawns
look: handDrawn
layout: elk
---
classDiagram

View File

@@ -41,7 +41,7 @@
CAR:::someclass
PERSON:::anotherclass,someclass
classDef someclass fill:#f96
classDef anotherclass color:blue
</pre>
@@ -90,7 +90,7 @@
erDiagram
CAR ||--o{ NAMED-DRIVER : allows
CAR {
test test PK "comment"
text text PK "comment"
string make
string model
string[] parts
@@ -108,7 +108,7 @@
string carRegistrationNumber PK, FK
string driverLicence PK, FK
}
MANUFACTURER only one to zero or more CAR : makes
MANUFACTURER only one to zero or more CAR : makes
</pre>
</div>
<div class="test">
@@ -129,7 +129,7 @@
string email
}
p ||--o| a : has
</pre>
</div>
<div class="test">

View File

@@ -2,151 +2,219 @@
"durations": [
{
"spec": "cypress/integration/other/configuration.spec.js",
"duration": 4989
"duration": 5659
},
{
"spec": "cypress/integration/other/external-diagrams.spec.js",
"duration": 1382
"duration": 2015
},
{
"spec": "cypress/integration/other/ghsa.spec.js",
"duration": 3178
"duration": 3195
},
{
"spec": "cypress/integration/other/iife.spec.js",
"duration": 1372
"duration": 1976
},
{
"spec": "cypress/integration/other/interaction.spec.js",
"duration": 8998
"duration": 11149
},
{
"spec": "cypress/integration/other/rerender.spec.js",
"duration": 1249
"duration": 1910
},
{
"spec": "cypress/integration/other/xss.spec.js",
"duration": 25664
"duration": 26998
},
{
"spec": "cypress/integration/rendering/appli.spec.js",
"duration": 1928
"duration": 3176
},
{
"spec": "cypress/integration/rendering/architecture.spec.ts",
"duration": 2330
"duration": 110
},
{
"spec": "cypress/integration/rendering/block.spec.js",
"duration": 11156
"duration": 16265
},
{
"spec": "cypress/integration/rendering/c4.spec.js",
"duration": 3418
"duration": 5431
},
{
"spec": "cypress/integration/rendering/classDiagram-elk-v3.spec.js",
"duration": 38025
},
{
"spec": "cypress/integration/rendering/classDiagram-handDrawn-v3.spec.js",
"duration": 36179
},
{
"spec": "cypress/integration/rendering/classDiagram-v2.spec.js",
"duration": 14866
"duration": 22386
},
{
"spec": "cypress/integration/rendering/classDiagram-v3.spec.js",
"duration": 35378
},
{
"spec": "cypress/integration/rendering/classDiagram.spec.js",
"duration": 9894
"duration": 14967
},
{
"spec": "cypress/integration/rendering/conf-and-directives.spec.js",
"duration": 5778
"duration": 9140
},
{
"spec": "cypress/integration/rendering/current.spec.js",
"duration": 1690
"duration": 2652
},
{
"spec": "cypress/integration/rendering/erDiagram-unified.spec.js",
"duration": 82257
},
{
"spec": "cypress/integration/rendering/erDiagram.spec.js",
"duration": 9144
"duration": 14138
},
{
"spec": "cypress/integration/rendering/errorDiagram.spec.js",
"duration": 1951
"duration": 3718
},
{
"spec": "cypress/integration/rendering/flowchart-elk.spec.js",
"duration": 2196
"duration": 39683
},
{
"spec": "cypress/integration/rendering/flowchart-handDrawn.spec.js",
"duration": 21029
"duration": 28676
},
{
"spec": "cypress/integration/rendering/flowchart-icon.spec.js",
"duration": 7080
},
{
"spec": "cypress/integration/rendering/flowchart-shape-alias.spec.ts",
"duration": 16087
"duration": 23175
},
{
"spec": "cypress/integration/rendering/flowchart-v2.spec.js",
"duration": 27465
"duration": 40846
},
{
"spec": "cypress/integration/rendering/flowchart.spec.js",
"duration": 20035
"duration": 29743
},
{
"spec": "cypress/integration/rendering/gantt.spec.js",
"duration": 11366
"duration": 17352
},
{
"spec": "cypress/integration/rendering/gitGraph.spec.js",
"duration": 34025
"duration": 48514
},
{
"spec": "cypress/integration/rendering/iconShape.spec.ts",
"duration": 185902
"duration": 262422
},
{
"spec": "cypress/integration/rendering/imageShape.spec.ts",
"duration": 41631
"duration": 54513
},
{
"spec": "cypress/integration/rendering/info.spec.ts",
"duration": 1736
"duration": 3025
},
{
"spec": "cypress/integration/rendering/journey.spec.js",
"duration": 2247
"duration": 6994
},
{
"spec": "cypress/integration/rendering/kanban.spec.ts",
"duration": 7346
},
{
"spec": "cypress/integration/rendering/katex.spec.js",
"duration": 2144
"duration": 3642
},
{
"spec": "cypress/integration/rendering/marker_unique_id.spec.js",
"duration": 1646
"duration": 2464
},
{
"spec": "cypress/integration/rendering/mindmap.spec.ts",
"duration": 6406
"duration": 10882
},
{
"spec": "cypress/integration/rendering/newShapes.spec.ts",
"duration": 107219
"duration": 142092
},
{
"spec": "cypress/integration/rendering/oldShapes.spec.ts",
"duration": 109340
},
{
"spec": "cypress/integration/rendering/packet.spec.ts",
"duration": 4167
},
{
"spec": "cypress/integration/rendering/pie.spec.ts",
"duration": 5736
},
{
"spec": "cypress/integration/rendering/quadrantChart.spec.js",
"duration": 8628
},
{
"spec": "cypress/integration/rendering/radar.spec.js",
"duration": 5311
},
{
"spec": "cypress/integration/rendering/requirement.spec.js",
"duration": 2619
},
{
"spec": "cypress/integration/rendering/requirementDiagram-unified.spec.js",
"duration": 50640
},
{
"spec": "cypress/integration/rendering/sankey.spec.ts",
"duration": 6735
},
{
"spec": "cypress/integration/rendering/sequencediagram.spec.js",
"duration": 34777
},
{
"spec": "cypress/integration/rendering/stateDiagram-v2.spec.js",
"duration": 24440
},
{
"spec": "cypress/integration/rendering/stateDiagram.spec.js",
"duration": 15834
"duration": 15476
},
{
"spec": "cypress/integration/rendering/theme.spec.js",
"duration": 33240
"duration": 27932
},
{
"spec": "cypress/integration/rendering/timeline.spec.ts",
"duration": 7122
"duration": 8162
},
{
"spec": "cypress/integration/rendering/treemap.spec.ts",
"duration": 11763
},
{
"spec": "cypress/integration/rendering/xyChart.spec.js",
"duration": 11127
"duration": 19759
},
{
"spec": "cypress/integration/rendering/zenuml.spec.js",
"duration": 2391
"duration": 3316
}
]
}

View File

@@ -110,7 +110,7 @@
title Component diagram for Internet Banking System - API Application
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile device.")
ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")

View File

@@ -148,7 +148,7 @@
<pre class="mermaid">
classDiagram
class Person {
+Id : Guid
+ID : Guid
+FirstName : string
+LastName : string
-privateProperty : string
@@ -218,10 +218,10 @@
+double side
}
}
Shape <|-- Circle
Shape <|-- Square
namespace Vehicles {
class Vehicle {
+String brand
@@ -233,12 +233,12 @@
+boolean hasGears
}
}
Vehicle <|-- Car
Vehicle <|-- Bike
Car --> Circle : "Logo Shape"
Bike --> Square : "Logo Shape"
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';

222
demos/er-multiline.html Normal file
View File

@@ -0,0 +1,222 @@
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet" />
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
/>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Rubik+Mono+One&display=swap"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css2?family=Recursive:wght@300..1000&display=swap"
rel="stylesheet"
/>
<style>
.recursive-500 {
font-family: 'Recursive', serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
font-variation-settings:
'slnt' 0,
'CASL' 0,
'CRSV' 0.5,
'MONO' 0;
}
body {
/* background: rgb(221, 208, 208); */
/* background: #333; */
/* font-family: 'Arial'; */
font-family: 'Recursive', serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
font-variation-settings:
'slnt' 0,
'CASL' 0,
'CRSV' 0.5,
'MONO' 0;
/* color: white; */
/* font-size: 18px !important; */
}
.gridify.tiny {
background-image:
linear-gradient(transparent 11px, rgba(220, 220, 200, 0.8) 12px, transparent 12px),
linear-gradient(90deg, transparent 11px, rgba(220, 220, 200, 0.8) 12px, transparent 12px);
background-size:
100% 12px,
12px 100%;
}
.gridify.dots {
background-image: radial-gradient(
circle at center,
rgba(220, 220, 200, 0.8) 1px,
transparent 1px
);
background-size: 24px 24px;
}
h1 {
color: grey;
}
.mermaid2 {
display: none;
}
.mermaid svg {
font-size: 16px !important;
font-family: 'Recursive', serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
font-variation-settings:
'slnt' 0,
'CASL' 0,
'CRSV' 0.5,
'MONO' 0;
}
pre {
width: 100%;
/*box-shadow: 4px 4px 0px 0px #0000000F;*/
}
</style>
</head>
<body class="gridify dots">
<div class="w-full h-64">
<pre id="diagram4" class="mermaid" style="background: rgb(255, 255, 255)">
erDiagram
CAR ||--o{ NAMED-DRIVER : allows
CAR ::: Pine {
string registrationNumber PK "Primary Key<br><strong>Unique registration number</strong>"
string make "Car make<br><strong>e.g., Toyota</strong>"
string model "Model of the car<br><strong>e.g., Corolla</strong>"
string[] parts "List of parts<br><strong>Stored as array</strong>"
}
PERSON ||--o{ NAMED-DRIVER : is
PERSON ::: someclass {
string driversLicense PK "The license #<br><strong>Primary Key</strong>"
string(99) firstName "Only 99 characters <br>are allowed <br> <strong>e.g., Smith</strong>"
string lastName "Last name of person<br><strong>e.g., Smith</strong>"
string phone UK "Unique phone number<br><strong>Used for contact</strong>"
int age "Age of the person<br><strong>Must be numeric</strong>"
}
NAMED-DRIVER {
string carRegistrationNumber PK, FK, UK, PK "Foreign key to CAR<br><strong>Also part of PK</strong>"
string driverLicence PK, FK "Foreign key to PERSON<br><strong>Also part of PK</strong>"
}
MANUFACTURER only one to zero or more CAR : makesx
</pre>
<hr />
<pre class="mermaid">
erDiagram
_**testẽζØ😀㌕ぼ**_ {
*__List~List~int~~sdfds__* **driversLicense** PK "***The l😀icense #***"
string last*Name*
string __phone__ UK
*string(99)~T~~~~~~* firstName "Only __99__ <br>characters are a<br>llowed dsfsdfsdfsdfs"
int _age_
}
</pre>
</div>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import layouts from './mermaid-layout-elk.esm.mjs';
const staticBellIconPack = {
prefix: 'fa6-regular',
icons: {
bell: {
body: '<path fill="currentColor" d="M224 0c-17.7 0-32 14.3-32 32v19.2C119 66 64 130.6 64 208v25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416h400c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6c-28.3-35.5-43.8-79.6-43.8-125V208c0-77.4-55-142-128-156.8V32c0-17.7-14.3-32-32-32m0 96c61.9 0 112 50.1 112 112v25.4c0 47.9 13.9 94.6 39.7 134.6H72.3c25.8-40 39.7-86.7 39.7-134.6V208c0-61.9 50.1-112 112-112m64 352H160c0 17 6.7 33.3 18.7 45.3S207 512 224 512s33.3-6.7 45.3-18.7S288 465 288 448"/>',
width: 448,
},
},
width: 512,
height: 512,
};
mermaid.registerIconPacks([
{
name: 'logos',
loader: () =>
fetch('https://unpkg.com/@iconify-json/logos@1/icons.json').then((res) => res.json()),
},
{
name: 'fa',
loader: () => staticBellIconPack,
},
]);
mermaid.registerLayoutLoaders(layouts);
mermaid.parseError = function (err, hash) {
console.error('Mermaid error: ', err);
};
window.callback = function () {
alert('A callback was triggered');
};
function callback() {
alert('It worked');
}
await mermaid.initialize({
startOnLoad: false,
theme: 'forest',
look: 'classic',
layout: 'dagre',
// theme: 'default',
// look: 'classic',
flowchart: { titleTopMargin: 10 },
fontFamily: 'Recursive',
sequence: {
actorFontFamily: 'courier',
noteFontFamily: 'courier',
messageFontFamily: 'courier',
},
kanban: {
htmlLabels: false,
},
fontSize: 16,
logLevel: 0,
securityLevel: 'loose',
callback,
});
// setTimeout(() => {
mermaid.init(undefined, document.querySelectorAll('.mermaid'));
// }, 1000);
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>

View File

@@ -91,6 +91,9 @@
<li>
<h2><a href="./architecture.html">Architecture</a></h2>
</li>
<li>
<h2><a href="./radar.html">Radar</a></h2>
</li>
</ul>
</body>
</html>

View File

@@ -22,7 +22,7 @@
y-axis Not Important --> important
quadrant-1 Plan
quadrant-2 Do
quadrant-3 Deligate
quadrant-3 Delegate
quadrant-4 Delete
</pre>

157
demos/radar.html Normal file
View File

@@ -0,0 +1,157 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Radar diagram demo</h1>
<div class="diagrams">
<pre class="mermaid">
radar-beta
title My favorite ninjas
axis Agility, Speed, Strength
axis Stam["Stamina"] , Intel["Intelligence"]
curve Ninja1["Naruto"]{
Agility 2, Speed 2,
Strength 3, Stam 5,
Intel 0
}
curve Ninja2["Sasuke"]{2, 3, 4, 1, 5}
curve Ninja3["Ninja"] {3, 2, 1, 5, 4}
showLegend true
ticks 3
max 8
min 0
graticule circle
</pre
>
<pre class="mermaid">
---
config:
radar:
axisScaleFactor: 0.25
axisLabelFactor: 0.95
---
radar-beta
title DevOps Radar
axis f["Feature Velocity"], s["Stability"]
axis r["Resilience"], e["Efficiency"]
axis c["Cost"], d["DevSecOps"]
curve app1["App1"]{
f 5, s 4.5, r 3.8, d 4.2, e 4.5, c 3.5
}
curve app2["App2"]{4, 3, 4, 3, 3, 4}, app3["App3"]{3, 2, 4, 3, 2, 3}
curve app4["App4"]{2, 1, 3.2, 2.5, 1, 2}
showLegend true
ticks 3
max 5
graticule polygon
</pre
>
<pre class="mermaid">
%%{init: {'theme': 'forest'} }%%
radar-beta
title Forest theme
axis Agility, Speed, Strength
axis Stam["Stamina"] , Intel["Intelligence"]
curve Ninja1["Naruto"]{
Agility 2, Speed 2,
Strength 3, Stam 5,
Intel 0
}
curve Ninja2["Sasuke"]{2, 3, 4, 1, 5}
curve Ninja3["Ninja"] {3, 2, 1, 5, 4}
</pre
>
<pre class="mermaid" style="background-color: black">
%%{init: {'theme': 'dark'} }%%
radar-beta
title Dark theme
axis Agility, Speed, Strength
axis Stam["Stamina"] , Intel["Intelligence"]
curve Ninja1["Naruto"]{
Agility 2, Speed 2,
Strength 3, Stam 5,
Intel 0
}
curve Ninja2["Sasuke"]{2, 3, 4, 1, 5}
curve Ninja3["Ninja"] {3, 2, 1, 5, 4}
</pre
>
<pre class="mermaid">
%%{init: {'theme': 'base', 'themeVariables': {'cScale0': '#ff0000', 'cScale1': '#00ff00', 'cScale2': '#0000ff'}} }%%
radar-beta
title Custom colors
axis Agility, Speed, Strength
axis Stam["Stamina"] , Intel["Intelligence"]
curve Ninja1["Naruto"]{
Agility 2, Speed 2,
Strength 3, Stam 5,
Intel 0
}
curve Ninja2["Sasuke"]{2, 3, 4, 1, 5}
curve Ninja3["Ninja"] {3, 2, 1, 5, 4}
</pre
>
<pre class="mermaid">
---
config:
radar:
axisScaleFactor: 0.25
curveTension: 0.1
theme: base
themeVariables:
cScale0: "#FF0000"
cScale1: "#00FF00"
cScale2: "#0000FF"
radar:
curveOpacity: 0
---
radar-beta
title Custom colors, axisScaleFactor, curveTension, opacity
axis A, B, C, D, E
curve c1{1,2,3,4,5}
curve c2{5,4,3,2,1}
curve c3{3,3,3,3,3}
</pre>
</div>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
logLevel: 3,
securityLevel: 'loose',
});
</script>
<style>
.diagrams {
display: flex;
flex-wrap: wrap;
}
pre {
width: 45vw;
padding: 2em;
}
</style>
</body>
</html>

View File

@@ -23,6 +23,23 @@
1940 : fourth step : fifth step
</pre>
<h2>Medical Device Lifecycle Timeline</h2>
<pre class="mermaid">
timeline
title Medical Device Lifecycle
section Planning
Quality Management System (4) : Regulatory Compliance (4.1) : Risk Management (4.1.3) : Management Review (5.6) : Infrastructure (6.3)
Management Responsibility (5) : Planning Activities (5.2) : Human Resources (6.2) : RnD Planning (7.3.2) : Purchasing Process (7.4.1) : Production Activities (7.5.1) : Installation Activities (7.5.3) : Servicing Activities (7.5.4)
section Realization
Research and Development (7.3) : Inputs (7.3.3) : Outputs (7.3.4) : Review (7.3.5) : Verification (7.3.6) : Validation (7.3.7)
Purchasing (7.4) : Purchasing Information (7.4.2) : Production Feedback (8.2.1)
Production (7.5) : Production Feedback (8.2.1)
Installation (7.5.3) : Installation Activities (7.5.3)
Servicing (7.5.4) : Servicing Activities (7.5.4)
section Post-Production
Post-Market Activities (8) : Feedback (8.2.1) : Complaints (8.2.2) : Adverse Events (8.2.3)
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({

75
demos/treemap.html Normal file
View File

@@ -0,0 +1,75 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Mermaid Treemap Diagram Demo</title>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
body {
font-family: 'Montserrat', sans-serif;
margin: 0 auto;
max-width: 900px;
padding: 20px;
}
.mermaid {
margin: 30px 0;
}
h1,
h2 {
color: #333;
}
pre {
background-color: #f5f5f5;
padding: 15px;
border-radius: 5px;
}
</style>
</head>
<body>
<h1>Treemap Diagram Demo</h1>
<p>This is a demo of the new treemap diagram type in Mermaid.</p>
<h2>Basic Treemap Example</h2>
<pre class="mermaid">
treemap
"Root"
"Branch 1"
"Leaf 1.1": 10
"Leaf 1.2": 15
"Branch 2"
"Branch 2.1"
"Leaf 2.1.1": 20
"Leaf 2.1.2": 25
"Leaf 2.2": 25
"Leaf 2.3": 30
</pre>
<h2>Technology Stack Treemap Example</h2>
<pre class="mermaid">
treemap
"Technology Stack"
"Frontend"
"React": 35
"CSS": 15
"HTML": 10
"Backend"
"Node.js": 25
"Express": 10
"MongoDB": 15
"DevOps"
"Docker": 10
"Kubernetes": 15
"CI/CD": 5
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
logLevel: 1,
securityLevel: 'loose',
});
</script>
</body>
</html>

View File

@@ -10,16 +10,20 @@
<h1>Zenuml demos</h1>
<pre class="mermaid">
zenuml
title Sync Messages (Design Pattern: Adapter)
@Starter(Client)
Adapter.interfaceMethod() {
translateParameter(parameter)
result = Implementation.implementationMethod()
translateResult()
return translatedResult
}
BookLibService.Borrow(id) {
User = Session.GetUser()
if(User.isActive) {
try {
BookRepository.Update(id, onLoan, User)
receipt = new Receipt(id, dueDate)
} catch (BookNotFoundException) {
ErrorService.onException(BookNotFoundException)
} finally {
Connection.close()
}
}
return receipt
}
</pre>
<pre class="mermaid">
zenuml

View File

@@ -239,6 +239,22 @@ Code is the heart of every software project. We strive to make it better. Who if
The core of Mermaid is located under `packages/mermaid/src`.
### Building Mermaid Locally
**Host**
```bash
pnpm run build
```
**Docker**
```bash
./run build
```
This will build the Mermaid library and the documentation site.
### Running Mermaid Locally
**Host**
@@ -481,14 +497,14 @@ This is a danger alert
### Navigation
If you want to propose changes to how the documentation is _organized_, such as adding a new section or re-arranging or renaming a section, you must update the **sidebar navigation**, which is defined in [the vitepress config](../.vitepress/config.ts). The same goes to **topbar**.
If you want to propose changes to how the documentation is _organized_, such as adding a new section or re-arranging or renaming a section, you must update the **sidebar navigation**, which is defined in [the vitepress config](../.vitepress/config.ts). The same goes for **topbar**.
### Build Docs
The content of `/docs` folder is built with Github Actions.
The content of `/docs` folder is built with GitHub Actions.
> **Warning**
> So as to allow automatic compilation of documentation pages you have to enable Github Actions on your fork first
> So as to allow automatic compilation of documentation pages you have to enable GitHub Actions on your fork first
## Submit your pull request

View File

@@ -22,4 +22,4 @@ This helps the team know the relative interest in something and helps them set p
You have not found anything that already addresses your request, or maybe you have come up with the new idea? Feel free to open a new issue or discussion.
Log in to [GitHub.com](https://www.github.com), and use [GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues). Press \[<https://github.com/mermaid-js/mermaid/issues/new/choose>] issue, select the appropriate template and describe your problem.
Log in to [GitHub.com](https://www.github.com), and use [GitHub issue tracker of the mermaid-js repository](https://github.com/mermaid-js/mermaid/issues). Press [issue, select the appropriate template](https://github.com/mermaid-js/mermaid/issues/new/choose) and describe your problem.

View File

@@ -251,12 +251,12 @@ Here is the HTML generated for the SVG element: _(Note that some of the SVG attr
```
##### Gitgraph
##### GitGraph
```mermaid-example
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
accTitle: My GitGraph Accessibility Title
accDescr: My GitGraph Accessibility Description
commit
commit
@@ -273,8 +273,8 @@ Here is the HTML generated for the SVG element: _(Note that some of the SVG attr
```mermaid
gitGraph
accTitle: My Gitgraph Accessibility Title
accDescr: My Gitgraph Accessibility Description
accTitle: My GitGraph Accessibility Title
accDescr: My GitGraph Accessibility Description
commit
commit

View File

@@ -12,4 +12,4 @@
> `const` **configKeys**: `Set`<`string`>
Defined in: [packages/mermaid/src/defaultConfig.ts:270](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L270)
Defined in: [packages/mermaid/src/defaultConfig.ts:290](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/defaultConfig.ts#L290)

View File

@@ -105,7 +105,7 @@ You can set this attribute to base the seed on a static string.
> `optional` **dompurifyConfig**: `Config`
Defined in: [packages/mermaid/src/config.type.ts:202](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L202)
Defined in: [packages/mermaid/src/config.type.ts:203](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L203)
---
@@ -167,7 +167,7 @@ See <https://developer.mozilla.org/en-US/docs/Web/CSS/font-family>
> `optional` **fontSize**: `number`
Defined in: [packages/mermaid/src/config.type.ts:204](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L204)
Defined in: [packages/mermaid/src/config.type.ts:205](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L205)
---
@@ -280,7 +280,7 @@ Defines which main look to use for the diagram.
> `optional` **markdownAutoWrap**: `boolean`
Defined in: [packages/mermaid/src/config.type.ts:205](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L205)
Defined in: [packages/mermaid/src/config.type.ts:206](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L206)
---
@@ -336,6 +336,14 @@ Defined in: [packages/mermaid/src/config.type.ts:191](https://github.com/mermaid
---
### radar?
> `optional` **radar**: `RadarDiagramConfig`
Defined in: [packages/mermaid/src/config.type.ts:202](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L202)
---
### requirement?
> `optional` **requirement**: `RequirementDiagramConfig`
@@ -404,7 +412,7 @@ Defined in: [packages/mermaid/src/config.type.ts:188](https://github.com/mermaid
> `optional` **suppressErrorRendering**: `boolean`
Defined in: [packages/mermaid/src/config.type.ts:211](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L211)
Defined in: [packages/mermaid/src/config.type.ts:212](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L212)
Suppresses inserting 'Syntax error' diagram in the DOM.
This is useful when you want to control how to handle syntax errors in your application.
@@ -450,7 +458,7 @@ Defined in: [packages/mermaid/src/config.type.ts:186](https://github.com/mermaid
> `optional` **wrap**: `boolean`
Defined in: [packages/mermaid/src/config.type.ts:203](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L203)
Defined in: [packages/mermaid/src/config.type.ts:204](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/config.type.ts#L204)
---

View File

@@ -8,7 +8,7 @@
Dynamic and integrated theme configuration was introduced in Mermaid version 8.7.0.
Themes can now be customized at the site-wide level, or on individual Mermaid diagrams. For site-wide theme customization, the `initialize` call is used. For diagram specific customization, the `init` directive is used.
Themes can now be customized at the site-wide level, or on individual Mermaid diagrams. For site-wide theme customization, the `initialize` call is used. For diagram specific customization, frontmatter config is used.
## Available Themes
@@ -37,30 +37,24 @@ mermaid.initialize({
## Diagram-specific Themes
To customize the theme of an individual diagram, use the `init` directive.
To customize the theme of an individual diagram, use frontmatter config.
Example of `init` directive setting the `theme` to `forest`:
Example of frontmatter config setting the `theme` to `forest`:
```mermaid-example
%%{init: {'theme':'forest'}}%%
---
config:
theme: 'forest'
---
graph TD
a --> b
```
```mermaid
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
```mermaid-example
%%{init: {'theme':'forest'}}%%
graph TD
a --> b
```
```mermaid
%%{init: {'theme':'forest'}}%%
---
config:
theme: 'forest'
---
graph TD
a --> b
```
@@ -69,30 +63,28 @@ Example of `init` directive setting the `theme` to `forest`:
## Customizing Themes with `themeVariables`
To make a custom theme, modify `themeVariables` via `init`.
To make a custom theme, modify `themeVariables` via frontmatter config.
You will need to use the [base](#available-themes) theme as it is the only modifiable theme.
| Parameter | Description | Type | Properties |
| -------------- | ------------------------------------ | ------ | ----------------------------------------------------------------------------------- |
| themeVariables | Modifiable with the `init` directive | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables)) |
| Parameter | Description | Type | Properties |
| -------------- | ---------------------------------- | ------ | ----------------------------------------------------------------------------------- |
| themeVariables | Modifiable with frontmatter config | Object | `primaryColor`, `primaryTextColor`, `lineColor` ([see full list](#theme-variables)) |
Example of modifying `themeVariables` using the `init` directive:
Example of modifying `themeVariables` using frontmatter config:
```mermaid-example
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
---
config:
theme: 'base'
themeVariables:
primaryColor: '#BB2528'
primaryTextColor: '#fff'
primaryBorderColor: '#7C0000'
lineColor: '#F8B229'
secondaryColor: '#006100'
tertiaryColor: '#fff'
---
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
@@ -110,79 +102,17 @@ Example of modifying `themeVariables` using the `init` directive:
```
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
```mermaid-example
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
```
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
---
config:
theme: 'base'
themeVariables:
primaryColor: '#BB2528'
primaryTextColor: '#fff'
primaryBorderColor: '#7C0000'
lineColor: '#F8B229'
secondaryColor: '#006100'
tertiaryColor: '#fff'
---
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
@@ -211,7 +141,7 @@ The theming engine will only recognize hex colors and not color names. So, the v
| -------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| darkMode | false | Affects how derived colors are calculated. Set value to `true` for dark mode. |
| background | #f4f4f4 | Used to calculate color for items that should either be background colored or contrasting to the background |
| fontFamily | trebuchet ms, verdana, arial | |
| fontFamily | trebuchet ms, verdana, arial | Font family for diagram text |
| fontSize | 16px | Font size in pixels |
| primaryColor | #fff4dd | Color to be used as background in nodes, other colors will be derived from this |
| primaryTextColor | calculated from darkMode #ddd/#333 | Color to be used as text color in nodes using `primaryColor` |

View File

@@ -98,6 +98,12 @@ Mermaid can load multiple diagrams, in the same page.
> Try it out, save this code as HTML and load it using any browser.
> (Except Internet Explorer, please don't use Internet Explorer.)
## Tiny Mermaid
We offer a smaller version of Mermaid that's approximately half the size of the full library. This tiny version doesn't support Mindmap Diagrams, Architecture Diagrams, KaTeX rendering, or lazy loading.
If you need a more lightweight version without these features, you can use [Mermaid Tiny](https://github.com/mermaid-js/mermaid/tree/develop/packages/tiny).
## Enabling Click Event and Tags in Nodes
A `securityLevel` configuration has to first be cleared. `securityLevel` sets the level of trust for the parsed diagrams and limits click functionality. This was introduced in version 8.2 as a security improvement, aimed at preventing malicious use.

View File

@@ -40,6 +40,7 @@ To add an integration to this list, see the [Integrations - create page](./integ
- [Mermaid Charts & Diagrams for Jira](https://marketplace.atlassian.com/apps/1224537/)
- [Mermaid for Jira Cloud - Draw UML diagrams easily](https://marketplace.atlassian.com/apps/1223053/mermaid-for-jira-cloud-draw-uml-diagrams-easily?hosting=cloud&tab=overview)
- [CloudScript.io Mermaid Addon](https://marketplace.atlassian.com/apps/1219878/cloudscript-io-mermaid-addon?hosting=cloud&tab=overview)
- [Mermaid plus for Confluence](https://marketplace.atlassian.com/apps/1236814/mermaid-plus-for-confluence?hosting=cloud&tab=overview)
- [Azure Devops](https://learn.microsoft.com/en-us/azure/devops/project/wiki/markdown-guidance?view=azure-devops#add-mermaid-diagrams-to-a-wiki-page) ✅
- [Deepdwn](https://billiam.itch.io/deepdwn) ✅
- [Doctave](https://www.doctave.com/) ✅
@@ -114,6 +115,8 @@ Content Management Systems/Enterprise Content Management
- [Grav CMS](https://getgrav.org/)
- [Mermaid Diagrams Plugin](https://github.com/DanielFlaum/grav-plugin-mermaid-diagrams)
- [GitLab Markdown Adapter](https://github.com/Goutte/grav-plugin-gitlab-markdown-adapter)
- [Tiki](https://tiki.org)
- [Tracker Entity Relationship Diagram](https://doc.tiki.org/Tracker-Entity-Relationship-Diagram)
- [VitePress](https://vitepress.vuejs.org/)
- [Plugin for Mermaid.js](https://emersonbottero.github.io/vitepress-plugin-mermaid/)
- [VuePress](https://vuepress.vuejs.org/)
@@ -242,7 +245,7 @@ Communication tools and platforms
| GitHub + Mermaid | - | [🦊🔗](https://addons.mozilla.org/firefox/addon/github-mermaid/) | - | - | [🐙🔗](https://github.com/BackMarket/github-mermaid-extension) |
| Asciidoctor Live Preview | [🎡🔗](https://chromewebstore.google.com/detail/asciidoctorjs-live-previe/iaalpfgpbocpdfblpnhhgllgbdbchmia) | - | - | [🌀🔗](https://microsoftedge.microsoft.com/addons/detail/asciidoctorjs-live-previ/pefkelkanablhjdekgdahplkccnbdggd?hl=en-US) | - |
| Diagram Tab | - | - | - | - | [🐙🔗](https://github.com/khafast/diagramtab) |
| Markdown Diagrams | [🎡🔗](https://chromewebstore.google.com/detail/markdown-diagrams/pmoglnmodacnbbofbgcagndelmgaclel) | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-diagrams/) | [🔴🔗](https://addons.opera.com/en/extensions/details/markdown-diagrams/) | [🌀🔗](https://microsoftedge.microsoft.com/addons/detail/markdown-diagrams/hceenoomhhdkjjijnmlclkpenkapfihe) | [🐙🔗](https://github.com/marcozaccari/markdown-diagrams-browser-extension/tree/master/doc/examples) |
| Markdown Diagrams | [🎡🔗](https://chromewebstore.google.com/detail/markdown-diagrams/pmoglnmodacnbbofbgcagndelmgaclel) | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-diagrams/) | - | [🌀🔗](https://microsoftedge.microsoft.com/addons/detail/markdown-diagrams/hceenoomhhdkjjijnmlclkpenkapfihe) | [🐙🔗](https://github.com/marcozaccari/markdown-diagrams-browser-extension/tree/master/doc/examples) |
| Markdown Viewer | - | [🦊🔗](https://addons.mozilla.org/en-US/firefox/addon/markdown-viewer-chrome/) | - | - | [🐙🔗](https://github.com/simov/markdown-viewer) |
| Extensions for Mermaid | - | - | [🔴🔗](https://addons.opera.com/en/extensions/details/extensions-for-mermaid/) | - | [🐙🔗](https://github.com/Stefan-S/mermaid-extension) |
| Chrome Diagrammer | [🎡🔗](https://chromewebstore.google.com/detail/chrome-diagrammer/bkpbgjmkomfoakfklcjeoegkklgjnnpk) | - | - | - | - |
@@ -267,7 +270,6 @@ Communication tools and platforms
- [reveal.js-mermaid-plugin](https://github.com/ludwick/reveal.js-mermaid-plugin)
- [Reveal CK](https://github.com/jedcn/reveal-ck)
- [reveal-ck-mermaid-plugin](https://github.com/tmtm/reveal-ck-mermaid-plugin)
- [mermaid-isomorphic](https://github.com/remcohaszing/mermaid-isomorphic)
- [mermaid-server: Generate diagrams using a HTTP request](https://github.com/TomWright/mermaid-server)
- [Vitepress Plugin](https://github.com/sametcn99/vitepress-mermaid-renderer)
<!--- cspell:ignore Blazorade HueHive --->

View File

@@ -30,7 +30,7 @@ Try the Ultimate AI, Mermaid, and Visual Diagramming Suite by creating an accoun
Official Mermaid Chart plugins:
- [Mermaid Chart GPT](https://chat.openai.com/g/g-1IRFKwq4G-mermaid-chart)
- [Mermaid Chart GPT](https://chatgpt.com/g/g-684cc36f30208191b21383b88650a45d-mermaid-chart-diagrams-and-charts)
- [Confluence](https://marketplace.atlassian.com/apps/1234056/mermaid-chart-for-confluence?hosting=cloud&tab=overview)
- [Jira](https://marketplace.atlassian.com/apps/1234810/mermaid-chart-for-jira?tab=overview&hosting=cloud)
- [Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=MermaidChart.vscode-mermaid-chart)

View File

@@ -49,7 +49,7 @@ For a more detailed introduction to Mermaid and some of its more basic uses, loo
🌐 [CDN](https://www.jsdelivr.com/package/npm/mermaid) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](../community/contributing.md) | 🔌 [Plug-Ins](../ecosystem/integrations-community.md)
> 🖖 Keep a steady pulse: mermaid needs more Collaborators, [Read More](https://github.com/mermaid-js/mermaid/issues/866).
> 🖖 Keep a steady pulse: [mermaid needs more Collaborators](https://github.com/mermaid-js/mermaid/issues/866).
:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!!**
@@ -354,6 +354,7 @@ To Deploy Mermaid:
- [Mermaid Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli)
- [Mermaid Tiny](https://github.com/mermaid-js/mermaid/tree/develop/packages/tiny)
- [Mermaid Webpack Demo](https://github.com/mermaidjs/mermaid-webpack-demo)
- [Mermaid Parcel Demo](https://github.com/mermaidjs/mermaid-parcel-demo)
@@ -437,7 +438,7 @@ For public sites, it can be precarious to retrieve text from users on the intern
As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security.
_Unfortunately you can not have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
_Unfortunately you cannot have a cake and eat it at the same time which in this case means that some of the interactive functionality gets blocked along with the possible malicious code._
## Reporting vulnerabilities

View File

@@ -14,7 +14,11 @@ Diagram Examples can be found in the [Mermaid Live Editor](https://mermaid.live)
## Syntax Structure
One would notice that all **Diagrams definitions begin** with a declaration of the **diagram type**, followed by the definitions of the diagram and its contents. This declaration notifies the parser which kind of diagram the code is supposed to generate.
One would notice that all **Diagrams definitions begin** with a declaration of the **diagram type**, followed by the definitions of the diagram and its contents. This declaration notifies the parser which kind of diagram the code is supposed to generate. The only exception to this a [Frontmatter](#frontmatter-for-diagram-code) configuration.
Line comments can ignore anything on the line after '%% '.
Unknown words and misspellings will break a diagram, while parameters silently fail.
**Example** : The code below is for an Entity Relationship Diagram, specified by the `erDiagram` declaration. What follows is the definition of the different `Entities` represented in it.
@@ -72,10 +76,50 @@ The following are the most commonly used methods, and they are all tied to Merma
Here you can edit certain values to change the behavior and appearance of the diagram.
Each of these techniques are functionally equivalent, but better for different deployments.
### [The initialize() call](./getting-started.md#_3-calling-the-javascript-api)
Used when Mermaid is called via an API, or through a `<script>` tag.
### Frontmatter for diagram code
Frontmatter is the term for adding YAML metadata at the start of code. This allows for reconfiguration of a diagram before it is rendered. You can pass metadata Frontmatter with your definition by adding `---` to the lines before and after the definition. This 'triple dash' MUST be the only character on the first line.
Frontmatter uses YAML syntax. It requires any indentation to be consistent and settings are case sensitive. Mermaid will silently ignore misspelling, but badly formed parameters will break the diagram.
```mermaid-example
---
title: Frontmatter Example
displayMode: compact
config:
theme: forest
gantt:
useWidth: 400
compact: true
---
gantt
section Waffle
Iron : 1982, 3y
House : 1986, 3y
```
```mermaid
---
title: Frontmatter Example
displayMode: compact
config:
theme: forest
gantt:
useWidth: 400
compact: true
---
gantt
section Waffle
Iron : 1982, 3y
House : 1986, 3y
```
### [Directives](../config/directives.md)
Allows for the limited reconfiguration of a diagram just before it is rendered. It can alter the font style, color and other aesthetic aspects of the diagram. You can pass a directive alongside your definition inside `%%{ }%%`. It can be done either above or below your diagram definition.
@@ -192,9 +236,10 @@ flowchart LR
B -->|Option 1| C[Path 1]
B -->|Option 2| D[Path 2]
#### Using Dagre Layout with Classic Look:
```
#### Using Dagre Layout with Classic Look:
Another example:
```

View File

@@ -16,7 +16,7 @@ Discover how the latest update to the Mermaid Visual Editor transforms class dia
1/16/2025 • 6 mins
Entity relationship (ER) diagrams are a cornerstone of database design, providing a blueprint for modeling your database and enabling clear communication across functions in your organization. As data volumes continue to soar and as AI models demand clean, well-organized data, ER diagrams have become more vital than ever. You can now quickly build ER diagrams with Mermaid Chart, Mermaid AI to Kickstart and fine tune your diagrams . From e-commerce payment flows to social media interactions and healthcare systems, ER diagrams are powering modern, data-driven environments.
Entity relationship (ER) diagrams are a cornerstone of database design, providing a blueprint for modeling your database and enabling clear communication across functions in your organization. As data volumes continue to soar and as AI models demand clean, well-organized data, ER diagrams have become more vital than ever. You can now quickly build ER diagrams with Mermaid Chart, Mermaid AI to kick-start and fine tune your diagrams . From e-commerce payment flows to social media interactions and healthcare systems, ER diagrams are powering modern, data-driven environments.
## [Mermaid Whiteboard: Visual Collaboration Made Universal](https://docs.mermaidchart.com/blog/posts/mermaid-whiteboard-visual-collaboration-made-universal)

View File

@@ -0,0 +1,9 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="48" height="48" rx="12" fill="#E0095F"/>
<mask id="mask0_1_24" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="9" y="9" width="30" height="30">
<rect x="9" y="9" width="30" height="30" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_1_24)">
<path d="M24 30.875C25.2083 30.875 26.3229 30.5833 27.3438 30C28.3646 29.4167 29.1875 28.625 29.8125 27.625C29.9375 27.375 29.9271 27.125 29.7812 26.875C29.6354 26.625 29.4167 26.5 29.125 26.5H18.875C18.5833 26.5 18.3646 26.625 18.2188 26.875C18.0729 27.125 18.0625 27.375 18.1875 27.625C18.8125 28.625 19.6406 29.4167 20.6719 30C21.7031 30.5833 22.8125 30.875 24 30.875ZM20.125 21.4375L20.7813 22.0938C20.9688 22.2813 21.1875 22.375 21.4375 22.375C21.6875 22.375 21.9063 22.2813 22.0938 22.0938C22.2813 21.9063 22.3698 21.6875 22.3594 21.4375C22.349 21.1875 22.2604 20.9688 22.0938 20.7813L21 19.6563C20.75 19.4063 20.4531 19.2812 20.1094 19.2812C19.7656 19.2812 19.4688 19.4063 19.2188 19.6563L18.0938 20.7813C17.9063 20.9688 17.8125 21.1875 17.8125 21.4375C17.8125 21.6875 17.9063 21.9063 18.0938 22.0938C18.2604 22.2604 18.474 22.349 18.7344 22.3594C18.9948 22.3698 19.2188 22.2917 19.4063 22.125L20.125 21.4375ZM27.875 21.4375L28.5938 22.125C28.7813 22.2917 29 22.375 29.25 22.375C29.5 22.375 29.7188 22.2813 29.9063 22.0938C30.0938 21.9063 30.1875 21.6875 30.1875 21.4375C30.1875 21.1875 30.0938 20.9688 29.9063 20.7813L28.7812 19.6563C28.5312 19.4063 28.2344 19.2812 27.8906 19.2812C27.5469 19.2812 27.25 19.4063 27 19.6563L25.875 20.7813C25.7083 20.9688 25.625 21.1875 25.625 21.4375C25.625 21.6875 25.7188 21.9063 25.9063 22.0938C26.0938 22.2813 26.3125 22.375 26.5625 22.375C26.8125 22.375 27.0312 22.2813 27.2187 22.0938L27.875 21.4375ZM24 36.5C22.2708 36.5 20.6458 36.1719 19.125 35.5156C17.6042 34.8594 16.2812 33.9688 15.1562 32.8438C14.0312 31.7188 13.1406 30.3958 12.4844 28.875C11.8281 27.3542 11.5 25.7292 11.5 24C11.5 22.2708 11.8281 20.6458 12.4844 19.125C13.1406 17.6042 14.0312 16.2812 15.1562 15.1562C16.2812 14.0312 17.6042 13.1406 19.125 12.4844C20.6458 11.8281 22.2708 11.5 24 11.5C25.7292 11.5 27.3542 11.8281 28.875 12.4844C30.3958 13.1406 31.7188 14.0312 32.8438 15.1562C33.9688 16.2812 34.8594 17.6042 35.5156 19.125C36.1719 20.6458 36.5 22.2708 36.5 24C36.5 25.7292 36.1719 27.3542 35.5156 28.875C34.8594 30.3958 33.9688 31.7188 32.8438 32.8438C31.7188 33.9688 30.3958 34.8594 28.875 35.5156C27.3542 36.1719 25.7292 36.5 24 36.5ZM24 34C26.7917 34 29.1563 33.0313 31.0938 31.0938C33.0313 29.1563 34 26.7917 34 24C34 21.2083 33.0313 18.8438 31.0938 16.9063C29.1563 14.9688 26.7917 14 24 14C21.2083 14 18.8438 14.9688 16.9063 16.9063C14.9688 18.8438 14 21.2083 14 24C14 26.7917 14.9688 29.1563 16.9063 31.0938C18.8438 33.0313 21.2083 34 24 34Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1,9 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="48" height="48" rx="12" fill="#E0095F"/>
<mask id="mask0_2_44" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="9" y="9" width="30" height="30">
<rect x="9" y="9" width="30" height="30" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_2_44)">
<path d="M32.75 27.75C32.3958 27.75 32.099 27.6302 31.8594 27.3906C31.6198 27.151 31.5 26.8542 31.5 26.5C31.5 26.1458 31.6198 25.849 31.8594 25.6094C32.099 25.3698 32.3958 25.25 32.75 25.25H34C34.3542 25.25 34.651 25.3698 34.8906 25.6094C35.1302 25.849 35.25 26.1458 35.25 26.5C35.25 26.8542 35.1302 27.151 34.8906 27.3906C34.651 27.6302 34.3542 27.75 34 27.75H32.75ZM32.75 32.75C32.3958 32.75 32.099 32.6302 31.8594 32.3906C31.6198 32.151 31.5 31.8542 31.5 31.5C31.5 31.1458 31.6198 30.849 31.8594 30.6094C32.099 30.3698 32.3958 30.25 32.75 30.25H34C34.3542 30.25 34.651 30.3698 34.8906 30.6094C35.1302 30.849 35.25 31.1458 35.25 31.5C35.25 31.8542 35.1302 32.151 34.8906 32.3906C34.651 32.6302 34.3542 32.75 34 32.75H32.75ZM26.5 34C25.8125 34 25.224 33.7552 24.7344 33.2656C24.2448 32.776 24 32.1875 24 31.5H22.75C22.3958 31.5 22.099 31.3802 21.8594 31.1406C21.6198 30.901 21.5 30.6042 21.5 30.25V27.75C21.5 27.3958 21.6198 27.099 21.8594 26.8594C22.099 26.6198 22.3958 26.5 22.75 26.5H24C24 25.8125 24.2448 25.224 24.7344 24.7344C25.224 24.2448 25.8125 24 26.5 24H29C29.3542 24 29.651 24.1198 29.8906 24.3594C30.1302 24.599 30.25 24.8958 30.25 25.25V32.75C30.25 33.1042 30.1302 33.401 29.8906 33.6406C29.651 33.8802 29.3542 34 29 34H26.5ZM17.75 30.25C16.375 30.25 15.1979 29.7604 14.2188 28.7812C13.2396 27.8021 12.75 26.625 12.75 25.25C12.75 23.875 13.2396 22.6979 14.2188 21.7188C15.1979 20.7396 16.375 20.25 17.75 20.25H19.625C20.1458 20.25 20.5885 20.0677 20.9531 19.7031C21.3177 19.3385 21.5 18.8958 21.5 18.375C21.5 17.8542 21.3177 17.4115 20.9531 17.0469C20.5885 16.6823 20.1458 16.5 19.625 16.5H15.25C14.8958 16.5 14.599 16.3802 14.3594 16.1406C14.1198 15.901 14 15.6042 14 15.25C14 14.8958 14.1198 14.599 14.3594 14.3594C14.599 14.1198 14.8958 14 15.25 14H19.625C20.8333 14 21.8646 14.4271 22.7187 15.2812C23.5729 16.1354 24 17.1667 24 18.375C24 19.5833 23.5729 20.6146 22.7187 21.4687C21.8646 22.3229 20.8333 22.75 19.625 22.75H17.75C17.0625 22.75 16.474 22.9948 15.9844 23.4844C15.4948 23.974 15.25 24.5625 15.25 25.25C15.25 25.9375 15.4948 26.526 15.9844 27.0156C16.474 27.5052 17.0625 27.75 17.75 27.75H19C19.3542 27.75 19.651 27.8698 19.8906 28.1094C20.1302 28.349 20.25 28.6458 20.25 29C20.25 29.3542 20.1302 29.651 19.8906 29.8906C19.651 30.1302 19.3542 30.25 19 30.25H17.75Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -0,0 +1,9 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="48" height="48" rx="12" fill="#E0095F"/>
<mask id="mask0_2_49" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="9" y="9" width="30" height="30">
<rect x="9" y="9" width="30" height="30" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_2_49)">
<path d="M22.75 32.75V28.875C21.7292 28.6458 20.8177 28.2135 20.0156 27.5781C19.2135 26.9427 18.625 26.1458 18.25 25.1875C16.6875 25 15.3802 24.3177 14.3281 23.1406C13.276 21.9635 12.75 20.5833 12.75 19V17.75C12.75 17.0625 12.9948 16.474 13.4844 15.9844C13.974 15.4948 14.5625 15.25 15.25 15.25H17.75C17.75 14.5625 17.9948 13.974 18.4844 13.4844C18.974 12.9948 19.5625 12.75 20.25 12.75H27.75C28.4375 12.75 29.026 12.9948 29.5156 13.4844C30.0052 13.974 30.25 14.5625 30.25 15.25H32.75C33.4375 15.25 34.026 15.4948 34.5156 15.9844C35.0052 16.474 35.25 17.0625 35.25 17.75V19C35.25 20.5833 34.724 21.9635 33.6719 23.1406C32.6198 24.3177 31.3125 25 29.75 25.1875C29.375 26.1458 28.7865 26.9427 27.9844 27.5781C27.1823 28.2135 26.2708 28.6458 25.25 28.875V32.75H29C29.3542 32.75 29.651 32.8698 29.8906 33.1094C30.1302 33.349 30.25 33.6458 30.25 34C30.25 34.3542 30.1302 34.651 29.8906 34.8906C29.651 35.1302 29.3542 35.25 29 35.25H19C18.6458 35.25 18.349 35.1302 18.1094 34.8906C17.8698 34.651 17.75 34.3542 17.75 34C17.75 33.6458 17.8698 33.349 18.1094 33.1094C18.349 32.8698 18.6458 32.75 19 32.75H22.75ZM17.75 22.5V17.75H15.25V19C15.25 19.7917 15.4792 20.5052 15.9375 21.1406C16.3958 21.776 17 22.2292 17.75 22.5ZM24 26.5C25.0417 26.5 25.9271 26.1354 26.6562 25.4062C27.3854 24.6771 27.75 23.7917 27.75 22.75V15.25H20.25V22.75C20.25 23.7917 20.6146 24.6771 21.3438 25.4062C22.0729 26.1354 22.9583 26.5 24 26.5ZM30.25 22.5C31 22.2292 31.6042 21.776 32.0625 21.1406C32.5208 20.5052 32.75 19.7917 32.75 19V17.75H30.25V22.5Z" fill="white"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 200 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 200 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26528"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26528)">
<path
d="M10.25 12.9792C11.2083 12.9792 12.0312 12.6667 12.7188 12.0417C13.4062 11.4167 13.75 10.6671 13.75 9.79292C13.75 9.01431 13.4965 8.35069 12.9896 7.80208C12.4826 7.25347 11.8747 6.97917 11.1656 6.97917C10.5248 6.97917 9.98285 7.1875 9.53979 7.60417C9.0966 8.02083 8.875 8.52083 8.875 9.10417C8.875 9.38194 8.92528 9.63847 9.02583 9.87375C9.12639 10.109 9.27056 10.3247 9.45833 10.5208L10.5208 9.45833C10.4722 9.41667 10.4358 9.36458 10.4115 9.30208C10.3872 9.23958 10.375 9.17687 10.375 9.11396C10.375 8.94076 10.4514 8.79167 10.6042 8.66667C10.7569 8.54167 10.9444 8.47917 11.1667 8.47917C11.4583 8.47917 11.7118 8.60806 11.9271 8.86583C12.1424 9.12361 12.25 9.43222 12.25 9.79167C12.25 10.25 12.0521 10.6458 11.6562 10.9792C11.2604 11.3125 10.7933 11.4792 10.255 11.4792C9.57111 11.4792 8.98264 11.191 8.48958 10.6146C7.99653 10.0382 7.75 9.35417 7.75 8.5625C7.75 8.13514 7.82986 7.72625 7.98958 7.33583C8.14931 6.94528 8.38194 6.59722 8.6875 6.29167L7.625 5.25C7.18056 5.69444 6.84028 6.20139 6.60417 6.77083C6.36806 7.34028 6.25 7.9375 6.25 8.5625C6.25 9.78472 6.63889 10.8264 7.41667 11.6875C8.19444 12.5486 9.13889 12.9792 10.25 12.9792ZM5.5 18V14.3542C4.70833 13.6875 4.09375 12.8849 3.65625 11.9465C3.21875 11.008 3 10.0189 3 8.97917C3 7.04056 3.68257 5.39271 5.04771 4.03563C6.41285 2.67854 8.07056 2 10.0208 2C11.5347 2 12.8958 2.40625 14.1042 3.21875C15.3125 4.03125 16.1111 5.09028 16.5 6.39583L17.875 11.0417C17.9444 11.2844 17.9062 11.5049 17.7604 11.7029C17.6146 11.901 17.4167 12 17.1667 12H16V14.5C16 14.9125 15.8531 15.2656 15.5594 15.5594C15.2656 15.8531 14.9125 16 14.5 16H12.5V18H11V14.5H14.5V10.5H16.1667L15.0833 6.89583C14.7778 5.89583 14.1562 5.07986 13.2188 4.44792C12.2812 3.81597 11.2153 3.5 10.0208 3.5C8.47917 3.5 7.17361 4.03215 6.10417 5.09646C5.03472 6.16076 4.5 7.455 4.5 8.97917C4.5 9.79764 4.67361 10.5751 5.02083 11.3117C5.36806 12.0483 5.85417 12.6806 6.47917 13.2083L7 13.6667V18H5.5Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26616"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26616)">
<path
d="M4 16.9999V14.4999H5.875L4.4375 8.77077C3.99306 8.56244 3.64236 8.25341 3.38542 7.84369C3.12847 7.43396 3 6.98605 3 6.49993C3 5.7916 3.24306 5.19785 3.72917 4.71868C4.21528 4.23952 4.8125 3.99993 5.52083 3.99993C6.0625 3.99993 6.55208 4.15966 6.98958 4.4791C7.42708 4.79855 7.72222 5.22216 7.875 5.74993H9.5V4.74993C9.5 4.5416 9.57292 4.36452 9.71875 4.21868C9.86458 4.07285 10.0417 3.99993 10.25 3.99993C10.4583 3.99993 10.6354 4.07285 10.7812 4.21868C10.9271 4.36452 11 4.5416 11 4.74993V4.89577L13 3.18743C13.1111 3.09021 13.2361 3.03466 13.375 3.02077C13.5139 3.00688 13.6528 3.02771 13.7917 3.08327L16.5625 4.33327C16.7569 4.4166 16.8924 4.55202 16.9688 4.73952C17.0451 4.92702 17.0347 5.11799 16.9375 5.31243C16.8542 5.49299 16.7153 5.61799 16.5208 5.68743C16.3264 5.75688 16.1319 5.75688 15.9375 5.68743L13.6042 4.64577L11.4167 6.49993L13.6042 8.37494L15.9375 7.33327C16.1319 7.24993 16.3229 7.24299 16.5104 7.31244C16.6979 7.38188 16.8403 7.51382 16.9375 7.70827C17.0208 7.88882 17.0243 8.06938 16.9479 8.24994C16.8715 8.43049 16.7431 8.57632 16.5625 8.68744L13.7917 9.93744C13.6667 10.0069 13.5312 10.0312 13.3854 10.0104C13.2396 9.98952 13.1111 9.93049 13 9.83327L11 8.12494V8.24994C11 8.45827 10.9271 8.63535 10.7812 8.78119C10.6354 8.92702 10.4583 8.99994 10.25 8.99994C10.0417 8.99994 9.86458 8.92702 9.71875 8.78119C9.57292 8.63535 9.5 8.45827 9.5 8.24994V7.24994H7.875C7.81944 7.44438 7.73958 7.62146 7.63542 7.78119C7.53125 7.94091 7.40972 8.09716 7.27083 8.24994L10.8542 14.4999H14V16.9999H4ZM5.5 7.62494C5.81944 7.62494 6.08681 7.5173 6.30208 7.30202C6.51736 7.08674 6.625 6.81938 6.625 6.49993C6.625 6.19438 6.51736 5.93396 6.30208 5.71868C6.08681 5.50341 5.81944 5.39577 5.5 5.39577C5.18056 5.39577 4.91319 5.50341 4.69792 5.71868C4.48264 5.93396 4.375 6.19438 4.375 6.49993C4.375 6.81938 4.48264 7.08674 4.69792 7.30202C4.91319 7.5173 5.18056 7.62494 5.5 7.62494ZM7.41667 14.4999H9.125L6.08333 9.18744L7.41667 14.4999Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26596"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26596)">
<path
d="M5 12H15V10.5H5V12ZM5 9.25H15V7.75H5V9.25ZM5 6.5H15V5H5V6.5ZM18 18L15 15H3.5C3.0875 15 2.73438 14.8531 2.44063 14.5594C2.14688 14.2656 2 13.9125 2 13.5V3.5C2 3.0875 2.14688 2.73438 2.44063 2.44063C2.73438 2.14688 3.0875 2 3.5 2H16.5C16.9125 2 17.2656 2.14688 17.5594 2.44063C17.8531 2.73438 18 3.0875 18 3.5V18ZM3.5 13.5H15.625L16.5 14.375V3.5H3.5V13.5Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 764 B

View File

@@ -0,0 +1,11 @@
<svg
xmlns="http://www.w3.org/2000/svg"
height="24px"
viewBox="0 -960 960 960"
width="24px"
fill="currentColor"
>
<path
d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h240l80 80h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H447l-80-80H160v480Zm0 0v-480 480Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 329 B

View File

@@ -0,0 +1,11 @@
<svg
xmlns="http://www.w3.org/2000/svg"
height="24px"
viewBox="0 -960 960 960"
width="24px"
fill="currentColor"
>
<path
d="M40-160v-112q0-34 17.5-62.5T104-378q62-31 126-46.5T360-440q66 0 130 15.5T616-378q29 15 46.5 43.5T680-272v112H40Zm720 0v-120q0-44-24.5-84.5T666-434q51 6 96 20.5t84 35.5q36 20 55 44.5t19 53.5v120H760ZM360-480q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 66-47 113t-113 47Zm400-160q0 66-47 113t-113 47q-11 0-28-2.5t-28-5.5q27-32 41.5-71t14.5-81q0-42-14.5-81T544-792q14-5 28-6.5t28-1.5q66 0 113 47t47 113ZM120-240h480v-32q0-11-5.5-20T580-306q-54-27-109-40.5T360-360q-56 0-111 13.5T140-306q-9 5-14.5 14t-5.5 20v32Zm240-320q33 0 56.5-23.5T440-640q0-33-23.5-56.5T360-720q-33 0-56.5 23.5T280-640q0 33 23.5 56.5T360-560Zm0 320Zm0-400Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 794 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26621"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26621)">
<path
d="M3.5 11.5L5.5 9.5L3.5 7.5L1.5 9.5L3.5 11.5ZM14.5 11.5L16.5 8L18.5 11.5H14.5ZM9.98958 10.5C9.30208 10.5 8.71528 10.2569 8.22917 9.77083C7.74306 9.28472 7.5 8.69444 7.5 8C7.5 7.30556 7.74306 6.71528 8.22917 6.22917C8.71528 5.74306 9.30556 5.5 10 5.5C10.6944 5.5 11.2847 5.74306 11.7708 6.22917C12.2569 6.71528 12.5 7.30903 12.5 8.01042C12.5 8.69792 12.2569 9.28472 11.7708 9.77083C11.2847 10.2569 10.691 10.5 9.98958 10.5ZM10 7C9.71667 7 9.47917 7.09583 9.2875 7.2875C9.09583 7.47917 9 7.71667 9 8C9 8.28333 9.09583 8.52083 9.2875 8.7125C9.47917 8.90417 9.71667 9 10 9C10.2833 9 10.5208 8.90417 10.7125 8.7125C10.9042 8.52083 11 8.28333 11 8C11 7.71667 10.9042 7.47917 10.7125 7.2875C10.5208 7.09583 10.2833 7 10 7ZM0 15.5V14.25C0 13.5139 0.34375 12.9722 1.03125 12.625C1.71875 12.2778 2.54167 12.1042 3.5 12.1042C3.70833 12.1042 3.91667 12.1146 4.125 12.1354C4.33333 12.1563 4.54167 12.1875 4.75 12.2292C4.5 12.4792 4.3125 12.7951 4.1875 13.1771C4.0625 13.559 4 13.9167 4 14.25V15.5H0ZM5 15.5V14.2604C5 13.434 5.42361 12.7674 6.27083 12.2604C7.11806 11.7535 8.36111 11.5 10 11.5C11.6389 11.5 12.8819 11.7528 13.7292 12.2585C14.5764 12.7644 15 13.4282 15 14.25V15.5H5ZM16.5 12.1042C17.4583 12.1042 18.2812 12.2778 18.9688 12.625C19.6562 12.9722 20 13.5139 20 14.25V15.5H16V14.25C16 13.9167 15.941 13.559 15.8229 13.1771C15.7049 12.7951 15.5139 12.4792 15.25 12.2292C15.4583 12.1875 15.6652 12.1563 15.8706 12.1354C16.0759 12.1146 16.2857 12.1042 16.5 12.1042ZM10 13C9.11111 13 8.40972 13.0799 7.89583 13.2396C7.38194 13.3993 6.93056 13.6528 6.54167 14H13.4583C13.0556 13.6528 12.6007 13.3993 12.0938 13.2396C11.5868 13.0799 10.8889 13 10 13Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24">
<!-- Icon from Tabler Icons by Paweł Kuna - https://github.com/tabler/tabler-icons/blob/master/LICENSE -->
<path
fill="none"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M12 3a9 9 0 0 1 3.618 17.243l-2.193-5.602a3 3 0 1 0-2.849 0l-2.193 5.603A9 9 0 0 1 12 3"
/>
</svg>

After

Width:  |  Height:  |  Size: 428 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26548"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26548)">
<path
d="M8 17H4.5C4.0875 17 3.73437 16.8531 3.44062 16.5594C3.14687 16.2656 3 15.9125 3 15.5V12C3.55556 11.9722 4.02778 11.7674 4.41667 11.3854C4.80556 11.0035 5 10.5417 5 10C5 9.45833 4.80556 8.99653 4.41667 8.61458C4.02778 8.23264 3.55556 8.02778 3 8V4.5C3 4.0875 3.14687 3.73438 3.44062 3.44063C3.73437 3.14688 4.0875 3 4.5 3H8C8 2.44444 8.19285 1.97222 8.57854 1.58333C8.96438 1.19444 9.4366 1 9.99521 1C10.554 1 11.0278 1.19333 11.4167 1.58C11.8056 1.96667 12 2.44 12 3H15.5C15.9125 3 16.2656 3.14688 16.5594 3.44063C16.8531 3.73438 17 4.0875 17 4.5V8C17.5556 8 18.0278 8.19285 18.4167 8.57854C18.8056 8.96438 19 9.4366 19 9.99521C19 10.554 18.8067 11.0278 18.42 11.4167C18.0333 11.8056 17.56 12 17 12V15.5C17 15.9125 16.8531 16.2656 16.5594 16.5594C16.2656 16.8531 15.9125 17 15.5 17H12C11.9722 16.4444 11.7682 15.9722 11.3879 15.5833C11.0076 15.1944 10.5458 15 10.0025 15C9.45917 15 8.99653 15.1944 8.61458 15.5833C8.23264 15.9722 8.02778 16.4444 8 17ZM4.5 15.5H6.83333C7.11111 14.875 7.53819 14.3854 8.11458 14.0312C8.69097 13.6771 9.31944 13.5 10 13.5C10.6806 13.5 11.309 13.6771 11.8854 14.0312C12.4618 14.3854 12.8889 14.875 13.1667 15.5H15.5V10.5H17C17.1333 10.5 17.25 10.45 17.35 10.35C17.45 10.25 17.5 10.1333 17.5 10C17.5 9.86667 17.45 9.75 17.35 9.65C17.25 9.55 17.1333 9.5 17 9.5H15.5V4.5H10.5V3C10.5 2.86667 10.45 2.75 10.35 2.65C10.25 2.55 10.1333 2.5 10 2.5C9.86667 2.5 9.75 2.55 9.65 2.65C9.55 2.75 9.5 2.86667 9.5 3V4.5H4.5V6.83333C5.125 7.11111 5.61458 7.53819 5.96875 8.11458C6.32292 8.69097 6.5 9.31944 6.5 10C6.5 10.6974 6.32292 11.3335 5.96875 11.9083C5.61458 12.4833 5.125 12.9028 4.5 13.1667V15.5Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26538"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26538)">
<path
d="M8 13.5L13.5 10L8 6.5V13.5ZM4.5 17C4.0875 17 3.73437 16.8531 3.44062 16.5594C3.14687 16.2656 3 15.9125 3 15.5V4.5C3 4.0875 3.14687 3.73438 3.44062 3.44063C3.73437 3.14688 4.0875 3 4.5 3H15.5C15.9125 3 16.2656 3.14688 16.5594 3.44063C16.8531 3.73438 17 4.0875 17 4.5V15.5C17 15.9125 16.8531 16.2656 16.5594 16.5594C16.2656 16.8531 15.9125 17 15.5 17H4.5ZM4.5 15.5H15.5V4.5H4.5V15.5Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 792 B

View File

@@ -0,0 +1,11 @@
<svg
xmlns="http://www.w3.org/2000/svg"
height="24px"
viewBox="0 -960 960 960"
width="24px"
fill="currentColor"
>
<path
d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-40-82v-78q-33 0-56.5-23.5T360-320v-40L168-552q-3 18-5.5 36t-2.5 36q0 121 79.5 212T440-162Zm276-102q41-45 62.5-100.5T800-480q0-98-54.5-179T600-776v16q0 33-23.5 56.5T520-680h-80v80q0 17-11.5 28.5T400-560h-80v80h240q17 0 28.5 11.5T600-440v120h40q26 0 47 15.5t29 40.5Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 608 B

View File

@@ -0,0 +1,11 @@
<svg
xmlns="http://www.w3.org/2000/svg"
height="24px"
viewBox="0 -960 960 960"
width="24px"
fill="currentColor"
>
<path
d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H160v400Zm140-40-56-56 103-104-104-104 57-56 160 160-160 160Zm180 0v-80h240v80H480Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 368 B

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26543"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26543)">
<path
d="M10 17C8.05556 17 6.40278 16.3194 5.04167 14.9583C3.68056 13.5972 3 11.9444 3 10H4.5C4.5 11.5139 5.03819 12.809 6.11458 13.8854C7.19097 14.9618 8.48611 15.5 10 15.5C11.5139 15.5 12.809 14.9618 13.8854 13.8854C14.9618 12.809 15.5 11.5139 15.5 10C15.5 8.48611 14.9618 7.19097 13.8854 6.11458C12.809 5.03819 11.5139 4.5 10 4.5C9.13889 4.5 8.3434 4.67778 7.61354 5.03333C6.88382 5.38889 6.26958 5.87778 5.77083 6.5H8V8H3V3H4.5V5.70833C5.13889 4.875 5.93403 4.21528 6.88542 3.72917C7.83681 3.24306 8.875 3 10 3C10.9722 3 11.8828 3.18472 12.7319 3.55417C13.581 3.92361 14.3199 4.42271 14.9485 5.05146C15.5773 5.68007 16.0764 6.41896 16.4458 7.26813C16.8153 8.11715 17 9.02778 17 10C17 10.9722 16.8153 11.8828 16.4458 12.7319C16.0764 13.581 15.5773 14.3199 14.9485 14.9485C14.3199 15.5773 13.581 16.0764 12.7319 16.4458C11.8828 16.8153 10.9722 17 10 17ZM12.0833 12.8333L9.25 10V6H10.75V9.375L13.1458 11.7708L12.0833 12.8333Z"
fill="currentColor"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
<mask
id="mask0_89_26533"
style="mask-type: alpha"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="20"
height="20"
>
<rect width="20" height="20" fill="currentColor" />
</mask>
<g mask="url(#mask0_89_26533)">
<path
d="M6.54165 17L5.83332 16.2917L4.56249 17.5625C4.27082 17.8542 3.91665 18 3.49999 18C3.08332 18 2.72915 17.8542 2.43749 17.5625C2.15971 17.2569 2.01735 16.8993 2.0104 16.4896C2.00346 16.0799 2.14582 15.7292 2.43749 15.4375L3.70832 14.1667L2.99999 13.4583L13.0208 3.4375C13.3125 3.14583 13.6632 3 14.0729 3C14.4826 3 14.8403 3.14583 15.1458 3.4375L16.5625 4.85417C16.8542 5.13194 17 5.47917 17 5.89583C17 6.3125 16.8542 6.66667 16.5625 6.95833L6.54165 17ZM9.27082 9.33333L5.12499 13.4583L6.54165 14.875L10.6875 10.7292L9.27082 9.33333Z"
fill="#2B2542"
/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 937 B

View File

@@ -0,0 +1,11 @@
<svg width="1200" height="630" viewBox="0 0 1200 630" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_2)">
<rect width="1200" height="630" fill="#FF3670"/>
<path d="M807.836 142.655C715.59 138.706 630.888 195.464 599.461 282.281C568.034 195.464 483.332 138.706 391.086 142.655C388.013 215.854 423.032 285.658 483.546 326.958C514.556 348.257 533.087 383.583 532.984 421.202V486.46H665.951V421.202C665.843 383.585 684.37 348.258 715.376 326.958C775.907 285.674 810.931 215.859 807.836 142.655Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_1_2">
<rect width="1200" height="630" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 647 B

View File

@@ -194,7 +194,7 @@ architecture-beta
## Icons
By default, architecture diagram supports the following icons: `cloud`, `database`, `disk`, `internet`, `server`.
Users can use any of the 200,000+ icons available in iconify.design, or add their own custom icons, by following the steps [here](../config/icons.md).
Users can use any of the 200,000+ icons available in iconify.design, or [add custom icons](../config/icons.md).
After the icons are installed, they can be used in the architecture diagram by using the format "name:icon-name", where name is the value used when registering the icon pack.

View File

@@ -567,6 +567,30 @@ block-beta
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
```
### Class Styling
Mermaid enables applying styling to classes, which could make styling easier if you want to apply a certain set of styles to multiple elements, as you could just link those elements to a class.
#### Example - Styling a Single Class
```mermaid-example
block-beta
A space B
A-->B
classDef blue fill:#6e6ce6,stroke:#333,stroke-width:4px;
class A blue
style B fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
```
```mermaid
block-beta
A space B
A-->B
classDef blue fill:#6e6ce6,stroke:#333,stroke-width:4px;
class A blue
style B fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
```
In this example, a class named 'blue' is defined and applied to block 'A', while block 'B' receives individual styling. This demonstrates the flexibility of Mermaid in applying both shared and unique styles within the same diagram.
The ability to style blocks individually or through classes provides a powerful tool for enhancing the visual impact and clarity of block diagrams. Whether emphasizing certain elements or maintaining a cohesive design across the diagram, these styling capabilities are central to effective diagramming. The next sections will present practical examples and use cases, followed by tips for troubleshooting common issues.
@@ -663,7 +687,7 @@ block-beta
```
**Correction**:
Ensure that links between blocks are correctly specified with arrows (--> or ---) to define the direction and type of connection. Also remember that one of the fundaments for block diagram is to give the author full control of where the boxes are positioned so in the example you need to add a space between the boxes:
Ensure that links between blocks are correctly specified with arrows (--> or ---) to define the direction and type of connection. Also remember that one of the fundamentals for block diagram is to give the author full control of where the boxes are positioned so in the example you need to add a space between the boxes:
```mermaid-example
block-beta

View File

@@ -399,7 +399,7 @@ UpdateRelStyle(customerA, bankA, $offsetY="60")
title Component diagram for Internet Banking System - API Application
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset to the internet banking functionality to customers via their mobile mobile device.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset to the internet banking functionality to customers via their mobile device.")
ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
@@ -439,7 +439,7 @@ UpdateRelStyle(customerA, bankA, $offsetY="60")
title Component diagram for Internet Banking System - API Application
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset to the internet banking functionality to customers via their mobile mobile device.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset to the internet banking functionality to customers via their mobile device.")
ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")

View File

@@ -545,6 +545,38 @@ It is possible to annotate classes with markers to provide additional metadata a
Annotations are defined within the opening `<<` and closing `>>`. There are two ways to add an annotation to a class, and either way the output will be same:
> **Tip:**\
> In Mermaid class diagrams, annotations like `<<interface>>` can be attached in two ways:
>
> - **Inline with the class definition** (Recommended for consistency):
>
> ```mermaid-example
> classDiagram
> class Shape <<interface>>
> ```
>
> ```mermaid
> classDiagram
> class Shape <<interface>>
> ```
>
> - **Separate line after the class definition**:
>
> ```mermaid-example
> classDiagram
> class Shape
> <<interface>> Shape
> ```
>
> ```mermaid
> classDiagram
> class Shape
> <<interface>> Shape
> ```
>
> Both methods are fully supported and produce identical diagrams.\
> However, it is recommended to use the **inline style** for better readability and consistent formatting across diagrams.
- In a **_separate line_** after a class is defined:
```mermaid-example
@@ -802,7 +834,7 @@ Beginner's tip—a full example using interactive links in an HTML page:
+run()
}
callback Duck callback "Tooltip"
callback Duck "callback" "Tooltip"
link Zebra "https://www.github.com" "This is a link"
</pre>

View File

@@ -171,7 +171,7 @@ Cardinality is a property that describes how many elements of another entity can
### Identification
Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line:
Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question cannot have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line:
| Value | Alias for |
| :---: | :---------------: |
@@ -625,17 +625,43 @@ erDiagram
## Configuration
### Renderer
### Layout
The layout of the diagram is done with the renderer. The default renderer is dagre.
The layout of the diagram is handled by [`render()`](../config/setup/mermaid/interfaces/Mermaid.md#render). The default layout is dagre.
You can opt to use an alternate renderer named elk by editing the configuration. The elk renderer is better for larger and/or more complex diagrams.
For larger or more-complex diagrams, you can alternatively apply the ELK (Eclipse Layout Kernel) layout using your YAML frontmatter's `config`. For more information, see [Customizing ELK Layout](../intro/syntax-reference.md#customizing-elk-layout).
```yaml
---
config:
layout: elk
---
```
Your Mermaid code should be similar to the following:
```mermaid-example
---
config:
layout: elk
title: Order example
config:
layout: elk
---
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
```mermaid
---
title: Order example
config:
layout: elk
---
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
> **Note**

View File

@@ -83,7 +83,11 @@ flowchart LR
Use double quotes and backticks "\` text \`" to enclose the markdown text.
```mermaid-example
%%{init: {"flowchart": {"htmlLabels": false}} }%%
---
config:
flowchart:
htmlLabels: false
---
flowchart LR
markdown["`This **is** _Markdown_`"]
newLines["`Line1
@@ -93,7 +97,11 @@ flowchart LR
```
```mermaid
%%{init: {"flowchart": {"htmlLabels": false}} }%%
---
config:
flowchart:
htmlLabels: false
---
flowchart LR
markdown["`This **is** _Markdown_`"]
newLines["`Line1
@@ -932,7 +940,7 @@ Mermaid also introduces 2 special shapes to enhance your flowcharts: **icon** an
### Icon Shape
You can use the `icon` shape to include an icon in your flowchart. To use icons, you need to register the icon pack first. Follow the instructions provided [here](../config/icons.md). The syntax for defining an icon shape is as follows:
You can use the `icon` shape to include an icon in your flowchart. To use icons, you need to register the icon pack first. Follow the instructions to [add custom icons](../config/icons.md). The syntax for defining an icon shape is as follows:
```mermaid-example
flowchart TD
@@ -944,7 +952,7 @@ flowchart TD
A@{ icon: "fa:user", form: "square", label: "User Icon", pos: "t", h: 60 }
```
### Parameters
#### Parameters
- **icon**: The name of the icon from the registered icon pack.
- **form**: Specifies the background shape of the icon. If not defined there will be no background to icon. Options include:
@@ -961,17 +969,12 @@ flowchart TD
You can use the `image` shape to include an image in your flowchart. The syntax for defining an image shape is as follows:
```mermaid-example
```
flowchart TD
A@{ img: "https://example.com/image.png", label: "Image Label", pos: "t", w: 60, h: 60, constraint: "off" }
```
```mermaid
flowchart TD
A@{ img: "https://example.com/image.png", label: "Image Label", pos: "t", w: 60, h: 60, constraint: "off" }
```
### Parameters
#### Parameters
- **img**: The URL of the image to be displayed.
- **label**: The text label associated with the image. This can be any string. If not defined, no label will be displayed.
@@ -1193,12 +1196,12 @@ To give an edge an ID, prepend the edge syntax with the ID followed by an `@` ch
```mermaid-example
flowchart LR
A e1@> B
A e1@--> B
```
```mermaid
flowchart LR
A e1@> B
A e1@--> B
```
In this example, `e1` is the ID of the edge connecting `A` to `B`. You can then use this ID in later definitions or style statements, just like with nodes.
@@ -1229,13 +1232,13 @@ In the initial version, two animation speeds are supported: `fast` and `slow`. S
```mermaid-example
flowchart LR
A e1@> B
A e1@--> B
e1@{ animation: fast }
```
```mermaid
flowchart LR
A e1@> B
A e1@--> B
e1@{ animation: fast }
```
@@ -1247,14 +1250,14 @@ You can also animate edges by assigning a class to them and then defining animat
```mermaid-example
flowchart LR
A e1@> B
A e1@--> B
classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
class e1 animate
```
```mermaid
flowchart LR
A e1@> B
A e1@--> B
classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
class e1 animate
```
@@ -1592,7 +1595,11 @@ flowchart LR
The "Markdown Strings" feature enhances flowcharts and mind maps by offering a more versatile string type, which supports text formatting options such as bold and italics, and automatically wraps text within labels.
```mermaid-example
%%{init: {"flowchart": {"htmlLabels": false}} }%%
---
config:
flowchart:
htmlLabels: false
---
flowchart LR
subgraph "One"
a("`The **cat**
@@ -1605,7 +1612,11 @@ end
```
```mermaid
%%{init: {"flowchart": {"htmlLabels": false}} }%%
---
config:
flowchart:
htmlLabels: false
---
flowchart LR
subgraph "One"
a("`The **cat**
@@ -1936,6 +1947,19 @@ flowchart TD
B-->E(A fa:fa-camera-retro perhaps?)
```
There are two ways to display these FontAwesome icons:
### Register FontAwesome icon packs (v11.7.0+)
You can register your own FontAwesome icon pack following the ["Registering icon packs" instructions](../config/icons.md).
Supported prefixes: `fa`, `fab`, `fas`, `far`, `fal`, `fad`.
> **Note**
> Note that it will fall back to FontAwesome CSS if FontAwesome packs are not registered.
### Register FontAwesome CSS
Mermaid supports Font Awesome if the CSS is included on the website.
Mermaid does not have any restriction on the version of Font Awesome that can be used.
@@ -2016,7 +2040,9 @@ The _elk_ renderer is an experimental feature.
You can change the renderer to elk by adding this directive:
```
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
config:
flowchart:
defaultRenderer: "elk"
```
> **Note**

View File

@@ -229,6 +229,30 @@ gantt
Final milestone : milestone, m2, 18:08, 4m
```
### Vertical Markers
The `vert` keyword lets you add vertical lines to your Gantt chart, making it easy to highlight important dates like deadlines, events, or checkpoints. These markers extend across the entire chart and are positioned based on the date you provide. Unlike milestones, vertical markers dont take up a row. Theyre purely visual reference points that help break up the timeline and make important moments easier to spot.
```mermaid-example
gantt
dateFormat HH:mm
axisFormat %H:%M
Initial vert : vert, v1, 17:30, 2m
Task A : 3m
Task B : 8m
Final vert : vert, v2, 17:58, 4m
```
```mermaid
gantt
dateFormat HH:mm
axisFormat %H:%M
Initial vert : vert, v1, 17:30, 2m
Task A : 3m
Task B : 8m
Final vert : vert, v2, 17:58, 4m
```
## Setting dates
`dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`.
@@ -526,7 +550,7 @@ click taskId href URL
- taskId is the id of the task
- callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified.
Beginner's tip—a full example using interactive links in an html context:
Beginner's tip—a full example using interactive links in an HTML context:
```html
<body>
@@ -598,4 +622,86 @@ gantt
5 : 0, 5
```
### Timeline (with comments, CSS, config in frontmatter)
```mermaid-example
---
# Frontmatter config, YAML comments
title: Ignored if specified in chart
displayMode: compact #gantt specific setting but works at this level too
config:
# theme: forest
# themeCSS: " #item36 { fill: CadetBlue } "
themeCSS: " // YAML supports multiline strings using a newline markers: \n
#item36 { fill: CadetBlue } \n
// Custom marker workaround CSS from forum (below) \n
rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } \n
text[id^=workaround] { fill: red; y: 100%; font-size: 15px;}
"
gantt:
useWidth: 400
rightPadding: 0
topAxis: true #false
numberSectionStyles: 2
---
gantt
title Timeline - Gantt Sampler
dateFormat YYYY
axisFormat %y
%% this next line doesn't recognise 'decade' or 'year', but will silently ignore
tickInterval 1decade
section Issue19062
71 : item71, 1900, 1930
section Issue19401
36 : item36, 1913, 1935
section Issue1300
94 : item94, 1910, 1915
5 : item5, 1920, 1925
0 : milestone, item0, 1918, 1s
9 : vert, 1906, 1s %% not yet official
64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250
```
```mermaid
---
# Frontmatter config, YAML comments
title: Ignored if specified in chart
displayMode: compact #gantt specific setting but works at this level too
config:
# theme: forest
# themeCSS: " #item36 { fill: CadetBlue } "
themeCSS: " // YAML supports multiline strings using a newline markers: \n
#item36 { fill: CadetBlue } \n
// Custom marker workaround CSS from forum (below) \n
rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } \n
text[id^=workaround] { fill: red; y: 100%; font-size: 15px;}
"
gantt:
useWidth: 400
rightPadding: 0
topAxis: true #false
numberSectionStyles: 2
---
gantt
title Timeline - Gantt Sampler
dateFormat YYYY
axisFormat %y
%% this next line doesn't recognise 'decade' or 'year', but will silently ignore
tickInterval 1decade
section Issue19062
71 : item71, 1900, 1930
section Issue19401
36 : item36, 1913, 1935
section Issue1300
94 : item94, 1910, 1915
5 : item5, 1920, 1925
0 : milestone, item0, 1918, 1s
9 : vert, 1906, 1s %% not yet official
64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250
```
<!--- cspell:ignore isadded --->

Some files were not shown because too many files have changed in this diff Show More