From ef6aa4b09d4e63a2e87759773d59d05d165ca40c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Wed, 15 Oct 2025 15:25:43 +0530 Subject: [PATCH] feat: Add layout-tidy-tree --- package.json | 1 + pnpm-lock.yaml | 19 +++++++++++++++++++ src/lib/util/mermaid.ts | 3 ++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 9c7126a1..236e6a80 100644 --- a/package.json +++ b/package.json @@ -95,6 +95,7 @@ "@fsegurai/codemirror-theme-vscode-light": "^6.1.4", "@mermaid-js/examples": "^1.0.0", "@mermaid-js/layout-elk": "^0.1.9", + "@mermaid-js/layout-tidy-tree": "^0.2.0", "@mermaid-js/mermaid-zenuml": "^0.2.2", "codemirror": "^6.0.1", "dayjs": "^1.11.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b02c763f..ca3d771f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,6 +41,9 @@ importers: '@mermaid-js/layout-elk': specifier: ^0.1.9 version: 0.1.9(mermaid@11.12.0) + '@mermaid-js/layout-tidy-tree': + specifier: ^0.2.0 + version: 0.2.0(mermaid@11.12.0) '@mermaid-js/mermaid-zenuml': specifier: ^0.2.2 version: 0.2.2(mermaid@11.12.0) @@ -776,6 +779,11 @@ packages: peerDependencies: mermaid: ^11.0.2 + '@mermaid-js/layout-tidy-tree@0.2.0': + resolution: {integrity: sha512-0bZFuMQKgpW16cQ4MlUkLTi8l4UUz1pQ0tokGAuR/uVSo2BYvixYBPGxYm13fyQ5M/UUSjUQQ0Zo2nrWUKPwSA==} + peerDependencies: + mermaid: ^11.0.2 + '@mermaid-js/mermaid-zenuml@0.2.2': resolution: {integrity: sha512-sUjwk4NWUpy9uaHypYSIGJDks10ZaZo5CHH9lx9xcmyqv9w7yvd4vecUmlUQxmlHStYO+aqSkYKX5/gFjDfypw==} peerDependencies: @@ -2847,6 +2855,9 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + non-layered-tidy-tree-layout@2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -4662,6 +4673,12 @@ snapshots: elkjs: 0.9.3 mermaid: 11.12.0 + '@mermaid-js/layout-tidy-tree@0.2.0(mermaid@11.12.0)': + dependencies: + d3: 7.9.0 + mermaid: 11.12.0 + non-layered-tidy-tree-layout: 2.0.2 + '@mermaid-js/mermaid-zenuml@0.2.2(mermaid@11.12.0)': dependencies: '@zenuml/core': 3.36.0 @@ -6865,6 +6882,8 @@ snapshots: node-releases@2.0.19: {} + non-layered-tidy-tree-layout@2.0.2: {} + normalize-path@3.0.0: {} normalize-range@0.1.2: {} diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts index 82f9f73e..d6c45f5b 100644 --- a/src/lib/util/mermaid.ts +++ b/src/lib/util/mermaid.ts @@ -1,10 +1,11 @@ import { diagramData } from '@mermaid-js/examples'; import elkLayouts from '@mermaid-js/layout-elk'; +import tidyTreeLayouts from '@mermaid-js/layout-tidy-tree'; import zenuml from '@mermaid-js/mermaid-zenuml'; import type { MermaidConfig, RenderResult } from 'mermaid'; import mermaid from 'mermaid'; -mermaid.registerLayoutLoaders(elkLayouts); +mermaid.registerLayoutLoaders([...elkLayouts, ...tidyTreeLayouts]); const init = mermaid.registerExternalDiagrams([zenuml]); export const render = async (