@cristianormazabal/triton-core 0.1.0

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 (283) hide show
  1. package/dist/contracts/anchors.d.ts +150 -0
  2. package/dist/contracts/anchors.d.ts.map +1 -0
  3. package/dist/contracts/crosslink.d.ts +171 -0
  4. package/dist/contracts/crosslink.d.ts.map +1 -0
  5. package/dist/contracts/diagram.d.ts +107 -0
  6. package/dist/contracts/diagram.d.ts.map +1 -0
  7. package/dist/contracts/index.d.ts +29 -0
  8. package/dist/contracts/index.d.ts.map +1 -0
  9. package/dist/contracts/overlay.d.ts +98 -0
  10. package/dist/contracts/overlay.d.ts.map +1 -0
  11. package/dist/contracts/primitives.d.ts +42 -0
  12. package/dist/contracts/primitives.d.ts.map +1 -0
  13. package/dist/contracts/renderer.d.ts +21 -0
  14. package/dist/contracts/renderer.d.ts.map +1 -0
  15. package/dist/contracts/result.d.ts +32 -0
  16. package/dist/contracts/result.d.ts.map +1 -0
  17. package/dist/contracts/routing.d.ts +60 -0
  18. package/dist/contracts/routing.d.ts.map +1 -0
  19. package/dist/contracts/scene.d.ts +114 -0
  20. package/dist/contracts/scene.d.ts.map +1 -0
  21. package/dist/contracts/theme.d.ts +113 -0
  22. package/dist/contracts/theme.d.ts.map +1 -0
  23. package/dist/crosslink/engine2.d.ts +40 -0
  24. package/dist/crosslink/engine2.d.ts.map +1 -0
  25. package/dist/crosslink/engine3.d.ts +36 -0
  26. package/dist/crosslink/engine3.d.ts.map +1 -0
  27. package/dist/crosslink/index.d.ts +5 -0
  28. package/dist/crosslink/index.d.ts.map +1 -0
  29. package/dist/crosslink/render.d.ts +22 -0
  30. package/dist/crosslink/render.d.ts.map +1 -0
  31. package/dist/crosslink/resolve.d.ts +26 -0
  32. package/dist/crosslink/resolve.d.ts.map +1 -0
  33. package/dist/diagrams/architecture/index.d.ts +5 -0
  34. package/dist/diagrams/architecture/index.d.ts.map +1 -0
  35. package/dist/diagrams/architecture/ir.d.ts +29 -0
  36. package/dist/diagrams/architecture/ir.d.ts.map +1 -0
  37. package/dist/diagrams/architecture/layout.d.ts +11 -0
  38. package/dist/diagrams/architecture/layout.d.ts.map +1 -0
  39. package/dist/diagrams/block/index.d.ts +5 -0
  40. package/dist/diagrams/block/index.d.ts.map +1 -0
  41. package/dist/diagrams/block/ir.d.ts +22 -0
  42. package/dist/diagrams/block/ir.d.ts.map +1 -0
  43. package/dist/diagrams/block/layout.d.ts +12 -0
  44. package/dist/diagrams/block/layout.d.ts.map +1 -0
  45. package/dist/diagrams/c4/index.d.ts +5 -0
  46. package/dist/diagrams/c4/index.d.ts.map +1 -0
  47. package/dist/diagrams/c4/ir.d.ts +33 -0
  48. package/dist/diagrams/c4/ir.d.ts.map +1 -0
  49. package/dist/diagrams/c4/layout.d.ts +12 -0
  50. package/dist/diagrams/c4/layout.d.ts.map +1 -0
  51. package/dist/diagrams/class/index.d.ts +5 -0
  52. package/dist/diagrams/class/index.d.ts.map +1 -0
  53. package/dist/diagrams/class/ir.d.ts +32 -0
  54. package/dist/diagrams/class/ir.d.ts.map +1 -0
  55. package/dist/diagrams/class/layout.d.ts +13 -0
  56. package/dist/diagrams/class/layout.d.ts.map +1 -0
  57. package/dist/diagrams/ds/graph/graph.d.ts +39 -0
  58. package/dist/diagrams/ds/graph/graph.d.ts.map +1 -0
  59. package/dist/diagrams/ds/hashmap/hashmap.d.ts +39 -0
  60. package/dist/diagrams/ds/hashmap/hashmap.d.ts.map +1 -0
  61. package/dist/diagrams/ds/matrix/matrix.d.ts +33 -0
  62. package/dist/diagrams/ds/matrix/matrix.d.ts.map +1 -0
  63. package/dist/diagrams/ds/queue/cqueue.d.ts +31 -0
  64. package/dist/diagrams/ds/queue/cqueue.d.ts.map +1 -0
  65. package/dist/diagrams/ds/queue/deque.d.ts +24 -0
  66. package/dist/diagrams/ds/queue/deque.d.ts.map +1 -0
  67. package/dist/diagrams/ds/queue/pqueue.d.ts +29 -0
  68. package/dist/diagrams/ds/queue/pqueue.d.ts.map +1 -0
  69. package/dist/diagrams/ds/queue/queue.d.ts +27 -0
  70. package/dist/diagrams/ds/queue/queue.d.ts.map +1 -0
  71. package/dist/diagrams/ds/queue/shared.d.ts +35 -0
  72. package/dist/diagrams/ds/queue/shared.d.ts.map +1 -0
  73. package/dist/diagrams/ds/stack/stack.d.ts +28 -0
  74. package/dist/diagrams/ds/stack/stack.d.ts.map +1 -0
  75. package/dist/diagrams/ds/struct/array.d.ts +28 -0
  76. package/dist/diagrams/ds/struct/array.d.ts.map +1 -0
  77. package/dist/diagrams/ds/struct/linkedlist.d.ts +21 -0
  78. package/dist/diagrams/ds/struct/linkedlist.d.ts.map +1 -0
  79. package/dist/diagrams/ds/struct/memory.d.ts +44 -0
  80. package/dist/diagrams/ds/struct/memory.d.ts.map +1 -0
  81. package/dist/diagrams/ds/struct/page.d.ts +25 -0
  82. package/dist/diagrams/ds/struct/page.d.ts.map +1 -0
  83. package/dist/diagrams/ds/struct/shared.d.ts +9 -0
  84. package/dist/diagrams/ds/struct/shared.d.ts.map +1 -0
  85. package/dist/diagrams/ds/tree/avl.d.ts +14 -0
  86. package/dist/diagrams/ds/tree/avl.d.ts.map +1 -0
  87. package/dist/diagrams/ds/tree/btree.d.ts +12 -0
  88. package/dist/diagrams/ds/tree/btree.d.ts.map +1 -0
  89. package/dist/diagrams/ds/tree/build.d.ts +34 -0
  90. package/dist/diagrams/ds/tree/build.d.ts.map +1 -0
  91. package/dist/diagrams/ds/tree/heap.d.ts +12 -0
  92. package/dist/diagrams/ds/tree/heap.d.ts.map +1 -0
  93. package/dist/diagrams/ds/tree/index.d.ts +5 -0
  94. package/dist/diagrams/ds/tree/index.d.ts.map +1 -0
  95. package/dist/diagrams/ds/tree/ir.d.ts +29 -0
  96. package/dist/diagrams/ds/tree/ir.d.ts.map +1 -0
  97. package/dist/diagrams/ds/tree/layout.d.ts +13 -0
  98. package/dist/diagrams/ds/tree/layout.d.ts.map +1 -0
  99. package/dist/diagrams/ds/tree/plan.d.ts +11 -0
  100. package/dist/diagrams/ds/tree/plan.d.ts.map +1 -0
  101. package/dist/diagrams/ds/tree/radix.d.ts +12 -0
  102. package/dist/diagrams/ds/tree/radix.d.ts.map +1 -0
  103. package/dist/diagrams/ds/tree/rbtree.d.ts +12 -0
  104. package/dist/diagrams/ds/tree/rbtree.d.ts.map +1 -0
  105. package/dist/diagrams/ds/tree/segtree.d.ts +12 -0
  106. package/dist/diagrams/ds/tree/segtree.d.ts.map +1 -0
  107. package/dist/diagrams/ds/trie/trie.d.ts +17 -0
  108. package/dist/diagrams/ds/trie/trie.d.ts.map +1 -0
  109. package/dist/diagrams/ds/unionfind/unionfind.d.ts +34 -0
  110. package/dist/diagrams/ds/unionfind/unionfind.d.ts.map +1 -0
  111. package/dist/diagrams/er/index.d.ts +5 -0
  112. package/dist/diagrams/er/index.d.ts.map +1 -0
  113. package/dist/diagrams/er/ir.d.ts +28 -0
  114. package/dist/diagrams/er/ir.d.ts.map +1 -0
  115. package/dist/diagrams/er/layout.d.ts +12 -0
  116. package/dist/diagrams/er/layout.d.ts.map +1 -0
  117. package/dist/diagrams/flowchart/index.d.ts +5 -0
  118. package/dist/diagrams/flowchart/index.d.ts.map +1 -0
  119. package/dist/diagrams/flowchart/ir.d.ts +38 -0
  120. package/dist/diagrams/flowchart/ir.d.ts.map +1 -0
  121. package/dist/diagrams/flowchart/layout.d.ts +5 -0
  122. package/dist/diagrams/flowchart/layout.d.ts.map +1 -0
  123. package/dist/diagrams/gantt/index.d.ts +5 -0
  124. package/dist/diagrams/gantt/index.d.ts.map +1 -0
  125. package/dist/diagrams/gantt/ir.d.ts +25 -0
  126. package/dist/diagrams/gantt/ir.d.ts.map +1 -0
  127. package/dist/diagrams/gantt/layout.d.ts +12 -0
  128. package/dist/diagrams/gantt/layout.d.ts.map +1 -0
  129. package/dist/diagrams/gitgraph/index.d.ts +5 -0
  130. package/dist/diagrams/gitgraph/index.d.ts.map +1 -0
  131. package/dist/diagrams/gitgraph/ir.d.ts +31 -0
  132. package/dist/diagrams/gitgraph/ir.d.ts.map +1 -0
  133. package/dist/diagrams/gitgraph/layout.d.ts +12 -0
  134. package/dist/diagrams/gitgraph/layout.d.ts.map +1 -0
  135. package/dist/diagrams/journey/index.d.ts +5 -0
  136. package/dist/diagrams/journey/index.d.ts.map +1 -0
  137. package/dist/diagrams/journey/ir.d.ts +20 -0
  138. package/dist/diagrams/journey/ir.d.ts.map +1 -0
  139. package/dist/diagrams/journey/layout.d.ts +13 -0
  140. package/dist/diagrams/journey/layout.d.ts.map +1 -0
  141. package/dist/diagrams/kanban/index.d.ts +5 -0
  142. package/dist/diagrams/kanban/index.d.ts.map +1 -0
  143. package/dist/diagrams/kanban/ir.d.ts +18 -0
  144. package/dist/diagrams/kanban/ir.d.ts.map +1 -0
  145. package/dist/diagrams/kanban/layout.d.ts +12 -0
  146. package/dist/diagrams/kanban/layout.d.ts.map +1 -0
  147. package/dist/diagrams/mindmap/index.d.ts +5 -0
  148. package/dist/diagrams/mindmap/index.d.ts.map +1 -0
  149. package/dist/diagrams/mindmap/ir.d.ts +15 -0
  150. package/dist/diagrams/mindmap/ir.d.ts.map +1 -0
  151. package/dist/diagrams/mindmap/layout.d.ts +12 -0
  152. package/dist/diagrams/mindmap/layout.d.ts.map +1 -0
  153. package/dist/diagrams/packet/index.d.ts +5 -0
  154. package/dist/diagrams/packet/index.d.ts.map +1 -0
  155. package/dist/diagrams/packet/ir.d.ts +15 -0
  156. package/dist/diagrams/packet/ir.d.ts.map +1 -0
  157. package/dist/diagrams/packet/layout.d.ts +12 -0
  158. package/dist/diagrams/packet/layout.d.ts.map +1 -0
  159. package/dist/diagrams/pie/index.d.ts +5 -0
  160. package/dist/diagrams/pie/index.d.ts.map +1 -0
  161. package/dist/diagrams/pie/ir.d.ts +16 -0
  162. package/dist/diagrams/pie/ir.d.ts.map +1 -0
  163. package/dist/diagrams/pie/layout.d.ts +12 -0
  164. package/dist/diagrams/pie/layout.d.ts.map +1 -0
  165. package/dist/diagrams/poster/index.d.ts +5 -0
  166. package/dist/diagrams/poster/index.d.ts.map +1 -0
  167. package/dist/diagrams/poster/ir.d.ts +46 -0
  168. package/dist/diagrams/poster/ir.d.ts.map +1 -0
  169. package/dist/diagrams/poster/layout.d.ts +8 -0
  170. package/dist/diagrams/poster/layout.d.ts.map +1 -0
  171. package/dist/diagrams/quadrant/index.d.ts +5 -0
  172. package/dist/diagrams/quadrant/index.d.ts.map +1 -0
  173. package/dist/diagrams/quadrant/ir.d.ts +23 -0
  174. package/dist/diagrams/quadrant/ir.d.ts.map +1 -0
  175. package/dist/diagrams/quadrant/layout.d.ts +12 -0
  176. package/dist/diagrams/quadrant/layout.d.ts.map +1 -0
  177. package/dist/diagrams/radar/index.d.ts +5 -0
  178. package/dist/diagrams/radar/index.d.ts.map +1 -0
  179. package/dist/diagrams/radar/ir.d.ts +22 -0
  180. package/dist/diagrams/radar/ir.d.ts.map +1 -0
  181. package/dist/diagrams/radar/layout.d.ts +12 -0
  182. package/dist/diagrams/radar/layout.d.ts.map +1 -0
  183. package/dist/diagrams/requirement/index.d.ts +5 -0
  184. package/dist/diagrams/requirement/index.d.ts.map +1 -0
  185. package/dist/diagrams/requirement/ir.d.ts +25 -0
  186. package/dist/diagrams/requirement/ir.d.ts.map +1 -0
  187. package/dist/diagrams/requirement/layout.d.ts +12 -0
  188. package/dist/diagrams/requirement/layout.d.ts.map +1 -0
  189. package/dist/diagrams/sankey/index.d.ts +5 -0
  190. package/dist/diagrams/sankey/index.d.ts.map +1 -0
  191. package/dist/diagrams/sankey/ir.d.ts +15 -0
  192. package/dist/diagrams/sankey/ir.d.ts.map +1 -0
  193. package/dist/diagrams/sankey/layout.d.ts +12 -0
  194. package/dist/diagrams/sankey/layout.d.ts.map +1 -0
  195. package/dist/diagrams/sequence/index.d.ts +5 -0
  196. package/dist/diagrams/sequence/index.d.ts.map +1 -0
  197. package/dist/diagrams/sequence/ir.d.ts +47 -0
  198. package/dist/diagrams/sequence/ir.d.ts.map +1 -0
  199. package/dist/diagrams/sequence/layout.d.ts +13 -0
  200. package/dist/diagrams/sequence/layout.d.ts.map +1 -0
  201. package/dist/diagrams/state/index.d.ts +5 -0
  202. package/dist/diagrams/state/index.d.ts.map +1 -0
  203. package/dist/diagrams/state/ir.d.ts +28 -0
  204. package/dist/diagrams/state/ir.d.ts.map +1 -0
  205. package/dist/diagrams/state/layout.d.ts +12 -0
  206. package/dist/diagrams/state/layout.d.ts.map +1 -0
  207. package/dist/diagrams/timeline/index.d.ts +7 -0
  208. package/dist/diagrams/timeline/index.d.ts.map +1 -0
  209. package/dist/diagrams/timeline/ir.d.ts +47 -0
  210. package/dist/diagrams/timeline/ir.d.ts.map +1 -0
  211. package/dist/diagrams/timeline/layout.d.ts +5 -0
  212. package/dist/diagrams/timeline/layout.d.ts.map +1 -0
  213. package/dist/diagrams/timeline/numbered.d.ts +16 -0
  214. package/dist/diagrams/timeline/numbered.d.ts.map +1 -0
  215. package/dist/diagrams/timeline/roadmap.d.ts +18 -0
  216. package/dist/diagrams/timeline/roadmap.d.ts.map +1 -0
  217. package/dist/diagrams/timeline/serpentine.d.ts +20 -0
  218. package/dist/diagrams/timeline/serpentine.d.ts.map +1 -0
  219. package/dist/diagrams/timeline/shared.d.ts +37 -0
  220. package/dist/diagrams/timeline/shared.d.ts.map +1 -0
  221. package/dist/diagrams/timeline/timeline-columns.d.ts +19 -0
  222. package/dist/diagrams/timeline/timeline-columns.d.ts.map +1 -0
  223. package/dist/diagrams/timeline/vertical-spine.d.ts +21 -0
  224. package/dist/diagrams/timeline/vertical-spine.d.ts.map +1 -0
  225. package/dist/diagrams/topology/topology.d.ts +47 -0
  226. package/dist/diagrams/topology/topology.d.ts.map +1 -0
  227. package/dist/diagrams/xychart/index.d.ts +5 -0
  228. package/dist/diagrams/xychart/index.d.ts.map +1 -0
  229. package/dist/diagrams/xychart/ir.d.ts +21 -0
  230. package/dist/diagrams/xychart/ir.d.ts.map +1 -0
  231. package/dist/diagrams/xychart/layout.d.ts +12 -0
  232. package/dist/diagrams/xychart/layout.d.ts.map +1 -0
  233. package/dist/frontend/detect.d.ts +7 -0
  234. package/dist/frontend/detect.d.ts.map +1 -0
  235. package/dist/frontend/index.d.ts +44 -0
  236. package/dist/frontend/index.d.ts.map +1 -0
  237. package/dist/frontend/registry.d.ts +21 -0
  238. package/dist/frontend/registry.d.ts.map +1 -0
  239. package/dist/graph/connect.d.ts +39 -0
  240. package/dist/graph/connect.d.ts.map +1 -0
  241. package/dist/graph/layered.d.ts +43 -0
  242. package/dist/graph/layered.d.ts.map +1 -0
  243. package/dist/graph/tree.d.ts +41 -0
  244. package/dist/graph/tree.d.ts.map +1 -0
  245. package/dist/index.d.ts +9 -0
  246. package/dist/index.d.ts.map +1 -0
  247. package/dist/index.js +41345 -0
  248. package/dist/index.js.map +7 -0
  249. package/dist/overlay/apply.d.ts +15 -0
  250. package/dist/overlay/apply.d.ts.map +1 -0
  251. package/dist/overlay/compiler.d.ts +10 -0
  252. package/dist/overlay/compiler.d.ts.map +1 -0
  253. package/dist/overlay/layout.d.ts +16 -0
  254. package/dist/overlay/layout.d.ts.map +1 -0
  255. package/dist/palette/categorical.d.ts +15 -0
  256. package/dist/palette/categorical.d.ts.map +1 -0
  257. package/dist/render/registry.d.ts +15 -0
  258. package/dist/render/registry.d.ts.map +1 -0
  259. package/dist/render/svg.d.ts +11 -0
  260. package/dist/render/svg.d.ts.map +1 -0
  261. package/dist/routing/registry.d.ts +16 -0
  262. package/dist/routing/registry.d.ts.map +1 -0
  263. package/dist/routing/router.d.ts +10 -0
  264. package/dist/routing/router.d.ts.map +1 -0
  265. package/dist/scene/build.d.ts +45 -0
  266. package/dist/scene/build.d.ts.map +1 -0
  267. package/dist/scene/strip.d.ts +39 -0
  268. package/dist/scene/strip.d.ts.map +1 -0
  269. package/dist/style/cost.d.ts +35 -0
  270. package/dist/style/cost.d.ts.map +1 -0
  271. package/dist/text/metrics.d.ts +19 -0
  272. package/dist/text/metrics.d.ts.map +1 -0
  273. package/dist/text/wrap.d.ts +21 -0
  274. package/dist/text/wrap.d.ts.map +1 -0
  275. package/dist/theme/preset.d.ts +29 -0
  276. package/dist/theme/preset.d.ts.map +1 -0
  277. package/dist/theme/resolver.d.ts +7 -0
  278. package/dist/theme/resolver.d.ts.map +1 -0
  279. package/dist/time/dates.d.ts +72 -0
  280. package/dist/time/dates.d.ts.map +1 -0
  281. package/dist/util/round.d.ts +12 -0
  282. package/dist/util/round.d.ts.map +1 -0
  283. package/package.json +42 -0
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @file diagrams/state/layout.ts — UML state machine.
3
+ *
4
+ * States place via the shared layered kernel; transitions draw as arrows
5
+ * clipped to node borders with optional labels. Pseudo-states render specially:
6
+ * start (filled dot), end (ringed dot), choice (diamond).
7
+ */
8
+ import type { StateDocument } from './ir.js';
9
+ import type { LayoutResult } from '../../contracts/index.js';
10
+ import type { ResolvedTheme } from '../../contracts/index.js';
11
+ export declare function layoutState(ir: StateDocument, theme: ResolvedTheme): LayoutResult;
12
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/state/layout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAU9D,wBAAgB,WAAW,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAoGjF"}
@@ -0,0 +1,7 @@
1
+ import type { DiagramModule } from '../../contracts/index.js';
2
+ import type { TimelineDocument } from './ir.js';
3
+ export type { TimelineDocument, Track, Activity, Milestone, Section, TimelineLayout, ActivityStatus } from './ir.js';
4
+ /** Parse in strict Mermaid-compatible mode — extension syntax throws. */
5
+ export declare function parseMermaidStrict(input: string): TimelineDocument;
6
+ export declare const timeline: DiagramModule<TimelineDocument>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA+B,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAKhD,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErH,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAElE;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAiBpD,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { BaseIR } from '../../contracts/index.js';
2
+ export type TimelineDate = string;
3
+ export type AxisUnit = 'day' | 'week' | 'month' | 'quarter' | 'half' | 'year';
4
+ export type TimelineLayout = 'horizontal' | 'vertical-spine' | 'serpentine' | 'roadmap' | 'gantt' | 'timeline-columns' | 'numbered';
5
+ export type ActivityStatus = 'default' | 'active' | 'done' | 'blocked';
6
+ export interface Track {
7
+ readonly id: string;
8
+ readonly label: string;
9
+ readonly color?: string;
10
+ }
11
+ export interface Activity {
12
+ readonly id: string;
13
+ readonly label: string;
14
+ readonly track: string;
15
+ readonly start: TimelineDate;
16
+ readonly end?: TimelineDate;
17
+ readonly status?: ActivityStatus;
18
+ readonly description?: string;
19
+ }
20
+ export interface Milestone {
21
+ readonly id: string;
22
+ readonly label: string;
23
+ readonly date: TimelineDate;
24
+ readonly track?: string;
25
+ readonly icon?: string;
26
+ readonly description?: string;
27
+ }
28
+ export interface Section {
29
+ readonly id: string;
30
+ readonly label: string;
31
+ readonly start: TimelineDate;
32
+ readonly end: TimelineDate;
33
+ }
34
+ export interface TimelineDocument extends BaseIR {
35
+ readonly metadata: {
36
+ readonly title?: string;
37
+ readonly theme?: string;
38
+ readonly [key: string]: string | undefined;
39
+ };
40
+ readonly layout: TimelineLayout;
41
+ readonly axisUnit?: AxisUnit;
42
+ readonly tracks: readonly Track[];
43
+ readonly activities: readonly Activity[];
44
+ readonly milestones: readonly Milestone[];
45
+ readonly sections?: readonly Section[];
46
+ }
47
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAClC,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9E,MAAM,MAAM,cAAc,GACtB,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAC9C,SAAS,GAAG,OAAO,GAAG,kBAAkB,GAAG,UAAU,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACxC"}
@@ -0,0 +1,5 @@
1
+ import type { TimelineDocument } from './ir.js';
2
+ import type { LayoutResult } from '../../contracts/index.js';
3
+ import type { ResolvedTheme } from '../../contracts/index.js';
4
+ export declare function layoutTimeline(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
5
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,SAAS,CAAC;AACrF,OAAO,KAAK,EAAoC,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAY9D,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAgBvF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @file diagrams/timeline/numbered.ts — Horizontal numbered-circle infographic.
3
+ *
4
+ * The "our-timeline" T1 look: a straight horizontal axis through evenly spaced
5
+ * large numbered circles (01, 02, 03…). Each node's date + title callout
6
+ * alternates ABOVE / BELOW the axis, connected by a short vertical edging line.
7
+ * Highlighted (active) nodes are filled; the rest are hollow rings.
8
+ *
9
+ * Built on the shared kernel (collectEntries, formatDate, pen, util/round).
10
+ * Deterministic; no clock.
11
+ */
12
+ import type { TimelineDocument } from './ir.js';
13
+ import type { LayoutResult } from '../../contracts/index.js';
14
+ import type { ResolvedTheme } from '../../contracts/index.js';
15
+ export declare function layoutNumbered(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
16
+ //# sourceMappingURL=numbered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbered.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/numbered.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQ9D,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAyGvF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @file diagrams/timeline/roadmap.ts — Roadmap infographic layout.
3
+ *
4
+ * Four horizontal zones (top→bottom):
5
+ * 1. Header — title.
6
+ * 2. Callouts — milestone labels + (date), leader line + dot down to band.
7
+ * 3. Phase band — activity pills from dateX(start)→dateX(end), status-coloured,
8
+ * lane-packed so overlapping ranges stack instead of collide.
9
+ * 4. Date axis — baseline with date labels at milestone x positions.
10
+ *
11
+ * Built on the GENERAL time/dates + text/metrics modules. Linear date mapping
12
+ * (no axis breaks in v1). Uses only shared theme tokens.
13
+ */
14
+ import type { TimelineDocument } from './ir.js';
15
+ import type { LayoutResult } from '../../contracts/index.js';
16
+ import type { ResolvedTheme } from '../../contracts/index.js';
17
+ export declare function layoutRoadmap(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
18
+ //# sourceMappingURL=roadmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/roadmap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAuB,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAe9D,wBAAgB,aAAa,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAmGtF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @file diagrams/timeline/serpentine.ts — Serpentine (boustrophedon) layout.
3
+ *
4
+ * A single winding track runs left→right, U-turns down, right→left, U-turns, …
5
+ * Entries (milestones + activities, by start date) are placed at uniform
6
+ * arc-length positions t_i = (i + 0.5) / n along the path. A play cap marks the
7
+ * start, a target/bullseye cap the end. Labels sit above/below each node by row
8
+ * parity.
9
+ *
10
+ * Built on the GENERAL time/dates module. Uses only shared theme tokens.
11
+ * v3 fidelity notes vs core: solid track (v3 scene has no stroke gradients) and
12
+ * inline play/target caps (no icon registry yet).
13
+ *
14
+ * Determinism: round-half-up, stable (ordinal, id) sort, no clock.
15
+ */
16
+ import type { TimelineDocument } from './ir.js';
17
+ import type { LayoutResult } from '../../contracts/index.js';
18
+ import type { ResolvedTheme } from '../../contracts/index.js';
19
+ export declare function layoutSerpentine(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
20
+ //# sourceMappingURL=serpentine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serpentine.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/serpentine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA4D9D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAiGzF"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @file diagrams/timeline/shared.ts — Helpers shared across timeline layouts.
3
+ *
4
+ * These are specific to the timeline diagram family (vertical-spine, serpentine,
5
+ * roadmap, columns, horizontal) but common to all of them — so they live here
6
+ * rather than being copy-pasted per layout. Cross-diagram utilities (rounding,
7
+ * dates, text metrics) live in the top-level general modules instead.
8
+ */
9
+ import type { ResolvedTheme } from '../../contracts/index.js';
10
+ import type { TimelineDocument } from './ir.js';
11
+ /**
12
+ * Map a timeline activity status to the theme's semantic palette.
13
+ * done → success, active → primary, blocked → error, else → secondary.
14
+ * Reads only shared palette tokens so every theme restyles consistently.
15
+ */
16
+ export declare function statusColor(palette: ResolvedTheme['palette'], status?: string): string;
17
+ /** A milestone or activity, normalized for layouts that treat both uniformly. */
18
+ export interface TimelineEntry {
19
+ readonly id: string;
20
+ readonly label: string;
21
+ readonly kind: 'milestone' | 'activity';
22
+ /** Period-start date string (milestone.date or activity.start). */
23
+ readonly date: string;
24
+ /** Activity end date, when present. */
25
+ readonly end?: string;
26
+ /** Day-ordinal of the start date, for ordering. */
27
+ readonly ord: number;
28
+ readonly status?: string;
29
+ readonly description?: string;
30
+ }
31
+ /**
32
+ * Merge milestones + activities into one list keyed by start date, sorted by
33
+ * (ordinal, id) for stable, deterministic placement. Used by the layouts that
34
+ * lay both kinds along a single track (spine, serpentine).
35
+ */
36
+ export declare function collectEntries(ir: TimelineDocument): TimelineEntry[];
37
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAOtF;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAkBpE"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @file diagrams/timeline/timeline-columns.ts — Mermaid-faithful section columns.
3
+ *
4
+ * Colored SECTION header bands across the top; under each, PERIOD columns (one
5
+ * per distinct date) tinted to the section colour; under each period, EVENT
6
+ * boxes stacked vertically. A horizontal axis line separates headers from events.
7
+ *
8
+ * v3 data model note: core links events→sections via track===sectionId, but v3
9
+ * keeps sections separate (with date ranges). We reconstruct membership by
10
+ * date-containment: each entry joins the latest section whose start ≤ entry date.
11
+ *
12
+ * Self-contained 8-hue palette (the Mermaid look) — a layout-local constant,
13
+ * not a theme token. Built on GENERAL time/dates + text/wrap modules.
14
+ */
15
+ import type { TimelineDocument } from './ir.js';
16
+ import type { LayoutResult } from '../../contracts/index.js';
17
+ import type { ResolvedTheme } from '../../contracts/index.js';
18
+ export declare function layoutTimelineColumns(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
19
+ //# sourceMappingURL=timeline-columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-columns.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/timeline-columns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAgC,MAAM,SAAS,CAAC;AAC9E,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAsC9D,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CA4G9F"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @file diagrams/timeline/vertical-spine.ts — Vertical central-spine layout.
3
+ *
4
+ * Time axis runs TOP (earliest) → BOTTOM (latest). A central vertical spine
5
+ * line sits at canvas mid-x. Entries (milestones + activities, keyed by their
6
+ * start date) are sorted by (ordinal, id) and placed down the spine, alternating
7
+ * RIGHT (even index) / LEFT (odd index). Each entry draws a node marker on the
8
+ * spine, a horizontal connector, and a content card (date + title + description).
9
+ *
10
+ * Uses the GENERAL utilities: time/dates (ordinals, parsing, formatting) and
11
+ * text/metrics + text/wrap (card sizing). Styling reads only the shared theme
12
+ * tokens (palette/typography/spacing) — status maps to the semantic palette
13
+ * (done→success, active→primary, blocked→error, default→secondary).
14
+ *
15
+ * Determinism: round-half-up coordinates, stable (ordinal, id) sort, no clock.
16
+ */
17
+ import type { TimelineDocument } from './ir.js';
18
+ import type { LayoutResult } from '../../contracts/index.js';
19
+ import type { ResolvedTheme } from '../../contracts/index.js';
20
+ export declare function layoutVerticalSpine(ir: TimelineDocument, theme: ResolvedTheme): LayoutResult;
21
+ //# sourceMappingURL=vertical-spine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-spine.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/timeline/vertical-spine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwB9D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAmI5F"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @file diagrams/topology/topology.ts — Cost-weighted node graph (NUMA / network).
3
+ *
4
+ * Value-driven mini-syntax:
5
+ * topology
6
+ * title NUMA interconnect
7
+ * costs ns
8
+ * tier local 90 #27ae60
9
+ * tier hop1 140 #2f80ed
10
+ * tier hop2 200 #e2574c 5 4
11
+ * node N0 : Node 0 : CPU+RAM
12
+ * N0 -- N1 : 140
13
+ *
14
+ * Edges are coloured/dashed by the tier their weight falls into; a legend is
15
+ * rendered from the `costs` block. Demonstrates style/cost end to end.
16
+ */
17
+ import type { DiagramModule, ResolvedTheme, LayoutResult } from '../../contracts/index.js';
18
+ import { type CostScale } from '../../style/cost.js';
19
+ interface TopoNode {
20
+ id: string;
21
+ label: string;
22
+ sub?: string;
23
+ group?: string;
24
+ }
25
+ interface TopoGroup {
26
+ id: string;
27
+ label: string;
28
+ }
29
+ interface TopoEdge {
30
+ from: string;
31
+ to: string;
32
+ cost?: number;
33
+ }
34
+ interface TopologyDoc {
35
+ title?: string;
36
+ scale: CostScale;
37
+ groups: TopoGroup[];
38
+ nodes: TopoNode[];
39
+ edges: TopoEdge[];
40
+ }
41
+ export declare function layoutTopology(doc: TopologyDoc, theme: ResolvedTheme): LayoutResult;
42
+ export declare const topology: DiagramModule<TopologyDoc & {
43
+ version: string;
44
+ metadata: Record<string, unknown>;
45
+ }>;
46
+ export {};
47
+ //# sourceMappingURL=topology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/topology/topology.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,aAAa,EAAE,aAAa,EAAE,YAAY,EAC3C,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAA6B,KAAK,SAAS,EAAiB,MAAM,qBAAqB,CAAC;AAG/F,UAAU,QAAQ;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AAC/E,UAAU,SAAS;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAAE;AAClD,UAAU,QAAQ;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAAE;AAC/D,UAAU,WAAW;IAAG,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;CAAE;AAmDtH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAiHnF;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAUxG,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DiagramModule } from '../../contracts/index.js';
2
+ import type { XYChartDocument } from './ir.js';
3
+ export type { XYChartDocument, XYSeries, XYSeriesKind } from './ir.js';
4
+ export declare const xychart: DiagramModule<XYChartDocument>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/xychart/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvE,eAAO,MAAM,OAAO,EAAE,aAAa,CAAC,eAAe,CAYlD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { BaseIR } from '../../contracts/index.js';
2
+ export type XYSeriesKind = 'bar' | 'line';
3
+ export interface XYSeries {
4
+ readonly kind: XYSeriesKind;
5
+ readonly values: readonly number[];
6
+ }
7
+ export interface XYChartDocument extends BaseIR {
8
+ readonly metadata: {
9
+ readonly title?: string;
10
+ readonly theme?: string;
11
+ readonly [key: string]: string | undefined;
12
+ };
13
+ /** Categorical x-axis labels (one per data point). */
14
+ readonly categories: readonly string[];
15
+ readonly yLabel?: string;
16
+ /** Explicit y range; when absent the layout derives it from the data. */
17
+ readonly yMin?: number;
18
+ readonly yMax?: number;
19
+ readonly series: readonly XYSeries[];
20
+ }
21
+ //# sourceMappingURL=ir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/xychart/ir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACpH,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @file diagrams/xychart/layout.ts — Cartesian bar + line chart.
3
+ *
4
+ * Categorical x-axis, numeric y-axis with gridlines and ticks. Bar series are
5
+ * grouped per category; line series are drawn as polylines with dots on top.
6
+ * Series colours come from the shared categorical hue cycle.
7
+ */
8
+ import type { XYChartDocument } from './ir.js';
9
+ import type { LayoutResult } from '../../contracts/index.js';
10
+ import type { ResolvedTheme } from '../../contracts/index.js';
11
+ export declare function layoutXYChart(ir: XYChartDocument, theme: ResolvedTheme): LayoutResult;
12
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/diagrams/xychart/layout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwB9D,wBAAgB,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,GAAG,YAAY,CAwGrF"}
@@ -0,0 +1,7 @@
1
+ import type { DiagramKind, InputFormat } from '../contracts/index.js';
2
+ export interface DetectionResult {
3
+ readonly format: InputFormat;
4
+ readonly diagramType: DiagramKind;
5
+ }
6
+ export declare function detect(input: string): DetectionResult;
7
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../../src/frontend/detect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAsED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CA0BrD"}
@@ -0,0 +1,44 @@
1
+ import type { ThemeInput, Result, LayoutResult } from '../contracts/index.js';
2
+ /**
3
+ * Compile input text to a LayoutResult (Scene + anchor registry) — synchronous.
4
+ *
5
+ * Every Triton layout engine is synchronous (no font I/O, WASM, or fetching),
6
+ * so the whole parse → theme → layout pipeline runs without promises. This is
7
+ * the canonical implementation; the async `compile()` is a thin wrapper.
8
+ *
9
+ * Theme resolution order (later overrides earlier):
10
+ * defaultTheme ← themeInput ← module.defaultThemeOverride ← ir.themeOverride
11
+ *
12
+ * Returns a Result — never throws.
13
+ */
14
+ export declare function compileSync(input: string, themeInput?: ThemeInput): Result<LayoutResult>;
15
+ /**
16
+ * Render input text to an output string (default: SVG) — synchronous.
17
+ *
18
+ * This is the canonical render path; the async `render()` is a thin wrapper.
19
+ * Returns a Result — never throws.
20
+ * Pass rendererName to use a non-default registered renderer.
21
+ */
22
+ export declare function renderSync(input: string, themeInput?: ThemeInput, rendererName?: string): Result<string>;
23
+ /**
24
+ * Compile input text to a LayoutResult (Scene + anchor registry).
25
+ *
26
+ * Async wrapper over {@link compileSync} — the signature and behavior are
27
+ * unchanged for existing callers. Theme resolution order (later overrides
28
+ * earlier):
29
+ * defaultTheme ← themeInput ← module.defaultThemeOverride ← ir.themeOverride
30
+ *
31
+ * Returns a Result — never throws.
32
+ */
33
+ export declare function compile(input: string, themeInput?: ThemeInput): Promise<Result<LayoutResult>>;
34
+ /**
35
+ * Render input text to an output string (default: SVG).
36
+ *
37
+ * Async wrapper over {@link renderSync} — the signature and behavior are
38
+ * unchanged for existing callers.
39
+ *
40
+ * Returns a Result — never throws.
41
+ * Pass rendererName to use a non-default registered renderer.
42
+ */
43
+ export declare function render(input: string, themeInput?: ThemeInput, rendererName?: string): Promise<Result<string>>;
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,EAAU,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAoH7F;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM,CAAC,YAAY,CAAC,CA6BtB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,YAAY,SAAQ,GACnB,MAAM,CAAC,MAAM,CAAC,CAehB;AAED;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAC3B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAE/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,UAAU,EACvB,YAAY,SAAQ,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAEzB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Diagram Registry
3
+ *
4
+ * Central registry of all available diagram modules.
5
+ * Built-in modules are registered in frontend/index.ts at startup.
6
+ * Third-party diagrams call registerDiagram() from their own package.
7
+ *
8
+ * The registry stores modules as DiagramModule<any> internally to handle
9
+ * the contravariance of layout()'s IR parameter. Type safety is preserved
10
+ * at registration time via the generic constraint on registerDiagram().
11
+ */
12
+ import type { DiagramKind, DiagramModule, BaseIR } from '../contracts/index.js';
13
+ type AnyModule = DiagramModule<any>;
14
+ /** Register a diagram module under the given kind key. */
15
+ export declare function registerDiagram<IR extends BaseIR>(kind: DiagramKind, module: DiagramModule<IR>): void;
16
+ /** Look up a registered diagram module by kind. Returns undefined if not found. */
17
+ export declare function getModule(kind: DiagramKind): AnyModule | undefined;
18
+ /** Return all currently registered diagram kind strings. */
19
+ export declare function registeredKinds(): DiagramKind[];
20
+ export {};
21
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/frontend/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGhF,KAAK,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAIpC,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,EAAE,SAAS,MAAM,EAC/C,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,GACxB,IAAI,CAEN;AAED,mFAAmF;AACnF,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAElE;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,IAAI,WAAW,EAAE,CAE/C"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @file graph/connect.ts — Edge endpoint helpers for node-link layouts.
3
+ */
4
+ export interface BoxLike {
5
+ readonly x: number;
6
+ readonly y: number;
7
+ readonly width: number;
8
+ readonly height: number;
9
+ }
10
+ /**
11
+ * The point on a box's border along the ray from its centre toward (tx, ty).
12
+ * Used to clip connector lines to node boundaries.
13
+ */
14
+ export declare function borderPoint(box: BoxLike, tx: number, ty: number): {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ export type Side = 'left' | 'right' | 'top' | 'bottom';
19
+ /** The midpoint of one side of a box — an explicit anchor for slot pointers. */
20
+ export declare function slotAnchor(box: BoxLike, side: Side): {
21
+ x: number;
22
+ y: number;
23
+ };
24
+ /**
25
+ * A slot-aware connector: clips both ends to the box borders along the line
26
+ * joining their centres. Works for cells in a strip, nodes in a tree, or
27
+ * panels in a poster (the same router the cross-link feature uses).
28
+ */
29
+ export declare function connectSlots(from: BoxLike, to: BoxLike): {
30
+ start: {
31
+ x: number;
32
+ y: number;
33
+ };
34
+ end: {
35
+ x: number;
36
+ y: number;
37
+ };
38
+ };
39
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../../src/graph/connect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAU1F;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAS7E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG;IACxD,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAOA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @file graph/layered.ts — Minimal layered (Sugiyama-lite) graph placement.
3
+ *
4
+ * Longest-path layering + size-aware coordinate assignment. Shared by the
5
+ * node-link / UML diagram layouts (class, state, er; later c4/block/requirement)
6
+ * so they don't each reinvent rank assignment. Edge routing is left to callers
7
+ * (they connect the returned boxes via the routing module).
8
+ *
9
+ * Deterministic: stable insertion order within a layer, no clock, no randomness.
10
+ */
11
+ export interface GraphNode {
12
+ readonly id: string;
13
+ readonly width: number;
14
+ readonly height: number;
15
+ }
16
+ export interface GraphEdge {
17
+ readonly from: string;
18
+ readonly to: string;
19
+ }
20
+ export interface NodeBox {
21
+ readonly id: string;
22
+ readonly x: number;
23
+ readonly y: number;
24
+ readonly width: number;
25
+ readonly height: number;
26
+ }
27
+ export interface LayeredOptions {
28
+ /** Primary flow direction. 'TB' stacks layers top→bottom; 'LR' left→right. */
29
+ readonly direction?: 'TB' | 'LR';
30
+ /** Gap between consecutive layers (px). */
31
+ readonly layerGap?: number;
32
+ /** Gap between sibling nodes within a layer (px). */
33
+ readonly nodeGap?: number;
34
+ /** Outer margin (px). */
35
+ readonly margin?: number;
36
+ }
37
+ export interface LayeredResult {
38
+ readonly boxes: Map<string, NodeBox>;
39
+ readonly width: number;
40
+ readonly height: number;
41
+ }
42
+ export declare function layeredLayout(nodes: readonly GraphNode[], edges: readonly GraphEdge[], options?: LayeredOptions): LayeredResult;
43
+ //# sourceMappingURL=layered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layered.d.ts","sourceRoot":"","sources":["../../../../src/graph/layered.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAoBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAiDf"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @file graph/tree.ts — Tidy hierarchical (tree) placement.
3
+ *
4
+ * Centered-parent subtree packing: every parent is centered over the block its
5
+ * descendants occupy, sibling subtrees never overlap, and node sizes may vary.
6
+ * Shared by the decorated-tree diagrams (avl, rbtree, btree, radix, segtree,
7
+ * heap, plan). Edge routing is left to callers (connect the returned boxes).
8
+ *
9
+ * Deterministic: stable child order, no clock, no randomness.
10
+ */
11
+ export interface TreeNodeInput {
12
+ readonly id: string;
13
+ readonly width: number;
14
+ readonly height: number;
15
+ /** Child node ids, in draw order (left→right for TB, top→bottom for LR). */
16
+ readonly children: readonly string[];
17
+ }
18
+ export interface TreeOptions {
19
+ /** 'TB' stacks depth top→bottom (siblings spread horizontally); 'LR' rotates. */
20
+ readonly direction?: 'TB' | 'LR';
21
+ /** Gap between consecutive depths (px). */
22
+ readonly levelGap?: number;
23
+ /** Gap between sibling subtrees (px). */
24
+ readonly siblingGap?: number;
25
+ /** Outer margin (px). */
26
+ readonly margin?: number;
27
+ }
28
+ export interface TreeBox {
29
+ readonly id: string;
30
+ readonly x: number;
31
+ readonly y: number;
32
+ readonly width: number;
33
+ readonly height: number;
34
+ }
35
+ export interface TreeResult {
36
+ readonly boxes: Map<string, TreeBox>;
37
+ readonly width: number;
38
+ readonly height: number;
39
+ }
40
+ export declare function treeLayout(nodes: readonly TreeNodeInput[], options?: TreeOptions): TreeResult;
41
+ //# sourceMappingURL=tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/graph/tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,GAAE,WAAgB,GAAG,UAAU,CA8FjG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @triton/core — public entry point.
3
+ *
4
+ * Importing this module registers all diagram types and renderers.
5
+ * The four exported functions are the complete public API.
6
+ */
7
+ export { compileSync, renderSync, compile, render } from './frontend/index.js';
8
+ export type { Point, Size, Rect, Color, FontFamily, TextAnchor, FontWeight, SceneRect, SceneCircle, ScenePath, SceneText, SceneGroup, SceneElement, Scene, ThemePalette, ThemeTypography, ThemeSpacing, ThemeEdges, ThemePanel, ResolvedTheme, ThemeInput, DiagramModule, DiagramKind, InputFormat, BaseIR, LayoutResult, NodeAnchor, NodeAnchorRegistry, DiagramError, DiagramErrorCode, Result, RouteStyle, Route, Router, } from './contracts/index.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG/E,YAAY,EAEV,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAE5D,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAE7E,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EACnE,aAAa,EAAE,UAAU,EAEzB,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAE/C,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAE5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,EAEtC,UAAU,EAAE,KAAK,EAAE,MAAM,GAC1B,MAAM,sBAAsB,CAAC"}