@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,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a fully-resolved Scene to an SVG string.
|
|
3
|
+
*
|
|
4
|
+
* Contract: the caller must have already incorporated all overlay geometry
|
|
5
|
+
* into Scene.elements before calling this. The renderer is diagram-agnostic.
|
|
6
|
+
*/
|
|
7
|
+
export function renderSVG(scene) {
|
|
8
|
+
const { viewBox, background, elements, defs } = scene;
|
|
9
|
+
const vb = `${viewBox.x} ${viewBox.y} ${viewBox.width} ${viewBox.height}`;
|
|
10
|
+
const markerMetrics = markerMetricsById(defs ?? []);
|
|
11
|
+
const lines = [
|
|
12
|
+
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${vb}" width="${viewBox.width}" height="${viewBox.height}">`,
|
|
13
|
+
];
|
|
14
|
+
if (defs && defs.length > 0) {
|
|
15
|
+
lines.push(' <defs>');
|
|
16
|
+
for (const def of defs)
|
|
17
|
+
lines.push(` ${def}`);
|
|
18
|
+
lines.push(' </defs>');
|
|
19
|
+
}
|
|
20
|
+
if (background) {
|
|
21
|
+
// Use explicit x/width to cover the full viewBox, including negative x origins.
|
|
22
|
+
lines.push(` <rect x="${viewBox.x}" y="${viewBox.y}" width="${viewBox.width}" height="${viewBox.height}" fill="${background}" />`);
|
|
23
|
+
}
|
|
24
|
+
for (const el of elements) {
|
|
25
|
+
lines.push(renderElement(el, 1, markerMetrics));
|
|
26
|
+
}
|
|
27
|
+
lines.push('</svg>');
|
|
28
|
+
return lines.join('\n');
|
|
29
|
+
}
|
|
30
|
+
// ─── Element Rendering ────────────────────────────────────────────────────────
|
|
31
|
+
function renderElement(el, depth, markerMetrics) {
|
|
32
|
+
const pad = ' '.repeat(depth);
|
|
33
|
+
switch (el.type) {
|
|
34
|
+
case 'rect': {
|
|
35
|
+
const rx = el.rx != null ? ` rx="${el.rx}"` : '';
|
|
36
|
+
const fillOpacity = el.fillOpacity != null ? ` fill-opacity="${el.fillOpacity}"` : '';
|
|
37
|
+
const opacity = el.opacity != null ? ` opacity="${el.opacity}"` : '';
|
|
38
|
+
return `${pad}<rect x="${el.bounds.x}" y="${el.bounds.y}" width="${el.bounds.width}" height="${el.bounds.height}" fill="${fillVal(el.fill)}"${fillOpacity} stroke="${el.stroke}" stroke-width="${el.strokeWidth}"${rx}${opacity} />`;
|
|
39
|
+
}
|
|
40
|
+
case 'circle': {
|
|
41
|
+
const opacity = el.opacity != null ? ` opacity="${el.opacity}"` : '';
|
|
42
|
+
return `${pad}<circle cx="${el.center.x}" cy="${el.center.y}" r="${el.radius}" fill="${fillVal(el.fill)}" stroke="${el.stroke}" stroke-width="${el.strokeWidth}"${opacity} />`;
|
|
43
|
+
}
|
|
44
|
+
case 'text': {
|
|
45
|
+
const anchor = el.anchor != null ? ` text-anchor="${el.anchor}"` : '';
|
|
46
|
+
const weight = el.fontWeight != null ? ` font-weight="${el.fontWeight}"` : '';
|
|
47
|
+
const opacity = el.opacity != null ? ` opacity="${el.opacity}"` : '';
|
|
48
|
+
return `${pad}<text x="${el.position.x}" y="${el.position.y}" font-size="${el.fontSize}" font-family="${escapeAttr(el.fontFamily)}" fill="${fillVal(el.fill)}"${anchor}${weight}${opacity}>${escapeXml(el.content)}</text>`;
|
|
49
|
+
}
|
|
50
|
+
case 'path': {
|
|
51
|
+
const drawLength = el.animated === 'draw' ? pathLengthApprox(el.d) : undefined;
|
|
52
|
+
const dashValue = drawLength != null ? `${drawLength} ${drawLength}` : el.strokeDasharray;
|
|
53
|
+
const dash = dashValue != null ? ` stroke-dasharray="${escapeAttr(dashValue)}"` : '';
|
|
54
|
+
const mEnd = el.markerEnd != null ? ` marker-end="url(#${escapeAttr(el.markerEnd)})"` : '';
|
|
55
|
+
const mStart = el.markerStart != null ? ` marker-start="url(#${escapeAttr(el.markerStart)})"` : '';
|
|
56
|
+
const fill = ` fill="${fillVal(el.fill)}"`;
|
|
57
|
+
const opacity = el.opacity != null ? ` opacity="${el.opacity}"` : '';
|
|
58
|
+
const stroke = el.animated === 'flow' ? `url(#${flowGradientId(el.d, el.stroke)})` : el.stroke;
|
|
59
|
+
const attrs = `${pad}<path d="${escapeAttr(el.d)}" stroke="${escapeAttr(stroke)}" stroke-width="${el.strokeWidth}"${fill}${dash}${mEnd}${mStart}${opacity}`;
|
|
60
|
+
if (el.animated === 'march' && el.strokeDasharray) {
|
|
61
|
+
const period = parseDasharrayPeriod(el.strokeDasharray);
|
|
62
|
+
const animate = `<animate attributeName="stroke-dashoffset" from="0" to="-${period}" dur="0.8s" repeatCount="indefinite"/>`;
|
|
63
|
+
return `${attrs}>\n${pad} ${animate}\n${pad}</path>`;
|
|
64
|
+
}
|
|
65
|
+
if (el.animated === 'draw') {
|
|
66
|
+
const animate = `<animate attributeName="stroke-dashoffset" values="0;${drawLength};0" dur="2s" repeatCount="indefinite"/>`;
|
|
67
|
+
return `${attrs}>\n${pad} ${animate}\n${pad}</path>`;
|
|
68
|
+
}
|
|
69
|
+
if (el.animated === 'pulse') {
|
|
70
|
+
const wide = formatNum(el.strokeWidth * 2);
|
|
71
|
+
const animate = `<animate attributeName="stroke-width" values="${el.strokeWidth};${wide};${el.strokeWidth}" dur="1.4s" repeatCount="indefinite"/>`;
|
|
72
|
+
return `${attrs}>\n${pad} ${animate}\n${pad}</path>`;
|
|
73
|
+
}
|
|
74
|
+
if (el.animated === 'glow') {
|
|
75
|
+
const animate = '<animate attributeName="stroke-opacity" values="1;0.3;1" dur="1.6s" repeatCount="indefinite"/>';
|
|
76
|
+
return `${attrs}>\n${pad} ${animate}\n${pad}</path>`;
|
|
77
|
+
}
|
|
78
|
+
if (el.animated === 'colorcycle') {
|
|
79
|
+
const animate = '<animate attributeName="stroke" values="#4A90D9;#9b51e0;#e54444;#2ecc71;#4A90D9" dur="3s" repeatCount="indefinite"/>';
|
|
80
|
+
return `${attrs}>\n${pad} ${animate}\n${pad}</path>`;
|
|
81
|
+
}
|
|
82
|
+
if (el.animated === 'flow') {
|
|
83
|
+
const gradient = renderFlowGradient(el, pad);
|
|
84
|
+
return `${gradient}\n${attrs} />`;
|
|
85
|
+
}
|
|
86
|
+
if (el.animated === 'particle') {
|
|
87
|
+
const motionPath = trimMotionPathForArrowhead(el.d, motionArrowheadClearance(el, 4, markerMetrics));
|
|
88
|
+
const circle = renderMotionCircle(motionPath, el.stroke, 4, undefined, '1.5s', '0s', pad);
|
|
89
|
+
return `${attrs} />\n${circle}`;
|
|
90
|
+
}
|
|
91
|
+
if (el.animated === 'comet') {
|
|
92
|
+
const motionPath = trimMotionPathForArrowhead(el.d, motionArrowheadClearance(el, 4.2, markerMetrics));
|
|
93
|
+
const circles = [
|
|
94
|
+
renderMotionCircle(motionPath, el.stroke, 4.2, 0.95, '1.8s', '0s', pad),
|
|
95
|
+
renderMotionCircle(motionPath, el.stroke, 3.1, 0.45, '1.8s', '-0.18s', pad),
|
|
96
|
+
renderMotionCircle(motionPath, el.stroke, 2.2, 0.22, '1.8s', '-0.36s', pad),
|
|
97
|
+
].join('\n');
|
|
98
|
+
return `${attrs} />\n${circles}`;
|
|
99
|
+
}
|
|
100
|
+
if (el.animated === 'stream') {
|
|
101
|
+
const motionPath = trimMotionPathForArrowhead(el.d, motionArrowheadClearance(el, 3.2, markerMetrics));
|
|
102
|
+
const circles = [0, 1, 2, 3]
|
|
103
|
+
.map(i => renderMotionCircle(motionPath, el.stroke, 3.2, 0.9, '2s', i === 0 ? '0s' : `-${formatNum(i * 0.5)}s`, pad))
|
|
104
|
+
.join('\n');
|
|
105
|
+
return `${attrs} />\n${circles}`;
|
|
106
|
+
}
|
|
107
|
+
return `${attrs} />`;
|
|
108
|
+
}
|
|
109
|
+
case 'group': {
|
|
110
|
+
const id = el.id != null ? ` id="${escapeAttr(el.id)}"` : '';
|
|
111
|
+
const transform = el.transform != null ? ` transform="${escapeAttr(el.transform)}"` : '';
|
|
112
|
+
const opacity = el.opacity != null ? ` opacity="${el.opacity}"` : '';
|
|
113
|
+
if (el.children.length === 0) {
|
|
114
|
+
return `${pad}<g${id}${transform}${opacity} />`;
|
|
115
|
+
}
|
|
116
|
+
const inner = el.children.map(c => renderElement(c, depth + 1, markerMetrics)).join('\n');
|
|
117
|
+
return `${pad}<g${id}${transform}${opacity}>\n${inner}\n${pad}</g>`;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
122
|
+
/** Sum all values in a stroke-dasharray string — one full animation period. */
|
|
123
|
+
function parseDasharrayPeriod(dasharray) {
|
|
124
|
+
return dasharray
|
|
125
|
+
.trim()
|
|
126
|
+
.split(/[\s,]+/)
|
|
127
|
+
.map(Number)
|
|
128
|
+
.filter(n => !isNaN(n) && n > 0)
|
|
129
|
+
.reduce((sum, n) => sum + n, 0);
|
|
130
|
+
}
|
|
131
|
+
function renderMotionCircle(path, fill, radius, opacity, dur, begin, pad) {
|
|
132
|
+
const opacityAttr = opacity != null ? ` opacity="${opacity}"` : '';
|
|
133
|
+
return `${pad}<circle r="${radius}" fill="${escapeAttr(fill)}"${opacityAttr}>\n${pad} <animateMotion dur="${dur}" begin="${begin}" repeatCount="indefinite" rotate="auto" path="${escapeAttr(path)}"/>\n${pad}</circle>`;
|
|
134
|
+
}
|
|
135
|
+
const DEFAULT_MARKER_REF_X = 7;
|
|
136
|
+
const MIN_MOTION_SEGMENT_LENGTH = 1;
|
|
137
|
+
function trimMotionPathForArrowhead(path, clearance) {
|
|
138
|
+
if (clearance <= 0)
|
|
139
|
+
return path;
|
|
140
|
+
const pts = pathPoints(path);
|
|
141
|
+
if (pts.length < 2)
|
|
142
|
+
return path;
|
|
143
|
+
const end = pts[pts.length - 1];
|
|
144
|
+
const prev = pts[pts.length - 2];
|
|
145
|
+
const dx = end.x - prev.x;
|
|
146
|
+
const dy = end.y - prev.y;
|
|
147
|
+
const segmentLength = Math.hypot(dx, dy);
|
|
148
|
+
if (segmentLength === 0)
|
|
149
|
+
return path;
|
|
150
|
+
const remainingLength = segmentLength > MIN_MOTION_SEGMENT_LENGTH
|
|
151
|
+
? Math.max(MIN_MOTION_SEGMENT_LENGTH, segmentLength - clearance)
|
|
152
|
+
: segmentLength / 2;
|
|
153
|
+
const unitX = dx / segmentLength;
|
|
154
|
+
const unitY = dy / segmentLength;
|
|
155
|
+
const trimmedEnd = {
|
|
156
|
+
x: prev.x + unitX * remainingLength,
|
|
157
|
+
y: prev.y + unitY * remainingLength,
|
|
158
|
+
};
|
|
159
|
+
const motionPts = [...pts.slice(0, -1), trimmedEnd];
|
|
160
|
+
return motionPts
|
|
161
|
+
.map((pt, i) => `${i === 0 ? 'M' : 'L'} ${formatNum(pt.x)} ${formatNum(pt.y)}`)
|
|
162
|
+
.join(' ');
|
|
163
|
+
}
|
|
164
|
+
function motionArrowheadClearance(el, dotRadius, markerMetrics) {
|
|
165
|
+
if (el.markerEnd == null)
|
|
166
|
+
return 0;
|
|
167
|
+
const marker = markerMetrics.get(el.markerEnd) ?? { refX: DEFAULT_MARKER_REF_X, markerUnits: 'strokeWidth' };
|
|
168
|
+
const markerBackOffset = marker.markerUnits === 'strokeWidth'
|
|
169
|
+
? marker.refX * el.strokeWidth
|
|
170
|
+
: marker.refX;
|
|
171
|
+
return markerBackOffset + dotRadius;
|
|
172
|
+
}
|
|
173
|
+
function markerMetricsById(defs) {
|
|
174
|
+
const markers = new Map();
|
|
175
|
+
for (const def of defs) {
|
|
176
|
+
for (const match of def.matchAll(/<marker\b[^>]*>/g)) {
|
|
177
|
+
const marker = match[0];
|
|
178
|
+
const id = attrValue(marker, 'id');
|
|
179
|
+
const refX = attrNumber(marker, 'refX');
|
|
180
|
+
if (id == null || refX == null)
|
|
181
|
+
continue;
|
|
182
|
+
const markerUnits = attrValue(marker, 'markerUnits') === 'userSpaceOnUse' ? 'userSpaceOnUse' : 'strokeWidth';
|
|
183
|
+
markers.set(id, { refX, markerUnits });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return markers;
|
|
187
|
+
}
|
|
188
|
+
function attrValue(text, name) {
|
|
189
|
+
return text.match(new RegExp(`\\b${name}\\s*=\\s*"([^"]+)"`))?.[1]
|
|
190
|
+
?? text.match(new RegExp(`\\b${name}\\s*=\\s*'([^']+)'`))?.[1];
|
|
191
|
+
}
|
|
192
|
+
function attrNumber(text, name) {
|
|
193
|
+
const value = attrValue(text, name);
|
|
194
|
+
if (value == null)
|
|
195
|
+
return undefined;
|
|
196
|
+
const n = Number.parseFloat(value);
|
|
197
|
+
return Number.isFinite(n) ? n : undefined;
|
|
198
|
+
}
|
|
199
|
+
function renderFlowGradient(el, pad) {
|
|
200
|
+
const id = flowGradientId(el.d, el.stroke);
|
|
201
|
+
const { start, end } = pathEndpoints(el.d);
|
|
202
|
+
const base = escapeAttr(el.stroke);
|
|
203
|
+
return [
|
|
204
|
+
`${pad}<defs>`,
|
|
205
|
+
`${pad} <linearGradient id="${id}" gradientUnits="userSpaceOnUse" x1="${start.x}" y1="${start.y}" x2="${end.x}" y2="${end.y}">`,
|
|
206
|
+
`${pad} <stop offset="0%" stop-color="${base}" stop-opacity="0.75"/>`,
|
|
207
|
+
`${pad} <stop offset="20%" stop-color="${base}" stop-opacity="0.85">`,
|
|
208
|
+
`${pad} <animate attributeName="offset" values="0%;60%;100%" dur="1.6s" repeatCount="indefinite"/>`,
|
|
209
|
+
`${pad} </stop>`,
|
|
210
|
+
`${pad} <stop offset="35%" stop-color="#FFFFFF" stop-opacity="1">`,
|
|
211
|
+
`${pad} <animate attributeName="offset" values="10%;70%;100%" dur="1.6s" repeatCount="indefinite"/>`,
|
|
212
|
+
`${pad} </stop>`,
|
|
213
|
+
`${pad} <stop offset="50%" stop-color="${base}" stop-opacity="0.85">`,
|
|
214
|
+
`${pad} <animate attributeName="offset" values="20%;80%;100%" dur="1.6s" repeatCount="indefinite"/>`,
|
|
215
|
+
`${pad} </stop>`,
|
|
216
|
+
`${pad} <stop offset="100%" stop-color="${base}" stop-opacity="0.75"/>`,
|
|
217
|
+
`${pad} </linearGradient>`,
|
|
218
|
+
`${pad}</defs>`,
|
|
219
|
+
].join('\n');
|
|
220
|
+
}
|
|
221
|
+
function flowGradientId(path, stroke) {
|
|
222
|
+
return `triton-flow-${hashString(`${path}|${stroke}`)}`;
|
|
223
|
+
}
|
|
224
|
+
function pathLengthApprox(path) {
|
|
225
|
+
const pts = pathPoints(path);
|
|
226
|
+
if (pts.length < 2)
|
|
227
|
+
return 1000;
|
|
228
|
+
let length = 0;
|
|
229
|
+
for (let i = 1; i < pts.length; i++) {
|
|
230
|
+
length += Math.hypot(pts[i].x - pts[i - 1].x, pts[i].y - pts[i - 1].y);
|
|
231
|
+
}
|
|
232
|
+
return Math.max(1, Number(formatNum(length)));
|
|
233
|
+
}
|
|
234
|
+
function pathEndpoints(path) {
|
|
235
|
+
const pts = pathPoints(path);
|
|
236
|
+
const start = pts[0] ?? { x: 0, y: 0 };
|
|
237
|
+
const end = pts[pts.length - 1] ?? { x: 1, y: 0 };
|
|
238
|
+
if (start.x === end.x && start.y === end.y) {
|
|
239
|
+
return { start, end: { x: end.x + 1, y: end.y } };
|
|
240
|
+
}
|
|
241
|
+
return { start, end };
|
|
242
|
+
}
|
|
243
|
+
function pathPoints(path) {
|
|
244
|
+
const nums = [...path.matchAll(/-?\d+(?:\.\d+)?(?:e[-+]?\d+)?/gi)].map(m => Number(m[0]));
|
|
245
|
+
const pts = [];
|
|
246
|
+
for (let i = 0; i + 1 < nums.length; i += 2) {
|
|
247
|
+
const x = nums[i];
|
|
248
|
+
const y = nums[i + 1];
|
|
249
|
+
if (Number.isFinite(x) && Number.isFinite(y))
|
|
250
|
+
pts.push({ x, y });
|
|
251
|
+
}
|
|
252
|
+
return pts;
|
|
253
|
+
}
|
|
254
|
+
function formatNum(value) {
|
|
255
|
+
return Number.isFinite(value) ? String(Math.round(value * 1000) / 1000) : '0';
|
|
256
|
+
}
|
|
257
|
+
function hashString(value) {
|
|
258
|
+
let hash = 0x811c9dc5;
|
|
259
|
+
for (let i = 0; i < value.length; i++) {
|
|
260
|
+
hash ^= value.charCodeAt(i);
|
|
261
|
+
hash = Math.imul(hash, 0x01000193);
|
|
262
|
+
}
|
|
263
|
+
return (hash >>> 0).toString(36);
|
|
264
|
+
}
|
|
265
|
+
function fillVal(fill) {
|
|
266
|
+
return fill != null && fill.trim() !== '' ? fill : 'none';
|
|
267
|
+
}
|
|
268
|
+
function escapeXml(text) {
|
|
269
|
+
return text
|
|
270
|
+
.replace(/&/g, '&')
|
|
271
|
+
.replace(/</g, '<')
|
|
272
|
+
.replace(/>/g, '>');
|
|
273
|
+
}
|
|
274
|
+
function escapeAttr(text) {
|
|
275
|
+
return text
|
|
276
|
+
.replace(/&/g, '&')
|
|
277
|
+
.replace(/"/g, '"')
|
|
278
|
+
.replace(/</g, '<')
|
|
279
|
+
.replace(/>/g, '>');
|
|
280
|
+
}
|
|
281
|
+
// ─── Renderer object ──────────────────────────────────────────────────────────
|
|
282
|
+
/** The built-in SVG renderer. Registered by default in frontend/index.ts. */
|
|
283
|
+
export const svgRenderer = {
|
|
284
|
+
name: 'svg',
|
|
285
|
+
render: renderSVG,
|
|
286
|
+
};
|
|
287
|
+
//# sourceMappingURL=svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg.js","sourceRoot":"","sources":["../../../../src/render/svg.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* d3-curves.ts — Routing path emission via d3-shape / d3-path.
|
|
3
|
+
*
|
|
4
|
+
* This adapter provides path-building helpers that delegate SVG path string
|
|
5
|
+
* construction to d3-shape and d3-path. The routing logic (control-point
|
|
6
|
+
* computation, obstacle avoidance) lives in router.ts; this module only
|
|
7
|
+
* converts computed geometry into well-formed SVG path strings.
|
|
8
|
+
*/
|
|
9
|
+
import type { Point, CurveStyle } from '../contracts/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Build an SVG cubic-bezier path string from explicit control points.
|
|
12
|
+
* Uses d3-path's `bezierCurveTo` to emit the C command.
|
|
13
|
+
*
|
|
14
|
+
* Output format: `M{x},{y}C{cx1},{cy1},{cx2},{cy2},{x},{y}`
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildCubicBezierPath(from: Point, cp1: Point, cp2: Point, to: Point): string;
|
|
17
|
+
/**
|
|
18
|
+
* Build an SVG linear (polyline) path string through an ordered list of waypoints
|
|
19
|
+
* using d3-shape's `line` generator.
|
|
20
|
+
*
|
|
21
|
+
* Output format: `M{x},{y}L{x},{y}...`
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildLinePath(points: readonly Point[]): string;
|
|
24
|
+
/**
|
|
25
|
+
* Build an SVG path string through waypoints using the named d3-shape curve factory.
|
|
26
|
+
*
|
|
27
|
+
* Control-point computation lives in the caller; this function only governs
|
|
28
|
+
* how those points are interpolated into an SVG path string.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildCurvedLinePath(points: readonly Point[], curveStyle: CurveStyle): string;
|
|
31
|
+
//# sourceMappingURL=d3-curves.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d3-curves.d.ts","sourceRoot":"","sources":["../../../../src/routing/d3-curves.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,KAAK,EACX,GAAG,EAAE,KAAK,EACV,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,KAAK,GACR,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,MAAM,CAK9D;AAcD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,UAAU,EAAE,UAAU,GACrB,MAAM,CAMR"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* d3-curves.ts — Routing path emission via d3-shape / d3-path.
|
|
3
|
+
*
|
|
4
|
+
* This adapter provides path-building helpers that delegate SVG path string
|
|
5
|
+
* construction to d3-shape and d3-path. The routing logic (control-point
|
|
6
|
+
* computation, obstacle avoidance) lives in router.ts; this module only
|
|
7
|
+
* converts computed geometry into well-formed SVG path strings.
|
|
8
|
+
*/
|
|
9
|
+
import { line, curveLinear, curveCatmullRom, curveCardinal, curveBasis, curveNatural, curveMonotoneX, curveMonotoneY } from 'd3-shape';
|
|
10
|
+
import { path } from 'd3-path';
|
|
11
|
+
/**
|
|
12
|
+
* Build an SVG cubic-bezier path string from explicit control points.
|
|
13
|
+
* Uses d3-path's `bezierCurveTo` to emit the C command.
|
|
14
|
+
*
|
|
15
|
+
* Output format: `M{x},{y}C{cx1},{cy1},{cx2},{cy2},{x},{y}`
|
|
16
|
+
*/
|
|
17
|
+
export function buildCubicBezierPath(from, cp1, cp2, to) {
|
|
18
|
+
const p = path();
|
|
19
|
+
p.moveTo(from.x, from.y);
|
|
20
|
+
p.bezierCurveTo(cp1.x, cp1.y, cp2.x, cp2.y, to.x, to.y);
|
|
21
|
+
return p.toString();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build an SVG linear (polyline) path string through an ordered list of waypoints
|
|
25
|
+
* using d3-shape's `line` generator.
|
|
26
|
+
*
|
|
27
|
+
* Output format: `M{x},{y}L{x},{y}...`
|
|
28
|
+
*/
|
|
29
|
+
export function buildLinePath(points) {
|
|
30
|
+
const gen = line()
|
|
31
|
+
.x((d) => d.x)
|
|
32
|
+
.y((d) => d.y);
|
|
33
|
+
return gen([...points]) ?? '';
|
|
34
|
+
}
|
|
35
|
+
// ─── Named-curve dispatch ──────────────────────────────────────────────────────
|
|
36
|
+
const CURVE_FACTORIES = {
|
|
37
|
+
'linear': curveLinear,
|
|
38
|
+
'catmull-rom': curveCatmullRom,
|
|
39
|
+
'cardinal': curveCardinal,
|
|
40
|
+
'basis': curveBasis,
|
|
41
|
+
'natural': curveNatural,
|
|
42
|
+
'monotone-x': curveMonotoneX,
|
|
43
|
+
'monotone-y': curveMonotoneY,
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Build an SVG path string through waypoints using the named d3-shape curve factory.
|
|
47
|
+
*
|
|
48
|
+
* Control-point computation lives in the caller; this function only governs
|
|
49
|
+
* how those points are interpolated into an SVG path string.
|
|
50
|
+
*/
|
|
51
|
+
export function buildCurvedLinePath(points, curveStyle) {
|
|
52
|
+
const gen = line()
|
|
53
|
+
.x((d) => d.x)
|
|
54
|
+
.y((d) => d.y)
|
|
55
|
+
.curve(CURVE_FACTORIES[curveStyle]);
|
|
56
|
+
return gen([...points]) ?? '';
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=d3-curves.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d3-curves.js","sourceRoot":"","sources":["../../../../src/routing/d3-curves.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEvI,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAW,EACX,GAAU,EACV,GAAU,EACV,EAAS;IAET,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAwB;IACpD,MAAM,GAAG,GAAG,IAAI,EAAS;SACtB,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,kFAAkF;AAElF,MAAM,eAAe,GAAqC;IACxD,QAAQ,EAAO,WAAW;IAC1B,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAK,aAAa;IAC5B,OAAO,EAAQ,UAAU;IACzB,SAAS,EAAM,YAAY;IAC3B,YAAY,EAAG,cAAc;IAC7B,YAAY,EAAG,cAAc;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAwB,EACxB,UAAsB;IAEtB,MAAM,GAAG,GAAG,IAAI,EAAS;SACtB,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB,KAAK,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry of all available routing algorithms.
|
|
5
|
+
* Built-in routers (straight, orthogonal, bezier, polyline) are
|
|
6
|
+
* registered in frontend/index.ts.
|
|
7
|
+
* Third-party routers call registerRouter().
|
|
8
|
+
*/
|
|
9
|
+
const registry = new Map();
|
|
10
|
+
/** Register a routing algorithm under a route style name. */
|
|
11
|
+
export function registerRouter(style, router) {
|
|
12
|
+
registry.set(style, router);
|
|
13
|
+
}
|
|
14
|
+
/** Look up a router by style. Returns undefined if not registered. */
|
|
15
|
+
export function getRouter(style) {
|
|
16
|
+
return registry.get(style);
|
|
17
|
+
}
|
|
18
|
+
/** Return all currently registered route style names. */
|
|
19
|
+
export function registeredRouters() {
|
|
20
|
+
return [...registry.keys()];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/routing/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE/C,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,KAAiB,EAAE,MAAc;IAC9D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,SAAS,CAAC,KAAiB;IACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC"}
|
package/dist/routing/router.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { Router, RouteStyle } from '../contracts/index.js';
|
|
2
|
+
import type { Point } from '../contracts/index.js';
|
|
3
|
+
/** Count total segment-obstacle collisions along a polyline route. */
|
|
4
|
+
export declare function countRouteCollisions(points: readonly Point[], obstacles: ReadonlyArray<import('../contracts/index.js').Rect>): number;
|
|
2
5
|
export declare const straightRouter: Router;
|
|
3
6
|
export declare const orthogonalRouter: Router;
|
|
4
7
|
export declare const bezierRouter: Router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/routing/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAuB,UAAU,EAAiB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/routing/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAuB,UAAU,EAAiB,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,KAAK,EAAQ,MAAM,uBAAuB,CAAC;AA2tBzD,sEAAsE;AACtE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,SAAS,EAAE,aAAa,CAAC,OAAO,uBAAuB,EAAE,IAAI,CAAC,GAC7D,MAAM,CAQR;AAqQD,eAAO,MAAM,cAAc,EAAE,MAA+B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,EAAE,MAAgC,CAAC;AAChE,eAAO,MAAM,YAAY,EAAE,MAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,EAAE,MAAgC,CAAC;AAI9D,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAOtD;AAED,+DAA+D;AAC/D,eAAO,MAAM,aAAa,EAAE,MAAyB,CAAC"}
|