-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: [State diagram] Add classDefs and classes to states #3644
feat: [State diagram] Add classDefs and classes to states #3644
Conversation
…rs; update composite from docs
Great feature @weedySeaDragon! I particularly like that you aligned the syntax with flowcharts. One of the issues we need to be aware of the keeping the syntax together between the diagrams to simplify for the users! If you rebase I will merge! |
Thanks @knsv . Yes -- users should expect the same experience and abilities across the different diagrams. (They don't know that the code is so different for them.) I'll work on the documentation for this feature next. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [mermaid](https://github.com/mermaid-js/mermaid) | [`9.2.2` -> `9.3.0`](https://renovatebot.com/diffs/npm/mermaid/9.2.2/9.3.0) | [![age](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/compatibility-slim/9.2.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/mermaid/9.3.0/confidence-slim/9.2.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mermaid-js/mermaid</summary> ### [`v9.3.0`](https://github.com/mermaid-js/mermaid/releases/tag/v9.3.0) [Compare Source](https://github.com/mermaid-js/mermaid/compare/v9.2.2...v9.3.0) ### Significant Changes - 25% Smaller - New docs - Replaces the deprecated and vulnerable `dagre-d3` with `dagre-es` ### Release Notes - [#​3778](https://github.com/mermaid-js/mermaid/issues/3778) Adding a hexgon shape ([#​3834](https://github.com/mermaid-js/mermaid/issues/3834)) [@​knsv](https://github.com/knsv) - [#​3831](https://github.com/mermaid-js/mermaid/issues/3831) Re-enabling themes for er diagrams ([#​3837](https://github.com/mermaid-js/mermaid/issues/3837)) [@​knsv](https://github.com/knsv) - [#​3882](https://github.com/mermaid-js/mermaid/issues/3882) fix for issues with mindmaps with only a single node ([#​3833](https://github.com/mermaid-js/mermaid/issues/3833)) [@​knsv](https://github.com/knsv) - (chore) remove console stmt in pieDetector ([#​3840](https://github.com/mermaid-js/mermaid/issues/3840)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - (feat) state classDef documentation ([#​3841](https://github.com/mermaid-js/mermaid/issues/3841)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - 3882 edge labels ([#​3883](https://github.com/mermaid-js/mermaid/issues/3883)) [@​knsv](https://github.com/knsv) - Add GHA that will check links + Fix broken links ([#​3765](https://github.com/mermaid-js/mermaid/issues/3765)) [@​spier](https://github.com/spier) - Add official vim plugin to list in integrations ([#​3847](https://github.com/mermaid-js/mermaid/issues/3847)) [@​craigmac](https://github.com/craigmac) - Add package visualizations ([#​3823](https://github.com/mermaid-js/mermaid/issues/3823)) [@​sidharthv96](https://github.com/sidharthv96) - Add support for [@​include](https://github.com/include) in docs ([#​3863](https://github.com/mermaid-js/mermaid/issues/3863)) [@​sidharthv96](https://github.com/sidharthv96) - CI: disable pinning dependencies ([#​3735](https://github.com/mermaid-js/mermaid/issues/3735)) [@​aloisklink](https://github.com/aloisklink) - Defects/issue 3878 ([#​3880](https://github.com/mermaid-js/mermaid/issues/3880)) [@​MrCoder](https://github.com/MrCoder) - Feat: Add aria-describedby, aria-roledescription ([#​3808](https://github.com/mermaid-js/mermaid/issues/3808)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - Fix [#​3799](https://github.com/mermaid-js/mermaid/issues/3799): Remove `type` from package.json ([#​3802](https://github.com/mermaid-js/mermaid/issues/3802)) [@​sidharthv96](https://github.com/sidharthv96) - Fix for [#​3835](https://github.com/mermaid-js/mermaid/issues/3835), makes it possible to style path elements ([#​3836](https://github.com/mermaid-js/mermaid/issues/3836)) [@​knsv](https://github.com/knsv) - Fix typos ([#​3820](https://github.com/mermaid-js/mermaid/issues/3820)) [@​endolith](https://github.com/endolith) - Housekeeping with eslint-unicorn ([#​3845](https://github.com/mermaid-js/mermaid/issues/3845)) [@​sidharthv96](https://github.com/sidharthv96) - Integrations added - Visual Studio Code \[Polyglot Interactive Notebooks] ([#​3821](https://github.com/mermaid-js/mermaid/issues/3821)) [@​dfinke](https://github.com/dfinke) - Mindmap integration docs ([#​3810](https://github.com/mermaid-js/mermaid/issues/3810)) [@​sidharthv96](https://github.com/sidharthv96) - Reduce mermaid size by 31% ([#​3825](https://github.com/mermaid-js/mermaid/issues/3825)) [@​sidharthv96](https://github.com/sidharthv96) - Remove extra arrow and adjust cross position ([#​3641](https://github.com/mermaid-js/mermaid/issues/3641)) [@​ishuen](https://github.com/ishuen) - Replace `dagre`/`dagre-d3` with `dagre-d3-es` ([#​3809](https://github.com/mermaid-js/mermaid/issues/3809)) [@​aloisklink](https://github.com/aloisklink) - Revert "Added pie" ([#​3842](https://github.com/mermaid-js/mermaid/issues/3842)) [@​pbrolin47](https://github.com/pbrolin47) - Switch CDN to unpkg.com ([#​3777](https://github.com/mermaid-js/mermaid/issues/3777)) [@​sidharthv96](https://github.com/sidharthv96) - Switch back to jsdelivr ([#​3873](https://github.com/mermaid-js/mermaid/issues/3873)) [@​sidharthv96](https://github.com/sidharthv96) - Use `github-dark` to highlight fence blocks in vitepress docs ([#​3807](https://github.com/mermaid-js/mermaid/issues/3807)) [@​aloisklink](https://github.com/aloisklink) - Use current mermaid version in docs. ([#​3846](https://github.com/mermaid-js/mermaid/issues/3846)) [@​sidharthv96](https://github.com/sidharthv96) - Use stylis to prepend idSelector ([#​3829](https://github.com/mermaid-js/mermaid/issues/3829)) [@​DanInProgress](https://github.com/DanInProgress) - bug: State diagram fix classes type ([#​3798](https://github.com/mermaid-js/mermaid/issues/3798)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - bug: change shiki getHighlighter import ([#​3804](https://github.com/mermaid-js/mermaid/issues/3804)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - chore(deps): remove dependency on `graphlib` ([#​3861](https://github.com/mermaid-js/mermaid/issues/3861)) [@​aloisklink](https://github.com/aloisklink) - chore(deps): update all non-major dependencies (minor) ([#​3905](https://github.com/mermaid-js/mermaid/issues/3905)) [@​renovate](https://github.com/renovate) - chore(deps): update all non-major dependencies (minor) ([#​3791](https://github.com/mermaid-js/mermaid/issues/3791)) [@​renovate](https://github.com/renovate) - chore(deps): update lycheeverse/lychee-action action to v1.5.4 ([#​3827](https://github.com/mermaid-js/mermaid/issues/3827)) [@​renovate](https://github.com/renovate) - chore(deps): update pnpm to v7.17.0 ([#​3828](https://github.com/mermaid-js/mermaid/issues/3828)) [@​renovate](https://github.com/renovate) - chore(deps): update pnpm to v7.17.1 ([#​3862](https://github.com/mermaid-js/mermaid/issues/3862)) [@​renovate](https://github.com/renovate) - chore(docs): Auto build docs ([#​3547](https://github.com/mermaid-js/mermaid/issues/3547)) [@​sidharthv96](https://github.com/sidharthv96) - chore: Housekeeping ([#​3783](https://github.com/mermaid-js/mermaid/issues/3783)) [@​sidharthv96](https://github.com/sidharthv96) - chore: Merge master to develop ([#​3780](https://github.com/mermaid-js/mermaid/issues/3780)) [@​sidharthv96](https://github.com/sidharthv96) - chore: clean up code in mermaidAPI render() and write specs/tests ([#​3684](https://github.com/mermaid-js/mermaid/issues/3684)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - chore: delete functions not used in diagrams/c4 code (dead code) ([#​3871](https://github.com/mermaid-js/mermaid/issues/3871)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - comments in states are skipped now ([#​3762](https://github.com/mermaid-js/mermaid/issues/3762)) [@​avijit1258](https://github.com/avijit1258) - doc: remove links from atom.io; add note Atom has been archived ([#​3899](https://github.com/mermaid-js/mermaid/issues/3899)) [@​weedySeaDragon](https://github.com/weedySeaDragon) - docs: refactor Theming doc ([#​3889](https://github.com/mermaid-js/mermaid/issues/3889)) [@​huynhicode](https://github.com/huynhicode) - feat: Redirect old documentation links. ([#​3797](https://github.com/mermaid-js/mermaid/issues/3797)) [@​sidharthv96](https://github.com/sidharthv96) - feat: Title support via front matter for ER, state, class, git, and graph diagrams ([#​3706](https://github.com/mermaid-js/mermaid/issues/3706)) [@​MasonM](https://github.com/MasonM) - fix(deps): update all non-major dependencies (patch) ([#​3790](https://github.com/mermaid-js/mermaid/issues/3790)) [@​renovate](https://github.com/renovate) - fix(deps): update dependency rollup to v3 ([#​3674](https://github.com/mermaid-js/mermaid/issues/3674)) [@​renovate](https://github.com/renovate) - fix: LintStaged ([#​3844](https://github.com/mermaid-js/mermaid/issues/3844)) [@​sidharthv96](https://github.com/sidharthv96) 🎉 **Thanks to all contributors helping with this release!** 🎉 #### What's Changed - chore(deps): update actions/checkout action to v3 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3645](https://github.com/mermaid-js/mermaid/pull/3645) - chore(deps): update actions/setup-node action to v3 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3646](https://github.com/mermaid-js/mermaid/pull/3646) - Remove inconsistent and deprecated semicolons by [@​revolter](https://github.com/revolter) in [https://github.com/mermaid-js/mermaid/pull/3657](https://github.com/mermaid-js/mermaid/pull/3657) - Fix windows paths for `docs:build` by [@​arpansaha13](https://github.com/arpansaha13) in [https://github.com/mermaid-js/mermaid/pull/3605](https://github.com/mermaid-js/mermaid/pull/3605) - feat: make `parseError` function more type-safe by [@​Some-Dood](https://github.com/Some-Dood) in [https://github.com/mermaid-js/mermaid/pull/3643](https://github.com/mermaid-js/mermaid/pull/3643) - chore(deps): update all non-major dependencies (minor) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3632](https://github.com/mermaid-js/mermaid/pull/3632) - chore(deps): update all non-major dependencies (patch) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3671](https://github.com/mermaid-js/mermaid/pull/3671) - chore(deps): pin dependencies by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3685](https://github.com/mermaid-js/mermaid/pull/3685) - Added Open Graph meta tags by [@​danangtomo](https://github.com/danangtomo) in [https://github.com/mermaid-js/mermaid/pull/3679](https://github.com/mermaid-js/mermaid/pull/3679) - add eslint-plugin-no-only-tests plugin by [@​DKurilo](https://github.com/DKurilo) in [https://github.com/mermaid-js/mermaid/pull/3690](https://github.com/mermaid-js/mermaid/pull/3690) - Added and configured cspell plugin to eslint by [@​devcer](https://github.com/devcer) in [https://github.com/mermaid-js/mermaid/pull/3604](https://github.com/mermaid-js/mermaid/pull/3604) - fix: gantt demo diagrams ([#​3655](https://github.com/mermaid-js/mermaid/issues/3655)) by [@​isinek](https://github.com/isinek) in [https://github.com/mermaid-js/mermaid/pull/3688](https://github.com/mermaid-js/mermaid/pull/3688) - Chore/3697 eslint curly by [@​jeroenekkelkamp](https://github.com/jeroenekkelkamp) in [https://github.com/mermaid-js/mermaid/pull/3698](https://github.com/mermaid-js/mermaid/pull/3698) - Update sequenceDiagram.md by [@​imgss](https://github.com/imgss) in [https://github.com/mermaid-js/mermaid/pull/3707](https://github.com/mermaid-js/mermaid/pull/3707) - Use `eslint-plugin-tsdoc` for TypeScript files instead of `eslint-plugin-jsdoc` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3708](https://github.com/mermaid-js/mermaid/pull/3708) - chore(deps): pin dependencies by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3713](https://github.com/mermaid-js/mermaid/pull/3713) - chore(deps): update all non-major dependencies (patch) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3714](https://github.com/mermaid-js/mermaid/pull/3714) - Order pie chart slices clockwise by order of entries by [@​jasmaa](https://github.com/jasmaa) in [https://github.com/mermaid-js/mermaid/pull/3609](https://github.com/mermaid-js/mermaid/pull/3609) - fix: border attribute does not work in a certain writing style by [@​maiermic](https://github.com/maiermic) in [https://github.com/mermaid-js/mermaid/pull/3636](https://github.com/mermaid-js/mermaid/pull/3636) - add the way to add notes to class diagram by [@​DKurilo](https://github.com/DKurilo) in [https://github.com/mermaid-js/mermaid/pull/3647](https://github.com/mermaid-js/mermaid/pull/3647) - add statement aliases for ER diagram by [@​DKurilo](https://github.com/DKurilo) in [https://github.com/mermaid-js/mermaid/pull/3649](https://github.com/mermaid-js/mermaid/pull/3649) - fix: Fix useMaxWidth option for git graph by [@​uttk](https://github.com/uttk) in [https://github.com/mermaid-js/mermaid/pull/3652](https://github.com/mermaid-js/mermaid/pull/3652) - [#​3659](https://github.com/mermaid-js/mermaid/issues/3659) Adding height when not using maxWidth by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3668](https://github.com/mermaid-js/mermaid/pull/3668) - Change fill attribute to style by [@​CalebUsadi](https://github.com/CalebUsadi) in [https://github.com/mermaid-js/mermaid/pull/3719](https://github.com/mermaid-js/mermaid/pull/3719) - feat: \[State diagram] Add classDefs and classes to states by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3644](https://github.com/mermaid-js/mermaid/pull/3644) - Fill inheritance arrow with background color by [@​vallsv](https://github.com/vallsv) in [https://github.com/mermaid-js/mermaid/pull/3543](https://github.com/mermaid-js/mermaid/pull/3543) - Ensure example code and rendered output are synced by [@​marcjansen](https://github.com/marcjansen) in [https://github.com/mermaid-js/mermaid/pull/3721](https://github.com/mermaid-js/mermaid/pull/3721) - fix(git): Support quoted branch names by [@​gibson042](https://github.com/gibson042) in [https://github.com/mermaid-js/mermaid/pull/3726](https://github.com/mermaid-js/mermaid/pull/3726) - docs: Add link to docs source by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3612](https://github.com/mermaid-js/mermaid/pull/3612) - chore(deps): update all non-major dependencies (patch) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3736](https://github.com/mermaid-js/mermaid/pull/3736) - chore(deps): update all non-major dependencies (minor) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3737](https://github.com/mermaid-js/mermaid/pull/3737) - feat(gantt): Add option 'tickInterval' for custom tick interval by [@​DarkNami](https://github.com/DarkNami) in [https://github.com/mermaid-js/mermaid/pull/3729](https://github.com/mermaid-js/mermaid/pull/3729) - Fix/convert attr to style in er graph by [@​CalebUsadi](https://github.com/CalebUsadi) in [https://github.com/mermaid-js/mermaid/pull/3722](https://github.com/mermaid-js/mermaid/pull/3722) - update user story link for [#​3740](https://github.com/mermaid-js/mermaid/issues/3740) by [@​6footGeek](https://github.com/6footGeek) in [https://github.com/mermaid-js/mermaid/pull/3741](https://github.com/mermaid-js/mermaid/pull/3741) - Improved New Documentation by [@​emersonbottero](https://github.com/emersonbottero) in [https://github.com/mermaid-js/mermaid/pull/3678](https://github.com/mermaid-js/mermaid/pull/3678) - chore: fix cSpell word entry misspelling "mermiad" -> "mermaid" by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3751](https://github.com/mermaid-js/mermaid/pull/3751) - Fix link to CSS classes by [@​hugovk](https://github.com/hugovk) in [https://github.com/mermaid-js/mermaid/pull/3752](https://github.com/mermaid-js/mermaid/pull/3752) - docs: Update references to default config in directives page by [@​raptor0929](https://github.com/raptor0929) in [https://github.com/mermaid-js/mermaid/pull/3738](https://github.com/mermaid-js/mermaid/pull/3738) - Fix link relative links to documentation files by [@​spier](https://github.com/spier) in [https://github.com/mermaid-js/mermaid/pull/3760](https://github.com/mermaid-js/mermaid/pull/3760) - chore(deps): update all non-major dependencies (patch) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3769](https://github.com/mermaid-js/mermaid/pull/3769) - chore(deps): update all non-major dependencies (minor) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3770](https://github.com/mermaid-js/mermaid/pull/3770) - Fix CSpell by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3753](https://github.com/mermaid-js/mermaid/pull/3753) - Live edits for Docs by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3755](https://github.com/mermaid-js/mermaid/pull/3755) - Switch CDN to unpkg.com by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3777](https://github.com/mermaid-js/mermaid/pull/3777) - chore: Housekeeping by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3783](https://github.com/mermaid-js/mermaid/pull/3783) - Pnpm issue reproduction by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3784](https://github.com/mermaid-js/mermaid/pull/3784) - fix(deps): update all non-major dependencies (patch) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3790](https://github.com/mermaid-js/mermaid/pull/3790) - chore: clean up code in mermaidAPI render() and write specs/tests by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3684](https://github.com/mermaid-js/mermaid/pull/3684) - chore(deps): update all non-major dependencies (minor) by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3791](https://github.com/mermaid-js/mermaid/pull/3791) - fix(deps): update dependency rollup to v3 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3674](https://github.com/mermaid-js/mermaid/pull/3674) - Add GHA that will check links + Fix broken links by [@​spier](https://github.com/spier) in [https://github.com/mermaid-js/mermaid/pull/3765](https://github.com/mermaid-js/mermaid/pull/3765) - chore: Merge master to develop by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3780](https://github.com/mermaid-js/mermaid/pull/3780) - bug: change shiki getHighlighter import by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3804](https://github.com/mermaid-js/mermaid/pull/3804) - Fix [#​3799](https://github.com/mermaid-js/mermaid/issues/3799): Remove `type` from package.json by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3802](https://github.com/mermaid-js/mermaid/pull/3802) - CI: disable pinning dependencies by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3735](https://github.com/mermaid-js/mermaid/pull/3735) - bug: State diagram fix classes type by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3798](https://github.com/mermaid-js/mermaid/pull/3798) - Remove extra arrow and adjust cross position by [@​ishuen](https://github.com/ishuen) in [https://github.com/mermaid-js/mermaid/pull/3641](https://github.com/mermaid-js/mermaid/pull/3641) - comments in states are skipped now by [@​avijit1258](https://github.com/avijit1258) in [https://github.com/mermaid-js/mermaid/pull/3762](https://github.com/mermaid-js/mermaid/pull/3762) - feat: Redirect old documentation links. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3797](https://github.com/mermaid-js/mermaid/pull/3797) - Mindmap integration docs by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3810](https://github.com/mermaid-js/mermaid/pull/3810) - Use `github-dark` to highlight fence blocks in vitepress docs by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3807](https://github.com/mermaid-js/mermaid/pull/3807) - chore(deps): update lycheeverse/lychee-action action to v1.5.4 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3827](https://github.com/mermaid-js/mermaid/pull/3827) - chore(deps): update pnpm to v7.17.0 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3828](https://github.com/mermaid-js/mermaid/pull/3828) - feat: Title support via front matter for ER, state, class, git, and graph diagrams by [@​MasonM](https://github.com/MasonM) in [https://github.com/mermaid-js/mermaid/pull/3706](https://github.com/mermaid-js/mermaid/pull/3706) - Replace `dagre`/`dagre-d3` with `dagre-d3-es` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3809](https://github.com/mermaid-js/mermaid/pull/3809) - Add package visualizations by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3823](https://github.com/mermaid-js/mermaid/pull/3823) - [#​3882](https://github.com/mermaid-js/mermaid/issues/3882) fix for issues with mindmaps with only a single node by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3833](https://github.com/mermaid-js/mermaid/pull/3833) - [#​3778](https://github.com/mermaid-js/mermaid/issues/3778) Adding a hexgon shape by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3834](https://github.com/mermaid-js/mermaid/pull/3834) - Fix for [#​3835](https://github.com/mermaid-js/mermaid/issues/3835), makes it possible to style path elements by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3836](https://github.com/mermaid-js/mermaid/pull/3836) - [#​3831](https://github.com/mermaid-js/mermaid/issues/3831) Re-enabling themes for er diagrams by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3837](https://github.com/mermaid-js/mermaid/pull/3837) - (chore) remove console stmt in pieDetector by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3840](https://github.com/mermaid-js/mermaid/pull/3840) - Revert "Added pie" by [@​pbrolin47](https://github.com/pbrolin47) in [https://github.com/mermaid-js/mermaid/pull/3842](https://github.com/mermaid-js/mermaid/pull/3842) - Fix typos by [@​endolith](https://github.com/endolith) in [https://github.com/mermaid-js/mermaid/pull/3820](https://github.com/mermaid-js/mermaid/pull/3820) - (feat) state classDef documentation by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3841](https://github.com/mermaid-js/mermaid/pull/3841) - Integrations added - Visual Studio Code \[Polyglot Interactive Notebooks] by [@​dfinke](https://github.com/dfinke) in [https://github.com/mermaid-js/mermaid/pull/3821](https://github.com/mermaid-js/mermaid/pull/3821) - Reduce mermaid size by 31% by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3825](https://github.com/mermaid-js/mermaid/pull/3825) - fix: LintStaged by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3844](https://github.com/mermaid-js/mermaid/pull/3844) - Add official vim plugin to list in integrations by [@​craigmac](https://github.com/craigmac) in [https://github.com/mermaid-js/mermaid/pull/3847](https://github.com/mermaid-js/mermaid/pull/3847) - chore(deps): remove dependency on `graphlib` by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3861](https://github.com/mermaid-js/mermaid/pull/3861) - chore(deps): update pnpm to v7.17.1 by [@​renovate](https://github.com/renovate) in [https://github.com/mermaid-js/mermaid/pull/3862](https://github.com/mermaid-js/mermaid/pull/3862) - Make gitgraph snapshots consistent in E2E tests by [@​aloisklink](https://github.com/aloisklink) in [https://github.com/mermaid-js/mermaid/pull/3860](https://github.com/mermaid-js/mermaid/pull/3860) - Use stylis to prepend idSelector by [@​DanInProgress](https://github.com/DanInProgress) in [https://github.com/mermaid-js/mermaid/pull/3829](https://github.com/mermaid-js/mermaid/pull/3829) - Use current mermaid version in docs. by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3846](https://github.com/mermaid-js/mermaid/pull/3846) - Add support for [@​include](https://github.com/include) in docs by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3863](https://github.com/mermaid-js/mermaid/pull/3863) - Housekeeping with eslint-unicorn by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3845](https://github.com/mermaid-js/mermaid/pull/3845) - chore: delete functions not used in diagrams/c4 code (dead code) by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3871](https://github.com/mermaid-js/mermaid/pull/3871) - Switch back to jsdelivr by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3873](https://github.com/mermaid-js/mermaid/pull/3873) - 3882 edge labels by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3883](https://github.com/mermaid-js/mermaid/pull/3883) - Small fix for issue [#​3881](https://github.com/mermaid-js/mermaid/issues/3881) by [@​knsv](https://github.com/knsv) in [https://github.com/mermaid-js/mermaid/pull/3884](https://github.com/mermaid-js/mermaid/pull/3884) - Defects/issue 3878 by [@​MrCoder](https://github.com/MrCoder) in [https://github.com/mermaid-js/mermaid/pull/3880](https://github.com/mermaid-js/mermaid/pull/3880) - chore(docs): Auto build docs by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3547](https://github.com/mermaid-js/mermaid/pull/3547) - docs: refactor Theming doc by [@​huynhicode](https://github.com/huynhicode) in [https://github.com/mermaid-js/mermaid/pull/3889](https://github.com/mermaid-js/mermaid/pull/3889) - Feat: Add aria-describedby, aria-roledescription by [@​weedySeaDragon](https://github.com/weedySeaDragon) in [https://github.com/mermaid-js/mermaid/pull/3808](https://github.com/mermaid-js/mermaid/pull/3808) - Release/9.3.0 by [@​sidharthv96](https://github.com/sidharthv96) in [https://github.com/mermaid-js/mermaid/pull/3911](https://github.com/mermaid-js/mermaid/pull/3911) #### New Contributors - [@​revolter](https://github.com/revolter) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3657](https://github.com/mermaid-js/mermaid/pull/3657) - [@​Some-Dood](https://github.com/Some-Dood) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3643](https://github.com/mermaid-js/mermaid/pull/3643) - [@​danangtomo](https://github.com/danangtomo) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3679](https://github.com/mermaid-js/mermaid/pull/3679) - [@​DKurilo](https://github.com/DKurilo) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3690](https://github.com/mermaid-js/mermaid/pull/3690) - [@​devcer](https://github.com/devcer) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3604](https://github.com/mermaid-js/mermaid/pull/3604) - [@​isinek](https://github.com/isinek) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3688](https://github.com/mermaid-js/mermaid/pull/3688) - [@​jeroenekkelkamp](https://github.com/jeroenekkelkamp) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3698](https://github.com/mermaid-js/mermaid/pull/3698) - [@​imgss](https://github.com/imgss) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3707](https://github.com/mermaid-js/mermaid/pull/3707) - [@​jasmaa](https://github.com/jasmaa) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3609](https://github.com/mermaid-js/mermaid/pull/3609) - [@​uttk](https://github.com/uttk) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3652](https://github.com/mermaid-js/mermaid/pull/3652) - [@​CalebUsadi](https://github.com/CalebUsadi) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3719](https://github.com/mermaid-js/mermaid/pull/3719) - [@​marcjansen](https://github.com/marcjansen) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3721](https://github.com/mermaid-js/mermaid/pull/3721) - [@​DarkNami](https://github.com/DarkNami) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3729](https://github.com/mermaid-js/mermaid/pull/3729) - [@​6footGeek](https://github.com/6footGeek) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3741](https://github.com/mermaid-js/mermaid/pull/3741) - [@​hugovk](https://github.com/hugovk) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3752](https://github.com/mermaid-js/mermaid/pull/3752) - [@​raptor0929](https://github.com/raptor0929) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3738](https://github.com/mermaid-js/mermaid/pull/3738) - [@​spier](https://github.com/spier) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3760](https://github.com/mermaid-js/mermaid/pull/3760) - [@​ishuen](https://github.com/ishuen) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3641](https://github.com/mermaid-js/mermaid/pull/3641) - [@​avijit1258](https://github.com/avijit1258) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3762](https://github.com/mermaid-js/mermaid/pull/3762) - [@​MasonM](https://github.com/MasonM) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3706](https://github.com/mermaid-js/mermaid/pull/3706) - [@​endolith](https://github.com/endolith) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3820](https://github.com/mermaid-js/mermaid/pull/3820) - [@​dfinke](https://github.com/dfinke) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3821](https://github.com/mermaid-js/mermaid/pull/3821) - [@​craigmac](https://github.com/craigmac) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3847](https://github.com/mermaid-js/mermaid/pull/3847) - [@​DanInProgress](https://github.com/DanInProgress) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3829](https://github.com/mermaid-js/mermaid/pull/3829) - [@​MrCoder](https://github.com/MrCoder) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3880](https://github.com/mermaid-js/mermaid/pull/3880) - [@​huynhicode](https://github.com/huynhicode) made their first contribution in [https://github.com/mermaid-js/mermaid/pull/3889](https://github.com/mermaid-js/mermaid/pull/3889) **Full Changelog**: mermaid-js/mermaid@v9.2.2...v9.3.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/BirthdayResearch/contented). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuNjIuMSJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
📑 Summary
State Diagrams: add
classDef
statements and apply those viaclass
statements to states so that styling can be applied. Works just like flowcharts.Resolves #1952 1952 State diagrams inline color
Ex:
The framework and code put into place should make applying classDefs to notes and relations easier (next logical follow-on issues/PRs ).
Note that I have not yet updated the documentation. I want to be sure this is OK first, and then I'll do a separate issue & PR.
📏 Design Decisions
changes were only done for -v2
added new
classDef
andclass
statements (exactly like those in flowcharts)State Diagrams use a different strategy for parsing and rendering than many other diagrams: generic statements are parsed, and then later turned into nodes, etc., primarily in the renderer. Because rendered
states
andrelations
were not created until rendering, there was no simple way to track which 'classes' should be applied to which states.Thus I had to do some re-working of the stateDb
extract()
method and ensure the results of the extract() method were used by the renderer.Implementation Notes:
In general, I copied much of the flowchart implementation. (Assumed that was a decent implementation.)
Should the styles (e.g. what comes after the
classDef
keywword) be sanitized in any way? If so, what method should be used?I added 2 tests to the cypress integration tests in
stateDiagram-v2.spec.js
I made a change to render() in
mermaidAPI.ts
:flowRenderer
was hardcoded to callgetClasses(text, diag)
no matter what diagram was being rendered. I changed it to use the current renderer. (I also created a list of diagrams that implement classDefs since adding the state diagram made the if conditional long.)parsing .jison
classDef
andclass
statements.idStatement
so that it would return the specific state stmt objectstateDb
extract
method so it would handle the newclassDef
andapplyClass
statementsclasses[]
,styles[]
, andtextStyles[]
to each statestateRenderer-v2
statedb extract()
so that if the diagram had already been parsed and info extracted, that information was used during rendering (instead of parsing and extracting it again).stateRenderer-v2
. In addition to clean coding practices, much of this will make it easier to apply theming in the future.stateDiagram-v2.spec
stateRenderer-v2.js
can still use some serious clean up.📋 Tasks
Make sure you
develop
branch