\) [\#87](https://github.com/knsv/mermaid/issues/87)
-- Bug: \
being rendered as text in node [\#73](https://github.com/knsv/mermaid/issues/73)
-- Graph edges appear to render outside of the canvas [\#70](https://github.com/knsv/mermaid/issues/70)
-- Make link text look like it is on the line [\#53](https://github.com/knsv/mermaid/issues/53)
-
-**Merged pull requests:**
-
-- 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))
-- 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)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1)
-
-**Closed issues:**
-
-- Non ASCII chars in labels [\#84](https://github.com/knsv/mermaid/issues/84)
-- 'undefined' titles of Quicklinks on the usage page [\#80](https://github.com/knsv/mermaid/issues/80)
-- \[cli\] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [\#71](https://github.com/knsv/mermaid/issues/71)
-- Neural Networks [\#39](https://github.com/knsv/mermaid/issues/39)
-- Support for sequence diagrams [\#16](https://github.com/knsv/mermaid/issues/16)
-- Client utility for mermaid [\#6](https://github.com/knsv/mermaid/issues/6)
-
-**Merged pull requests:**
-
-- Flowchart doc: Text in the circle now in a circle [\#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack))
-- Fix for issue \#73 [\#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a))
-- Ink template [\#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic))
-- Show help and version even if phantom isn't present. Fixes \#71 [\#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog))
-- Add apostrophe & 'and' [\#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki))
-
-## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0)
-
-**Closed issues:**
-
-- Consider shipping a standalone executable [\#65](https://github.com/knsv/mermaid/issues/65)
-- Trailing whitespace at the end of lines is not ignored [\#55](https://github.com/knsv/mermaid/issues/55)
-- How do I do comments? [\#47](https://github.com/knsv/mermaid/issues/47)
-- This characters failed the lexical parsing [\#46](https://github.com/knsv/mermaid/issues/46)
-- tutorial for creating new type of graph/layout [\#44](https://github.com/knsv/mermaid/issues/44)
-- Improve readability with new line as terminator and whitespace [\#38](https://github.com/knsv/mermaid/issues/38)
-- Use classes instead of inline style for easy styling [\#24](https://github.com/knsv/mermaid/issues/24)
-
-**Merged pull requests:**
-
-- Adds Command Line Interface for generating PNGs from mermaid description files [\#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog))
-- Allow special symbols for direction along with acronyms [\#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40))
-
-## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16)
-
-**Closed issues:**
-
-- Mermaid not rendering properly on Wordpress pages [\#59](https://github.com/knsv/mermaid/issues/59)
-- Improve example page with live demo [\#52](https://github.com/knsv/mermaid/issues/52)
-- Create image file via CLI? [\#48](https://github.com/knsv/mermaid/issues/48)
-- Does not render upon AngularJS Updates [\#45](https://github.com/knsv/mermaid/issues/45)
-- Download link in README.MD doesn't work. [\#42](https://github.com/knsv/mermaid/issues/42)
-- linkStyle usage is not obvious [\#41](https://github.com/knsv/mermaid/issues/41)
-- Move \*.spec.js in src/ to test/ [\#35](https://github.com/knsv/mermaid/issues/35)
-- Lines routed outside visible area [\#19](https://github.com/knsv/mermaid/issues/19)
-
-**Merged pull requests:**
-
-- New grammar will allow statements ending without semicolon as disccused in Issue \#38 [\#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40))
-- Class based styling [\#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes))
-- Fix typos [\#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino))
-- Included .DS_Store in gitignore [\#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq))
-- Improves readablity discussed in issue \#38 [\#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40))
-- Added a linting task for gulp [\#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv))
-
-## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15)
-
-**Closed issues:**
-
-- Question marks don't render properly with /dist/mermaid.full.min.js [\#30](https://github.com/knsv/mermaid/issues/30)
-- Error with some characters [\#25](https://github.com/knsv/mermaid/issues/25)
-- Provide parse function in browser without `require`? [\#21](https://github.com/knsv/mermaid/issues/21)
-- Better label text support [\#18](https://github.com/knsv/mermaid/issues/18)
-- Cap-cased words break parser [\#8](https://github.com/knsv/mermaid/issues/8)
-
-**Merged pull requests:**
-
-- Include bower_components/ to .gitignore [\#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv))
-- Fixed reference to Git repo. [\#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis))
-
-## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14)
-
-## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13)
-
-**Closed issues:**
-
-- modified init to be applied more than once [\#29](https://github.com/knsv/mermaid/issues/29)
-- Wanted to know build process for the project. [\#28](https://github.com/knsv/mermaid/issues/28)
-- Container support [\#27](https://github.com/knsv/mermaid/issues/27)
-- can not support Chinese description [\#20](https://github.com/knsv/mermaid/issues/20)
-- Node Label text mistaken for Direction [\#17](https://github.com/knsv/mermaid/issues/17)
-- Support unicode chars in labels [\#9](https://github.com/knsv/mermaid/issues/9)
-- Publish to NPM [\#7](https://github.com/knsv/mermaid/issues/7)
-
-## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10)
-
-## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9)
-
-**Closed issues:**
-
-- Add link to jsbin playground to README [\#11](https://github.com/knsv/mermaid/issues/11)
-- What are the requirements ? [\#10](https://github.com/knsv/mermaid/issues/10)
-
-**Merged pull requests:**
-
-- Allow unicode chars in labels [\#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige))
-
-## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8)
-
-## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7)
-
-**Closed issues:**
-
-- Provide parser as separate module [\#4](https://github.com/knsv/mermaid/issues/4)
-
-## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6)
-
-## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5)
-
-**Merged pull requests:**
-
-- Added new shapes! [\#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes))
-
-## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4)
-
-## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3)
-
-## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2)
-
-## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1)
-
-## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0)
-
-## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17)
-
-[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1)
-
-## [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)_
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 120000
index 000000000..c68d3f76d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1 @@
+./packages/mermaid/CHANGELOG.md
\ No newline at end of file
diff --git a/cypress/integration/rendering/block.spec.js b/cypress/integration/rendering/block.spec.js
index 589a30fde..f01d59375 100644
--- a/cypress/integration/rendering/block.spec.js
+++ b/cypress/integration/rendering/block.spec.js
@@ -384,4 +384,17 @@ describe('Block diagram', () => {
{}
);
});
+
+ it('BL30: block should overflow if too wide for columns', () => {
+ imgSnapshotTest(
+ `block-beta
+ columns 2
+ fit:2
+ overflow:3
+ short:1
+ also_overflow:2
+`,
+ {}
+ );
+ });
});
diff --git a/cypress/integration/rendering/classDiagram.spec.js b/cypress/integration/rendering/classDiagram.spec.js
index e7d201b5d..f66a2d6f3 100644
--- a/cypress/integration/rendering/classDiagram.spec.js
+++ b/cypress/integration/rendering/classDiagram.spec.js
@@ -495,4 +495,21 @@ describe('Class diagram', () => {
cy.get('a').should('have.attr', 'target', '_blank').should('have.attr', 'rel', 'noopener');
});
});
+
+ describe('Include char sequence "graph" in text (#6795)', () => {
+ it('has a label with char sequence "graph"', () => {
+ imgSnapshotTest(
+ `
+ classDiagram
+ class Person {
+ +String name
+ -Int id
+ #double age
+ +Text demographicProfile
+ }
+ `,
+ { flowchart: { defaultRenderer: 'elk' } }
+ );
+ });
+ });
});
diff --git a/cypress/integration/rendering/erDiagram.spec.js b/cypress/integration/rendering/erDiagram.spec.js
index cbfec8218..8f6193f96 100644
--- a/cypress/integration/rendering/erDiagram.spec.js
+++ b/cypress/integration/rendering/erDiagram.spec.js
@@ -354,4 +354,19 @@ ORDER ||--|{ LINE-ITEM : contains
{ logLevel: 1 }
);
});
+
+ describe('Include char sequence "graph" in text (#6795)', () => {
+ it('has a label with char sequence "graph"', () => {
+ imgSnapshotTest(
+ `
+ erDiagram
+ p[Photograph] {
+ varchar(12) jobId
+ date dateCreated
+ }
+ `,
+ { flowchart: { defaultRenderer: 'elk' } }
+ );
+ });
+ });
});
diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js
index 97fc1ecbd..9ad2b5604 100644
--- a/cypress/integration/rendering/flowchart-v2.spec.js
+++ b/cypress/integration/rendering/flowchart-v2.spec.js
@@ -1113,4 +1113,24 @@ end
);
});
});
+
+ it('6617: Per Link Curve Styling using edge Ids', () => {
+ imgSnapshotTest(
+ `flowchart TD
+ A e1@-->B e5@--> E
+ E e7@--> D
+ B e3@-->D
+ A e2@-->C e4@-->D
+ C e6@--> F
+ F e8@--> D
+ e1@{ curve: natural }
+ e2@{ curve: stepAfter }
+ e3@{ curve: monotoneY }
+ e4@{ curve: bumpY }
+ e5@{ curve: linear }
+ e6@{ curve: catmullRom }
+ e7@{ curve: cardinal }
+ `
+ );
+ });
});
diff --git a/cypress/integration/rendering/mindmap.spec.ts b/cypress/integration/rendering/mindmap.spec.ts
index 731f861ee..d76e58c56 100644
--- a/cypress/integration/rendering/mindmap.spec.ts
+++ b/cypress/integration/rendering/mindmap.spec.ts
@@ -246,5 +246,22 @@ Word!\`]
);
});
});
+ describe('Include char sequence "graph" in text (#6795)', () => {
+ it('has a label with char sequence "graph"', () => {
+ imgSnapshotTest(
+ `
+ mindmap
+ root
+ Photograph
+ Waterfall
+ Landscape
+ Geography
+ Mountains
+ Rocks
+ `,
+ { flowchart: { defaultRenderer: 'elk' } }
+ );
+ });
+ });
/* The end */
});
diff --git a/docs/config/setup/mermaid/interfaces/ParseOptions.md b/docs/config/setup/mermaid/interfaces/ParseOptions.md
index e3a968378..ea96f2706 100644
--- a/docs/config/setup/mermaid/interfaces/ParseOptions.md
+++ b/docs/config/setup/mermaid/interfaces/ParseOptions.md
@@ -10,7 +10,7 @@
# Interface: ParseOptions
-Defined in: [packages/mermaid/src/types.ts:59](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L59)
+Defined in: [packages/mermaid/src/types.ts:72](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L72)
## Properties
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:59](https://github.com/mermaid-js/mer
> `optional` **suppressErrors**: `boolean`
-Defined in: [packages/mermaid/src/types.ts:64](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L64)
+Defined in: [packages/mermaid/src/types.ts:77](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L77)
If `true`, parse will return `false` instead of throwing error when the diagram is invalid.
The `parseError` function will not be called.
diff --git a/docs/config/setup/mermaid/interfaces/ParseResult.md b/docs/config/setup/mermaid/interfaces/ParseResult.md
index 95d662b42..7a5990610 100644
--- a/docs/config/setup/mermaid/interfaces/ParseResult.md
+++ b/docs/config/setup/mermaid/interfaces/ParseResult.md
@@ -10,7 +10,7 @@
# Interface: ParseResult
-Defined in: [packages/mermaid/src/types.ts:67](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L67)
+Defined in: [packages/mermaid/src/types.ts:80](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L80)
## Properties
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:67](https://github.com/mermaid-js/mer
> **config**: [`MermaidConfig`](MermaidConfig.md)
-Defined in: [packages/mermaid/src/types.ts:75](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L75)
+Defined in: [packages/mermaid/src/types.ts:88](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L88)
The config passed as YAML frontmatter or directives
@@ -28,6 +28,6 @@ The config passed as YAML frontmatter or directives
> **diagramType**: `string`
-Defined in: [packages/mermaid/src/types.ts:71](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L71)
+Defined in: [packages/mermaid/src/types.ts:84](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L84)
The diagram type, e.g. 'flowchart', 'sequence', etc.
diff --git a/docs/config/setup/mermaid/interfaces/RenderResult.md b/docs/config/setup/mermaid/interfaces/RenderResult.md
index c6dc3cf08..fc5fac4f5 100644
--- a/docs/config/setup/mermaid/interfaces/RenderResult.md
+++ b/docs/config/setup/mermaid/interfaces/RenderResult.md
@@ -10,7 +10,7 @@
# Interface: RenderResult
-Defined in: [packages/mermaid/src/types.ts:85](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L85)
+Defined in: [packages/mermaid/src/types.ts:98](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L98)
## Properties
@@ -18,7 +18,7 @@ Defined in: [packages/mermaid/src/types.ts:85](https://github.com/mermaid-js/mer
> `optional` **bindFunctions**: (`element`) => `void`
-Defined in: [packages/mermaid/src/types.ts:103](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L103)
+Defined in: [packages/mermaid/src/types.ts:116](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L116)
Bind function to be called after the svg has been inserted into the DOM.
This is necessary for adding event listeners to the elements in the svg.
@@ -45,7 +45,7 @@ bindFunctions?.(div); // To call bindFunctions only if it's present.
> **diagramType**: `string`
-Defined in: [packages/mermaid/src/types.ts:93](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L93)
+Defined in: [packages/mermaid/src/types.ts:106](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L106)
The diagram type, e.g. 'flowchart', 'sequence', etc.
@@ -55,6 +55,6 @@ The diagram type, e.g. 'flowchart', 'sequence', etc.
> **svg**: `string`
-Defined in: [packages/mermaid/src/types.ts:89](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L89)
+Defined in: [packages/mermaid/src/types.ts:102](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/types.ts#L102)
The svg code for the rendered graph.
diff --git a/docs/diagrams/flowchart-code-flow.mmd b/docs/diagrams/flowchart-code-flow.mmd
new file mode 100644
index 000000000..d306dac7b
--- /dev/null
+++ b/docs/diagrams/flowchart-code-flow.mmd
@@ -0,0 +1,189 @@
+---
+references:
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDiagram.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDb.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDetector.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowRenderer-v3-unified.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/styles.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/types.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowChartShapes.js"
+ - "File: /packages/mermaid/src/diagrams/flowchart/parser/flowParser.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/elk/detector.ts"
+generationTime: 2025-07-23T10:31:53.266Z
+---
+flowchart TD
+ %% Entry Points and Detection
+ Input["User Input Text"] --> Detection{Detection Phase}
+
+ Detection --> flowDetector["flowDetector.ts
detector(txt, config)"]
+ Detection --> flowDetectorV2["flowDetector-v2.ts
detector(txt, config)"]
+ Detection --> elkDetector["elk/detector.ts
detector(txt, config)"]
+
+ flowDetector --> |"Checks /^\s*graph/"| DetectLegacy{Legacy Flowchart?}
+ flowDetectorV2 --> |"Checks /^\s*flowchart/"| DetectNew{New Flowchart?}
+ elkDetector --> |"Checks /^\s*flowchart-elk/"| DetectElk{ELK Layout?}
+
+ DetectLegacy --> |Yes| LoadDiagram
+ DetectNew --> |Yes| LoadDiagram
+ DetectElk --> |Yes| LoadDiagram
+
+ %% Loading Phase
+ LoadDiagram["loader() function"] --> flowDiagram["flowDiagram.ts
diagram object"]
+
+ flowDiagram --> DiagramStructure{Diagram Components}
+ DiagramStructure --> Parser["parser: flowParser"]
+ DiagramStructure --> Database["db: new FlowDB()"]
+ DiagramStructure --> Renderer["renderer: flowRenderer-v3-unified"]
+ DiagramStructure --> Styles["styles: flowStyles"]
+ DiagramStructure --> Init["init: (cnf: MermaidConfig)"]
+
+ %% Parser Phase
+ Parser --> flowParser["parser/flowParser.ts
newParser.parse(src)"]
+ flowParser --> |"Preprocesses src"| RemoveWhitespace["Remove trailing whitespace
src.replace(/}\s*\n/g, '}\n')"]
+ RemoveWhitespace --> flowJison["parser/flow.jison
flowJisonParser.parse(newSrc)"]
+
+ flowJison --> ParseGraph["Parse Graph Structure"]
+ ParseGraph --> ParseVertices["Parse Vertices"]
+ ParseGraph --> ParseEdges["Parse Edges"]
+ ParseGraph --> ParseSubgraphs["Parse Subgraphs"]
+ ParseGraph --> ParseClasses["Parse Classes"]
+ ParseGraph --> ParseStyles["Parse Styles"]
+
+ %% Database Phase - FlowDB Class
+ Database --> FlowDBClass["flowDb.ts
FlowDB class"]
+
+ FlowDBClass --> DBInit["constructor()
- Initialize counters
- Bind methods
- Setup toolTips
- Call clear()"]
+
+ DBInit --> DBMethods{FlowDB Methods}
+
+ DBMethods --> addVertex["addVertex(id, textObj, type, style,
classes, dir, props, metadata)"]
+ DBMethods --> addLink["addLink(_start[], _end[], linkData)"]
+ DBMethods --> addSingleLink["addSingleLink(_start, _end, type, id)"]
+ DBMethods --> setDirection["setDirection(dir)"]
+ DBMethods --> addSubGraph["addSubGraph(nodes[], id, title)"]
+ DBMethods --> addClass["addClass(id, style)"]
+ DBMethods --> setClass["setClass(ids, className)"]
+ DBMethods --> setTooltip["setTooltip(ids, tooltip)"]
+ DBMethods --> setClickEvent["setClickEvent(id, functionName, args)"]
+ DBMethods --> setClickFun["setClickFun(id, functionName, args)"]
+
+ %% Vertex Processing
+ addVertex --> VertexProcess{Vertex Processing}
+ VertexProcess --> CreateVertex["Create FlowVertex object
- id, labelType, domId
- styles[], classes[]"]
+ VertexProcess --> SanitizeText["sanitizeText(textObj.text)"]
+ VertexProcess --> ParseMetadata["Parse YAML metadata
yaml.load(yamlData)"]
+ VertexProcess --> SetVertexProps["Set vertex properties
- shape, label, icon, form
- pos, img, constraint, w, h"]
+
+ %% Edge Processing
+ addSingleLink --> EdgeProcess{Edge Processing}
+ EdgeProcess --> CreateEdge["Create FlowEdge object
- start, end, type, text
- labelType, classes[]"]
+ EdgeProcess --> ProcessLinkText["Process link text
- sanitizeText()
- strip quotes"]
+ EdgeProcess --> SetEdgeProps["Set edge properties
- type, stroke, length"]
+ EdgeProcess --> GenerateEdgeId["Generate edge ID
getEdgeId(start, end, counter)"]
+ EdgeProcess --> ValidateEdgeLimit["Validate edge limit
maxEdges check"]
+
+ %% Data Collection
+ DBMethods --> GetData["getData()"]
+ GetData --> CollectNodes["Collect nodes[] from vertices"]
+ GetData --> CollectEdges["Collect edges[] from edges"]
+ GetData --> ProcessSubGraphs["Process subgraphs
- parentDB Map
- subGraphDB Map"]
+ GetData --> AddNodeFromVertex["addNodeFromVertex()
for each vertex"]
+ GetData --> ProcessEdgeTypes["destructEdgeType()
arrowTypeStart, arrowTypeEnd"]
+
+ %% Node Creation
+ AddNodeFromVertex --> NodeCreation{Node Creation}
+ NodeCreation --> FindExistingNode["findNode(nodes, vertex.id)"]
+ NodeCreation --> CreateBaseNode["Create base node
- id, label, parentId
- cssStyles, cssClasses
- shape, domId, tooltip"]
+ NodeCreation --> GetCompiledStyles["getCompiledStyles(classDefs)"]
+ NodeCreation --> GetTypeFromVertex["getTypeFromVertex(vertex)"]
+
+ %% Rendering Phase
+ Renderer --> flowRendererV3["flowRenderer-v3-unified.ts
draw(text, id, version, diag)"]
+
+ flowRendererV3 --> RenderInit["Initialize rendering
- getConfig()
- handle securityLevel
- getDiagramElement()"]
+
+ RenderInit --> GetLayoutData["diag.db.getData()
as LayoutData"]
+ GetLayoutData --> SetupLayoutData["Setup layout data
- type, layoutAlgorithm
- direction, spacing
- markers, diagramId"]
+
+ SetupLayoutData --> CallRender["render(data4Layout, svg)"]
+ CallRender --> SetupViewPort["setupViewPortForSVG(svg, padding)"]
+ SetupViewPort --> ProcessLinks["Process vertex links
- create anchor elements
- handle click events"]
+
+ %% Shape Rendering
+ CallRender --> ShapeSystem["flowChartShapes.js
Shape Functions"]
+
+ ShapeSystem --> ShapeFunctions{Shape Functions}
+ ShapeFunctions --> question["question(parent, bbox, node)"]
+ ShapeFunctions --> hexagon["hexagon(parent, bbox, node)"]
+ ShapeFunctions --> rect_left_inv_arrow["rect_left_inv_arrow(parent, bbox, node)"]
+ ShapeFunctions --> lean_right["lean_right(parent, bbox, node)"]
+ ShapeFunctions --> lean_left["lean_left(parent, bbox, node)"]
+
+ ShapeFunctions --> insertPolygonShape["insertPolygonShape(parent, w, h, points)"]
+ ShapeFunctions --> intersectPolygon["intersectPolygon(node, points, point)"]
+ ShapeFunctions --> intersectRect["intersectRect(node, point)"]
+
+ %% Styling System
+ Styles --> stylesTS["styles.ts
getStyles(options)"]
+ stylesTS --> StyleOptions["FlowChartStyleOptions
- arrowheadColor, border2
- clusterBkg, mainBkg
- fontFamily, textColor"]
+
+ StyleOptions --> GenerateCSS["Generate CSS styles
- .label, .cluster-label
- .node, .edgePath
- .flowchart-link, .edgeLabel"]
+ GenerateCSS --> GetIconStyles["getIconStyles()"]
+
+ %% Type System
+ Parser --> TypeSystem["types.ts
Type Definitions"]
+ TypeSystem --> FlowVertex["FlowVertex interface"]
+ TypeSystem --> FlowEdge["FlowEdge interface"]
+ TypeSystem --> FlowClass["FlowClass interface"]
+ TypeSystem --> FlowSubGraph["FlowSubGraph interface"]
+ TypeSystem --> FlowVertexTypeParam["FlowVertexTypeParam
Shape types"]
+
+ %% Utility Functions
+ DBMethods --> UtilityFunctions{Utility Functions}
+ UtilityFunctions --> lookUpDomId["lookUpDomId(id)"]
+ UtilityFunctions --> getClasses["getClasses()"]
+ UtilityFunctions --> getDirection["getDirection()"]
+ UtilityFunctions --> getVertices["getVertices()"]
+ UtilityFunctions --> getEdges["getEdges()"]
+ UtilityFunctions --> getSubGraphs["getSubGraphs()"]
+ UtilityFunctions --> clear["clear()"]
+ UtilityFunctions --> defaultConfig["defaultConfig()"]
+
+ %% Event Handling
+ ProcessLinks --> EventHandling{Event Handling}
+ EventHandling --> setupToolTips["setupToolTips(element)"]
+ EventHandling --> bindFunctions["bindFunctions(element)"]
+ EventHandling --> runFunc["utils.runFunc(functionName, args)"]
+
+ %% Common Database Functions
+ DBMethods --> CommonDB["commonDb.js functions"]
+ CommonDB --> setAccTitle["setAccTitle()"]
+ CommonDB --> getAccTitle["getAccTitle()"]
+ CommonDB --> setAccDescription["setAccDescription()"]
+ CommonDB --> getAccDescription["getAccDescription()"]
+ CommonDB --> setDiagramTitle["setDiagramTitle()"]
+ CommonDB --> getDiagramTitle["getDiagramTitle()"]
+ CommonDB --> commonClear["clear()"]
+
+ %% Final Output
+ ProcessLinks --> FinalSVG["Final SVG Output"]
+
+ %% Layout Algorithm Selection
+ SetupLayoutData --> LayoutAlgorithm{Layout Algorithm}
+ LayoutAlgorithm --> Dagre["dagre
(default)"]
+ LayoutAlgorithm --> DagreWrapper["dagre-wrapper
(v2 renderer)"]
+ LayoutAlgorithm --> ELK["elk
(external package)"]
+
+ %% Testing Components
+ FlowDBClass --> TestFiles["Test Files"]
+ TestFiles --> flowDbSpec["flowDb.spec.ts"]
+ TestFiles --> flowChartShapesSpec["flowChartShapes.spec.js"]
+ TestFiles --> ParserTests["parser/*.spec.js files
- flow-text.spec.js
- flow-edges.spec.js
- flow-style.spec.js
- subgraph.spec.js"]
+
+ %% Configuration
+ Init --> ConfigSetup["Configuration Setup"]
+ ConfigSetup --> FlowchartConfig["cnf.flowchart config"]
+ ConfigSetup --> ArrowMarkers["arrowMarkerAbsolute"]
+ ConfigSetup --> LayoutConfig["layout config"]
+ ConfigSetup --> SetConfig["setConfig() calls"]
\ No newline at end of file
diff --git a/docs/diagrams/mermaid-api-sequence.mmd b/docs/diagrams/mermaid-api-sequence.mmd
new file mode 100644
index 000000000..ce7597525
--- /dev/null
+++ b/docs/diagrams/mermaid-api-sequence.mmd
@@ -0,0 +1,307 @@
+---
+references:
+ - "File: /packages/mermaid/src/mermaidAPI.ts"
+ - "File: /packages/mermaid/src/mermaid.ts"
+generationTime: 2025-01-28T16:30:00.000Z
+---
+sequenceDiagram
+ participant User as User/Browser
+ participant Mermaid as mermaid.ts
+ participant Queue as executionQueue
+ participant API as mermaidAPI.ts
+ participant Config as configApi
+ participant Preprocessor as preprocessDiagram
+ participant DiagramAPI as diagram-api
+ participant Diagram as Diagram.fromText
+ participant Renderer as diagram.renderer
+ participant Styles as Styling System
+ participant DOM as DOM/SVG
+
+ Note over User, DOM: Mermaid Complete API Flow
+
+ %% Initialization Phase
+ User->>+Mermaid: mermaid.initialize(config)
+ Mermaid->>+API: mermaidAPI.initialize(config)
+
+ API->>API: assignWithDepth({}, userOptions)
+ API->>API: handle legacy fontFamily config
+ API->>Config: saveConfigFromInitialize(options)
+
+ alt Theme Configuration Available
+ API->>API: check if theme in theme object
+ API->>API: set themeVariables from theme
+ else Default Theme
+ API->>API: use default theme variables
+ end
+
+ API->>Config: setSiteConfig(options) or getSiteConfig()
+ API->>API: setLogLevel(config.logLevel)
+ API->>DiagramAPI: addDiagrams()
+
+ API-->>-Mermaid: initialization complete
+ Mermaid-->>-User: ready to render
+
+ %% Content Loaded Event
+ User->>DOM: document.load event
+ DOM->>+Mermaid: contentLoaded()
+
+ opt startOnLoad is true
+ Mermaid->>Config: getConfig()
+ Config-->>Mermaid: { startOnLoad: true }
+ Mermaid->>Mermaid: run()
+ end
+
+ Mermaid-->>-DOM: event handling complete
+
+ %% Main Run Function
+ User->>+Mermaid: mermaid.run(options)
+
+ Mermaid->>Mermaid: runThrowsErrors(options)
+ Mermaid->>Config: getConfig()
+ Config-->>Mermaid: configuration object
+
+ alt nodes provided
+ Mermaid->>Mermaid: use provided nodes
+ else querySelector provided
+ Mermaid->>DOM: document.querySelectorAll(querySelector)
+ DOM-->>Mermaid: nodesToProcess
+ end
+
+ Mermaid->>Mermaid: new InitIDGenerator(deterministicIds, seed)
+
+ loop For each diagram element
+ Mermaid->>DOM: check element.getAttribute('data-processed')
+
+ opt not processed
+ Mermaid->>DOM: element.setAttribute('data-processed', 'true')
+ Mermaid->>Mermaid: generate unique id
+ Mermaid->>DOM: get element.innerHTML
+ Mermaid->>Mermaid: entityDecode and clean text
+ Mermaid->>Mermaid: detectInit(txt)
+
+ Mermaid->>Queue: render(id, txt, element)
+ end
+ end
+
+ Mermaid-->>-User: processing initiated
+
+ %% Render Function (Queued)
+ activate Queue
+ Queue->>+API: mermaidAPI.render(id, text, container)
+
+ API->>DiagramAPI: addDiagrams()
+ API->>+Preprocessor: processAndSetConfigs(text)
+
+ Preprocessor->>Preprocessor: preprocessDiagram(text)
+ Preprocessor->>Config: reset()
+ Preprocessor->>Config: addDirective(processed.config)
+ Preprocessor-->>-API: { code, config }
+
+ API->>Config: getConfig()
+ Config-->>API: current configuration
+
+ opt text length > maxTextSize
+ API->>API: text = MAX_TEXTLENGTH_EXCEEDED_MSG
+ end
+
+ API->>API: setup id selectors and element IDs
+ API->>API: determine security level (sandbox/loose)
+
+ %% DOM Setup
+ alt svgContainingElement provided
+ alt isSandboxed
+ API->>DOM: sandboxedIframe(select(svgContainingElement), iFrameID)
+ API->>DOM: select iframe contentDocument body
+ else
+ API->>DOM: select(svgContainingElement)
+ end
+ else no container
+ API->>API: removeExistingElements(document, id, divId, iFrameId)
+ alt isSandboxed
+ API->>DOM: sandboxedIframe(select('body'), iFrameID)
+ else
+ API->>DOM: select('body')
+ end
+ end
+
+ API->>DOM: appendDivSvgG(root, id, enclosingDivID, fontFamily, XMLNS_XLINK_STD)
+
+ %% Diagram Creation
+ API->>+Diagram: Diagram.fromText(text, { title: processed.title })
+
+ Diagram->>DiagramAPI: detect diagram type
+ Diagram->>DiagramAPI: load appropriate diagram
+ Diagram-->>-API: diagram instance
+
+ opt parsing error occurred
+ API->>+Diagram: Diagram.fromText('error')
+ Diagram-->>-API: error diagram
+ API->>API: store parseEncounteredException
+ end
+
+ %% Style Generation
+ API->>DOM: get svg element and firstChild
+ API->>Renderer: diag.renderer.getClasses(text, diag)
+ Renderer-->>API: diagramClassDefs
+
+ API->>+Styles: createUserStyles(config, diagramType, diagramClassDefs, idSelector)
+
+ Styles->>Styles: createCssStyles(config, classDefs)
+
+ opt config.themeCSS defined
+ Styles->>Styles: append themeCSS
+ end
+
+ opt fontFamily configured
+ Styles->>Styles: add CSS variables for fonts
+ end
+
+ opt classDefs exist
+ loop For each styleClassDef
+ opt has styles
+ Styles->>Styles: cssImportantStyles for each CSS element
+ end
+ opt has textStyles
+ Styles->>Styles: cssImportantStyles for tspan elements
+ end
+ end
+ end
+
+ Styles->>Styles: getStyles(graphType, userCSSstyles, themeVariables)
+ Styles->>Styles: serialize(compile(svgId{allStyles}), stringify)
+ Styles-->>-API: compiled CSS rules
+
+ API->>DOM: create style element
+ API->>DOM: style.innerHTML = rules
+ API->>DOM: svg.insertBefore(style, firstChild)
+
+ %% Diagram Rendering
+ API->>+Renderer: diag.renderer.draw(text, id, version, diag)
+
+ Renderer->>Renderer: diagram-specific rendering logic
+ Renderer->>DOM: create SVG elements
+ Renderer->>DOM: apply positioning and styling
+ Renderer-->>-API: rendered diagram
+
+ opt rendering error
+ alt suppressErrorRendering
+ API->>API: removeTempElements()
+ API->>Mermaid: throw error
+ else
+ API->>Renderer: errorRenderer.draw(text, id, version)
+ end
+ end
+
+ %% Accessibility and Cleanup
+ API->>DOM: select svg element
+ API->>Diagram: diag.db.getAccTitle()
+ API->>Diagram: diag.db.getAccDescription()
+ API->>API: addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr)
+
+ API->>DOM: set xmlns for foreignobject elements
+ API->>DOM: get innerHTML from enclosing div
+
+ API->>+API: cleanUpSvgCode(svgCode, isSandboxed, arrowMarkerAbsolute)
+
+ opt not useArrowMarkerUrls and not sandboxed
+ API->>API: replace marker-end URLs with anchors
+ end
+
+ API->>API: decodeEntities(svgCode)
+ API->>API: replace
with
+ API-->>-API: cleaned SVG code
+
+ alt isSandboxed
+ API->>+API: putIntoIFrame(svgCode, svgEl)
+ API->>API: calculate iframe height
+ API->>API: toBase64 encode SVG content
+ API->>API: create iframe with sandbox attributes
+ API-->>-API: iframe HTML
+ else not loose security
+ API->>API: DOMPurify.sanitize(svgCode, options)
+ end
+
+ API->>API: attachFunctions()
+ API->>API: removeTempElements()
+
+ opt parseEncounteredException
+ API->>Mermaid: throw parseEncounteredException
+ end
+
+ API-->>-Queue: { diagramType, svg: svgCode, bindFunctions }
+
+ %% Return to Web Integration
+ activate Mermaid
+ Queue-->>Mermaid: render result
+ Mermaid->>DOM: element.innerHTML = svg
+
+ opt postRenderCallback
+ Mermaid->>User: postRenderCallback(id)
+ end
+
+ opt bindFunctions exist
+ Mermaid->>DOM: bindFunctions(element)
+ end
+ deactivate Mermaid
+
+ %% Parse Function Flow
+ User->>+Mermaid: mermaid.parse(text, parseOptions)
+ activate Queue
+
+ Queue->>+API: mermaidAPI.parse(text, parseOptions)
+
+ API->>DiagramAPI: addDiagrams()
+ API->>Preprocessor: processAndSetConfigs(text)
+ Preprocessor-->>API: { code, config }
+ API->>Diagram: getDiagramFromText(code)
+ Diagram-->>API: diagram instance
+ API-->>-Queue: { diagramType: diagram.type, config }
+
+ Queue-->>-Mermaid: parse result
+ Mermaid-->>-User: ParseResult or false
+
+ %% External Diagram Registration
+ User->>+Mermaid: registerExternalDiagrams(diagrams, options)
+
+ Mermaid->>DiagramAPI: addDiagrams()
+ Mermaid->>DiagramAPI: registerLazyLoadedDiagrams(...diagrams)
+
+ opt lazyLoad is false
+ Mermaid->>DiagramAPI: loadRegisteredDiagrams()
+ end
+
+ Mermaid-->>-User: registration complete
+
+ %% Error Handling
+ Note over Mermaid, API: Error Handling Throughout
+ alt Error occurs
+ API->>Mermaid: throw error
+ Mermaid->>+Mermaid: handleError(error, errors, parseError)
+
+ Mermaid->>Mermaid: log.warn(error)
+
+ alt isDetailedError
+ Mermaid->>User: parseError(error.str, error.hash)
+ else
+ Mermaid->>User: parseError(error)
+ end
+
+ opt not suppressErrors
+ Mermaid->>User: throw error
+ end
+
+ Mermaid-->>-User: error handled
+ end
+
+ %% Configuration Details
+ Note over Config: Configuration Functions
+ Note right of Config: Functions:
- reset()
- getConfig()
- setConfig()
- getSiteConfig()
- updateSiteConfig()
- saveConfigFromInitialize()
+
+ Note over Styles: CSS Generation
+ Note right of Styles: Features:
- createCssStyles()
- createUserStyles()
- cssImportantStyles()
- Theme integration
- Class definitions
+
+ Note over API: Security Levels
+ Note right of API: Modes:
- sandbox: iframe isolation
- loose: minimal sanitization
- default: DOMPurify sanitization
+
+ Note over API: Helper Functions
+ Note right of API: Utilities:
- cleanUpSvgCode()
- putIntoIFrame()
- appendDivSvgG()
- removeExistingElements()
\ No newline at end of file
diff --git a/docs/diagrams/mindmap-implementation-sequence.mmd b/docs/diagrams/mindmap-implementation-sequence.mmd
new file mode 100644
index 000000000..335855380
--- /dev/null
+++ b/docs/diagrams/mindmap-implementation-sequence.mmd
@@ -0,0 +1,180 @@
+---
+references:
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapDb.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/detector.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/styles.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/svgDraw.ts"
+generationTime: 2025-01-28T16:00:00.000Z
+---
+sequenceDiagram
+ participant User as User Input Text
+ participant Detector as detector.ts
+ participant Loader as DiagramLoader
+ participant Definition as mindmap-definition.ts
+ participant Parser as parser/mindmap.jison
+ participant DB as MindmapDB
+ participant Renderer as mindmapRenderer.ts
+ participant Cytoscape as cytoscape.js
+ participant SVGDraw as svgDraw.ts
+ participant Styles as styles.ts
+ participant Output as Final SVG
+
+ Note over User, Output: Mindmap Implementation Flow
+
+ %% Detection Phase
+ User->>Detector: /^\s*mindmap/ text input
+ activate Detector
+ Detector->>Detector: detector(txt) validates pattern
+ Detector->>Loader: loader() function called
+ deactivate Detector
+
+ activate Loader
+ Loader->>Definition: import mindmap-definition.js
+ deactivate Loader
+
+ %% Core Structure Setup
+ activate Definition
+ Definition->>DB: get db() → new MindmapDB()
+ Definition->>Renderer: setup renderer
+ Definition->>Parser: setup parser
+ Definition->>Styles: setup styles
+ deactivate Definition
+
+ %% Database Initialization
+ activate DB
+ Note over DB: MindmapDB Constructor
+ DB->>DB: initialize nodes array
+ DB->>DB: setup nodeType constants
+ DB->>DB: bind methods
+ DB->>DB: clear() state
+
+ %% Parsing Phase
+ activate Parser
+ User->>Parser: mindmap syntax text
+
+ loop For each node in hierarchy
+ Parser->>DB: addNode(level, id, descr, type)
+ activate DB
+ DB->>DB: sanitizeText(id, descr)
+ DB->>DB: getType(startStr, endStr)
+ Note right of DB: Shape Detection:
[ → RECT
( → ROUNDED_RECT
(( → CIRCLE
)) → BANG
{{ → HEXAGON
+ DB->>DB: getParent(level)
+ DB->>DB: create MindmapNode
+ DB->>DB: add to hierarchy
+ deactivate DB
+ end
+
+ opt Icon/Class Decoration
+ Parser->>DB: decorateNode(decoration)
+ DB->>DB: set icon/class properties
+ end
+ deactivate Parser
+
+ %% Data Preparation
+ Renderer->>DB: getData() for layout
+ activate DB
+ DB->>DB: collect all nodes
+ DB->>DB: build parent-child relationships
+ DB-->>Renderer: return node hierarchy
+ deactivate DB
+
+ %% Rendering Pipeline
+ activate Renderer
+ Note over Renderer: Rendering Phase
+
+ Renderer->>Cytoscape: initialize cytoscape
+ activate Cytoscape
+
+ loop For each node in mindmap
+ Renderer->>Cytoscape: addNodes(mindmap, cy, conf, level)
+ Cytoscape->>Cytoscape: create node data
+ Cytoscape->>Cytoscape: set position (x, y)
+ end
+
+ loop For parent-child relationships
+ Renderer->>Cytoscape: add edges
+ Cytoscape->>Cytoscape: create edge data
+ end
+
+ Renderer->>Cytoscape: configure cose-bilkent layout
+ Cytoscape->>Cytoscape: calculate optimal positions
+ Cytoscape-->>Renderer: return positioned graph
+ deactivate Cytoscape
+
+ %% SVG Generation
+ Renderer->>SVGDraw: drawNodes(db, svg, mindmap, section, conf)
+ activate SVGDraw
+
+ loop For each node recursively
+ SVGDraw->>SVGDraw: select shape function
+
+ alt Default Shape
+ SVGDraw->>SVGDraw: defaultBkg() - rounded rectangle
+ else Rectangle Shape
+ SVGDraw->>SVGDraw: rectBkg() - sharp corners
+ else Circle Shape
+ SVGDraw->>SVGDraw: circleBkg() - perfect circle
+ else Cloud Shape
+ SVGDraw->>SVGDraw: cloudBkg() - organic curves
+ else Bang Shape
+ SVGDraw->>SVGDraw: bangBkg() - explosion style
+ else Hexagon Shape
+ SVGDraw->>SVGDraw: hexagonBkg() - six sides
+ end
+
+ SVGDraw->>SVGDraw: create SVG elements
+ SVGDraw->>SVGDraw: add text labels
+ SVGDraw->>SVGDraw: position node
+
+ opt Node has children
+ SVGDraw->>SVGDraw: drawNodes() recursive call
+ end
+ end
+ deactivate SVGDraw
+
+ %% Edge Rendering
+ Renderer->>Renderer: drawEdges(edgesEl, cy)
+ loop For each edge
+ Renderer->>Renderer: extract edge bounds
+ Renderer->>Renderer: draw SVG path
+ end
+
+ %% Styling Application
+ Renderer->>Styles: getStyles(options)
+ activate Styles
+
+ Styles->>Styles: genSections(options)
+ loop For THEME_COLOR_LIMIT sections
+ Styles->>Styles: generate color scale
+ Styles->>Styles: create CSS rules
+ Note right of Styles: .section-X fills
.edge-depth-X widths
.node-icon-X colors
+ end
+
+ Styles->>Styles: apply theme integration
+ Styles-->>Renderer: return compiled CSS
+ deactivate Styles
+
+ %% Final Assembly
+ Renderer->>Output: selectSvgElement()
+ Renderer->>Output: setupGraphViewbox()
+ Renderer->>Output: apply styles
+ Renderer->>Output: add interactive elements
+ deactivate Renderer
+
+ activate Output
+ Note over Output: Final Mindmap Features
+ Output->>Output: responsive layout
+ Output->>Output: accessibility attributes
+ Output->>Output: hover effects
+ Output->>Output: click handling
+ Output-->>User: rendered mindmap
+ deactivate Output
+
+ %% Configuration Details
+ Note over DB, Styles: Configuration Options
+ Note right of DB: Padding Calculations:
Base padding from config
RECT: ×2 padding
ROUNDED_RECT: ×2 padding
HEXAGON: ×2 padding
+ Note right of Styles: Section Management:
MAX_SECTIONS = 12
Dynamic color generation
Git theme integration
+ Note right of Renderer: Layout Parameters:
Cytoscape configuration
coseBilkent settings
Node spacing rules
\ No newline at end of file
diff --git a/docs/ecosystem/integrations-community.md b/docs/ecosystem/integrations-community.md
index 463fcfae7..e86abfd81 100644
--- a/docs/ecosystem/integrations-community.md
+++ b/docs/ecosystem/integrations-community.md
@@ -84,6 +84,7 @@ To add an integration to this list, see the [Integrations - create page](./integ
LLM integrations to create mermaid diagrams using AI from text descriptions.
- [HueHive - Create mermaid diagrams with text](https://huehive.co/tools/diagrams)
+- [MCP Server Mermaid](https://github.com/hustcc/mcp-mermaid) - Generate mermaid diagram and chart with AI MCP dynamically.
### CRM/ERP
@@ -103,6 +104,7 @@ Blogging frameworks and platforms
- [Mermaid](https://nextra.site/docs/guide/mermaid)
- [WordPress](https://wordpress.org)
- [MerPRess](https://wordpress.org/plugins/merpress/)
+ - [WP Documentation](https://wordpress.org/themes/wp-documentation/)
### CMS/ECM
diff --git a/docs/ecosystem/integrations-create.md b/docs/ecosystem/integrations-create.md
index 921368406..9538243f3 100644
--- a/docs/ecosystem/integrations-create.md
+++ b/docs/ecosystem/integrations-create.md
@@ -16,9 +16,7 @@ Applications that support Mermaid files [SHOULD](https://datatracker.ietf.org/do
### MIME Type
-The recommended [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) for Mermaid media is `text/vnd.mermaid`.
-
-Currently pending [IANA](https://www.iana.org/) recognition.
+The recommended [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) for Mermaid media is [`text/vnd.mermaid`](https://www.iana.org/assignments/media-types/application/vnd.mermaid).
## Showcase
diff --git a/docs/syntax/flowchart.md b/docs/syntax/flowchart.md
index 243592515..5f827e52a 100644
--- a/docs/syntax/flowchart.md
+++ b/docs/syntax/flowchart.md
@@ -1795,15 +1795,54 @@ It is possible to style the type of curve used for lines between items, if the d
Available curve styles include `basis`, `bumpX`, `bumpY`, `cardinal`, `catmullRom`, `linear`, `monotoneX`, `monotoneY`,
`natural`, `step`, `stepAfter`, and `stepBefore`.
+For a full list of available curves, including an explanation of custom curves, refer to
+the [Shapes](https://d3js.org/d3-shape/curve) documentation in the [d3-shape](https://github.com/d3/d3-shape/) project.
+
+Line styling can be achieved in two ways:
+
+1. Change the curve style of all the lines
+2. Change the curve style of a particular line
+
+#### Diagram level curve style
+
In this example, a left-to-right graph uses the `stepBefore` curve style:
```
-%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%%
+---
+config:
+ flowchart:
+ curve: stepBefore
+---
graph LR
```
-For a full list of available curves, including an explanation of custom curves, refer to
-the [Shapes](https://d3js.org/d3-shape/curve) documentation in the [d3-shape](https://github.com/d3/d3-shape/) project.
+#### Edge level curve style using Edge IDs (v\
+)
+
+You can assign IDs to [edges](#attaching-an-id-to-edges). After assigning an ID you can modify the line style by modifying the edge's `curve` property using the following syntax:
+
+```mermaid-example
+flowchart LR
+ A e1@==> B
+ A e2@--> C
+ e1@{ curve: linear }
+ e2@{ curve: natural }
+```
+
+```mermaid
+flowchart LR
+ A e1@==> B
+ A e2@--> C
+ e1@{ curve: linear }
+ e2@{ curve: natural }
+```
+
+```info
+Any edge curve style modified at the edge level overrides the diagram level style.
+```
+
+```info
+If the same edge is modified multiple times the last modification will be rendered.
+```
### Styling a node
diff --git a/package.json b/package.json
index e85e380f9..ddd0446ed 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
"@argos-ci/cypress": "^5.0.2",
"@changesets/changelog-github": "^0.5.1",
"@changesets/cli": "^2.27.12",
- "@cspell/eslint-plugin": "^8.19.3",
+ "@cspell/eslint-plugin": "^8.19.4",
"@cypress/code-coverage": "^3.12.49",
"@eslint/js": "^9.26.0",
"@rollup/plugin-typescript": "^12.1.2",
@@ -94,17 +94,17 @@
"cypress-split": "^1.24.14",
"esbuild": "^0.25.0",
"eslint": "^9.26.0",
- "eslint-config-prettier": "^10.1.1",
+ "eslint-config-prettier": "^10.1.8",
"eslint-plugin-cypress": "^4.3.0",
- "eslint-plugin-html": "^8.1.2",
- "eslint-plugin-jest": "^28.11.0",
- "eslint-plugin-jsdoc": "^50.6.9",
+ "eslint-plugin-html": "^8.1.3",
+ "eslint-plugin-jest": "^28.14.0",
+ "eslint-plugin-jsdoc": "^50.8.0",
"eslint-plugin-json": "^4.0.1",
"eslint-plugin-lodash": "^8.0.0",
"eslint-plugin-markdown": "^5.1.0",
"eslint-plugin-no-only-tests": "^3.3.0",
"eslint-plugin-tsdoc": "^0.4.0",
- "eslint-plugin-unicorn": "^59.0.0",
+ "eslint-plugin-unicorn": "^59.0.1",
"express": "^5.1.0",
"globals": "^16.0.0",
"globby": "^14.0.2",
@@ -126,7 +126,7 @@
"tslib": "^2.8.1",
"tsx": "^4.7.3",
"typescript": "~5.7.3",
- "typescript-eslint": "^8.32.0",
+ "typescript-eslint": "^8.38.0",
"vite": "^7.0.3",
"vite-plugin-istanbul": "^7.0.0",
"vitest": "^3.0.6"
diff --git a/packages/examples/CHANGELOG.md b/packages/examples/CHANGELOG.md
new file mode 100644
index 000000000..befef1a41
--- /dev/null
+++ b/packages/examples/CHANGELOG.md
@@ -0,0 +1,14 @@
+# @mermaid-js/examples
+
+## 1.0.0
+
+### Minor Changes
+
+- [#6453](https://github.com/mermaid-js/mermaid/pull/6453) [`4936ef5`](https://github.com/mermaid-js/mermaid/commit/4936ef5c306d2f892cca9a95a5deac4af6d4882b) Thanks [@sidharthv96](https://github.com/sidharthv96)! - feat: Add examples for diagrams in the `@mermaid-js/examples` package
+
+### Patch Changes
+
+- [#6510](https://github.com/mermaid-js/mermaid/pull/6510) [`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6) Thanks [@sidharthv96](https://github.com/sidharthv96)! - chore: Move packet diagram out of beta
+
+- Updated dependencies [[`5acbd7e`](https://github.com/mermaid-js/mermaid/commit/5acbd7e762469d9d89a9c77faf6617ee13367f3a), [`d90634b`](https://github.com/mermaid-js/mermaid/commit/d90634bf2b09e586b055729e07e9a1a31b21827c), [`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6), [`3e3ae08`](https://github.com/mermaid-js/mermaid/commit/3e3ae089305e1c7b9948b9e149eba6854fe7f2d6), [`d3e2be3`](https://github.com/mermaid-js/mermaid/commit/d3e2be35be066adeb7fd502b4a24c223c3b53947), [`637680d`](https://github.com/mermaid-js/mermaid/commit/637680d4d9e39b4f8cb6f05b4cb261e8f5693ac3)]:
+ - mermaid@11.9.0
diff --git a/packages/examples/README.md b/packages/examples/README.md
new file mode 100644
index 000000000..603d0cea8
--- /dev/null
+++ b/packages/examples/README.md
@@ -0,0 +1,41 @@
+# @mermaid-js/examples
+
+The `@mermaid-js/examples` package contains a collection of examples used by tools like [mermaid.live](https://mermaid.live) to help users get started with new diagrams.
+
+You can duplicate an existing diagram example file, e.g., `packages/examples/src/examples/flowchart.ts`, and modify it with details specific to your diagram.
+
+Then, import the example in the `packages/examples/src/index.ts` file and add it to the `examples` array.
+
+Each diagram should have at least one example, which should be marked as the default. It's a good idea to add more examples to showcase different features of the diagram.
+
+## Usage
+
+```bash
+pnpm add @mermaid-js/examples
+```
+
+A sample usage of the package in mermaid.live, to get the default example for every diagram type:
+
+```ts
+import { diagramData } from '@mermaid-js/examples';
+
+type DiagramDefinition = (typeof diagramData)[number];
+
+const isValidDiagram = (diagram: DiagramDefinition): diagram is Required => {
+ return Boolean(diagram.name && diagram.examples && diagram.examples.length > 0);
+};
+
+export const getSampleDiagrams = () => {
+ const diagrams = diagramData
+ .filter((d) => isValidDiagram(d))
+ .map(({ examples, ...rest }) => ({
+ ...rest,
+ example: examples?.filter(({ isDefault }) => isDefault)[0],
+ }));
+ const examples: Record = {};
+ for (const diagram of diagrams) {
+ examples[diagram.name.replace(/ (Diagram|Chart|Graph)/, '')] = diagram.example.code;
+ }
+ return examples;
+};
+```
diff --git a/packages/examples/package.json b/packages/examples/package.json
index 90abc9da9..26ae83e15 100644
--- a/packages/examples/package.json
+++ b/packages/examples/package.json
@@ -1,6 +1,6 @@
{
"name": "@mermaid-js/examples",
- "version": "0.0.1-beta.1",
+ "version": "1.0.0",
"description": "Mermaid examples package",
"author": "Sidharth Vinod",
"type": "module",
@@ -16,6 +16,10 @@
"files": [
"dist"
],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/mermaid-js/mermaid"
+ },
"scripts": {
"clean": "rimraf dist"
},
diff --git a/packages/mermaid-zenuml/README.md b/packages/mermaid-zenuml/README.md
deleted file mode 120000
index 4300aecbe..000000000
--- a/packages/mermaid-zenuml/README.md
+++ /dev/null
@@ -1 +0,0 @@
-../mermaid/src/docs/syntax/zenuml.md
diff --git a/packages/mermaid-zenuml/README.md b/packages/mermaid-zenuml/README.md
new file mode 100644
index 000000000..b26295807
--- /dev/null
+++ b/packages/mermaid-zenuml/README.md
@@ -0,0 +1,384 @@
+# @mermaid-js/mermaid-zenuml
+
+MermaidJS plugin for ZenUML integration - A powerful sequence diagram rendering engine.
+
+> A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order.
+
+Mermaid can render sequence diagrams with [ZenUML](https://zenuml.com). Note that ZenUML uses a different
+syntax than the original Sequence Diagram in mermaid.
+
+```mermaid
+zenuml
+ 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
+ }
+```
+
+## Installation
+
+### With bundlers
+
+```sh
+npm install @mermaid-js/mermaid-zenuml
+```
+
+```ts
+import mermaid from 'mermaid';
+import zenuml from '@mermaid-js/mermaid-zenuml';
+
+await mermaid.registerExternalDiagrams([zenuml]);
+```
+
+### With CDN
+
+```html
+
+```
+
+> [!NOTE]
+> ZenUML uses experimental lazy loading & async rendering features which could change in the future.
+
+## Basic Usage
+
+Once the plugin is registered, you can create ZenUML diagrams using the `zenuml` syntax:
+
+```mermaid
+zenuml
+ Controller.Get(id) {
+ Service.Get(id) {
+ item = Repository.Get(id)
+ if(item) {
+ return item
+ } else {
+ return null
+ }
+ }
+ return result
+ }
+```
+
+## ZenUML Syntax Reference
+
+### Participants
+
+The participants can be defined implicitly as in the first example on this page. The participants or actors are
+rendered in order of appearance in the diagram source text. Sometimes you might want to show the participants in a
+different order than how they appear in the first message. It is possible to specify the actor's order of
+appearance by doing the following:
+
+```mermaid
+zenuml
+ title Declare participant (optional)
+ Bob
+ Alice
+ Alice->Bob: Hi Bob
+ Bob->Alice: Hi Alice
+```
+
+### Annotators
+
+If you specifically want to use symbols instead of just rectangles with text you can do so by using the annotator syntax to declare participants as per below.
+
+```mermaid
+zenuml
+ title Annotators
+ @Actor Alice
+ @Database Bob
+ Alice->Bob: Hi Bob
+ Bob->Alice: Hi Alice
+```
+
+Available annotators include:
+
+- `@Actor` - Human figure
+- `@Database` - Database symbol
+- `@Boundary` - Boundary symbol
+- `@Control` - Control symbol
+- `@Entity` - Entity symbol
+- `@Queue` - Queue symbol
+
+### Aliases
+
+The participants can have a convenient identifier and a descriptive label.
+
+```mermaid
+zenuml
+ title Aliases
+ A as Alice
+ J as John
+ A->J: Hello John, how are you?
+ J->A: Great!
+```
+
+## Messages
+
+Messages can be one of:
+
+1. Sync message
+2. Async message
+3. Creation message
+4. Reply message
+
+### Sync message
+
+You can think of a sync (blocking) method in a programming language.
+
+```mermaid
+zenuml
+ title Sync message
+ A.SyncMessage
+ A.SyncMessage(with, parameters) {
+ B.nestedSyncMessage()
+ }
+```
+
+### Async message
+
+You can think of an async (non-blocking) method in a programming language. Fire an event and forget about it.
+
+```mermaid
+zenuml
+ title Async message
+ Alice->Bob: How are you?
+```
+
+### Creation message
+
+We use `new` keyword to create an object.
+
+```mermaid
+zenuml
+ new A1
+ new A2(with, parameters)
+```
+
+### Reply message
+
+There are three ways to express a reply message:
+
+```mermaid
+zenuml
+ // 1. assign a variable from a sync message.
+ a = A.SyncMessage()
+
+ // 1.1. optionally give the variable a type
+ SomeType a = A.SyncMessage()
+
+ // 2. use return keyword
+ A.SyncMessage() {
+ return result
+ }
+
+ // 3. use @return or @reply annotator on an async message
+ @return
+ A->B: result
+```
+
+The third way `@return` is rarely used, but it is useful when you want to return to one level up.
+
+```mermaid
+zenuml
+ title Reply message
+ Client->A.method() {
+ B.method() {
+ if(condition) {
+ return x1
+ // return early
+ @return
+ A->Client: x11
+ }
+ }
+ return x2
+ }
+```
+
+## Advanced Features
+
+### Nesting
+
+Sync messages and Creation messages are naturally nestable with `{}`.
+
+```mermaid
+zenuml
+ A.method() {
+ B.nested_sync_method()
+ B->C: nested async message
+ }
+```
+
+### Comments
+
+It is possible to add comments to a sequence diagram with `// comment` syntax.
+Comments will be rendered above the messages or fragments. Comments on other places
+are ignored. Markdown is supported.
+
+```mermaid
+zenuml
+ // a comment on a participant will not be rendered
+ BookService
+ // a comment on a message.
+ // **Markdown** is supported.
+ BookService.getBook()
+```
+
+### Loops
+
+It is possible to express loops in a ZenUML diagram. This is done by any of the
+following notations:
+
+1. while
+2. for
+3. forEach, foreach
+4. loop
+
+```zenuml
+while(condition) {
+ ...statements...
+}
+```
+
+Example:
+
+```mermaid
+zenuml
+ Alice->John: Hello John, how are you?
+ while(true) {
+ John->Alice: Great!
+ }
+```
+
+### Alt (Alternative paths)
+
+It is possible to express alternative paths in a sequence diagram. This is done by the notation
+
+```zenuml
+if(condition1) {
+ ...statements...
+} else if(condition2) {
+ ...statements...
+} else {
+ ...statements...
+}
+```
+
+Example:
+
+```mermaid
+zenuml
+ Alice->Bob: Hello Bob, how are you?
+ if(is_sick) {
+ Bob->Alice: Not so good :(
+ } else {
+ Bob->Alice: Feeling fresh like a daisy
+ }
+```
+
+### Opt (Optional)
+
+It is possible to render an `opt` fragment. This is done by the notation
+
+```zenuml
+opt {
+ ...statements...
+}
+```
+
+Example:
+
+```mermaid
+zenuml
+ Alice->Bob: Hello Bob, how are you?
+ Bob->Alice: Not so good :(
+ opt {
+ Bob->Alice: Thanks for asking
+ }
+```
+
+### Parallel
+
+It is possible to show actions that are happening in parallel.
+
+This is done by the notation
+
+```zenuml
+par {
+ statement1
+ statement2
+ statement3
+}
+```
+
+Example:
+
+```mermaid
+zenuml
+ par {
+ Alice->Bob: Hello guys!
+ Alice->John: Hello guys!
+ }
+```
+
+### Try/Catch/Finally (Break)
+
+It is possible to indicate a stop of the sequence within the flow (usually used to model exceptions).
+
+This is done by the notation
+
+```
+try {
+ ...statements...
+} catch {
+ ...statements...
+} finally {
+ ...statements...
+}
+```
+
+Example:
+
+```mermaid
+zenuml
+ try {
+ Consumer->API: Book something
+ API->BookingService: Start booking process
+ } catch {
+ API->Consumer: show failure
+ } finally {
+ API->BookingService: rollback status
+ }
+```
+
+## Contributing
+
+This package is part of the [Mermaid](https://github.com/mermaid-js/mermaid) project. See the main repository for contributing guidelines.
+
+## Contributors
+
+- [Peng Xiao](https://github.com/MrCoder)
+- [Sidharth Vinod](https://sidharth.dev)
+- [Dong Cai](https://github.com/dontry)
+
+## License
+
+MIT
+
+## Links
+
+- [ZenUML Official Website](https://zenuml.com)
+- [Mermaid Documentation](https://mermaid.js.org)
+- [GitHub Repository](https://github.com/mermaid-js/mermaid)
diff --git a/packages/mermaid-zenuml/package.json b/packages/mermaid-zenuml/package.json
index d3a76e797..ec7b9486d 100644
--- a/packages/mermaid-zenuml/package.json
+++ b/packages/mermaid-zenuml/package.json
@@ -33,7 +33,7 @@
],
"license": "MIT",
"dependencies": {
- "@zenuml/core": "^3.31.1"
+ "@zenuml/core": "^3.35.2"
},
"devDependencies": {
"mermaid": "workspace:^"
diff --git a/packages/mermaid-zenuml/src/zenuml.d.ts b/packages/mermaid-zenuml/src/zenuml.d.ts
new file mode 100644
index 000000000..eac411bd2
--- /dev/null
+++ b/packages/mermaid-zenuml/src/zenuml.d.ts
@@ -0,0 +1,11 @@
+declare module '@zenuml/core' {
+ interface RenderOptions {
+ theme?: string;
+ mode?: string;
+ }
+
+ export default class ZenUml {
+ constructor(container: Element);
+ render(text: string, options?: RenderOptions): Promise;
+ }
+}
diff --git a/packages/mermaid-zenuml/src/zenumlRenderer.ts b/packages/mermaid-zenuml/src/zenumlRenderer.ts
index f9dd57996..42ec8fcb4 100644
--- a/packages/mermaid-zenuml/src/zenumlRenderer.ts
+++ b/packages/mermaid-zenuml/src/zenumlRenderer.ts
@@ -53,7 +53,6 @@ export const draw = async function (text: string, id: string) {
const { foreignObject, container, app } = createForeignObject(id);
svgContainer.appendChild(foreignObject);
- // @ts-expect-error @zenuml/core@3.0.0 exports the wrong type for ZenUml
const zenuml = new ZenUml(app);
// default is a theme name. More themes to be added and will be configurable in the future
await zenuml.render(text, { theme: 'default', mode: 'static' });
diff --git a/packages/mermaid/CHANGELOG.md b/packages/mermaid/CHANGELOG.md
index c57e2a6db..49756233a 100644
--- a/packages/mermaid/CHANGELOG.md
+++ b/packages/mermaid/CHANGELOG.md
@@ -1,5 +1,28 @@
# mermaid
+## 11.9.0
+
+### Minor Changes
+
+- [#6453](https://github.com/mermaid-js/mermaid/pull/6453) [`5acbd7e`](https://github.com/mermaid-js/mermaid/commit/5acbd7e762469d9d89a9c77faf6617ee13367f3a) Thanks [@sidharthv96](https://github.com/sidharthv96)! - feat: Add `getRegisteredDiagramsMetadata` to `mermaid`, which returns all the registered diagram IDs in mermaid
+
+### Patch Changes
+
+- [#6738](https://github.com/mermaid-js/mermaid/pull/6738) [`d90634b`](https://github.com/mermaid-js/mermaid/commit/d90634bf2b09e586b055729e07e9a1a31b21827c) Thanks [@shubham-mermaid](https://github.com/shubham-mermaid)! - chore: Updated TreeMapDB to use class based approach
+
+- [#6510](https://github.com/mermaid-js/mermaid/pull/6510) [`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6) Thanks [@sidharthv96](https://github.com/sidharthv96)! - chore: Move packet diagram out of beta
+
+- [#6747](https://github.com/mermaid-js/mermaid/pull/6747) [`3e3ae08`](https://github.com/mermaid-js/mermaid/commit/3e3ae089305e1c7b9948b9e149eba6854fe7f2d6) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: adjust sequence diagram title positioning to prevent overlap with top border in Safari
+
+- [#6751](https://github.com/mermaid-js/mermaid/pull/6751) [`d3e2be3`](https://github.com/mermaid-js/mermaid/commit/d3e2be35be066adeb7fd502b4a24c223c3b53947) Thanks [@darshanr0107](https://github.com/darshanr0107)! - chore: Update MindmapDB to use class based approach
+
+- [#6715](https://github.com/mermaid-js/mermaid/pull/6715) [`637680d`](https://github.com/mermaid-js/mermaid/commit/637680d4d9e39b4f8cb6f05b4cb261e8f5693ac3) Thanks [@Syn3ugar](https://github.com/Syn3ugar)! - fix(timeline): fix loading `leftMargin` from config
+
+ The `timeline.leftMargin` config value should now correctly control the size of the left margin, instead of being ignored.
+
+- Updated dependencies [[`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6)]:
+ - @mermaid-js/parser@0.6.2
+
## 11.8.1
### Patch Changes
@@ -258,3 +281,1005 @@
- Updated dependencies [[`5013484`](https://github.com/mermaid-js/mermaid/commit/50134849246141ec400e33e08c12c10539b84de9)]:
- @mermaid-js/parser@0.1.0
+
+## [10.0.0](https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0)
+
+### Mermaid is ESM only!
+
+We've dropped CJS support. So, you will have to update your import scripts as follows.
+
+```html
+
+```
+
+You can keep using v9 by adding the `@9` in the CDN URL.
+
+```diff
+-
++
+```
+
+### mermaid.render is async and doesn't accept callbacks
+
+```js
+// < v10
+mermaid.render('id', 'graph TD;\nA-->B', (svg, bindFunctions) => {
+ element.innerHTML = svg;
+ if (bindFunctions) {
+ bindFunctions(element);
+ }
+});
+
+// Shorter syntax
+if (bindFunctions) {
+ bindFunctions(element);
+}
+// can be replaced with the `?.` shorthand
+bindFunctions?.(element);
+
+// >= v10 with async/await
+const { svg, bindFunctions } = await mermaid.render('id', 'graph TD;\nA-->B');
+element.innerHTML = svg;
+bindFunctions?.(element);
+
+// >= v10 with promise.then
+mermaid.render('id', 'graph TD;A-->B').then(({ svg, bindFunctions }) => {
+ element.innerHTML = svg;
+ bindFunctions?.(element);
+});
+```
+
+### mermaid.parse is async and ParseError is removed
+
+```js
+// < v10
+mermaid.parse(text, parseError);
+
+//>= v10
+await mermaid.parse(text).catch(parseError);
+// or
+try {
+ await mermaid.parse(text);
+} catch (err) {
+ parseError(err);
+}
+```
+
+### Init deprecated and InitThrowsErrors removed
+
+The config passed to `init` was not being used earlier.
+It will now be used.
+The `init` function is deprecated and will be removed in the next major release.
+init currently works as a wrapper to `initialize` and `run`.
+
+```js
+// < v10
+mermaid.init(config, selector, cb);
+
+//>= v10
+mermaid.initialize(config);
+mermaid.run({
+ querySelector: selector,
+ postRenderCallback: cb,
+ suppressErrors: true,
+});
+```
+
+```js
+// < v10
+mermaid.initThrowsErrors(config, selector, cb);
+
+//>= v10
+mermaid.initialize(config);
+mermaid.run({
+ querySelector: selector,
+ postRenderCallback: cb,
+ suppressErrors: false,
+});
+```
+
+// TODO: Populate changelog pre v10
+
+- Config has a lot of changes
+- globalReset resets to `defaultConfig` instead of current config. Use `reset` instead.
+
+## [Unreleased](https://github.com/knsv/mermaid/tree/HEAD)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/8.2.0...HEAD)
+
+**Closed issues:**
+
+- Cross-Site Scripting:DOM - Issue [\#847](https://github.com/knsv/mermaid/issues/847)
+
+## [8.2.0](https://github.com/knsv/mermaid/tree/8.2.0) (2019-07-17)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/8.1.0...8.2.0)
+
+**Closed issues:**
+
+- Create issue templates [\#871](https://github.com/knsv/mermaid/issues/871)
+- cross site scripting in mermaid [\#869](https://github.com/knsv/mermaid/issues/869)
+- Make Gantt chart date inclusive [\#868](https://github.com/knsv/mermaid/issues/868)
+- CHANGELOG missing updates for all versions since 0.4.0 [\#865](https://github.com/knsv/mermaid/issues/865)
+- please add tag for 8.0.0 release [\#863](https://github.com/knsv/mermaid/issues/863)
+- classDiagram breaks on any edit [\#858](https://github.com/knsv/mermaid/issues/858)
+- found 1 high severity vulnerability [\#839](https://github.com/knsv/mermaid/issues/839)
+- Missing fontawesome icon support [\#830](https://github.com/knsv/mermaid/issues/830)
+- Docs for integration with wiki.js? [\#829](https://github.com/knsv/mermaid/issues/829)
+- Is this project still maintained? [\#826](https://github.com/knsv/mermaid/issues/826)
+- typora [\#823](https://github.com/knsv/mermaid/issues/823)
+- Maintain the order of the nodes in Flowchart [\#815](https://github.com/knsv/mermaid/issues/815)
+- Overlap, Overflow and cut titles in flowchart [\#814](https://github.com/knsv/mermaid/issues/814)
+- How load mermaidApi notejs electron [\#813](https://github.com/knsv/mermaid/issues/813)
+- How to set the spacing between the text of the flowchart node and the border? [\#812](https://github.com/knsv/mermaid/issues/812)
+- no triming participant name and the name following spaces is as another actor in sequence [\#809](https://github.com/knsv/mermaid/issues/809)
+- uml Class as shape type [\#807](https://github.com/knsv/mermaid/issues/807)
+- Force-directed graph Layout Style [\#806](https://github.com/knsv/mermaid/issues/806)
+- how can I start a newLine in FlowChart [\#805](https://github.com/knsv/mermaid/issues/805)
+- UOEProcessShow [\#801](https://github.com/knsv/mermaid/issues/801)
+- Why the use of code blocks? [\#799](https://github.com/knsv/mermaid/issues/799)
+- fixing class diagram [\#794](https://github.com/knsv/mermaid/issues/794)
+- Autonumber support in sequence diagrams [\#782](https://github.com/knsv/mermaid/issues/782)
+- MomentJS dependency [\#781](https://github.com/knsv/mermaid/issues/781)
+- Feature : Can we color code the flow/arrows [\#766](https://github.com/knsv/mermaid/issues/766)
+- Is there any way to convert flowchart.js code to mermaid code [\#726](https://github.com/knsv/mermaid/issues/726)
+- Fixed width of nodes [\#653](https://github.com/knsv/mermaid/issues/653)
+- Inline comment [\#650](https://github.com/knsv/mermaid/issues/650)
+- alt attribute of img tag in HTML [\#619](https://github.com/knsv/mermaid/issues/619)
+- Just wanted to say : THANKS ! [\#618](https://github.com/knsv/mermaid/issues/618)
+- "animation" [\#446](https://github.com/knsv/mermaid/issues/446)
+
+**Merged pull requests:**
+
+- Trimming whitespace after participant id [\#882](https://github.com/knsv/mermaid/pull/882) ([IOrlandoni](https://github.com/IOrlandoni))
+- chore\(deps\): bump atob from 2.0.3 to 2.1.2 [\#881](https://github.com/knsv/mermaid/pull/881) ([dependabot[bot]](https://github.com/apps/dependabot))
+- chore\(deps\): bump fstream from 1.0.11 to 1.0.12 [\#880](https://github.com/knsv/mermaid/pull/880) ([dependabot[bot]](https://github.com/apps/dependabot))
+- chore\(deps\): bump js-yaml from 3.12.0 to 3.13.1 [\#879](https://github.com/knsv/mermaid/pull/879) ([dependabot[bot]](https://github.com/apps/dependabot))
+- I847 cross site scripting [\#878](https://github.com/knsv/mermaid/pull/878) ([knsv](https://github.com/knsv))
+- Bump lodash.mergewith from 4.6.1 to 4.6.2 [\#877](https://github.com/knsv/mermaid/pull/877) ([dependabot[bot]](https://github.com/apps/dependabot))
+- Adding docs into core repo again [\#876](https://github.com/knsv/mermaid/pull/876) ([knsv](https://github.com/knsv))
+- Bump lodash from 4.17.11 to 4.17.13 [\#875](https://github.com/knsv/mermaid/pull/875) ([dependabot[bot]](https://github.com/apps/dependabot))
+- feat\(stale.yml\): update issue label and bot comment [\#874](https://github.com/knsv/mermaid/pull/874) ([ThePenguin1140](https://github.com/ThePenguin1140))
+- Feature/allow inclusive enddates [\#872](https://github.com/knsv/mermaid/pull/872) ([ThePenguin1140](https://github.com/ThePenguin1140))
+- Adding trapezoid and inverse trapezoid vertex options. [\#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf))
+
+## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0)
+
+**Closed issues:**
+
+- Gantt and sequence diagram do not render [\#853](https://github.com/knsv/mermaid/issues/853)
+- margins around flowchart are not balanced [\#852](https://github.com/knsv/mermaid/issues/852)
+- Smaller bundles [\#843](https://github.com/knsv/mermaid/issues/843)
+- unicode in labels [\#776](https://github.com/knsv/mermaid/issues/776)
+- Hard-changing drawing of arrows per edge type [\#775](https://github.com/knsv/mermaid/issues/775)
+- SequenceDiagram wrong [\#773](https://github.com/knsv/mermaid/issues/773)
+- Render mermaid on github pages with simple code [\#772](https://github.com/knsv/mermaid/issues/772)
+- FlowChart - large space between text and the image [\#754](https://github.com/knsv/mermaid/issues/754)
+- Class Diagram Issues when using Mermaid in Stackedit [\#748](https://github.com/knsv/mermaid/issues/748)
+- Multi-platform CI [\#744](https://github.com/knsv/mermaid/issues/744)
+- gantt: sections can't have a colon [\#742](https://github.com/knsv/mermaid/issues/742)
+- Yarn build does not add mermaid.min.css to dist [\#732](https://github.com/knsv/mermaid/issues/732)
+- Is there a grammar / keyword / more than just the basic examples? [\#718](https://github.com/knsv/mermaid/issues/718)
+- Click event and react component [\#717](https://github.com/knsv/mermaid/issues/717)
+- Long text going outside the box [\#706](https://github.com/knsv/mermaid/issues/706)
+- How to migrate from yUML to mermaid? [\#704](https://github.com/knsv/mermaid/issues/704)
+- Issue on Dynamic Creation in PHP [\#690](https://github.com/knsv/mermaid/issues/690)
+- `click "\#target"` and `click "http://url"` should create regular links [\#689](https://github.com/knsv/mermaid/issues/689)
+- Support Chinese punctuation [\#687](https://github.com/knsv/mermaid/issues/687)
+- \[Question\] Proper way to install on Mac? [\#681](https://github.com/knsv/mermaid/issues/681)
+- Has Mermaid a graphical interface to make diagrams? [\#668](https://github.com/knsv/mermaid/issues/668)
+- mermaid installation on debian [\#649](https://github.com/knsv/mermaid/issues/649)
+- "Cannot activate" in sequenceDiagram [\#647](https://github.com/knsv/mermaid/issues/647)
+- Link \("click" statement\) in flowchart does not work in exported SVG [\#646](https://github.com/knsv/mermaid/issues/646)
+- How to pass styling [\#639](https://github.com/knsv/mermaid/issues/639)
+- The live editor can't show seq diagram with notes for 8.0.0-alpha.3 [\#638](https://github.com/knsv/mermaid/issues/638)
+- import mermaid.css with ES6 + NPM [\#634](https://github.com/knsv/mermaid/issues/634)
+- Actor line cuts through other elements [\#633](https://github.com/knsv/mermaid/issues/633)
+- Graph TD line out of the picture \(left side\) [\#630](https://github.com/knsv/mermaid/issues/630)
+- Flowchart labels appear "cutoff" [\#628](https://github.com/knsv/mermaid/issues/628)
+- Uncaught TypeError: \_.constant is not a function \(mermaid.js\) [\#626](https://github.com/knsv/mermaid/issues/626)
+- Missing tags and releases for newer versions [\#623](https://github.com/knsv/mermaid/issues/623)
+- Mermaid and Leo / Leo Vue [\#622](https://github.com/knsv/mermaid/issues/622)
+- mermaidAPI gantt Vue.js [\#621](https://github.com/knsv/mermaid/issues/621)
+- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [\#620](https://github.com/knsv/mermaid/issues/620)
+- how to get mermaidAPI? [\#617](https://github.com/knsv/mermaid/issues/617)
+- Error in startOnLoad documentation? [\#616](https://github.com/knsv/mermaid/issues/616)
+- Example export to SVG generates error [\#614](https://github.com/knsv/mermaid/issues/614)
+- The new online editor does not support previously generated links [\#613](https://github.com/knsv/mermaid/issues/613)
+- Grammar / Syntax documentation for flowcharts [\#607](https://github.com/knsv/mermaid/issues/607)
+- Mermaid does not work with d3.js [\#606](https://github.com/knsv/mermaid/issues/606)
+- Why does this code's flowchart lines get cut-off on screen? [\#604](https://github.com/knsv/mermaid/issues/604)
+- click keyword does not fire my callback \(on the demo Website too\) [\#603](https://github.com/knsv/mermaid/issues/603)
+- Online Editor fails to show exported SVG [\#601](https://github.com/knsv/mermaid/issues/601)
+- Just saying thanks! [\#597](https://github.com/knsv/mermaid/issues/597)
+- stylesheet crashed with other library like abcjs [\#596](https://github.com/knsv/mermaid/issues/596)
+- Missing connection [\#594](https://github.com/knsv/mermaid/issues/594)
+- How to use mermaid on node.js restful api? [\#593](https://github.com/knsv/mermaid/issues/593)
+- Remove status code [\#589](https://github.com/knsv/mermaid/issues/589)
+- Golang based editor [\#588](https://github.com/knsv/mermaid/issues/588)
+- sequenceDiagram -\> notetext css font is hardcoded [\#587](https://github.com/knsv/mermaid/issues/587)
+- Multiple graph in the live editor [\#586](https://github.com/knsv/mermaid/issues/586)
+- All \ elements in page are colored black [\#584](https://github.com/knsv/mermaid/issues/584)
+- Styling: classes aren't applied to elements. [\#582](https://github.com/knsv/mermaid/issues/582)
+- Rounded connections [\#580](https://github.com/knsv/mermaid/issues/580)
+- Arrows are not being shown correctly in the dark theme [\#578](https://github.com/knsv/mermaid/issues/578)
+- The documentation for CLI seems outdated. [\#572](https://github.com/knsv/mermaid/issues/572)
+- No effect of click event:can not open link [\#571](https://github.com/knsv/mermaid/issues/571)
+- Text colors are not correct in VSCODE [\#570](https://github.com/knsv/mermaid/issues/570)
+- Nodes aren't aligned properly \(just need an explanation\) [\#568](https://github.com/knsv/mermaid/issues/568)
+- setting margin around figure in R [\#567](https://github.com/knsv/mermaid/issues/567)
+- Arrows should Come out in upward and Downward direction from decision Node [\#566](https://github.com/knsv/mermaid/issues/566)
+- TypeError: Cannot read property 'select' of undefined [\#563](https://github.com/knsv/mermaid/issues/563)
+- A little bug [\#557](https://github.com/knsv/mermaid/issues/557)
+- Japanese text appears garbled [\#554](https://github.com/knsv/mermaid/issues/554)
+- classdiagram not works in mermaid live_editor [\#553](https://github.com/knsv/mermaid/issues/553)
+- font awesome in link text? [\#546](https://github.com/knsv/mermaid/issues/546)
+- q: heard of the cosmogol standard? [\#545](https://github.com/knsv/mermaid/issues/545)
+- Arrow heads missing \(cli, 7.0.3\) [\#544](https://github.com/knsv/mermaid/issues/544)
+- No Edge Boxes if useHtmlLabels=false [\#541](https://github.com/knsv/mermaid/issues/541)
+- how to change mermaid text color or line text block color? [\#534](https://github.com/knsv/mermaid/issues/534)
+- FlowChart visualization broken when downloading from live editor [\#533](https://github.com/knsv/mermaid/issues/533)
+- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [\#532](https://github.com/knsv/mermaid/issues/532)
+- live editor make browser\(safari on macOS&iOS\) not longer respond [\#531](https://github.com/knsv/mermaid/issues/531)
+- css classes need a prefix/namespace [\#527](https://github.com/knsv/mermaid/issues/527)
+- input activate/deactivate cause safari unresponding [\#521](https://github.com/knsv/mermaid/issues/521)
+- Cannot Render the Mermaid Graph to PDF ? [\#520](https://github.com/knsv/mermaid/issues/520)
+- clicking links works from inset in subgraph but not from nodes [\#516](https://github.com/knsv/mermaid/issues/516)
+- Strange syntax error - when importing mermaid.js [\#515](https://github.com/knsv/mermaid/issues/515)
+- gantt x-axis display [\#510](https://github.com/knsv/mermaid/issues/510)
+- phantomjs renamed to phantomjs-prebuilt [\#508](https://github.com/knsv/mermaid/issues/508)
+- issue when using sphinxcontrib-mermaid extension for sphinx [\#507](https://github.com/knsv/mermaid/issues/507)
+- layout of docs page looks broken [\#504](https://github.com/knsv/mermaid/issues/504)
+- 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 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)
+- Very different styles when rendering as png vs. svg [\#489](https://github.com/knsv/mermaid/issues/489)
+- New editor that supports mermaid: Caret [\#488](https://github.com/knsv/mermaid/issues/488)
+- Gant PNG margin [\#486](https://github.com/knsv/mermaid/issues/486)
+- ReferenceError: window is not defined [\#485](https://github.com/knsv/mermaid/issues/485)
+- Menu and layout bugs in docs [\#484](https://github.com/knsv/mermaid/issues/484)
+- Mermaid resets some of the page CSS styles [\#482](https://github.com/knsv/mermaid/issues/482)
+- Arrows rendering incorrectly in online editor [\#480](https://github.com/knsv/mermaid/issues/480)
+- CSS stroke-dasharray ignored by browsers but not other viewers [\#474](https://github.com/knsv/mermaid/issues/474)
+- mermaid - Browser Support issue [\#472](https://github.com/knsv/mermaid/issues/472)
+- Totally love mermaid I might pop! [\#471](https://github.com/knsv/mermaid/issues/471)
+- Sequence Diagram: Missing x on async arrows \(png\) [\#469](https://github.com/knsv/mermaid/issues/469)
+- live editor: the svg file rendered from graph is not supported by browsers [\#468](https://github.com/knsv/mermaid/issues/468)
+- Not found css [\#462](https://github.com/knsv/mermaid/issues/462)
+- Phantomjs Dependency [\#461](https://github.com/knsv/mermaid/issues/461)
+- Mermaid cli not working for subgraphs [\#459](https://github.com/knsv/mermaid/issues/459)
+- Support for notes across multiple participants? [\#458](https://github.com/knsv/mermaid/issues/458)
+- Related to Issue \#329: Phantomjs issues. [\#455](https://github.com/knsv/mermaid/issues/455)
+- Add a click style [\#426](https://github.com/knsv/mermaid/issues/426)
+- Add Parallel block \(par\) to sequence diagrams [\#425](https://github.com/knsv/mermaid/issues/425)
+- updating shapes after the flow chart rendering complete [\#424](https://github.com/knsv/mermaid/issues/424)
+- can't catch parse error Maximum call stack size exceeded on safari [\#421](https://github.com/knsv/mermaid/issues/421)
+- Arrows endings are missing [\#419](https://github.com/knsv/mermaid/issues/419)
+- shouldn't mermaid become more like Markdown ? [\#417](https://github.com/knsv/mermaid/issues/417)
+- Live editor show rendered diagram if syntax invalid [\#415](https://github.com/knsv/mermaid/issues/415)
+- Live editor sticky sidebar [\#414](https://github.com/knsv/mermaid/issues/414)
+- Linkstyle stroke does not work [\#410](https://github.com/knsv/mermaid/issues/410)
+- flowchart id's with dots in them .. break links [\#408](https://github.com/knsv/mermaid/issues/408)
+- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [\#407](https://github.com/knsv/mermaid/issues/407)
+- Some chinese character will case Safari no responding. [\#405](https://github.com/knsv/mermaid/issues/405)
+- Cannot center-justify text in nodes? [\#397](https://github.com/knsv/mermaid/issues/397)
+- Edge labels should have white background in live editor [\#396](https://github.com/knsv/mermaid/issues/396)
+- Live editor does not support activate/deactivate [\#394](https://github.com/knsv/mermaid/issues/394)
+- Styling subgraph? [\#391](https://github.com/knsv/mermaid/issues/391)
+- Update live editor to version 6.0.0 [\#387](https://github.com/knsv/mermaid/issues/387)
+- sequence diagram config issue [\#385](https://github.com/knsv/mermaid/issues/385)
+- How to add newline in the text [\#384](https://github.com/knsv/mermaid/issues/384)
+- PhantomJS crashes on a large graph [\#380](https://github.com/knsv/mermaid/issues/380)
+- Finnish support for class diagrams using plantuml syntax [\#377](https://github.com/knsv/mermaid/issues/377)
+- mermaidAPI.render generated different svg code from mermaid.int\(\) [\#374](https://github.com/knsv/mermaid/issues/374)
+- Put your own action on the chart [\#372](https://github.com/knsv/mermaid/issues/372)
+- when declaring participants the elements are generated twice [\#370](https://github.com/knsv/mermaid/issues/370)
+- Example Flowchart is cut in display \(Chrome\). [\#368](https://github.com/knsv/mermaid/issues/368)
+- Add shebang support to diagrams [\#365](https://github.com/knsv/mermaid/issues/365)
+- Silencing CLI output [\#352](https://github.com/knsv/mermaid/issues/352)
+- SequenceDiagram: 3+ Alternative Paths [\#348](https://github.com/knsv/mermaid/issues/348)
+- Smaller height of actor boxes [\#342](https://github.com/knsv/mermaid/issues/342)
+- Question: lib/phantomscript.js - foreignObjects in SVG - related to \#58 [\#340](https://github.com/knsv/mermaid/issues/340)
+- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [\#337](https://github.com/knsv/mermaid/issues/337)
+- Tabs & subgraphs cause rendering error [\#336](https://github.com/knsv/mermaid/issues/336)
+- Display question: right angles [\#335](https://github.com/knsv/mermaid/issues/335)
+- No Arrows rendered v0.5.8 [\#330](https://github.com/knsv/mermaid/issues/330)
+- mermaid -v filename.mmd gives You must specify at least one source file. [\#328](https://github.com/knsv/mermaid/issues/328)
+- You had errors in your syntax. Use --help for further information. [\#327](https://github.com/knsv/mermaid/issues/327)
+- Allow alternate arrow syntax that doesn't close html comments [\#322](https://github.com/knsv/mermaid/issues/322)
+- Comment in subgraph [\#319](https://github.com/knsv/mermaid/issues/319)
+- Update graph [\#311](https://github.com/knsv/mermaid/issues/311)
+- css conflicts with boostrap's css [\#308](https://github.com/knsv/mermaid/issues/308)
+- Can not get click event to fire. [\#306](https://github.com/knsv/mermaid/issues/306)
+- Fix phantomjs2 compatibility [\#304](https://github.com/knsv/mermaid/issues/304)
+- Flowcharts do not work in native IE11 [\#303](https://github.com/knsv/mermaid/issues/303)
+- Integration with remark.js - tutorial added [\#302](https://github.com/knsv/mermaid/issues/302)
+- Theme for dark background [\#301](https://github.com/knsv/mermaid/issues/301)
+- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#299](https://github.com/knsv/mermaid/issues/299)
+- src/mermaid.js generates bad code [\#297](https://github.com/knsv/mermaid/issues/297)
+- Fresh fork: jasmine tests fail [\#294](https://github.com/knsv/mermaid/issues/294)
+- CSS clash [\#292](https://github.com/knsv/mermaid/issues/292)
+- Mermaid does not work in Chrome 48 [\#281](https://github.com/knsv/mermaid/issues/281)
+- node click is not effective [\#272](https://github.com/knsv/mermaid/issues/272)
+- circle and ellipse cannot change color by classDef [\#271](https://github.com/knsv/mermaid/issues/271)
+- \[Feature request\] gantt diagram axis format [\#269](https://github.com/knsv/mermaid/issues/269)
+- Not Able to See Labels even htmlLabels:false added [\#268](https://github.com/knsv/mermaid/issues/268)
+- npm run watch doesn’t work due missing dependencies [\#266](https://github.com/knsv/mermaid/issues/266)
+- label out of node [\#262](https://github.com/knsv/mermaid/issues/262)
+- IE11 Support issue [\#261](https://github.com/knsv/mermaid/issues/261)
+- mermaid without browser [\#260](https://github.com/knsv/mermaid/issues/260)
+- Insufficient capacity of gantt diagrams [\#226](https://github.com/knsv/mermaid/issues/226)
+- some WARN about installion [\#222](https://github.com/knsv/mermaid/issues/222)
+- Live editor offline access [\#217](https://github.com/knsv/mermaid/issues/217)
+- suggest: code highlight mode config for editors [\#212](https://github.com/knsv/mermaid/issues/212)
+- Uncaught RangeError: Maximum call stack size exceeded [\#189](https://github.com/knsv/mermaid/issues/189)
+- Implement render function for server side rendering using phantomjs [\#169](https://github.com/knsv/mermaid/issues/169)
+- Styling label texts [\#50](https://github.com/knsv/mermaid/issues/50)
+- Graphviz DOT syntax [\#5](https://github.com/knsv/mermaid/issues/5)
+
+**Merged pull requests:**
+
+- Remove console.log in classDB. [\#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey))
+- Bump sshpk from 1.13.1 to 1.16.1 [\#851](https://github.com/knsv/mermaid/pull/851) ([dependabot[bot]](https://github.com/apps/dependabot))
+- Significantly smaller bundles [\#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato))
+- Support styling of subgraphs [\#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-))
+- fix dark theme loop labels not visible [\#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn))
+- fix draw function can only call once [\#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship))
+- Fix dotted lines not appearing in flowcharts when HTML labels disabled [\#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu))
+- Fix issue with XML line breaks inside vertex labels [\#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang))
+- fixed diagrams [\#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus))
+- Clickable gantt tasks [\#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht))
+- linkStyle now supports list of indexes with a few tests [\#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov))
+- fix class diagram mermaid [\#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai))
+- Added exclude weekdays to definition [\#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo))
+- SVG link rendering [\#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep))
+- Gantt milestones [\#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs))
+- Remove duplicate code [\#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030))
+- Render nodes as real links [\#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep))
+- Support Multi-line Actor Descriptions [\#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj))
+- Fix issue with marker-end. [\#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen))
+- Make Class Diagrams usable in Stackedit and Live Editor [\#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe))
+- Sequence numbers [\#722](https://github.com/knsv/mermaid/pull/722) ([paulbland](https://github.com/paulbland))
+- Add option for right angles [\#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland))
+- Add nested activation classes [\#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland))
+- wip: class diagram cardinality display [\#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz))
+- add comments about CSS in config [\#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90))
+- SequenceDiagram: Add support for multiple alt else statements [\#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel))
+- fix \#426 - add class .clickable on nodes with click function or link [\#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil))
+- Spec fix 1 [\#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt))
+
+## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5)
+
+**Closed issues:**
+
+- live editor latin error after update [\#560](https://github.com/knsv/mermaid/issues/560)
+- Simple full example in online documentation is broken [\#558](https://github.com/knsv/mermaid/issues/558)
+- Graph No Arrow Head v7.0.3 [\#543](https://github.com/knsv/mermaid/issues/543)
+- Conflict while using mermaid along with core-js [\#512](https://github.com/knsv/mermaid/issues/512)
+- Export to pdf on website [\#496](https://github.com/knsv/mermaid/issues/496)
+- New downstream project: Mermaid Preview for VSCode [\#442](https://github.com/knsv/mermaid/issues/442)
+- Can't Zoom the flowchart ? [\#399](https://github.com/knsv/mermaid/issues/399)
+- line labels are not rendered correctly in live editor [\#366](https://github.com/knsv/mermaid/issues/366)
+- mermaid-loader [\#361](https://github.com/knsv/mermaid/issues/361)
+- Are there any documentation or examples for classDiagram and gitGraph? [\#359](https://github.com/knsv/mermaid/issues/359)
+- \# character broken in 0.5.8 [\#347](https://github.com/knsv/mermaid/issues/347)
+- Documentation issue: CSS example is not visible [\#345](https://github.com/knsv/mermaid/issues/345)
+- Include documentation for command line usage [\#326](https://github.com/knsv/mermaid/issues/326)
+- Fresh fork: can't build dist [\#296](https://github.com/knsv/mermaid/issues/296)
+- Invalid value for \ attribute viewBox="0 0 -Infinity -Infinity" [\#291](https://github.com/knsv/mermaid/issues/291)
+- Webpack require fails [\#277](https://github.com/knsv/mermaid/issues/277)
+- New documentation - need improved logo [\#216](https://github.com/knsv/mermaid/issues/216)
+
+## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3)
+
+**Closed issues:**
+
+- the documentation website is down [\#539](https://github.com/knsv/mermaid/issues/539)
+- Good example of interactivity with mermaidAPI [\#514](https://github.com/knsv/mermaid/issues/514)
+
+## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2)
+
+**Closed issues:**
+
+- CDN is not working [\#511](https://github.com/knsv/mermaid/issues/511)
+- A sampe sequenceDiagram crashes mermaid-cli [\#492](https://github.com/knsv/mermaid/issues/492)
+- Mermaid doesn't delete nodes when called multiple times [\#491](https://github.com/knsv/mermaid/issues/491)
+- API crashes on 2nd render\(\) call [\#478](https://github.com/knsv/mermaid/issues/478)
+- sequenceDiagram: dotted line for alt and empty bracket should be hidden [\#456](https://github.com/knsv/mermaid/issues/456)
+- SVG output \(almost\) not correct [\#434](https://github.com/knsv/mermaid/issues/434)
+- How to set axisFormatter of gantt in mermaid CLI? [\#428](https://github.com/knsv/mermaid/issues/428)
+- customizing link style with any color sets `fill` property to `black` instead of `none` [\#416](https://github.com/knsv/mermaid/issues/416)
+- New line at the end of SVG file [\#400](https://github.com/knsv/mermaid/issues/400)
+- CLI doesn't work [\#389](https://github.com/knsv/mermaid/issues/389)
+- Can't render subgraphs with htmlLabels: false [\#367](https://github.com/knsv/mermaid/issues/367)
+- Color arrowhead [\#362](https://github.com/knsv/mermaid/issues/362)
+- CLI: Invisible text, lines in SVG output [\#341](https://github.com/knsv/mermaid/issues/341)
+
+**Merged pull requests:**
+
+- Update Travis config [\#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong))
+- Fix spelling of 'you' in sequenceDiagram docs [\#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson))
+- Improve CLI output [\#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042))
+- Modernize mermaid [\#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong))
+- Modernize mermaid [\#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong))
+- Update CLI instructions [\#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps))
+- Add style for classDiagram to dark/default theme [\#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel))
+- Fix documentation for git graph. [\#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs))
+- Fix links in documentations [\#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71))
+- Update README.md with git graph sample [\#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur))
+- Fix misspelling of “another” [\#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert))
+- Fixed \#456 sequenceDiagram: dotted line for alt and empty bracket sho… [\#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong))
+- Add viewbox attr to class diagram [\#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm))
+- add par statement to sequenceDiagram [\#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor))
+
+## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0)
+
+**Closed issues:**
+
+- demos on io site not working [\#466](https://github.com/knsv/mermaid/issues/466)
+- Can not be generated PNG pictures through CLI with Chinese [\#451](https://github.com/knsv/mermaid/issues/451)
+- Round nodes cannot be styled with CSS classes [\#443](https://github.com/knsv/mermaid/issues/443)
+- webpack gulp UglifyJsPlugin error. [\#440](https://github.com/knsv/mermaid/issues/440)
+- String concatenation isn't working [\#432](https://github.com/knsv/mermaid/issues/432)
+- text flow/wrap in actor box of sequence diagram [\#422](https://github.com/knsv/mermaid/issues/422)
+- Online live editor still use old version [\#402](https://github.com/knsv/mermaid/issues/402)
+- uncaught TypeError: t.getTransformToElement is not a function [\#401](https://github.com/knsv/mermaid/issues/401)
+- Only works when using browserify'd code [\#373](https://github.com/knsv/mermaid/issues/373)
+- document the use of shebang line in mmd files [\#364](https://github.com/knsv/mermaid/issues/364)
+- Diagrams are small and unreadable in IE 11 - since 0.5.1 [\#356](https://github.com/knsv/mermaid/issues/356)
+- \[Feature Request\] ER-Diagram Support [\#354](https://github.com/knsv/mermaid/issues/354)
+- npm install -g mermaid does not install phantomjs [\#329](https://github.com/knsv/mermaid/issues/329)
+- activation boxes [\#313](https://github.com/knsv/mermaid/issues/313)
+- The need for mermaid.css should be mentioned explicitly in the intro docs... [\#273](https://github.com/knsv/mermaid/issues/273)
+
+**Merged pull requests:**
+
+- Update index.html [\#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight))
+- Fix for \#416, customizing link style with any color sets `fill` property to `black` instead of `none` [\#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin))
+- Allow .node\>circle to receive css styles [\#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz))
+- Fix spelling [\#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn))
+- added tests and fix cli css style selector lowercase problem [\#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev))
+- Update d3.js [\#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz))
+- adde tests to reproduce \#434 in flowchart [\#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev))
+- Code Climate config [\#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott))
+- fix gantt and sequence digram cli cfg [\#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev))
+- fix gantt chart cli configuration broken [\#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev))
+- fix gantt chart cli configuration parsing including functions [\#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev))
+- Uses an empty text node instead of a string for svg group labels [\#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick))
+- use tspan via d3.textwrap to place actor text in sequence diagram [\#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev))
+- \#422 use foreignObject/div to place actor label in sequence diagram [\#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev))
+- Clarify the need for a CSS stylesheet [\#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb))
+- Added hads downstream project [\#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied))
+- update usage and fix \#273 [\#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance))
+- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [\#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur))
+- New neutral theme [\#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied))
+- fix cli issues [\#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page))
+- Add missing space for 'Labels out of bounds' section [\#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist))
+- Fix typo: `pats` -\> `paths` [\#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon))
+- Added class diagram example to README.md [\#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion))
+- override normal flowchart arrowhead to allow css styling [\#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue))
+- added sphinx extension [\#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan))
+- Fix typo in the sequence diagram documentation [\#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino))
+
+## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0)
+
+**Closed issues:**
+
+- Docs css: code hard to read [\#324](https://github.com/knsv/mermaid/issues/324)
+- About Markpad integration [\#323](https://github.com/knsv/mermaid/issues/323)
+- How to link backwards in flowchat? [\#321](https://github.com/knsv/mermaid/issues/321)
+- Help with editor [\#310](https://github.com/knsv/mermaid/issues/310)
+- +1 [\#293](https://github.com/knsv/mermaid/issues/293)
+- Basic chart does not render on Chome, but does in Firefox [\#290](https://github.com/knsv/mermaid/issues/290)
+- Live editor is broken [\#285](https://github.com/knsv/mermaid/issues/285)
+- "No such file or directory" trying to run mermaid 0.5.7 on OS X [\#284](https://github.com/knsv/mermaid/issues/284)
+- participant name as "Long Long Name" [\#283](https://github.com/knsv/mermaid/issues/283)
+- Windows - cli - could not find phantomjs at the specified path [\#236](https://github.com/knsv/mermaid/issues/236)
+
+**Merged pull requests:**
+
+- The option of gantt for the spaces for the section names. [\#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi))
+- Gitgraph: Make reset work with parent ref carets [\#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur))
+- Remove the text-shadows that make the text look blurry [\#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers))
+- add line interpolation to linkStyle in flowchart [\#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn))
+- Support git graph diagrams in mermaid [\#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur))
+- Build and test execution changes [\#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea))
+- Reformatting of css files [\#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr))
+- \(WIP\) Sequence Diagram Title Support [\#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja))
+- activations doc + few fixes [\#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy))
+- Dark theme for better contrast on darker backgrounds [\#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a))
+- Activations [\#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy))
+- Support leading comments for sequenceDiagrams [\#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle))
+- Show a little lenience for white-space around names [\#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle))
+- Update list of downstream projects [\#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo))
+- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Issue 297 - src/mermaid.js generates bad code [\#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Updated instructions for running tests [\#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Add Markdown Plus to Downstream projects [\#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong))
+- Quote phantomPath so that it doesn't fail on window [\#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur))
+
+## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8)
+
+## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7)
+
+**Closed issues:**
+
+- Mermaid + LightPaper = ❤️ [\#280](https://github.com/knsv/mermaid/issues/280)
+- Bower Integration [\#278](https://github.com/knsv/mermaid/issues/278)
+- Mermaid breaks when variables end in 'v' [\#276](https://github.com/knsv/mermaid/issues/276)
+- sequence diagrams don't support participant aliasing [\#263](https://github.com/knsv/mermaid/issues/263)
+- One diagram that fails to render stops further execution on the page [\#259](https://github.com/knsv/mermaid/issues/259)
+- Where to find line layout algorithm? [\#258](https://github.com/knsv/mermaid/issues/258)
+- Compatibility with node.js [\#257](https://github.com/knsv/mermaid/issues/257)
+- Label resizing with dynamically loaded fonts [\#255](https://github.com/knsv/mermaid/issues/255)
+- SVG arrowheads are broken in the CLI [\#249](https://github.com/knsv/mermaid/issues/249)
+- Cannot read property 'replace' of undefined [\#239](https://github.com/knsv/mermaid/issues/239)
+
+**Merged pull requests:**
+
+- gh-50 Allow styling of edge labels in css [\#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia))
+- Allow sequenceDiagram participant aliasing [\#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042))
+
+## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6)
+
+**Closed issues:**
+
+- title doesn't work in sequenceDiagram [\#248](https://github.com/knsv/mermaid/issues/248)
+- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [\#247](https://github.com/knsv/mermaid/issues/247)
+- Broken in firefox? [\#245](https://github.com/knsv/mermaid/issues/245)
+- When there is a Chinese symbol in the flowchart, it will crash。 [\#238](https://github.com/knsv/mermaid/issues/238)
+- Non-alpha characters included in ALPHA token \(flow graph jison\) [\#232](https://github.com/knsv/mermaid/issues/232)
+- subgraph not rendering with change to sample [\#231](https://github.com/knsv/mermaid/issues/231)
+- sequence diagram requires a new line at the end? [\#229](https://github.com/knsv/mermaid/issues/229)
+- Live Editor: Permalink address not being parsed [\#202](https://github.com/knsv/mermaid/issues/202)
+- Add download SVG link to the live editor [\#144](https://github.com/knsv/mermaid/issues/144)
+
+**Merged pull requests:**
+
+- Make sequenceDiagram terminal newline optional [\#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042))
+- Support sequenceDiagram "over" notes [\#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042))
+- Properly handle "rest of line" statements [\#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042))
+- CLI: Propagate exit code from lib \(i.e., phantomjs\) [\#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042))
+- flowRender.js - Fix FontAwesome icon insert [\#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal))
+- updated sequence diagram link in live editor [\#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
+- updated links in README.md [\#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
+- Ellipse syntax [\#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88))
+- Allow keywords as suffixes of node ids [\#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88))
+- Highlighted the editor in the nav [\#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv))
+- Live editor tweaks [\#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88))
+- Add a Gitter chat badge to README.md [\#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger))
+
+## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5)
+
+**Closed issues:**
+
+- sequence diagram, arrowhead instead of crosshead [\#227](https://github.com/knsv/mermaid/issues/227)
+
+**Merged pull requests:**
+
+- Fix a typo: crosshead --\> arrowhead [\#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong))
+
+## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4)
+
+**Closed issues:**
+
+- Weird bug in live editor when using words with substring `end` [\#184](https://github.com/knsv/mermaid/issues/184)
+- Custom icons [\#15](https://github.com/knsv/mermaid/issues/15)
+- Marker-end arrow cannot be shown for URL with query parameter [\#225](https://github.com/knsv/mermaid/issues/225)
+- Please update bower's D3 version [\#221](https://github.com/knsv/mermaid/issues/221)
+- Set log level from mermaid configuration [\#220](https://github.com/knsv/mermaid/issues/220)
+- Width fixed to 400px [\#204](https://github.com/knsv/mermaid/issues/204)
+- render to png from the cli does not display the marker-end arrow heads [\#181](https://github.com/knsv/mermaid/issues/181)
+- Links in sequence diagrams [\#159](https://github.com/knsv/mermaid/issues/159)
+- comment characters `%%` cause parse error [\#141](https://github.com/knsv/mermaid/issues/141)
+- Add a reversed asymmetric shape [\#124](https://github.com/knsv/mermaid/issues/124)
+- Add syntax for double headed arrows [\#123](https://github.com/knsv/mermaid/issues/123)
+- Support for font-awesome [\#49](https://github.com/knsv/mermaid/issues/49)
+
+**Merged pull requests:**
+
+- Allow `end` as a substring of vertex id [\#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88))
+- Remove duplicate npm dependencies: d3 and he [\#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88))
+
+## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3)
+
+## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2)
+
+**Closed issues:**
+
+- Installing “atom-mermaid@0.1.3” failed [\#218](https://github.com/knsv/mermaid/issues/218)
+- Render mermaid code on websites? [\#215](https://github.com/knsv/mermaid/issues/215)
+- Brackets in a node with text? [\#213](https://github.com/knsv/mermaid/issues/213)
+- node feature request [\#211](https://github.com/knsv/mermaid/issues/211)
+- Please add prefix for styles [\#208](https://github.com/knsv/mermaid/issues/208)
+- Bad handling of block arguments [\#207](https://github.com/knsv/mermaid/issues/207)
+- please consider port to mac osx [\#203](https://github.com/knsv/mermaid/issues/203)
+- allow phantomjs \>=1.9.x [\#201](https://github.com/knsv/mermaid/issues/201)
+- syntax for venn diagrams? [\#200](https://github.com/knsv/mermaid/issues/200)
+- Broken CLI Graphs? \(v0.5.1\) [\#196](https://github.com/knsv/mermaid/issues/196)
+- Static site does not render under HTTPS [\#194](https://github.com/knsv/mermaid/issues/194)
+- Error on simple graph [\#192](https://github.com/knsv/mermaid/issues/192)
+- Escape "~" [\#191](https://github.com/knsv/mermaid/issues/191)
+- Trying to add link using 'click' to flowchart [\#188](https://github.com/knsv/mermaid/issues/188)
+- cli: no lines and arrowheads rendered / only dotted lines [\#187](https://github.com/knsv/mermaid/issues/187)
+- text of mermaid div displayed on page [\#186](https://github.com/knsv/mermaid/issues/186)
+- using mermaid with laravel [\#185](https://github.com/knsv/mermaid/issues/185)
+- Atom editor package [\#183](https://github.com/knsv/mermaid/issues/183)
+- Auto linewrap for notes in sequence diagrams [\#178](https://github.com/knsv/mermaid/issues/178)
+- Execute code after initialize [\#176](https://github.com/knsv/mermaid/issues/176)
+- Autoscaling for all diagram types [\#175](https://github.com/knsv/mermaid/issues/175)
+- Problem with click event callback [\#174](https://github.com/knsv/mermaid/issues/174)
+- How to escape characters? [\#170](https://github.com/knsv/mermaid/issues/170)
+- it can not work [\#167](https://github.com/knsv/mermaid/issues/167)
+- UML Class diagram [\#154](https://github.com/knsv/mermaid/issues/154)
+- Broken subgraph using the CLI [\#153](https://github.com/knsv/mermaid/issues/153)
+- Support PlantUML syntax [\#149](https://github.com/knsv/mermaid/issues/149)
+- IE Support issue [\#142](https://github.com/knsv/mermaid/issues/142)
+- Flowchart truncated [\#140](https://github.com/knsv/mermaid/issues/140)
+- Double Quote as text is not working [\#219](https://github.com/knsv/mermaid/issues/219)
+- classDef / class not working with htmlLabels? [\#210](https://github.com/knsv/mermaid/issues/210)
+- Links in graph missing [\#209](https://github.com/knsv/mermaid/issues/209)
+- Last word in comment boxes getting cut off by word wrap library : \( [\#195](https://github.com/knsv/mermaid/issues/195)
+- Escaping characters in sequence diagram [\#193](https://github.com/knsv/mermaid/issues/193)
+- SVG foreignObject rendering [\#180](https://github.com/knsv/mermaid/issues/180)
+- IE9 issue [\#179](https://github.com/knsv/mermaid/issues/179)
+- inoperable in an AMD/requirejs environment: IPython Notebook [\#127](https://github.com/knsv/mermaid/issues/127)
+- \[Parser\] Hyphen in participant name bring TypeError [\#74](https://github.com/knsv/mermaid/issues/74)
+- Support for hyperlink and tooltip [\#34](https://github.com/knsv/mermaid/issues/34)
+
+**Merged pull requests:**
+
+- Update flowchart.md [\#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro))
+- Default style when using the CLI [\#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey))
+- Gantt chart - add minutes and seconds durations [\#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans))
+- Using QUnit for AMD testing [\#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl))
+- Update phantomscript.js [\#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow))
+
+## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1)
+
+**Closed issues:**
+
+- Live editor is broken [\#173](https://github.com/knsv/mermaid/issues/173)
+- 0.5.0 no longer respects custom date definitions in Gantt diagrams [\#171](https://github.com/knsv/mermaid/issues/171)
+- Drop label character restrictions [\#162](https://github.com/knsv/mermaid/issues/162)
+- can't nest subgraphs in flowchart [\#161](https://github.com/knsv/mermaid/issues/161)
+- Unable to generate gantt diagram with mermaid CLI [\#158](https://github.com/knsv/mermaid/issues/158)
+- Inline css by "mermaid" [\#157](https://github.com/knsv/mermaid/issues/157)
+- Finite State Machine Diagram [\#152](https://github.com/knsv/mermaid/issues/152)
+- How to center align gantt diagram [\#150](https://github.com/knsv/mermaid/issues/150)
+- Security concern regarding class definition [\#148](https://github.com/knsv/mermaid/issues/148)
+- File Extension [\#147](https://github.com/knsv/mermaid/issues/147)
+- To SVG Export [\#146](https://github.com/knsv/mermaid/issues/146)
+- `setTimeout` with clusters problematic with programmatic edits and no callback [\#133](https://github.com/knsv/mermaid/issues/133)
+- Possibility to set the width of the generated flowchart [\#129](https://github.com/knsv/mermaid/issues/129)
+- flowchart - styling of edges via css overrides specific styles set in the graph definition [\#128](https://github.com/knsv/mermaid/issues/128)
+- module.exports.cloneCssStyles\(\) in combination with Angularjs breaks display in Chrome and IE [\#126](https://github.com/knsv/mermaid/issues/126)
+- Gantt - suitable xAxis for longer project [\#125](https://github.com/knsv/mermaid/issues/125)
+- Mix horizontal and vertical graph [\#68](https://github.com/knsv/mermaid/issues/68)
+- How to get started with this project ? [\#64](https://github.com/knsv/mermaid/issues/64)
+- Special characters break parsing [\#54](https://github.com/knsv/mermaid/issues/54)
+- Responsive graph layout for mobile viewers [\#51](https://github.com/knsv/mermaid/issues/51)
+- Styling connector lines [\#31](https://github.com/knsv/mermaid/issues/31)
+
+**Merged pull requests:**
+
+- Remove moot `version` property from bower.json [\#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche))
+
+## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0)
+
+**Closed issues:**
+
+- it can not work where graph TD contains chinese character [\#166](https://github.com/knsv/mermaid/issues/166)
+- Broken Examples [\#163](https://github.com/knsv/mermaid/issues/163)
+- uglifyjs wanrings which means we can improve the code [\#156](https://github.com/knsv/mermaid/issues/156)
+- New\(er\) features unavailable in downloadable js files? [\#151](https://github.com/knsv/mermaid/issues/151)
+- Add gh-gapes link to description [\#143](https://github.com/knsv/mermaid/issues/143)
+- Some examples not displayed on Firefox 36.0.1 [\#138](https://github.com/knsv/mermaid/issues/138)
+- tags ending in a "v" don't render [\#132](https://github.com/knsv/mermaid/issues/132)
+- Links in flowchart [\#131](https://github.com/knsv/mermaid/issues/131)
+- Using the library for iOS development [\#130](https://github.com/knsv/mermaid/issues/130)
+- Add a css file, mermaid.css, with default styling [\#122](https://github.com/knsv/mermaid/issues/122)
+- Add capability for gantt diagrams [\#118](https://github.com/knsv/mermaid/issues/118)
+- lower case v causes error in the parser [\#108](https://github.com/knsv/mermaid/issues/108)
+- Label's css conflict with boostrap's .label [\#67](https://github.com/knsv/mermaid/issues/67)
+- TypeError: Cannot read property 'layout' of undefined [\#37](https://github.com/knsv/mermaid/issues/37)
+- software architecture diagram [\#36](https://github.com/knsv/mermaid/issues/36)
+- Support for bar charts and pie diagrams [\#22](https://github.com/knsv/mermaid/issues/22)
+
+**Merged pull requests:**
+
+- Dev 0.5.0 [\#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv))
+- Fix spacing [\#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho))
+- Fixing typo: "Think" -\> "Thick" [\#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a))
+- IE, local html, cssRules access is denied [\#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong))
+- Add automatically generated change log file. [\#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder))
+- Adding init argument to the global API [\#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl))
+- Add description of manual calling of init [\#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl))
+- Allow other forms of node selection for init\(\) [\#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl))
+- Use a library-level variable for assigning ids [\#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl))
+
+## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0)
+
+**Closed issues:**
+
+- subgraph background is black in rendered flowchart PNG via CLI [\#121](https://github.com/knsv/mermaid/issues/121)
+- Integrate editor at https://github.com/naseer/mermaid-webapp [\#110](https://github.com/knsv/mermaid/issues/110)
+- Internet Explorer Support [\#99](https://github.com/knsv/mermaid/issues/99)
+- Asymmetric shapes not documented [\#82](https://github.com/knsv/mermaid/issues/82)
+- NoModificationAllowedError [\#23](https://github.com/knsv/mermaid/issues/23)
+- Improve arrows [\#3](https://github.com/knsv/mermaid/issues/3)
+
+## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5)
+
+## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4)
+
+**Closed issues:**
+
+- Subgraph syntax bug? [\#120](https://github.com/knsv/mermaid/issues/120)
+- Live editor [\#115](https://github.com/knsv/mermaid/issues/115)
+- Error in "Basic Syntax" wiki page [\#113](https://github.com/knsv/mermaid/issues/113)
+- semicolons, anyone? [\#111](https://github.com/knsv/mermaid/issues/111)
+- undefined `sequenceConfig` fails [\#109](https://github.com/knsv/mermaid/issues/109)
+- Sequence Diagrams: Show Actors below as well [\#106](https://github.com/knsv/mermaid/issues/106)
+- Allow overriding sequence diagram configuration \(SVG properties\) [\#103](https://github.com/knsv/mermaid/issues/103)
+- Error when rendering A-- This is the text -- B [\#102](https://github.com/knsv/mermaid/issues/102)
+- Clipping in documentation [\#97](https://github.com/knsv/mermaid/issues/97)
+- isolate class styling to the svg container [\#92](https://github.com/knsv/mermaid/issues/92)
+- Apply styling from css when using the CLI utility [\#85](https://github.com/knsv/mermaid/issues/85)
+- Generated SVG works poorly outside web browsers [\#58](https://github.com/knsv/mermaid/issues/58)
+- Make the new graph declaration more visual [\#40](https://github.com/knsv/mermaid/issues/40)
+- Generating SVG text blob for use in Node [\#2](https://github.com/knsv/mermaid/issues/2)
+
+**Merged pull requests:**
+
+- Add live editor [\#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer))
+- Adds CSS option to the CLI [\#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog))
+- Update flowchart.md in response Issue \#113 [\#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40))
+- Ignore all files except the license and dist/ folder when installing with Bower. [\#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy))
+
+## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3)
+
+**Closed issues:**
+
+- Missing arrows in sequence diagram [\#98](https://github.com/knsv/mermaid/issues/98)
+- Error with \>9 linkStyles [\#95](https://github.com/knsv/mermaid/issues/95)
+- Support for dotted links [\#26](https://github.com/knsv/mermaid/issues/26)
+
+**Merged pull requests:**
+
+- Require d3 directly to better support Node usage [\#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish))
+- update doc with -c option [\#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr))
+- Add new parameter to the console client to override the svg configuration in sequence diagrams [\#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr))
+- Text based labels, new shape [\#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes))
+- fix html tags in example usage [\#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin))
+
+## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2)
+
+**Closed issues:**
+
+- disable auto render [\#91](https://github.com/knsv/mermaid/issues/91)
+- Tidy breaks mermaid \(linebreaks in \\) [\#87](https://github.com/knsv/mermaid/issues/87)
+- Bug: \
being rendered as text in node [\#73](https://github.com/knsv/mermaid/issues/73)
+- Graph edges appear to render outside of the canvas [\#70](https://github.com/knsv/mermaid/issues/70)
+- Make link text look like it is on the line [\#53](https://github.com/knsv/mermaid/issues/53)
+
+**Merged pull requests:**
+
+- 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))
+- 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)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1)
+
+**Closed issues:**
+
+- Non ASCII chars in labels [\#84](https://github.com/knsv/mermaid/issues/84)
+- 'undefined' titles of Quicklinks on the usage page [\#80](https://github.com/knsv/mermaid/issues/80)
+- \[cli\] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [\#71](https://github.com/knsv/mermaid/issues/71)
+- Neural Networks [\#39](https://github.com/knsv/mermaid/issues/39)
+- Support for sequence diagrams [\#16](https://github.com/knsv/mermaid/issues/16)
+- Client utility for mermaid [\#6](https://github.com/knsv/mermaid/issues/6)
+
+**Merged pull requests:**
+
+- Flowchart doc: Text in the circle now in a circle [\#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack))
+- Fix for issue \#73 [\#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a))
+- Ink template [\#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic))
+- Show help and version even if phantom isn't present. Fixes \#71 [\#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog))
+- Add apostrophe & 'and' [\#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki))
+
+## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0)
+
+**Closed issues:**
+
+- Consider shipping a standalone executable [\#65](https://github.com/knsv/mermaid/issues/65)
+- Trailing whitespace at the end of lines is not ignored [\#55](https://github.com/knsv/mermaid/issues/55)
+- How do I do comments? [\#47](https://github.com/knsv/mermaid/issues/47)
+- This characters failed the lexical parsing [\#46](https://github.com/knsv/mermaid/issues/46)
+- tutorial for creating new type of graph/layout [\#44](https://github.com/knsv/mermaid/issues/44)
+- Improve readability with new line as terminator and whitespace [\#38](https://github.com/knsv/mermaid/issues/38)
+- Use classes instead of inline style for easy styling [\#24](https://github.com/knsv/mermaid/issues/24)
+
+**Merged pull requests:**
+
+- Adds Command Line Interface for generating PNGs from mermaid description files [\#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog))
+- Allow special symbols for direction along with acronyms [\#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40))
+
+## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16)
+
+**Closed issues:**
+
+- Mermaid not rendering properly on Wordpress pages [\#59](https://github.com/knsv/mermaid/issues/59)
+- Improve example page with live demo [\#52](https://github.com/knsv/mermaid/issues/52)
+- Create image file via CLI? [\#48](https://github.com/knsv/mermaid/issues/48)
+- Does not render upon AngularJS Updates [\#45](https://github.com/knsv/mermaid/issues/45)
+- Download link in README.MD doesn't work. [\#42](https://github.com/knsv/mermaid/issues/42)
+- linkStyle usage is not obvious [\#41](https://github.com/knsv/mermaid/issues/41)
+- Move \*.spec.js in src/ to test/ [\#35](https://github.com/knsv/mermaid/issues/35)
+- Lines routed outside visible area [\#19](https://github.com/knsv/mermaid/issues/19)
+
+**Merged pull requests:**
+
+- New grammar will allow statements ending without semicolon as disccused in Issue \#38 [\#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40))
+- Class based styling [\#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes))
+- Fix typos [\#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino))
+- Included .DS_Store in gitignore [\#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq))
+- Improves readablity discussed in issue \#38 [\#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40))
+- Added a linting task for gulp [\#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv))
+
+## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15)
+
+**Closed issues:**
+
+- Question marks don't render properly with /dist/mermaid.full.min.js [\#30](https://github.com/knsv/mermaid/issues/30)
+- Error with some characters [\#25](https://github.com/knsv/mermaid/issues/25)
+- Provide parse function in browser without `require`? [\#21](https://github.com/knsv/mermaid/issues/21)
+- Better label text support [\#18](https://github.com/knsv/mermaid/issues/18)
+- Cap-cased words break parser [\#8](https://github.com/knsv/mermaid/issues/8)
+
+**Merged pull requests:**
+
+- Include bower_components/ to .gitignore [\#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv))
+- Fixed reference to Git repo. [\#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis))
+
+## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14)
+
+## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13)
+
+**Closed issues:**
+
+- modified init to be applied more than once [\#29](https://github.com/knsv/mermaid/issues/29)
+- Wanted to know build process for the project. [\#28](https://github.com/knsv/mermaid/issues/28)
+- Container support [\#27](https://github.com/knsv/mermaid/issues/27)
+- can not support Chinese description [\#20](https://github.com/knsv/mermaid/issues/20)
+- Node Label text mistaken for Direction [\#17](https://github.com/knsv/mermaid/issues/17)
+- Support unicode chars in labels [\#9](https://github.com/knsv/mermaid/issues/9)
+- Publish to NPM [\#7](https://github.com/knsv/mermaid/issues/7)
+
+## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10)
+
+## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9)
+
+**Closed issues:**
+
+- Add link to jsbin playground to README [\#11](https://github.com/knsv/mermaid/issues/11)
+- What are the requirements ? [\#10](https://github.com/knsv/mermaid/issues/10)
+
+**Merged pull requests:**
+
+- Allow unicode chars in labels [\#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige))
+
+## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8)
+
+## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7)
+
+**Closed issues:**
+
+- Provide parser as separate module [\#4](https://github.com/knsv/mermaid/issues/4)
+
+## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6)
+
+## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5)
+
+**Merged pull requests:**
+
+- Added new shapes! [\#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes))
+
+## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4)
+
+## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3)
+
+## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2)
+
+## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1)
+
+## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0)
+
+## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1)
+
+## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16)
diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json
index 2dd3248e4..5a9669ff6 100644
--- a/packages/mermaid/package.json
+++ b/packages/mermaid/package.json
@@ -1,6 +1,6 @@
{
"name": "mermaid",
- "version": "11.8.1",
+ "version": "11.9.0",
"description": "Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",
"type": "module",
"module": "./dist/mermaid.core.mjs",
diff --git a/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts b/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts
index 3ec2d861f..f4f7c58bc 100644
--- a/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts
+++ b/packages/mermaid/src/diagram-api/diagram-orchestration.spec.ts
@@ -78,5 +78,41 @@ describe('diagram-orchestration', () => {
flowchart: 1 "pie" pie: 2 "pie"`)
).toBe('pie');
});
+
+ it('should detect proper diagram when defaultRenderer is elk for flowchart', () => {
+ expect(
+ detectType('mindmap\n root\n Photograph\n Waterfall', {
+ flowchart: { defaultRenderer: 'elk' },
+ })
+ ).toBe('mindmap');
+ expect(
+ detectType(
+ `
+ classDiagram
+ class Person {
+ +String name
+ -Int id
+ #double age
+ +Text demographicProfile
+ }
+ `,
+ { flowchart: { defaultRenderer: 'elk' } }
+ )
+ ).toBe('class');
+ expect(
+ detectType(
+ `
+ erDiagram
+ p[Photograph] {
+ varchar(12) jobId
+ date dateCreated
+ }
+ `,
+ {
+ flowchart: { defaultRenderer: 'elk' },
+ }
+ )
+ ).toBe('er');
+ });
});
});
diff --git a/packages/mermaid/src/diagrams/architecture/architecture.spec.ts b/packages/mermaid/src/diagrams/architecture/architecture.spec.ts
index d0405d025..49cc18a07 100644
--- a/packages/mermaid/src/diagrams/architecture/architecture.spec.ts
+++ b/packages/mermaid/src/diagrams/architecture/architecture.spec.ts
@@ -1,21 +1,12 @@
import { it, describe, expect } from 'vitest';
-import { db } from './architectureDb.js';
import { parser } from './architectureParser.js';
-
-const {
- clear,
- getDiagramTitle,
- getAccTitle,
- getAccDescription,
- getServices,
- getGroups,
- getEdges,
- getJunctions,
-} = db;
-
+import { ArchitectureDB } from './architectureDb.js';
describe('architecture diagrams', () => {
+ let db: ArchitectureDB;
beforeEach(() => {
- clear();
+ db = new ArchitectureDB();
+ // @ts-expect-error since type is set to undefined we will have error
+ parser.parser?.yy = db;
});
describe('architecture diagram definitions', () => {
@@ -36,7 +27,7 @@ describe('architecture diagrams', () => {
it('should handle title on the first line', async () => {
const str = `architecture-beta title Simple Architecture Diagram`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getDiagramTitle()).toBe('Simple Architecture Diagram');
+ expect(db.getDiagramTitle()).toBe('Simple Architecture Diagram');
});
it('should handle title on another line', async () => {
@@ -44,7 +35,7 @@ describe('architecture diagrams', () => {
title Simple Architecture Diagram
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getDiagramTitle()).toBe('Simple Architecture Diagram');
+ expect(db.getDiagramTitle()).toBe('Simple Architecture Diagram');
});
it('should handle accessibility title and description', async () => {
@@ -53,8 +44,8 @@ describe('architecture diagrams', () => {
accDescr: Accessibility Description
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getAccTitle()).toBe('Accessibility Title');
- expect(getAccDescription()).toBe('Accessibility Description');
+ expect(db.getAccTitle()).toBe('Accessibility Title');
+ expect(db.getAccDescription()).toBe('Accessibility Description');
});
it('should handle multiline accessibility description', async () => {
@@ -64,7 +55,7 @@ describe('architecture diagrams', () => {
}
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getAccDescription()).toBe('Accessibility Description');
+ expect(db.getAccDescription()).toBe('Accessibility Description');
});
});
});
diff --git a/packages/mermaid/src/diagrams/architecture/architectureDb.ts b/packages/mermaid/src/diagrams/architecture/architectureDb.ts
index c7bd64e21..4764671e8 100644
--- a/packages/mermaid/src/diagrams/architecture/architectureDb.ts
+++ b/packages/mermaid/src/diagrams/architecture/architectureDb.ts
@@ -1,8 +1,9 @@
+import { getConfig as commonGetConfig } from '../../config.js';
import type { ArchitectureDiagramConfig } from '../../config.type.js';
import DEFAULT_CONFIG from '../../defaultConfig.js';
-import { getConfig as commonGetConfig } from '../../config.js';
+import type { DiagramDB } from '../../diagram-api/types.js';
import type { D3Element } from '../../types.js';
-import { ImperativeState } from '../../utils/imperativeState.js';
+import { cleanAndMerge } from '../../utils.js';
import {
clear as commonClear,
getAccDescription,
@@ -14,7 +15,6 @@ import {
} from '../common/commonDb.js';
import type {
ArchitectureAlignment,
- ArchitectureDB,
ArchitectureDirectionPair,
ArchitectureDirectionPairMap,
ArchitectureEdge,
@@ -33,330 +33,333 @@ import {
isArchitectureService,
shiftPositionByArchitectureDirectionPair,
} from './architectureTypes.js';
-import { cleanAndMerge } from '../../utils.js';
const DEFAULT_ARCHITECTURE_CONFIG: Required
=
DEFAULT_CONFIG.architecture;
+export class ArchitectureDB implements DiagramDB {
+ private nodes: Record = {};
+ private groups: Record = {};
+ private edges: ArchitectureEdge[] = [];
+ private registeredIds: Record = {};
+ private dataStructures?: ArchitectureState['dataStructures'];
+ private elements: Record = {};
-const state = new ImperativeState(() => ({
- nodes: {},
- groups: {},
- edges: [],
- registeredIds: {},
- config: DEFAULT_ARCHITECTURE_CONFIG,
- dataStructures: undefined,
- elements: {},
-}));
-
-const clear = (): void => {
- state.reset();
- commonClear();
-};
-
-const addService = function ({
- id,
- icon,
- in: parent,
- title,
- iconText,
-}: Omit) {
- if (state.records.registeredIds[id] !== undefined) {
- throw new Error(
- `The service id [${id}] is already in use by another ${state.records.registeredIds[id]}`
- );
- }
- if (parent !== undefined) {
- if (id === parent) {
- throw new Error(`The service [${id}] cannot be placed within itself`);
- }
- if (state.records.registeredIds[parent] === undefined) {
- throw new Error(
- `The service [${id}]'s parent does not exist. Please make sure the parent is created before this service`
- );
- }
- if (state.records.registeredIds[parent] === 'node') {
- throw new Error(`The service [${id}]'s parent is not a group`);
- }
+ constructor() {
+ this.clear();
}
- state.records.registeredIds[id] = 'node';
+ public clear(): void {
+ this.nodes = {};
+ this.groups = {};
+ this.edges = [];
+ this.registeredIds = {};
+ this.dataStructures = undefined;
+ this.elements = {};
+ commonClear();
+ }
- state.records.nodes[id] = {
+ public addService({
id,
- type: 'service',
icon,
+ in: parent,
+ title,
iconText,
- title,
- edges: [],
- in: parent,
- };
-};
-
-const getServices = (): ArchitectureService[] =>
- Object.values(state.records.nodes).filter(isArchitectureService);
-
-const addJunction = function ({ id, in: parent }: Omit) {
- state.records.registeredIds[id] = 'node';
-
- state.records.nodes[id] = {
- id,
- type: 'junction',
- edges: [],
- in: parent,
- };
-};
-
-const getJunctions = (): ArchitectureJunction[] =>
- Object.values(state.records.nodes).filter(isArchitectureJunction);
-
-const getNodes = (): ArchitectureNode[] => Object.values(state.records.nodes);
-
-const getNode = (id: string): ArchitectureNode | null => state.records.nodes[id];
-
-const addGroup = function ({ id, icon, in: parent, title }: ArchitectureGroup) {
- if (state.records.registeredIds[id] !== undefined) {
- throw new Error(
- `The group id [${id}] is already in use by another ${state.records.registeredIds[id]}`
- );
- }
- if (parent !== undefined) {
- if (id === parent) {
- throw new Error(`The group [${id}] cannot be placed within itself`);
- }
- if (state.records.registeredIds[parent] === undefined) {
+ }: Omit): void {
+ if (this.registeredIds[id] !== undefined) {
throw new Error(
- `The group [${id}]'s parent does not exist. Please make sure the parent is created before this group`
+ `The service id [${id}] is already in use by another ${this.registeredIds[id]}`
);
}
- if (state.records.registeredIds[parent] === 'node') {
- throw new Error(`The group [${id}]'s parent is not a group`);
+ if (parent !== undefined) {
+ if (id === parent) {
+ throw new Error(`The service [${id}] cannot be placed within itself`);
+ }
+ if (this.registeredIds[parent] === undefined) {
+ throw new Error(
+ `The service [${id}]'s parent does not exist. Please make sure the parent is created before this service`
+ );
+ }
+ if (this.registeredIds[parent] === 'node') {
+ throw new Error(`The service [${id}]'s parent is not a group`);
+ }
}
+
+ this.registeredIds[id] = 'node';
+
+ this.nodes[id] = {
+ id,
+ type: 'service',
+ icon,
+ iconText,
+ title,
+ edges: [],
+ in: parent,
+ };
}
- state.records.registeredIds[id] = 'group';
-
- state.records.groups[id] = {
- id,
- icon,
- title,
- in: parent,
- };
-};
-const getGroups = (): ArchitectureGroup[] => {
- return Object.values(state.records.groups);
-};
-
-const addEdge = function ({
- lhsId,
- rhsId,
- lhsDir,
- rhsDir,
- lhsInto,
- rhsInto,
- lhsGroup,
- rhsGroup,
- title,
-}: ArchitectureEdge) {
- if (!isArchitectureDirection(lhsDir)) {
- throw new Error(
- `Invalid direction given for left hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${lhsDir}`
- );
- }
- if (!isArchitectureDirection(rhsDir)) {
- throw new Error(
- `Invalid direction given for right hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${rhsDir}`
- );
+ public getServices(): ArchitectureService[] {
+ return Object.values(this.nodes).filter(isArchitectureService);
}
- if (state.records.nodes[lhsId] === undefined && state.records.groups[lhsId] === undefined) {
- throw new Error(
- `The left-hand id [${lhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
- );
- }
- if (state.records.nodes[rhsId] === undefined && state.records.groups[lhsId] === undefined) {
- throw new Error(
- `The right-hand id [${rhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
- );
+ public addJunction({ id, in: parent }: Omit): void {
+ this.registeredIds[id] = 'node';
+
+ this.nodes[id] = {
+ id,
+ type: 'junction',
+ edges: [],
+ in: parent,
+ };
}
- const lhsGroupId = state.records.nodes[lhsId].in;
- const rhsGroupId = state.records.nodes[rhsId].in;
- if (lhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
- throw new Error(
- `The left-hand id [${lhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
- );
- }
- if (rhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
- throw new Error(
- `The right-hand id [${rhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
- );
+ public getJunctions(): ArchitectureJunction[] {
+ return Object.values(this.nodes).filter(isArchitectureJunction);
}
- const edge = {
+ public getNodes(): ArchitectureNode[] {
+ return Object.values(this.nodes);
+ }
+
+ public getNode(id: string): ArchitectureNode | null {
+ return this.nodes[id] ?? null;
+ }
+
+ public addGroup({ id, icon, in: parent, title }: ArchitectureGroup): void {
+ if (this.registeredIds?.[id] !== undefined) {
+ throw new Error(
+ `The group id [${id}] is already in use by another ${this.registeredIds[id]}`
+ );
+ }
+ if (parent !== undefined) {
+ if (id === parent) {
+ throw new Error(`The group [${id}] cannot be placed within itself`);
+ }
+ if (this.registeredIds?.[parent] === undefined) {
+ throw new Error(
+ `The group [${id}]'s parent does not exist. Please make sure the parent is created before this group`
+ );
+ }
+ if (this.registeredIds?.[parent] === 'node') {
+ throw new Error(`The group [${id}]'s parent is not a group`);
+ }
+ }
+
+ this.registeredIds[id] = 'group';
+
+ this.groups[id] = {
+ id,
+ icon,
+ title,
+ in: parent,
+ };
+ }
+ public getGroups(): ArchitectureGroup[] {
+ return Object.values(this.groups);
+ }
+ public addEdge({
lhsId,
- lhsDir,
- lhsInto,
- lhsGroup,
rhsId,
+ lhsDir,
rhsDir,
+ lhsInto,
rhsInto,
+ lhsGroup,
rhsGroup,
title,
- };
-
- state.records.edges.push(edge);
- if (state.records.nodes[lhsId] && state.records.nodes[rhsId]) {
- state.records.nodes[lhsId].edges.push(state.records.edges[state.records.edges.length - 1]);
- state.records.nodes[rhsId].edges.push(state.records.edges[state.records.edges.length - 1]);
- }
-};
-
-const getEdges = (): ArchitectureEdge[] => state.records.edges;
-
-/**
- * Returns the current diagram's adjacency list, spatial map, & group alignments.
- * If they have not been created, run the algorithms to generate them.
- * @returns
- */
-const getDataStructures = () => {
- if (state.records.dataStructures === undefined) {
- // Tracks how groups are aligned with one another. Generated while creating the adj list
- const groupAlignments: Record<
- string,
- Record>
- > = {};
-
- // Create an adjacency list of the diagram to perform BFS on
- // Outer reduce applied on all services
- // Inner reduce applied on the edges for a service
- const adjList = Object.entries(state.records.nodes).reduce<
- Record
- >((prevOuter, [id, service]) => {
- prevOuter[id] = service.edges.reduce((prevInner, edge) => {
- // track the direction groups connect to one another
- const lhsGroupId = getNode(edge.lhsId)?.in;
- const rhsGroupId = getNode(edge.rhsId)?.in;
- if (lhsGroupId && rhsGroupId && lhsGroupId !== rhsGroupId) {
- const alignment = getArchitectureDirectionAlignment(edge.lhsDir, edge.rhsDir);
- if (alignment !== 'bend') {
- groupAlignments[lhsGroupId] ??= {};
- groupAlignments[lhsGroupId][rhsGroupId] = alignment;
- groupAlignments[rhsGroupId] ??= {};
- groupAlignments[rhsGroupId][lhsGroupId] = alignment;
- }
- }
-
- if (edge.lhsId === id) {
- // source is LHS
- const pair = getArchitectureDirectionPair(edge.lhsDir, edge.rhsDir);
- if (pair) {
- prevInner[pair] = edge.rhsId;
- }
- } else {
- // source is RHS
- const pair = getArchitectureDirectionPair(edge.rhsDir, edge.lhsDir);
- if (pair) {
- prevInner[pair] = edge.lhsId;
- }
- }
- return prevInner;
- }, {});
- return prevOuter;
- }, {});
-
- // Configuration for the initial pass of BFS
- const firstId = Object.keys(adjList)[0];
- const visited = { [firstId]: 1 };
- // If a key is present in this object, it has not been visited
- const notVisited = Object.keys(adjList).reduce(
- (prev, id) => (id === firstId ? prev : { ...prev, [id]: 1 }),
- {} as Record
- );
-
- // Perform BFS on the adjacency list
- const BFS = (startingId: string): ArchitectureSpatialMap => {
- const spatialMap = { [startingId]: [0, 0] };
- const queue = [startingId];
- while (queue.length > 0) {
- const id = queue.shift();
- if (id) {
- visited[id] = 1;
- delete notVisited[id];
- const adj = adjList[id];
- const [posX, posY] = spatialMap[id];
- Object.entries(adj).forEach(([dir, rhsId]) => {
- if (!visited[rhsId]) {
- spatialMap[rhsId] = shiftPositionByArchitectureDirectionPair(
- [posX, posY],
- dir as ArchitectureDirectionPair
- );
- queue.push(rhsId);
- }
- });
- }
- }
- return spatialMap;
- };
- const spatialMaps = [BFS(firstId)];
-
- // If our diagram is disconnected, keep adding additional spatial maps until all disconnected graphs have been found
- while (Object.keys(notVisited).length > 0) {
- spatialMaps.push(BFS(Object.keys(notVisited)[0]));
+ }: ArchitectureEdge): void {
+ if (!isArchitectureDirection(lhsDir)) {
+ throw new Error(
+ `Invalid direction given for left hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${String(lhsDir)}`
+ );
}
- state.records.dataStructures = {
- adjList,
- spatialMaps,
- groupAlignments,
+ if (!isArchitectureDirection(rhsDir)) {
+ throw new Error(
+ `Invalid direction given for right hand side of edge ${lhsId}--${rhsId}. Expected (L,R,T,B) got ${String(rhsDir)}`
+ );
+ }
+
+ if (this.nodes[lhsId] === undefined && this.groups[lhsId] === undefined) {
+ throw new Error(
+ `The left-hand id [${lhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
+ );
+ }
+ if (this.nodes[rhsId] === undefined && this.groups[rhsId] === undefined) {
+ throw new Error(
+ `The right-hand id [${rhsId}] does not yet exist. Please create the service/group before declaring an edge to it.`
+ );
+ }
+
+ const lhsGroupId = this.nodes[lhsId].in;
+ const rhsGroupId = this.nodes[rhsId].in;
+ if (lhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
+ throw new Error(
+ `The left-hand id [${lhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
+ );
+ }
+ if (rhsGroup && lhsGroupId && rhsGroupId && lhsGroupId == rhsGroupId) {
+ throw new Error(
+ `The right-hand id [${rhsId}] is modified to traverse the group boundary, but the edge does not pass through two groups.`
+ );
+ }
+
+ const edge = {
+ lhsId,
+ lhsDir,
+ lhsInto,
+ lhsGroup,
+ rhsId,
+ rhsDir,
+ rhsInto,
+ rhsGroup,
+ title,
};
+
+ this.edges.push(edge);
+ if (this.nodes[lhsId] && this.nodes[rhsId]) {
+ this.nodes[lhsId].edges.push(this.edges[this.edges.length - 1]);
+ this.nodes[rhsId].edges.push(this.edges[this.edges.length - 1]);
+ }
}
- return state.records.dataStructures;
-};
-const setElementForId = (id: string, element: D3Element) => {
- state.records.elements[id] = element;
-};
-const getElementById = (id: string) => state.records.elements[id];
+ public getEdges(): ArchitectureEdge[] {
+ return this.edges;
+ }
-const getConfig = (): Required => {
- const config = cleanAndMerge({
- ...DEFAULT_ARCHITECTURE_CONFIG,
- ...commonGetConfig().architecture,
- });
- return config;
-};
+ /**
+ * Returns the current diagram's adjacency list, spatial map, & group alignments.
+ * If they have not been created, run the algorithms to generate them.
+ * @returns
+ */
+ public getDataStructures() {
+ if (this.dataStructures === undefined) {
+ // Tracks how groups are aligned with one another. Generated while creating the adj list
+ const groupAlignments: Record<
+ string,
+ Record>
+ > = {};
-export const db: ArchitectureDB = {
- clear,
- setDiagramTitle,
- getDiagramTitle,
- setAccTitle,
- getAccTitle,
- setAccDescription,
- getAccDescription,
- getConfig,
+ // Create an adjacency list of the diagram to perform BFS on
+ // Outer reduce applied on all services
+ // Inner reduce applied on the edges for a service
+ const adjList = Object.entries(this.nodes).reduce<
+ Record
+ >((prevOuter, [id, service]) => {
+ prevOuter[id] = service.edges.reduce((prevInner, edge) => {
+ // track the direction groups connect to one another
+ const lhsGroupId = this.getNode(edge.lhsId)?.in;
+ const rhsGroupId = this.getNode(edge.rhsId)?.in;
+ if (lhsGroupId && rhsGroupId && lhsGroupId !== rhsGroupId) {
+ const alignment = getArchitectureDirectionAlignment(edge.lhsDir, edge.rhsDir);
+ if (alignment !== 'bend') {
+ groupAlignments[lhsGroupId] ??= {};
+ groupAlignments[lhsGroupId][rhsGroupId] = alignment;
+ groupAlignments[rhsGroupId] ??= {};
+ groupAlignments[rhsGroupId][lhsGroupId] = alignment;
+ }
+ }
- addService,
- getServices,
- addJunction,
- getJunctions,
- getNodes,
- getNode,
- addGroup,
- getGroups,
- addEdge,
- getEdges,
- setElementForId,
- getElementById,
- getDataStructures,
-};
+ if (edge.lhsId === id) {
+ // source is LHS
+ const pair = getArchitectureDirectionPair(edge.lhsDir, edge.rhsDir);
+ if (pair) {
+ prevInner[pair] = edge.rhsId;
+ }
+ } else {
+ // source is RHS
+ const pair = getArchitectureDirectionPair(edge.rhsDir, edge.lhsDir);
+ if (pair) {
+ prevInner[pair] = edge.lhsId;
+ }
+ }
+ return prevInner;
+ }, {});
+ return prevOuter;
+ }, {});
+
+ // Configuration for the initial pass of BFS
+ const firstId = Object.keys(adjList)[0];
+ const visited = { [firstId]: 1 };
+ // If a key is present in this object, it has not been visited
+ const notVisited = Object.keys(adjList).reduce(
+ (prev, id) => (id === firstId ? prev : { ...prev, [id]: 1 }),
+ {} as Record
+ );
+
+ // Perform BFS on the adjacency list
+ const BFS = (startingId: string): ArchitectureSpatialMap => {
+ const spatialMap = { [startingId]: [0, 0] };
+ const queue = [startingId];
+ while (queue.length > 0) {
+ const id = queue.shift();
+ if (id) {
+ visited[id] = 1;
+ delete notVisited[id];
+ const adj = adjList[id];
+ const [posX, posY] = spatialMap[id];
+ Object.entries(adj).forEach(([dir, rhsId]) => {
+ if (!visited[rhsId]) {
+ spatialMap[rhsId] = shiftPositionByArchitectureDirectionPair(
+ [posX, posY],
+ dir as ArchitectureDirectionPair
+ );
+ queue.push(rhsId);
+ }
+ });
+ }
+ }
+ return spatialMap;
+ };
+ const spatialMaps = [BFS(firstId)];
+
+ // If our diagram is disconnected, keep adding additional spatial maps until all disconnected graphs have been found
+ while (Object.keys(notVisited).length > 0) {
+ spatialMaps.push(BFS(Object.keys(notVisited)[0]));
+ }
+ this.dataStructures = {
+ adjList,
+ spatialMaps,
+ groupAlignments,
+ };
+ }
+ return this.dataStructures;
+ }
+
+ public setElementForId(id: string, element: D3Element): void {
+ this.elements[id] = element;
+ }
+
+ public getElementById(id: string): D3Element {
+ return this.elements[id];
+ }
+
+ public getConfig(): Required {
+ return cleanAndMerge({
+ ...DEFAULT_ARCHITECTURE_CONFIG,
+ ...commonGetConfig().architecture,
+ });
+ }
+
+ public getConfigField(
+ field: T
+ ): Required[T] {
+ return this.getConfig()[field];
+ }
+
+ public setAccTitle = setAccTitle;
+ public getAccTitle = getAccTitle;
+ public setDiagramTitle = setDiagramTitle;
+ public getDiagramTitle = getDiagramTitle;
+ public getAccDescription = getAccDescription;
+ public setAccDescription = setAccDescription;
+}
/**
* Typed wrapper for resolving an architecture diagram's config fields. Returns the default value if undefined
* @param field - the config field to access
* @returns
*/
-export function getConfigField(
- field: T
-): Required[T] {
- return getConfig()[field];
-}
+// export function getConfigField(
+// field: T
+// ): Required[T] {
+// return db.getConfig()[field];
+// }
diff --git a/packages/mermaid/src/diagrams/architecture/architectureDiagram.ts b/packages/mermaid/src/diagrams/architecture/architectureDiagram.ts
index 82dacd3e1..1d390a3ab 100644
--- a/packages/mermaid/src/diagrams/architecture/architectureDiagram.ts
+++ b/packages/mermaid/src/diagrams/architecture/architectureDiagram.ts
@@ -1,12 +1,14 @@
import type { DiagramDefinition } from '../../diagram-api/types.js';
import { parser } from './architectureParser.js';
-import { db } from './architectureDb.js';
+import { ArchitectureDB } from './architectureDb.js';
import styles from './architectureStyles.js';
import { renderer } from './architectureRenderer.js';
export const diagram: DiagramDefinition = {
parser,
- db,
+ get db() {
+ return new ArchitectureDB();
+ },
renderer,
styles,
};
diff --git a/packages/mermaid/src/diagrams/architecture/architectureParser.ts b/packages/mermaid/src/diagrams/architecture/architectureParser.ts
index a7159d907..58820dad4 100644
--- a/packages/mermaid/src/diagrams/architecture/architectureParser.ts
+++ b/packages/mermaid/src/diagrams/architecture/architectureParser.ts
@@ -1,24 +1,33 @@
import type { Architecture } from '@mermaid-js/parser';
import { parse } from '@mermaid-js/parser';
-import { log } from '../../logger.js';
import type { ParserDefinition } from '../../diagram-api/types.js';
+import { log } from '../../logger.js';
import { populateCommonDb } from '../common/populateCommonDb.js';
-import type { ArchitectureDB } from './architectureTypes.js';
-import { db } from './architectureDb.js';
+import { ArchitectureDB } from './architectureDb.js';
const populateDb = (ast: Architecture, db: ArchitectureDB) => {
populateCommonDb(ast, db);
- ast.groups.map(db.addGroup);
+ ast.groups.map((group) => db.addGroup(group));
ast.services.map((service) => db.addService({ ...service, type: 'service' }));
ast.junctions.map((service) => db.addJunction({ ...service, type: 'junction' }));
// @ts-ignore TODO our parser guarantees the type is L/R/T/B and not string. How to change to union type?
- ast.edges.map(db.addEdge);
+ ast.edges.map((edge) => db.addEdge(edge));
};
export const parser: ParserDefinition = {
+ parser: {
+ // @ts-expect-error - ArchitectureDB is not assignable to DiagramDB
+ yy: undefined,
+ },
parse: async (input: string): Promise => {
const ast: Architecture = await parse('architecture', input);
log.debug(ast);
+ const db = parser.parser?.yy;
+ if (!(db instanceof ArchitectureDB)) {
+ throw new Error(
+ 'parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.'
+ );
+ }
populateDb(ast, db);
},
};
diff --git a/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts b/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts
index 1505b1950..b29567236 100644
--- a/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts
+++ b/packages/mermaid/src/diagrams/architecture/architectureRenderer.ts
@@ -1,4 +1,3 @@
-import { registerIconPacks } from '../../rendering-util/icons.js';
import type { Position } from 'cytoscape';
import cytoscape from 'cytoscape';
import type { FcoseLayoutOptions } from 'cytoscape-fcose';
@@ -7,9 +6,10 @@ import { select } from 'd3';
import type { DrawDefinition, SVG } from '../../diagram-api/types.js';
import type { Diagram } from '../../Diagram.js';
import { log } from '../../logger.js';
+import { registerIconPacks } from '../../rendering-util/icons.js';
import { selectSvgElement } from '../../rendering-util/selectSvgElement.js';
import { setupGraphViewbox } from '../../setupGraphViewbox.js';
-import { getConfigField } from './architectureDb.js';
+import type { ArchitectureDB } from './architectureDb.js';
import { architectureIcons } from './architectureIcons.js';
import type {
ArchitectureAlignment,
@@ -22,7 +22,6 @@ import type {
NodeSingularData,
} from './architectureTypes.js';
import {
- type ArchitectureDB,
type ArchitectureDirection,
type ArchitectureEdge,
type ArchitectureGroup,
@@ -44,7 +43,7 @@ registerIconPacks([
]);
cytoscape.use(fcose);
-function addServices(services: ArchitectureService[], cy: cytoscape.Core) {
+function addServices(services: ArchitectureService[], cy: cytoscape.Core, db: ArchitectureDB) {
services.forEach((service) => {
cy.add({
group: 'nodes',
@@ -54,15 +53,15 @@ function addServices(services: ArchitectureService[], cy: cytoscape.Core) {
icon: service.icon,
label: service.title,
parent: service.in,
- width: getConfigField('iconSize'),
- height: getConfigField('iconSize'),
+ width: db.getConfigField('iconSize'),
+ height: db.getConfigField('iconSize'),
} as NodeSingularData,
classes: 'node-service',
});
});
}
-function addJunctions(junctions: ArchitectureJunction[], cy: cytoscape.Core) {
+function addJunctions(junctions: ArchitectureJunction[], cy: cytoscape.Core, db: ArchitectureDB) {
junctions.forEach((junction) => {
cy.add({
group: 'nodes',
@@ -70,8 +69,8 @@ function addJunctions(junctions: ArchitectureJunction[], cy: cytoscape.Core) {
type: 'junction',
id: junction.id,
parent: junction.in,
- width: getConfigField('iconSize'),
- height: getConfigField('iconSize'),
+ width: db.getConfigField('iconSize'),
+ height: db.getConfigField('iconSize'),
} as NodeSingularData,
classes: 'node-junction',
});
@@ -257,7 +256,8 @@ function getAlignments(
}
function getRelativeConstraints(
- spatialMaps: ArchitectureSpatialMap[]
+ spatialMaps: ArchitectureSpatialMap[],
+ db: ArchitectureDB
): fcose.FcoseRelativePlacementConstraint[] {
const relativeConstraints: fcose.FcoseRelativePlacementConstraint[] = [];
const posToStr = (pos: number[]) => `${pos[0]},${pos[1]}`;
@@ -296,7 +296,7 @@ function getRelativeConstraints(
[ArchitectureDirectionName[
getOppositeArchitectureDirection(dir as ArchitectureDirection)
]]: currId,
- gap: 1.5 * getConfigField('iconSize'),
+ gap: 1.5 * db.getConfigField('iconSize'),
});
}
});
@@ -353,7 +353,7 @@ function layoutArchitecture(
style: {
'text-valign': 'bottom',
'text-halign': 'center',
- 'font-size': `${getConfigField('fontSize')}px`,
+ 'font-size': `${db.getConfigField('fontSize')}px`,
},
},
{
@@ -375,7 +375,7 @@ function layoutArchitecture(
selector: '.node-group',
style: {
// @ts-ignore Incorrect library types
- padding: `${getConfigField('padding')}px`,
+ padding: `${db.getConfigField('padding')}px`,
},
},
],
@@ -393,14 +393,14 @@ function layoutArchitecture(
renderEl.remove();
addGroups(groups, cy);
- addServices(services, cy);
- addJunctions(junctions, cy);
+ addServices(services, cy, db);
+ addJunctions(junctions, cy, db);
addEdges(edges, cy);
// Use the spatial map to create alignment arrays for fcose
const alignmentConstraint = getAlignments(db, spatialMaps, groupAlignments);
// Create the relative constraints for fcose by using an inverse of the spatial map and performing BFS on it
- const relativePlacementConstraint = getRelativeConstraints(spatialMaps);
+ const relativePlacementConstraint = getRelativeConstraints(spatialMaps, db);
const layout = cy.layout({
name: 'fcose',
@@ -415,7 +415,9 @@ function layoutArchitecture(
const { parent: parentA } = nodeData(nodeA);
const { parent: parentB } = nodeData(nodeB);
const elasticity =
- parentA === parentB ? 1.5 * getConfigField('iconSize') : 0.5 * getConfigField('iconSize');
+ parentA === parentB
+ ? 1.5 * db.getConfigField('iconSize')
+ : 0.5 * db.getConfigField('iconSize');
return elasticity;
},
edgeElasticity(edge: EdgeSingular) {
@@ -535,11 +537,11 @@ export const draw: DrawDefinition = async (text, id, _version, diagObj: Diagram)
const cy = await layoutArchitecture(services, junctions, groups, edges, db, ds);
- await drawEdges(edgesElem, cy);
- await drawGroups(groupElem, cy);
+ await drawEdges(edgesElem, cy, db);
+ await drawGroups(groupElem, cy, db);
positionNodes(db, cy);
- setupGraphViewbox(undefined, svg, getConfigField('padding'), getConfigField('useMaxWidth'));
+ setupGraphViewbox(undefined, svg, db.getConfigField('padding'), db.getConfigField('useMaxWidth'));
};
export const renderer = { draw };
diff --git a/packages/mermaid/src/diagrams/architecture/svgDraw.ts b/packages/mermaid/src/diagrams/architecture/svgDraw.ts
index b10a451fe..f384defd8 100644
--- a/packages/mermaid/src/diagrams/architecture/svgDraw.ts
+++ b/packages/mermaid/src/diagrams/architecture/svgDraw.ts
@@ -1,9 +1,9 @@
-import { getIconSVG } from '../../rendering-util/icons.js';
import type cytoscape from 'cytoscape';
import { getConfig } from '../../diagram-api/diagramAPI.js';
import { createText } from '../../rendering-util/createText.js';
+import { getIconSVG } from '../../rendering-util/icons.js';
import type { D3Element } from '../../types.js';
-import { db, getConfigField } from './architectureDb.js';
+import type { ArchitectureDB } from './architectureDb.js';
import { architectureIcons } from './architectureIcons.js';
import {
ArchitectureDirectionArrow,
@@ -16,14 +16,17 @@ import {
isArchitectureDirectionY,
isArchitecturePairXY,
nodeData,
- type ArchitectureDB,
type ArchitectureJunction,
type ArchitectureService,
} from './architectureTypes.js';
-export const drawEdges = async function (edgesEl: D3Element, cy: cytoscape.Core) {
- const padding = getConfigField('padding');
- const iconSize = getConfigField('iconSize');
+export const drawEdges = async function (
+ edgesEl: D3Element,
+ cy: cytoscape.Core,
+ db: ArchitectureDB
+) {
+ const padding = db.getConfigField('padding');
+ const iconSize = db.getConfigField('iconSize');
const halfIconSize = iconSize / 2;
const arrowSize = iconSize / 6;
const halfArrowSize = arrowSize / 2;
@@ -183,13 +186,17 @@ export const drawEdges = async function (edgesEl: D3Element, cy: cytoscape.Core)
);
};
-export const drawGroups = async function (groupsEl: D3Element, cy: cytoscape.Core) {
- const padding = getConfigField('padding');
+export const drawGroups = async function (
+ groupsEl: D3Element,
+ cy: cytoscape.Core,
+ db: ArchitectureDB
+) {
+ const padding = db.getConfigField('padding');
const groupIconSize = padding * 0.75;
- const fontSize = getConfigField('fontSize');
+ const fontSize = db.getConfigField('fontSize');
- const iconSize = getConfigField('iconSize');
+ const iconSize = db.getConfigField('iconSize');
const halfIconSize = iconSize / 2;
await Promise.all(
@@ -266,7 +273,7 @@ export const drawServices = async function (
): Promise {
for (const service of services) {
const serviceElem = elem.append('g');
- const iconSize = getConfigField('iconSize');
+ const iconSize = db.getConfigField('iconSize');
if (service.title) {
const textElem = serviceElem.append('g');
@@ -350,7 +357,7 @@ export const drawJunctions = function (
) {
junctions.forEach((junction) => {
const junctionElem = elem.append('g');
- const iconSize = getConfigField('iconSize');
+ const iconSize = db.getConfigField('iconSize');
const bkgElem = junctionElem.append('g');
bkgElem
diff --git a/packages/mermaid/src/diagrams/block/blockDB.ts b/packages/mermaid/src/diagrams/block/blockDB.ts
index 854969012..39a8b47a0 100644
--- a/packages/mermaid/src/diagrams/block/blockDB.ts
+++ b/packages/mermaid/src/diagrams/block/blockDB.ts
@@ -92,7 +92,20 @@ export const setCssClass = function (itemIds: string, cssClassName: string) {
const populateBlockDatabase = (_blockList: Block[], parent: Block): void => {
const blockList = _blockList.flat();
const children = [];
+ const columnSettingBlock = blockList.find((b) => b?.type === 'column-setting');
+ const column = columnSettingBlock?.columns ?? -1;
for (const block of blockList) {
+ if (
+ typeof column === 'number' &&
+ column > 0 &&
+ block.type !== 'column-setting' &&
+ typeof block.widthInColumns === 'number' &&
+ block.widthInColumns > column
+ ) {
+ log.warn(
+ `Block ${block.id} width ${block.widthInColumns} exceeds configured column width ${column}`
+ );
+ }
if (block.label) {
block.label = sanitizeText(block.label);
}
diff --git a/packages/mermaid/src/diagrams/block/layout.ts b/packages/mermaid/src/diagrams/block/layout.ts
index a00e935ac..ea0de6312 100644
--- a/packages/mermaid/src/diagrams/block/layout.ts
+++ b/packages/mermaid/src/diagrams/block/layout.ts
@@ -270,7 +270,12 @@ function layoutBlocks(block: Block, db: BlockDB) {
if (child.children) {
layoutBlocks(child, db);
}
- columnPos += child?.widthInColumns ?? 1;
+ let columnsFilled = child?.widthInColumns ?? 1;
+ if (columns > 0) {
+ // Make sure overflowing lines do not affect later lines
+ columnsFilled = Math.min(columnsFilled, columns - (columnPos % columns));
+ }
+ columnPos += columnsFilled;
log.debug('abc88 columnsPos', child, columnPos);
}
}
diff --git a/packages/mermaid/src/diagrams/block/parser/block.spec.ts b/packages/mermaid/src/diagrams/block/parser/block.spec.ts
index 4bf3290d8..21da4e440 100644
--- a/packages/mermaid/src/diagrams/block/parser/block.spec.ts
+++ b/packages/mermaid/src/diagrams/block/parser/block.spec.ts
@@ -1,6 +1,7 @@
// @ts-ignore: jison doesn't export types
import block from './block.jison';
import db from '../blockDB.js';
+import { log } from '../../../logger.js';
describe('Block diagram', function () {
describe('when parsing a block diagram graph it should handle > ', function () {
@@ -402,6 +403,25 @@ columns 1
const B = blocks[0];
expect(B.styles).toContain('fill:#f9F');
});
+ it('should log a warning when block width exceeds column width', () => {
+ const str = `block-beta
+ columns 1
+ A:1
+ B:2
+ C:3
+ D:4
+ E:3
+ F:2
+ G:1`;
+
+ const logWarnSpy = vi.spyOn(log, 'warn').mockImplementation(() => undefined);
+
+ block.parse(str);
+
+ expect(logWarnSpy).toHaveBeenCalledWith('Block B width 2 exceeds configured column width 1');
+
+ logWarnSpy.mockRestore();
+ });
});
describe('prototype properties', function () {
diff --git a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts
index 6688ffd8c..f0b2ac8ff 100644
--- a/packages/mermaid/src/diagrams/flowchart/elk/detector.ts
+++ b/packages/mermaid/src/diagrams/flowchart/elk/detector.ts
@@ -11,7 +11,7 @@ const detector: DiagramDetector = (txt, config = {}): boolean => {
// If diagram explicitly states flowchart-elk
/^\s*flowchart-elk/.test(txt) ||
// If a flowchart/graph diagram has their default renderer set to elk
- (/^\s*flowchart|graph/.test(txt) && config?.flowchart?.defaultRenderer === 'elk')
+ (/^\s*(flowchart|graph)/.test(txt) && config?.flowchart?.defaultRenderer === 'elk')
) {
config.layout = 'elk';
return true;
diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.spec.ts b/packages/mermaid/src/diagrams/flowchart/flowDb.spec.ts
index 8d12de00b..3e4034e3d 100644
--- a/packages/mermaid/src/diagrams/flowchart/flowDb.spec.ts
+++ b/packages/mermaid/src/diagrams/flowchart/flowDb.spec.ts
@@ -125,4 +125,60 @@ describe('flow db getData', () => {
const { edges } = flowDb.getData();
expect(edges[0].curve).toBe('basis');
});
+
+ it('should support modifying interpolate using edge id syntax', () => {
+ flowDb.addVertex('A', { text: 'A', type: 'text' }, undefined, [], [], '', {}, undefined);
+ flowDb.addVertex('B', { text: 'B', type: 'text' }, undefined, [], [], '', {}, undefined);
+ flowDb.addVertex('C', { text: 'C', type: 'text' }, undefined, [], [], '', {}, undefined);
+ flowDb.addVertex('D', { text: 'D', type: 'text' }, undefined, [], [], '', {}, undefined);
+ flowDb.addLink(['A'], ['B'], {});
+ flowDb.addLink(['A'], ['C'], { id: 'e2' });
+ flowDb.addLink(['B'], ['D'], { id: 'e3' });
+ flowDb.addLink(['C'], ['D'], {});
+ flowDb.updateLinkInterpolate(['default'], 'stepBefore');
+ flowDb.updateLinkInterpolate([0], 'basis');
+ flowDb.addVertex(
+ 'e2',
+ { text: 'Shouldnt be used', type: 'text' },
+ undefined,
+ [],
+ [],
+ '',
+ {},
+ ' curve: monotoneX '
+ );
+ flowDb.addVertex(
+ 'e3',
+ { text: 'Shouldnt be used', type: 'text' },
+ undefined,
+ [],
+ [],
+ '',
+ {},
+ ' curve: catmullRom '
+ );
+
+ const { edges } = flowDb.getData();
+ expect(edges[0].curve).toBe('basis');
+ expect(edges[1].curve).toBe('monotoneX');
+ expect(edges[2].curve).toBe('catmullRom');
+ expect(edges[3].curve).toBe('stepBefore');
+ });
+});
+
+describe('flow db direction', () => {
+ let flowDb: FlowDB;
+ beforeEach(() => {
+ flowDb = new FlowDB();
+ });
+
+ it('should set direction to TB when TD is set', () => {
+ flowDb.setDirection('TD');
+ expect(flowDb.getDirection()).toBe('TB');
+ });
+
+ it('should correctly set direction irrespective of leading spaces', () => {
+ flowDb.setDirection(' TD');
+ expect(flowDb.getDirection()).toBe('TB');
+ });
});
diff --git a/packages/mermaid/src/diagrams/flowchart/flowDb.ts b/packages/mermaid/src/diagrams/flowchart/flowDb.ts
index 65f8c4a05..632633730 100644
--- a/packages/mermaid/src/diagrams/flowchart/flowDb.ts
+++ b/packages/mermaid/src/diagrams/flowchart/flowDb.ts
@@ -139,6 +139,9 @@ export class FlowDB implements DiagramDB {
if (edgeDoc?.animation !== undefined) {
edge.animation = edgeDoc.animation;
}
+ if (edgeDoc?.curve !== undefined) {
+ edge.interpolate = edgeDoc.curve;
+ }
return;
}
@@ -403,7 +406,8 @@ You have to call mermaid.initialize.`
*
*/
public setDirection(dir: string) {
- this.direction = dir;
+ this.direction = dir.trim();
+
if (/.* {
expect(edges[1].interpolate).toBe('cardinal');
});
+ it('should handle edge curve properties using edge ID', function () {
+ const res = flow.parser.parse(
+ 'graph TD\n' +
+ 'A e1@-->B\n' +
+ 'A uniqueName@-->C\n' +
+ 'e1@{curve: basis}\n' +
+ 'uniqueName@{curve: cardinal}'
+ );
+
+ const vert = flow.parser.yy.getVertices();
+ const edges = flow.parser.yy.getEdges();
+
+ expect(edges[0].interpolate).toBe('basis');
+ expect(edges[1].interpolate).toBe('cardinal');
+ });
+
+ it('should handle edge curve properties using edge ID but without overriding default', function () {
+ const res = flow.parser.parse(
+ 'graph TD\n' +
+ 'A e1@-->B\n' +
+ 'A-->C\n' +
+ 'linkStyle default interpolate linear\n' +
+ 'e1@{curve: stepAfter}'
+ );
+
+ const vert = flow.parser.yy.getVertices();
+ const edges = flow.parser.yy.getEdges();
+
+ expect(edges[0].interpolate).toBe('stepAfter');
+ expect(edges.defaultInterpolate).toBe('linear');
+ });
+
+ it('should handle edge curve properties using edge ID mixed with line interpolation', function () {
+ const res = flow.parser.parse(
+ 'graph TD\n' +
+ 'A e1@-->B-->D\n' +
+ 'A-->C e4@-->D-->E\n' +
+ 'linkStyle default interpolate linear\n' +
+ 'linkStyle 1 interpolate basis\n' +
+ 'e1@{curve: monotoneX}\n' +
+ 'e4@{curve: stepBefore}'
+ );
+
+ const vert = flow.parser.yy.getVertices();
+ const edges = flow.parser.yy.getEdges();
+
+ expect(edges[0].interpolate).toBe('monotoneX');
+ expect(edges[1].interpolate).toBe('basis');
+ expect(edges.defaultInterpolate).toBe('linear');
+ expect(edges[3].interpolate).toBe('stepBefore');
+ expect(edges.defaultInterpolate).toBe('linear');
+ });
+
it('should handle line interpolation multi-numbered definitions', function () {
const res = flow.parser.parse(
'graph TD\n' + 'A-->B\n' + 'A-->C\n' + 'linkStyle 0,1 interpolate basis'
diff --git a/packages/mermaid/src/diagrams/packet/db.ts b/packages/mermaid/src/diagrams/packet/db.ts
index d7b550472..863bd79e1 100644
--- a/packages/mermaid/src/diagrams/packet/db.ts
+++ b/packages/mermaid/src/diagrams/packet/db.ts
@@ -1,6 +1,7 @@
import { getConfig as commonGetConfig } from '../../config.js';
import type { PacketDiagramConfig } from '../../config.type.js';
import DEFAULT_CONFIG from '../../defaultConfig.js';
+import type { DiagramDB } from '../../diagram-api/types.js';
import { cleanAndMerge } from '../../utils.js';
import {
clear as commonClear,
@@ -11,49 +12,42 @@ import {
setAccTitle,
setDiagramTitle,
} from '../common/commonDb.js';
-import type { PacketDB, PacketData, PacketWord } from './types.js';
-
-const defaultPacketData: PacketData = {
- packet: [],
-};
-
-let data: PacketData = structuredClone(defaultPacketData);
-
+import type { PacketWord } from './types.js';
const DEFAULT_PACKET_CONFIG: Required = DEFAULT_CONFIG.packet;
-const getConfig = (): Required => {
- const config = cleanAndMerge({
- ...DEFAULT_PACKET_CONFIG,
- ...commonGetConfig().packet,
- });
- if (config.showBits) {
- config.paddingY += 10;
+export class PacketDB implements DiagramDB {
+ private packet: PacketWord[] = [];
+
+ public getConfig() {
+ const config = cleanAndMerge({
+ ...DEFAULT_PACKET_CONFIG,
+ ...commonGetConfig().packet,
+ });
+ if (config.showBits) {
+ config.paddingY += 10;
+ }
+ return config;
}
- return config;
-};
-const getPacket = (): PacketWord[] => data.packet;
-
-const pushWord = (word: PacketWord) => {
- if (word.length > 0) {
- data.packet.push(word);
+ public getPacket() {
+ return this.packet;
}
-};
-const clear = () => {
- commonClear();
- data = structuredClone(defaultPacketData);
-};
+ public pushWord(word: PacketWord) {
+ if (word.length > 0) {
+ this.packet.push(word);
+ }
+ }
-export const db: PacketDB = {
- pushWord,
- getPacket,
- getConfig,
- clear,
- setAccTitle,
- getAccTitle,
- setDiagramTitle,
- getDiagramTitle,
- getAccDescription,
- setAccDescription,
-};
+ public clear() {
+ commonClear();
+ this.packet = [];
+ }
+
+ public setAccTitle = setAccTitle;
+ public getAccTitle = getAccTitle;
+ public setDiagramTitle = setDiagramTitle;
+ public getDiagramTitle = getDiagramTitle;
+ public getAccDescription = getAccDescription;
+ public setAccDescription = setAccDescription;
+}
diff --git a/packages/mermaid/src/diagrams/packet/diagram.ts b/packages/mermaid/src/diagrams/packet/diagram.ts
index a73a77c05..84a7bca8f 100644
--- a/packages/mermaid/src/diagrams/packet/diagram.ts
+++ b/packages/mermaid/src/diagrams/packet/diagram.ts
@@ -1,12 +1,14 @@
import type { DiagramDefinition } from '../../diagram-api/types.js';
-import { db } from './db.js';
+import { PacketDB } from './db.js';
import { parser } from './parser.js';
import { renderer } from './renderer.js';
import { styles } from './styles.js';
export const diagram: DiagramDefinition = {
parser,
- db,
+ get db() {
+ return new PacketDB();
+ },
renderer,
styles,
};
diff --git a/packages/mermaid/src/diagrams/packet/packet.spec.ts b/packages/mermaid/src/diagrams/packet/packet.spec.ts
index b03ffe4d1..fd7b3211a 100644
--- a/packages/mermaid/src/diagrams/packet/packet.spec.ts
+++ b/packages/mermaid/src/diagrams/packet/packet.spec.ts
@@ -1,24 +1,26 @@
import { it, describe, expect } from 'vitest';
-import { db } from './db.js';
+import { PacketDB } from './db.js';
import { parser } from './parser.js';
-const { clear, getPacket, getDiagramTitle, getAccTitle, getAccDescription } = db;
-
describe('packet diagrams', () => {
+ let db: PacketDB;
beforeEach(() => {
- clear();
+ db = new PacketDB();
+ if (parser.parser) {
+ parser.parser.yy = db;
+ }
});
it('should handle a packet-beta definition', async () => {
const str = `packet-beta`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot('[]');
+ expect(db.getPacket()).toMatchInlineSnapshot('[]');
});
it('should handle a packet definition', async () => {
const str = `packet`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot('[]');
+ expect(db.getPacket()).toMatchInlineSnapshot('[]');
});
it('should handle diagram with data and title', async () => {
@@ -29,10 +31,10 @@ describe('packet diagrams', () => {
0-10: "test"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getDiagramTitle()).toMatchInlineSnapshot('"Packet diagram"');
- expect(getAccTitle()).toMatchInlineSnapshot('"Packet accTitle"');
- expect(getAccDescription()).toMatchInlineSnapshot('"Packet accDescription"');
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getDiagramTitle()).toMatchInlineSnapshot('"Packet diagram"');
+ expect(db.getAccTitle()).toMatchInlineSnapshot('"Packet accTitle"');
+ expect(db.getAccDescription()).toMatchInlineSnapshot('"Packet accDescription"');
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
@@ -52,7 +54,7 @@ describe('packet diagrams', () => {
11: "single"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
@@ -78,7 +80,7 @@ describe('packet diagrams', () => {
+16: "word"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
@@ -104,7 +106,7 @@ describe('packet diagrams', () => {
+16: "word"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
@@ -130,7 +132,7 @@ describe('packet diagrams', () => {
11-90: "multiple"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
@@ -172,7 +174,7 @@ describe('packet diagrams', () => {
17-63: "multiple"
`;
await expect(parser.parse(str)).resolves.not.toThrow();
- expect(getPacket()).toMatchInlineSnapshot(`
+ expect(db.getPacket()).toMatchInlineSnapshot(`
[
[
{
diff --git a/packages/mermaid/src/diagrams/packet/parser.ts b/packages/mermaid/src/diagrams/packet/parser.ts
index 1dcccd636..689d86fb3 100644
--- a/packages/mermaid/src/diagrams/packet/parser.ts
+++ b/packages/mermaid/src/diagrams/packet/parser.ts
@@ -3,12 +3,12 @@ import { parse } from '@mermaid-js/parser';
import type { ParserDefinition } from '../../diagram-api/types.js';
import { log } from '../../logger.js';
import { populateCommonDb } from '../common/populateCommonDb.js';
-import { db } from './db.js';
+import { PacketDB } from './db.js';
import type { PacketBlock, PacketWord } from './types.js';
const maxPacketSize = 10_000;
-const populate = (ast: Packet) => {
+const populate = (ast: Packet, db: PacketDB) => {
populateCommonDb(ast, db);
let lastBit = -1;
let word: PacketWord = [];
@@ -91,9 +91,17 @@ const getNextFittingBlock = (
};
export const parser: ParserDefinition = {
+ // @ts-expect-error - PacketDB is not assignable to DiagramDB
+ parser: { yy: undefined },
parse: async (input: string): Promise => {
const ast: Packet = await parse('packet', input);
+ const db = parser.parser?.yy;
+ if (!(db instanceof PacketDB)) {
+ throw new Error(
+ 'parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.'
+ );
+ }
log.debug(ast);
- populate(ast);
+ populate(ast, db);
},
};
diff --git a/packages/mermaid/src/docs/diagrams/flowchart-code-flow.mmd b/packages/mermaid/src/docs/diagrams/flowchart-code-flow.mmd
new file mode 100644
index 000000000..d306dac7b
--- /dev/null
+++ b/packages/mermaid/src/docs/diagrams/flowchart-code-flow.mmd
@@ -0,0 +1,189 @@
+---
+references:
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDiagram.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDb.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDetector.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowDetector-v2.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowRenderer-v3-unified.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/styles.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/types.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/flowChartShapes.js"
+ - "File: /packages/mermaid/src/diagrams/flowchart/parser/flowParser.ts"
+ - "File: /packages/mermaid/src/diagrams/flowchart/elk/detector.ts"
+generationTime: 2025-07-23T10:31:53.266Z
+---
+flowchart TD
+ %% Entry Points and Detection
+ Input["User Input Text"] --> Detection{Detection Phase}
+
+ Detection --> flowDetector["flowDetector.ts detector(txt, config)"]
+ Detection --> flowDetectorV2["flowDetector-v2.ts detector(txt, config)"]
+ Detection --> elkDetector["elk/detector.ts detector(txt, config)"]
+
+ flowDetector --> |"Checks /^\s*graph/"| DetectLegacy{Legacy Flowchart?}
+ flowDetectorV2 --> |"Checks /^\s*flowchart/"| DetectNew{New Flowchart?}
+ elkDetector --> |"Checks /^\s*flowchart-elk/"| DetectElk{ELK Layout?}
+
+ DetectLegacy --> |Yes| LoadDiagram
+ DetectNew --> |Yes| LoadDiagram
+ DetectElk --> |Yes| LoadDiagram
+
+ %% Loading Phase
+ LoadDiagram["loader() function"] --> flowDiagram["flowDiagram.ts diagram object"]
+
+ flowDiagram --> DiagramStructure{Diagram Components}
+ DiagramStructure --> Parser["parser: flowParser"]
+ DiagramStructure --> Database["db: new FlowDB()"]
+ DiagramStructure --> Renderer["renderer: flowRenderer-v3-unified"]
+ DiagramStructure --> Styles["styles: flowStyles"]
+ DiagramStructure --> Init["init: (cnf: MermaidConfig)"]
+
+ %% Parser Phase
+ Parser --> flowParser["parser/flowParser.ts newParser.parse(src)"]
+ flowParser --> |"Preprocesses src"| RemoveWhitespace["Remove trailing whitespace src.replace(/}\s*\n/g, '}\n')"]
+ RemoveWhitespace --> flowJison["parser/flow.jison flowJisonParser.parse(newSrc)"]
+
+ flowJison --> ParseGraph["Parse Graph Structure"]
+ ParseGraph --> ParseVertices["Parse Vertices"]
+ ParseGraph --> ParseEdges["Parse Edges"]
+ ParseGraph --> ParseSubgraphs["Parse Subgraphs"]
+ ParseGraph --> ParseClasses["Parse Classes"]
+ ParseGraph --> ParseStyles["Parse Styles"]
+
+ %% Database Phase - FlowDB Class
+ Database --> FlowDBClass["flowDb.ts FlowDB class"]
+
+ FlowDBClass --> DBInit["constructor() - Initialize counters - Bind methods - Setup toolTips - Call clear()"]
+
+ DBInit --> DBMethods{FlowDB Methods}
+
+ DBMethods --> addVertex["addVertex(id, textObj, type, style, classes, dir, props, metadata)"]
+ DBMethods --> addLink["addLink(_start[], _end[], linkData)"]
+ DBMethods --> addSingleLink["addSingleLink(_start, _end, type, id)"]
+ DBMethods --> setDirection["setDirection(dir)"]
+ DBMethods --> addSubGraph["addSubGraph(nodes[], id, title)"]
+ DBMethods --> addClass["addClass(id, style)"]
+ DBMethods --> setClass["setClass(ids, className)"]
+ DBMethods --> setTooltip["setTooltip(ids, tooltip)"]
+ DBMethods --> setClickEvent["setClickEvent(id, functionName, args)"]
+ DBMethods --> setClickFun["setClickFun(id, functionName, args)"]
+
+ %% Vertex Processing
+ addVertex --> VertexProcess{Vertex Processing}
+ VertexProcess --> CreateVertex["Create FlowVertex object - id, labelType, domId - styles[], classes[]"]
+ VertexProcess --> SanitizeText["sanitizeText(textObj.text)"]
+ VertexProcess --> ParseMetadata["Parse YAML metadata yaml.load(yamlData)"]
+ VertexProcess --> SetVertexProps["Set vertex properties - shape, label, icon, form - pos, img, constraint, w, h"]
+
+ %% Edge Processing
+ addSingleLink --> EdgeProcess{Edge Processing}
+ EdgeProcess --> CreateEdge["Create FlowEdge object - start, end, type, text - labelType, classes[]"]
+ EdgeProcess --> ProcessLinkText["Process link text - sanitizeText() - strip quotes"]
+ EdgeProcess --> SetEdgeProps["Set edge properties - type, stroke, length"]
+ EdgeProcess --> GenerateEdgeId["Generate edge ID getEdgeId(start, end, counter)"]
+ EdgeProcess --> ValidateEdgeLimit["Validate edge limit maxEdges check"]
+
+ %% Data Collection
+ DBMethods --> GetData["getData()"]
+ GetData --> CollectNodes["Collect nodes[] from vertices"]
+ GetData --> CollectEdges["Collect edges[] from edges"]
+ GetData --> ProcessSubGraphs["Process subgraphs - parentDB Map - subGraphDB Map"]
+ GetData --> AddNodeFromVertex["addNodeFromVertex() for each vertex"]
+ GetData --> ProcessEdgeTypes["destructEdgeType() arrowTypeStart, arrowTypeEnd"]
+
+ %% Node Creation
+ AddNodeFromVertex --> NodeCreation{Node Creation}
+ NodeCreation --> FindExistingNode["findNode(nodes, vertex.id)"]
+ NodeCreation --> CreateBaseNode["Create base node - id, label, parentId - cssStyles, cssClasses - shape, domId, tooltip"]
+ NodeCreation --> GetCompiledStyles["getCompiledStyles(classDefs)"]
+ NodeCreation --> GetTypeFromVertex["getTypeFromVertex(vertex)"]
+
+ %% Rendering Phase
+ Renderer --> flowRendererV3["flowRenderer-v3-unified.ts draw(text, id, version, diag)"]
+
+ flowRendererV3 --> RenderInit["Initialize rendering - getConfig() - handle securityLevel - getDiagramElement()"]
+
+ RenderInit --> GetLayoutData["diag.db.getData() as LayoutData"]
+ GetLayoutData --> SetupLayoutData["Setup layout data - type, layoutAlgorithm - direction, spacing - markers, diagramId"]
+
+ SetupLayoutData --> CallRender["render(data4Layout, svg)"]
+ CallRender --> SetupViewPort["setupViewPortForSVG(svg, padding)"]
+ SetupViewPort --> ProcessLinks["Process vertex links - create anchor elements - handle click events"]
+
+ %% Shape Rendering
+ CallRender --> ShapeSystem["flowChartShapes.js Shape Functions"]
+
+ ShapeSystem --> ShapeFunctions{Shape Functions}
+ ShapeFunctions --> question["question(parent, bbox, node)"]
+ ShapeFunctions --> hexagon["hexagon(parent, bbox, node)"]
+ ShapeFunctions --> rect_left_inv_arrow["rect_left_inv_arrow(parent, bbox, node)"]
+ ShapeFunctions --> lean_right["lean_right(parent, bbox, node)"]
+ ShapeFunctions --> lean_left["lean_left(parent, bbox, node)"]
+
+ ShapeFunctions --> insertPolygonShape["insertPolygonShape(parent, w, h, points)"]
+ ShapeFunctions --> intersectPolygon["intersectPolygon(node, points, point)"]
+ ShapeFunctions --> intersectRect["intersectRect(node, point)"]
+
+ %% Styling System
+ Styles --> stylesTS["styles.ts getStyles(options)"]
+ stylesTS --> StyleOptions["FlowChartStyleOptions - arrowheadColor, border2 - clusterBkg, mainBkg - fontFamily, textColor"]
+
+ StyleOptions --> GenerateCSS["Generate CSS styles - .label, .cluster-label - .node, .edgePath - .flowchart-link, .edgeLabel"]
+ GenerateCSS --> GetIconStyles["getIconStyles()"]
+
+ %% Type System
+ Parser --> TypeSystem["types.ts Type Definitions"]
+ TypeSystem --> FlowVertex["FlowVertex interface"]
+ TypeSystem --> FlowEdge["FlowEdge interface"]
+ TypeSystem --> FlowClass["FlowClass interface"]
+ TypeSystem --> FlowSubGraph["FlowSubGraph interface"]
+ TypeSystem --> FlowVertexTypeParam["FlowVertexTypeParam Shape types"]
+
+ %% Utility Functions
+ DBMethods --> UtilityFunctions{Utility Functions}
+ UtilityFunctions --> lookUpDomId["lookUpDomId(id)"]
+ UtilityFunctions --> getClasses["getClasses()"]
+ UtilityFunctions --> getDirection["getDirection()"]
+ UtilityFunctions --> getVertices["getVertices()"]
+ UtilityFunctions --> getEdges["getEdges()"]
+ UtilityFunctions --> getSubGraphs["getSubGraphs()"]
+ UtilityFunctions --> clear["clear()"]
+ UtilityFunctions --> defaultConfig["defaultConfig()"]
+
+ %% Event Handling
+ ProcessLinks --> EventHandling{Event Handling}
+ EventHandling --> setupToolTips["setupToolTips(element)"]
+ EventHandling --> bindFunctions["bindFunctions(element)"]
+ EventHandling --> runFunc["utils.runFunc(functionName, args)"]
+
+ %% Common Database Functions
+ DBMethods --> CommonDB["commonDb.js functions"]
+ CommonDB --> setAccTitle["setAccTitle()"]
+ CommonDB --> getAccTitle["getAccTitle()"]
+ CommonDB --> setAccDescription["setAccDescription()"]
+ CommonDB --> getAccDescription["getAccDescription()"]
+ CommonDB --> setDiagramTitle["setDiagramTitle()"]
+ CommonDB --> getDiagramTitle["getDiagramTitle()"]
+ CommonDB --> commonClear["clear()"]
+
+ %% Final Output
+ ProcessLinks --> FinalSVG["Final SVG Output"]
+
+ %% Layout Algorithm Selection
+ SetupLayoutData --> LayoutAlgorithm{Layout Algorithm}
+ LayoutAlgorithm --> Dagre["dagre (default)"]
+ LayoutAlgorithm --> DagreWrapper["dagre-wrapper (v2 renderer)"]
+ LayoutAlgorithm --> ELK["elk (external package)"]
+
+ %% Testing Components
+ FlowDBClass --> TestFiles["Test Files"]
+ TestFiles --> flowDbSpec["flowDb.spec.ts"]
+ TestFiles --> flowChartShapesSpec["flowChartShapes.spec.js"]
+ TestFiles --> ParserTests["parser/*.spec.js files - flow-text.spec.js - flow-edges.spec.js - flow-style.spec.js - subgraph.spec.js"]
+
+ %% Configuration
+ Init --> ConfigSetup["Configuration Setup"]
+ ConfigSetup --> FlowchartConfig["cnf.flowchart config"]
+ ConfigSetup --> ArrowMarkers["arrowMarkerAbsolute"]
+ ConfigSetup --> LayoutConfig["layout config"]
+ ConfigSetup --> SetConfig["setConfig() calls"]
\ No newline at end of file
diff --git a/packages/mermaid/src/docs/diagrams/mermaid-api-sequence.mmd b/packages/mermaid/src/docs/diagrams/mermaid-api-sequence.mmd
new file mode 100644
index 000000000..ce7597525
--- /dev/null
+++ b/packages/mermaid/src/docs/diagrams/mermaid-api-sequence.mmd
@@ -0,0 +1,307 @@
+---
+references:
+ - "File: /packages/mermaid/src/mermaidAPI.ts"
+ - "File: /packages/mermaid/src/mermaid.ts"
+generationTime: 2025-01-28T16:30:00.000Z
+---
+sequenceDiagram
+ participant User as User/Browser
+ participant Mermaid as mermaid.ts
+ participant Queue as executionQueue
+ participant API as mermaidAPI.ts
+ participant Config as configApi
+ participant Preprocessor as preprocessDiagram
+ participant DiagramAPI as diagram-api
+ participant Diagram as Diagram.fromText
+ participant Renderer as diagram.renderer
+ participant Styles as Styling System
+ participant DOM as DOM/SVG
+
+ Note over User, DOM: Mermaid Complete API Flow
+
+ %% Initialization Phase
+ User->>+Mermaid: mermaid.initialize(config)
+ Mermaid->>+API: mermaidAPI.initialize(config)
+
+ API->>API: assignWithDepth({}, userOptions)
+ API->>API: handle legacy fontFamily config
+ API->>Config: saveConfigFromInitialize(options)
+
+ alt Theme Configuration Available
+ API->>API: check if theme in theme object
+ API->>API: set themeVariables from theme
+ else Default Theme
+ API->>API: use default theme variables
+ end
+
+ API->>Config: setSiteConfig(options) or getSiteConfig()
+ API->>API: setLogLevel(config.logLevel)
+ API->>DiagramAPI: addDiagrams()
+
+ API-->>-Mermaid: initialization complete
+ Mermaid-->>-User: ready to render
+
+ %% Content Loaded Event
+ User->>DOM: document.load event
+ DOM->>+Mermaid: contentLoaded()
+
+ opt startOnLoad is true
+ Mermaid->>Config: getConfig()
+ Config-->>Mermaid: { startOnLoad: true }
+ Mermaid->>Mermaid: run()
+ end
+
+ Mermaid-->>-DOM: event handling complete
+
+ %% Main Run Function
+ User->>+Mermaid: mermaid.run(options)
+
+ Mermaid->>Mermaid: runThrowsErrors(options)
+ Mermaid->>Config: getConfig()
+ Config-->>Mermaid: configuration object
+
+ alt nodes provided
+ Mermaid->>Mermaid: use provided nodes
+ else querySelector provided
+ Mermaid->>DOM: document.querySelectorAll(querySelector)
+ DOM-->>Mermaid: nodesToProcess
+ end
+
+ Mermaid->>Mermaid: new InitIDGenerator(deterministicIds, seed)
+
+ loop For each diagram element
+ Mermaid->>DOM: check element.getAttribute('data-processed')
+
+ opt not processed
+ Mermaid->>DOM: element.setAttribute('data-processed', 'true')
+ Mermaid->>Mermaid: generate unique id
+ Mermaid->>DOM: get element.innerHTML
+ Mermaid->>Mermaid: entityDecode and clean text
+ Mermaid->>Mermaid: detectInit(txt)
+
+ Mermaid->>Queue: render(id, txt, element)
+ end
+ end
+
+ Mermaid-->>-User: processing initiated
+
+ %% Render Function (Queued)
+ activate Queue
+ Queue->>+API: mermaidAPI.render(id, text, container)
+
+ API->>DiagramAPI: addDiagrams()
+ API->>+Preprocessor: processAndSetConfigs(text)
+
+ Preprocessor->>Preprocessor: preprocessDiagram(text)
+ Preprocessor->>Config: reset()
+ Preprocessor->>Config: addDirective(processed.config)
+ Preprocessor-->>-API: { code, config }
+
+ API->>Config: getConfig()
+ Config-->>API: current configuration
+
+ opt text length > maxTextSize
+ API->>API: text = MAX_TEXTLENGTH_EXCEEDED_MSG
+ end
+
+ API->>API: setup id selectors and element IDs
+ API->>API: determine security level (sandbox/loose)
+
+ %% DOM Setup
+ alt svgContainingElement provided
+ alt isSandboxed
+ API->>DOM: sandboxedIframe(select(svgContainingElement), iFrameID)
+ API->>DOM: select iframe contentDocument body
+ else
+ API->>DOM: select(svgContainingElement)
+ end
+ else no container
+ API->>API: removeExistingElements(document, id, divId, iFrameId)
+ alt isSandboxed
+ API->>DOM: sandboxedIframe(select('body'), iFrameID)
+ else
+ API->>DOM: select('body')
+ end
+ end
+
+ API->>DOM: appendDivSvgG(root, id, enclosingDivID, fontFamily, XMLNS_XLINK_STD)
+
+ %% Diagram Creation
+ API->>+Diagram: Diagram.fromText(text, { title: processed.title })
+
+ Diagram->>DiagramAPI: detect diagram type
+ Diagram->>DiagramAPI: load appropriate diagram
+ Diagram-->>-API: diagram instance
+
+ opt parsing error occurred
+ API->>+Diagram: Diagram.fromText('error')
+ Diagram-->>-API: error diagram
+ API->>API: store parseEncounteredException
+ end
+
+ %% Style Generation
+ API->>DOM: get svg element and firstChild
+ API->>Renderer: diag.renderer.getClasses(text, diag)
+ Renderer-->>API: diagramClassDefs
+
+ API->>+Styles: createUserStyles(config, diagramType, diagramClassDefs, idSelector)
+
+ Styles->>Styles: createCssStyles(config, classDefs)
+
+ opt config.themeCSS defined
+ Styles->>Styles: append themeCSS
+ end
+
+ opt fontFamily configured
+ Styles->>Styles: add CSS variables for fonts
+ end
+
+ opt classDefs exist
+ loop For each styleClassDef
+ opt has styles
+ Styles->>Styles: cssImportantStyles for each CSS element
+ end
+ opt has textStyles
+ Styles->>Styles: cssImportantStyles for tspan elements
+ end
+ end
+ end
+
+ Styles->>Styles: getStyles(graphType, userCSSstyles, themeVariables)
+ Styles->>Styles: serialize(compile(svgId{allStyles}), stringify)
+ Styles-->>-API: compiled CSS rules
+
+ API->>DOM: create style element
+ API->>DOM: style.innerHTML = rules
+ API->>DOM: svg.insertBefore(style, firstChild)
+
+ %% Diagram Rendering
+ API->>+Renderer: diag.renderer.draw(text, id, version, diag)
+
+ Renderer->>Renderer: diagram-specific rendering logic
+ Renderer->>DOM: create SVG elements
+ Renderer->>DOM: apply positioning and styling
+ Renderer-->>-API: rendered diagram
+
+ opt rendering error
+ alt suppressErrorRendering
+ API->>API: removeTempElements()
+ API->>Mermaid: throw error
+ else
+ API->>Renderer: errorRenderer.draw(text, id, version)
+ end
+ end
+
+ %% Accessibility and Cleanup
+ API->>DOM: select svg element
+ API->>Diagram: diag.db.getAccTitle()
+ API->>Diagram: diag.db.getAccDescription()
+ API->>API: addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr)
+
+ API->>DOM: set xmlns for foreignobject elements
+ API->>DOM: get innerHTML from enclosing div
+
+ API->>+API: cleanUpSvgCode(svgCode, isSandboxed, arrowMarkerAbsolute)
+
+ opt not useArrowMarkerUrls and not sandboxed
+ API->>API: replace marker-end URLs with anchors
+ end
+
+ API->>API: decodeEntities(svgCode)
+ API->>API: replace with
+ API-->>-API: cleaned SVG code
+
+ alt isSandboxed
+ API->>+API: putIntoIFrame(svgCode, svgEl)
+ API->>API: calculate iframe height
+ API->>API: toBase64 encode SVG content
+ API->>API: create iframe with sandbox attributes
+ API-->>-API: iframe HTML
+ else not loose security
+ API->>API: DOMPurify.sanitize(svgCode, options)
+ end
+
+ API->>API: attachFunctions()
+ API->>API: removeTempElements()
+
+ opt parseEncounteredException
+ API->>Mermaid: throw parseEncounteredException
+ end
+
+ API-->>-Queue: { diagramType, svg: svgCode, bindFunctions }
+
+ %% Return to Web Integration
+ activate Mermaid
+ Queue-->>Mermaid: render result
+ Mermaid->>DOM: element.innerHTML = svg
+
+ opt postRenderCallback
+ Mermaid->>User: postRenderCallback(id)
+ end
+
+ opt bindFunctions exist
+ Mermaid->>DOM: bindFunctions(element)
+ end
+ deactivate Mermaid
+
+ %% Parse Function Flow
+ User->>+Mermaid: mermaid.parse(text, parseOptions)
+ activate Queue
+
+ Queue->>+API: mermaidAPI.parse(text, parseOptions)
+
+ API->>DiagramAPI: addDiagrams()
+ API->>Preprocessor: processAndSetConfigs(text)
+ Preprocessor-->>API: { code, config }
+ API->>Diagram: getDiagramFromText(code)
+ Diagram-->>API: diagram instance
+ API-->>-Queue: { diagramType: diagram.type, config }
+
+ Queue-->>-Mermaid: parse result
+ Mermaid-->>-User: ParseResult or false
+
+ %% External Diagram Registration
+ User->>+Mermaid: registerExternalDiagrams(diagrams, options)
+
+ Mermaid->>DiagramAPI: addDiagrams()
+ Mermaid->>DiagramAPI: registerLazyLoadedDiagrams(...diagrams)
+
+ opt lazyLoad is false
+ Mermaid->>DiagramAPI: loadRegisteredDiagrams()
+ end
+
+ Mermaid-->>-User: registration complete
+
+ %% Error Handling
+ Note over Mermaid, API: Error Handling Throughout
+ alt Error occurs
+ API->>Mermaid: throw error
+ Mermaid->>+Mermaid: handleError(error, errors, parseError)
+
+ Mermaid->>Mermaid: log.warn(error)
+
+ alt isDetailedError
+ Mermaid->>User: parseError(error.str, error.hash)
+ else
+ Mermaid->>User: parseError(error)
+ end
+
+ opt not suppressErrors
+ Mermaid->>User: throw error
+ end
+
+ Mermaid-->>-User: error handled
+ end
+
+ %% Configuration Details
+ Note over Config: Configuration Functions
+ Note right of Config: Functions: - reset() - getConfig() - setConfig() - getSiteConfig() - updateSiteConfig() - saveConfigFromInitialize()
+
+ Note over Styles: CSS Generation
+ Note right of Styles: Features: - createCssStyles() - createUserStyles() - cssImportantStyles() - Theme integration - Class definitions
+
+ Note over API: Security Levels
+ Note right of API: Modes: - sandbox: iframe isolation - loose: minimal sanitization - default: DOMPurify sanitization
+
+ Note over API: Helper Functions
+ Note right of API: Utilities: - cleanUpSvgCode() - putIntoIFrame() - appendDivSvgG() - removeExistingElements()
\ No newline at end of file
diff --git a/packages/mermaid/src/docs/diagrams/mindmap-implementation-sequence.mmd b/packages/mermaid/src/docs/diagrams/mindmap-implementation-sequence.mmd
new file mode 100644
index 000000000..335855380
--- /dev/null
+++ b/packages/mermaid/src/docs/diagrams/mindmap-implementation-sequence.mmd
@@ -0,0 +1,180 @@
+---
+references:
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmap-definition.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapDb.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/detector.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapTypes.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/mindmapRenderer.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/styles.ts"
+ - "File: /packages/mermaid/src/diagrams/mindmap/svgDraw.ts"
+generationTime: 2025-01-28T16:00:00.000Z
+---
+sequenceDiagram
+ participant User as User Input Text
+ participant Detector as detector.ts
+ participant Loader as DiagramLoader
+ participant Definition as mindmap-definition.ts
+ participant Parser as parser/mindmap.jison
+ participant DB as MindmapDB
+ participant Renderer as mindmapRenderer.ts
+ participant Cytoscape as cytoscape.js
+ participant SVGDraw as svgDraw.ts
+ participant Styles as styles.ts
+ participant Output as Final SVG
+
+ Note over User, Output: Mindmap Implementation Flow
+
+ %% Detection Phase
+ User->>Detector: /^\s*mindmap/ text input
+ activate Detector
+ Detector->>Detector: detector(txt) validates pattern
+ Detector->>Loader: loader() function called
+ deactivate Detector
+
+ activate Loader
+ Loader->>Definition: import mindmap-definition.js
+ deactivate Loader
+
+ %% Core Structure Setup
+ activate Definition
+ Definition->>DB: get db() → new MindmapDB()
+ Definition->>Renderer: setup renderer
+ Definition->>Parser: setup parser
+ Definition->>Styles: setup styles
+ deactivate Definition
+
+ %% Database Initialization
+ activate DB
+ Note over DB: MindmapDB Constructor
+ DB->>DB: initialize nodes array
+ DB->>DB: setup nodeType constants
+ DB->>DB: bind methods
+ DB->>DB: clear() state
+
+ %% Parsing Phase
+ activate Parser
+ User->>Parser: mindmap syntax text
+
+ loop For each node in hierarchy
+ Parser->>DB: addNode(level, id, descr, type)
+ activate DB
+ DB->>DB: sanitizeText(id, descr)
+ DB->>DB: getType(startStr, endStr)
+ Note right of DB: Shape Detection: [ → RECT ( → ROUNDED_RECT (( → CIRCLE )) → BANG {{ → HEXAGON
+ DB->>DB: getParent(level)
+ DB->>DB: create MindmapNode
+ DB->>DB: add to hierarchy
+ deactivate DB
+ end
+
+ opt Icon/Class Decoration
+ Parser->>DB: decorateNode(decoration)
+ DB->>DB: set icon/class properties
+ end
+ deactivate Parser
+
+ %% Data Preparation
+ Renderer->>DB: getData() for layout
+ activate DB
+ DB->>DB: collect all nodes
+ DB->>DB: build parent-child relationships
+ DB-->>Renderer: return node hierarchy
+ deactivate DB
+
+ %% Rendering Pipeline
+ activate Renderer
+ Note over Renderer: Rendering Phase
+
+ Renderer->>Cytoscape: initialize cytoscape
+ activate Cytoscape
+
+ loop For each node in mindmap
+ Renderer->>Cytoscape: addNodes(mindmap, cy, conf, level)
+ Cytoscape->>Cytoscape: create node data
+ Cytoscape->>Cytoscape: set position (x, y)
+ end
+
+ loop For parent-child relationships
+ Renderer->>Cytoscape: add edges
+ Cytoscape->>Cytoscape: create edge data
+ end
+
+ Renderer->>Cytoscape: configure cose-bilkent layout
+ Cytoscape->>Cytoscape: calculate optimal positions
+ Cytoscape-->>Renderer: return positioned graph
+ deactivate Cytoscape
+
+ %% SVG Generation
+ Renderer->>SVGDraw: drawNodes(db, svg, mindmap, section, conf)
+ activate SVGDraw
+
+ loop For each node recursively
+ SVGDraw->>SVGDraw: select shape function
+
+ alt Default Shape
+ SVGDraw->>SVGDraw: defaultBkg() - rounded rectangle
+ else Rectangle Shape
+ SVGDraw->>SVGDraw: rectBkg() - sharp corners
+ else Circle Shape
+ SVGDraw->>SVGDraw: circleBkg() - perfect circle
+ else Cloud Shape
+ SVGDraw->>SVGDraw: cloudBkg() - organic curves
+ else Bang Shape
+ SVGDraw->>SVGDraw: bangBkg() - explosion style
+ else Hexagon Shape
+ SVGDraw->>SVGDraw: hexagonBkg() - six sides
+ end
+
+ SVGDraw->>SVGDraw: create SVG elements
+ SVGDraw->>SVGDraw: add text labels
+ SVGDraw->>SVGDraw: position node
+
+ opt Node has children
+ SVGDraw->>SVGDraw: drawNodes() recursive call
+ end
+ end
+ deactivate SVGDraw
+
+ %% Edge Rendering
+ Renderer->>Renderer: drawEdges(edgesEl, cy)
+ loop For each edge
+ Renderer->>Renderer: extract edge bounds
+ Renderer->>Renderer: draw SVG path
+ end
+
+ %% Styling Application
+ Renderer->>Styles: getStyles(options)
+ activate Styles
+
+ Styles->>Styles: genSections(options)
+ loop For THEME_COLOR_LIMIT sections
+ Styles->>Styles: generate color scale
+ Styles->>Styles: create CSS rules
+ Note right of Styles: .section-X fills .edge-depth-X widths .node-icon-X colors
+ end
+
+ Styles->>Styles: apply theme integration
+ Styles-->>Renderer: return compiled CSS
+ deactivate Styles
+
+ %% Final Assembly
+ Renderer->>Output: selectSvgElement()
+ Renderer->>Output: setupGraphViewbox()
+ Renderer->>Output: apply styles
+ Renderer->>Output: add interactive elements
+ deactivate Renderer
+
+ activate Output
+ Note over Output: Final Mindmap Features
+ Output->>Output: responsive layout
+ Output->>Output: accessibility attributes
+ Output->>Output: hover effects
+ Output->>Output: click handling
+ Output-->>User: rendered mindmap
+ deactivate Output
+
+ %% Configuration Details
+ Note over DB, Styles: Configuration Options
+ Note right of DB: Padding Calculations: Base padding from config RECT: ×2 padding ROUNDED_RECT: ×2 padding HEXAGON: ×2 padding
+ Note right of Styles: Section Management: MAX_SECTIONS = 12 Dynamic color generation Git theme integration
+ Note right of Renderer: Layout Parameters: Cytoscape configuration coseBilkent settings Node spacing rules
\ No newline at end of file
diff --git a/packages/mermaid/src/docs/ecosystem/integrations-community.md b/packages/mermaid/src/docs/ecosystem/integrations-community.md
index 9f32cfd1e..92a87b7ed 100644
--- a/packages/mermaid/src/docs/ecosystem/integrations-community.md
+++ b/packages/mermaid/src/docs/ecosystem/integrations-community.md
@@ -79,6 +79,7 @@ To add an integration to this list, see the [Integrations - create page](./integ
LLM integrations to create mermaid diagrams using AI from text descriptions.
- [HueHive - Create mermaid diagrams with text](https://huehive.co/tools/diagrams)
+- [MCP Server Mermaid](https://github.com/hustcc/mcp-mermaid) - Generate mermaid diagram and chart with AI MCP dynamically.
### CRM/ERP
@@ -98,6 +99,7 @@ Blogging frameworks and platforms
- [Mermaid](https://nextra.site/docs/guide/mermaid)
- [WordPress](https://wordpress.org)
- [MerPRess](https://wordpress.org/plugins/merpress/)
+ - [WP Documentation](https://wordpress.org/themes/wp-documentation/)
### CMS/ECM
diff --git a/packages/mermaid/src/docs/ecosystem/integrations-create.md b/packages/mermaid/src/docs/ecosystem/integrations-create.md
index 0341f1bf8..0dbae0d04 100644
--- a/packages/mermaid/src/docs/ecosystem/integrations-create.md
+++ b/packages/mermaid/src/docs/ecosystem/integrations-create.md
@@ -10,9 +10,7 @@ Applications that support Mermaid files [SHOULD](https://datatracker.ietf.org/do
### MIME Type
-The recommended [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) for Mermaid media is `text/vnd.mermaid`.
-
-Currently pending [IANA](https://www.iana.org/) recognition.
+The recommended [MIME type](https://www.iana.org/assignments/media-types/media-types.xhtml) for Mermaid media is [`text/vnd.mermaid`](https://www.iana.org/assignments/media-types/application/vnd.mermaid).
## Showcase
diff --git a/packages/mermaid/src/docs/syntax/flowchart.md b/packages/mermaid/src/docs/syntax/flowchart.md
index 909162abb..31c2a949f 100644
--- a/packages/mermaid/src/docs/syntax/flowchart.md
+++ b/packages/mermaid/src/docs/syntax/flowchart.md
@@ -1135,15 +1135,46 @@ It is possible to style the type of curve used for lines between items, if the d
Available curve styles include `basis`, `bumpX`, `bumpY`, `cardinal`, `catmullRom`, `linear`, `monotoneX`, `monotoneY`,
`natural`, `step`, `stepAfter`, and `stepBefore`.
+For a full list of available curves, including an explanation of custom curves, refer to
+the [Shapes](https://d3js.org/d3-shape/curve) documentation in the [d3-shape](https://github.com/d3/d3-shape/) project.
+
+Line styling can be achieved in two ways:
+
+1. Change the curve style of all the lines
+2. Change the curve style of a particular line
+
+#### Diagram level curve style
+
In this example, a left-to-right graph uses the `stepBefore` curve style:
```
-%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%%
+---
+config:
+ flowchart:
+ curve: stepBefore
+---
graph LR
```
-For a full list of available curves, including an explanation of custom curves, refer to
-the [Shapes](https://d3js.org/d3-shape/curve) documentation in the [d3-shape](https://github.com/d3/d3-shape/) project.
+#### Edge level curve style using Edge IDs (v+)
+
+You can assign IDs to [edges](#attaching-an-id-to-edges). After assigning an ID you can modify the line style by modifying the edge's `curve` property using the following syntax:
+
+```mermaid
+flowchart LR
+ A e1@==> B
+ A e2@--> C
+ e1@{ curve: linear }
+ e2@{ curve: natural }
+```
+
+```info
+Any edge curve style modified at the edge level overrides the diagram level style.
+```
+
+```info
+If the same edge is modified multiple times the last modification will be rendered.
+```
### Styling a node
diff --git a/packages/mermaid/src/rendering-util/rendering-elements/shapes/requirementBox.ts b/packages/mermaid/src/rendering-util/rendering-elements/shapes/requirementBox.ts
index eb50d09bd..ed764f5ee 100644
--- a/packages/mermaid/src/rendering-util/rendering-elements/shapes/requirementBox.ts
+++ b/packages/mermaid/src/rendering-util/rendering-elements/shapes/requirementBox.ts
@@ -54,7 +54,7 @@ export async function requirementBox(
if (isRequirementNode) {
const idHeight = await addText(
shapeSvg,
- `${requirementNode.requirementId ? `id: ${requirementNode.requirementId}` : ''}`,
+ `${requirementNode.requirementId ? `ID: ${requirementNode.requirementId}` : ''}`,
accumulativeHeight,
node.labelStyle
);
diff --git a/packages/mermaid/src/types.ts b/packages/mermaid/src/types.ts
index fdccae677..d1394e71b 100644
--- a/packages/mermaid/src/types.ts
+++ b/packages/mermaid/src/types.ts
@@ -16,6 +16,19 @@ export interface NodeMetaData {
export interface EdgeMetaData {
animation?: 'fast' | 'slow';
animate?: boolean;
+ curve?:
+ | 'basis'
+ | 'bumpX'
+ | 'bumpY'
+ | 'cardinal'
+ | 'catmullRom'
+ | 'linear'
+ | 'monotoneX'
+ | 'monotoneY'
+ | 'natural'
+ | 'step'
+ | 'stepAfter'
+ | 'stepBefore';
}
import type { MermaidConfig } from './config.type.js';
diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md
index da0f244a3..38ad0ff9f 100644
--- a/packages/parser/CHANGELOG.md
+++ b/packages/parser/CHANGELOG.md
@@ -1,5 +1,11 @@
# @mermaid-js/parser
+## 0.6.2
+
+### Patch Changes
+
+- [#6510](https://github.com/mermaid-js/mermaid/pull/6510) [`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6) Thanks [@sidharthv96](https://github.com/sidharthv96)! - chore: Move packet diagram out of beta
+
## 0.6.1
### Patch Changes
diff --git a/packages/parser/package.json b/packages/parser/package.json
index a51229ae8..718ecee66 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -1,6 +1,6 @@
{
"name": "@mermaid-js/parser",
- "version": "0.6.1",
+ "version": "0.6.2",
"description": "MermaidJS parser",
"author": "Yokozuna59",
"contributors": [
diff --git a/packages/tiny/CHANGELOG.md b/packages/tiny/CHANGELOG.md
index c57e2a6db..49756233a 100644
--- a/packages/tiny/CHANGELOG.md
+++ b/packages/tiny/CHANGELOG.md
@@ -1,5 +1,28 @@
# mermaid
+## 11.9.0
+
+### Minor Changes
+
+- [#6453](https://github.com/mermaid-js/mermaid/pull/6453) [`5acbd7e`](https://github.com/mermaid-js/mermaid/commit/5acbd7e762469d9d89a9c77faf6617ee13367f3a) Thanks [@sidharthv96](https://github.com/sidharthv96)! - feat: Add `getRegisteredDiagramsMetadata` to `mermaid`, which returns all the registered diagram IDs in mermaid
+
+### Patch Changes
+
+- [#6738](https://github.com/mermaid-js/mermaid/pull/6738) [`d90634b`](https://github.com/mermaid-js/mermaid/commit/d90634bf2b09e586b055729e07e9a1a31b21827c) Thanks [@shubham-mermaid](https://github.com/shubham-mermaid)! - chore: Updated TreeMapDB to use class based approach
+
+- [#6510](https://github.com/mermaid-js/mermaid/pull/6510) [`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6) Thanks [@sidharthv96](https://github.com/sidharthv96)! - chore: Move packet diagram out of beta
+
+- [#6747](https://github.com/mermaid-js/mermaid/pull/6747) [`3e3ae08`](https://github.com/mermaid-js/mermaid/commit/3e3ae089305e1c7b9948b9e149eba6854fe7f2d6) Thanks [@darshanr0107](https://github.com/darshanr0107)! - fix: adjust sequence diagram title positioning to prevent overlap with top border in Safari
+
+- [#6751](https://github.com/mermaid-js/mermaid/pull/6751) [`d3e2be3`](https://github.com/mermaid-js/mermaid/commit/d3e2be35be066adeb7fd502b4a24c223c3b53947) Thanks [@darshanr0107](https://github.com/darshanr0107)! - chore: Update MindmapDB to use class based approach
+
+- [#6715](https://github.com/mermaid-js/mermaid/pull/6715) [`637680d`](https://github.com/mermaid-js/mermaid/commit/637680d4d9e39b4f8cb6f05b4cb261e8f5693ac3) Thanks [@Syn3ugar](https://github.com/Syn3ugar)! - fix(timeline): fix loading `leftMargin` from config
+
+ The `timeline.leftMargin` config value should now correctly control the size of the left margin, instead of being ignored.
+
+- Updated dependencies [[`7a38eb7`](https://github.com/mermaid-js/mermaid/commit/7a38eb715d795cd5c66cb59357d64ec197b432e6)]:
+ - @mermaid-js/parser@0.6.2
+
## 11.8.1
### Patch Changes
@@ -258,3 +281,1005 @@
- Updated dependencies [[`5013484`](https://github.com/mermaid-js/mermaid/commit/50134849246141ec400e33e08c12c10539b84de9)]:
- @mermaid-js/parser@0.1.0
+
+## [10.0.0](https://github.com/mermaid-js/mermaid/releases/tag/v10.0.0)
+
+### Mermaid is ESM only!
+
+We've dropped CJS support. So, you will have to update your import scripts as follows.
+
+```html
+
+```
+
+You can keep using v9 by adding the `@9` in the CDN URL.
+
+```diff
+-
++
+```
+
+### mermaid.render is async and doesn't accept callbacks
+
+```js
+// < v10
+mermaid.render('id', 'graph TD;\nA-->B', (svg, bindFunctions) => {
+ element.innerHTML = svg;
+ if (bindFunctions) {
+ bindFunctions(element);
+ }
+});
+
+// Shorter syntax
+if (bindFunctions) {
+ bindFunctions(element);
+}
+// can be replaced with the `?.` shorthand
+bindFunctions?.(element);
+
+// >= v10 with async/await
+const { svg, bindFunctions } = await mermaid.render('id', 'graph TD;\nA-->B');
+element.innerHTML = svg;
+bindFunctions?.(element);
+
+// >= v10 with promise.then
+mermaid.render('id', 'graph TD;A-->B').then(({ svg, bindFunctions }) => {
+ element.innerHTML = svg;
+ bindFunctions?.(element);
+});
+```
+
+### mermaid.parse is async and ParseError is removed
+
+```js
+// < v10
+mermaid.parse(text, parseError);
+
+//>= v10
+await mermaid.parse(text).catch(parseError);
+// or
+try {
+ await mermaid.parse(text);
+} catch (err) {
+ parseError(err);
+}
+```
+
+### Init deprecated and InitThrowsErrors removed
+
+The config passed to `init` was not being used earlier.
+It will now be used.
+The `init` function is deprecated and will be removed in the next major release.
+init currently works as a wrapper to `initialize` and `run`.
+
+```js
+// < v10
+mermaid.init(config, selector, cb);
+
+//>= v10
+mermaid.initialize(config);
+mermaid.run({
+ querySelector: selector,
+ postRenderCallback: cb,
+ suppressErrors: true,
+});
+```
+
+```js
+// < v10
+mermaid.initThrowsErrors(config, selector, cb);
+
+//>= v10
+mermaid.initialize(config);
+mermaid.run({
+ querySelector: selector,
+ postRenderCallback: cb,
+ suppressErrors: false,
+});
+```
+
+// TODO: Populate changelog pre v10
+
+- Config has a lot of changes
+- globalReset resets to `defaultConfig` instead of current config. Use `reset` instead.
+
+## [Unreleased](https://github.com/knsv/mermaid/tree/HEAD)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/8.2.0...HEAD)
+
+**Closed issues:**
+
+- Cross-Site Scripting:DOM - Issue [\#847](https://github.com/knsv/mermaid/issues/847)
+
+## [8.2.0](https://github.com/knsv/mermaid/tree/8.2.0) (2019-07-17)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/8.1.0...8.2.0)
+
+**Closed issues:**
+
+- Create issue templates [\#871](https://github.com/knsv/mermaid/issues/871)
+- cross site scripting in mermaid [\#869](https://github.com/knsv/mermaid/issues/869)
+- Make Gantt chart date inclusive [\#868](https://github.com/knsv/mermaid/issues/868)
+- CHANGELOG missing updates for all versions since 0.4.0 [\#865](https://github.com/knsv/mermaid/issues/865)
+- please add tag for 8.0.0 release [\#863](https://github.com/knsv/mermaid/issues/863)
+- classDiagram breaks on any edit [\#858](https://github.com/knsv/mermaid/issues/858)
+- found 1 high severity vulnerability [\#839](https://github.com/knsv/mermaid/issues/839)
+- Missing fontawesome icon support [\#830](https://github.com/knsv/mermaid/issues/830)
+- Docs for integration with wiki.js? [\#829](https://github.com/knsv/mermaid/issues/829)
+- Is this project still maintained? [\#826](https://github.com/knsv/mermaid/issues/826)
+- typora [\#823](https://github.com/knsv/mermaid/issues/823)
+- Maintain the order of the nodes in Flowchart [\#815](https://github.com/knsv/mermaid/issues/815)
+- Overlap, Overflow and cut titles in flowchart [\#814](https://github.com/knsv/mermaid/issues/814)
+- How load mermaidApi notejs electron [\#813](https://github.com/knsv/mermaid/issues/813)
+- How to set the spacing between the text of the flowchart node and the border? [\#812](https://github.com/knsv/mermaid/issues/812)
+- no triming participant name and the name following spaces is as another actor in sequence [\#809](https://github.com/knsv/mermaid/issues/809)
+- uml Class as shape type [\#807](https://github.com/knsv/mermaid/issues/807)
+- Force-directed graph Layout Style [\#806](https://github.com/knsv/mermaid/issues/806)
+- how can I start a newLine in FlowChart [\#805](https://github.com/knsv/mermaid/issues/805)
+- UOEProcessShow [\#801](https://github.com/knsv/mermaid/issues/801)
+- Why the use of code blocks? [\#799](https://github.com/knsv/mermaid/issues/799)
+- fixing class diagram [\#794](https://github.com/knsv/mermaid/issues/794)
+- Autonumber support in sequence diagrams [\#782](https://github.com/knsv/mermaid/issues/782)
+- MomentJS dependency [\#781](https://github.com/knsv/mermaid/issues/781)
+- Feature : Can we color code the flow/arrows [\#766](https://github.com/knsv/mermaid/issues/766)
+- Is there any way to convert flowchart.js code to mermaid code [\#726](https://github.com/knsv/mermaid/issues/726)
+- Fixed width of nodes [\#653](https://github.com/knsv/mermaid/issues/653)
+- Inline comment [\#650](https://github.com/knsv/mermaid/issues/650)
+- alt attribute of img tag in HTML [\#619](https://github.com/knsv/mermaid/issues/619)
+- Just wanted to say : THANKS ! [\#618](https://github.com/knsv/mermaid/issues/618)
+- "animation" [\#446](https://github.com/knsv/mermaid/issues/446)
+
+**Merged pull requests:**
+
+- Trimming whitespace after participant id [\#882](https://github.com/knsv/mermaid/pull/882) ([IOrlandoni](https://github.com/IOrlandoni))
+- chore\(deps\): bump atob from 2.0.3 to 2.1.2 [\#881](https://github.com/knsv/mermaid/pull/881) ([dependabot[bot]](https://github.com/apps/dependabot))
+- chore\(deps\): bump fstream from 1.0.11 to 1.0.12 [\#880](https://github.com/knsv/mermaid/pull/880) ([dependabot[bot]](https://github.com/apps/dependabot))
+- chore\(deps\): bump js-yaml from 3.12.0 to 3.13.1 [\#879](https://github.com/knsv/mermaid/pull/879) ([dependabot[bot]](https://github.com/apps/dependabot))
+- I847 cross site scripting [\#878](https://github.com/knsv/mermaid/pull/878) ([knsv](https://github.com/knsv))
+- Bump lodash.mergewith from 4.6.1 to 4.6.2 [\#877](https://github.com/knsv/mermaid/pull/877) ([dependabot[bot]](https://github.com/apps/dependabot))
+- Adding docs into core repo again [\#876](https://github.com/knsv/mermaid/pull/876) ([knsv](https://github.com/knsv))
+- Bump lodash from 4.17.11 to 4.17.13 [\#875](https://github.com/knsv/mermaid/pull/875) ([dependabot[bot]](https://github.com/apps/dependabot))
+- feat\(stale.yml\): update issue label and bot comment [\#874](https://github.com/knsv/mermaid/pull/874) ([ThePenguin1140](https://github.com/ThePenguin1140))
+- Feature/allow inclusive enddates [\#872](https://github.com/knsv/mermaid/pull/872) ([ThePenguin1140](https://github.com/ThePenguin1140))
+- Adding trapezoid and inverse trapezoid vertex options. [\#741](https://github.com/knsv/mermaid/pull/741) ([adamwulf](https://github.com/adamwulf))
+
+## [8.1.0](https://github.com/knsv/mermaid/tree/8.1.0) (2019-06-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.5...8.1.0)
+
+**Closed issues:**
+
+- Gantt and sequence diagram do not render [\#853](https://github.com/knsv/mermaid/issues/853)
+- margins around flowchart are not balanced [\#852](https://github.com/knsv/mermaid/issues/852)
+- Smaller bundles [\#843](https://github.com/knsv/mermaid/issues/843)
+- unicode in labels [\#776](https://github.com/knsv/mermaid/issues/776)
+- Hard-changing drawing of arrows per edge type [\#775](https://github.com/knsv/mermaid/issues/775)
+- SequenceDiagram wrong [\#773](https://github.com/knsv/mermaid/issues/773)
+- Render mermaid on github pages with simple code [\#772](https://github.com/knsv/mermaid/issues/772)
+- FlowChart - large space between text and the image [\#754](https://github.com/knsv/mermaid/issues/754)
+- Class Diagram Issues when using Mermaid in Stackedit [\#748](https://github.com/knsv/mermaid/issues/748)
+- Multi-platform CI [\#744](https://github.com/knsv/mermaid/issues/744)
+- gantt: sections can't have a colon [\#742](https://github.com/knsv/mermaid/issues/742)
+- Yarn build does not add mermaid.min.css to dist [\#732](https://github.com/knsv/mermaid/issues/732)
+- Is there a grammar / keyword / more than just the basic examples? [\#718](https://github.com/knsv/mermaid/issues/718)
+- Click event and react component [\#717](https://github.com/knsv/mermaid/issues/717)
+- Long text going outside the box [\#706](https://github.com/knsv/mermaid/issues/706)
+- How to migrate from yUML to mermaid? [\#704](https://github.com/knsv/mermaid/issues/704)
+- Issue on Dynamic Creation in PHP [\#690](https://github.com/knsv/mermaid/issues/690)
+- `click "\#target"` and `click "http://url"` should create regular links [\#689](https://github.com/knsv/mermaid/issues/689)
+- Support Chinese punctuation [\#687](https://github.com/knsv/mermaid/issues/687)
+- \[Question\] Proper way to install on Mac? [\#681](https://github.com/knsv/mermaid/issues/681)
+- Has Mermaid a graphical interface to make diagrams? [\#668](https://github.com/knsv/mermaid/issues/668)
+- mermaid installation on debian [\#649](https://github.com/knsv/mermaid/issues/649)
+- "Cannot activate" in sequenceDiagram [\#647](https://github.com/knsv/mermaid/issues/647)
+- Link \("click" statement\) in flowchart does not work in exported SVG [\#646](https://github.com/knsv/mermaid/issues/646)
+- How to pass styling [\#639](https://github.com/knsv/mermaid/issues/639)
+- The live editor can't show seq diagram with notes for 8.0.0-alpha.3 [\#638](https://github.com/knsv/mermaid/issues/638)
+- import mermaid.css with ES6 + NPM [\#634](https://github.com/knsv/mermaid/issues/634)
+- Actor line cuts through other elements [\#633](https://github.com/knsv/mermaid/issues/633)
+- Graph TD line out of the picture \(left side\) [\#630](https://github.com/knsv/mermaid/issues/630)
+- Flowchart labels appear "cutoff" [\#628](https://github.com/knsv/mermaid/issues/628)
+- Uncaught TypeError: \_.constant is not a function \(mermaid.js\) [\#626](https://github.com/knsv/mermaid/issues/626)
+- Missing tags and releases for newer versions [\#623](https://github.com/knsv/mermaid/issues/623)
+- Mermaid and Leo / Leo Vue [\#622](https://github.com/knsv/mermaid/issues/622)
+- mermaidAPI gantt Vue.js [\#621](https://github.com/knsv/mermaid/issues/621)
+- Gantt sections are not separated by colors - Fix: set numberSectionStyles to 4 instead of 3 [\#620](https://github.com/knsv/mermaid/issues/620)
+- how to get mermaidAPI? [\#617](https://github.com/knsv/mermaid/issues/617)
+- Error in startOnLoad documentation? [\#616](https://github.com/knsv/mermaid/issues/616)
+- Example export to SVG generates error [\#614](https://github.com/knsv/mermaid/issues/614)
+- The new online editor does not support previously generated links [\#613](https://github.com/knsv/mermaid/issues/613)
+- Grammar / Syntax documentation for flowcharts [\#607](https://github.com/knsv/mermaid/issues/607)
+- Mermaid does not work with d3.js [\#606](https://github.com/knsv/mermaid/issues/606)
+- Why does this code's flowchart lines get cut-off on screen? [\#604](https://github.com/knsv/mermaid/issues/604)
+- click keyword does not fire my callback \(on the demo Website too\) [\#603](https://github.com/knsv/mermaid/issues/603)
+- Online Editor fails to show exported SVG [\#601](https://github.com/knsv/mermaid/issues/601)
+- Just saying thanks! [\#597](https://github.com/knsv/mermaid/issues/597)
+- stylesheet crashed with other library like abcjs [\#596](https://github.com/knsv/mermaid/issues/596)
+- Missing connection [\#594](https://github.com/knsv/mermaid/issues/594)
+- How to use mermaid on node.js restful api? [\#593](https://github.com/knsv/mermaid/issues/593)
+- Remove status code [\#589](https://github.com/knsv/mermaid/issues/589)
+- Golang based editor [\#588](https://github.com/knsv/mermaid/issues/588)
+- sequenceDiagram -\> notetext css font is hardcoded [\#587](https://github.com/knsv/mermaid/issues/587)
+- Multiple graph in the live editor [\#586](https://github.com/knsv/mermaid/issues/586)
+- All \ elements in page are colored black [\#584](https://github.com/knsv/mermaid/issues/584)
+- Styling: classes aren't applied to elements. [\#582](https://github.com/knsv/mermaid/issues/582)
+- Rounded connections [\#580](https://github.com/knsv/mermaid/issues/580)
+- Arrows are not being shown correctly in the dark theme [\#578](https://github.com/knsv/mermaid/issues/578)
+- The documentation for CLI seems outdated. [\#572](https://github.com/knsv/mermaid/issues/572)
+- No effect of click event:can not open link [\#571](https://github.com/knsv/mermaid/issues/571)
+- Text colors are not correct in VSCODE [\#570](https://github.com/knsv/mermaid/issues/570)
+- Nodes aren't aligned properly \(just need an explanation\) [\#568](https://github.com/knsv/mermaid/issues/568)
+- setting margin around figure in R [\#567](https://github.com/knsv/mermaid/issues/567)
+- Arrows should Come out in upward and Downward direction from decision Node [\#566](https://github.com/knsv/mermaid/issues/566)
+- TypeError: Cannot read property 'select' of undefined [\#563](https://github.com/knsv/mermaid/issues/563)
+- A little bug [\#557](https://github.com/knsv/mermaid/issues/557)
+- Japanese text appears garbled [\#554](https://github.com/knsv/mermaid/issues/554)
+- classdiagram not works in mermaid live_editor [\#553](https://github.com/knsv/mermaid/issues/553)
+- font awesome in link text? [\#546](https://github.com/knsv/mermaid/issues/546)
+- q: heard of the cosmogol standard? [\#545](https://github.com/knsv/mermaid/issues/545)
+- Arrow heads missing \(cli, 7.0.3\) [\#544](https://github.com/knsv/mermaid/issues/544)
+- No Edge Boxes if useHtmlLabels=false [\#541](https://github.com/knsv/mermaid/issues/541)
+- how to change mermaid text color or line text block color? [\#534](https://github.com/knsv/mermaid/issues/534)
+- FlowChart visualization broken when downloading from live editor [\#533](https://github.com/knsv/mermaid/issues/533)
+- Can't get flowchart to render paths at the top of the diagram; I even tried the online editor and that shows the same issue. Thoughts? [\#532](https://github.com/knsv/mermaid/issues/532)
+- live editor make browser\(safari on macOS&iOS\) not longer respond [\#531](https://github.com/knsv/mermaid/issues/531)
+- css classes need a prefix/namespace [\#527](https://github.com/knsv/mermaid/issues/527)
+- input activate/deactivate cause safari unresponding [\#521](https://github.com/knsv/mermaid/issues/521)
+- Cannot Render the Mermaid Graph to PDF ? [\#520](https://github.com/knsv/mermaid/issues/520)
+- clicking links works from inset in subgraph but not from nodes [\#516](https://github.com/knsv/mermaid/issues/516)
+- Strange syntax error - when importing mermaid.js [\#515](https://github.com/knsv/mermaid/issues/515)
+- gantt x-axis display [\#510](https://github.com/knsv/mermaid/issues/510)
+- phantomjs renamed to phantomjs-prebuilt [\#508](https://github.com/knsv/mermaid/issues/508)
+- issue when using sphinxcontrib-mermaid extension for sphinx [\#507](https://github.com/knsv/mermaid/issues/507)
+- layout of docs page looks broken [\#504](https://github.com/knsv/mermaid/issues/504)
+- 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 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)
+- Very different styles when rendering as png vs. svg [\#489](https://github.com/knsv/mermaid/issues/489)
+- New editor that supports mermaid: Caret [\#488](https://github.com/knsv/mermaid/issues/488)
+- Gant PNG margin [\#486](https://github.com/knsv/mermaid/issues/486)
+- ReferenceError: window is not defined [\#485](https://github.com/knsv/mermaid/issues/485)
+- Menu and layout bugs in docs [\#484](https://github.com/knsv/mermaid/issues/484)
+- Mermaid resets some of the page CSS styles [\#482](https://github.com/knsv/mermaid/issues/482)
+- Arrows rendering incorrectly in online editor [\#480](https://github.com/knsv/mermaid/issues/480)
+- CSS stroke-dasharray ignored by browsers but not other viewers [\#474](https://github.com/knsv/mermaid/issues/474)
+- mermaid - Browser Support issue [\#472](https://github.com/knsv/mermaid/issues/472)
+- Totally love mermaid I might pop! [\#471](https://github.com/knsv/mermaid/issues/471)
+- Sequence Diagram: Missing x on async arrows \(png\) [\#469](https://github.com/knsv/mermaid/issues/469)
+- live editor: the svg file rendered from graph is not supported by browsers [\#468](https://github.com/knsv/mermaid/issues/468)
+- Not found css [\#462](https://github.com/knsv/mermaid/issues/462)
+- Phantomjs Dependency [\#461](https://github.com/knsv/mermaid/issues/461)
+- Mermaid cli not working for subgraphs [\#459](https://github.com/knsv/mermaid/issues/459)
+- Support for notes across multiple participants? [\#458](https://github.com/knsv/mermaid/issues/458)
+- Related to Issue \#329: Phantomjs issues. [\#455](https://github.com/knsv/mermaid/issues/455)
+- Add a click style [\#426](https://github.com/knsv/mermaid/issues/426)
+- Add Parallel block \(par\) to sequence diagrams [\#425](https://github.com/knsv/mermaid/issues/425)
+- updating shapes after the flow chart rendering complete [\#424](https://github.com/knsv/mermaid/issues/424)
+- can't catch parse error Maximum call stack size exceeded on safari [\#421](https://github.com/knsv/mermaid/issues/421)
+- Arrows endings are missing [\#419](https://github.com/knsv/mermaid/issues/419)
+- shouldn't mermaid become more like Markdown ? [\#417](https://github.com/knsv/mermaid/issues/417)
+- Live editor show rendered diagram if syntax invalid [\#415](https://github.com/knsv/mermaid/issues/415)
+- Live editor sticky sidebar [\#414](https://github.com/knsv/mermaid/issues/414)
+- Linkstyle stroke does not work [\#410](https://github.com/knsv/mermaid/issues/410)
+- flowchart id's with dots in them .. break links [\#408](https://github.com/knsv/mermaid/issues/408)
+- Flowchart: Link text beginning with lowercase 'o' causes flowchart to break [\#407](https://github.com/knsv/mermaid/issues/407)
+- Some chinese character will case Safari no responding. [\#405](https://github.com/knsv/mermaid/issues/405)
+- Cannot center-justify text in nodes? [\#397](https://github.com/knsv/mermaid/issues/397)
+- Edge labels should have white background in live editor [\#396](https://github.com/knsv/mermaid/issues/396)
+- Live editor does not support activate/deactivate [\#394](https://github.com/knsv/mermaid/issues/394)
+- Styling subgraph? [\#391](https://github.com/knsv/mermaid/issues/391)
+- Update live editor to version 6.0.0 [\#387](https://github.com/knsv/mermaid/issues/387)
+- sequence diagram config issue [\#385](https://github.com/knsv/mermaid/issues/385)
+- How to add newline in the text [\#384](https://github.com/knsv/mermaid/issues/384)
+- PhantomJS crashes on a large graph [\#380](https://github.com/knsv/mermaid/issues/380)
+- Finnish support for class diagrams using plantuml syntax [\#377](https://github.com/knsv/mermaid/issues/377)
+- mermaidAPI.render generated different svg code from mermaid.int\(\) [\#374](https://github.com/knsv/mermaid/issues/374)
+- Put your own action on the chart [\#372](https://github.com/knsv/mermaid/issues/372)
+- when declaring participants the elements are generated twice [\#370](https://github.com/knsv/mermaid/issues/370)
+- Example Flowchart is cut in display \(Chrome\). [\#368](https://github.com/knsv/mermaid/issues/368)
+- Add shebang support to diagrams [\#365](https://github.com/knsv/mermaid/issues/365)
+- Silencing CLI output [\#352](https://github.com/knsv/mermaid/issues/352)
+- SequenceDiagram: 3+ Alternative Paths [\#348](https://github.com/knsv/mermaid/issues/348)
+- Smaller height of actor boxes [\#342](https://github.com/knsv/mermaid/issues/342)
+- Question: lib/phantomscript.js - foreignObjects in SVG - related to \#58 [\#340](https://github.com/knsv/mermaid/issues/340)
+- npm test fails on osx being blocked at Can not load "PhantomJS", it is not registered! [\#337](https://github.com/knsv/mermaid/issues/337)
+- Tabs & subgraphs cause rendering error [\#336](https://github.com/knsv/mermaid/issues/336)
+- Display question: right angles [\#335](https://github.com/knsv/mermaid/issues/335)
+- No Arrows rendered v0.5.8 [\#330](https://github.com/knsv/mermaid/issues/330)
+- mermaid -v filename.mmd gives You must specify at least one source file. [\#328](https://github.com/knsv/mermaid/issues/328)
+- You had errors in your syntax. Use --help for further information. [\#327](https://github.com/knsv/mermaid/issues/327)
+- Allow alternate arrow syntax that doesn't close html comments [\#322](https://github.com/knsv/mermaid/issues/322)
+- Comment in subgraph [\#319](https://github.com/knsv/mermaid/issues/319)
+- Update graph [\#311](https://github.com/knsv/mermaid/issues/311)
+- css conflicts with boostrap's css [\#308](https://github.com/knsv/mermaid/issues/308)
+- Can not get click event to fire. [\#306](https://github.com/knsv/mermaid/issues/306)
+- Fix phantomjs2 compatibility [\#304](https://github.com/knsv/mermaid/issues/304)
+- Flowcharts do not work in native IE11 [\#303](https://github.com/knsv/mermaid/issues/303)
+- Integration with remark.js - tutorial added [\#302](https://github.com/knsv/mermaid/issues/302)
+- Theme for dark background [\#301](https://github.com/knsv/mermaid/issues/301)
+- Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#299](https://github.com/knsv/mermaid/issues/299)
+- src/mermaid.js generates bad code [\#297](https://github.com/knsv/mermaid/issues/297)
+- Fresh fork: jasmine tests fail [\#294](https://github.com/knsv/mermaid/issues/294)
+- CSS clash [\#292](https://github.com/knsv/mermaid/issues/292)
+- Mermaid does not work in Chrome 48 [\#281](https://github.com/knsv/mermaid/issues/281)
+- node click is not effective [\#272](https://github.com/knsv/mermaid/issues/272)
+- circle and ellipse cannot change color by classDef [\#271](https://github.com/knsv/mermaid/issues/271)
+- \[Feature request\] gantt diagram axis format [\#269](https://github.com/knsv/mermaid/issues/269)
+- Not Able to See Labels even htmlLabels:false added [\#268](https://github.com/knsv/mermaid/issues/268)
+- npm run watch doesn’t work due missing dependencies [\#266](https://github.com/knsv/mermaid/issues/266)
+- label out of node [\#262](https://github.com/knsv/mermaid/issues/262)
+- IE11 Support issue [\#261](https://github.com/knsv/mermaid/issues/261)
+- mermaid without browser [\#260](https://github.com/knsv/mermaid/issues/260)
+- Insufficient capacity of gantt diagrams [\#226](https://github.com/knsv/mermaid/issues/226)
+- some WARN about installion [\#222](https://github.com/knsv/mermaid/issues/222)
+- Live editor offline access [\#217](https://github.com/knsv/mermaid/issues/217)
+- suggest: code highlight mode config for editors [\#212](https://github.com/knsv/mermaid/issues/212)
+- Uncaught RangeError: Maximum call stack size exceeded [\#189](https://github.com/knsv/mermaid/issues/189)
+- Implement render function for server side rendering using phantomjs [\#169](https://github.com/knsv/mermaid/issues/169)
+- Styling label texts [\#50](https://github.com/knsv/mermaid/issues/50)
+- Graphviz DOT syntax [\#5](https://github.com/knsv/mermaid/issues/5)
+
+**Merged pull requests:**
+
+- Remove console.log in classDB. [\#861](https://github.com/knsv/mermaid/pull/861) ([Arthaey](https://github.com/Arthaey))
+- Bump sshpk from 1.13.1 to 1.16.1 [\#851](https://github.com/knsv/mermaid/pull/851) ([dependabot[bot]](https://github.com/apps/dependabot))
+- Significantly smaller bundles [\#850](https://github.com/knsv/mermaid/pull/850) ([fabiospampinato](https://github.com/fabiospampinato))
+- Support styling of subgraphs [\#845](https://github.com/knsv/mermaid/pull/845) ([Qix-](https://github.com/Qix-))
+- fix dark theme loop labels not visible [\#837](https://github.com/knsv/mermaid/pull/837) ([jnnnnn](https://github.com/jnnnnn))
+- fix draw function can only call once [\#832](https://github.com/knsv/mermaid/pull/832) ([vaniship](https://github.com/vaniship))
+- Fix dotted lines not appearing in flowcharts when HTML labels disabled [\#828](https://github.com/knsv/mermaid/pull/828) ([stanhu](https://github.com/stanhu))
+- Fix issue with XML line breaks inside vertex labels [\#824](https://github.com/knsv/mermaid/pull/824) ([jsyang](https://github.com/jsyang))
+- fixed diagrams [\#810](https://github.com/knsv/mermaid/pull/810) ([0xflotus](https://github.com/0xflotus))
+- Clickable gantt tasks [\#804](https://github.com/knsv/mermaid/pull/804) ([abzicht](https://github.com/abzicht))
+- linkStyle now supports list of indexes with a few tests [\#798](https://github.com/knsv/mermaid/pull/798) ([ivan-danilov](https://github.com/ivan-danilov))
+- fix class diagram mermaid [\#795](https://github.com/knsv/mermaid/pull/795) ([DanShai](https://github.com/DanShai))
+- Added exclude weekdays to definition [\#792](https://github.com/knsv/mermaid/pull/792) ([jopapo](https://github.com/jopapo))
+- SVG link rendering [\#791](https://github.com/knsv/mermaid/pull/791) ([flying-sheep](https://github.com/flying-sheep))
+- Gantt milestones [\#788](https://github.com/knsv/mermaid/pull/788) ([gijswijs](https://github.com/gijswijs))
+- Remove duplicate code [\#768](https://github.com/knsv/mermaid/pull/768) ([znxkznxk1030](https://github.com/znxkznxk1030))
+- Render nodes as real links [\#765](https://github.com/knsv/mermaid/pull/765) ([flying-sheep](https://github.com/flying-sheep))
+- Support Multi-line Actor Descriptions [\#764](https://github.com/knsv/mermaid/pull/764) ([watsoncj](https://github.com/watsoncj))
+- Fix issue with marker-end. [\#757](https://github.com/knsv/mermaid/pull/757) ([gjlubbertsen](https://github.com/gjlubbertsen))
+- Make Class Diagrams usable in Stackedit and Live Editor [\#749](https://github.com/knsv/mermaid/pull/749) ([monsterkrampe](https://github.com/monsterkrampe))
+- Sequence numbers [\#722](https://github.com/knsv/mermaid/pull/722) ([paulbland](https://github.com/paulbland))
+- Add option for right angles [\#721](https://github.com/knsv/mermaid/pull/721) ([paulbland](https://github.com/paulbland))
+- Add nested activation classes [\#720](https://github.com/knsv/mermaid/pull/720) ([paulbland](https://github.com/paulbland))
+- wip: class diagram cardinality display [\#705](https://github.com/knsv/mermaid/pull/705) ([Vrixyz](https://github.com/Vrixyz))
+- add comments about CSS in config [\#688](https://github.com/knsv/mermaid/pull/688) ([imma90](https://github.com/imma90))
+- SequenceDiagram: Add support for multiple alt else statements [\#641](https://github.com/knsv/mermaid/pull/641) ([sechel](https://github.com/sechel))
+- fix \#426 - add class .clickable on nodes with click function or link [\#598](https://github.com/knsv/mermaid/pull/598) ([thomasleveil](https://github.com/thomasleveil))
+- Spec fix 1 [\#595](https://github.com/knsv/mermaid/pull/595) ([frankschmitt](https://github.com/frankschmitt))
+
+## [7.0.5](https://github.com/knsv/mermaid/tree/7.0.5) (2017-09-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.3...7.0.5)
+
+**Closed issues:**
+
+- live editor latin error after update [\#560](https://github.com/knsv/mermaid/issues/560)
+- Simple full example in online documentation is broken [\#558](https://github.com/knsv/mermaid/issues/558)
+- Graph No Arrow Head v7.0.3 [\#543](https://github.com/knsv/mermaid/issues/543)
+- Conflict while using mermaid along with core-js [\#512](https://github.com/knsv/mermaid/issues/512)
+- Export to pdf on website [\#496](https://github.com/knsv/mermaid/issues/496)
+- New downstream project: Mermaid Preview for VSCode [\#442](https://github.com/knsv/mermaid/issues/442)
+- Can't Zoom the flowchart ? [\#399](https://github.com/knsv/mermaid/issues/399)
+- line labels are not rendered correctly in live editor [\#366](https://github.com/knsv/mermaid/issues/366)
+- mermaid-loader [\#361](https://github.com/knsv/mermaid/issues/361)
+- Are there any documentation or examples for classDiagram and gitGraph? [\#359](https://github.com/knsv/mermaid/issues/359)
+- \# character broken in 0.5.8 [\#347](https://github.com/knsv/mermaid/issues/347)
+- Documentation issue: CSS example is not visible [\#345](https://github.com/knsv/mermaid/issues/345)
+- Include documentation for command line usage [\#326](https://github.com/knsv/mermaid/issues/326)
+- Fresh fork: can't build dist [\#296](https://github.com/knsv/mermaid/issues/296)
+- Invalid value for \ attribute viewBox="0 0 -Infinity -Infinity" [\#291](https://github.com/knsv/mermaid/issues/291)
+- Webpack require fails [\#277](https://github.com/knsv/mermaid/issues/277)
+- New documentation - need improved logo [\#216](https://github.com/knsv/mermaid/issues/216)
+
+## [7.0.3](https://github.com/knsv/mermaid/tree/7.0.3) (2017-06-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.2...7.0.3)
+
+**Closed issues:**
+
+- the documentation website is down [\#539](https://github.com/knsv/mermaid/issues/539)
+- Good example of interactivity with mermaidAPI [\#514](https://github.com/knsv/mermaid/issues/514)
+
+## [7.0.2](https://github.com/knsv/mermaid/tree/7.0.2) (2017-06-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/7.0.0...7.0.2)
+
+**Closed issues:**
+
+- CDN is not working [\#511](https://github.com/knsv/mermaid/issues/511)
+- A sampe sequenceDiagram crashes mermaid-cli [\#492](https://github.com/knsv/mermaid/issues/492)
+- Mermaid doesn't delete nodes when called multiple times [\#491](https://github.com/knsv/mermaid/issues/491)
+- API crashes on 2nd render\(\) call [\#478](https://github.com/knsv/mermaid/issues/478)
+- sequenceDiagram: dotted line for alt and empty bracket should be hidden [\#456](https://github.com/knsv/mermaid/issues/456)
+- SVG output \(almost\) not correct [\#434](https://github.com/knsv/mermaid/issues/434)
+- How to set axisFormatter of gantt in mermaid CLI? [\#428](https://github.com/knsv/mermaid/issues/428)
+- customizing link style with any color sets `fill` property to `black` instead of `none` [\#416](https://github.com/knsv/mermaid/issues/416)
+- New line at the end of SVG file [\#400](https://github.com/knsv/mermaid/issues/400)
+- CLI doesn't work [\#389](https://github.com/knsv/mermaid/issues/389)
+- Can't render subgraphs with htmlLabels: false [\#367](https://github.com/knsv/mermaid/issues/367)
+- Color arrowhead [\#362](https://github.com/knsv/mermaid/issues/362)
+- CLI: Invisible text, lines in SVG output [\#341](https://github.com/knsv/mermaid/issues/341)
+
+**Merged pull requests:**
+
+- Update Travis config [\#538](https://github.com/knsv/mermaid/pull/538) ([tylerlong](https://github.com/tylerlong))
+- Fix spelling of 'you' in sequenceDiagram docs [\#537](https://github.com/knsv/mermaid/pull/537) ([ctruelson](https://github.com/ctruelson))
+- Improve CLI output [\#536](https://github.com/knsv/mermaid/pull/536) ([gibson042](https://github.com/gibson042))
+- Modernize mermaid [\#524](https://github.com/knsv/mermaid/pull/524) ([tylerlong](https://github.com/tylerlong))
+- Modernize mermaid [\#519](https://github.com/knsv/mermaid/pull/519) ([tylerlong](https://github.com/tylerlong))
+- Update CLI instructions [\#509](https://github.com/knsv/mermaid/pull/509) ([filipedeschamps](https://github.com/filipedeschamps))
+- Add style for classDiagram to dark/default theme [\#503](https://github.com/knsv/mermaid/pull/503) ([yudenzel](https://github.com/yudenzel))
+- Fix documentation for git graph. [\#498](https://github.com/knsv/mermaid/pull/498) ([gomlgs](https://github.com/gomlgs))
+- Fix links in documentations [\#497](https://github.com/knsv/mermaid/pull/497) ([saveman71](https://github.com/saveman71))
+- Update README.md with git graph sample [\#481](https://github.com/knsv/mermaid/pull/481) ([raghur](https://github.com/raghur))
+- Fix misspelling of “another” [\#479](https://github.com/knsv/mermaid/pull/479) ([stevenschobert](https://github.com/stevenschobert))
+- Fixed \#456 sequenceDiagram: dotted line for alt and empty bracket sho… [\#477](https://github.com/knsv/mermaid/pull/477) ([brookhong](https://github.com/brookhong))
+- Add viewbox attr to class diagram [\#473](https://github.com/knsv/mermaid/pull/473) ([gnkm](https://github.com/gnkm))
+- add par statement to sequenceDiagram [\#470](https://github.com/knsv/mermaid/pull/470) ([u-minor](https://github.com/u-minor))
+
+## [7.0.0](https://github.com/knsv/mermaid/tree/7.0.0) (2017-01-29)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/6.0.0...7.0.0)
+
+**Closed issues:**
+
+- demos on io site not working [\#466](https://github.com/knsv/mermaid/issues/466)
+- Can not be generated PNG pictures through CLI with Chinese [\#451](https://github.com/knsv/mermaid/issues/451)
+- Round nodes cannot be styled with CSS classes [\#443](https://github.com/knsv/mermaid/issues/443)
+- webpack gulp UglifyJsPlugin error. [\#440](https://github.com/knsv/mermaid/issues/440)
+- String concatenation isn't working [\#432](https://github.com/knsv/mermaid/issues/432)
+- text flow/wrap in actor box of sequence diagram [\#422](https://github.com/knsv/mermaid/issues/422)
+- Online live editor still use old version [\#402](https://github.com/knsv/mermaid/issues/402)
+- uncaught TypeError: t.getTransformToElement is not a function [\#401](https://github.com/knsv/mermaid/issues/401)
+- Only works when using browserify'd code [\#373](https://github.com/knsv/mermaid/issues/373)
+- document the use of shebang line in mmd files [\#364](https://github.com/knsv/mermaid/issues/364)
+- Diagrams are small and unreadable in IE 11 - since 0.5.1 [\#356](https://github.com/knsv/mermaid/issues/356)
+- \[Feature Request\] ER-Diagram Support [\#354](https://github.com/knsv/mermaid/issues/354)
+- npm install -g mermaid does not install phantomjs [\#329](https://github.com/knsv/mermaid/issues/329)
+- activation boxes [\#313](https://github.com/knsv/mermaid/issues/313)
+- The need for mermaid.css should be mentioned explicitly in the intro docs... [\#273](https://github.com/knsv/mermaid/issues/273)
+
+**Merged pull requests:**
+
+- Update index.html [\#465](https://github.com/knsv/mermaid/pull/465) ([bmsleight](https://github.com/bmsleight))
+- Fix for \#416, customizing link style with any color sets `fill` property to `black` instead of `none` [\#452](https://github.com/knsv/mermaid/pull/452) ([joshuacolvin](https://github.com/joshuacolvin))
+- Allow .node\>circle to receive css styles [\#449](https://github.com/knsv/mermaid/pull/449) ([bfriedz](https://github.com/bfriedz))
+- Fix spelling [\#447](https://github.com/knsv/mermaid/pull/447) ([jawn](https://github.com/jawn))
+- added tests and fix cli css style selector lowercase problem [\#445](https://github.com/knsv/mermaid/pull/445) ([whyzdev](https://github.com/whyzdev))
+- Update d3.js [\#441](https://github.com/knsv/mermaid/pull/441) ([hetz](https://github.com/hetz))
+- adde tests to reproduce \#434 in flowchart [\#439](https://github.com/knsv/mermaid/pull/439) ([whyzdev](https://github.com/whyzdev))
+- Code Climate config [\#437](https://github.com/knsv/mermaid/pull/437) ([larkinscott](https://github.com/larkinscott))
+- fix gantt and sequence digram cli cfg [\#435](https://github.com/knsv/mermaid/pull/435) ([whyzdev](https://github.com/whyzdev))
+- fix gantt chart cli configuration broken [\#433](https://github.com/knsv/mermaid/pull/433) ([whyzdev](https://github.com/whyzdev))
+- fix gantt chart cli configuration parsing including functions [\#430](https://github.com/knsv/mermaid/pull/430) ([whyzdev](https://github.com/whyzdev))
+- Uses an empty text node instead of a string for svg group labels [\#429](https://github.com/knsv/mermaid/pull/429) ([daveaglick](https://github.com/daveaglick))
+- use tspan via d3.textwrap to place actor text in sequence diagram [\#427](https://github.com/knsv/mermaid/pull/427) ([whyzdev](https://github.com/whyzdev))
+- \#422 use foreignObject/div to place actor label in sequence diagram [\#423](https://github.com/knsv/mermaid/pull/423) ([whyzdev](https://github.com/whyzdev))
+- Clarify the need for a CSS stylesheet [\#413](https://github.com/knsv/mermaid/pull/413) ([sifb](https://github.com/sifb))
+- Added hads downstream project [\#412](https://github.com/knsv/mermaid/pull/412) ([sinedied](https://github.com/sinedied))
+- update usage and fix \#273 [\#406](https://github.com/knsv/mermaid/pull/406) ([jinntrance](https://github.com/jinntrance))
+- Add https://github.com/raghur/mermaid-filter to downstream projects docs page [\#404](https://github.com/knsv/mermaid/pull/404) ([raghur](https://github.com/raghur))
+- New neutral theme [\#395](https://github.com/knsv/mermaid/pull/395) ([sinedied](https://github.com/sinedied))
+- fix cli issues [\#390](https://github.com/knsv/mermaid/pull/390) ([ben-page](https://github.com/ben-page))
+- Add missing space for 'Labels out of bounds' section [\#386](https://github.com/knsv/mermaid/pull/386) ([The-Alchemist](https://github.com/The-Alchemist))
+- Fix typo: `pats` -\> `paths` [\#382](https://github.com/knsv/mermaid/pull/382) ([swhgoon](https://github.com/swhgoon))
+- Added class diagram example to README.md [\#379](https://github.com/knsv/mermaid/pull/379) ([HustLion](https://github.com/HustLion))
+- override normal flowchart arrowhead to allow css styling [\#376](https://github.com/knsv/mermaid/pull/376) ([dodoinblue](https://github.com/dodoinblue))
+- added sphinx extension [\#371](https://github.com/knsv/mermaid/pull/371) ([mgaitan](https://github.com/mgaitan))
+- Fix typo in the sequence diagram documentation [\#369](https://github.com/knsv/mermaid/pull/369) ([ggpasqualino](https://github.com/ggpasqualino))
+
+## [6.0.0](https://github.com/knsv/mermaid/tree/6.0.0) (2016-05-29)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.8...6.0.0)
+
+**Closed issues:**
+
+- Docs css: code hard to read [\#324](https://github.com/knsv/mermaid/issues/324)
+- About Markpad integration [\#323](https://github.com/knsv/mermaid/issues/323)
+- How to link backwards in flowchat? [\#321](https://github.com/knsv/mermaid/issues/321)
+- Help with editor [\#310](https://github.com/knsv/mermaid/issues/310)
+- +1 [\#293](https://github.com/knsv/mermaid/issues/293)
+- Basic chart does not render on Chome, but does in Firefox [\#290](https://github.com/knsv/mermaid/issues/290)
+- Live editor is broken [\#285](https://github.com/knsv/mermaid/issues/285)
+- "No such file or directory" trying to run mermaid 0.5.7 on OS X [\#284](https://github.com/knsv/mermaid/issues/284)
+- participant name as "Long Long Name" [\#283](https://github.com/knsv/mermaid/issues/283)
+- Windows - cli - could not find phantomjs at the specified path [\#236](https://github.com/knsv/mermaid/issues/236)
+
+**Merged pull requests:**
+
+- The option of gantt for the spaces for the section names. [\#353](https://github.com/knsv/mermaid/pull/353) ([zeroyonichihachi](https://github.com/zeroyonichihachi))
+- Gitgraph: Make reset work with parent ref carets [\#350](https://github.com/knsv/mermaid/pull/350) ([raghur](https://github.com/raghur))
+- Remove the text-shadows that make the text look blurry [\#349](https://github.com/knsv/mermaid/pull/349) ([AsaAyers](https://github.com/AsaAyers))
+- add line interpolation to linkStyle in flowchart [\#346](https://github.com/knsv/mermaid/pull/346) ([AlanHohn](https://github.com/AlanHohn))
+- Support git graph diagrams in mermaid [\#344](https://github.com/knsv/mermaid/pull/344) ([raghur](https://github.com/raghur))
+- Build and test execution changes [\#338](https://github.com/knsv/mermaid/pull/338) ([ssbarnea](https://github.com/ssbarnea))
+- Reformatting of css files [\#331](https://github.com/knsv/mermaid/pull/331) ([Jmuccigr](https://github.com/Jmuccigr))
+- \(WIP\) Sequence Diagram Title Support [\#320](https://github.com/knsv/mermaid/pull/320) ([bronsoja](https://github.com/bronsoja))
+- activations doc + few fixes [\#318](https://github.com/knsv/mermaid/pull/318) ([ciekawy](https://github.com/ciekawy))
+- Dark theme for better contrast on darker backgrounds [\#317](https://github.com/knsv/mermaid/pull/317) ([crodriguez1a](https://github.com/crodriguez1a))
+- Activations [\#316](https://github.com/knsv/mermaid/pull/316) ([ciekawy](https://github.com/ciekawy))
+- Support leading comments for sequenceDiagrams [\#312](https://github.com/knsv/mermaid/pull/312) ([ashsearle](https://github.com/ashsearle))
+- Show a little lenience for white-space around names [\#309](https://github.com/knsv/mermaid/pull/309) ([ashsearle](https://github.com/ashsearle))
+- Update list of downstream projects [\#307](https://github.com/knsv/mermaid/pull/307) ([maxArturo](https://github.com/maxArturo))
+- Issue 299: Sequence diagram Loops: changing boxMargin spoils the "loop" notation [\#300](https://github.com/knsv/mermaid/pull/300) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Issue 297 - src/mermaid.js generates bad code [\#298](https://github.com/knsv/mermaid/pull/298) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Updated instructions for running tests [\#295](https://github.com/knsv/mermaid/pull/295) ([LarryKlugerDS](https://github.com/LarryKlugerDS))
+- Add Markdown Plus to Downstream projects [\#288](https://github.com/knsv/mermaid/pull/288) ([tylerlong](https://github.com/tylerlong))
+- Quote phantomPath so that it doesn't fail on window [\#286](https://github.com/knsv/mermaid/pull/286) ([raghur](https://github.com/raghur))
+
+## [0.5.8](https://github.com/knsv/mermaid/tree/0.5.8) (2016-01-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.7...0.5.8)
+
+## [0.5.7](https://github.com/knsv/mermaid/tree/0.5.7) (2016-01-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.6...0.5.7)
+
+**Closed issues:**
+
+- Mermaid + LightPaper = ❤️ [\#280](https://github.com/knsv/mermaid/issues/280)
+- Bower Integration [\#278](https://github.com/knsv/mermaid/issues/278)
+- Mermaid breaks when variables end in 'v' [\#276](https://github.com/knsv/mermaid/issues/276)
+- sequence diagrams don't support participant aliasing [\#263](https://github.com/knsv/mermaid/issues/263)
+- One diagram that fails to render stops further execution on the page [\#259](https://github.com/knsv/mermaid/issues/259)
+- Where to find line layout algorithm? [\#258](https://github.com/knsv/mermaid/issues/258)
+- Compatibility with node.js [\#257](https://github.com/knsv/mermaid/issues/257)
+- Label resizing with dynamically loaded fonts [\#255](https://github.com/knsv/mermaid/issues/255)
+- SVG arrowheads are broken in the CLI [\#249](https://github.com/knsv/mermaid/issues/249)
+- Cannot read property 'replace' of undefined [\#239](https://github.com/knsv/mermaid/issues/239)
+
+**Merged pull requests:**
+
+- gh-50 Allow styling of edge labels in css [\#267](https://github.com/knsv/mermaid/pull/267) ([Anoia](https://github.com/Anoia))
+- Allow sequenceDiagram participant aliasing [\#265](https://github.com/knsv/mermaid/pull/265) ([gibson042](https://github.com/gibson042))
+
+## [0.5.6](https://github.com/knsv/mermaid/tree/0.5.6) (2015-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.5...0.5.6)
+
+**Closed issues:**
+
+- title doesn't work in sequenceDiagram [\#248](https://github.com/knsv/mermaid/issues/248)
+- hypen-minus should be valid in sequence diagram alt/else/etc. descriptions [\#247](https://github.com/knsv/mermaid/issues/247)
+- Broken in firefox? [\#245](https://github.com/knsv/mermaid/issues/245)
+- When there is a Chinese symbol in the flowchart, it will crash。 [\#238](https://github.com/knsv/mermaid/issues/238)
+- Non-alpha characters included in ALPHA token \(flow graph jison\) [\#232](https://github.com/knsv/mermaid/issues/232)
+- subgraph not rendering with change to sample [\#231](https://github.com/knsv/mermaid/issues/231)
+- sequence diagram requires a new line at the end? [\#229](https://github.com/knsv/mermaid/issues/229)
+- Live Editor: Permalink address not being parsed [\#202](https://github.com/knsv/mermaid/issues/202)
+- Add download SVG link to the live editor [\#144](https://github.com/knsv/mermaid/issues/144)
+
+**Merged pull requests:**
+
+- Make sequenceDiagram terminal newline optional [\#253](https://github.com/knsv/mermaid/pull/253) ([gibson042](https://github.com/gibson042))
+- Support sequenceDiagram "over" notes [\#252](https://github.com/knsv/mermaid/pull/252) ([gibson042](https://github.com/gibson042))
+- Properly handle "rest of line" statements [\#251](https://github.com/knsv/mermaid/pull/251) ([gibson042](https://github.com/gibson042))
+- CLI: Propagate exit code from lib \(i.e., phantomjs\) [\#250](https://github.com/knsv/mermaid/pull/250) ([gibson042](https://github.com/gibson042))
+- flowRender.js - Fix FontAwesome icon insert [\#244](https://github.com/knsv/mermaid/pull/244) ([ma-zal](https://github.com/ma-zal))
+- updated sequence diagram link in live editor [\#242](https://github.com/knsv/mermaid/pull/242) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
+- updated links in README.md [\#240](https://github.com/knsv/mermaid/pull/240) ([r-a-v-a-s](https://github.com/r-a-v-a-s))
+- Ellipse syntax [\#237](https://github.com/knsv/mermaid/pull/237) ([spect88](https://github.com/spect88))
+- Allow keywords as suffixes of node ids [\#235](https://github.com/knsv/mermaid/pull/235) ([spect88](https://github.com/spect88))
+- Highlighted the editor in the nav [\#234](https://github.com/knsv/mermaid/pull/234) ([knsv](https://github.com/knsv))
+- Live editor tweaks [\#233](https://github.com/knsv/mermaid/pull/233) ([spect88](https://github.com/spect88))
+- Add a Gitter chat badge to README.md [\#230](https://github.com/knsv/mermaid/pull/230) ([gitter-badger](https://github.com/gitter-badger))
+
+## [0.5.5](https://github.com/knsv/mermaid/tree/0.5.5) (2015-10-21)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.4...0.5.5)
+
+**Closed issues:**
+
+- sequence diagram, arrowhead instead of crosshead [\#227](https://github.com/knsv/mermaid/issues/227)
+
+**Merged pull requests:**
+
+- Fix a typo: crosshead --\> arrowhead [\#228](https://github.com/knsv/mermaid/pull/228) ([tylerlong](https://github.com/tylerlong))
+
+## [0.5.4](https://github.com/knsv/mermaid/tree/0.5.4) (2015-10-19)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.3...0.5.4)
+
+**Closed issues:**
+
+- Weird bug in live editor when using words with substring `end` [\#184](https://github.com/knsv/mermaid/issues/184)
+- Custom icons [\#15](https://github.com/knsv/mermaid/issues/15)
+- Marker-end arrow cannot be shown for URL with query parameter [\#225](https://github.com/knsv/mermaid/issues/225)
+- Please update bower's D3 version [\#221](https://github.com/knsv/mermaid/issues/221)
+- Set log level from mermaid configuration [\#220](https://github.com/knsv/mermaid/issues/220)
+- Width fixed to 400px [\#204](https://github.com/knsv/mermaid/issues/204)
+- render to png from the cli does not display the marker-end arrow heads [\#181](https://github.com/knsv/mermaid/issues/181)
+- Links in sequence diagrams [\#159](https://github.com/knsv/mermaid/issues/159)
+- comment characters `%%` cause parse error [\#141](https://github.com/knsv/mermaid/issues/141)
+- Add a reversed asymmetric shape [\#124](https://github.com/knsv/mermaid/issues/124)
+- Add syntax for double headed arrows [\#123](https://github.com/knsv/mermaid/issues/123)
+- Support for font-awesome [\#49](https://github.com/knsv/mermaid/issues/49)
+
+**Merged pull requests:**
+
+- Allow `end` as a substring of vertex id [\#224](https://github.com/knsv/mermaid/pull/224) ([spect88](https://github.com/spect88))
+- Remove duplicate npm dependencies: d3 and he [\#223](https://github.com/knsv/mermaid/pull/223) ([spect88](https://github.com/spect88))
+
+## [0.5.3](https://github.com/knsv/mermaid/tree/0.5.3) (2015-10-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.2...0.5.3)
+
+## [0.5.2](https://github.com/knsv/mermaid/tree/0.5.2) (2015-10-04)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.1...0.5.2)
+
+**Closed issues:**
+
+- Installing “atom-mermaid@0.1.3” failed [\#218](https://github.com/knsv/mermaid/issues/218)
+- Render mermaid code on websites? [\#215](https://github.com/knsv/mermaid/issues/215)
+- Brackets in a node with text? [\#213](https://github.com/knsv/mermaid/issues/213)
+- node feature request [\#211](https://github.com/knsv/mermaid/issues/211)
+- Please add prefix for styles [\#208](https://github.com/knsv/mermaid/issues/208)
+- Bad handling of block arguments [\#207](https://github.com/knsv/mermaid/issues/207)
+- please consider port to mac osx [\#203](https://github.com/knsv/mermaid/issues/203)
+- allow phantomjs \>=1.9.x [\#201](https://github.com/knsv/mermaid/issues/201)
+- syntax for venn diagrams? [\#200](https://github.com/knsv/mermaid/issues/200)
+- Broken CLI Graphs? \(v0.5.1\) [\#196](https://github.com/knsv/mermaid/issues/196)
+- Static site does not render under HTTPS [\#194](https://github.com/knsv/mermaid/issues/194)
+- Error on simple graph [\#192](https://github.com/knsv/mermaid/issues/192)
+- Escape "~" [\#191](https://github.com/knsv/mermaid/issues/191)
+- Trying to add link using 'click' to flowchart [\#188](https://github.com/knsv/mermaid/issues/188)
+- cli: no lines and arrowheads rendered / only dotted lines [\#187](https://github.com/knsv/mermaid/issues/187)
+- text of mermaid div displayed on page [\#186](https://github.com/knsv/mermaid/issues/186)
+- using mermaid with laravel [\#185](https://github.com/knsv/mermaid/issues/185)
+- Atom editor package [\#183](https://github.com/knsv/mermaid/issues/183)
+- Auto linewrap for notes in sequence diagrams [\#178](https://github.com/knsv/mermaid/issues/178)
+- Execute code after initialize [\#176](https://github.com/knsv/mermaid/issues/176)
+- Autoscaling for all diagram types [\#175](https://github.com/knsv/mermaid/issues/175)
+- Problem with click event callback [\#174](https://github.com/knsv/mermaid/issues/174)
+- How to escape characters? [\#170](https://github.com/knsv/mermaid/issues/170)
+- it can not work [\#167](https://github.com/knsv/mermaid/issues/167)
+- UML Class diagram [\#154](https://github.com/knsv/mermaid/issues/154)
+- Broken subgraph using the CLI [\#153](https://github.com/knsv/mermaid/issues/153)
+- Support PlantUML syntax [\#149](https://github.com/knsv/mermaid/issues/149)
+- IE Support issue [\#142](https://github.com/knsv/mermaid/issues/142)
+- Flowchart truncated [\#140](https://github.com/knsv/mermaid/issues/140)
+- Double Quote as text is not working [\#219](https://github.com/knsv/mermaid/issues/219)
+- classDef / class not working with htmlLabels? [\#210](https://github.com/knsv/mermaid/issues/210)
+- Links in graph missing [\#209](https://github.com/knsv/mermaid/issues/209)
+- Last word in comment boxes getting cut off by word wrap library : \( [\#195](https://github.com/knsv/mermaid/issues/195)
+- Escaping characters in sequence diagram [\#193](https://github.com/knsv/mermaid/issues/193)
+- SVG foreignObject rendering [\#180](https://github.com/knsv/mermaid/issues/180)
+- IE9 issue [\#179](https://github.com/knsv/mermaid/issues/179)
+- inoperable in an AMD/requirejs environment: IPython Notebook [\#127](https://github.com/knsv/mermaid/issues/127)
+- \[Parser\] Hyphen in participant name bring TypeError [\#74](https://github.com/knsv/mermaid/issues/74)
+- Support for hyperlink and tooltip [\#34](https://github.com/knsv/mermaid/issues/34)
+
+**Merged pull requests:**
+
+- Update flowchart.md [\#214](https://github.com/knsv/mermaid/pull/214) ([orschiro](https://github.com/orschiro))
+- Default style when using the CLI [\#205](https://github.com/knsv/mermaid/pull/205) ([gillesdemey](https://github.com/gillesdemey))
+- Gantt chart - add minutes and seconds durations [\#198](https://github.com/knsv/mermaid/pull/198) ([dbrans](https://github.com/dbrans))
+- Using QUnit for AMD testing [\#190](https://github.com/knsv/mermaid/pull/190) ([bollwyvl](https://github.com/bollwyvl))
+- Update phantomscript.js [\#182](https://github.com/knsv/mermaid/pull/182) ([phairow](https://github.com/phairow))
+
+## [0.5.1](https://github.com/knsv/mermaid/tree/0.5.1) (2015-06-21)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.5.0...0.5.1)
+
+**Closed issues:**
+
+- Live editor is broken [\#173](https://github.com/knsv/mermaid/issues/173)
+- 0.5.0 no longer respects custom date definitions in Gantt diagrams [\#171](https://github.com/knsv/mermaid/issues/171)
+- Drop label character restrictions [\#162](https://github.com/knsv/mermaid/issues/162)
+- can't nest subgraphs in flowchart [\#161](https://github.com/knsv/mermaid/issues/161)
+- Unable to generate gantt diagram with mermaid CLI [\#158](https://github.com/knsv/mermaid/issues/158)
+- Inline css by "mermaid" [\#157](https://github.com/knsv/mermaid/issues/157)
+- Finite State Machine Diagram [\#152](https://github.com/knsv/mermaid/issues/152)
+- How to center align gantt diagram [\#150](https://github.com/knsv/mermaid/issues/150)
+- Security concern regarding class definition [\#148](https://github.com/knsv/mermaid/issues/148)
+- File Extension [\#147](https://github.com/knsv/mermaid/issues/147)
+- To SVG Export [\#146](https://github.com/knsv/mermaid/issues/146)
+- `setTimeout` with clusters problematic with programmatic edits and no callback [\#133](https://github.com/knsv/mermaid/issues/133)
+- Possibility to set the width of the generated flowchart [\#129](https://github.com/knsv/mermaid/issues/129)
+- flowchart - styling of edges via css overrides specific styles set in the graph definition [\#128](https://github.com/knsv/mermaid/issues/128)
+- module.exports.cloneCssStyles\(\) in combination with Angularjs breaks display in Chrome and IE [\#126](https://github.com/knsv/mermaid/issues/126)
+- Gantt - suitable xAxis for longer project [\#125](https://github.com/knsv/mermaid/issues/125)
+- Mix horizontal and vertical graph [\#68](https://github.com/knsv/mermaid/issues/68)
+- How to get started with this project ? [\#64](https://github.com/knsv/mermaid/issues/64)
+- Special characters break parsing [\#54](https://github.com/knsv/mermaid/issues/54)
+- Responsive graph layout for mobile viewers [\#51](https://github.com/knsv/mermaid/issues/51)
+- Styling connector lines [\#31](https://github.com/knsv/mermaid/issues/31)
+
+**Merged pull requests:**
+
+- Remove moot `version` property from bower.json [\#172](https://github.com/knsv/mermaid/pull/172) ([kkirsche](https://github.com/kkirsche))
+
+## [0.5.0](https://github.com/knsv/mermaid/tree/0.5.0) (2015-06-07)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.4.0...0.5.0)
+
+**Closed issues:**
+
+- it can not work where graph TD contains chinese character [\#166](https://github.com/knsv/mermaid/issues/166)
+- Broken Examples [\#163](https://github.com/knsv/mermaid/issues/163)
+- uglifyjs wanrings which means we can improve the code [\#156](https://github.com/knsv/mermaid/issues/156)
+- New\(er\) features unavailable in downloadable js files? [\#151](https://github.com/knsv/mermaid/issues/151)
+- Add gh-gapes link to description [\#143](https://github.com/knsv/mermaid/issues/143)
+- Some examples not displayed on Firefox 36.0.1 [\#138](https://github.com/knsv/mermaid/issues/138)
+- tags ending in a "v" don't render [\#132](https://github.com/knsv/mermaid/issues/132)
+- Links in flowchart [\#131](https://github.com/knsv/mermaid/issues/131)
+- Using the library for iOS development [\#130](https://github.com/knsv/mermaid/issues/130)
+- Add a css file, mermaid.css, with default styling [\#122](https://github.com/knsv/mermaid/issues/122)
+- Add capability for gantt diagrams [\#118](https://github.com/knsv/mermaid/issues/118)
+- lower case v causes error in the parser [\#108](https://github.com/knsv/mermaid/issues/108)
+- Label's css conflict with boostrap's .label [\#67](https://github.com/knsv/mermaid/issues/67)
+- TypeError: Cannot read property 'layout' of undefined [\#37](https://github.com/knsv/mermaid/issues/37)
+- software architecture diagram [\#36](https://github.com/knsv/mermaid/issues/36)
+- Support for bar charts and pie diagrams [\#22](https://github.com/knsv/mermaid/issues/22)
+
+**Merged pull requests:**
+
+- Dev 0.5.0 [\#168](https://github.com/knsv/mermaid/pull/168) ([knsv](https://github.com/knsv))
+- Fix spacing [\#164](https://github.com/knsv/mermaid/pull/164) ([rhcarvalho](https://github.com/rhcarvalho))
+- Fixing typo: "Think" -\> "Thick" [\#160](https://github.com/knsv/mermaid/pull/160) ([it0a](https://github.com/it0a))
+- IE, local html, cssRules access is denied [\#155](https://github.com/knsv/mermaid/pull/155) ([tylerlong](https://github.com/tylerlong))
+- Add automatically generated change log file. [\#139](https://github.com/knsv/mermaid/pull/139) ([skywinder](https://github.com/skywinder))
+- Adding init argument to the global API [\#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl))
+- Add description of manual calling of init [\#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl))
+- Allow other forms of node selection for init\(\) [\#135](https://github.com/knsv/mermaid/pull/135) ([bollwyvl](https://github.com/bollwyvl))
+- Use a library-level variable for assigning ids [\#134](https://github.com/knsv/mermaid/pull/134) ([bollwyvl](https://github.com/bollwyvl))
+
+## [0.4.0](https://github.com/knsv/mermaid/tree/0.4.0) (2015-03-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.5...0.4.0)
+
+**Closed issues:**
+
+- subgraph background is black in rendered flowchart PNG via CLI [\#121](https://github.com/knsv/mermaid/issues/121)
+- Integrate editor at https://github.com/naseer/mermaid-webapp [\#110](https://github.com/knsv/mermaid/issues/110)
+- Internet Explorer Support [\#99](https://github.com/knsv/mermaid/issues/99)
+- Asymmetric shapes not documented [\#82](https://github.com/knsv/mermaid/issues/82)
+- NoModificationAllowedError [\#23](https://github.com/knsv/mermaid/issues/23)
+- Improve arrows [\#3](https://github.com/knsv/mermaid/issues/3)
+
+## [0.3.5](https://github.com/knsv/mermaid/tree/0.3.5) (2015-02-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.4...0.3.5)
+
+## [0.3.4](https://github.com/knsv/mermaid/tree/0.3.4) (2015-02-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.3...0.3.4)
+
+**Closed issues:**
+
+- Subgraph syntax bug? [\#120](https://github.com/knsv/mermaid/issues/120)
+- Live editor [\#115](https://github.com/knsv/mermaid/issues/115)
+- Error in "Basic Syntax" wiki page [\#113](https://github.com/knsv/mermaid/issues/113)
+- semicolons, anyone? [\#111](https://github.com/knsv/mermaid/issues/111)
+- undefined `sequenceConfig` fails [\#109](https://github.com/knsv/mermaid/issues/109)
+- Sequence Diagrams: Show Actors below as well [\#106](https://github.com/knsv/mermaid/issues/106)
+- Allow overriding sequence diagram configuration \(SVG properties\) [\#103](https://github.com/knsv/mermaid/issues/103)
+- Error when rendering A-- This is the text -- B [\#102](https://github.com/knsv/mermaid/issues/102)
+- Clipping in documentation [\#97](https://github.com/knsv/mermaid/issues/97)
+- isolate class styling to the svg container [\#92](https://github.com/knsv/mermaid/issues/92)
+- Apply styling from css when using the CLI utility [\#85](https://github.com/knsv/mermaid/issues/85)
+- Generated SVG works poorly outside web browsers [\#58](https://github.com/knsv/mermaid/issues/58)
+- Make the new graph declaration more visual [\#40](https://github.com/knsv/mermaid/issues/40)
+- Generating SVG text blob for use in Node [\#2](https://github.com/knsv/mermaid/issues/2)
+
+**Merged pull requests:**
+
+- Add live editor [\#119](https://github.com/knsv/mermaid/pull/119) ([naseer](https://github.com/naseer))
+- Adds CSS option to the CLI [\#116](https://github.com/knsv/mermaid/pull/116) ([fardog](https://github.com/fardog))
+- Update flowchart.md in response Issue \#113 [\#114](https://github.com/knsv/mermaid/pull/114) ([vijay40](https://github.com/vijay40))
+- Ignore all files except the license and dist/ folder when installing with Bower. [\#112](https://github.com/knsv/mermaid/pull/112) ([jasonbellamy](https://github.com/jasonbellamy))
+
+## [0.3.3](https://github.com/knsv/mermaid/tree/0.3.3) (2015-01-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.2...0.3.3)
+
+**Closed issues:**
+
+- Missing arrows in sequence diagram [\#98](https://github.com/knsv/mermaid/issues/98)
+- Error with \>9 linkStyles [\#95](https://github.com/knsv/mermaid/issues/95)
+- Support for dotted links [\#26](https://github.com/knsv/mermaid/issues/26)
+
+**Merged pull requests:**
+
+- Require d3 directly to better support Node usage [\#107](https://github.com/knsv/mermaid/pull/107) ([markdalgleish](https://github.com/markdalgleish))
+- update doc with -c option [\#105](https://github.com/knsv/mermaid/pull/105) ([jjmr](https://github.com/jjmr))
+- Add new parameter to the console client to override the svg configuration in sequence diagrams [\#104](https://github.com/knsv/mermaid/pull/104) ([jjmr](https://github.com/jjmr))
+- Text based labels, new shape [\#101](https://github.com/knsv/mermaid/pull/101) ([bjowes](https://github.com/bjowes))
+- fix html tags in example usage [\#100](https://github.com/knsv/mermaid/pull/100) ([deiwin](https://github.com/deiwin))
+
+## [0.3.2](https://github.com/knsv/mermaid/tree/0.3.2) (2015-01-11)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.1...0.3.2)
+
+**Closed issues:**
+
+- disable auto render [\#91](https://github.com/knsv/mermaid/issues/91)
+- Tidy breaks mermaid \(linebreaks in \\) [\#87](https://github.com/knsv/mermaid/issues/87)
+- Bug: \ being rendered as text in node [\#73](https://github.com/knsv/mermaid/issues/73)
+- Graph edges appear to render outside of the canvas [\#70](https://github.com/knsv/mermaid/issues/70)
+- Make link text look like it is on the line [\#53](https://github.com/knsv/mermaid/issues/53)
+
+**Merged pull requests:**
+
+- 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))
+- 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)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.3.0...0.3.1)
+
+**Closed issues:**
+
+- Non ASCII chars in labels [\#84](https://github.com/knsv/mermaid/issues/84)
+- 'undefined' titles of Quicklinks on the usage page [\#80](https://github.com/knsv/mermaid/issues/80)
+- \[cli\] Enhancement proposal: not fail --version / --help if phantomjs isn't installed [\#71](https://github.com/knsv/mermaid/issues/71)
+- Neural Networks [\#39](https://github.com/knsv/mermaid/issues/39)
+- Support for sequence diagrams [\#16](https://github.com/knsv/mermaid/issues/16)
+- Client utility for mermaid [\#6](https://github.com/knsv/mermaid/issues/6)
+
+**Merged pull requests:**
+
+- Flowchart doc: Text in the circle now in a circle [\#81](https://github.com/knsv/mermaid/pull/81) ([Grahack](https://github.com/Grahack))
+- Fix for issue \#73 [\#79](https://github.com/knsv/mermaid/pull/79) ([it0a](https://github.com/it0a))
+- Ink template [\#78](https://github.com/knsv/mermaid/pull/78) ([gkchic](https://github.com/gkchic))
+- Show help and version even if phantom isn't present. Fixes \#71 [\#75](https://github.com/knsv/mermaid/pull/75) ([fardog](https://github.com/fardog))
+- Add apostrophe & 'and' [\#72](https://github.com/knsv/mermaid/pull/72) ([sudodoki](https://github.com/sudodoki))
+
+## [0.3.0](https://github.com/knsv/mermaid/tree/0.3.0) (2014-12-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.16...0.3.0)
+
+**Closed issues:**
+
+- Consider shipping a standalone executable [\#65](https://github.com/knsv/mermaid/issues/65)
+- Trailing whitespace at the end of lines is not ignored [\#55](https://github.com/knsv/mermaid/issues/55)
+- How do I do comments? [\#47](https://github.com/knsv/mermaid/issues/47)
+- This characters failed the lexical parsing [\#46](https://github.com/knsv/mermaid/issues/46)
+- tutorial for creating new type of graph/layout [\#44](https://github.com/knsv/mermaid/issues/44)
+- Improve readability with new line as terminator and whitespace [\#38](https://github.com/knsv/mermaid/issues/38)
+- Use classes instead of inline style for easy styling [\#24](https://github.com/knsv/mermaid/issues/24)
+
+**Merged pull requests:**
+
+- Adds Command Line Interface for generating PNGs from mermaid description files [\#69](https://github.com/knsv/mermaid/pull/69) ([fardog](https://github.com/fardog))
+- Allow special symbols for direction along with acronyms [\#66](https://github.com/knsv/mermaid/pull/66) ([vijay40](https://github.com/vijay40))
+
+## [0.2.16](https://github.com/knsv/mermaid/tree/0.2.16) (2014-12-15)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.15...0.2.16)
+
+**Closed issues:**
+
+- Mermaid not rendering properly on Wordpress pages [\#59](https://github.com/knsv/mermaid/issues/59)
+- Improve example page with live demo [\#52](https://github.com/knsv/mermaid/issues/52)
+- Create image file via CLI? [\#48](https://github.com/knsv/mermaid/issues/48)
+- Does not render upon AngularJS Updates [\#45](https://github.com/knsv/mermaid/issues/45)
+- Download link in README.MD doesn't work. [\#42](https://github.com/knsv/mermaid/issues/42)
+- linkStyle usage is not obvious [\#41](https://github.com/knsv/mermaid/issues/41)
+- Move \*.spec.js in src/ to test/ [\#35](https://github.com/knsv/mermaid/issues/35)
+- Lines routed outside visible area [\#19](https://github.com/knsv/mermaid/issues/19)
+
+**Merged pull requests:**
+
+- New grammar will allow statements ending without semicolon as disccused in Issue \#38 [\#63](https://github.com/knsv/mermaid/pull/63) ([vijay40](https://github.com/vijay40))
+- Class based styling [\#62](https://github.com/knsv/mermaid/pull/62) ([bjowes](https://github.com/bjowes))
+- Fix typos [\#60](https://github.com/knsv/mermaid/pull/60) ([sublimino](https://github.com/sublimino))
+- Included .DS_Store in gitignore [\#57](https://github.com/knsv/mermaid/pull/57) ([alvynmcq](https://github.com/alvynmcq))
+- Improves readablity discussed in issue \#38 [\#56](https://github.com/knsv/mermaid/pull/56) ([vijay40](https://github.com/vijay40))
+- Added a linting task for gulp [\#43](https://github.com/knsv/mermaid/pull/43) ([serv](https://github.com/serv))
+
+## [0.2.15](https://github.com/knsv/mermaid/tree/0.2.15) (2014-12-05)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.14...0.2.15)
+
+**Closed issues:**
+
+- Question marks don't render properly with /dist/mermaid.full.min.js [\#30](https://github.com/knsv/mermaid/issues/30)
+- Error with some characters [\#25](https://github.com/knsv/mermaid/issues/25)
+- Provide parse function in browser without `require`? [\#21](https://github.com/knsv/mermaid/issues/21)
+- Better label text support [\#18](https://github.com/knsv/mermaid/issues/18)
+- Cap-cased words break parser [\#8](https://github.com/knsv/mermaid/issues/8)
+
+**Merged pull requests:**
+
+- Include bower_components/ to .gitignore [\#33](https://github.com/knsv/mermaid/pull/33) ([serv](https://github.com/serv))
+- Fixed reference to Git repo. [\#32](https://github.com/knsv/mermaid/pull/32) ([guyellis](https://github.com/guyellis))
+
+## [0.2.14](https://github.com/knsv/mermaid/tree/0.2.14) (2014-12-03)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.13...0.2.14)
+
+## [0.2.13](https://github.com/knsv/mermaid/tree/0.2.13) (2014-12-03)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.10...0.2.13)
+
+**Closed issues:**
+
+- modified init to be applied more than once [\#29](https://github.com/knsv/mermaid/issues/29)
+- Wanted to know build process for the project. [\#28](https://github.com/knsv/mermaid/issues/28)
+- Container support [\#27](https://github.com/knsv/mermaid/issues/27)
+- can not support Chinese description [\#20](https://github.com/knsv/mermaid/issues/20)
+- Node Label text mistaken for Direction [\#17](https://github.com/knsv/mermaid/issues/17)
+- Support unicode chars in labels [\#9](https://github.com/knsv/mermaid/issues/9)
+- Publish to NPM [\#7](https://github.com/knsv/mermaid/issues/7)
+
+## [0.2.10](https://github.com/knsv/mermaid/tree/0.2.10) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.9...0.2.10)
+
+## [0.2.9](https://github.com/knsv/mermaid/tree/0.2.9) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.8...0.2.9)
+
+**Closed issues:**
+
+- Add link to jsbin playground to README [\#11](https://github.com/knsv/mermaid/issues/11)
+- What are the requirements ? [\#10](https://github.com/knsv/mermaid/issues/10)
+
+**Merged pull requests:**
+
+- Allow unicode chars in labels [\#13](https://github.com/knsv/mermaid/pull/13) ([codebeige](https://github.com/codebeige))
+
+## [0.2.8](https://github.com/knsv/mermaid/tree/0.2.8) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.7...0.2.8)
+
+## [0.2.7](https://github.com/knsv/mermaid/tree/0.2.7) (2014-12-01)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.6...0.2.7)
+
+**Closed issues:**
+
+- Provide parser as separate module [\#4](https://github.com/knsv/mermaid/issues/4)
+
+## [0.2.6](https://github.com/knsv/mermaid/tree/0.2.6) (2014-11-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.5...0.2.6)
+
+## [0.2.5](https://github.com/knsv/mermaid/tree/0.2.5) (2014-11-27)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.4...0.2.5)
+
+**Merged pull requests:**
+
+- Added new shapes! [\#1](https://github.com/knsv/mermaid/pull/1) ([bjowes](https://github.com/bjowes))
+
+## [0.2.4](https://github.com/knsv/mermaid/tree/0.2.4) (2014-11-25)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.3...0.2.4)
+
+## [0.2.3](https://github.com/knsv/mermaid/tree/0.2.3) (2014-11-24)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.2...0.2.3)
+
+## [0.2.2](https://github.com/knsv/mermaid/tree/0.2.2) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.1...0.2.2)
+
+## [0.2.1](https://github.com/knsv/mermaid/tree/0.2.1) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.2.0...0.2.1)
+
+## [0.2.0](https://github.com/knsv/mermaid/tree/0.2.0) (2014-11-22)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.1...0.2.0)
+
+## [0.1.1](https://github.com/knsv/mermaid/tree/0.1.1) (2014-11-17)
+
+[Full Changelog](https://github.com/knsv/mermaid/compare/0.1.0...0.1.1)
+
+## [0.1.0](https://github.com/knsv/mermaid/tree/0.1.0) (2014-11-16)
diff --git a/packages/tiny/package.json b/packages/tiny/package.json
index 79dba051b..460f6a2a4 100644
--- a/packages/tiny/package.json
+++ b/packages/tiny/package.json
@@ -1,6 +1,6 @@
{
"name": "@mermaid-js/tiny",
- "version": "11.8.1",
+ "version": "11.9.0",
"description": "Tiny version of mermaid",
"type": "commonjs",
"main": "./dist/mermaid.tiny.js",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ea7a7dd21..8be2d5aca 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -26,8 +26,8 @@ importers:
specifier: ^2.27.12
version: 2.28.1
'@cspell/eslint-plugin':
- specifier: ^8.19.3
- version: 8.19.3(eslint@9.26.0(jiti@2.4.2))
+ specifier: ^8.19.4
+ version: 8.19.4(eslint@9.26.0(jiti@2.4.2))
'@cypress/code-coverage':
specifier: ^3.12.49
version: 3.13.4(@babel/core@7.27.1)(@babel/preset-env@7.27.2(@babel/core@7.27.1))(babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.95.0(esbuild@0.25.0)))(cypress@14.5.1)(webpack@5.95.0(esbuild@0.25.0))
@@ -107,20 +107,20 @@ importers:
specifier: ^9.26.0
version: 9.26.0(jiti@2.4.2)
eslint-config-prettier:
- specifier: ^10.1.1
- version: 10.1.1(eslint@9.26.0(jiti@2.4.2))
+ specifier: ^10.1.8
+ version: 10.1.8(eslint@9.26.0(jiti@2.4.2))
eslint-plugin-cypress:
specifier: ^4.3.0
version: 4.3.0(eslint@9.26.0(jiti@2.4.2))
eslint-plugin-html:
- specifier: ^8.1.2
- version: 8.1.2
+ specifier: ^8.1.3
+ version: 8.1.3
eslint-plugin-jest:
- specifier: ^28.11.0
- version: 28.11.0(@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(jest@30.0.4(@types/node@22.13.5))(typescript@5.7.3)
+ specifier: ^28.14.0
+ version: 28.14.0(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(jest@30.0.4(@types/node@22.13.5))(typescript@5.7.3)
eslint-plugin-jsdoc:
- specifier: ^50.6.9
- version: 50.6.9(eslint@9.26.0(jiti@2.4.2))
+ specifier: ^50.8.0
+ version: 50.8.0(eslint@9.26.0(jiti@2.4.2))
eslint-plugin-json:
specifier: ^4.0.1
version: 4.0.1
@@ -137,8 +137,8 @@ importers:
specifier: ^0.4.0
version: 0.4.0
eslint-plugin-unicorn:
- specifier: ^59.0.0
- version: 59.0.0(eslint@9.26.0(jiti@2.4.2))
+ specifier: ^59.0.1
+ version: 59.0.1(eslint@9.26.0(jiti@2.4.2))
express:
specifier: ^5.1.0
version: 5.1.0
@@ -203,8 +203,8 @@ importers:
specifier: ~5.7.3
version: 5.7.3
typescript-eslint:
- specifier: ^8.32.0
- version: 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ specifier: ^8.38.0
+ version: 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
vite:
specifier: ^7.0.3
version: 7.0.3(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
@@ -449,8 +449,8 @@ importers:
packages/mermaid-zenuml:
dependencies:
'@zenuml/core':
- specifier: ^3.31.1
- version: 3.31.1(typescript@5.7.3)
+ specifier: ^3.35.2
+ version: 3.35.2
devDependencies:
mermaid:
specifier: workspace:^
@@ -909,10 +909,6 @@ packages:
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-validator-identifier@7.27.1':
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
@@ -1522,8 +1518,8 @@ packages:
'@chevrotain/utils@11.0.3':
resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==}
- '@cspell/cspell-bundled-dicts@8.19.3':
- resolution: {integrity: sha512-HRxcvD+fqgq6Ag6K7TMnlsO1Uq2nc3V/ug4huZSKK/+tErB1i/m4N4gkOzO0pFtQsJDhGdlio3Wud2ce6kVpdw==}
+ '@cspell/cspell-bundled-dicts@8.19.4':
+ resolution: {integrity: sha512-2ZRcZP/ncJ5q953o8i+R0fb8+14PDt5UefUNMrFZZHvfTI0jukAASOQeLY+WT6ASZv6CgbPrApAdbppy9FaXYQ==}
engines: {node: '>=18'}
'@cspell/cspell-bundled-dicts@9.1.3':
@@ -1534,32 +1530,32 @@ packages:
resolution: {integrity: sha512-FvzlSQuU+bNeo77v0KrA/lkoe324cHvZNhkx7Dtp1aj01FeBr5Y36gozR3DNY6tewBi6hC7uLeeNg/iSBf6CWg==}
engines: {node: '>=20'}
- '@cspell/cspell-pipe@8.19.3':
- resolution: {integrity: sha512-Z90x+Kbq1P3A7iOsRe6FnsF2nisMKCY6bln03mTvHW0MmT8F69BEZTSZaL4z+kQ0L8qbjthJ+FqbQKYNNbPZpg==}
+ '@cspell/cspell-pipe@8.19.4':
+ resolution: {integrity: sha512-GNAyk+7ZLEcL2fCMT5KKZprcdsq3L1eYy3e38/tIeXfbZS7Sd1R5FXUe6CHXphVWTItV39TvtLiDwN/2jBts9A==}
engines: {node: '>=18'}
'@cspell/cspell-pipe@9.1.3':
resolution: {integrity: sha512-Cns37ml7IaXMWBci9XOqdTkP9nFtOO8+sJ4VvtbVO68Zo8v0vq74ApDbPgGI2HzYtn7Jj2hxQqGIBdLnmrMPyA==}
engines: {node: '>=20'}
- '@cspell/cspell-resolver@8.19.3':
- resolution: {integrity: sha512-hsEx/7q0tDCOFtMmlkpynlApgAWo4/7q846Y1deyDChtIElmS0dfuzdKzv3jvFi3KdTVgJyhJb+o7/OHH2D/4A==}
+ '@cspell/cspell-resolver@8.19.4':
+ resolution: {integrity: sha512-S8vJMYlsx0S1D60glX8H2Jbj4mD8519VjyY8lu3fnhjxfsl2bDFZvF3ZHKsLEhBE+Wh87uLqJDUJQiYmevHjDg==}
engines: {node: '>=18'}
'@cspell/cspell-resolver@9.1.3':
resolution: {integrity: sha512-3h9AkbY+YutBG91fQxeSpfIRT50sfrNQ7IAS0N6fCvJ6z0sXed7UPYwf90NauQp/1lN/bVlHFFAgxDEyG720Yg==}
engines: {node: '>=20'}
- '@cspell/cspell-service-bus@8.19.3':
- resolution: {integrity: sha512-K66Vj8O+SWjPUTFq1wfpq5uoDLmZcB7tY3m154WQa94RNpW+/z9kLXVPxW1FctRXfjxfc7bqfLq4LF6Yiu72fg==}
+ '@cspell/cspell-service-bus@8.19.4':
+ resolution: {integrity: sha512-uhY+v8z5JiUogizXW2Ft/gQf3eWrh5P9036jN2Dm0UiwEopG/PLshHcDjRDUiPdlihvA0RovrF0wDh4ptcrjuQ==}
engines: {node: '>=18'}
'@cspell/cspell-service-bus@9.1.3':
resolution: {integrity: sha512-Ss4cCnkJI3IHDSOQKxhtAfypvZZDzuJeXbZFVimLvO22/8GdVH+vQxAFm3kBY+ACVUAe13MQIYzZxuFHaM9y8g==}
engines: {node: '>=20'}
- '@cspell/cspell-types@8.19.3':
- resolution: {integrity: sha512-q6aUHJSvUe0Bt57djQN7qQ/AVV9O6nVNO7Nj0rZxFsv/73CtUvJseSrpjlZgkHTRCjOL0iRsVG+B8IPaxjczgw==}
+ '@cspell/cspell-types@8.19.4':
+ resolution: {integrity: sha512-ekMWuNlFiVGfsKhfj4nmc8JCA+1ZltwJgxiKgDuwYtR09ie340RfXFF6YRd2VTW5zN7l4F1PfaAaPklVz6utSg==}
engines: {node: '>=18'}
'@cspell/cspell-types@9.1.3':
@@ -1572,18 +1568,12 @@ packages:
'@cspell/dict-al@1.1.0':
resolution: {integrity: sha512-PtNI1KLmYkELYltbzuoztBxfi11jcE9HXBHCpID2lou/J4VMYKJPNqe4ZjVzSI9NYbMnMnyG3gkbhIdx66VSXg==}
- '@cspell/dict-aws@4.0.10':
- resolution: {integrity: sha512-0qW4sI0GX8haELdhfakQNuw7a2pnWXz3VYQA2MpydH2xT2e6EN9DWFpKAi8DfcChm8MgDAogKkoHtIo075iYng==}
-
'@cspell/dict-aws@4.0.12':
resolution: {integrity: sha512-k1F48eYlX+LsCK2QjqpfHBrjNwNwRyut/XsGumyhUXZsm+j9NVuxQaFCjiEwXi81KE0YE3GBVdwSjqhuUOkpnQ==}
'@cspell/dict-bash@4.2.0':
resolution: {integrity: sha512-HOyOS+4AbCArZHs/wMxX/apRkjxg6NDWdt0jF9i9XkvJQUltMwEhyA2TWYjQ0kssBsnof+9amax2lhiZnh3kCg==}
- '@cspell/dict-companies@3.1.15':
- resolution: {integrity: sha512-vnGYTJFrqM9HdtgpZFOThFTjlPyJWqPi0eidMKyZxMKTHhP7yg6mD5X9WPEPvfiysmJYMnA6KKYQEBqoKFPU9g==}
-
'@cspell/dict-companies@3.2.2':
resolution: {integrity: sha512-iIuEBPfWzSQugIOn+OKOVsdfE9UloON5SKl57TbvC//D5mgIwPAMZGYT69yv20cjc5E6oMu353hCV3WFy9XO9A==}
@@ -1611,9 +1601,6 @@ packages:
'@cspell/dict-django@4.1.4':
resolution: {integrity: sha512-fX38eUoPvytZ/2GA+g4bbdUtCMGNFSLbdJJPKX2vbewIQGfgSFJKY56vvcHJKAvw7FopjvgyS/98Ta9WN1gckg==}
- '@cspell/dict-docker@1.1.13':
- resolution: {integrity: sha512-85X+ZC/CPT3ie26DcfeMFkZSNuhS8DlAqPXzAjilHtGE/Nj+QnS3jyBz0spDJOJrjh8wx1+ro2oCK98sbVcztw==}
-
'@cspell/dict-docker@1.1.15':
resolution: {integrity: sha512-wYthMAbEbqDBr9P90VC9aT3zjErrJbUtIr91pDmse7Y5WUvQtAwFhiJHgmNrtx2fZ2idII0eYvpMqoEO+FYFxw==}
@@ -1623,9 +1610,6 @@ packages:
'@cspell/dict-elixir@4.0.7':
resolution: {integrity: sha512-MAUqlMw73mgtSdxvbAvyRlvc3bYnrDqXQrx5K9SwW8F7fRYf9V4vWYFULh+UWwwkqkhX9w03ZqFYRTdkFku6uA==}
- '@cspell/dict-en-common-misspellings@2.0.10':
- resolution: {integrity: sha512-80mXJLtr0tVEtzowrI7ycVae/ULAYImZUlr0kUTpa8i57AUk7Zy3pYBs44EYIKW7ZC9AHu4Qjjfq4vriAtyTDQ==}
-
'@cspell/dict-en-common-misspellings@2.1.3':
resolution: {integrity: sha512-v1I97Hr1OrK+mwHsVzbY4vsPxx6mA5quhxzanF6XuRofz00wH4HPz8Q3llzRHxka5Wl/59gyan04UkUrvP4gdA==}
@@ -1638,12 +1622,6 @@ packages:
'@cspell/dict-en_us@4.4.14':
resolution: {integrity: sha512-3JYC4XTc1I88ZC1SlZE9MssWljgJ1SmEVSfA8JiQDY5Mv7X9zo7Jvwjjq795oIJTkmdIW9yNX8ikKRt+cV7CIQ==}
- '@cspell/dict-en_us@4.4.3':
- resolution: {integrity: sha512-KnsS19kL5lYEk2P9xGNwvZF5ZbDYv1Tkv4BKIx4n4jKlgUj9iHv7L0Q+2cCvllKDGjuP715G/3Rg0McKdHR1Xg==}
-
- '@cspell/dict-filetypes@3.0.11':
- resolution: {integrity: sha512-bBtCHZLo7MiSRUqx5KEiPdGOmXIlDGY+L7SJEtRWZENpAKE+96rT7hj+TUUYWBbCzheqHr0OXZJFEKDgsG/uZg==}
-
'@cspell/dict-filetypes@3.0.13':
resolution: {integrity: sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==}
@@ -1662,15 +1640,9 @@ packages:
'@cspell/dict-gaming-terms@1.1.1':
resolution: {integrity: sha512-tb8GFxjTLDQstkJcJ90lDqF4rKKlMUKs5/ewePN9P+PYRSehqDpLI5S5meOfPit8LGszeOrjUdBQ4zXo7NpMyQ==}
- '@cspell/dict-git@3.0.4':
- resolution: {integrity: sha512-C44M+m56rYn6QCsLbiKiedyPTMZxlDdEYAsPwwlL5bhMDDzXZ3Ic8OCQIhMbiunhCOJJT+er4URmOmM+sllnjg==}
-
'@cspell/dict-git@3.0.7':
resolution: {integrity: sha512-odOwVKgfxCQfiSb+nblQZc4ErXmnWEnv8XwkaI4sNJ7cNmojnvogYVeMqkXPjvfrgEcizEEA4URRD2Ms5PDk1w==}
- '@cspell/dict-golang@6.0.20':
- resolution: {integrity: sha512-b7nd9XXs+apMMzNSWorjirQsbmlwcTC0ViQJU8u+XNose3z0y7oNeEpbTPTVoN1+1sO9aOHuFwfwoOMFCDS14Q==}
-
'@cspell/dict-golang@6.0.23':
resolution: {integrity: sha512-oXqUh/9dDwcmVlfUF5bn3fYFqbUzC46lXFQmi5emB0vYsyQXdNWsqi6/yH3uE7bdRE21nP7Yo0mR1jjFNyLamg==}
@@ -1692,9 +1664,6 @@ packages:
'@cspell/dict-julia@1.1.0':
resolution: {integrity: sha512-CPUiesiXwy3HRoBR3joUseTZ9giFPCydSKu2rkh6I2nVjXnl5vFHzOMLXpbF4HQ1tH2CNfnDbUndxD+I+7eL9w==}
- '@cspell/dict-k8s@1.0.10':
- resolution: {integrity: sha512-313haTrX9prep1yWO7N6Xw4D6tvUJ0Xsx+YhCP+5YrrcIKoEw5Rtlg8R4PPzLqe6zibw6aJ+Eqq+y76Vx5BZkw==}
-
'@cspell/dict-k8s@1.0.12':
resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==}
@@ -1713,14 +1682,6 @@ packages:
'@cspell/dict-makefile@1.0.4':
resolution: {integrity: sha512-E4hG/c0ekPqUBvlkrVvzSoAA+SsDA9bLi4xSV3AXHTVru7Y2bVVGMPtpfF+fI3zTkww/jwinprcU1LSohI3ylw==}
- '@cspell/dict-markdown@2.0.10':
- resolution: {integrity: sha512-vtVa6L/84F9sTjclTYDkWJF/Vx2c5xzxBKkQp+CEFlxOF2SYgm+RSoEvAvg5vj4N5kuqR4350ZlY3zl2eA3MXw==}
- peerDependencies:
- '@cspell/dict-css': ^4.0.17
- '@cspell/dict-html': ^4.0.11
- '@cspell/dict-html-symbol-entities': ^4.0.3
- '@cspell/dict-typescript': ^3.2.1
-
'@cspell/dict-markdown@2.0.12':
resolution: {integrity: sha512-ufwoliPijAgWkD/ivAMC+A9QD895xKiJRF/fwwknQb7kt7NozTLKFAOBtXGPJAB4UjhGBpYEJVo2elQ0FCAH9A==}
peerDependencies:
@@ -1735,9 +1696,6 @@ packages:
'@cspell/dict-node@5.0.7':
resolution: {integrity: sha512-ZaPpBsHGQCqUyFPKLyCNUH2qzolDRm1/901IO8e7btk7bEDF56DN82VD43gPvD4HWz3yLs/WkcLa01KYAJpnOw==}
- '@cspell/dict-npm@5.2.1':
- resolution: {integrity: sha512-aqcit8e/Hsnsmd2QoDDAaai+l80bQItwLggmlio/e5NTAfUu7qIVmx+/VFtUlXQH6sMKp+aAvxPC3K8tH86+qg==}
-
'@cspell/dict-npm@5.2.11':
resolution: {integrity: sha512-ImgO82P2rQlE7gjOZSmBT/ZHuR1qGklkt7WINwT73qaKepgz14k/xq1qYzQScl15Vuc3cUXi5OZNqYlTiquIHQ==}
@@ -1750,9 +1708,6 @@ packages:
'@cspell/dict-public-licenses@2.0.13':
resolution: {integrity: sha512-1Wdp/XH1ieim7CadXYE7YLnUlW0pULEjVl9WEeziZw3EKCAw8ZI8Ih44m4bEa5VNBLnuP5TfqC4iDautAleQzQ==}
- '@cspell/dict-python@4.2.17':
- resolution: {integrity: sha512-xqMKfVc8d7yDaOChFdL2uWAN3Mw9qObB/Zr6t5w1OHbi23gWs7V1lI9d0mXAoqSK6N3mosbum4OIq/FleQDnlw==}
-
'@cspell/dict-python@4.2.19':
resolution: {integrity: sha512-9S2gTlgILp1eb6OJcVZeC8/Od83N8EqBSg5WHVpx97eMMJhifOzePkE0kDYjyHMtAFznCQTUu0iQEJohNQ5B0A==}
@@ -1771,9 +1726,6 @@ packages:
'@cspell/dict-shell@1.1.0':
resolution: {integrity: sha512-D/xHXX7T37BJxNRf5JJHsvziFDvh23IF/KvkZXNSh8VqcRdod3BAz9VGHZf6VDqcZXr1VRqIYR3mQ8DSvs3AVQ==}
- '@cspell/dict-software-terms@5.0.5':
- resolution: {integrity: sha512-ZjAOa8FI8/JrxaRqKT3eS7AQXFjU174xxQoKYMkmdwSyNIj7WUCAg10UeLqeMjFVv36zIO0Hm0dD2+Bvn18SLA==}
-
'@cspell/dict-software-terms@5.1.4':
resolution: {integrity: sha512-zeinnVFfha+Snh8hMk4hRJTYWNLcRNaHRSvMMVe1DU8oljb1agfq6ouBt/uypIzwgGgAopPz9ArGyc/gVn9y8w==}
@@ -1786,53 +1738,47 @@ packages:
'@cspell/dict-swift@2.0.5':
resolution: {integrity: sha512-3lGzDCwUmnrfckv3Q4eVSW3sK3cHqqHlPprFJZD4nAqt23ot7fic5ALR7J4joHpvDz36nHX34TgcbZNNZOC/JA==}
- '@cspell/dict-terraform@1.1.1':
- resolution: {integrity: sha512-07KFDwCU7EnKl4hOZLsLKlj6Zceq/IsQ3LRWUyIjvGFfZHdoGtFdCp3ZPVgnFaAcd/DKv+WVkrOzUBSYqHopQQ==}
-
'@cspell/dict-terraform@1.1.3':
resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==}
- '@cspell/dict-typescript@3.2.1':
- resolution: {integrity: sha512-jdnKg4rBl75GUBTsUD6nTJl7FGvaIt5wWcWP7TZSC3rV1LfkwvbUiY3PiGpfJlAIdnLYSeFWIpYU9gyVgz206w==}
-
'@cspell/dict-typescript@3.2.3':
resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==}
'@cspell/dict-vue@3.0.4':
resolution: {integrity: sha512-0dPtI0lwHcAgSiQFx8CzvqjdoXROcH+1LyqgROCpBgppommWpVhbQ0eubnKotFEXgpUCONVkeZJ6Ql8NbTEu+w==}
- '@cspell/dynamic-import@8.19.3':
- resolution: {integrity: sha512-haAl+/HOLAPc6Cs7YkbpyIK1Htomp3/D42scl2FCe4PU860uFyjyOWeq99u2wetDI/SQn1Ry3sSOKRCjIGlHWA==}
+ '@cspell/dynamic-import@8.19.4':
+ resolution: {integrity: sha512-0LLghC64+SiwQS20Sa0VfFUBPVia1rNyo0bYeIDoB34AA3qwguDBVJJkthkpmaP1R2JeR/VmxmJowuARc4ZUxA==}
engines: {node: '>=18.0'}
'@cspell/dynamic-import@9.1.3':
resolution: {integrity: sha512-+8PxTslsh+oTxmhYdnfQZ/brYGFAnfqLR9xotWE4Ks3HoaLOhZsp6FF9kvlEp/gNOjpyhHn1UhT/Gr5fT4+QhQ==}
engines: {node: '>=20'}
- '@cspell/eslint-plugin@8.19.3':
- resolution: {integrity: sha512-5eZQYF5rG2WRgEpZM80XsYr0/LWx/VNRrVRIGHphd0geWLK8z/THyRCN8MV9EWn6txXIDZW2mEU2VWvv5rOAUg==}
+ '@cspell/eslint-plugin@8.19.4':
+ resolution: {integrity: sha512-ICXH38a0HeOcglkVUL4uE3y8jkQ1L14+tdMK+AcE1Hq/LvsA1iEXFRoEw0IGhO/yP98K8Nvj5CuN+7RNDbLYMA==}
engines: {node: '>=18'}
peerDependencies:
eslint: ^7 || ^8 || ^9
- '@cspell/filetypes@8.19.3':
- resolution: {integrity: sha512-j6WEjuvh3t2zsBUvZm6leGhcpQtuCMroSjyGLSE7xNM5SRYOdd+KkO81erwyA/yAweTGlI6wYyXofUd+mRVFMw==}
+ '@cspell/filetypes@8.19.4':
+ resolution: {integrity: sha512-D9hOCMyfKtKjjqQJB8F80PWsjCZhVGCGUMiDoQpcta0e+Zl8vHgzwaC0Ai4QUGBhwYEawHGiWUd7Y05u/WXiNQ==}
engines: {node: '>=18'}
'@cspell/filetypes@9.1.3':
resolution: {integrity: sha512-HRJEggDo6OJJmCc/gq7oriMqkqVDema+oLpGBh1a/M7ulw+CzoHkOa//1ohpAJh5KsWj9Tej9Va4BUZ/SaCwUA==}
engines: {node: '>=20'}
- '@cspell/strong-weak-map@8.19.3':
- resolution: {integrity: sha512-IKzzbVDEjAprH0vH16heKbqCMqNtdU4tZXbp7mjJ3P3Xodl4csERrFRNqSwlyQMqfpjVU5n+wO7BSq/2S/uzRg==}
+ '@cspell/strong-weak-map@8.19.4':
+ resolution: {integrity: sha512-MUfFaYD8YqVe32SQaYLI24/bNzaoyhdBIFY5pVrvMo1ZCvMl8AlfI2OcBXvcGb5aS5z7sCNCJm11UuoYbLI1zw==}
engines: {node: '>=18'}
'@cspell/strong-weak-map@9.1.3':
resolution: {integrity: sha512-+96SI9R6TOY+xGBOK5LiOgX/W/9gAKus1Cvngh2LdtDVZwgVqpqvm5LoXxLhUT+Vs5UsndRBzblSdNpziSwZtA==}
engines: {node: '>=20'}
- '@cspell/url@8.19.3':
- resolution: {integrity: sha512-EATITl9WlmOuhdlUluHlYXCV7LFPuSw9CZ4gejPpjyDwQJUQg4ktHVNfy3hJ5I3h4SEiW0GWd68Gd61McmTO2A==}
+ '@cspell/url@8.19.4':
+ resolution: {integrity: sha512-Pa474iBxS+lxsAL4XkETPGIq3EgMLCEb9agj3hAd2VGMTCApaiUvamR4b+uGXIPybN70piFxvzrfoxsG2uIP6A==}
engines: {node: '>=18.0'}
'@cspell/url@9.1.3':
@@ -1931,9 +1877,9 @@ packages:
'@emnapi/wasi-threads@1.0.3':
resolution: {integrity: sha512-8K5IFFsQqF9wQNJptGbS6FNKgUTsSRYnTqNCG1vPP8jFdjSv18n2mQfJpkt2Oibo9iBEzcDnDxNwKTzC7svlJw==}
- '@es-joy/jsdoccomment@0.49.0':
- resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==}
- engines: {node: '>=16'}
+ '@es-joy/jsdoccomment@0.50.2':
+ resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
+ engines: {node: '>=18'}
'@esbuild/aix-ppc64@0.21.5':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
@@ -2433,18 +2379,36 @@ packages:
'@fastify/merge-json-schemas@0.1.1':
resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==}
- '@floating-ui/core@1.6.9':
- resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
+ '@floating-ui/core@1.7.2':
+ resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==}
- '@floating-ui/dom@1.6.13':
- resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
+ '@floating-ui/dom@1.7.2':
+ resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==}
+
+ '@floating-ui/react-dom@2.1.4':
+ resolution: {integrity: sha512-JbbpPhp38UmXDDAu60RJmbeme37Jbgsm7NrHGgzYYFKmblzRUh6Pa641dII6LsjwF4XlScDrde2UAzDo/b9KPw==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/react@0.26.28':
+ resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/react@0.27.14':
+ resolution: {integrity: sha512-aSf9JXfyXpRQWMbtuW+CJQrnhzHu4Hg1Th9AkvR1o+wSW/vCUVMrtgXaRY5ToV5Fh5w3I7lXJdvlKVvYrQrppw==}
+ peerDependencies:
+ react: '>=17.0.0'
+ react-dom: '>=17.0.0'
+
+ '@floating-ui/utils@0.2.10':
+ resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
'@floating-ui/utils@0.2.9':
resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
- '@floating-ui/vue@1.1.6':
- resolution: {integrity: sha512-XFlUzGHGv12zbgHNk5FN2mUB7ROul3oG2ENdTpWdE+qMFxyNxWSRmsoyhiEnpmabNm6WnUvR1OvJfUfN4ojC1A==}
-
'@gerrit0/mini-shiki@1.27.2':
resolution: {integrity: sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og==}
@@ -2454,11 +2418,12 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- '@headlessui-float/vue@0.14.4':
- resolution: {integrity: sha512-MSyWCxUTueeex+veRCf++q4KM/fa4HOe9HDttzGrtgVDBULkGduFK6ItJh7EHJp2U/dY7qpyDUqp2KCHpCEplw==}
+ '@headlessui/react@2.2.6':
+ resolution: {integrity: sha512-gN5CT8Kf4IWwL04GQOjZ/ZnHMFoeFHZmVSFoDKeTmbtmy9oFqQqJMthdBiO3Pl5LXk2w03fGFLpQV6EW84vjjQ==}
+ engines: {node: '>=10'}
peerDependencies:
- '@headlessui/vue': ^1.0.0
- vue: ^3.0.0
+ react: ^18 || ^19 || ^19.0.0-rc
+ react-dom: ^18 || ^19 || ^19.0.0-rc
'@headlessui/tailwindcss@0.2.2':
resolution: {integrity: sha512-xNe42KjdyA4kfUKLLPGzME9zkH7Q3rOZ5huFihWNWOQFxnItxPB3/67yBI8/qBfY8nwBRx5GHn4VprsoluVMGw==}
@@ -2466,12 +2431,6 @@ packages:
peerDependencies:
tailwindcss: ^3.0 || ^4.0
- '@headlessui/vue@1.7.23':
- resolution: {integrity: sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==}
- engines: {node: '>=10'}
- peerDependencies:
- vue: ^3.2.0
-
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
@@ -2774,10 +2733,6 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@pkgr/core@0.1.1':
- resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
-
'@pkgr/core@0.2.4':
resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
@@ -2785,6 +2740,43 @@ packages:
'@polka/url@1.0.0-next.28':
resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+ '@react-aria/focus@3.21.0':
+ resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
+ '@react-aria/interactions@3.25.4':
+ resolution: {integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
+ '@react-aria/ssr@3.9.10':
+ resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==}
+ engines: {node: '>= 12'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
+ '@react-aria/utils@3.30.0':
+ resolution: {integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
+ '@react-stately/flags@3.1.2':
+ resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==}
+
+ '@react-stately/utils@3.10.8':
+ resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
+ '@react-types/shared@3.31.0':
+ resolution: {integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+
'@rolldown/pluginutils@1.0.0-beta.19':
resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==}
@@ -3104,17 +3096,21 @@ packages:
'@surma/rollup-plugin-off-main-thread@2.2.3':
resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
+ '@swc/helpers@0.5.17':
+ resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
+
'@szmarczak/http-timer@4.0.6':
resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
engines: {node: '>=10'}
- '@tanstack/virtual-core@3.13.0':
- resolution: {integrity: sha512-NBKJP3OIdmZY3COJdWkSonr50FMVIi+aj5ZJ7hI/DTpEKg2RMfo/KvP8A3B/zOSpMgIe52B5E2yn7rryULzA6g==}
-
- '@tanstack/vue-virtual@3.13.0':
- resolution: {integrity: sha512-EPgcTc41KGJAK2N2Ux2PeUnG3cPpdkldTib05nwq+0zdS2Ihpbq8BsWXz/eXPyNc5noDBh1GBgAe36yMYiW6WA==}
+ '@tanstack/react-virtual@3.13.12':
+ resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==}
peerDependencies:
- vue: ^2.7.0 || ^3.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ '@tanstack/virtual-core@3.13.12':
+ resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==}
'@tootallnate/once@2.0.0':
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
@@ -3123,9 +3119,6 @@ packages:
'@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
- '@types/assert@1.5.11':
- resolution: {integrity: sha512-FjS1mxq2dlGr9N4z72/DO+XmyRS3ZZIoVn998MEopAN/OmyN28F4yumRL5pOw2z+hbFLuWGYuF2rrw5p11xM5A==}
-
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -3390,9 +3383,6 @@ packages:
'@types/qs@6.9.16':
resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==}
- '@types/ramda@0.28.25':
- resolution: {integrity: sha512-HrQNqQAGcITpn9HAJFamDxm7iZeeXiP/95pN5OMbNniDjzCCeOHbBKNGmUy8NRi0fhYS+/cXeo91MFC+06gbow==}
-
'@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
@@ -3469,31 +3459,39 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@8.32.0':
- resolution: {integrity: sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==}
+ '@typescript-eslint/eslint-plugin@8.38.0':
+ resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ '@typescript-eslint/parser': ^8.38.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/parser@8.32.0':
- resolution: {integrity: sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==}
+ '@typescript-eslint/parser@8.38.0':
+ resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/scope-manager@8.24.1':
- resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==}
+ '@typescript-eslint/project-service@8.38.0':
+ resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/scope-manager@8.38.0':
+ resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.32.0':
- resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==}
+ '@typescript-eslint/tsconfig-utils@8.38.0':
+ resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/type-utils@8.32.0':
- resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==}
+ '@typescript-eslint/type-utils@8.38.0':
+ resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3503,12 +3501,8 @@ packages:
resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/types@8.24.1':
- resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/types@8.32.0':
- resolution: {integrity: sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==}
+ '@typescript-eslint/types@8.38.0':
+ resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@7.18.0':
@@ -3520,27 +3514,14 @@ packages:
typescript:
optional: true
- '@typescript-eslint/typescript-estree@8.24.1':
- resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/typescript-estree@8.32.0':
- resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==}
+ '@typescript-eslint/typescript-estree@8.38.0':
+ resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.24.1':
- resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <5.8.0'
-
- '@typescript-eslint/utils@8.32.0':
- resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==}
+ '@typescript-eslint/utils@8.38.0':
+ resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3550,12 +3531,8 @@ packages:
resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/visitor-keys@8.24.1':
- resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/visitor-keys@8.32.0':
- resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==}
+ '@typescript-eslint/visitor-keys@8.38.0':
+ resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.3.0':
@@ -3805,11 +3782,6 @@ packages:
'@vitest/utils@3.0.6':
resolution: {integrity: sha512-18ktZpf4GQFTbf9jK543uspU03Q2qya7ZGya5yiZ0Gx0nnnalBvd5ZBislbl2EhLjM8A8rt4OilqKG7QwcGkvQ==}
- '@vue/compat@3.5.13':
- resolution: {integrity: sha512-Q3xRdTPN4l+kddxU98REyUBgvc0meAo9CefCWE2lW8Fg3dyPn3vSCce52b338ihrJAx1RQQhO5wMWhJ/PAKUpA==}
- peerDependencies:
- vue: 3.5.13
-
'@vue/compiler-core@3.5.13':
resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
@@ -3822,9 +3794,6 @@ packages:
'@vue/compiler-ssr@3.5.13':
resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
- '@vue/devtools-api@6.6.4':
- resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
-
'@vue/devtools-api@7.7.2':
resolution: {integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==}
@@ -4014,9 +3983,9 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
- '@zenuml/core@3.31.1':
- resolution: {integrity: sha512-gfbCIp2+AmdT9tUmRiRmMtxWHhvlo0VieGICgxFkvmcJxfNXRokpUrlW1H2NDcD+n9vYy6KjNSoYAxiph/9Irw==}
- engines: {node: '>=12.0.0'}
+ '@zenuml/core@3.35.2':
+ resolution: {integrity: sha512-g9pX+id6xrZ+pgFiBvBJjol7KyqoHJPsVofiHThSn04bDBVdZLxHtA3KxwRdrggwyRDsK2DLLB1+YA0kITuKtQ==}
+ engines: {node: '>=20'}
JSONSelect@0.4.0:
resolution: {integrity: sha512-VRLR3Su35MH+XV2lrvh9O7qWoug/TUyj9tLDjn9rtpUCNnILLrHjgd/tB0KrhugCxUpj3UqoLqfYb3fLJdIQQQ==}
@@ -4624,6 +4593,9 @@ packages:
resolution: {integrity: sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ==}
engines: {node: ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
clean-regexp@1.0.0:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
@@ -4682,6 +4654,10 @@ packages:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
co@4.6.0:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -4702,9 +4678,17 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ color-name@2.0.0:
+ resolution: {integrity: sha512-SbtvAMWvASO5TE2QP07jHBMXKafgdZz8Vrsrn96fiL+O92/FN/PLARzUW5sKt013fjAprK2d2iCn2hk2Xb5oow==}
+ engines: {node: '>=12.20'}
+
color-string@1.9.1:
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+ color-string@2.0.1:
+ resolution: {integrity: sha512-5z9FbYTZPAo8iKsNEqRNv+OlpBbDcoE+SY9GjLfDUHEfcNNV7tS9eSAlFHEaub/r5tBL9LtskAeq1l9SaoZ5tQ==}
+ engines: {node: '>=18'}
+
color@4.2.3:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
@@ -4848,9 +4832,6 @@ packages:
resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
engines: {node: '>=12.13'}
- core-js-compat@3.41.0:
- resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==}
-
core-js-compat@3.42.0:
resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==}
@@ -4904,16 +4885,16 @@ packages:
resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
engines: {node: '>=8'}
- cspell-config-lib@8.19.3:
- resolution: {integrity: sha512-GjSrLU1KFLVzFa5qQA8DMF04BXW6r3xnfhwHFqU/8tEqtQXxKemGWnc9mt42Ey5hoe366lvhbIoh+vUhGf/IKA==}
+ cspell-config-lib@8.19.4:
+ resolution: {integrity: sha512-LtFNZEWVrnpjiTNgEDsVN05UqhhJ1iA0HnTv4jsascPehlaUYVoyucgNbFeRs6UMaClJnqR0qT9lnPX+KO1OLg==}
engines: {node: '>=18'}
cspell-config-lib@9.1.3:
resolution: {integrity: sha512-B3DdOTZNIOQahSkOYqaq2fOc8fq/jFkrOFd36kge/GAyEpY2Um/Kp/GQ6caOcev+ju0h3iGaO24OLCx6QJ3YoQ==}
engines: {node: '>=20'}
- cspell-dictionary@8.19.3:
- resolution: {integrity: sha512-tycnHhLHvqKl4a2hVg/tIIai0wmcHHSAlgBAXAnSl+0g2DRrQ5GDT+9tHJ8B373o62jD8f5jHwbfJrLgHiNXWg==}
+ cspell-dictionary@8.19.4:
+ resolution: {integrity: sha512-lr8uIm7Wub8ToRXO9f6f7in429P1Egm3I+Ps3ZGfWpwLTCUBnHvJdNF/kQqF7PL0Lw6acXcjVWFYT7l2Wdst2g==}
engines: {node: '>=18'}
cspell-dictionary@9.1.3:
@@ -4925,16 +4906,16 @@ packages:
engines: {node: '>=20'}
hasBin: true
- cspell-glob@8.19.3:
- resolution: {integrity: sha512-Fv4coZmCmqaNq2UfXhVqQbHschhAcm3rwoxPyBqQcDYpvCQ4Q2+qnHQkK1nAxmDjus4KFM/QKrBoxSlD90bD9g==}
+ cspell-glob@8.19.4:
+ resolution: {integrity: sha512-042uDU+RjAz882w+DXKuYxI2rrgVPfRQDYvIQvUrY1hexH4sHbne78+OMlFjjzOCEAgyjnm1ktWUCCmh08pQUw==}
engines: {node: '>=18'}
cspell-glob@9.1.3:
resolution: {integrity: sha512-If7gSgbWlUhLcmNA9zPflWzdUZs4wyRKB/Ze584wrht7zJR4yJm2Rptk2+M8kXEhx3zYS6UGhSL0alPbVAbjgQ==}
engines: {node: '>=20'}
- cspell-grammar@8.19.3:
- resolution: {integrity: sha512-5VJjqTPRpJZpQvoGj0W88yo0orY/YVuG5P8NVIwnfMAMRAnw2PAb7fsDydO9bPdFKdGPQ4CWoO++ed0g/Ra6jQ==}
+ cspell-grammar@8.19.4:
+ resolution: {integrity: sha512-lzWgZYTu/L7DNOHjxuKf8H7DCXvraHMKxtFObf8bAzgT+aBmey5fW2LviXUkZ2Lb2R0qQY+TJ5VIGoEjNf55ow==}
engines: {node: '>=18'}
hasBin: true
@@ -4943,24 +4924,24 @@ packages:
engines: {node: '>=20'}
hasBin: true
- cspell-io@8.19.3:
- resolution: {integrity: sha512-kJa4ZQdr6QwFEo3TxcyXBLAs2DiogrdtYa4tK87Wzyg3+Am1l7Z9AN8gZWQ+tZIi3BC0FYj4PsBdZ4qdmcY98g==}
+ cspell-io@8.19.4:
+ resolution: {integrity: sha512-W48egJqZ2saEhPWf5ftyighvm4mztxEOi45ILsKgFikXcWFs0H0/hLwqVFeDurgELSzprr12b6dXsr67dV8amg==}
engines: {node: '>=18'}
cspell-io@9.1.3:
resolution: {integrity: sha512-fdgAVrthOY1pPsBZHWVjEVn6uHMAshj2n75eu2rvUd6EcmMuLR13EcIXHoMcQo/1Az05x2UgG7HuK+0MuRcikQ==}
engines: {node: '>=20'}
- cspell-lib@8.19.3:
- resolution: {integrity: sha512-tVxrZYG7VCjjzARoTBQ7F/3FCjIGbzN0YbFcB3g4KLvbEuH83uLXm2MNdN9yDMaiD1XZ0CzP14eKiwpSMT7tjQ==}
+ cspell-lib@8.19.4:
+ resolution: {integrity: sha512-NwfdCCYtIBNQuZcoMlMmL3HSv2olXNErMi/aOTI9BBAjvCHjhgX5hbHySMZ0NFNynnN+Mlbu5kooJ5asZeB3KA==}
engines: {node: '>=18'}
cspell-lib@9.1.3:
resolution: {integrity: sha512-egESsnErAPtC/wuqbHWW28eRKChkg5h+vFQQuZ0iThuOSZ65jeSM0ESOt8W3TH2JD7EGo2pvPED/7rZjjnMIcQ==}
engines: {node: '>=20'}
- cspell-trie-lib@8.19.3:
- resolution: {integrity: sha512-Z33vT0M/Vi10L9XaxKPTQu0AA0nmq91QWY5CzBymZY7LhOf6yGYcCgoTHluQms8YLCWaiX9pgTOF2/W1wlNiVg==}
+ cspell-trie-lib@8.19.4:
+ resolution: {integrity: sha512-yIPlmGSP3tT3j8Nmu+7CNpkPh/gBO2ovdnqNmZV+LNtQmVxqFd2fH7XvR1TKjQyctSH1ip0P5uIdJmzY1uhaYg==}
engines: {node: '>=18'}
cspell-trie-lib@9.1.3:
@@ -5441,9 +5422,6 @@ packages:
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
- dom-to-image-more@2.16.0:
- resolution: {integrity: sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==}
-
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
@@ -5454,8 +5432,8 @@ packages:
dompurify@3.2.5:
resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==}
- domutils@3.1.0:
- resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dotenv@16.4.7:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
@@ -5544,6 +5522,10 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
+ entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+
env-paths@3.0.0:
resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -5648,8 +5630,8 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
- eslint-config-prettier@10.1.1:
- resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==}
+ eslint-config-prettier@10.1.8:
+ resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
@@ -5659,12 +5641,12 @@ packages:
peerDependencies:
eslint: '>=9'
- eslint-plugin-html@8.1.2:
- resolution: {integrity: sha512-pbRchDV2SmqbCi/Ev/q3aAikzG9BcFe0IjjqjtMn8eTLq71ZUggyJB6CDmuwGAXmYZHrXI12XTfCqvgcnPRqGw==}
+ eslint-plugin-html@8.1.3:
+ resolution: {integrity: sha512-cnCdO7yb/jrvgSJJAfRkGDOwLu1AOvNdw8WCD6nh/2C4RnxuI4tz6QjMEAmmSiHSeugq/fXcIO8yBpIBQrMZCg==}
engines: {node: '>=16.0.0'}
- eslint-plugin-jest@28.11.0:
- resolution: {integrity: sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==}
+ eslint-plugin-jest@28.14.0:
+ resolution: {integrity: sha512-P9s/qXSMTpRTerE2FQ0qJet2gKbcGyFTPAJipoKxmWqR6uuFqIqk8FuEfg5yBieOezVrEfAMZrEwJ6yEp+1MFQ==}
engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/eslint-plugin': ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -5676,8 +5658,8 @@ packages:
jest:
optional: true
- eslint-plugin-jsdoc@50.6.9:
- resolution: {integrity: sha512-7/nHu3FWD4QRG8tCVqcv+BfFtctUtEDWc29oeDXB4bwmDM2/r1ndl14AG/2DUntdqH7qmpvdemJKwb3R97/QEw==}
+ eslint-plugin-jsdoc@50.8.0:
+ resolution: {integrity: sha512-UyGb5755LMFWPrZTEqqvTJ3urLz1iqj+bYOHFNag+sw3NvaMWP9K2z+uIn37XfNALmQLQyrBlJ5mkiVPL7ADEg==}
engines: {node: '>=18'}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
@@ -5705,8 +5687,8 @@ packages:
eslint-plugin-tsdoc@0.4.0:
resolution: {integrity: sha512-MT/8b4aKLdDClnS8mP3R/JNjg29i0Oyqd/0ym6NnQf+gfKbJJ4ZcSh2Bs1H0YiUMTBwww5JwXGTWot/RwyJ7aQ==}
- eslint-plugin-unicorn@59.0.0:
- resolution: {integrity: sha512-7IEeqkymGa7tr6wTWS4DolfXnfcE3QjcD0g7I+qCfV5GPMvVsFsLT7zTIYvnudqwAm5nWekdGIOTTXA93Sz9Ow==}
+ eslint-plugin-unicorn@59.0.1:
+ resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==}
engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0}
peerDependencies:
eslint: '>=9.22.0'
@@ -5727,6 +5709,10 @@ packages:
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint-visitor-keys@4.2.1:
+ resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint@9.26.0:
resolution: {integrity: sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -5994,9 +5980,6 @@ packages:
resolution: {integrity: sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==}
engines: {node: '>=18'}
- file-saver@2.0.5:
- resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
-
filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
@@ -6434,8 +6417,8 @@ packages:
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
- htmlparser2@9.1.0:
- resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==}
+ htmlparser2@10.0.0:
+ resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==}
http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
@@ -6537,6 +6520,9 @@ packages:
resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==}
engines: {node: '>= 4'}
+ immer@10.1.1:
+ resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -7069,6 +7055,18 @@ packages:
joi@17.13.3:
resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==}
+ jotai@2.12.5:
+ resolution: {integrity: sha512-G8m32HW3lSmcz/4mbqx0hgJIQ0ekndKWiYP7kWVKi0p6saLXdSoye+FZiOFyonnd7Q482LCzm8sMDl7Ar1NWDw==}
+ engines: {node: '>=12.20.0'}
+ peerDependencies:
+ '@types/react': '>=17.0.0'
+ react: '>=17.0.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react:
+ optional: true
+
jpeg-js@0.4.4:
resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
@@ -8045,6 +8043,9 @@ packages:
pako@1.0.11:
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+ pako@2.1.0:
+ resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
+
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -8056,14 +8057,16 @@ packages:
parse-entities@2.0.0:
resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
- parse-imports@2.2.1:
- resolution: {integrity: sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==}
- engines: {node: '>= 18'}
+ parse-imports-exports@0.2.4:
+ resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==}
parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse-statements@1.0.11:
+ resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==}
+
parse5@7.2.1:
resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
@@ -8193,10 +8196,6 @@ packages:
resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==}
hasBin: true
- pirates@4.0.6:
- resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
- engines: {node: '>= 6'}
-
pirates@4.0.7:
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines: {node: '>= 6'}
@@ -8419,6 +8418,10 @@ packages:
quote-unquote@1.0.0:
resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==}
+ radash@12.1.1:
+ resolution: {integrity: sha512-h36JMxKRqrAxVD8201FrCpyeNuUY9Y5zZwujr20fFO77tpUtGa6EZzfKw/3WaiBX95fq7+MpsuMLNdSnORAwSA==}
+ engines: {node: '>=14.18.0'}
+
railroad-diagrams@1.0.0:
resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==}
@@ -8447,9 +8450,18 @@ packages:
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
hasBin: true
+ react-dom@19.1.0:
+ resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
+ peerDependencies:
+ react: ^19.1.0
+
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react@19.1.0:
+ resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
+ engines: {node: '>=0.10.0'}
+
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@@ -8734,6 +8746,9 @@ packages:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
+ scheduler@0.26.0:
+ resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
+
schema-utils@3.3.0:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines: {node: '>= 10.13.0'}
@@ -8920,9 +8935,6 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
- slashes@3.0.12:
- resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==}
-
slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -9204,21 +9216,16 @@ packages:
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
- synckit@0.11.4:
- resolution: {integrity: sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==}
- engines: {node: ^14.18.0 || >=16.0.0}
-
synckit@0.11.8:
resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==}
engines: {node: ^14.18.0 || >=16.0.0}
- synckit@0.9.2:
- resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
- engines: {node: ^14.18.0 || >=16.0.0}
-
tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
+ tailwind-merge@3.3.1:
+ resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
+
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
engines: {node: '>=14.0.0'}
@@ -9407,12 +9414,6 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
- ts-api-utils@2.0.1:
- resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
- engines: {node: '>=18.12'}
- peerDependencies:
- typescript: '>=4.8.4'
-
ts-api-utils@2.1.0:
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
engines: {node: '>=18.12'}
@@ -9426,9 +9427,6 @@ packages:
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- ts-toolbelt@6.15.5:
- resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==}
-
tsconfig-paths@4.2.0:
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
engines: {node: '>=6'}
@@ -9519,8 +9517,8 @@ packages:
peerDependencies:
typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x
- typescript-eslint@8.32.0:
- resolution: {integrity: sha512-UMq2kxdXCzinFFPsXc9o2ozIpYCCOiEC46MG3yEh5Vipq6BO27otTtEBZA1fQ66DulEUgE97ucQ/3YY66CPg0A==}
+ typescript-eslint@8.38.0:
+ resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -9684,6 +9682,11 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ use-sync-external-store@1.5.0:
+ resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -9971,17 +9974,6 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
- vue-demi@0.14.10:
- resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
- engines: {node: '>=12'}
- hasBin: true
- peerDependencies:
- '@vue/composition-api': ^1.0.0-rc.1
- vue: ^3.0.0-0 || ^2.6.0
- peerDependenciesMeta:
- '@vue/composition-api':
- optional: true
-
vue-flow-layout@0.1.1:
resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==}
peerDependencies:
@@ -9995,11 +9987,6 @@ packages:
typescript:
optional: true
- vuex@4.1.0:
- resolution: {integrity: sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==}
- peerDependencies:
- vue: ^3.2.0
-
w3c-xmlserializer@5.0.0:
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines: {node: '>=18'}
@@ -10312,11 +10299,6 @@ packages:
engines: {node: '>= 14'}
hasBin: true
- yaml@2.7.1:
- resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
- engines: {node: '>= 14'}
- hasBin: true
-
yaml@2.8.0:
resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
engines: {node: '>= 14.6'}
@@ -10845,7 +10827,7 @@ snapshots:
'@babel/traverse': 7.27.1
'@babel/types': 7.27.1
convert-source-map: 2.0.0
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -10865,7 +10847,7 @@ snapshots:
'@babel/traverse': 7.28.0
'@babel/types': 7.28.0
convert-source-map: 2.0.0
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -11058,8 +11040,6 @@ snapshots:
'@babel/helper-string-parser@7.27.1': {}
- '@babel/helper-validator-identifier@7.25.9': {}
-
'@babel/helper-validator-identifier@7.27.1': {}
'@babel/helper-validator-option@7.27.1': {}
@@ -12110,7 +12090,7 @@ snapshots:
'@babel/parser': 7.27.2
'@babel/template': 7.27.2
'@babel/types': 7.27.1
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -12123,7 +12103,7 @@ snapshots:
'@babel/parser': 7.28.0
'@babel/template': 7.27.2
'@babel/types': 7.28.0
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -12322,65 +12302,65 @@ snapshots:
'@chevrotain/utils@11.0.3': {}
- '@cspell/cspell-bundled-dicts@8.19.3':
+ '@cspell/cspell-bundled-dicts@8.19.4':
dependencies:
'@cspell/dict-ada': 4.1.0
'@cspell/dict-al': 1.1.0
- '@cspell/dict-aws': 4.0.10
+ '@cspell/dict-aws': 4.0.12
'@cspell/dict-bash': 4.2.0
- '@cspell/dict-companies': 3.1.15
+ '@cspell/dict-companies': 3.2.2
'@cspell/dict-cpp': 6.0.8
'@cspell/dict-cryptocurrencies': 5.0.4
'@cspell/dict-csharp': 4.0.6
'@cspell/dict-css': 4.0.17
'@cspell/dict-dart': 2.3.0
- '@cspell/dict-data-science': 2.0.8
+ '@cspell/dict-data-science': 2.0.9
'@cspell/dict-django': 4.1.4
- '@cspell/dict-docker': 1.1.13
+ '@cspell/dict-docker': 1.1.15
'@cspell/dict-dotnet': 5.0.9
'@cspell/dict-elixir': 4.0.7
- '@cspell/dict-en-common-misspellings': 2.0.10
+ '@cspell/dict-en-common-misspellings': 2.1.3
'@cspell/dict-en-gb': 1.1.33
- '@cspell/dict-en_us': 4.4.3
- '@cspell/dict-filetypes': 3.0.11
+ '@cspell/dict-en_us': 4.4.14
+ '@cspell/dict-filetypes': 3.0.13
'@cspell/dict-flutter': 1.1.0
'@cspell/dict-fonts': 4.0.4
'@cspell/dict-fsharp': 1.1.0
'@cspell/dict-fullstack': 3.2.6
'@cspell/dict-gaming-terms': 1.1.1
- '@cspell/dict-git': 3.0.4
- '@cspell/dict-golang': 6.0.20
+ '@cspell/dict-git': 3.0.7
+ '@cspell/dict-golang': 6.0.23
'@cspell/dict-google': 1.0.8
'@cspell/dict-haskell': 4.0.5
'@cspell/dict-html': 4.0.11
'@cspell/dict-html-symbol-entities': 4.0.3
'@cspell/dict-java': 5.0.11
'@cspell/dict-julia': 1.1.0
- '@cspell/dict-k8s': 1.0.10
+ '@cspell/dict-k8s': 1.0.12
'@cspell/dict-kotlin': 1.1.0
'@cspell/dict-latex': 4.0.3
'@cspell/dict-lorem-ipsum': 4.0.4
'@cspell/dict-lua': 4.0.7
'@cspell/dict-makefile': 1.0.4
- '@cspell/dict-markdown': 2.0.10(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.1)
+ '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.3)
'@cspell/dict-monkeyc': 1.0.10
'@cspell/dict-node': 5.0.7
- '@cspell/dict-npm': 5.2.1
+ '@cspell/dict-npm': 5.2.11
'@cspell/dict-php': 4.0.14
'@cspell/dict-powershell': 5.0.14
'@cspell/dict-public-licenses': 2.0.13
- '@cspell/dict-python': 4.2.17
+ '@cspell/dict-python': 4.2.19
'@cspell/dict-r': 2.1.0
'@cspell/dict-ruby': 5.0.8
'@cspell/dict-rust': 4.0.11
'@cspell/dict-scala': 5.0.7
'@cspell/dict-shell': 1.1.0
- '@cspell/dict-software-terms': 5.0.5
+ '@cspell/dict-software-terms': 5.1.4
'@cspell/dict-sql': 2.2.0
'@cspell/dict-svelte': 1.0.6
'@cspell/dict-swift': 2.0.5
- '@cspell/dict-terraform': 1.1.1
- '@cspell/dict-typescript': 3.2.1
+ '@cspell/dict-terraform': 1.1.3
+ '@cspell/dict-typescript': 3.2.3
'@cspell/dict-vue': 3.0.4
'@cspell/cspell-bundled-dicts@9.1.3':
@@ -12448,11 +12428,11 @@ snapshots:
dependencies:
'@cspell/cspell-types': 9.1.3
- '@cspell/cspell-pipe@8.19.3': {}
+ '@cspell/cspell-pipe@8.19.4': {}
'@cspell/cspell-pipe@9.1.3': {}
- '@cspell/cspell-resolver@8.19.3':
+ '@cspell/cspell-resolver@8.19.4':
dependencies:
global-directory: 4.0.1
@@ -12460,11 +12440,11 @@ snapshots:
dependencies:
global-directory: 4.0.1
- '@cspell/cspell-service-bus@8.19.3': {}
+ '@cspell/cspell-service-bus@8.19.4': {}
'@cspell/cspell-service-bus@9.1.3': {}
- '@cspell/cspell-types@8.19.3': {}
+ '@cspell/cspell-types@8.19.4': {}
'@cspell/cspell-types@9.1.3': {}
@@ -12472,16 +12452,12 @@ snapshots:
'@cspell/dict-al@1.1.0': {}
- '@cspell/dict-aws@4.0.10': {}
-
'@cspell/dict-aws@4.0.12': {}
'@cspell/dict-bash@4.2.0':
dependencies:
'@cspell/dict-shell': 1.1.0
- '@cspell/dict-companies@3.1.15': {}
-
'@cspell/dict-companies@3.2.2': {}
'@cspell/dict-cpp@6.0.8': {}
@@ -12500,16 +12476,12 @@ snapshots:
'@cspell/dict-django@4.1.4': {}
- '@cspell/dict-docker@1.1.13': {}
-
'@cspell/dict-docker@1.1.15': {}
'@cspell/dict-dotnet@5.0.9': {}
'@cspell/dict-elixir@4.0.7': {}
- '@cspell/dict-en-common-misspellings@2.0.10': {}
-
'@cspell/dict-en-common-misspellings@2.1.3': {}
'@cspell/dict-en-gb-mit@3.1.4': {}
@@ -12518,10 +12490,6 @@ snapshots:
'@cspell/dict-en_us@4.4.14': {}
- '@cspell/dict-en_us@4.4.3': {}
-
- '@cspell/dict-filetypes@3.0.11': {}
-
'@cspell/dict-filetypes@3.0.13': {}
'@cspell/dict-flutter@1.1.0': {}
@@ -12534,12 +12502,8 @@ snapshots:
'@cspell/dict-gaming-terms@1.1.1': {}
- '@cspell/dict-git@3.0.4': {}
-
'@cspell/dict-git@3.0.7': {}
- '@cspell/dict-golang@6.0.20': {}
-
'@cspell/dict-golang@6.0.23': {}
'@cspell/dict-google@1.0.8': {}
@@ -12554,8 +12518,6 @@ snapshots:
'@cspell/dict-julia@1.1.0': {}
- '@cspell/dict-k8s@1.0.10': {}
-
'@cspell/dict-k8s@1.0.12': {}
'@cspell/dict-kotlin@1.1.0': {}
@@ -12568,13 +12530,6 @@ snapshots:
'@cspell/dict-makefile@1.0.4': {}
- '@cspell/dict-markdown@2.0.10(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.1)':
- dependencies:
- '@cspell/dict-css': 4.0.17
- '@cspell/dict-html': 4.0.11
- '@cspell/dict-html-symbol-entities': 4.0.3
- '@cspell/dict-typescript': 3.2.1
-
'@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.17)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.11)(@cspell/dict-typescript@3.2.3)':
dependencies:
'@cspell/dict-css': 4.0.17
@@ -12586,8 +12541,6 @@ snapshots:
'@cspell/dict-node@5.0.7': {}
- '@cspell/dict-npm@5.2.1': {}
-
'@cspell/dict-npm@5.2.11': {}
'@cspell/dict-php@4.0.14': {}
@@ -12596,10 +12549,6 @@ snapshots:
'@cspell/dict-public-licenses@2.0.13': {}
- '@cspell/dict-python@4.2.17':
- dependencies:
- '@cspell/dict-data-science': 2.0.8
-
'@cspell/dict-python@4.2.19':
dependencies:
'@cspell/dict-data-science': 2.0.9
@@ -12614,8 +12563,6 @@ snapshots:
'@cspell/dict-shell@1.1.0': {}
- '@cspell/dict-software-terms@5.0.5': {}
-
'@cspell/dict-software-terms@5.1.4': {}
'@cspell/dict-sql@2.2.0': {}
@@ -12624,19 +12571,15 @@ snapshots:
'@cspell/dict-swift@2.0.5': {}
- '@cspell/dict-terraform@1.1.1': {}
-
'@cspell/dict-terraform@1.1.3': {}
- '@cspell/dict-typescript@3.2.1': {}
-
'@cspell/dict-typescript@3.2.3': {}
'@cspell/dict-vue@3.0.4': {}
- '@cspell/dynamic-import@8.19.3':
+ '@cspell/dynamic-import@8.19.4':
dependencies:
- '@cspell/url': 8.19.3
+ '@cspell/url': 8.19.4
import-meta-resolve: 4.1.0
'@cspell/dynamic-import@9.1.3':
@@ -12644,23 +12587,23 @@ snapshots:
'@cspell/url': 9.1.3
import-meta-resolve: 4.1.0
- '@cspell/eslint-plugin@8.19.3(eslint@9.26.0(jiti@2.4.2))':
+ '@cspell/eslint-plugin@8.19.4(eslint@9.26.0(jiti@2.4.2))':
dependencies:
- '@cspell/cspell-types': 8.19.3
- '@cspell/url': 8.19.3
- cspell-lib: 8.19.3
+ '@cspell/cspell-types': 8.19.4
+ '@cspell/url': 8.19.4
+ cspell-lib: 8.19.4
eslint: 9.26.0(jiti@2.4.2)
- synckit: 0.11.4
+ synckit: 0.11.8
- '@cspell/filetypes@8.19.3': {}
+ '@cspell/filetypes@8.19.4': {}
'@cspell/filetypes@9.1.3': {}
- '@cspell/strong-weak-map@8.19.3': {}
+ '@cspell/strong-weak-map@8.19.4': {}
'@cspell/strong-weak-map@9.1.3': {}
- '@cspell/url@8.19.3': {}
+ '@cspell/url@8.19.4': {}
'@cspell/url@9.1.3': {}
@@ -12790,8 +12733,10 @@ snapshots:
tslib: 2.8.1
optional: true
- '@es-joy/jsdoccomment@0.49.0':
+ '@es-joy/jsdoccomment@0.50.2':
dependencies:
+ '@types/estree': 1.0.7
+ '@typescript-eslint/types': 8.38.0
comment-parser: 1.4.1
esquery: 1.6.0
jsdoc-type-pratt-parser: 4.1.0
@@ -13030,7 +12975,7 @@ snapshots:
'@eslint/config-array@0.20.0':
dependencies:
'@eslint/object-schema': 2.1.6
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -13044,7 +12989,7 @@ snapshots:
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
espree: 10.3.0
globals: 14.0.0
ignore: 5.3.2
@@ -13082,26 +13027,41 @@ snapshots:
dependencies:
fast-deep-equal: 3.1.3
- '@floating-ui/core@1.6.9':
+ '@floating-ui/core@1.7.2':
dependencies:
- '@floating-ui/utils': 0.2.9
+ '@floating-ui/utils': 0.2.10
- '@floating-ui/dom@1.6.13':
+ '@floating-ui/dom@1.7.2':
dependencies:
- '@floating-ui/core': 1.6.9
+ '@floating-ui/core': 1.7.2
+ '@floating-ui/utils': 0.2.10
+
+ '@floating-ui/react-dom@2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/dom': 1.7.2
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@floating-ui/react@0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@floating-ui/utils': 0.2.9
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ tabbable: 6.2.0
+
+ '@floating-ui/react@0.27.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@floating-ui/utils': 0.2.10
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ tabbable: 6.2.0
+
+ '@floating-ui/utils@0.2.10': {}
'@floating-ui/utils@0.2.9': {}
- '@floating-ui/vue@1.1.6(vue@3.5.13(typescript@5.7.3))':
- dependencies:
- '@floating-ui/dom': 1.6.13
- '@floating-ui/utils': 0.2.9
- vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3))
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
-
'@gerrit0/mini-shiki@1.27.2':
dependencies:
'@shikijs/engine-oniguruma': 1.29.2
@@ -13114,25 +13074,20 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
- '@headlessui-float/vue@0.14.4(@headlessui/vue@1.7.23(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))':
+ '@headlessui/react@2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@floating-ui/core': 1.6.9
- '@floating-ui/dom': 1.6.13
- '@floating-ui/vue': 1.1.6(vue@3.5.13(typescript@5.7.3))
- '@headlessui/vue': 1.7.23(vue@3.5.13(typescript@5.7.3))
- vue: 3.5.13(typescript@5.7.3)
- transitivePeerDependencies:
- - '@vue/composition-api'
+ '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@react-aria/focus': 3.21.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@react-aria/interactions': 3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@tanstack/react-virtual': 3.13.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ use-sync-external-store: 1.5.0(react@19.1.0)
'@headlessui/tailwindcss@0.2.2(tailwindcss@3.4.17)':
dependencies:
tailwindcss: 3.4.17
- '@headlessui/vue@1.7.23(vue@3.5.13(typescript@5.7.3))':
- dependencies:
- '@tanstack/vue-virtual': 3.13.0(vue@3.5.13(typescript@5.7.3))
- vue: 3.5.13(typescript@5.7.3)
-
'@humanfs/core@0.19.1': {}
'@humanfs/node@0.16.6':
@@ -13542,12 +13497,59 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@pkgr/core@0.1.1': {}
-
'@pkgr/core@0.2.4': {}
'@polka/url@1.0.0-next.28': {}
+ '@react-aria/focus@3.21.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@react-aria/interactions': 3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@react-aria/utils': 3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@react-types/shared': 3.31.0(react@19.1.0)
+ '@swc/helpers': 0.5.17
+ clsx: 2.1.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@react-aria/interactions@3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@react-aria/ssr': 3.9.10(react@19.1.0)
+ '@react-aria/utils': 3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@react-stately/flags': 3.1.2
+ '@react-types/shared': 3.31.0(react@19.1.0)
+ '@swc/helpers': 0.5.17
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@react-aria/ssr@3.9.10(react@19.1.0)':
+ dependencies:
+ '@swc/helpers': 0.5.17
+ react: 19.1.0
+
+ '@react-aria/utils@3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
+ dependencies:
+ '@react-aria/ssr': 3.9.10(react@19.1.0)
+ '@react-stately/flags': 3.1.2
+ '@react-stately/utils': 3.10.8(react@19.1.0)
+ '@react-types/shared': 3.31.0(react@19.1.0)
+ '@swc/helpers': 0.5.17
+ clsx: 2.1.1
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@react-stately/flags@3.1.2':
+ dependencies:
+ '@swc/helpers': 0.5.17
+
+ '@react-stately/utils@3.10.8(react@19.1.0)':
+ dependencies:
+ '@swc/helpers': 0.5.17
+ react: 19.1.0
+
+ '@react-types/shared@3.31.0(react@19.1.0)':
+ dependencies:
+ react: 19.1.0
+
'@rolldown/pluginutils@1.0.0-beta.19': {}
'@rollup/plugin-babel@5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2)':
@@ -13813,16 +13815,21 @@ snapshots:
magic-string: 0.25.9
string.prototype.matchall: 4.0.12
+ '@swc/helpers@0.5.17':
+ dependencies:
+ tslib: 2.8.1
+
'@szmarczak/http-timer@4.0.6':
dependencies:
defer-to-connect: 2.0.1
- '@tanstack/virtual-core@3.13.0': {}
-
- '@tanstack/vue-virtual@3.13.0(vue@3.5.13(typescript@5.7.3))':
+ '@tanstack/react-virtual@3.13.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)':
dependencies:
- '@tanstack/virtual-core': 3.13.0
- vue: 3.5.13(typescript@5.7.3)
+ '@tanstack/virtual-core': 3.13.12
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+
+ '@tanstack/virtual-core@3.13.12': {}
'@tootallnate/once@2.0.0': {}
@@ -13831,8 +13838,6 @@ snapshots:
tslib: 2.8.1
optional: true
- '@types/assert@1.5.11': {}
-
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.27.2
@@ -14159,10 +14164,6 @@ snapshots:
'@types/qs@6.9.16': {}
- '@types/ramda@0.28.25':
- dependencies:
- ts-toolbelt: 6.15.5
-
'@types/range-parser@1.2.7': {}
'@types/resolve@1.20.2': {}
@@ -14240,50 +14241,59 @@ snapshots:
'@types/node': 22.13.5
optional: true
- '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/scope-manager': 8.32.0
- '@typescript-eslint/type-utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.32.0
+ '@typescript-eslint/parser': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.38.0
+ '@typescript-eslint/type-utils': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 8.38.0
eslint: 9.26.0(jiti@2.4.2)
graphemer: 1.4.0
- ignore: 5.3.2
+ ignore: 7.0.3
natural-compare: 1.4.0
ts-api-utils: 2.1.0(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.32.0
- '@typescript-eslint/types': 8.32.0
- '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.3)
- '@typescript-eslint/visitor-keys': 8.32.0
- debug: 4.4.0
+ '@typescript-eslint/scope-manager': 8.38.0
+ '@typescript-eslint/types': 8.38.0
+ '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/visitor-keys': 8.38.0
+ debug: 4.4.1(supports-color@8.1.1)
eslint: 9.26.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.24.1':
+ '@typescript-eslint/project-service@8.38.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/visitor-keys': 8.24.1
+ '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/types': 8.38.0
+ debug: 4.4.1(supports-color@8.1.1)
+ typescript: 5.7.3
+ transitivePeerDependencies:
+ - supports-color
- '@typescript-eslint/scope-manager@8.32.0':
+ '@typescript-eslint/scope-manager@8.38.0':
dependencies:
- '@typescript-eslint/types': 8.32.0
- '@typescript-eslint/visitor-keys': 8.32.0
+ '@typescript-eslint/types': 8.38.0
+ '@typescript-eslint/visitor-keys': 8.38.0
- '@typescript-eslint/type-utils@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.3)
- '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- debug: 4.4.0
+ typescript: 5.7.3
+
+ '@typescript-eslint/type-utils@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.38.0
+ '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ debug: 4.4.1(supports-color@8.1.1)
eslint: 9.26.0(jiti@2.4.2)
ts-api-utils: 2.1.0(typescript@5.7.3)
typescript: 5.7.3
@@ -14292,9 +14302,7 @@ snapshots:
'@typescript-eslint/types@7.18.0': {}
- '@typescript-eslint/types@8.24.1': {}
-
- '@typescript-eslint/types@8.32.0': {}
+ '@typescript-eslint/types@8.38.0': {}
'@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)':
dependencies:
@@ -14304,58 +14312,35 @@ snapshots:
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.7.1
+ semver: 7.7.2
ts-api-utils: 1.3.0(typescript@5.7.3)
optionalDependencies:
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.24.1(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.38.0(typescript@5.7.3)':
dependencies:
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/visitor-keys': 8.24.1
- debug: 4.4.0
+ '@typescript-eslint/project-service': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/types': 8.38.0
+ '@typescript-eslint/visitor-keys': 8.38.0
+ debug: 4.4.1(supports-color@8.1.1)
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.7.1
- ts-api-utils: 2.0.1(typescript@5.7.3)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/typescript-estree@8.32.0(typescript@5.7.3)':
- dependencies:
- '@typescript-eslint/types': 8.32.0
- '@typescript-eslint/visitor-keys': 8.32.0
- debug: 4.4.0
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.1
+ semver: 7.7.2
ts-api-utils: 2.1.0(typescript@5.7.3)
typescript: 5.7.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.24.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.24.1
- '@typescript-eslint/types': 8.24.1
- '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.7.3)
- eslint: 9.26.0(jiti@2.4.2)
- typescript: 5.7.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.32.0
- '@typescript-eslint/types': 8.32.0
- '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.3)
+ '@typescript-eslint/scope-manager': 8.38.0
+ '@typescript-eslint/types': 8.38.0
+ '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3)
eslint: 9.26.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
@@ -14366,15 +14351,10 @@ snapshots:
'@typescript-eslint/types': 7.18.0
eslint-visitor-keys: 3.4.3
- '@typescript-eslint/visitor-keys@8.24.1':
+ '@typescript-eslint/visitor-keys@8.38.0':
dependencies:
- '@typescript-eslint/types': 8.24.1
- eslint-visitor-keys: 4.2.0
-
- '@typescript-eslint/visitor-keys@8.32.0':
- dependencies:
- '@typescript-eslint/types': 8.32.0
- eslint-visitor-keys: 4.2.0
+ '@typescript-eslint/types': 8.38.0
+ eslint-visitor-keys: 4.2.1
'@ungap/structured-clone@1.3.0': {}
@@ -14666,13 +14646,6 @@ snapshots:
loupe: 3.1.3
tinyrainbow: 2.0.0
- '@vue/compat@3.5.13(vue@3.5.13(typescript@5.7.3))':
- dependencies:
- '@babel/parser': 7.27.2
- estree-walker: 2.0.2
- source-map-js: 1.2.1
- vue: 3.5.13(typescript@5.7.3)
-
'@vue/compiler-core@3.5.13':
dependencies:
'@babel/parser': 7.27.2
@@ -14703,8 +14676,6 @@ snapshots:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
- '@vue/devtools-api@6.6.4': {}
-
'@vue/devtools-api@7.7.2':
dependencies:
'@vue/devtools-kit': 7.7.2
@@ -14921,33 +14892,32 @@ snapshots:
'@xtuc/long@4.2.2': {}
- '@zenuml/core@3.31.1(typescript@5.7.3)':
+ '@zenuml/core@3.35.2':
dependencies:
- '@headlessui-float/vue': 0.14.4(@headlessui/vue@1.7.23(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))
+ '@floating-ui/react': 0.27.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
+ '@headlessui/react': 2.2.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@headlessui/tailwindcss': 0.2.2(tailwindcss@3.4.17)
- '@headlessui/vue': 1.7.23(vue@3.5.13(typescript@5.7.3))
- '@types/assert': 1.5.11
- '@types/ramda': 0.28.25
- '@vue/compat': 3.5.13(vue@3.5.13(typescript@5.7.3))
antlr4: 4.11.0
- color-string: 1.9.1
- dom-to-image-more: 2.16.0
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ color-string: 2.0.1
dompurify: 3.2.5
- file-saver: 2.0.5
highlight.js: 10.7.3
html-to-image: 1.11.13
- lodash: 4.17.21
+ immer: 10.1.1
+ jotai: 2.12.5(react@19.1.0)
marked: 4.3.0
+ pako: 2.1.0
pino: 8.21.0
- postcss: 8.5.3
+ radash: 12.1.1
ramda: 0.28.0
+ react: 19.1.0
+ react-dom: 19.1.0(react@19.1.0)
+ tailwind-merge: 3.3.1
tailwindcss: 3.4.17
- vue: 3.5.13(typescript@5.7.3)
- vuex: 4.1.0(vue@3.5.13(typescript@5.7.3))
transitivePeerDependencies:
- - '@vue/composition-api'
+ - '@types/react'
- ts-node
- - typescript
JSONSelect@0.4.0: {}
@@ -14987,7 +14957,7 @@ snapshots:
agent-base@6.0.2:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -15376,7 +15346,7 @@ snapshots:
dependencies:
bytes: 3.1.2
content-type: 1.0.5
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
http-errors: 2.0.0
iconv-lite: 0.6.3
on-finished: 2.4.1
@@ -15622,6 +15592,10 @@ snapshots:
dependencies:
ansi-colors: 4.1.3
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
clean-regexp@1.0.0:
dependencies:
escape-string-regexp: 1.0.5
@@ -15688,6 +15662,8 @@ snapshots:
clone@1.0.4:
optional: true
+ clsx@2.1.1: {}
+
co@4.6.0: {}
collect-v8-coverage@1.0.2: {}
@@ -15704,11 +15680,17 @@ snapshots:
color-name@1.1.4: {}
+ color-name@2.0.0: {}
+
color-string@1.9.1:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
+ color-string@2.0.1:
+ dependencies:
+ color-name: 2.0.0
+
color@4.2.3:
dependencies:
color-convert: 2.0.1
@@ -15828,10 +15810,6 @@ snapshots:
dependencies:
is-what: 4.1.16
- core-js-compat@3.41.0:
- dependencies:
- browserslist: 4.24.4
-
core-js-compat@3.42.0:
dependencies:
browserslist: 4.24.4
@@ -15901,11 +15879,11 @@ snapshots:
crypto-random-string@2.0.0: {}
- cspell-config-lib@8.19.3:
+ cspell-config-lib@8.19.4:
dependencies:
- '@cspell/cspell-types': 8.19.3
+ '@cspell/cspell-types': 8.19.4
comment-json: 4.2.5
- yaml: 2.7.1
+ yaml: 2.8.0
cspell-config-lib@9.1.3:
dependencies:
@@ -15914,11 +15892,11 @@ snapshots:
smol-toml: 1.4.1
yaml: 2.8.0
- cspell-dictionary@8.19.3:
+ cspell-dictionary@8.19.4:
dependencies:
- '@cspell/cspell-pipe': 8.19.3
- '@cspell/cspell-types': 8.19.3
- cspell-trie-lib: 8.19.3
+ '@cspell/cspell-pipe': 8.19.4
+ '@cspell/cspell-types': 8.19.4
+ cspell-trie-lib: 8.19.4
fast-equals: 5.2.2
cspell-dictionary@9.1.3:
@@ -15934,9 +15912,9 @@ snapshots:
cspell-glob: 9.1.3
cspell-io: 9.1.3
- cspell-glob@8.19.3:
+ cspell-glob@8.19.4:
dependencies:
- '@cspell/url': 8.19.3
+ '@cspell/url': 8.19.4
picomatch: 4.0.2
cspell-glob@9.1.3:
@@ -15944,44 +15922,44 @@ snapshots:
'@cspell/url': 9.1.3
picomatch: 4.0.2
- cspell-grammar@8.19.3:
+ cspell-grammar@8.19.4:
dependencies:
- '@cspell/cspell-pipe': 8.19.3
- '@cspell/cspell-types': 8.19.3
+ '@cspell/cspell-pipe': 8.19.4
+ '@cspell/cspell-types': 8.19.4
cspell-grammar@9.1.3:
dependencies:
'@cspell/cspell-pipe': 9.1.3
'@cspell/cspell-types': 9.1.3
- cspell-io@8.19.3:
+ cspell-io@8.19.4:
dependencies:
- '@cspell/cspell-service-bus': 8.19.3
- '@cspell/url': 8.19.3
+ '@cspell/cspell-service-bus': 8.19.4
+ '@cspell/url': 8.19.4
cspell-io@9.1.3:
dependencies:
'@cspell/cspell-service-bus': 9.1.3
'@cspell/url': 9.1.3
- cspell-lib@8.19.3:
+ cspell-lib@8.19.4:
dependencies:
- '@cspell/cspell-bundled-dicts': 8.19.3
- '@cspell/cspell-pipe': 8.19.3
- '@cspell/cspell-resolver': 8.19.3
- '@cspell/cspell-types': 8.19.3
- '@cspell/dynamic-import': 8.19.3
- '@cspell/filetypes': 8.19.3
- '@cspell/strong-weak-map': 8.19.3
- '@cspell/url': 8.19.3
+ '@cspell/cspell-bundled-dicts': 8.19.4
+ '@cspell/cspell-pipe': 8.19.4
+ '@cspell/cspell-resolver': 8.19.4
+ '@cspell/cspell-types': 8.19.4
+ '@cspell/dynamic-import': 8.19.4
+ '@cspell/filetypes': 8.19.4
+ '@cspell/strong-weak-map': 8.19.4
+ '@cspell/url': 8.19.4
clear-module: 4.1.2
comment-json: 4.2.5
- cspell-config-lib: 8.19.3
- cspell-dictionary: 8.19.3
- cspell-glob: 8.19.3
- cspell-grammar: 8.19.3
- cspell-io: 8.19.3
- cspell-trie-lib: 8.19.3
+ cspell-config-lib: 8.19.4
+ cspell-dictionary: 8.19.4
+ cspell-glob: 8.19.4
+ cspell-grammar: 8.19.4
+ cspell-io: 8.19.4
+ cspell-trie-lib: 8.19.4
env-paths: 3.0.0
fast-equals: 5.2.2
gensequence: 7.0.0
@@ -16018,10 +15996,10 @@ snapshots:
vscode-uri: 3.1.0
xdg-basedir: 5.1.0
- cspell-trie-lib@8.19.3:
+ cspell-trie-lib@8.19.4:
dependencies:
- '@cspell/cspell-pipe': 8.19.3
- '@cspell/cspell-types': 8.19.3
+ '@cspell/cspell-pipe': 8.19.4
+ '@cspell/cspell-types': 8.19.4
gensequence: 7.0.0
cspell-trie-lib@9.1.3:
@@ -16581,8 +16559,6 @@ snapshots:
domhandler: 5.0.3
entities: 4.5.0
- dom-to-image-more@2.16.0: {}
-
domelementtype@2.3.0: {}
domhandler@5.0.3:
@@ -16593,7 +16569,7 @@ snapshots:
optionalDependencies:
'@types/trusted-types': 2.0.7
- domutils@3.1.0:
+ domutils@3.2.2:
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
@@ -16670,6 +16646,8 @@ snapshots:
entities@4.5.0: {}
+ entities@6.0.1: {}
+
env-paths@3.0.0: {}
envinfo@7.14.0: {}
@@ -16885,7 +16863,7 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-config-prettier@10.1.1(eslint@9.26.0(jiti@2.4.2)):
+ eslint-config-prettier@10.1.8(eslint@9.26.0(jiti@2.4.2)):
dependencies:
eslint: 9.26.0(jiti@2.4.2)
@@ -16894,35 +16872,34 @@ snapshots:
eslint: 9.26.0(jiti@2.4.2)
globals: 15.15.0
- eslint-plugin-html@8.1.2:
+ eslint-plugin-html@8.1.3:
dependencies:
- htmlparser2: 9.1.0
+ htmlparser2: 10.0.0
- eslint-plugin-jest@28.11.0(@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(jest@30.0.4(@types/node@22.13.5))(typescript@5.7.3):
+ eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(jest@30.0.4(@types/node@22.13.5))(typescript@5.7.3):
dependencies:
- '@typescript-eslint/utils': 8.24.1(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
eslint: 9.26.0(jiti@2.4.2)
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
jest: 30.0.4(@types/node@22.13.5)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-jsdoc@50.6.9(eslint@9.26.0(jiti@2.4.2)):
+ eslint-plugin-jsdoc@50.8.0(eslint@9.26.0(jiti@2.4.2)):
dependencies:
- '@es-joy/jsdoccomment': 0.49.0
+ '@es-joy/jsdoccomment': 0.50.2
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint: 9.26.0(jiti@2.4.2)
espree: 10.3.0
esquery: 1.6.0
- parse-imports: 2.2.1
- semver: 7.7.1
+ parse-imports-exports: 0.2.4
+ semver: 7.7.2
spdx-expression-parse: 4.0.0
- synckit: 0.9.2
transitivePeerDependencies:
- supports-color
@@ -16950,14 +16927,14 @@ snapshots:
'@microsoft/tsdoc': 0.15.1
'@microsoft/tsdoc-config': 0.17.1
- eslint-plugin-unicorn@59.0.0(eslint@9.26.0(jiti@2.4.2)):
+ eslint-plugin-unicorn@59.0.1(eslint@9.26.0(jiti@2.4.2)):
dependencies:
- '@babel/helper-validator-identifier': 7.25.9
- '@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2))
+ '@babel/helper-validator-identifier': 7.27.1
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.26.0(jiti@2.4.2))
'@eslint/plugin-kit': 0.2.8
ci-info: 4.2.0
clean-regexp: 1.0.0
- core-js-compat: 3.41.0
+ core-js-compat: 3.42.0
eslint: 9.26.0(jiti@2.4.2)
esquery: 1.6.0
find-up-simple: 1.0.1
@@ -16968,7 +16945,7 @@ snapshots:
pluralize: 8.0.0
regexp-tree: 0.1.27
regjsparser: 0.12.0
- semver: 7.7.1
+ semver: 7.7.2
strip-indent: 4.0.0
eslint-scope@5.1.1:
@@ -16985,6 +16962,8 @@ snapshots:
eslint-visitor-keys@4.2.0: {}
+ eslint-visitor-keys@4.2.1: {}
+
eslint@9.26.0(jiti@2.4.2):
dependencies:
'@eslint-community/eslint-utils': 4.5.1(eslint@9.26.0(jiti@2.4.2))
@@ -17306,7 +17285,7 @@ snapshots:
proxy-addr: 2.0.7
rfdc: 1.4.1
secure-json-parse: 2.7.0
- semver: 7.7.1
+ semver: 7.7.2
toad-cache: 3.7.0
fastq@1.19.0:
@@ -17362,8 +17341,6 @@ snapshots:
dependencies:
flat-cache: 5.0.0
- file-saver@2.0.5: {}
-
filelist@1.0.4:
dependencies:
minimatch: 5.1.6
@@ -17400,7 +17377,7 @@ snapshots:
finalhandler@2.1.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
on-finished: 2.4.1
@@ -17455,7 +17432,7 @@ snapshots:
'@babel/parser': 7.27.2
'@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.27.1)
acorn-walk: 8.3.4
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
globby: 11.1.0
simple-bin-help: 1.8.0
transitivePeerDependencies:
@@ -17889,12 +17866,12 @@ snapshots:
html-void-elements@3.0.0: {}
- htmlparser2@9.1.0:
+ htmlparser2@10.0.0:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
- domutils: 3.1.0
- entities: 4.5.0
+ domutils: 3.2.2
+ entities: 6.0.1
http-cache-semantics@4.1.1: {}
@@ -17921,7 +17898,7 @@ snapshots:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -17977,7 +17954,7 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -18014,6 +17991,8 @@ snapshots:
ignore@7.0.3: {}
+ immer@10.1.1: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -18294,7 +18273,7 @@ snapshots:
'@babel/parser': 7.27.2
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
- semver: 7.7.1
+ semver: 7.7.2
transitivePeerDependencies:
- supports-color
@@ -18315,7 +18294,7 @@ snapshots:
istanbul-lib-source-maps@4.0.1:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
@@ -18716,6 +18695,10 @@ snapshots:
'@sideway/formula': 3.0.1
'@sideway/pinpoint': 2.0.0
+ jotai@2.12.5(react@19.1.0):
+ optionalDependencies:
+ react: 19.1.0
+
jpeg-js@0.4.4: {}
js-base64@3.7.7: {}
@@ -19052,7 +19035,7 @@ snapshots:
make-dir@4.0.0:
dependencies:
- semver: 7.7.1
+ semver: 7.7.2
makeerror@1.0.12:
dependencies:
@@ -19442,7 +19425,7 @@ snapshots:
micromark@2.11.4:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
@@ -19450,7 +19433,7 @@ snapshots:
micromark@4.0.0:
dependencies:
'@types/debug': 4.1.12
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
decode-named-character-reference: 1.0.2
devlop: 1.1.0
micromark-core-commonmark: 2.0.1
@@ -19892,6 +19875,8 @@ snapshots:
pako@1.0.11: {}
+ pako@2.1.0: {}
+
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@@ -19909,10 +19894,9 @@ snapshots:
is-decimal: 1.0.4
is-hexadecimal: 1.0.4
- parse-imports@2.2.1:
+ parse-imports-exports@0.2.4:
dependencies:
- es-module-lexer: 1.6.0
- slashes: 3.0.12
+ parse-statements: 1.0.11
parse-json@5.2.0:
dependencies:
@@ -19921,6 +19905,8 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse-statements@1.0.11: {}
+
parse5@7.2.1:
dependencies:
entities: 4.5.0
@@ -20035,8 +20021,6 @@ snapshots:
sonic-boom: 4.2.0
thread-stream: 3.1.0
- pirates@4.0.6: {}
-
pirates@4.0.7: {}
pixelmatch@5.3.0:
@@ -20086,28 +20070,28 @@ snapshots:
possible-typed-array-names@1.1.0: {}
- postcss-import@15.1.0(postcss@8.5.3):
+ postcss-import@15.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.5.3
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.10
- postcss-js@4.0.1(postcss@8.5.3):
+ postcss-js@4.0.1(postcss@8.5.6):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.5.3
+ postcss: 8.5.6
- postcss-load-config@4.0.2(postcss@8.5.3):
+ postcss-load-config@4.0.2(postcss@8.5.6):
dependencies:
lilconfig: 3.1.3
- yaml: 2.7.1
+ yaml: 2.8.0
optionalDependencies:
- postcss: 8.5.3
+ postcss: 8.5.6
- postcss-nested@6.2.0(postcss@8.5.3):
+ postcss-nested@6.2.0(postcss@8.5.6):
dependencies:
- postcss: 8.5.3
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.1.2:
@@ -20252,6 +20236,8 @@ snapshots:
quote-unquote@1.0.0: {}
+ radash@12.1.1: {}
+
railroad-diagrams@1.0.0: {}
ramda@0.28.0: {}
@@ -20285,8 +20271,15 @@ snapshots:
minimist: 1.2.8
strip-json-comments: 2.0.1
+ react-dom@19.1.0(react@19.1.0):
+ dependencies:
+ react: 19.1.0
+ scheduler: 0.26.0
+
react-is@18.3.1: {}
+ react@19.1.0: {}
+
read-cache@1.0.0:
dependencies:
pify: 2.3.0
@@ -20596,7 +20589,7 @@ snapshots:
router@2.2.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
depd: 2.0.0
is-promise: 4.0.0
parseurl: 1.3.3
@@ -20655,6 +20648,8 @@ snapshots:
dependencies:
xmlchars: 2.2.0
+ scheduler@0.26.0: {}
+
schema-utils@3.3.0:
dependencies:
'@types/json-schema': 7.0.15
@@ -20716,7 +20711,7 @@ snapshots:
send@1.2.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@@ -20915,8 +20910,6 @@ snapshots:
slash@5.1.0: {}
- slashes@3.0.12: {}
-
slice-ansi@3.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -21013,7 +21006,7 @@ snapshots:
spdy-transport@3.0.0:
dependencies:
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
detect-node: 2.1.0
hpack.js: 2.1.6
obuf: 1.1.2
@@ -21037,7 +21030,7 @@ snapshots:
spec-change@1.11.11:
dependencies:
arg: 5.0.2
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
deep-equal: 2.2.3
dependency-tree: 11.0.1
lazy-ass: 2.0.3
@@ -21221,12 +21214,12 @@ snapshots:
sucrase@3.35.0:
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/gen-mapping': 0.3.12
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
- pirates: 4.0.6
+ pirates: 4.0.7
ts-interface-checker: 0.1.13
superjson@2.2.2:
@@ -21251,22 +21244,14 @@ snapshots:
symbol-tree@3.2.4: {}
- synckit@0.11.4:
- dependencies:
- '@pkgr/core': 0.2.4
- tslib: 2.8.1
-
synckit@0.11.8:
dependencies:
'@pkgr/core': 0.2.4
- synckit@0.9.2:
- dependencies:
- '@pkgr/core': 0.1.1
- tslib: 2.8.1
-
tabbable@6.2.0: {}
+ tailwind-merge@3.3.1: {}
+
tailwindcss@3.4.17:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -21283,11 +21268,11 @@ snapshots:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
- postcss: 8.5.3
- postcss-import: 15.1.0(postcss@8.5.3)
- postcss-js: 4.0.1(postcss@8.5.3)
- postcss-load-config: 4.0.2(postcss@8.5.3)
- postcss-nested: 6.2.0(postcss@8.5.3)
+ postcss: 8.5.6
+ postcss-import: 15.1.0(postcss@8.5.6)
+ postcss-js: 4.0.1(postcss@8.5.6)
+ postcss-load-config: 4.0.2(postcss@8.5.6)
+ postcss-nested: 6.2.0(postcss@8.5.6)
postcss-selector-parser: 6.1.2
resolve: 1.22.10
sucrase: 3.35.0
@@ -21478,10 +21463,6 @@ snapshots:
dependencies:
typescript: 5.7.3
- ts-api-utils@2.0.1(typescript@5.7.3):
- dependencies:
- typescript: 5.7.3
-
ts-api-utils@2.1.0(typescript@5.7.3):
dependencies:
typescript: 5.7.3
@@ -21490,8 +21471,6 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-toolbelt@6.15.5: {}
-
tsconfig-paths@4.2.0:
dependencies:
json5: 2.2.3
@@ -21592,11 +21571,12 @@ snapshots:
typescript: 5.7.3
yaml: 2.7.0
- typescript-eslint@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3):
+ typescript-eslint@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/parser': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
- '@typescript-eslint/utils': 8.32.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/parser': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.7.3)
+ '@typescript-eslint/utils': 8.38.0(eslint@9.26.0(jiti@2.4.2))(typescript@5.7.3)
eslint: 9.26.0(jiti@2.4.2)
typescript: 5.7.3
transitivePeerDependencies:
@@ -21808,6 +21788,10 @@ snapshots:
dependencies:
punycode: 2.3.1
+ use-sync-external-store@1.5.0(react@19.1.0):
+ dependencies:
+ react: 19.1.0
+
util-deprecate@1.0.2: {}
utils-merge@1.0.1: {}
@@ -21845,7 +21829,7 @@ snapshots:
vite-node@3.0.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0):
dependencies:
cac: 6.7.14
- debug: 4.4.0
+ debug: 4.4.1(supports-color@8.1.1)
es-module-lexer: 1.6.0
pathe: 2.0.3
vite: 6.1.6(@types/node@22.13.5)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.0)
@@ -22067,10 +22051,6 @@ snapshots:
vscode-uri@3.1.0: {}
- vue-demi@0.14.10(vue@3.5.13(typescript@5.7.3)):
- dependencies:
- vue: 3.5.13(typescript@5.7.3)
-
vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.7.3)):
dependencies:
vue: 3.5.13(typescript@5.7.3)
@@ -22085,11 +22065,6 @@ snapshots:
optionalDependencies:
typescript: 5.7.3
- vuex@4.1.0(vue@3.5.13(typescript@5.7.3)):
- dependencies:
- '@vue/devtools-api': 6.6.4
- vue: 3.5.13(typescript@5.7.3)
-
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0
@@ -22569,8 +22544,6 @@ snapshots:
yaml@2.7.0: {}
- yaml@2.7.1: {}
-
yaml@2.8.0: {}
yargs-parser@18.1.3: