@cristianormazabal/triton-core 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/anchors.js +20 -0
- package/dist/contracts/anchors.js.map +1 -0
- package/dist/contracts/animations.d.ts +5 -0
- package/dist/contracts/animations.d.ts.map +1 -0
- package/dist/contracts/animations.js +15 -0
- package/dist/contracts/animations.js.map +1 -0
- package/dist/contracts/crosslink.d.ts +21 -41
- package/dist/contracts/crosslink.d.ts.map +1 -1
- package/dist/contracts/crosslink.js +17 -0
- package/dist/contracts/crosslink.js.map +1 -0
- package/dist/contracts/diagram.js +24 -0
- package/dist/contracts/diagram.js.map +1 -0
- package/dist/contracts/index.d.ts +6 -3
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +21 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/overlay.js +22 -0
- package/dist/contracts/overlay.js.map +1 -0
- package/dist/contracts/primitives.js +13 -0
- package/dist/contracts/primitives.js.map +1 -0
- package/dist/contracts/renderer.js +15 -0
- package/dist/contracts/renderer.js.map +1 -0
- package/dist/contracts/result.js +26 -0
- package/dist/contracts/result.js.map +1 -0
- package/dist/contracts/routing.d.ts +4 -0
- package/dist/contracts/routing.d.ts.map +1 -1
- package/dist/contracts/routing.js +14 -0
- package/dist/contracts/routing.js.map +1 -0
- package/dist/contracts/scene.d.ts +5 -1
- package/dist/contracts/scene.d.ts.map +1 -1
- package/dist/contracts/scene.js +18 -0
- package/dist/contracts/scene.js.map +1 -0
- package/dist/contracts/theme.js +18 -0
- package/dist/contracts/theme.js.map +1 -0
- package/dist/crosslink/connectors.d.ts +66 -0
- package/dist/crosslink/connectors.d.ts.map +1 -0
- package/dist/crosslink/connectors.js +130 -0
- package/dist/crosslink/connectors.js.map +1 -0
- package/dist/crosslink/engine2.d.ts +2 -2
- package/dist/crosslink/engine2.d.ts.map +1 -1
- package/dist/crosslink/engine2.js +783 -0
- package/dist/crosslink/engine2.js.map +1 -0
- package/dist/crosslink/engine3.d.ts +2 -2
- package/dist/crosslink/engine3.d.ts.map +1 -1
- package/dist/crosslink/engine3.js +968 -0
- package/dist/crosslink/engine3.js.map +1 -0
- package/dist/crosslink/index.d.ts +2 -0
- package/dist/crosslink/index.d.ts.map +1 -1
- package/dist/crosslink/index.js +4 -0
- package/dist/crosslink/index.js.map +1 -0
- package/dist/crosslink/render.d.ts +2 -2
- package/dist/crosslink/render.d.ts.map +1 -1
- package/dist/crosslink/render.js +997 -0
- package/dist/crosslink/render.js.map +1 -0
- package/dist/crosslink/resolve.js +331 -0
- package/dist/crosslink/resolve.js.map +1 -0
- package/dist/diagrams/{c4 → mermaid/c4}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/c4/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/c4/index.js +14 -0
- package/dist/diagrams/mermaid/c4/index.js.map +1 -0
- package/dist/diagrams/{c4 → mermaid/c4}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/c4/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/c4/ir.js +2 -0
- package/dist/diagrams/mermaid/c4/ir.js.map +1 -0
- package/dist/diagrams/{c4 → mermaid/c4}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/c4/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/c4/layout.js +110 -0
- package/dist/diagrams/mermaid/c4/layout.js.map +1 -0
- package/dist/diagrams/{class → mermaid/class}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/class/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/class/index.js +14 -0
- package/dist/diagrams/mermaid/class/index.js.map +1 -0
- package/dist/diagrams/{class → mermaid/class}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/class/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/class/ir.js +2 -0
- package/dist/diagrams/mermaid/class/ir.js.map +1 -0
- package/dist/diagrams/{class → mermaid/class}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/class/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/class/layout.js +877 -0
- package/dist/diagrams/mermaid/class/layout.js.map +1 -0
- package/dist/diagrams/{er → mermaid/er}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/er/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/er/index.js +14 -0
- package/dist/diagrams/mermaid/er/index.js.map +1 -0
- package/dist/diagrams/{er → mermaid/er}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/er/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/er/ir.js +2 -0
- package/dist/diagrams/mermaid/er/ir.js.map +1 -0
- package/dist/diagrams/{er → mermaid/er}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/er/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/er/layout.js +116 -0
- package/dist/diagrams/mermaid/er/layout.js.map +1 -0
- package/dist/diagrams/{flowchart → mermaid/flowchart}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/flowchart/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/flowchart/index.js +24 -0
- package/dist/diagrams/mermaid/flowchart/index.js.map +1 -0
- package/dist/diagrams/{flowchart → mermaid/flowchart}/ir.d.ts +7 -1
- package/dist/diagrams/mermaid/flowchart/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/flowchart/ir.js +2 -0
- package/dist/diagrams/mermaid/flowchart/ir.js.map +1 -0
- package/dist/diagrams/mermaid/flowchart/layout.d.ts +5 -0
- package/dist/diagrams/mermaid/flowchart/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/flowchart/layout.js +652 -0
- package/dist/diagrams/mermaid/flowchart/layout.js.map +1 -0
- package/dist/diagrams/{gantt → mermaid/gantt}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/gantt/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gantt/index.js +89 -0
- package/dist/diagrams/mermaid/gantt/index.js.map +1 -0
- package/dist/diagrams/{gantt → mermaid/gantt}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/gantt/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gantt/ir.js +2 -0
- package/dist/diagrams/mermaid/gantt/ir.js.map +1 -0
- package/dist/diagrams/{gantt → mermaid/gantt}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/gantt/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gantt/layout.js +95 -0
- package/dist/diagrams/mermaid/gantt/layout.js.map +1 -0
- package/dist/diagrams/{gitgraph → mermaid/gitgraph}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/gitgraph/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gitgraph/index.js +58 -0
- package/dist/diagrams/mermaid/gitgraph/index.js.map +1 -0
- package/dist/diagrams/{gitgraph → mermaid/gitgraph}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/gitgraph/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gitgraph/ir.js +2 -0
- package/dist/diagrams/mermaid/gitgraph/ir.js.map +1 -0
- package/dist/diagrams/{gitgraph → mermaid/gitgraph}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/gitgraph/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/gitgraph/layout.js +89 -0
- package/dist/diagrams/mermaid/gitgraph/layout.js.map +1 -0
- package/dist/diagrams/{journey → mermaid/journey}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/journey/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/journey/index.js +14 -0
- package/dist/diagrams/mermaid/journey/index.js.map +1 -0
- package/dist/diagrams/{journey → mermaid/journey}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/journey/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/journey/ir.js +2 -0
- package/dist/diagrams/mermaid/journey/ir.js.map +1 -0
- package/dist/diagrams/{journey → mermaid/journey}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/journey/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/journey/layout.js +92 -0
- package/dist/diagrams/mermaid/journey/layout.js.map +1 -0
- package/dist/diagrams/{kanban → mermaid/kanban}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/kanban/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/kanban/index.js +14 -0
- package/dist/diagrams/mermaid/kanban/index.js.map +1 -0
- package/dist/diagrams/{kanban → mermaid/kanban}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/kanban/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/kanban/ir.js +2 -0
- package/dist/diagrams/mermaid/kanban/ir.js.map +1 -0
- package/dist/diagrams/{kanban → mermaid/kanban}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/kanban/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/kanban/layout.js +68 -0
- package/dist/diagrams/mermaid/kanban/layout.js.map +1 -0
- package/dist/diagrams/{mindmap → mermaid/mindmap}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/mindmap/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/mindmap/index.js +52 -0
- package/dist/diagrams/mermaid/mindmap/index.js.map +1 -0
- package/dist/diagrams/{mindmap → mermaid/mindmap}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/mindmap/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/mindmap/ir.js +2 -0
- package/dist/diagrams/mermaid/mindmap/ir.js.map +1 -0
- package/dist/diagrams/{mindmap → mermaid/mindmap}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/mindmap/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/mindmap/layout.js +100 -0
- package/dist/diagrams/mermaid/mindmap/layout.js.map +1 -0
- package/dist/diagrams/{pie → mermaid/pie}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/pie/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/pie/index.js +14 -0
- package/dist/diagrams/mermaid/pie/index.js.map +1 -0
- package/dist/diagrams/{pie → mermaid/pie}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/pie/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/pie/ir.js +2 -0
- package/dist/diagrams/mermaid/pie/ir.js.map +1 -0
- package/dist/diagrams/{pie → mermaid/pie}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/pie/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/pie/layout.js +84 -0
- package/dist/diagrams/mermaid/pie/layout.js.map +1 -0
- package/dist/diagrams/{quadrant → mermaid/quadrant}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/quadrant/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/quadrant/index.js +14 -0
- package/dist/diagrams/mermaid/quadrant/index.js.map +1 -0
- package/dist/diagrams/{quadrant → mermaid/quadrant}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/quadrant/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/quadrant/ir.js +2 -0
- package/dist/diagrams/mermaid/quadrant/ir.js.map +1 -0
- package/dist/diagrams/{quadrant → mermaid/quadrant}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/quadrant/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/quadrant/layout.js +83 -0
- package/dist/diagrams/mermaid/quadrant/layout.js.map +1 -0
- package/dist/diagrams/{radar → mermaid/radar}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/radar/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/radar/index.js +14 -0
- package/dist/diagrams/mermaid/radar/index.js.map +1 -0
- package/dist/diagrams/{radar → mermaid/radar}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/radar/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/radar/ir.js +2 -0
- package/dist/diagrams/mermaid/radar/ir.js.map +1 -0
- package/dist/diagrams/{radar → mermaid/radar}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/radar/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/radar/layout.js +91 -0
- package/dist/diagrams/mermaid/radar/layout.js.map +1 -0
- package/dist/diagrams/{requirement → mermaid/requirement}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/requirement/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/requirement/index.js +14 -0
- package/dist/diagrams/mermaid/requirement/index.js.map +1 -0
- package/dist/diagrams/{requirement → mermaid/requirement}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/requirement/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/requirement/ir.js +2 -0
- package/dist/diagrams/mermaid/requirement/ir.js.map +1 -0
- package/dist/diagrams/{requirement → mermaid/requirement}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/requirement/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/requirement/layout.js +79 -0
- package/dist/diagrams/mermaid/requirement/layout.js.map +1 -0
- package/dist/diagrams/{sankey → mermaid/sankey}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/sankey/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sankey/index.js +14 -0
- package/dist/diagrams/mermaid/sankey/index.js.map +1 -0
- package/dist/diagrams/{sankey → mermaid/sankey}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/sankey/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sankey/ir.js +2 -0
- package/dist/diagrams/mermaid/sankey/ir.js.map +1 -0
- package/dist/diagrams/{sankey → mermaid/sankey}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/sankey/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sankey/layout.js +124 -0
- package/dist/diagrams/mermaid/sankey/layout.js.map +1 -0
- package/dist/diagrams/{sequence → mermaid/sequence}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/sequence/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sequence/index.js +14 -0
- package/dist/diagrams/mermaid/sequence/index.js.map +1 -0
- package/dist/diagrams/{sequence → mermaid/sequence}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/sequence/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sequence/ir.js +2 -0
- package/dist/diagrams/mermaid/sequence/ir.js.map +1 -0
- package/dist/diagrams/{sequence → mermaid/sequence}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/sequence/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/sequence/layout.js +168 -0
- package/dist/diagrams/mermaid/sequence/layout.js.map +1 -0
- package/dist/diagrams/{state → mermaid/state}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/state/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/state/index.js +14 -0
- package/dist/diagrams/mermaid/state/index.js.map +1 -0
- package/dist/diagrams/{state → mermaid/state}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/state/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/state/ir.js +2 -0
- package/dist/diagrams/mermaid/state/ir.js.map +1 -0
- package/dist/diagrams/{state → mermaid/state}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/state/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/state/layout.js +172 -0
- package/dist/diagrams/mermaid/state/layout.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/timeline/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/index.js +23 -0
- package/dist/diagrams/mermaid/timeline/index.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/timeline/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/ir.js +2 -0
- package/dist/diagrams/mermaid/timeline/ir.js.map +1 -0
- package/dist/diagrams/mermaid/timeline/layout.d.ts +5 -0
- package/dist/diagrams/mermaid/timeline/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/layout.js +228 -0
- package/dist/diagrams/mermaid/timeline/layout.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/numbered.d.ts +2 -2
- package/dist/diagrams/mermaid/timeline/numbered.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/numbered.js +112 -0
- package/dist/diagrams/mermaid/timeline/numbered.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/roadmap.d.ts +2 -2
- package/dist/diagrams/mermaid/timeline/roadmap.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/roadmap.js +125 -0
- package/dist/diagrams/mermaid/timeline/roadmap.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/serpentine.d.ts +2 -2
- package/dist/diagrams/mermaid/timeline/serpentine.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/serpentine.js +152 -0
- package/dist/diagrams/mermaid/timeline/serpentine.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/shared.d.ts +1 -1
- package/dist/diagrams/mermaid/timeline/shared.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/shared.js +47 -0
- package/dist/diagrams/mermaid/timeline/shared.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/timeline-columns.d.ts +2 -2
- package/dist/diagrams/mermaid/timeline/timeline-columns.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/timeline-columns.js +136 -0
- package/dist/diagrams/mermaid/timeline/timeline-columns.js.map +1 -0
- package/dist/diagrams/{timeline → mermaid/timeline}/vertical-spine.d.ts +2 -2
- package/dist/diagrams/mermaid/timeline/vertical-spine.d.ts.map +1 -0
- package/dist/diagrams/mermaid/timeline/vertical-spine.js +136 -0
- package/dist/diagrams/mermaid/timeline/vertical-spine.js.map +1 -0
- package/dist/diagrams/{xychart → mermaid/xychart}/index.d.ts +1 -1
- package/dist/diagrams/mermaid/xychart/index.d.ts.map +1 -0
- package/dist/diagrams/mermaid/xychart/index.js +14 -0
- package/dist/diagrams/mermaid/xychart/index.js.map +1 -0
- package/dist/diagrams/{xychart → mermaid/xychart}/ir.d.ts +1 -1
- package/dist/diagrams/mermaid/xychart/ir.d.ts.map +1 -0
- package/dist/diagrams/mermaid/xychart/ir.js +2 -0
- package/dist/diagrams/mermaid/xychart/ir.js.map +1 -0
- package/dist/diagrams/{xychart → mermaid/xychart}/layout.d.ts +2 -2
- package/dist/diagrams/mermaid/xychart/layout.d.ts.map +1 -0
- package/dist/diagrams/mermaid/xychart/layout.js +120 -0
- package/dist/diagrams/mermaid/xychart/layout.js.map +1 -0
- package/dist/diagrams/{architecture → triton/architecture}/index.d.ts +1 -1
- package/dist/diagrams/triton/architecture/index.d.ts.map +1 -0
- package/dist/diagrams/triton/architecture/index.js +14 -0
- package/dist/diagrams/triton/architecture/index.js.map +1 -0
- package/dist/diagrams/{architecture → triton/architecture}/ir.d.ts +1 -1
- package/dist/diagrams/triton/architecture/ir.d.ts.map +1 -0
- package/dist/diagrams/triton/architecture/ir.js +2 -0
- package/dist/diagrams/triton/architecture/ir.js.map +1 -0
- package/dist/diagrams/{architecture → triton/architecture}/layout.d.ts +2 -2
- package/dist/diagrams/triton/architecture/layout.d.ts.map +1 -0
- package/dist/diagrams/triton/architecture/layout.js +124 -0
- package/dist/diagrams/triton/architecture/layout.js.map +1 -0
- package/dist/diagrams/{block → triton/block}/index.d.ts +1 -1
- package/dist/diagrams/triton/block/index.d.ts.map +1 -0
- package/dist/diagrams/triton/block/index.js +14 -0
- package/dist/diagrams/triton/block/index.js.map +1 -0
- package/dist/diagrams/{block → triton/block}/ir.d.ts +1 -1
- package/dist/diagrams/triton/block/ir.d.ts.map +1 -0
- package/dist/diagrams/triton/block/ir.js +2 -0
- package/dist/diagrams/triton/block/ir.js.map +1 -0
- package/dist/diagrams/{block → triton/block}/layout.d.ts +2 -2
- package/dist/diagrams/triton/block/layout.d.ts.map +1 -0
- package/dist/diagrams/triton/block/layout.js +73 -0
- package/dist/diagrams/triton/block/layout.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/graph/graph.d.ts +1 -1
- package/dist/diagrams/triton/ds/graph/graph.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/graph/graph.js +140 -0
- package/dist/diagrams/triton/ds/graph/graph.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/hashmap/hashmap.d.ts +1 -1
- package/dist/diagrams/triton/ds/hashmap/hashmap.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/hashmap/hashmap.js +131 -0
- package/dist/diagrams/triton/ds/hashmap/hashmap.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/matrix/matrix.d.ts +1 -1
- package/dist/diagrams/triton/ds/matrix/matrix.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/matrix/matrix.js +113 -0
- package/dist/diagrams/triton/ds/matrix/matrix.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/queue/cqueue.d.ts +5 -3
- package/dist/diagrams/triton/ds/queue/cqueue.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/queue/cqueue.js +195 -0
- package/dist/diagrams/triton/ds/queue/cqueue.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/queue/deque.d.ts +3 -1
- package/dist/diagrams/triton/ds/queue/deque.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/queue/deque.js +118 -0
- package/dist/diagrams/triton/ds/queue/deque.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/queue/pqueue.d.ts +5 -3
- package/dist/diagrams/triton/ds/queue/pqueue.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/queue/pqueue.js +129 -0
- package/dist/diagrams/triton/ds/queue/pqueue.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/queue/queue.d.ts +3 -1
- package/dist/diagrams/triton/ds/queue/queue.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/queue/queue.js +128 -0
- package/dist/diagrams/triton/ds/queue/queue.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/queue/shared.d.ts +18 -2
- package/dist/diagrams/triton/ds/queue/shared.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/queue/shared.js +186 -0
- package/dist/diagrams/triton/ds/queue/shared.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/stack/stack.d.ts +3 -1
- package/dist/diagrams/triton/ds/stack/stack.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/stack/stack.js +119 -0
- package/dist/diagrams/triton/ds/stack/stack.js.map +1 -0
- package/dist/diagrams/triton/ds/struct/array.d.ts +52 -0
- package/dist/diagrams/triton/ds/struct/array.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/struct/array.js +491 -0
- package/dist/diagrams/triton/ds/struct/array.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/struct/linkedlist.d.ts +1 -1
- package/dist/diagrams/triton/ds/struct/linkedlist.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/struct/linkedlist.js +99 -0
- package/dist/diagrams/triton/ds/struct/linkedlist.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/struct/memory.d.ts +1 -1
- package/dist/diagrams/triton/ds/struct/memory.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/struct/memory.js +172 -0
- package/dist/diagrams/triton/ds/struct/memory.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/struct/page.d.ts +1 -1
- package/dist/diagrams/triton/ds/struct/page.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/struct/page.js +137 -0
- package/dist/diagrams/triton/ds/struct/page.js.map +1 -0
- package/dist/diagrams/triton/ds/struct/shared.d.ts +17 -0
- package/dist/diagrams/triton/ds/struct/shared.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/struct/shared.js +60 -0
- package/dist/diagrams/triton/ds/struct/shared.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/avl.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/avl.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/avl.js +87 -0
- package/dist/diagrams/triton/ds/tree/avl.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/btree.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/btree.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/btree.js +76 -0
- package/dist/diagrams/triton/ds/tree/btree.js.map +1 -0
- package/dist/diagrams/triton/ds/tree/build.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/build.js +51 -0
- package/dist/diagrams/triton/ds/tree/build.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/heap.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/heap.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/heap.js +48 -0
- package/dist/diagrams/triton/ds/tree/heap.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/index.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/index.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/index.js +20 -0
- package/dist/diagrams/triton/ds/tree/index.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/ir.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/ir.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/ir.js +10 -0
- package/dist/diagrams/triton/ds/tree/ir.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/layout.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/layout.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/layout.js +281 -0
- package/dist/diagrams/triton/ds/tree/layout.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/plan.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/plan.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/plan.js +48 -0
- package/dist/diagrams/triton/ds/tree/plan.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/radix.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/radix.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/radix.js +88 -0
- package/dist/diagrams/triton/ds/tree/radix.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/rbtree.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/rbtree.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/rbtree.js +78 -0
- package/dist/diagrams/triton/ds/tree/rbtree.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/tree/segtree.d.ts +1 -1
- package/dist/diagrams/triton/ds/tree/segtree.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/tree/segtree.js +51 -0
- package/dist/diagrams/triton/ds/tree/segtree.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/trie/trie.d.ts +1 -1
- package/dist/diagrams/triton/ds/trie/trie.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/trie/trie.js +58 -0
- package/dist/diagrams/triton/ds/trie/trie.js.map +1 -0
- package/dist/diagrams/{ds → triton/ds}/unionfind/unionfind.d.ts +1 -1
- package/dist/diagrams/triton/ds/unionfind/unionfind.d.ts.map +1 -0
- package/dist/diagrams/triton/ds/unionfind/unionfind.js +110 -0
- package/dist/diagrams/triton/ds/unionfind/unionfind.js.map +1 -0
- package/dist/diagrams/{packet → triton/packet}/index.d.ts +1 -1
- package/dist/diagrams/triton/packet/index.d.ts.map +1 -0
- package/dist/diagrams/triton/packet/index.js +14 -0
- package/dist/diagrams/triton/packet/index.js.map +1 -0
- package/dist/diagrams/{packet → triton/packet}/ir.d.ts +1 -1
- package/dist/diagrams/triton/packet/ir.d.ts.map +1 -0
- package/dist/diagrams/triton/packet/ir.js +2 -0
- package/dist/diagrams/triton/packet/ir.js.map +1 -0
- package/dist/diagrams/{packet → triton/packet}/layout.d.ts +2 -2
- package/dist/diagrams/triton/packet/layout.d.ts.map +1 -0
- package/dist/diagrams/triton/packet/layout.js +69 -0
- package/dist/diagrams/triton/packet/layout.js.map +1 -0
- package/dist/diagrams/{poster → triton/poster}/index.d.ts +1 -1
- package/dist/diagrams/triton/poster/index.d.ts.map +1 -0
- package/dist/diagrams/triton/poster/index.js +127 -0
- package/dist/diagrams/triton/poster/index.js.map +1 -0
- package/dist/diagrams/{poster → triton/poster}/ir.d.ts +1 -3
- package/dist/diagrams/{poster → triton/poster}/ir.d.ts.map +1 -1
- package/dist/diagrams/triton/poster/ir.js +2 -0
- package/dist/diagrams/triton/poster/ir.js.map +1 -0
- package/dist/diagrams/{poster → triton/poster}/layout.d.ts +2 -2
- package/dist/diagrams/triton/poster/layout.d.ts.map +1 -0
- package/dist/diagrams/triton/poster/layout.js +517 -0
- package/dist/diagrams/triton/poster/layout.js.map +1 -0
- package/dist/diagrams/{topology → triton/topology}/topology.d.ts +2 -2
- package/dist/diagrams/triton/topology/topology.d.ts.map +1 -0
- package/dist/diagrams/triton/topology/topology.js +198 -0
- package/dist/diagrams/triton/topology/topology.js.map +1 -0
- package/dist/frontend/detect.js +94 -0
- package/dist/frontend/detect.js.map +1 -0
- package/dist/frontend/index.d.ts +4 -4
- package/dist/frontend/index.d.ts.map +1 -1
- package/dist/frontend/index.js +196 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/preprocess.d.ts +28 -0
- package/dist/frontend/preprocess.d.ts.map +1 -0
- package/dist/frontend/preprocess.js +60 -0
- package/dist/frontend/preprocess.js.map +1 -0
- package/dist/frontend/registry.js +25 -0
- package/dist/frontend/registry.js.map +1 -0
- package/dist/graph/connect.js +44 -0
- package/dist/graph/connect.js.map +1 -0
- package/dist/graph/layered.d.ts +65 -5
- package/dist/graph/layered.d.ts.map +1 -1
- package/dist/graph/layered.js +936 -0
- package/dist/graph/layered.js.map +1 -0
- package/dist/graph/tree.js +107 -0
- package/dist/graph/tree.js.map +1 -0
- package/dist/index.js +4691 -2735
- package/dist/index.js.map +4 -4
- package/dist/overlay/apply.js +22 -0
- package/dist/overlay/apply.js.map +1 -0
- package/dist/overlay/compiler.js +48 -0
- package/dist/overlay/compiler.js.map +1 -0
- package/dist/overlay/layout.js +242 -0
- package/dist/overlay/layout.js.map +1 -0
- package/dist/palette/categorical.js +21 -0
- package/dist/palette/categorical.js.map +1 -0
- package/dist/render/registry.js +22 -0
- package/dist/render/registry.js.map +1 -0
- package/dist/render/svg.d.ts.map +1 -1
- package/dist/render/svg.js +287 -0
- package/dist/render/svg.js.map +1 -0
- package/dist/routing/d3-curves.d.ts +31 -0
- package/dist/routing/d3-curves.d.ts.map +1 -0
- package/dist/routing/d3-curves.js +58 -0
- package/dist/routing/d3-curves.js.map +1 -0
- package/dist/routing/registry.js +22 -0
- package/dist/routing/registry.js.map +1 -0
- package/dist/routing/router.d.ts +3 -0
- package/dist/routing/router.d.ts.map +1 -1
- package/dist/routing/router.js +849 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/scene/build.d.ts +3 -1
- package/dist/scene/build.d.ts.map +1 -1
- package/dist/scene/build.js +57 -0
- package/dist/scene/build.js.map +1 -0
- package/dist/scene/strip.js +46 -0
- package/dist/scene/strip.js.map +1 -0
- package/dist/style/cost.js +39 -0
- package/dist/style/cost.js.map +1 -0
- package/dist/text/metrics.js +62 -0
- package/dist/text/metrics.js.map +1 -0
- package/dist/text/wrap.js +84 -0
- package/dist/text/wrap.js.map +1 -0
- package/dist/theme/preset.d.ts +2 -0
- package/dist/theme/preset.d.ts.map +1 -1
- package/dist/theme/preset.js +295 -0
- package/dist/theme/preset.js.map +1 -0
- package/dist/theme/resolver.js +15 -0
- package/dist/theme/resolver.js.map +1 -0
- package/dist/time/dates.js +301 -0
- package/dist/time/dates.js.map +1 -0
- package/dist/util/round.js +17 -0
- package/dist/util/round.js.map +1 -0
- package/package.json +1 -1
- package/dist/diagrams/architecture/index.d.ts.map +0 -1
- package/dist/diagrams/architecture/ir.d.ts.map +0 -1
- package/dist/diagrams/architecture/layout.d.ts.map +0 -1
- package/dist/diagrams/block/index.d.ts.map +0 -1
- package/dist/diagrams/block/ir.d.ts.map +0 -1
- package/dist/diagrams/block/layout.d.ts.map +0 -1
- package/dist/diagrams/c4/index.d.ts.map +0 -1
- package/dist/diagrams/c4/ir.d.ts.map +0 -1
- package/dist/diagrams/c4/layout.d.ts.map +0 -1
- package/dist/diagrams/class/index.d.ts.map +0 -1
- package/dist/diagrams/class/ir.d.ts.map +0 -1
- package/dist/diagrams/class/layout.d.ts.map +0 -1
- package/dist/diagrams/ds/graph/graph.d.ts.map +0 -1
- package/dist/diagrams/ds/hashmap/hashmap.d.ts.map +0 -1
- package/dist/diagrams/ds/matrix/matrix.d.ts.map +0 -1
- package/dist/diagrams/ds/queue/cqueue.d.ts.map +0 -1
- package/dist/diagrams/ds/queue/deque.d.ts.map +0 -1
- package/dist/diagrams/ds/queue/pqueue.d.ts.map +0 -1
- package/dist/diagrams/ds/queue/queue.d.ts.map +0 -1
- package/dist/diagrams/ds/queue/shared.d.ts.map +0 -1
- package/dist/diagrams/ds/stack/stack.d.ts.map +0 -1
- package/dist/diagrams/ds/struct/array.d.ts +0 -28
- package/dist/diagrams/ds/struct/array.d.ts.map +0 -1
- package/dist/diagrams/ds/struct/linkedlist.d.ts.map +0 -1
- package/dist/diagrams/ds/struct/memory.d.ts.map +0 -1
- package/dist/diagrams/ds/struct/page.d.ts.map +0 -1
- package/dist/diagrams/ds/struct/shared.d.ts +0 -9
- package/dist/diagrams/ds/struct/shared.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/avl.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/btree.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/build.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/heap.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/index.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/ir.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/layout.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/plan.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/radix.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/rbtree.d.ts.map +0 -1
- package/dist/diagrams/ds/tree/segtree.d.ts.map +0 -1
- package/dist/diagrams/ds/trie/trie.d.ts.map +0 -1
- package/dist/diagrams/ds/unionfind/unionfind.d.ts.map +0 -1
- package/dist/diagrams/er/index.d.ts.map +0 -1
- package/dist/diagrams/er/ir.d.ts.map +0 -1
- package/dist/diagrams/er/layout.d.ts.map +0 -1
- package/dist/diagrams/flowchart/index.d.ts.map +0 -1
- package/dist/diagrams/flowchart/ir.d.ts.map +0 -1
- package/dist/diagrams/flowchart/layout.d.ts +0 -5
- package/dist/diagrams/flowchart/layout.d.ts.map +0 -1
- package/dist/diagrams/gantt/index.d.ts.map +0 -1
- package/dist/diagrams/gantt/ir.d.ts.map +0 -1
- package/dist/diagrams/gantt/layout.d.ts.map +0 -1
- package/dist/diagrams/gitgraph/index.d.ts.map +0 -1
- package/dist/diagrams/gitgraph/ir.d.ts.map +0 -1
- package/dist/diagrams/gitgraph/layout.d.ts.map +0 -1
- package/dist/diagrams/journey/index.d.ts.map +0 -1
- package/dist/diagrams/journey/ir.d.ts.map +0 -1
- package/dist/diagrams/journey/layout.d.ts.map +0 -1
- package/dist/diagrams/kanban/index.d.ts.map +0 -1
- package/dist/diagrams/kanban/ir.d.ts.map +0 -1
- package/dist/diagrams/kanban/layout.d.ts.map +0 -1
- package/dist/diagrams/mindmap/index.d.ts.map +0 -1
- package/dist/diagrams/mindmap/ir.d.ts.map +0 -1
- package/dist/diagrams/mindmap/layout.d.ts.map +0 -1
- package/dist/diagrams/packet/index.d.ts.map +0 -1
- package/dist/diagrams/packet/ir.d.ts.map +0 -1
- package/dist/diagrams/packet/layout.d.ts.map +0 -1
- package/dist/diagrams/pie/index.d.ts.map +0 -1
- package/dist/diagrams/pie/ir.d.ts.map +0 -1
- package/dist/diagrams/pie/layout.d.ts.map +0 -1
- package/dist/diagrams/poster/index.d.ts.map +0 -1
- package/dist/diagrams/poster/layout.d.ts.map +0 -1
- package/dist/diagrams/quadrant/index.d.ts.map +0 -1
- package/dist/diagrams/quadrant/ir.d.ts.map +0 -1
- package/dist/diagrams/quadrant/layout.d.ts.map +0 -1
- package/dist/diagrams/radar/index.d.ts.map +0 -1
- package/dist/diagrams/radar/ir.d.ts.map +0 -1
- package/dist/diagrams/radar/layout.d.ts.map +0 -1
- package/dist/diagrams/requirement/index.d.ts.map +0 -1
- package/dist/diagrams/requirement/ir.d.ts.map +0 -1
- package/dist/diagrams/requirement/layout.d.ts.map +0 -1
- package/dist/diagrams/sankey/index.d.ts.map +0 -1
- package/dist/diagrams/sankey/ir.d.ts.map +0 -1
- package/dist/diagrams/sankey/layout.d.ts.map +0 -1
- package/dist/diagrams/sequence/index.d.ts.map +0 -1
- package/dist/diagrams/sequence/ir.d.ts.map +0 -1
- package/dist/diagrams/sequence/layout.d.ts.map +0 -1
- package/dist/diagrams/state/index.d.ts.map +0 -1
- package/dist/diagrams/state/ir.d.ts.map +0 -1
- package/dist/diagrams/state/layout.d.ts.map +0 -1
- package/dist/diagrams/timeline/index.d.ts.map +0 -1
- package/dist/diagrams/timeline/ir.d.ts.map +0 -1
- package/dist/diagrams/timeline/layout.d.ts +0 -5
- package/dist/diagrams/timeline/layout.d.ts.map +0 -1
- package/dist/diagrams/timeline/numbered.d.ts.map +0 -1
- package/dist/diagrams/timeline/roadmap.d.ts.map +0 -1
- package/dist/diagrams/timeline/serpentine.d.ts.map +0 -1
- package/dist/diagrams/timeline/shared.d.ts.map +0 -1
- package/dist/diagrams/timeline/timeline-columns.d.ts.map +0 -1
- package/dist/diagrams/timeline/vertical-spine.d.ts.map +0 -1
- package/dist/diagrams/topology/topology.d.ts.map +0 -1
- package/dist/diagrams/xychart/index.d.ts.map +0 -1
- package/dist/diagrams/xychart/ir.d.ts.map +0 -1
- package/dist/diagrams/xychart/layout.d.ts.map +0 -1
- /package/dist/diagrams/{ds → triton/ds}/tree/build.d.ts +0 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file diagrams/topology/topology.ts — Cost-weighted node graph (NUMA / network).
|
|
3
|
+
*
|
|
4
|
+
* Value-driven mini-syntax:
|
|
5
|
+
* topology
|
|
6
|
+
* title NUMA interconnect
|
|
7
|
+
* costs ns
|
|
8
|
+
* tier local 90 #27ae60
|
|
9
|
+
* tier hop1 140 #2f80ed
|
|
10
|
+
* tier hop2 200 #e2574c 5 4
|
|
11
|
+
* node N0 : Node 0 : CPU+RAM
|
|
12
|
+
* N0 -- N1 : 140
|
|
13
|
+
*
|
|
14
|
+
* Edges are coloured/dashed by the tier their weight falls into; a legend is
|
|
15
|
+
* rendered from the `costs` block. Demonstrates style/cost end to end.
|
|
16
|
+
*/
|
|
17
|
+
import { pen } from '../../../scene/build.js';
|
|
18
|
+
import { measureText } from '../../../text/metrics.js';
|
|
19
|
+
import { connectSlots } from '../../../graph/connect.js';
|
|
20
|
+
import { classifyCost, buildLegend } from '../../../style/cost.js';
|
|
21
|
+
import { rhu } from '../../../util/round.js';
|
|
22
|
+
function parse(input) {
|
|
23
|
+
let title;
|
|
24
|
+
let unit;
|
|
25
|
+
const tiers = [];
|
|
26
|
+
const groups = [];
|
|
27
|
+
const nodes = [];
|
|
28
|
+
const edges = [];
|
|
29
|
+
let curGroup;
|
|
30
|
+
for (const raw of input.split(/\r?\n/)) {
|
|
31
|
+
const line = raw.trim();
|
|
32
|
+
if (!line)
|
|
33
|
+
continue;
|
|
34
|
+
const t = line.split(/\s+/);
|
|
35
|
+
if (t[0] === 'topology')
|
|
36
|
+
continue;
|
|
37
|
+
if (t[0] === 'title') {
|
|
38
|
+
title = line.slice(5).trim();
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (t[0] === 'costs') {
|
|
42
|
+
unit = t[1];
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (t[0] === 'tier') {
|
|
46
|
+
const tier = {
|
|
47
|
+
name: t[1] ?? '', maxWeight: Number(t[2]), color: t[3] ?? '#888',
|
|
48
|
+
...(t[4] ? { dash: t.slice(4).join(' ') } : {}),
|
|
49
|
+
};
|
|
50
|
+
tiers.push(tier);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (t[0] === 'group') {
|
|
54
|
+
const parts = line.slice(5).split(':').map(s => s.trim());
|
|
55
|
+
const id = parts[0] ?? '';
|
|
56
|
+
groups.push({ id, label: parts[1] || id });
|
|
57
|
+
curGroup = id;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (t[0] === 'node') {
|
|
61
|
+
const parts = line.slice(4).split(':').map(s => s.trim());
|
|
62
|
+
const id = parts[0] ?? '';
|
|
63
|
+
nodes.push({ id, label: parts[1] || id, ...(parts[2] ? { sub: parts[2] } : {}), ...(curGroup ? { group: curGroup } : {}) });
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (line.includes('--')) {
|
|
67
|
+
const m = line.match(/^(\S+)\s*--\s*(\S+)(?:\s*:\s*(-?\d+(?:\.\d+)?))?/);
|
|
68
|
+
if (m)
|
|
69
|
+
edges.push({ from: m[1], to: m[2], ...(m[3] !== undefined ? { cost: Number(m[3]) } : {}) });
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
...(title !== undefined ? { title } : {}),
|
|
74
|
+
scale: { ...(unit !== undefined ? { unit } : {}), tiers },
|
|
75
|
+
groups, nodes, edges,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function layoutTopology(doc, theme) {
|
|
79
|
+
const { palette, typography, spacing } = theme;
|
|
80
|
+
const p = pen(theme);
|
|
81
|
+
const margin = spacing.diagramMargin;
|
|
82
|
+
const font = typography.baseFontSize;
|
|
83
|
+
const small = typography.smallFontSize;
|
|
84
|
+
const titleH = doc.title ? typography.titleFontSize + 14 : 0;
|
|
85
|
+
const nodeWidth = (n) => Math.max(96, Math.max(measureText(n.label, font).width, measureText(n.sub ?? '', small).width) + 28);
|
|
86
|
+
const nodeH = doc.nodes.some(n => n.sub) ? 52 : 40;
|
|
87
|
+
const elements = [];
|
|
88
|
+
if (doc.title)
|
|
89
|
+
elements.push(p.text(doc.title, margin, margin + typography.titleFontSize, typography.titleFontSize, palette.text, { weight: 'bold' }));
|
|
90
|
+
const box = new Map();
|
|
91
|
+
const groupBox = new Map();
|
|
92
|
+
const GHEADER = 26, GPAD = 14, CGAP = 18, GROUP_GAP = 70;
|
|
93
|
+
if (doc.groups.length > 0) {
|
|
94
|
+
let gx = margin;
|
|
95
|
+
const gy = margin + titleH;
|
|
96
|
+
let maxBottom = gy;
|
|
97
|
+
for (const g of doc.groups) {
|
|
98
|
+
const kids = doc.nodes.filter(n => n.group === g.id);
|
|
99
|
+
const childW = Math.max(96, ...kids.map(nodeWidth));
|
|
100
|
+
const cols = Math.max(1, Math.ceil(Math.sqrt(kids.length)));
|
|
101
|
+
const rows = Math.max(1, Math.ceil(kids.length / cols));
|
|
102
|
+
const innerW = cols * childW + (cols - 1) * CGAP;
|
|
103
|
+
const innerH = rows * nodeH + (rows - 1) * CGAP;
|
|
104
|
+
const gw = innerW + GPAD * 2;
|
|
105
|
+
const gh = GHEADER + GPAD + innerH + GPAD;
|
|
106
|
+
groupBox.set(g.id, { x: gx, y: gy, width: gw, height: gh });
|
|
107
|
+
kids.forEach((n, i) => {
|
|
108
|
+
const col = i % cols, row = Math.floor(i / cols);
|
|
109
|
+
box.set(n.id, { x: gx + GPAD + col * (childW + CGAP), y: gy + GHEADER + GPAD + row * (nodeH + CGAP), width: childW, height: nodeH });
|
|
110
|
+
});
|
|
111
|
+
maxBottom = Math.max(maxBottom, gy + gh);
|
|
112
|
+
gx += gw + GROUP_GAP;
|
|
113
|
+
}
|
|
114
|
+
let ux = margin;
|
|
115
|
+
const uy = maxBottom + 40;
|
|
116
|
+
for (const n of doc.nodes.filter(n => !n.group)) {
|
|
117
|
+
const w = nodeWidth(n);
|
|
118
|
+
box.set(n.id, { x: ux, y: uy, width: w, height: nodeH });
|
|
119
|
+
ux += w + 40;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const nodeW = Math.max(96, ...doc.nodes.map(nodeWidth));
|
|
124
|
+
const cols = Math.max(1, Math.ceil(Math.sqrt(doc.nodes.length)));
|
|
125
|
+
const colGap = 96, rowGap = 80;
|
|
126
|
+
doc.nodes.forEach((n, i) => {
|
|
127
|
+
const col = i % cols, row = Math.floor(i / cols);
|
|
128
|
+
box.set(n.id, { x: margin + col * (nodeW + colGap), y: margin + titleH + row * (nodeH + rowGap), width: nodeW, height: nodeH });
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
// group panels (under everything)
|
|
132
|
+
for (const g of doc.groups) {
|
|
133
|
+
const gb = groupBox.get(g.id);
|
|
134
|
+
elements.push(p.rect(gb, '#fbfbfd', palette.primary, 2, { rx: 10 }));
|
|
135
|
+
elements.push(p.text(g.label, gb.x + 12, gb.y + 17, small, palette.primary, { weight: 'bold' }));
|
|
136
|
+
}
|
|
137
|
+
// edges (over panels, under nodes); endpoints may be nodes or groups
|
|
138
|
+
const idBox = new Map([...box, ...groupBox]);
|
|
139
|
+
for (const e of doc.edges) {
|
|
140
|
+
const a = idBox.get(e.from), b = idBox.get(e.to);
|
|
141
|
+
if (!a || !b)
|
|
142
|
+
continue;
|
|
143
|
+
const tier = e.cost !== undefined && doc.scale.tiers.length > 0 ? classifyCost(doc.scale, e.cost) : undefined;
|
|
144
|
+
const color = tier?.color ?? palette.textMuted;
|
|
145
|
+
const { start, end } = connectSlots(a, b);
|
|
146
|
+
elements.push(p.path(`M ${rhu(start.x)} ${rhu(start.y)} L ${rhu(end.x)} ${rhu(end.y)}`, color, 2, tier?.dash ? { dash: tier.dash } : {}));
|
|
147
|
+
if (e.cost !== undefined) {
|
|
148
|
+
const mx = (start.x + end.x) / 2, my = (start.y + end.y) / 2;
|
|
149
|
+
const label = doc.scale.unit ? `${e.cost} ${doc.scale.unit}` : String(e.cost);
|
|
150
|
+
const w = measureText(label, small).width + 8;
|
|
151
|
+
elements.push(p.rect({ x: mx - w / 2, y: my - 9, width: w, height: 16 }, palette.background, palette.background, 0, { rx: 3 }));
|
|
152
|
+
elements.push(p.text(label, mx, my + 3, small, color, { anchor: 'middle', weight: 'bold' }));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// nodes
|
|
156
|
+
const anchors = {};
|
|
157
|
+
for (const n of doc.nodes) {
|
|
158
|
+
const b = box.get(n.id);
|
|
159
|
+
elements.push(p.rect(b, palette.surface, palette.primary, 2, { rx: 8 }));
|
|
160
|
+
if (n.sub) {
|
|
161
|
+
elements.push(p.text(n.label, b.x + b.width / 2, b.y + 20, font, palette.text, { anchor: 'middle', weight: 'bold' }));
|
|
162
|
+
elements.push(p.text(n.sub, b.x + b.width / 2, b.y + 38, small, palette.textMuted, { anchor: 'middle' }));
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
elements.push(p.text(n.label, b.x + b.width / 2, b.y + b.height / 2 + font * 0.35, font, palette.text, { anchor: 'middle', weight: 'bold' }));
|
|
166
|
+
}
|
|
167
|
+
anchors[n.id] = { bounds: b };
|
|
168
|
+
}
|
|
169
|
+
for (const g of doc.groups)
|
|
170
|
+
anchors[g.id] = { bounds: groupBox.get(g.id) };
|
|
171
|
+
const allBoxes = [...box.values(), ...groupBox.values()];
|
|
172
|
+
const boxesRight = Math.max(margin, ...allBoxes.map(b => b.x + b.width));
|
|
173
|
+
const contentBottom = Math.max(margin + titleH, ...allBoxes.map(b => b.y + b.height));
|
|
174
|
+
let contentRight = boxesRight;
|
|
175
|
+
if (doc.scale.tiers.length > 0) {
|
|
176
|
+
const legend = buildLegend(p, theme, doc.scale, { x: boxesRight + 40, y: margin + titleH });
|
|
177
|
+
elements.push(...legend.elements);
|
|
178
|
+
contentRight = legend.bounds.x + legend.bounds.width;
|
|
179
|
+
}
|
|
180
|
+
const scene = {
|
|
181
|
+
viewBox: { x: 0, y: 0, width: contentRight + margin, height: contentBottom + margin },
|
|
182
|
+
background: palette.background,
|
|
183
|
+
elements,
|
|
184
|
+
};
|
|
185
|
+
return { scene, anchors: anchors };
|
|
186
|
+
}
|
|
187
|
+
export const topology = {
|
|
188
|
+
parseMermaid(input) {
|
|
189
|
+
return { version: '1.0', metadata: {}, ...parse(input) };
|
|
190
|
+
},
|
|
191
|
+
parseYaml(input) {
|
|
192
|
+
return JSON.parse(input);
|
|
193
|
+
},
|
|
194
|
+
layout(ir, theme) {
|
|
195
|
+
return layoutTopology(ir, theme);
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=topology.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topology.js","sourceRoot":"","sources":["../../../../../../src/diagrams/triton/topology/topology.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAiC,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAO7C,SAAS,KAAK,CAAC,KAAa;IAC1B,IAAI,KAAyB,CAAC;IAC9B,IAAI,IAAwB,CAAC;IAC7B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,QAA4B,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU;YAAE,SAAS;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACjE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAa;gBACrB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;gBAChE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3C,QAAQ,GAAG,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5H,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACzE,IAAI,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IACD,OAAO;QACL,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;QACzD,MAAM,EAAE,KAAK,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAgB,EAAE,KAAoB;IACnE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC;IACrC,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,CAAC,CAAW,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAChJ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,IAAI,GAAG,CAAC,KAAK;QAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEvJ,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgB,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;IACzC,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC;IAEzD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,EAAE,GAAG,MAAM,CAAC;QAChB,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;QAC3B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAChD,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACvI,CAAC,CAAC,CAAC;YACH,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzC,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,GAAG,MAAM,CAAC;QAChB,MAAM,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACjD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAClI,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;IAED,qEAAqE;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAe,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACvB,MAAM,IAAI,GAAyB,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpI,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;QAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1I,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9E,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,QAAQ;IACR,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACtH,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5G,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAChJ,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,EAAE,CAAC;IAE5E,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtF,IAAI,YAAY,GAAG,UAAU,CAAC;IAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAU;QACnB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE;QACrF,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ;KACT,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAA6B,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAwF;IAC3G,YAAY,CAAC,KAAa;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,EAAE,EAAE,KAAoB;QAC7B,OAAO,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect whether input is YAML or Mermaid, and which diagram type it is.
|
|
3
|
+
* Returns the result without parsing — no grammar is invoked here.
|
|
4
|
+
*
|
|
5
|
+
* A leading `---` frontmatter block is allowed in front of Mermaid source
|
|
6
|
+
* (e.g. gantt with title/theme); the diagram type is detected from the body
|
|
7
|
+
* after the closing fence. Only a `type:` key without a Mermaid body routes
|
|
8
|
+
* to the YAML path.
|
|
9
|
+
*/
|
|
10
|
+
const MERMAID_PATTERNS = [
|
|
11
|
+
[/^(flowchart|graph)\s/i, 'flowchart'],
|
|
12
|
+
[/^sequenceDiagram/i, 'sequence'],
|
|
13
|
+
[/^timeline/i, 'timeline'],
|
|
14
|
+
[/^mindmap/i, 'mindmap'],
|
|
15
|
+
[/^stateDiagram/i, 'state'],
|
|
16
|
+
[/^classDiagram/i, 'class'],
|
|
17
|
+
[/^erDiagram/i, 'er'],
|
|
18
|
+
[/^gantt/i, 'gantt'],
|
|
19
|
+
[/^journey/i, 'journey'],
|
|
20
|
+
[/^C4(Context|Container|Component|Dynamic|Deployment)/i, 'c4'],
|
|
21
|
+
[/^sankey/i, 'sankey'],
|
|
22
|
+
[/^kanban/i, 'kanban'],
|
|
23
|
+
[/^requirement(Diagram)?/i, 'requirement'],
|
|
24
|
+
[/^gitGraph/i, 'gitgraph'],
|
|
25
|
+
[/^packet/i, 'packet'],
|
|
26
|
+
[/^pie\b/i, 'pie'],
|
|
27
|
+
[/^xychart(-beta)?/i, 'xychart'],
|
|
28
|
+
[/^quadrantChart/i, 'quadrant'],
|
|
29
|
+
[/^radar(-beta)?/i, 'radar'],
|
|
30
|
+
[/^block/i, 'block'],
|
|
31
|
+
[/^architecture/i, 'architecture'],
|
|
32
|
+
[/^poster/i, 'poster'],
|
|
33
|
+
[/^tree\b/i, 'tree'],
|
|
34
|
+
[/^plan\b/i, 'plan'],
|
|
35
|
+
[/^avl\b/i, 'avl'],
|
|
36
|
+
[/^rbtree\b/i, 'rbtree'],
|
|
37
|
+
[/^btree\b/i, 'btree'],
|
|
38
|
+
[/^radix\b/i, 'radix'],
|
|
39
|
+
[/^segtree\b/i, 'segtree'],
|
|
40
|
+
[/^heap\b/i, 'heap'],
|
|
41
|
+
[/^array\b/i, 'array'],
|
|
42
|
+
[/^linkedlist\b/i, 'linkedlist'],
|
|
43
|
+
[/^memory\b/i, 'memory'],
|
|
44
|
+
[/^page\b/i, 'page'],
|
|
45
|
+
[/^cqueue\b/i, 'cqueue'],
|
|
46
|
+
[/^deque\b/i, 'deque'],
|
|
47
|
+
[/^pqueue\b/i, 'pqueue'],
|
|
48
|
+
[/^queue\b/i, 'queue'],
|
|
49
|
+
[/^stack\b/i, 'stack'],
|
|
50
|
+
[/^hashmap\b/i, 'hashmap'],
|
|
51
|
+
[/^matrix\b/i, 'matrix'],
|
|
52
|
+
[/^trie\b/i, 'trie'],
|
|
53
|
+
// `graph` is owned by Mermaid flowchart (`graph TD`), so the data-structure
|
|
54
|
+
// graph uses a distinct, unambiguous keyword instead.
|
|
55
|
+
[/^nodegraph\b/i, 'nodegraph'],
|
|
56
|
+
[/^dsgraph\b/i, 'nodegraph'],
|
|
57
|
+
[/^unionfind\b/i, 'unionfind'],
|
|
58
|
+
[/^dsu\b/i, 'unionfind'],
|
|
59
|
+
[/^topology\b/i, 'topology'],
|
|
60
|
+
];
|
|
61
|
+
function matchMermaid(text) {
|
|
62
|
+
for (const [pattern, type] of MERMAID_PATTERNS) {
|
|
63
|
+
if (pattern.test(text))
|
|
64
|
+
return type;
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
export function detect(input) {
|
|
69
|
+
const trimmed = input.trimStart();
|
|
70
|
+
// Frontmatter block (--- … ---): peek at the body for a Mermaid keyword.
|
|
71
|
+
if (trimmed.startsWith('---')) {
|
|
72
|
+
const fm = trimmed.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/);
|
|
73
|
+
if (fm) {
|
|
74
|
+
const body = trimmed.slice(fm[0].length).trimStart();
|
|
75
|
+
const bodyType = matchMermaid(body);
|
|
76
|
+
if (bodyType)
|
|
77
|
+
return { format: 'mermaid', diagramType: bodyType };
|
|
78
|
+
const typeInFm = fm[0].match(/^\s*type:\s*(\w+)/m);
|
|
79
|
+
if (typeInFm)
|
|
80
|
+
return { format: 'yaml', diagramType: typeInFm[1] };
|
|
81
|
+
}
|
|
82
|
+
const typeMatch = trimmed.match(/^type:\s*(\w+)/m);
|
|
83
|
+
return { format: 'yaml', diagramType: (typeMatch?.[1] ?? 'flowchart') };
|
|
84
|
+
}
|
|
85
|
+
// YAML with a leading `type:` key (first line only — avoid matching a
|
|
86
|
+
// `type:` field inside a diagram body, e.g. requirement element blocks).
|
|
87
|
+
if (/^type:\s/.test(trimmed)) {
|
|
88
|
+
const typeMatch = trimmed.match(/^type:\s*(\w+)/);
|
|
89
|
+
return { format: 'yaml', diagramType: (typeMatch?.[1] ?? 'flowchart') };
|
|
90
|
+
}
|
|
91
|
+
// Mermaid: match the first non-comment, non-whitespace token.
|
|
92
|
+
return { format: 'mermaid', diagramType: matchMermaid(trimmed) ?? 'flowchart' };
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../../src/frontend/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { ThemeInput, Result, LayoutResult } from '../contracts/index.js';
|
|
|
11
11
|
*
|
|
12
12
|
* Returns a Result — never throws.
|
|
13
13
|
*/
|
|
14
|
-
export declare function compileSync(input: string, themeInput?: ThemeInput): Result<LayoutResult>;
|
|
14
|
+
export declare function compileSync(input: string, themeInput?: ThemeInput, forcedThemeName?: string): Result<LayoutResult>;
|
|
15
15
|
/**
|
|
16
16
|
* Render input text to an output string (default: SVG) — synchronous.
|
|
17
17
|
*
|
|
@@ -19,7 +19,7 @@ export declare function compileSync(input: string, themeInput?: ThemeInput): Res
|
|
|
19
19
|
* Returns a Result — never throws.
|
|
20
20
|
* Pass rendererName to use a non-default registered renderer.
|
|
21
21
|
*/
|
|
22
|
-
export declare function renderSync(input: string, themeInput?: ThemeInput, rendererName?: string): Result<string>;
|
|
22
|
+
export declare function renderSync(input: string, themeInput?: ThemeInput, rendererName?: string, forcedThemeName?: string): Result<string>;
|
|
23
23
|
/**
|
|
24
24
|
* Compile input text to a LayoutResult (Scene + anchor registry).
|
|
25
25
|
*
|
|
@@ -30,7 +30,7 @@ export declare function renderSync(input: string, themeInput?: ThemeInput, rende
|
|
|
30
30
|
*
|
|
31
31
|
* Returns a Result — never throws.
|
|
32
32
|
*/
|
|
33
|
-
export declare function compile(input: string, themeInput?: ThemeInput): Promise<Result<LayoutResult>>;
|
|
33
|
+
export declare function compile(input: string, themeInput?: ThemeInput, forcedThemeName?: string): Promise<Result<LayoutResult>>;
|
|
34
34
|
/**
|
|
35
35
|
* Render input text to an output string (default: SVG).
|
|
36
36
|
*
|
|
@@ -40,5 +40,5 @@ export declare function compile(input: string, themeInput?: ThemeInput): Promise
|
|
|
40
40
|
* Returns a Result — never throws.
|
|
41
41
|
* Pass rendererName to use a non-default registered renderer.
|
|
42
42
|
*/
|
|
43
|
-
export declare function render(input: string, themeInput?: ThemeInput, rendererName?: string): Promise<Result<string>>;
|
|
43
|
+
export declare function render(input: string, themeInput?: ThemeInput, rendererName?: string, forcedThemeName?: string): Promise<Result<string>>;
|
|
44
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAqH7F;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC,YAAY,CAAC,CA8BtB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,YAAY,SAAQ,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,MAAM,CAAC,MAAM,CAAC,CAehB;AAED;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAE/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,YAAY,SAAQ,EACpB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAEzB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { ok, err } from '../contracts/index.js';
|
|
2
|
+
import { detect } from './detect.js';
|
|
3
|
+
import { stripComments } from './preprocess.js';
|
|
4
|
+
import { registerDiagram, getModule } from './registry.js';
|
|
5
|
+
import { registerRenderer, getRenderer } from '../render/registry.js';
|
|
6
|
+
import { getThemePreset } from '../theme/preset.js';
|
|
7
|
+
import { resolveTheme } from '../theme/resolver.js';
|
|
8
|
+
import { flowchart } from '../diagrams/mermaid/flowchart/index.js';
|
|
9
|
+
import { timeline } from '../diagrams/mermaid/timeline/index.js';
|
|
10
|
+
import { poster } from '../diagrams/triton/poster/index.js';
|
|
11
|
+
import { pie } from '../diagrams/mermaid/pie/index.js';
|
|
12
|
+
import { xychart } from '../diagrams/mermaid/xychart/index.js';
|
|
13
|
+
import { quadrant } from '../diagrams/mermaid/quadrant/index.js';
|
|
14
|
+
import { radar } from '../diagrams/mermaid/radar/index.js';
|
|
15
|
+
import { gantt } from '../diagrams/mermaid/gantt/index.js';
|
|
16
|
+
import { journey } from '../diagrams/mermaid/journey/index.js';
|
|
17
|
+
import { kanban } from '../diagrams/mermaid/kanban/index.js';
|
|
18
|
+
import { sequence } from '../diagrams/mermaid/sequence/index.js';
|
|
19
|
+
import { classDiagram } from '../diagrams/mermaid/class/index.js';
|
|
20
|
+
import { state } from '../diagrams/mermaid/state/index.js';
|
|
21
|
+
import { er } from '../diagrams/mermaid/er/index.js';
|
|
22
|
+
import { block } from '../diagrams/triton/block/index.js';
|
|
23
|
+
import { requirement } from '../diagrams/mermaid/requirement/index.js';
|
|
24
|
+
import { sankey } from '../diagrams/mermaid/sankey/index.js';
|
|
25
|
+
import { mindmap } from '../diagrams/mermaid/mindmap/index.js';
|
|
26
|
+
import { gitgraph } from '../diagrams/mermaid/gitgraph/index.js';
|
|
27
|
+
import { c4 } from '../diagrams/mermaid/c4/index.js';
|
|
28
|
+
import { architecture } from '../diagrams/triton/architecture/index.js';
|
|
29
|
+
import { packet } from '../diagrams/triton/packet/index.js';
|
|
30
|
+
import { tree } from '../diagrams/triton/ds/tree/index.js';
|
|
31
|
+
import { plan } from '../diagrams/triton/ds/tree/plan.js';
|
|
32
|
+
import { avl } from '../diagrams/triton/ds/tree/avl.js';
|
|
33
|
+
import { rbtree } from '../diagrams/triton/ds/tree/rbtree.js';
|
|
34
|
+
import { btree } from '../diagrams/triton/ds/tree/btree.js';
|
|
35
|
+
import { radix } from '../diagrams/triton/ds/tree/radix.js';
|
|
36
|
+
import { segtree } from '../diagrams/triton/ds/tree/segtree.js';
|
|
37
|
+
import { heap } from '../diagrams/triton/ds/tree/heap.js';
|
|
38
|
+
import { array } from '../diagrams/triton/ds/struct/array.js';
|
|
39
|
+
import { linkedlist } from '../diagrams/triton/ds/struct/linkedlist.js';
|
|
40
|
+
import { memory } from '../diagrams/triton/ds/struct/memory.js';
|
|
41
|
+
import { page } from '../diagrams/triton/ds/struct/page.js';
|
|
42
|
+
import { queue } from '../diagrams/triton/ds/queue/queue.js';
|
|
43
|
+
import { cqueue } from '../diagrams/triton/ds/queue/cqueue.js';
|
|
44
|
+
import { deque } from '../diagrams/triton/ds/queue/deque.js';
|
|
45
|
+
import { pqueue } from '../diagrams/triton/ds/queue/pqueue.js';
|
|
46
|
+
import { stack } from '../diagrams/triton/ds/stack/stack.js';
|
|
47
|
+
import { hashmap } from '../diagrams/triton/ds/hashmap/hashmap.js';
|
|
48
|
+
import { matrix } from '../diagrams/triton/ds/matrix/matrix.js';
|
|
49
|
+
import { trie } from '../diagrams/triton/ds/trie/trie.js';
|
|
50
|
+
import { graph } from '../diagrams/triton/ds/graph/graph.js';
|
|
51
|
+
import { unionfind } from '../diagrams/triton/ds/unionfind/unionfind.js';
|
|
52
|
+
import { topology } from '../diagrams/triton/topology/topology.js';
|
|
53
|
+
import { svgRenderer } from '../render/svg.js';
|
|
54
|
+
import { registerRouter } from '../routing/registry.js';
|
|
55
|
+
import { straightRouter, orthogonalRouter, bezierRouter, polylineRouter, } from '../routing/router.js';
|
|
56
|
+
// ─── Register built-ins ───────────────────────────────────────────────────────
|
|
57
|
+
registerDiagram('flowchart', flowchart);
|
|
58
|
+
registerDiagram('timeline', timeline);
|
|
59
|
+
registerDiagram('poster', poster);
|
|
60
|
+
registerDiagram('pie', pie);
|
|
61
|
+
registerDiagram('xychart', xychart);
|
|
62
|
+
registerDiagram('quadrant', quadrant);
|
|
63
|
+
registerDiagram('radar', radar);
|
|
64
|
+
registerDiagram('gantt', gantt);
|
|
65
|
+
registerDiagram('journey', journey);
|
|
66
|
+
registerDiagram('kanban', kanban);
|
|
67
|
+
registerDiagram('sequence', sequence);
|
|
68
|
+
registerDiagram('class', classDiagram);
|
|
69
|
+
registerDiagram('state', state);
|
|
70
|
+
registerDiagram('er', er);
|
|
71
|
+
registerDiagram('block', block);
|
|
72
|
+
registerDiagram('requirement', requirement);
|
|
73
|
+
registerDiagram('sankey', sankey);
|
|
74
|
+
registerDiagram('mindmap', mindmap);
|
|
75
|
+
registerDiagram('gitgraph', gitgraph);
|
|
76
|
+
registerDiagram('c4', c4);
|
|
77
|
+
registerDiagram('architecture', architecture);
|
|
78
|
+
registerDiagram('packet', packet);
|
|
79
|
+
registerDiagram('tree', tree);
|
|
80
|
+
registerDiagram('plan', plan);
|
|
81
|
+
registerDiagram('avl', avl);
|
|
82
|
+
registerDiagram('rbtree', rbtree);
|
|
83
|
+
registerDiagram('btree', btree);
|
|
84
|
+
registerDiagram('radix', radix);
|
|
85
|
+
registerDiagram('segtree', segtree);
|
|
86
|
+
registerDiagram('heap', heap);
|
|
87
|
+
registerDiagram('array', array);
|
|
88
|
+
registerDiagram('linkedlist', linkedlist);
|
|
89
|
+
registerDiagram('memory', memory);
|
|
90
|
+
registerDiagram('page', page);
|
|
91
|
+
registerDiagram('queue', queue);
|
|
92
|
+
registerDiagram('cqueue', cqueue);
|
|
93
|
+
registerDiagram('deque', deque);
|
|
94
|
+
registerDiagram('pqueue', pqueue);
|
|
95
|
+
registerDiagram('stack', stack);
|
|
96
|
+
registerDiagram('hashmap', hashmap);
|
|
97
|
+
registerDiagram('matrix', matrix);
|
|
98
|
+
registerDiagram('trie', trie);
|
|
99
|
+
registerDiagram('nodegraph', graph);
|
|
100
|
+
registerDiagram('unionfind', unionfind);
|
|
101
|
+
registerDiagram('topology', topology);
|
|
102
|
+
registerRenderer(svgRenderer);
|
|
103
|
+
registerRouter('straight', straightRouter);
|
|
104
|
+
registerRouter('orthogonal', orthogonalRouter);
|
|
105
|
+
registerRouter('bezier', bezierRouter);
|
|
106
|
+
registerRouter('polyline', polylineRouter);
|
|
107
|
+
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
108
|
+
/**
|
|
109
|
+
* Compile input text to a LayoutResult (Scene + anchor registry) — synchronous.
|
|
110
|
+
*
|
|
111
|
+
* Every Triton layout engine is synchronous (no font I/O, WASM, or fetching),
|
|
112
|
+
* so the whole parse → theme → layout pipeline runs without promises. This is
|
|
113
|
+
* the canonical implementation; the async `compile()` is a thin wrapper.
|
|
114
|
+
*
|
|
115
|
+
* Theme resolution order (later overrides earlier):
|
|
116
|
+
* defaultTheme ← themeInput ← module.defaultThemeOverride ← ir.themeOverride
|
|
117
|
+
*
|
|
118
|
+
* Returns a Result — never throws.
|
|
119
|
+
*/
|
|
120
|
+
export function compileSync(input, themeInput, forcedThemeName) {
|
|
121
|
+
const cleaned = stripComments(input);
|
|
122
|
+
const { format, diagramType } = detect(cleaned);
|
|
123
|
+
const module = getModule(diagramType);
|
|
124
|
+
if (!module) {
|
|
125
|
+
return err('UNKNOWN_DIAGRAM', `No module registered for diagram type: ${diagramType}`);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
const ir = format === 'yaml'
|
|
129
|
+
? module.parseYaml(cleaned)
|
|
130
|
+
: module.parseMermaid(cleaned);
|
|
131
|
+
// Build theme: forced preset → metadata preset → global input → module defaults → per-IR override
|
|
132
|
+
const themeName = typeof ir.metadata?.theme === 'string' ? ir.metadata.theme : undefined;
|
|
133
|
+
const base = resolveTheme(themeInput ?? {}, getThemePreset(forcedThemeName ?? themeName));
|
|
134
|
+
const withModuleDefaults = module.defaultThemeOverride
|
|
135
|
+
? resolveTheme(module.defaultThemeOverride, base)
|
|
136
|
+
: base;
|
|
137
|
+
const finalTheme = ir.themeOverride
|
|
138
|
+
? resolveTheme(ir.themeOverride, withModuleDefaults)
|
|
139
|
+
: withModuleDefaults;
|
|
140
|
+
const result = module.layout(ir, finalTheme);
|
|
141
|
+
return ok(result);
|
|
142
|
+
}
|
|
143
|
+
catch (cause) {
|
|
144
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
145
|
+
return err('PARSE_ERROR', message, cause);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Render input text to an output string (default: SVG) — synchronous.
|
|
150
|
+
*
|
|
151
|
+
* This is the canonical render path; the async `render()` is a thin wrapper.
|
|
152
|
+
* Returns a Result — never throws.
|
|
153
|
+
* Pass rendererName to use a non-default registered renderer.
|
|
154
|
+
*/
|
|
155
|
+
export function renderSync(input, themeInput, rendererName = 'svg', forcedThemeName) {
|
|
156
|
+
const compileResult = compileSync(input, themeInput, forcedThemeName);
|
|
157
|
+
if (!compileResult.ok)
|
|
158
|
+
return compileResult;
|
|
159
|
+
const renderer = getRenderer(rendererName);
|
|
160
|
+
if (!renderer) {
|
|
161
|
+
return err('UNKNOWN_RENDERER', `No renderer registered: ${rendererName}`);
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
return ok(renderer.render(compileResult.value.scene));
|
|
165
|
+
}
|
|
166
|
+
catch (cause) {
|
|
167
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
168
|
+
return err('LAYOUT_ERROR', message, cause);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Compile input text to a LayoutResult (Scene + anchor registry).
|
|
173
|
+
*
|
|
174
|
+
* Async wrapper over {@link compileSync} — the signature and behavior are
|
|
175
|
+
* unchanged for existing callers. Theme resolution order (later overrides
|
|
176
|
+
* earlier):
|
|
177
|
+
* defaultTheme ← themeInput ← module.defaultThemeOverride ← ir.themeOverride
|
|
178
|
+
*
|
|
179
|
+
* Returns a Result — never throws.
|
|
180
|
+
*/
|
|
181
|
+
export async function compile(input, themeInput, forcedThemeName) {
|
|
182
|
+
return compileSync(input, themeInput, forcedThemeName);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Render input text to an output string (default: SVG).
|
|
186
|
+
*
|
|
187
|
+
* Async wrapper over {@link renderSync} — the signature and behavior are
|
|
188
|
+
* unchanged for existing callers.
|
|
189
|
+
*
|
|
190
|
+
* Returns a Result — never throws.
|
|
191
|
+
* Pass rendererName to use a non-default registered renderer.
|
|
192
|
+
*/
|
|
193
|
+
export async function render(input, themeInput, rendererName = 'svg', forcedThemeName) {
|
|
194
|
+
return renderSync(input, themeInput, rendererName, forcedThemeName);
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/frontend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file frontend/preprocess.ts — Source pre-processing before grammar dispatch.
|
|
3
|
+
*
|
|
4
|
+
* Central `%%` comment stripping so that every diagram family accepts comment
|
|
5
|
+
* lines without requiring per-grammar Comment rules.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Strip full-line `%%` comments from Mermaid diagram source.
|
|
9
|
+
*
|
|
10
|
+
* ### Semantics (aligned with the 4 built-in grammars that handle `%%` natively)
|
|
11
|
+
*
|
|
12
|
+
* - **Full-line only:** a line is a comment iff its first non-whitespace
|
|
13
|
+
* characters are `%%`. Such lines are removed entirely.
|
|
14
|
+
* - **No inline trailing comments:** `A --> B %% note` is NOT stripped. This
|
|
15
|
+
* is the safe default — distinguishing a real trailing comment from `%%`
|
|
16
|
+
* inside node labels such as `A["50%% off"]` is unsafe without a full parse.
|
|
17
|
+
* The 4 grammars that already handle their own Comment rules continue to work
|
|
18
|
+
* unchanged on the pre-stripped input.
|
|
19
|
+
* - **Frontmatter preserved:** if the input opens with a `---\n…\n---` YAML
|
|
20
|
+
* frontmatter block, that block is passed through verbatim (YAML may contain
|
|
21
|
+
* `%%` in values). Comment stripping applies only to the Mermaid body that
|
|
22
|
+
* follows the closing fence.
|
|
23
|
+
* - **Pure-YAML inputs untouched:** if the first non-whitespace token is
|
|
24
|
+
* `type:` (the Triton YAML path), the input is returned unchanged so that
|
|
25
|
+
* `parseYaml` receives exactly what the author wrote.
|
|
26
|
+
*/
|
|
27
|
+
export declare function stripComments(input: string): string;
|
|
28
|
+
//# sourceMappingURL=preprocess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../../../src/frontend/preprocess.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBnD"}
|