@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.
Files changed (627) hide show
  1. package/dist/contracts/anchors.js +20 -0
  2. package/dist/contracts/anchors.js.map +1 -0
  3. package/dist/contracts/animations.d.ts +5 -0
  4. package/dist/contracts/animations.d.ts.map +1 -0
  5. package/dist/contracts/animations.js +15 -0
  6. package/dist/contracts/animations.js.map +1 -0
  7. package/dist/contracts/crosslink.d.ts +21 -41
  8. package/dist/contracts/crosslink.d.ts.map +1 -1
  9. package/dist/contracts/crosslink.js +17 -0
  10. package/dist/contracts/crosslink.js.map +1 -0
  11. package/dist/contracts/diagram.js +24 -0
  12. package/dist/contracts/diagram.js.map +1 -0
  13. package/dist/contracts/index.d.ts +6 -3
  14. package/dist/contracts/index.d.ts.map +1 -1
  15. package/dist/contracts/index.js +21 -0
  16. package/dist/contracts/index.js.map +1 -0
  17. package/dist/contracts/overlay.js +22 -0
  18. package/dist/contracts/overlay.js.map +1 -0
  19. package/dist/contracts/primitives.js +13 -0
  20. package/dist/contracts/primitives.js.map +1 -0
  21. package/dist/contracts/renderer.js +15 -0
  22. package/dist/contracts/renderer.js.map +1 -0
  23. package/dist/contracts/result.js +26 -0
  24. package/dist/contracts/result.js.map +1 -0
  25. package/dist/contracts/routing.d.ts +4 -0
  26. package/dist/contracts/routing.d.ts.map +1 -1
  27. package/dist/contracts/routing.js +14 -0
  28. package/dist/contracts/routing.js.map +1 -0
  29. package/dist/contracts/scene.d.ts +5 -1
  30. package/dist/contracts/scene.d.ts.map +1 -1
  31. package/dist/contracts/scene.js +18 -0
  32. package/dist/contracts/scene.js.map +1 -0
  33. package/dist/contracts/theme.js +18 -0
  34. package/dist/contracts/theme.js.map +1 -0
  35. package/dist/crosslink/connectors.d.ts +66 -0
  36. package/dist/crosslink/connectors.d.ts.map +1 -0
  37. package/dist/crosslink/connectors.js +130 -0
  38. package/dist/crosslink/connectors.js.map +1 -0
  39. package/dist/crosslink/engine2.d.ts +2 -2
  40. package/dist/crosslink/engine2.d.ts.map +1 -1
  41. package/dist/crosslink/engine2.js +783 -0
  42. package/dist/crosslink/engine2.js.map +1 -0
  43. package/dist/crosslink/engine3.d.ts +2 -2
  44. package/dist/crosslink/engine3.d.ts.map +1 -1
  45. package/dist/crosslink/engine3.js +968 -0
  46. package/dist/crosslink/engine3.js.map +1 -0
  47. package/dist/crosslink/index.d.ts +2 -0
  48. package/dist/crosslink/index.d.ts.map +1 -1
  49. package/dist/crosslink/index.js +4 -0
  50. package/dist/crosslink/index.js.map +1 -0
  51. package/dist/crosslink/render.d.ts +2 -2
  52. package/dist/crosslink/render.d.ts.map +1 -1
  53. package/dist/crosslink/render.js +997 -0
  54. package/dist/crosslink/render.js.map +1 -0
  55. package/dist/crosslink/resolve.js +331 -0
  56. package/dist/crosslink/resolve.js.map +1 -0
  57. package/dist/diagrams/{c4 → mermaid/c4}/index.d.ts +1 -1
  58. package/dist/diagrams/mermaid/c4/index.d.ts.map +1 -0
  59. package/dist/diagrams/mermaid/c4/index.js +14 -0
  60. package/dist/diagrams/mermaid/c4/index.js.map +1 -0
  61. package/dist/diagrams/{c4 → mermaid/c4}/ir.d.ts +1 -1
  62. package/dist/diagrams/mermaid/c4/ir.d.ts.map +1 -0
  63. package/dist/diagrams/mermaid/c4/ir.js +2 -0
  64. package/dist/diagrams/mermaid/c4/ir.js.map +1 -0
  65. package/dist/diagrams/{c4 → mermaid/c4}/layout.d.ts +2 -2
  66. package/dist/diagrams/mermaid/c4/layout.d.ts.map +1 -0
  67. package/dist/diagrams/mermaid/c4/layout.js +110 -0
  68. package/dist/diagrams/mermaid/c4/layout.js.map +1 -0
  69. package/dist/diagrams/{class → mermaid/class}/index.d.ts +1 -1
  70. package/dist/diagrams/mermaid/class/index.d.ts.map +1 -0
  71. package/dist/diagrams/mermaid/class/index.js +14 -0
  72. package/dist/diagrams/mermaid/class/index.js.map +1 -0
  73. package/dist/diagrams/{class → mermaid/class}/ir.d.ts +1 -1
  74. package/dist/diagrams/mermaid/class/ir.d.ts.map +1 -0
  75. package/dist/diagrams/mermaid/class/ir.js +2 -0
  76. package/dist/diagrams/mermaid/class/ir.js.map +1 -0
  77. package/dist/diagrams/{class → mermaid/class}/layout.d.ts +2 -2
  78. package/dist/diagrams/mermaid/class/layout.d.ts.map +1 -0
  79. package/dist/diagrams/mermaid/class/layout.js +877 -0
  80. package/dist/diagrams/mermaid/class/layout.js.map +1 -0
  81. package/dist/diagrams/{er → mermaid/er}/index.d.ts +1 -1
  82. package/dist/diagrams/mermaid/er/index.d.ts.map +1 -0
  83. package/dist/diagrams/mermaid/er/index.js +14 -0
  84. package/dist/diagrams/mermaid/er/index.js.map +1 -0
  85. package/dist/diagrams/{er → mermaid/er}/ir.d.ts +1 -1
  86. package/dist/diagrams/mermaid/er/ir.d.ts.map +1 -0
  87. package/dist/diagrams/mermaid/er/ir.js +2 -0
  88. package/dist/diagrams/mermaid/er/ir.js.map +1 -0
  89. package/dist/diagrams/{er → mermaid/er}/layout.d.ts +2 -2
  90. package/dist/diagrams/mermaid/er/layout.d.ts.map +1 -0
  91. package/dist/diagrams/mermaid/er/layout.js +116 -0
  92. package/dist/diagrams/mermaid/er/layout.js.map +1 -0
  93. package/dist/diagrams/{flowchart → mermaid/flowchart}/index.d.ts +1 -1
  94. package/dist/diagrams/mermaid/flowchart/index.d.ts.map +1 -0
  95. package/dist/diagrams/mermaid/flowchart/index.js +24 -0
  96. package/dist/diagrams/mermaid/flowchart/index.js.map +1 -0
  97. package/dist/diagrams/{flowchart → mermaid/flowchart}/ir.d.ts +7 -1
  98. package/dist/diagrams/mermaid/flowchart/ir.d.ts.map +1 -0
  99. package/dist/diagrams/mermaid/flowchart/ir.js +2 -0
  100. package/dist/diagrams/mermaid/flowchart/ir.js.map +1 -0
  101. package/dist/diagrams/mermaid/flowchart/layout.d.ts +5 -0
  102. package/dist/diagrams/mermaid/flowchart/layout.d.ts.map +1 -0
  103. package/dist/diagrams/mermaid/flowchart/layout.js +652 -0
  104. package/dist/diagrams/mermaid/flowchart/layout.js.map +1 -0
  105. package/dist/diagrams/{gantt → mermaid/gantt}/index.d.ts +1 -1
  106. package/dist/diagrams/mermaid/gantt/index.d.ts.map +1 -0
  107. package/dist/diagrams/mermaid/gantt/index.js +89 -0
  108. package/dist/diagrams/mermaid/gantt/index.js.map +1 -0
  109. package/dist/diagrams/{gantt → mermaid/gantt}/ir.d.ts +1 -1
  110. package/dist/diagrams/mermaid/gantt/ir.d.ts.map +1 -0
  111. package/dist/diagrams/mermaid/gantt/ir.js +2 -0
  112. package/dist/diagrams/mermaid/gantt/ir.js.map +1 -0
  113. package/dist/diagrams/{gantt → mermaid/gantt}/layout.d.ts +2 -2
  114. package/dist/diagrams/mermaid/gantt/layout.d.ts.map +1 -0
  115. package/dist/diagrams/mermaid/gantt/layout.js +95 -0
  116. package/dist/diagrams/mermaid/gantt/layout.js.map +1 -0
  117. package/dist/diagrams/{gitgraph → mermaid/gitgraph}/index.d.ts +1 -1
  118. package/dist/diagrams/mermaid/gitgraph/index.d.ts.map +1 -0
  119. package/dist/diagrams/mermaid/gitgraph/index.js +58 -0
  120. package/dist/diagrams/mermaid/gitgraph/index.js.map +1 -0
  121. package/dist/diagrams/{gitgraph → mermaid/gitgraph}/ir.d.ts +1 -1
  122. package/dist/diagrams/mermaid/gitgraph/ir.d.ts.map +1 -0
  123. package/dist/diagrams/mermaid/gitgraph/ir.js +2 -0
  124. package/dist/diagrams/mermaid/gitgraph/ir.js.map +1 -0
  125. package/dist/diagrams/{gitgraph → mermaid/gitgraph}/layout.d.ts +2 -2
  126. package/dist/diagrams/mermaid/gitgraph/layout.d.ts.map +1 -0
  127. package/dist/diagrams/mermaid/gitgraph/layout.js +89 -0
  128. package/dist/diagrams/mermaid/gitgraph/layout.js.map +1 -0
  129. package/dist/diagrams/{journey → mermaid/journey}/index.d.ts +1 -1
  130. package/dist/diagrams/mermaid/journey/index.d.ts.map +1 -0
  131. package/dist/diagrams/mermaid/journey/index.js +14 -0
  132. package/dist/diagrams/mermaid/journey/index.js.map +1 -0
  133. package/dist/diagrams/{journey → mermaid/journey}/ir.d.ts +1 -1
  134. package/dist/diagrams/mermaid/journey/ir.d.ts.map +1 -0
  135. package/dist/diagrams/mermaid/journey/ir.js +2 -0
  136. package/dist/diagrams/mermaid/journey/ir.js.map +1 -0
  137. package/dist/diagrams/{journey → mermaid/journey}/layout.d.ts +2 -2
  138. package/dist/diagrams/mermaid/journey/layout.d.ts.map +1 -0
  139. package/dist/diagrams/mermaid/journey/layout.js +92 -0
  140. package/dist/diagrams/mermaid/journey/layout.js.map +1 -0
  141. package/dist/diagrams/{kanban → mermaid/kanban}/index.d.ts +1 -1
  142. package/dist/diagrams/mermaid/kanban/index.d.ts.map +1 -0
  143. package/dist/diagrams/mermaid/kanban/index.js +14 -0
  144. package/dist/diagrams/mermaid/kanban/index.js.map +1 -0
  145. package/dist/diagrams/{kanban → mermaid/kanban}/ir.d.ts +1 -1
  146. package/dist/diagrams/mermaid/kanban/ir.d.ts.map +1 -0
  147. package/dist/diagrams/mermaid/kanban/ir.js +2 -0
  148. package/dist/diagrams/mermaid/kanban/ir.js.map +1 -0
  149. package/dist/diagrams/{kanban → mermaid/kanban}/layout.d.ts +2 -2
  150. package/dist/diagrams/mermaid/kanban/layout.d.ts.map +1 -0
  151. package/dist/diagrams/mermaid/kanban/layout.js +68 -0
  152. package/dist/diagrams/mermaid/kanban/layout.js.map +1 -0
  153. package/dist/diagrams/{mindmap → mermaid/mindmap}/index.d.ts +1 -1
  154. package/dist/diagrams/mermaid/mindmap/index.d.ts.map +1 -0
  155. package/dist/diagrams/mermaid/mindmap/index.js +52 -0
  156. package/dist/diagrams/mermaid/mindmap/index.js.map +1 -0
  157. package/dist/diagrams/{mindmap → mermaid/mindmap}/ir.d.ts +1 -1
  158. package/dist/diagrams/mermaid/mindmap/ir.d.ts.map +1 -0
  159. package/dist/diagrams/mermaid/mindmap/ir.js +2 -0
  160. package/dist/diagrams/mermaid/mindmap/ir.js.map +1 -0
  161. package/dist/diagrams/{mindmap → mermaid/mindmap}/layout.d.ts +2 -2
  162. package/dist/diagrams/mermaid/mindmap/layout.d.ts.map +1 -0
  163. package/dist/diagrams/mermaid/mindmap/layout.js +100 -0
  164. package/dist/diagrams/mermaid/mindmap/layout.js.map +1 -0
  165. package/dist/diagrams/{pie → mermaid/pie}/index.d.ts +1 -1
  166. package/dist/diagrams/mermaid/pie/index.d.ts.map +1 -0
  167. package/dist/diagrams/mermaid/pie/index.js +14 -0
  168. package/dist/diagrams/mermaid/pie/index.js.map +1 -0
  169. package/dist/diagrams/{pie → mermaid/pie}/ir.d.ts +1 -1
  170. package/dist/diagrams/mermaid/pie/ir.d.ts.map +1 -0
  171. package/dist/diagrams/mermaid/pie/ir.js +2 -0
  172. package/dist/diagrams/mermaid/pie/ir.js.map +1 -0
  173. package/dist/diagrams/{pie → mermaid/pie}/layout.d.ts +2 -2
  174. package/dist/diagrams/mermaid/pie/layout.d.ts.map +1 -0
  175. package/dist/diagrams/mermaid/pie/layout.js +84 -0
  176. package/dist/diagrams/mermaid/pie/layout.js.map +1 -0
  177. package/dist/diagrams/{quadrant → mermaid/quadrant}/index.d.ts +1 -1
  178. package/dist/diagrams/mermaid/quadrant/index.d.ts.map +1 -0
  179. package/dist/diagrams/mermaid/quadrant/index.js +14 -0
  180. package/dist/diagrams/mermaid/quadrant/index.js.map +1 -0
  181. package/dist/diagrams/{quadrant → mermaid/quadrant}/ir.d.ts +1 -1
  182. package/dist/diagrams/mermaid/quadrant/ir.d.ts.map +1 -0
  183. package/dist/diagrams/mermaid/quadrant/ir.js +2 -0
  184. package/dist/diagrams/mermaid/quadrant/ir.js.map +1 -0
  185. package/dist/diagrams/{quadrant → mermaid/quadrant}/layout.d.ts +2 -2
  186. package/dist/diagrams/mermaid/quadrant/layout.d.ts.map +1 -0
  187. package/dist/diagrams/mermaid/quadrant/layout.js +83 -0
  188. package/dist/diagrams/mermaid/quadrant/layout.js.map +1 -0
  189. package/dist/diagrams/{radar → mermaid/radar}/index.d.ts +1 -1
  190. package/dist/diagrams/mermaid/radar/index.d.ts.map +1 -0
  191. package/dist/diagrams/mermaid/radar/index.js +14 -0
  192. package/dist/diagrams/mermaid/radar/index.js.map +1 -0
  193. package/dist/diagrams/{radar → mermaid/radar}/ir.d.ts +1 -1
  194. package/dist/diagrams/mermaid/radar/ir.d.ts.map +1 -0
  195. package/dist/diagrams/mermaid/radar/ir.js +2 -0
  196. package/dist/diagrams/mermaid/radar/ir.js.map +1 -0
  197. package/dist/diagrams/{radar → mermaid/radar}/layout.d.ts +2 -2
  198. package/dist/diagrams/mermaid/radar/layout.d.ts.map +1 -0
  199. package/dist/diagrams/mermaid/radar/layout.js +91 -0
  200. package/dist/diagrams/mermaid/radar/layout.js.map +1 -0
  201. package/dist/diagrams/{requirement → mermaid/requirement}/index.d.ts +1 -1
  202. package/dist/diagrams/mermaid/requirement/index.d.ts.map +1 -0
  203. package/dist/diagrams/mermaid/requirement/index.js +14 -0
  204. package/dist/diagrams/mermaid/requirement/index.js.map +1 -0
  205. package/dist/diagrams/{requirement → mermaid/requirement}/ir.d.ts +1 -1
  206. package/dist/diagrams/mermaid/requirement/ir.d.ts.map +1 -0
  207. package/dist/diagrams/mermaid/requirement/ir.js +2 -0
  208. package/dist/diagrams/mermaid/requirement/ir.js.map +1 -0
  209. package/dist/diagrams/{requirement → mermaid/requirement}/layout.d.ts +2 -2
  210. package/dist/diagrams/mermaid/requirement/layout.d.ts.map +1 -0
  211. package/dist/diagrams/mermaid/requirement/layout.js +79 -0
  212. package/dist/diagrams/mermaid/requirement/layout.js.map +1 -0
  213. package/dist/diagrams/{sankey → mermaid/sankey}/index.d.ts +1 -1
  214. package/dist/diagrams/mermaid/sankey/index.d.ts.map +1 -0
  215. package/dist/diagrams/mermaid/sankey/index.js +14 -0
  216. package/dist/diagrams/mermaid/sankey/index.js.map +1 -0
  217. package/dist/diagrams/{sankey → mermaid/sankey}/ir.d.ts +1 -1
  218. package/dist/diagrams/mermaid/sankey/ir.d.ts.map +1 -0
  219. package/dist/diagrams/mermaid/sankey/ir.js +2 -0
  220. package/dist/diagrams/mermaid/sankey/ir.js.map +1 -0
  221. package/dist/diagrams/{sankey → mermaid/sankey}/layout.d.ts +2 -2
  222. package/dist/diagrams/mermaid/sankey/layout.d.ts.map +1 -0
  223. package/dist/diagrams/mermaid/sankey/layout.js +124 -0
  224. package/dist/diagrams/mermaid/sankey/layout.js.map +1 -0
  225. package/dist/diagrams/{sequence → mermaid/sequence}/index.d.ts +1 -1
  226. package/dist/diagrams/mermaid/sequence/index.d.ts.map +1 -0
  227. package/dist/diagrams/mermaid/sequence/index.js +14 -0
  228. package/dist/diagrams/mermaid/sequence/index.js.map +1 -0
  229. package/dist/diagrams/{sequence → mermaid/sequence}/ir.d.ts +1 -1
  230. package/dist/diagrams/mermaid/sequence/ir.d.ts.map +1 -0
  231. package/dist/diagrams/mermaid/sequence/ir.js +2 -0
  232. package/dist/diagrams/mermaid/sequence/ir.js.map +1 -0
  233. package/dist/diagrams/{sequence → mermaid/sequence}/layout.d.ts +2 -2
  234. package/dist/diagrams/mermaid/sequence/layout.d.ts.map +1 -0
  235. package/dist/diagrams/mermaid/sequence/layout.js +168 -0
  236. package/dist/diagrams/mermaid/sequence/layout.js.map +1 -0
  237. package/dist/diagrams/{state → mermaid/state}/index.d.ts +1 -1
  238. package/dist/diagrams/mermaid/state/index.d.ts.map +1 -0
  239. package/dist/diagrams/mermaid/state/index.js +14 -0
  240. package/dist/diagrams/mermaid/state/index.js.map +1 -0
  241. package/dist/diagrams/{state → mermaid/state}/ir.d.ts +1 -1
  242. package/dist/diagrams/mermaid/state/ir.d.ts.map +1 -0
  243. package/dist/diagrams/mermaid/state/ir.js +2 -0
  244. package/dist/diagrams/mermaid/state/ir.js.map +1 -0
  245. package/dist/diagrams/{state → mermaid/state}/layout.d.ts +2 -2
  246. package/dist/diagrams/mermaid/state/layout.d.ts.map +1 -0
  247. package/dist/diagrams/mermaid/state/layout.js +172 -0
  248. package/dist/diagrams/mermaid/state/layout.js.map +1 -0
  249. package/dist/diagrams/{timeline → mermaid/timeline}/index.d.ts +1 -1
  250. package/dist/diagrams/mermaid/timeline/index.d.ts.map +1 -0
  251. package/dist/diagrams/mermaid/timeline/index.js +23 -0
  252. package/dist/diagrams/mermaid/timeline/index.js.map +1 -0
  253. package/dist/diagrams/{timeline → mermaid/timeline}/ir.d.ts +1 -1
  254. package/dist/diagrams/mermaid/timeline/ir.d.ts.map +1 -0
  255. package/dist/diagrams/mermaid/timeline/ir.js +2 -0
  256. package/dist/diagrams/mermaid/timeline/ir.js.map +1 -0
  257. package/dist/diagrams/mermaid/timeline/layout.d.ts +5 -0
  258. package/dist/diagrams/mermaid/timeline/layout.d.ts.map +1 -0
  259. package/dist/diagrams/mermaid/timeline/layout.js +228 -0
  260. package/dist/diagrams/mermaid/timeline/layout.js.map +1 -0
  261. package/dist/diagrams/{timeline → mermaid/timeline}/numbered.d.ts +2 -2
  262. package/dist/diagrams/mermaid/timeline/numbered.d.ts.map +1 -0
  263. package/dist/diagrams/mermaid/timeline/numbered.js +112 -0
  264. package/dist/diagrams/mermaid/timeline/numbered.js.map +1 -0
  265. package/dist/diagrams/{timeline → mermaid/timeline}/roadmap.d.ts +2 -2
  266. package/dist/diagrams/mermaid/timeline/roadmap.d.ts.map +1 -0
  267. package/dist/diagrams/mermaid/timeline/roadmap.js +125 -0
  268. package/dist/diagrams/mermaid/timeline/roadmap.js.map +1 -0
  269. package/dist/diagrams/{timeline → mermaid/timeline}/serpentine.d.ts +2 -2
  270. package/dist/diagrams/mermaid/timeline/serpentine.d.ts.map +1 -0
  271. package/dist/diagrams/mermaid/timeline/serpentine.js +152 -0
  272. package/dist/diagrams/mermaid/timeline/serpentine.js.map +1 -0
  273. package/dist/diagrams/{timeline → mermaid/timeline}/shared.d.ts +1 -1
  274. package/dist/diagrams/mermaid/timeline/shared.d.ts.map +1 -0
  275. package/dist/diagrams/mermaid/timeline/shared.js +47 -0
  276. package/dist/diagrams/mermaid/timeline/shared.js.map +1 -0
  277. package/dist/diagrams/{timeline → mermaid/timeline}/timeline-columns.d.ts +2 -2
  278. package/dist/diagrams/mermaid/timeline/timeline-columns.d.ts.map +1 -0
  279. package/dist/diagrams/mermaid/timeline/timeline-columns.js +136 -0
  280. package/dist/diagrams/mermaid/timeline/timeline-columns.js.map +1 -0
  281. package/dist/diagrams/{timeline → mermaid/timeline}/vertical-spine.d.ts +2 -2
  282. package/dist/diagrams/mermaid/timeline/vertical-spine.d.ts.map +1 -0
  283. package/dist/diagrams/mermaid/timeline/vertical-spine.js +136 -0
  284. package/dist/diagrams/mermaid/timeline/vertical-spine.js.map +1 -0
  285. package/dist/diagrams/{xychart → mermaid/xychart}/index.d.ts +1 -1
  286. package/dist/diagrams/mermaid/xychart/index.d.ts.map +1 -0
  287. package/dist/diagrams/mermaid/xychart/index.js +14 -0
  288. package/dist/diagrams/mermaid/xychart/index.js.map +1 -0
  289. package/dist/diagrams/{xychart → mermaid/xychart}/ir.d.ts +1 -1
  290. package/dist/diagrams/mermaid/xychart/ir.d.ts.map +1 -0
  291. package/dist/diagrams/mermaid/xychart/ir.js +2 -0
  292. package/dist/diagrams/mermaid/xychart/ir.js.map +1 -0
  293. package/dist/diagrams/{xychart → mermaid/xychart}/layout.d.ts +2 -2
  294. package/dist/diagrams/mermaid/xychart/layout.d.ts.map +1 -0
  295. package/dist/diagrams/mermaid/xychart/layout.js +120 -0
  296. package/dist/diagrams/mermaid/xychart/layout.js.map +1 -0
  297. package/dist/diagrams/{architecture → triton/architecture}/index.d.ts +1 -1
  298. package/dist/diagrams/triton/architecture/index.d.ts.map +1 -0
  299. package/dist/diagrams/triton/architecture/index.js +14 -0
  300. package/dist/diagrams/triton/architecture/index.js.map +1 -0
  301. package/dist/diagrams/{architecture → triton/architecture}/ir.d.ts +1 -1
  302. package/dist/diagrams/triton/architecture/ir.d.ts.map +1 -0
  303. package/dist/diagrams/triton/architecture/ir.js +2 -0
  304. package/dist/diagrams/triton/architecture/ir.js.map +1 -0
  305. package/dist/diagrams/{architecture → triton/architecture}/layout.d.ts +2 -2
  306. package/dist/diagrams/triton/architecture/layout.d.ts.map +1 -0
  307. package/dist/diagrams/triton/architecture/layout.js +124 -0
  308. package/dist/diagrams/triton/architecture/layout.js.map +1 -0
  309. package/dist/diagrams/{block → triton/block}/index.d.ts +1 -1
  310. package/dist/diagrams/triton/block/index.d.ts.map +1 -0
  311. package/dist/diagrams/triton/block/index.js +14 -0
  312. package/dist/diagrams/triton/block/index.js.map +1 -0
  313. package/dist/diagrams/{block → triton/block}/ir.d.ts +1 -1
  314. package/dist/diagrams/triton/block/ir.d.ts.map +1 -0
  315. package/dist/diagrams/triton/block/ir.js +2 -0
  316. package/dist/diagrams/triton/block/ir.js.map +1 -0
  317. package/dist/diagrams/{block → triton/block}/layout.d.ts +2 -2
  318. package/dist/diagrams/triton/block/layout.d.ts.map +1 -0
  319. package/dist/diagrams/triton/block/layout.js +73 -0
  320. package/dist/diagrams/triton/block/layout.js.map +1 -0
  321. package/dist/diagrams/{ds → triton/ds}/graph/graph.d.ts +1 -1
  322. package/dist/diagrams/triton/ds/graph/graph.d.ts.map +1 -0
  323. package/dist/diagrams/triton/ds/graph/graph.js +140 -0
  324. package/dist/diagrams/triton/ds/graph/graph.js.map +1 -0
  325. package/dist/diagrams/{ds → triton/ds}/hashmap/hashmap.d.ts +1 -1
  326. package/dist/diagrams/triton/ds/hashmap/hashmap.d.ts.map +1 -0
  327. package/dist/diagrams/triton/ds/hashmap/hashmap.js +131 -0
  328. package/dist/diagrams/triton/ds/hashmap/hashmap.js.map +1 -0
  329. package/dist/diagrams/{ds → triton/ds}/matrix/matrix.d.ts +1 -1
  330. package/dist/diagrams/triton/ds/matrix/matrix.d.ts.map +1 -0
  331. package/dist/diagrams/triton/ds/matrix/matrix.js +113 -0
  332. package/dist/diagrams/triton/ds/matrix/matrix.js.map +1 -0
  333. package/dist/diagrams/{ds → triton/ds}/queue/cqueue.d.ts +5 -3
  334. package/dist/diagrams/triton/ds/queue/cqueue.d.ts.map +1 -0
  335. package/dist/diagrams/triton/ds/queue/cqueue.js +195 -0
  336. package/dist/diagrams/triton/ds/queue/cqueue.js.map +1 -0
  337. package/dist/diagrams/{ds → triton/ds}/queue/deque.d.ts +3 -1
  338. package/dist/diagrams/triton/ds/queue/deque.d.ts.map +1 -0
  339. package/dist/diagrams/triton/ds/queue/deque.js +118 -0
  340. package/dist/diagrams/triton/ds/queue/deque.js.map +1 -0
  341. package/dist/diagrams/{ds → triton/ds}/queue/pqueue.d.ts +5 -3
  342. package/dist/diagrams/triton/ds/queue/pqueue.d.ts.map +1 -0
  343. package/dist/diagrams/triton/ds/queue/pqueue.js +129 -0
  344. package/dist/diagrams/triton/ds/queue/pqueue.js.map +1 -0
  345. package/dist/diagrams/{ds → triton/ds}/queue/queue.d.ts +3 -1
  346. package/dist/diagrams/triton/ds/queue/queue.d.ts.map +1 -0
  347. package/dist/diagrams/triton/ds/queue/queue.js +128 -0
  348. package/dist/diagrams/triton/ds/queue/queue.js.map +1 -0
  349. package/dist/diagrams/{ds → triton/ds}/queue/shared.d.ts +18 -2
  350. package/dist/diagrams/triton/ds/queue/shared.d.ts.map +1 -0
  351. package/dist/diagrams/triton/ds/queue/shared.js +186 -0
  352. package/dist/diagrams/triton/ds/queue/shared.js.map +1 -0
  353. package/dist/diagrams/{ds → triton/ds}/stack/stack.d.ts +3 -1
  354. package/dist/diagrams/triton/ds/stack/stack.d.ts.map +1 -0
  355. package/dist/diagrams/triton/ds/stack/stack.js +119 -0
  356. package/dist/diagrams/triton/ds/stack/stack.js.map +1 -0
  357. package/dist/diagrams/triton/ds/struct/array.d.ts +52 -0
  358. package/dist/diagrams/triton/ds/struct/array.d.ts.map +1 -0
  359. package/dist/diagrams/triton/ds/struct/array.js +491 -0
  360. package/dist/diagrams/triton/ds/struct/array.js.map +1 -0
  361. package/dist/diagrams/{ds → triton/ds}/struct/linkedlist.d.ts +1 -1
  362. package/dist/diagrams/triton/ds/struct/linkedlist.d.ts.map +1 -0
  363. package/dist/diagrams/triton/ds/struct/linkedlist.js +99 -0
  364. package/dist/diagrams/triton/ds/struct/linkedlist.js.map +1 -0
  365. package/dist/diagrams/{ds → triton/ds}/struct/memory.d.ts +1 -1
  366. package/dist/diagrams/triton/ds/struct/memory.d.ts.map +1 -0
  367. package/dist/diagrams/triton/ds/struct/memory.js +172 -0
  368. package/dist/diagrams/triton/ds/struct/memory.js.map +1 -0
  369. package/dist/diagrams/{ds → triton/ds}/struct/page.d.ts +1 -1
  370. package/dist/diagrams/triton/ds/struct/page.d.ts.map +1 -0
  371. package/dist/diagrams/triton/ds/struct/page.js +137 -0
  372. package/dist/diagrams/triton/ds/struct/page.js.map +1 -0
  373. package/dist/diagrams/triton/ds/struct/shared.d.ts +17 -0
  374. package/dist/diagrams/triton/ds/struct/shared.d.ts.map +1 -0
  375. package/dist/diagrams/triton/ds/struct/shared.js +60 -0
  376. package/dist/diagrams/triton/ds/struct/shared.js.map +1 -0
  377. package/dist/diagrams/{ds → triton/ds}/tree/avl.d.ts +1 -1
  378. package/dist/diagrams/triton/ds/tree/avl.d.ts.map +1 -0
  379. package/dist/diagrams/triton/ds/tree/avl.js +87 -0
  380. package/dist/diagrams/triton/ds/tree/avl.js.map +1 -0
  381. package/dist/diagrams/{ds → triton/ds}/tree/btree.d.ts +1 -1
  382. package/dist/diagrams/triton/ds/tree/btree.d.ts.map +1 -0
  383. package/dist/diagrams/triton/ds/tree/btree.js +76 -0
  384. package/dist/diagrams/triton/ds/tree/btree.js.map +1 -0
  385. package/dist/diagrams/triton/ds/tree/build.d.ts.map +1 -0
  386. package/dist/diagrams/triton/ds/tree/build.js +51 -0
  387. package/dist/diagrams/triton/ds/tree/build.js.map +1 -0
  388. package/dist/diagrams/{ds → triton/ds}/tree/heap.d.ts +1 -1
  389. package/dist/diagrams/triton/ds/tree/heap.d.ts.map +1 -0
  390. package/dist/diagrams/triton/ds/tree/heap.js +48 -0
  391. package/dist/diagrams/triton/ds/tree/heap.js.map +1 -0
  392. package/dist/diagrams/{ds → triton/ds}/tree/index.d.ts +1 -1
  393. package/dist/diagrams/triton/ds/tree/index.d.ts.map +1 -0
  394. package/dist/diagrams/triton/ds/tree/index.js +20 -0
  395. package/dist/diagrams/triton/ds/tree/index.js.map +1 -0
  396. package/dist/diagrams/{ds → triton/ds}/tree/ir.d.ts +1 -1
  397. package/dist/diagrams/triton/ds/tree/ir.d.ts.map +1 -0
  398. package/dist/diagrams/triton/ds/tree/ir.js +10 -0
  399. package/dist/diagrams/triton/ds/tree/ir.js.map +1 -0
  400. package/dist/diagrams/{ds → triton/ds}/tree/layout.d.ts +1 -1
  401. package/dist/diagrams/triton/ds/tree/layout.d.ts.map +1 -0
  402. package/dist/diagrams/triton/ds/tree/layout.js +281 -0
  403. package/dist/diagrams/triton/ds/tree/layout.js.map +1 -0
  404. package/dist/diagrams/{ds → triton/ds}/tree/plan.d.ts +1 -1
  405. package/dist/diagrams/triton/ds/tree/plan.d.ts.map +1 -0
  406. package/dist/diagrams/triton/ds/tree/plan.js +48 -0
  407. package/dist/diagrams/triton/ds/tree/plan.js.map +1 -0
  408. package/dist/diagrams/{ds → triton/ds}/tree/radix.d.ts +1 -1
  409. package/dist/diagrams/triton/ds/tree/radix.d.ts.map +1 -0
  410. package/dist/diagrams/triton/ds/tree/radix.js +88 -0
  411. package/dist/diagrams/triton/ds/tree/radix.js.map +1 -0
  412. package/dist/diagrams/{ds → triton/ds}/tree/rbtree.d.ts +1 -1
  413. package/dist/diagrams/triton/ds/tree/rbtree.d.ts.map +1 -0
  414. package/dist/diagrams/triton/ds/tree/rbtree.js +78 -0
  415. package/dist/diagrams/triton/ds/tree/rbtree.js.map +1 -0
  416. package/dist/diagrams/{ds → triton/ds}/tree/segtree.d.ts +1 -1
  417. package/dist/diagrams/triton/ds/tree/segtree.d.ts.map +1 -0
  418. package/dist/diagrams/triton/ds/tree/segtree.js +51 -0
  419. package/dist/diagrams/triton/ds/tree/segtree.js.map +1 -0
  420. package/dist/diagrams/{ds → triton/ds}/trie/trie.d.ts +1 -1
  421. package/dist/diagrams/triton/ds/trie/trie.d.ts.map +1 -0
  422. package/dist/diagrams/triton/ds/trie/trie.js +58 -0
  423. package/dist/diagrams/triton/ds/trie/trie.js.map +1 -0
  424. package/dist/diagrams/{ds → triton/ds}/unionfind/unionfind.d.ts +1 -1
  425. package/dist/diagrams/triton/ds/unionfind/unionfind.d.ts.map +1 -0
  426. package/dist/diagrams/triton/ds/unionfind/unionfind.js +110 -0
  427. package/dist/diagrams/triton/ds/unionfind/unionfind.js.map +1 -0
  428. package/dist/diagrams/{packet → triton/packet}/index.d.ts +1 -1
  429. package/dist/diagrams/triton/packet/index.d.ts.map +1 -0
  430. package/dist/diagrams/triton/packet/index.js +14 -0
  431. package/dist/diagrams/triton/packet/index.js.map +1 -0
  432. package/dist/diagrams/{packet → triton/packet}/ir.d.ts +1 -1
  433. package/dist/diagrams/triton/packet/ir.d.ts.map +1 -0
  434. package/dist/diagrams/triton/packet/ir.js +2 -0
  435. package/dist/diagrams/triton/packet/ir.js.map +1 -0
  436. package/dist/diagrams/{packet → triton/packet}/layout.d.ts +2 -2
  437. package/dist/diagrams/triton/packet/layout.d.ts.map +1 -0
  438. package/dist/diagrams/triton/packet/layout.js +69 -0
  439. package/dist/diagrams/triton/packet/layout.js.map +1 -0
  440. package/dist/diagrams/{poster → triton/poster}/index.d.ts +1 -1
  441. package/dist/diagrams/triton/poster/index.d.ts.map +1 -0
  442. package/dist/diagrams/triton/poster/index.js +127 -0
  443. package/dist/diagrams/triton/poster/index.js.map +1 -0
  444. package/dist/diagrams/{poster → triton/poster}/ir.d.ts +1 -3
  445. package/dist/diagrams/{poster → triton/poster}/ir.d.ts.map +1 -1
  446. package/dist/diagrams/triton/poster/ir.js +2 -0
  447. package/dist/diagrams/triton/poster/ir.js.map +1 -0
  448. package/dist/diagrams/{poster → triton/poster}/layout.d.ts +2 -2
  449. package/dist/diagrams/triton/poster/layout.d.ts.map +1 -0
  450. package/dist/diagrams/triton/poster/layout.js +517 -0
  451. package/dist/diagrams/triton/poster/layout.js.map +1 -0
  452. package/dist/diagrams/{topology → triton/topology}/topology.d.ts +2 -2
  453. package/dist/diagrams/triton/topology/topology.d.ts.map +1 -0
  454. package/dist/diagrams/triton/topology/topology.js +198 -0
  455. package/dist/diagrams/triton/topology/topology.js.map +1 -0
  456. package/dist/frontend/detect.js +94 -0
  457. package/dist/frontend/detect.js.map +1 -0
  458. package/dist/frontend/index.d.ts +4 -4
  459. package/dist/frontend/index.d.ts.map +1 -1
  460. package/dist/frontend/index.js +196 -0
  461. package/dist/frontend/index.js.map +1 -0
  462. package/dist/frontend/preprocess.d.ts +28 -0
  463. package/dist/frontend/preprocess.d.ts.map +1 -0
  464. package/dist/frontend/preprocess.js +60 -0
  465. package/dist/frontend/preprocess.js.map +1 -0
  466. package/dist/frontend/registry.js +25 -0
  467. package/dist/frontend/registry.js.map +1 -0
  468. package/dist/graph/connect.js +44 -0
  469. package/dist/graph/connect.js.map +1 -0
  470. package/dist/graph/layered.d.ts +65 -5
  471. package/dist/graph/layered.d.ts.map +1 -1
  472. package/dist/graph/layered.js +936 -0
  473. package/dist/graph/layered.js.map +1 -0
  474. package/dist/graph/tree.js +107 -0
  475. package/dist/graph/tree.js.map +1 -0
  476. package/dist/index.js +4691 -2735
  477. package/dist/index.js.map +4 -4
  478. package/dist/overlay/apply.js +22 -0
  479. package/dist/overlay/apply.js.map +1 -0
  480. package/dist/overlay/compiler.js +48 -0
  481. package/dist/overlay/compiler.js.map +1 -0
  482. package/dist/overlay/layout.js +242 -0
  483. package/dist/overlay/layout.js.map +1 -0
  484. package/dist/palette/categorical.js +21 -0
  485. package/dist/palette/categorical.js.map +1 -0
  486. package/dist/render/registry.js +22 -0
  487. package/dist/render/registry.js.map +1 -0
  488. package/dist/render/svg.d.ts.map +1 -1
  489. package/dist/render/svg.js +287 -0
  490. package/dist/render/svg.js.map +1 -0
  491. package/dist/routing/d3-curves.d.ts +31 -0
  492. package/dist/routing/d3-curves.d.ts.map +1 -0
  493. package/dist/routing/d3-curves.js +58 -0
  494. package/dist/routing/d3-curves.js.map +1 -0
  495. package/dist/routing/registry.js +22 -0
  496. package/dist/routing/registry.js.map +1 -0
  497. package/dist/routing/router.d.ts +3 -0
  498. package/dist/routing/router.d.ts.map +1 -1
  499. package/dist/routing/router.js +849 -0
  500. package/dist/routing/router.js.map +1 -0
  501. package/dist/scene/build.d.ts +3 -1
  502. package/dist/scene/build.d.ts.map +1 -1
  503. package/dist/scene/build.js +57 -0
  504. package/dist/scene/build.js.map +1 -0
  505. package/dist/scene/strip.js +46 -0
  506. package/dist/scene/strip.js.map +1 -0
  507. package/dist/style/cost.js +39 -0
  508. package/dist/style/cost.js.map +1 -0
  509. package/dist/text/metrics.js +62 -0
  510. package/dist/text/metrics.js.map +1 -0
  511. package/dist/text/wrap.js +84 -0
  512. package/dist/text/wrap.js.map +1 -0
  513. package/dist/theme/preset.d.ts +2 -0
  514. package/dist/theme/preset.d.ts.map +1 -1
  515. package/dist/theme/preset.js +295 -0
  516. package/dist/theme/preset.js.map +1 -0
  517. package/dist/theme/resolver.js +15 -0
  518. package/dist/theme/resolver.js.map +1 -0
  519. package/dist/time/dates.js +301 -0
  520. package/dist/time/dates.js.map +1 -0
  521. package/dist/util/round.js +17 -0
  522. package/dist/util/round.js.map +1 -0
  523. package/package.json +1 -1
  524. package/dist/diagrams/architecture/index.d.ts.map +0 -1
  525. package/dist/diagrams/architecture/ir.d.ts.map +0 -1
  526. package/dist/diagrams/architecture/layout.d.ts.map +0 -1
  527. package/dist/diagrams/block/index.d.ts.map +0 -1
  528. package/dist/diagrams/block/ir.d.ts.map +0 -1
  529. package/dist/diagrams/block/layout.d.ts.map +0 -1
  530. package/dist/diagrams/c4/index.d.ts.map +0 -1
  531. package/dist/diagrams/c4/ir.d.ts.map +0 -1
  532. package/dist/diagrams/c4/layout.d.ts.map +0 -1
  533. package/dist/diagrams/class/index.d.ts.map +0 -1
  534. package/dist/diagrams/class/ir.d.ts.map +0 -1
  535. package/dist/diagrams/class/layout.d.ts.map +0 -1
  536. package/dist/diagrams/ds/graph/graph.d.ts.map +0 -1
  537. package/dist/diagrams/ds/hashmap/hashmap.d.ts.map +0 -1
  538. package/dist/diagrams/ds/matrix/matrix.d.ts.map +0 -1
  539. package/dist/diagrams/ds/queue/cqueue.d.ts.map +0 -1
  540. package/dist/diagrams/ds/queue/deque.d.ts.map +0 -1
  541. package/dist/diagrams/ds/queue/pqueue.d.ts.map +0 -1
  542. package/dist/diagrams/ds/queue/queue.d.ts.map +0 -1
  543. package/dist/diagrams/ds/queue/shared.d.ts.map +0 -1
  544. package/dist/diagrams/ds/stack/stack.d.ts.map +0 -1
  545. package/dist/diagrams/ds/struct/array.d.ts +0 -28
  546. package/dist/diagrams/ds/struct/array.d.ts.map +0 -1
  547. package/dist/diagrams/ds/struct/linkedlist.d.ts.map +0 -1
  548. package/dist/diagrams/ds/struct/memory.d.ts.map +0 -1
  549. package/dist/diagrams/ds/struct/page.d.ts.map +0 -1
  550. package/dist/diagrams/ds/struct/shared.d.ts +0 -9
  551. package/dist/diagrams/ds/struct/shared.d.ts.map +0 -1
  552. package/dist/diagrams/ds/tree/avl.d.ts.map +0 -1
  553. package/dist/diagrams/ds/tree/btree.d.ts.map +0 -1
  554. package/dist/diagrams/ds/tree/build.d.ts.map +0 -1
  555. package/dist/diagrams/ds/tree/heap.d.ts.map +0 -1
  556. package/dist/diagrams/ds/tree/index.d.ts.map +0 -1
  557. package/dist/diagrams/ds/tree/ir.d.ts.map +0 -1
  558. package/dist/diagrams/ds/tree/layout.d.ts.map +0 -1
  559. package/dist/diagrams/ds/tree/plan.d.ts.map +0 -1
  560. package/dist/diagrams/ds/tree/radix.d.ts.map +0 -1
  561. package/dist/diagrams/ds/tree/rbtree.d.ts.map +0 -1
  562. package/dist/diagrams/ds/tree/segtree.d.ts.map +0 -1
  563. package/dist/diagrams/ds/trie/trie.d.ts.map +0 -1
  564. package/dist/diagrams/ds/unionfind/unionfind.d.ts.map +0 -1
  565. package/dist/diagrams/er/index.d.ts.map +0 -1
  566. package/dist/diagrams/er/ir.d.ts.map +0 -1
  567. package/dist/diagrams/er/layout.d.ts.map +0 -1
  568. package/dist/diagrams/flowchart/index.d.ts.map +0 -1
  569. package/dist/diagrams/flowchart/ir.d.ts.map +0 -1
  570. package/dist/diagrams/flowchart/layout.d.ts +0 -5
  571. package/dist/diagrams/flowchart/layout.d.ts.map +0 -1
  572. package/dist/diagrams/gantt/index.d.ts.map +0 -1
  573. package/dist/diagrams/gantt/ir.d.ts.map +0 -1
  574. package/dist/diagrams/gantt/layout.d.ts.map +0 -1
  575. package/dist/diagrams/gitgraph/index.d.ts.map +0 -1
  576. package/dist/diagrams/gitgraph/ir.d.ts.map +0 -1
  577. package/dist/diagrams/gitgraph/layout.d.ts.map +0 -1
  578. package/dist/diagrams/journey/index.d.ts.map +0 -1
  579. package/dist/diagrams/journey/ir.d.ts.map +0 -1
  580. package/dist/diagrams/journey/layout.d.ts.map +0 -1
  581. package/dist/diagrams/kanban/index.d.ts.map +0 -1
  582. package/dist/diagrams/kanban/ir.d.ts.map +0 -1
  583. package/dist/diagrams/kanban/layout.d.ts.map +0 -1
  584. package/dist/diagrams/mindmap/index.d.ts.map +0 -1
  585. package/dist/diagrams/mindmap/ir.d.ts.map +0 -1
  586. package/dist/diagrams/mindmap/layout.d.ts.map +0 -1
  587. package/dist/diagrams/packet/index.d.ts.map +0 -1
  588. package/dist/diagrams/packet/ir.d.ts.map +0 -1
  589. package/dist/diagrams/packet/layout.d.ts.map +0 -1
  590. package/dist/diagrams/pie/index.d.ts.map +0 -1
  591. package/dist/diagrams/pie/ir.d.ts.map +0 -1
  592. package/dist/diagrams/pie/layout.d.ts.map +0 -1
  593. package/dist/diagrams/poster/index.d.ts.map +0 -1
  594. package/dist/diagrams/poster/layout.d.ts.map +0 -1
  595. package/dist/diagrams/quadrant/index.d.ts.map +0 -1
  596. package/dist/diagrams/quadrant/ir.d.ts.map +0 -1
  597. package/dist/diagrams/quadrant/layout.d.ts.map +0 -1
  598. package/dist/diagrams/radar/index.d.ts.map +0 -1
  599. package/dist/diagrams/radar/ir.d.ts.map +0 -1
  600. package/dist/diagrams/radar/layout.d.ts.map +0 -1
  601. package/dist/diagrams/requirement/index.d.ts.map +0 -1
  602. package/dist/diagrams/requirement/ir.d.ts.map +0 -1
  603. package/dist/diagrams/requirement/layout.d.ts.map +0 -1
  604. package/dist/diagrams/sankey/index.d.ts.map +0 -1
  605. package/dist/diagrams/sankey/ir.d.ts.map +0 -1
  606. package/dist/diagrams/sankey/layout.d.ts.map +0 -1
  607. package/dist/diagrams/sequence/index.d.ts.map +0 -1
  608. package/dist/diagrams/sequence/ir.d.ts.map +0 -1
  609. package/dist/diagrams/sequence/layout.d.ts.map +0 -1
  610. package/dist/diagrams/state/index.d.ts.map +0 -1
  611. package/dist/diagrams/state/ir.d.ts.map +0 -1
  612. package/dist/diagrams/state/layout.d.ts.map +0 -1
  613. package/dist/diagrams/timeline/index.d.ts.map +0 -1
  614. package/dist/diagrams/timeline/ir.d.ts.map +0 -1
  615. package/dist/diagrams/timeline/layout.d.ts +0 -5
  616. package/dist/diagrams/timeline/layout.d.ts.map +0 -1
  617. package/dist/diagrams/timeline/numbered.d.ts.map +0 -1
  618. package/dist/diagrams/timeline/roadmap.d.ts.map +0 -1
  619. package/dist/diagrams/timeline/serpentine.d.ts.map +0 -1
  620. package/dist/diagrams/timeline/shared.d.ts.map +0 -1
  621. package/dist/diagrams/timeline/timeline-columns.d.ts.map +0 -1
  622. package/dist/diagrams/timeline/vertical-spine.d.ts.map +0 -1
  623. package/dist/diagrams/topology/topology.d.ts.map +0 -1
  624. package/dist/diagrams/xychart/index.d.ts.map +0 -1
  625. package/dist/diagrams/xychart/ir.d.ts.map +0 -1
  626. package/dist/diagrams/xychart/layout.d.ts.map +0 -1
  627. /package/dist/diagrams/{ds → triton/ds}/tree/build.d.ts +0 -0
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @file diagrams/ds/stack/stack.ts — LIFO stack (vertical cell strip + top marker).
3
+ *
4
+ * A vertical run of cells. The most-recently-pushed item sits at the TOP
5
+ * (smallest y); push and pop both happen at the top. A `top` pointer points
6
+ * into the top-of-stack cell from the left; a `capacity` larger than the
7
+ * filled count shows empty slots above the top (the stack grows upward).
8
+ *
9
+ * Value-driven mini-syntax:
10
+ * stack A B C D // push order; D is on top
11
+ * stack
12
+ * title call stack
13
+ * cells main parse layout // layout is on top
14
+ * capacity 6 // 3 empty slots above
15
+ */
16
+ import { pen } from '../../../../scene/build.js';
17
+ import { buildStrip } from '../../../../scene/strip.js';
18
+ import { measureText } from '../../../../text/metrics.js';
19
+ import { rhu } from '../../../../util/round.js';
20
+ import { finalizeStripScene, parseAxisToken, pointerToSlot } from '../queue/shared.js';
21
+ import { ARROW_ID, arrowDef, lines } from '../struct/shared.js';
22
+ function parse(input) {
23
+ let title;
24
+ let cells = [];
25
+ let capacity;
26
+ let axis = 'vertical';
27
+ for (const line of lines(input)) {
28
+ const t = line.split(/\s+/);
29
+ if (t[0] === 'stack') {
30
+ if (t.length > 1)
31
+ cells = t.slice(1);
32
+ continue;
33
+ }
34
+ if (t[0] === 'title') {
35
+ title = line.slice(5).trim();
36
+ continue;
37
+ }
38
+ if (t[0] === 'cells' || t[0] === 'items') {
39
+ cells = t.slice(1);
40
+ continue;
41
+ }
42
+ if (t[0] === 'capacity') {
43
+ const n = Number(t[1]);
44
+ if (Number.isFinite(n))
45
+ capacity = n;
46
+ continue;
47
+ }
48
+ if (t[0] === 'axis') {
49
+ axis = parseAxisToken(t[1], axis);
50
+ continue;
51
+ }
52
+ }
53
+ return { ...(title !== undefined ? { title } : {}), cells, ...(capacity !== undefined ? { capacity } : {}), axis };
54
+ }
55
+ export function layoutStack(doc, theme) {
56
+ const { palette, typography, spacing } = theme;
57
+ const p = pen(theme);
58
+ const margin = spacing.diagramMargin;
59
+ const font = typography.baseFontSize;
60
+ const cellH = 38;
61
+ const filled = doc.cells.length;
62
+ const total = Math.max(filled, doc.capacity ?? filled, 1);
63
+ const empty = total - filled;
64
+ const cellW = Math.max(64, ...doc.cells.map(c => measureText(c, font).width + 28));
65
+ const axis = doc.axis === 'horizontal' ? 'horizontal' : 'vertical';
66
+ const horizontal = axis === 'horizontal';
67
+ const titleH = doc.title ? typography.titleFontSize + 14 : 0;
68
+ const topH = font + 18; // room for the push / pop caption
69
+ const sideGap = 64; // room for the `top` pointer on the left
70
+ const origin = horizontal
71
+ ? { x: margin, y: margin + titleH + topH }
72
+ : { x: margin + sideGap, y: margin + titleH + topH };
73
+ // Top-of-stack drawn at the top: empty slots first, then filled cells in
74
+ // reverse push order (last pushed is topmost).
75
+ const display = [
76
+ ...Array.from({ length: empty }, () => null),
77
+ ...[...doc.cells].reverse(),
78
+ ];
79
+ const cellInputs = display.map(v => (v !== null ? { label: v } : { fill: palette.background }));
80
+ const strip = buildStrip(p, theme, cellInputs, {
81
+ origin, cellWidth: cellW, cellHeight: cellH, orientation: axis,
82
+ });
83
+ const elements = [...strip.elements];
84
+ if (doc.title) {
85
+ elements.push(p.text(doc.title, margin, margin + typography.titleFontSize, typography.titleFontSize, palette.text, { weight: 'bold' }));
86
+ }
87
+ const topSlot = filled > 0 ? strip.slots[empty] : strip.slots[0];
88
+ const actionX = topSlot ? topSlot.x + topSlot.width / 2 : origin.x + cellW / 2;
89
+ elements.push(p.text('push / pop', actionX, origin.y - 9, font, palette.primary, { anchor: 'middle', weight: 'bold' }));
90
+ elements.push(p.path(`M ${rhu(actionX)} ${rhu(origin.y - topH + 8)} L ${rhu(actionX)} ${rhu(origin.y)}`, palette.primary, 1.5, { markerEnd: ARROW_ID }));
91
+ // `top` pointer — points into the top-of-stack cell
92
+ if (filled > 0) {
93
+ if (horizontal) {
94
+ const top = pointerToSlot(p, theme, topSlot, 'top', palette.secondary, 'bottom', 0);
95
+ elements.push(...top.elements);
96
+ }
97
+ else {
98
+ const cyTop = topSlot.y + topSlot.height / 2;
99
+ elements.push(p.path(`M ${rhu(origin.x - sideGap + 8)} ${rhu(cyTop)} L ${rhu(origin.x)} ${rhu(cyTop)}`, palette.secondary, 1.5, { markerEnd: ARROW_ID }));
100
+ elements.push(p.text('top', origin.x - sideGap + 6, cyTop - 6, font, palette.secondary, { anchor: 'start', weight: 'bold' }));
101
+ }
102
+ }
103
+ const anchors = {};
104
+ strip.slots.forEach((slot, i) => { anchors[`c${i}`] = { bounds: slot }; });
105
+ const finalized = finalizeStripScene(elements, anchors, theme, [arrowDef(palette.primary)]);
106
+ return { scene: finalized.scene, anchors: finalized.anchors };
107
+ }
108
+ export const stack = {
109
+ parseMermaid(input) {
110
+ return { version: '1.0', metadata: {}, ...parse(input) };
111
+ },
112
+ parseYaml(input) {
113
+ return JSON.parse(input);
114
+ },
115
+ layout(ir, theme) {
116
+ return layoutStack(ir, theme);
117
+ },
118
+ };
119
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../../../../../src/diagrams/triton/ds/stack/stack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @file diagrams/struct/array.ts — Contiguous array (cell strip + pointers).
3
+ *
4
+ * Value-driven mini-syntax:
5
+ * array 5 8 13 21 34 // cells on the header line, or:
6
+ * array
7
+ * title nums
8
+ * cells 5 8 ... 34
9
+ * axis vertical
10
+ * index bottom reverse
11
+ * ptr i -> 2 "slow pointer"
12
+ */
13
+ import type { DiagramModule, ResolvedTheme, LayoutResult } from '../../../../contracts/index.js';
14
+ export type ArrayAxis = 'horizontal' | 'vertical';
15
+ export type ArrayIndexSide = 'before' | 'after';
16
+ export type ArrayIndexOrder = 'normal' | 'reverse';
17
+ export interface ArrayValueCell {
18
+ readonly kind: 'value';
19
+ readonly value: string;
20
+ }
21
+ export interface ArrayGapCell {
22
+ readonly kind: 'gap';
23
+ }
24
+ export type ArrayCell = ArrayValueCell | ArrayGapCell;
25
+ export interface ArrayPointerTarget {
26
+ readonly raw: string;
27
+ readonly value?: number;
28
+ readonly anchor?: string;
29
+ }
30
+ export interface ArrayPointer {
31
+ readonly id: string;
32
+ readonly label?: string;
33
+ readonly target: ArrayPointerTarget;
34
+ }
35
+ export interface ArrayDoc {
36
+ readonly title?: string;
37
+ readonly axis: ArrayAxis;
38
+ readonly index: {
39
+ readonly show: boolean;
40
+ readonly side: ArrayIndexSide;
41
+ readonly order: ArrayIndexOrder;
42
+ };
43
+ readonly cells: readonly ArrayCell[];
44
+ readonly ptrs: readonly ArrayPointer[];
45
+ }
46
+ export declare function resolveArrayElementAnchorId(doc: ArrayDoc, elementIndex: number): string | undefined;
47
+ export declare function layoutArray(inputDoc: ArrayDoc, theme: ResolvedTheme): LayoutResult;
48
+ export declare const array: DiagramModule<ArrayDoc & {
49
+ version: string;
50
+ metadata: Record<string, unknown>;
51
+ }>;
52
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../../../../src/diagrams/triton/ds/struct/array.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,aAAa,EAAE,aAAa,EAAE,YAAY,EAC3C,MAAM,gCAAgC,CAAC;AAMxC,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,CAAC;CACxC;AA+HD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAanG;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAyGlF;AAqTD,eAAO,MAAM,KAAK,EAAE,aAAa,CAAC,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAWlG,CAAC"}
@@ -0,0 +1,491 @@
1
+ /**
2
+ * @file diagrams/struct/array.ts — Contiguous array (cell strip + pointers).
3
+ *
4
+ * Value-driven mini-syntax:
5
+ * array 5 8 13 21 34 // cells on the header line, or:
6
+ * array
7
+ * title nums
8
+ * cells 5 8 ... 34
9
+ * axis vertical
10
+ * index bottom reverse
11
+ * ptr i -> 2 "slow pointer"
12
+ */
13
+ import { pen } from '../../../../scene/build.js';
14
+ import { measureText } from '../../../../text/metrics.js';
15
+ import { rhu } from '../../../../util/round.js';
16
+ import { ARROW_ID, arrowDef, lines, tokenizeDirective } from './shared.js';
17
+ function parse(input) {
18
+ let title;
19
+ let cells = [];
20
+ let axis = 'horizontal';
21
+ let indexShow = false;
22
+ let indexSide = 'before';
23
+ let indexOrder = 'normal';
24
+ const ptrs = [];
25
+ for (const line of lines(input)) {
26
+ const t = tokenizeDirective(line);
27
+ if (t.length === 0)
28
+ continue;
29
+ if (t[0] === 'array') {
30
+ if (t.length > 1)
31
+ cells = parseCells(t.slice(1));
32
+ continue;
33
+ }
34
+ if (t[0] === 'title') {
35
+ title = t.slice(1).join(' ');
36
+ continue;
37
+ }
38
+ if (t[0] === 'cells') {
39
+ cells = parseCells(t.slice(1));
40
+ continue;
41
+ }
42
+ if (t[0] === 'axis') {
43
+ if (t[1] === 'vertical' || t[1] === 'horizontal')
44
+ axis = t[1];
45
+ continue;
46
+ }
47
+ if (t[0] === 'index') {
48
+ indexShow = true;
49
+ for (const mod of t.slice(1)) {
50
+ if (mod === 'bottom')
51
+ indexSide = 'after';
52
+ if (mod === 'top')
53
+ indexSide = 'before';
54
+ if (mod === 'reverse')
55
+ indexOrder = 'reverse';
56
+ }
57
+ continue;
58
+ }
59
+ if (t[0] === 'ptr' && t.length >= 4 && t[2] === '->') {
60
+ ptrs.push({ id: t[1], target: parsePointerTarget(t[3]), ...(t[4] !== undefined ? { label: t[4] } : {}) });
61
+ }
62
+ }
63
+ return {
64
+ ...(title !== undefined ? { title } : {}),
65
+ axis,
66
+ index: { show: indexShow, side: indexSide, order: indexOrder },
67
+ cells,
68
+ ptrs,
69
+ };
70
+ }
71
+ function parseCells(tokens) {
72
+ const cells = tokens.map(token => token === '...' ? { kind: 'gap' } : { kind: 'value', value: token });
73
+ const gapPositions = cells
74
+ .map((cell, i) => cell.kind === 'gap' ? i : -1)
75
+ .filter(i => i >= 0);
76
+ if (gapPositions.length > 1)
77
+ throw new Error('Array cells may contain at most one ... gap');
78
+ if (gapPositions.length === 1) {
79
+ const gap = gapPositions[0];
80
+ if (gap === 0 || gap === cells.length - 1)
81
+ throw new Error('Array ... gap must be between concrete cells');
82
+ }
83
+ return cells;
84
+ }
85
+ function parsePointerTarget(raw) {
86
+ if (/^\d+$/.test(raw))
87
+ return { raw, value: Number(raw) };
88
+ if (/^c\d+$/.test(raw) || raw === 'cfirst' || raw === 'clast' || raw === 'cgap')
89
+ return { raw, anchor: raw };
90
+ return { raw, anchor: raw };
91
+ }
92
+ function metadataFor(doc) {
93
+ const physicalToLogical = new Array(doc.cells.length).fill(null);
94
+ const indexToPhysical = new Map();
95
+ const nonGapPhysicals = [];
96
+ let gapPhysical;
97
+ doc.cells.forEach((cell, physical) => {
98
+ if (cell.kind === 'gap') {
99
+ gapPhysical = physical;
100
+ }
101
+ else {
102
+ nonGapPhysicals.push(physical);
103
+ }
104
+ });
105
+ const logicalCount = nonGapPhysicals.length;
106
+ nonGapPhysicals.forEach((physical, rank) => {
107
+ const logical = doc.index.order === 'reverse' ? logicalCount - 1 - rank : rank;
108
+ physicalToLogical[physical] = logical;
109
+ indexToPhysical.set(logical, physical);
110
+ });
111
+ return {
112
+ physicalToLogical,
113
+ indexToPhysical,
114
+ nonGapPhysicals,
115
+ ...(gapPhysical !== undefined ? { gapPhysical } : {}),
116
+ };
117
+ }
118
+ export function resolveArrayElementAnchorId(doc, elementIndex) {
119
+ const meta = metadataFor(normalizeArrayDoc(doc));
120
+ const logicalCount = meta.nonGapPhysicals.length;
121
+ if (elementIndex < 0) {
122
+ const fromEnd = Math.abs(elementIndex);
123
+ if (fromEnd < 1 || fromEnd > logicalCount)
124
+ return undefined;
125
+ if (fromEnd === 1)
126
+ return meta.nonGapPhysicals.length > 0 ? 'clast' : undefined;
127
+ return `c${logicalCount - fromEnd}`;
128
+ }
129
+ if (doc.cells[elementIndex]?.kind === 'gap')
130
+ return 'cgap';
131
+ return meta.indexToPhysical.has(elementIndex) ? `c${elementIndex}` : undefined;
132
+ }
133
+ export function layoutArray(inputDoc, theme) {
134
+ const doc = normalizeArrayDoc(inputDoc);
135
+ const { palette, typography, spacing } = theme;
136
+ const p = pen(theme);
137
+ const margin = spacing.diagramMargin;
138
+ const font = typography.baseFontSize;
139
+ const smallFont = typography.smallFontSize;
140
+ const cellH = 40;
141
+ const cellW = Math.max(40, ...doc.cells.map(c => measureText(c.kind === 'gap' ? '…' : c.value, font).width + 24));
142
+ const titleH = doc.title ? typography.titleFontSize + 14 : 0;
143
+ const indexBand = doc.index.show ? smallFont + 12 : 0;
144
+ const arrowLen = 30;
145
+ const labelGap = 6;
146
+ const indexPad = 6;
147
+ const horizontal = doc.axis === 'horizontal';
148
+ const meta = metadataFor(doc);
149
+ const resolvedPtrs = doc.ptrs
150
+ .map((ptr) => {
151
+ const physical = resolvePointerPhysical(ptr.target, doc, meta);
152
+ return physical === undefined ? null : { ptr, physical };
153
+ })
154
+ .filter((ptr) => ptr !== null);
155
+ const labelFont = font;
156
+ const labelLaneGap = labelFont + 8;
157
+ const pointerSide = doc.index.side === 'before' ? 'after' : 'before';
158
+ const horizontalLanes = horizontal ? assignHorizontalPointerLanes(resolvedPtrs, doc, meta, cellW, labelFont) : [];
159
+ const pointerLaneCount = Math.max(0, ...horizontalLanes.map(l => l + 1));
160
+ const pointerBand = resolvedPtrs.length === 0
161
+ ? 0
162
+ : horizontal
163
+ ? arrowLen + labelGap + labelFont + Math.max(0, pointerLaneCount - 1) * labelLaneGap + 4
164
+ : arrowLen + labelGap + maxPointerLabelWidth(resolvedPtrs, labelFont) + 8;
165
+ const topBand = horizontal
166
+ ? (doc.index.show && doc.index.side === 'before' ? indexBand : 0)
167
+ + (pointerSide === 'before' ? pointerBand : 0)
168
+ : 0;
169
+ const leftBand = !horizontal
170
+ ? (doc.index.show && doc.index.side === 'before' ? smallFont * 2 + indexPad : 0)
171
+ + (pointerSide === 'before' ? pointerBand : 0)
172
+ : 0;
173
+ const origin = {
174
+ x: leftBand,
175
+ y: titleH + topBand,
176
+ };
177
+ const slots = buildSlots(doc.cells.length, origin, cellW, cellH, doc.axis);
178
+ const elements = [];
179
+ if (doc.title) {
180
+ elements.push(p.text(doc.title, origin.x, typography.titleFontSize, typography.titleFontSize, palette.text, { weight: 'bold' }));
181
+ }
182
+ doc.cells.forEach((cell, physical) => {
183
+ const slot = slots[physical];
184
+ if (cell.kind === 'gap') {
185
+ elements.push(p.rect(slot, palette.surface, palette.border, 1.5, { rx: 3, opacity: 0.45 }));
186
+ elements.push(p.text('…', slot.x + cellW / 2, slot.y + cellH / 2 + 5, font, palette.textMuted, { anchor: 'middle', weight: 'bold' }));
187
+ return;
188
+ }
189
+ elements.push(p.rect(slot, palette.surface, palette.border, 1.5, { rx: 3 }));
190
+ elements.push(p.text(cell.value, slot.x + cellW / 2, slot.y + cellH / 2 + 5, font, palette.text, { anchor: 'middle', weight: 'bold' }));
191
+ const logical = meta.physicalToLogical[physical];
192
+ if (doc.index.show && logical !== null) {
193
+ elements.push(renderIndexText(p, theme, String(logical), slot, cellW, cellH, doc.axis, doc.index.side, indexPad));
194
+ }
195
+ });
196
+ if (horizontal) {
197
+ renderHorizontalPointers(elements, p, theme, resolvedPtrs, slots, pointerSide, horizontalLanes, arrowLen, labelGap, labelLaneGap);
198
+ }
199
+ else {
200
+ renderVerticalPointers(elements, p, theme, resolvedPtrs, slots, doc.index.side, arrowLen, labelGap);
201
+ }
202
+ const anchors = {};
203
+ meta.indexToPhysical.forEach((physical, logical) => {
204
+ anchors[`c${logical}`] = { bounds: slots[physical] };
205
+ });
206
+ if (meta.nonGapPhysicals.length > 0) {
207
+ anchors.cfirst = { bounds: slots[meta.nonGapPhysicals[0]] };
208
+ anchors.clast = { bounds: slots[meta.nonGapPhysicals[meta.nonGapPhysicals.length - 1]] };
209
+ }
210
+ if (meta.gapPhysical !== undefined) {
211
+ anchors.cgap = { bounds: slots[meta.gapPhysical] };
212
+ }
213
+ const contentBounds = boundsForElements(elements);
214
+ const dx = margin - contentBounds.x;
215
+ const dy = margin - contentBounds.y;
216
+ const shiftedElements = translateElements(elements, dx, dy);
217
+ const shiftedAnchors = translateAnchors(anchors, dx, dy);
218
+ const scene = {
219
+ viewBox: {
220
+ x: 0,
221
+ y: 0,
222
+ width: rhu(contentBounds.width + margin * 2),
223
+ height: rhu(contentBounds.height + margin * 2),
224
+ },
225
+ background: palette.background,
226
+ elements: shiftedElements,
227
+ defs: [arrowDef(palette.primary)],
228
+ };
229
+ return { scene, anchors: shiftedAnchors };
230
+ }
231
+ function normalizeArrayDoc(doc) {
232
+ const cells = (doc.cells ?? []).map((cell) => typeof cell === 'string' ? (cell === '...' ? { kind: 'gap' } : { kind: 'value', value: cell }) : cell);
233
+ const index = typeof doc.index === 'boolean'
234
+ ? { show: doc.index, side: 'before', order: 'normal' }
235
+ : {
236
+ show: Boolean(doc.index?.show),
237
+ side: doc.index?.side === 'after' ? 'after' : 'before',
238
+ order: doc.index?.order === 'reverse' ? 'reverse' : 'normal',
239
+ };
240
+ return {
241
+ ...(doc.title !== undefined ? { title: doc.title } : {}),
242
+ axis: doc.axis === 'vertical' ? 'vertical' : 'horizontal',
243
+ index,
244
+ cells,
245
+ ptrs: (doc.ptrs ?? []).map((ptr) => {
246
+ if ('idx' in ptr)
247
+ return { id: ptr.name ?? ptr.id, target: { raw: String(ptr.idx), value: Number(ptr.idx) } };
248
+ return ptr;
249
+ }),
250
+ };
251
+ }
252
+ function buildSlots(count, origin, cellW, cellH, axis) {
253
+ return Array.from({ length: count }, (_, i) => ({
254
+ x: origin.x + (axis === 'horizontal' ? i * cellW : 0),
255
+ y: origin.y + (axis === 'horizontal' ? 0 : i * cellH),
256
+ width: cellW,
257
+ height: cellH,
258
+ }));
259
+ }
260
+ function resolvePointerPhysical(target, doc, meta) {
261
+ if (target.value !== undefined) {
262
+ const physical = meta.indexToPhysical.get(target.value);
263
+ if (physical !== undefined)
264
+ return physical;
265
+ if (doc.cells[target.value]?.kind === 'gap')
266
+ return meta.gapPhysical;
267
+ return undefined;
268
+ }
269
+ if (!target.anchor)
270
+ return undefined;
271
+ if (target.anchor === 'cfirst')
272
+ return meta.nonGapPhysicals[0];
273
+ if (target.anchor === 'clast')
274
+ return meta.nonGapPhysicals[meta.nonGapPhysicals.length - 1];
275
+ if (target.anchor === 'cgap')
276
+ return meta.gapPhysical;
277
+ const cMatch = target.anchor.match(/^c(\d+)$/);
278
+ if (cMatch)
279
+ return meta.indexToPhysical.get(Number(cMatch[1]));
280
+ return undefined;
281
+ }
282
+ function renderIndexText(p, theme, value, slot, cellW, cellH, axis, side, indexPad) {
283
+ const { palette, typography } = theme;
284
+ if (axis === 'horizontal') {
285
+ const x = slot.x + cellW / 2;
286
+ const y = side === 'before' ? slot.y - 6 : slot.y + cellH + typography.smallFontSize + 4;
287
+ return p.text(value, x, y, typography.smallFontSize, palette.textMuted, { anchor: 'middle' });
288
+ }
289
+ const centerY = slot.y + cellH / 2;
290
+ const x = side === 'before' ? slot.x - indexPad : slot.x + cellW + indexPad;
291
+ const anchor = side === 'before' ? 'end' : 'start';
292
+ return p.text(value, x, centerY + 4, typography.smallFontSize, palette.textMuted, { anchor });
293
+ }
294
+ function assignHorizontalPointerLanes(ptrs, doc, meta, cellW, font) {
295
+ const intervals = ptrs.map((ptr, ptrIndex) => {
296
+ const cx = slotCenterX(ptr.physical, cellW);
297
+ const text = pointerLabel(ptr.ptr);
298
+ const width = measureText(text, font).width + 8;
299
+ return { ptrIndex, start: cx - width / 2, end: cx + width / 2 };
300
+ });
301
+ void doc;
302
+ void meta;
303
+ return colorIntervals(intervals);
304
+ }
305
+ function colorIntervals(intervals) {
306
+ const lanes = new Array(intervals.length).fill(0);
307
+ const laneEnds = [];
308
+ const sorted = [...intervals].sort((a, b) => a.start - b.start || a.end - b.end);
309
+ for (const interval of sorted) {
310
+ let lane = 0;
311
+ while (laneEnds[lane] !== undefined && interval.start < laneEnds[lane])
312
+ lane++;
313
+ lanes[interval.ptrIndex] = lane;
314
+ laneEnds[lane] = interval.end;
315
+ }
316
+ return lanes;
317
+ }
318
+ function slotCenterX(physical, cellW) {
319
+ return physical * cellW + cellW / 2;
320
+ }
321
+ function renderHorizontalPointers(elements, p, theme, ptrs, slots, side, lanes, arrowLen, labelGap, laneGap) {
322
+ const s = side === 'after' ? 1 : -1;
323
+ const { palette, typography } = theme;
324
+ const targetCounts = countByPointerPhysical(ptrs);
325
+ const seen = new Map();
326
+ ptrs.forEach((ptr, i) => {
327
+ const slot = slots[ptr.physical];
328
+ const count = targetCounts.get(ptr.physical) ?? 1;
329
+ const ordinal = seen.get(ptr.physical) ?? 0;
330
+ seen.set(ptr.physical, ordinal + 1);
331
+ const attachX = slot.x + slot.width / 2 + centeredLaneOffset(ordinal, count, slot.width);
332
+ const edgeY = s > 0 ? slot.y + slot.height : slot.y;
333
+ const lane = lanes[i] ?? 0;
334
+ const tipY = edgeY;
335
+ const tailY = edgeY + s * (arrowLen + lane * laneGap);
336
+ const labelY = tailY + s * (labelGap + (s > 0 ? typography.baseFontSize : 0));
337
+ elements.push(p.path(`M ${rhu(attachX)} ${rhu(tailY)} L ${rhu(attachX)} ${rhu(tipY)}`, palette.primary, 1.5, { markerEnd: ARROW_ID }));
338
+ elements.push(p.text(pointerLabel(ptr.ptr), attachX, labelY, typography.baseFontSize, palette.primary, { anchor: 'middle', weight: 'bold' }));
339
+ });
340
+ }
341
+ function renderVerticalPointers(elements, p, theme, ptrs, slots, indexSide, arrowLen, labelGap) {
342
+ const s = indexSide === 'before' ? 1 : -1;
343
+ const { palette, typography } = theme;
344
+ const columnGap = labelGap + 6;
345
+ const groups = new Map();
346
+ for (const ptr of ptrs) {
347
+ const key = `${ptr.physical}:${s}`;
348
+ const widths = groups.get(key) ?? [];
349
+ widths.push(measureText(pointerLabel(ptr.ptr), typography.baseFontSize).width);
350
+ groups.set(key, widths);
351
+ }
352
+ const seen = new Map();
353
+ ptrs.forEach(ptr => {
354
+ const slot = slots[ptr.physical];
355
+ const key = `${ptr.physical}:${s}`;
356
+ const widths = groups.get(key) ?? [];
357
+ const lane = seen.get(key) ?? 0;
358
+ seen.set(key, lane + 1);
359
+ const attachY = slot.y + slot.height / 2 + centeredLaneOffset(lane, widths.length, slot.height);
360
+ const edgeX = s > 0 ? slot.x + slot.width : slot.x;
361
+ const outward = precedingLaneWidth(widths, lane, columnGap);
362
+ const tailX = edgeX + s * (arrowLen + outward);
363
+ const labelX = tailX + s * labelGap;
364
+ const anchor = s > 0 ? 'start' : 'end';
365
+ elements.push(p.path(`M ${rhu(tailX)} ${rhu(attachY)} L ${rhu(edgeX)} ${rhu(attachY)}`, palette.primary, 1.5, { markerEnd: ARROW_ID }));
366
+ elements.push(p.text(pointerLabel(ptr.ptr), labelX, attachY + 4, typography.baseFontSize, palette.primary, { anchor, weight: 'bold' }));
367
+ });
368
+ }
369
+ function maxPointerLabelWidth(ptrs, font) {
370
+ return Math.max(0, ...ptrs.map(ptr => measureText(pointerLabel(ptr.ptr), font).width));
371
+ }
372
+ function countByPointerPhysical(ptrs) {
373
+ const counts = new Map();
374
+ for (const ptr of ptrs)
375
+ counts.set(ptr.physical, (counts.get(ptr.physical) ?? 0) + 1);
376
+ return counts;
377
+ }
378
+ function centeredLaneOffset(lane, count, span) {
379
+ if (count <= 1)
380
+ return 0;
381
+ const gap = Math.min(12, span / Math.max(2, count + 1));
382
+ return (lane - (count - 1) / 2) * gap;
383
+ }
384
+ function precedingLaneWidth(widths, lane, gap) {
385
+ let offset = 0;
386
+ for (let i = 0; i < lane; i++)
387
+ offset += (widths[i] ?? 0) + gap;
388
+ return offset;
389
+ }
390
+ function boundsForElements(elements) {
391
+ const bounds = elements.map(boundsForElement).filter((b) => b !== undefined);
392
+ if (bounds.length === 0)
393
+ return { x: 0, y: 0, width: 0, height: 0 };
394
+ const minX = Math.min(...bounds.map(b => b.x));
395
+ const minY = Math.min(...bounds.map(b => b.y));
396
+ const maxX = Math.max(...bounds.map(b => b.x + b.width));
397
+ const maxY = Math.max(...bounds.map(b => b.y + b.height));
398
+ return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
399
+ }
400
+ function boundsForElement(element) {
401
+ switch (element.type) {
402
+ case 'rect':
403
+ return element.bounds;
404
+ case 'circle':
405
+ return {
406
+ x: element.center.x - element.radius,
407
+ y: element.center.y - element.radius,
408
+ width: element.radius * 2,
409
+ height: element.radius * 2,
410
+ };
411
+ case 'path':
412
+ return boundsForPath(element.d, element.strokeWidth);
413
+ case 'text':
414
+ return boundsForText(element);
415
+ case 'group':
416
+ return boundsForElements(element.children);
417
+ }
418
+ }
419
+ function boundsForText(text) {
420
+ const measured = measureText(text.content, text.fontSize);
421
+ const x = text.anchor === 'middle'
422
+ ? text.position.x - measured.width / 2
423
+ : text.anchor === 'end'
424
+ ? text.position.x - measured.width
425
+ : text.position.x;
426
+ return {
427
+ x,
428
+ y: text.position.y - text.fontSize,
429
+ width: measured.width,
430
+ height: text.fontSize * 1.25,
431
+ };
432
+ }
433
+ function boundsForPath(d, strokeWidth) {
434
+ const nums = [...d.matchAll(/-?\d+(?:\.\d+)?/g)].map(match => Number(match[0]));
435
+ if (nums.length < 2)
436
+ return { x: 0, y: 0, width: 0, height: 0 };
437
+ const xs = nums.filter((_, i) => i % 2 === 0);
438
+ const ys = nums.filter((_, i) => i % 2 === 1);
439
+ const pad = strokeWidth / 2;
440
+ const minX = Math.min(...xs) - pad;
441
+ const minY = Math.min(...ys) - pad;
442
+ const maxX = Math.max(...xs) + pad;
443
+ const maxY = Math.max(...ys) + pad;
444
+ return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
445
+ }
446
+ function translateElements(elements, dx, dy) {
447
+ return elements.map(element => translateElement(element, dx, dy));
448
+ }
449
+ function translateElement(element, dx, dy) {
450
+ switch (element.type) {
451
+ case 'rect':
452
+ return { ...element, bounds: translateRect(element.bounds, dx, dy) };
453
+ case 'circle':
454
+ return { ...element, center: { x: rhu(element.center.x + dx), y: rhu(element.center.y + dy) } };
455
+ case 'path':
456
+ return { ...element, d: translatePathD(element.d, dx, dy) };
457
+ case 'text':
458
+ return { ...element, position: { x: rhu(element.position.x + dx), y: rhu(element.position.y + dy) } };
459
+ case 'group':
460
+ return { ...element, children: translateElements(element.children, dx, dy) };
461
+ }
462
+ }
463
+ function translateAnchors(anchors, dx, dy) {
464
+ return Object.fromEntries(Object.entries(anchors).map(([key, anchor]) => [key, { bounds: translateRect(anchor.bounds, dx, dy) }]));
465
+ }
466
+ function translateRect(rect, dx, dy) {
467
+ return { x: rhu(rect.x + dx), y: rhu(rect.y + dy), width: rect.width, height: rect.height };
468
+ }
469
+ function translatePathD(d, dx, dy) {
470
+ let i = 0;
471
+ return d.replace(/-?\d+(?:\.\d+)?/g, value => {
472
+ const delta = i++ % 2 === 0 ? dx : dy;
473
+ return String(rhu(Number(value) + delta));
474
+ });
475
+ }
476
+ function pointerLabel(ptr) {
477
+ return ptr.label ?? ptr.id;
478
+ }
479
+ export const array = {
480
+ parseMermaid(input) {
481
+ return { version: '1.0', metadata: {}, ...parse(input) };
482
+ },
483
+ parseYaml(input) {
484
+ const parsed = JSON.parse(input);
485
+ return { version: parsed.version ?? '1.0', metadata: parsed.metadata ?? {}, ...normalizeArrayDoc(parsed) };
486
+ },
487
+ layout(ir, theme) {
488
+ return layoutArray(ir, theme);
489
+ },
490
+ };
491
+ //# sourceMappingURL=array.js.map