@diagrammo/dgmo 0.26.0 → 0.28.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 (138) hide show
  1. package/README.md +3 -3
  2. package/dist/advanced.cjs +5651 -3193
  3. package/dist/advanced.d.cts +272 -58
  4. package/dist/advanced.d.ts +272 -58
  5. package/dist/advanced.js +5650 -3186
  6. package/dist/auto.cjs +5511 -3070
  7. package/dist/auto.js +116 -137
  8. package/dist/auto.mjs +5510 -3069
  9. package/dist/cli.cjs +168 -189
  10. package/dist/editor.cjs +4 -0
  11. package/dist/editor.js +4 -0
  12. package/dist/highlight.cjs +4 -0
  13. package/dist/highlight.js +4 -0
  14. package/dist/index.cjs +5536 -3072
  15. package/dist/index.d.cts +33 -8
  16. package/dist/index.d.ts +33 -8
  17. package/dist/index.js +5535 -3071
  18. package/dist/internal.cjs +5651 -3193
  19. package/dist/internal.d.cts +272 -58
  20. package/dist/internal.d.ts +272 -58
  21. package/dist/internal.js +5650 -3186
  22. package/dist/map-data/PROVENANCE.json +1 -1
  23. package/dist/map-data/airport-collisions.json +1 -0
  24. package/dist/map-data/airports.json +1 -0
  25. package/docs/language-reference.md +68 -18
  26. package/gallery/fixtures/boxes-and-lines-diverging.dgmo +15 -0
  27. package/gallery/fixtures/map-choropleth-diverging.dgmo +9 -0
  28. package/gallery/fixtures/map-region-values.dgmo +13 -0
  29. package/gallery/fixtures/map-subnational-zoom.dgmo +12 -0
  30. package/gallery/fixtures/map-tagged-legs.dgmo +16 -0
  31. package/gallery/fixtures/map-undirected-edges.dgmo +12 -0
  32. package/package.json +7 -3
  33. package/src/advanced.ts +1 -6
  34. package/src/auto/index.ts +1 -1
  35. package/src/boxes-and-lines/layout-layered.ts +722 -0
  36. package/src/boxes-and-lines/layout-search.ts +1200 -0
  37. package/src/boxes-and-lines/layout.ts +202 -571
  38. package/src/boxes-and-lines/parser.ts +43 -8
  39. package/src/boxes-and-lines/renderer.ts +223 -96
  40. package/src/boxes-and-lines/types.ts +9 -2
  41. package/src/c4/layout.ts +14 -32
  42. package/src/c4/parser.ts +9 -5
  43. package/src/c4/renderer.ts +34 -39
  44. package/src/class/layout.ts +118 -18
  45. package/src/class/parser.ts +35 -0
  46. package/src/class/renderer.ts +58 -2
  47. package/src/class/types.ts +3 -0
  48. package/src/cli.ts +4 -4
  49. package/src/completion.ts +26 -12
  50. package/src/cycle/layout.ts +55 -72
  51. package/src/cycle/renderer.ts +11 -6
  52. package/src/d3.ts +78 -117
  53. package/src/diagnostics.ts +16 -0
  54. package/src/echarts.ts +46 -33
  55. package/src/editor/keywords.ts +4 -0
  56. package/src/er/layout.ts +114 -22
  57. package/src/er/parser.ts +28 -0
  58. package/src/er/renderer.ts +55 -2
  59. package/src/er/types.ts +3 -0
  60. package/src/gantt/renderer.ts +46 -38
  61. package/src/gantt/resolver.ts +9 -2
  62. package/src/graph/edge-spline.ts +29 -0
  63. package/src/graph/flowchart-parser.ts +34 -1
  64. package/src/graph/flowchart-renderer.ts +78 -64
  65. package/src/graph/layout.ts +206 -23
  66. package/src/graph/notes.ts +21 -0
  67. package/src/graph/state-parser.ts +26 -1
  68. package/src/graph/state-renderer.ts +78 -64
  69. package/src/graph/types.ts +13 -0
  70. package/src/index.ts +1 -1
  71. package/src/infra/layout.ts +46 -26
  72. package/src/infra/renderer.ts +16 -7
  73. package/src/journey-map/layout.ts +38 -49
  74. package/src/journey-map/renderer.ts +22 -45
  75. package/src/kanban/renderer.ts +15 -6
  76. package/src/label-layout.ts +3 -3
  77. package/src/map/completion.ts +77 -22
  78. package/src/map/context-labels.ts +101 -25
  79. package/src/map/data/PROVENANCE.json +1 -1
  80. package/src/map/data/airport-collisions.json +1 -0
  81. package/src/map/data/airports.json +1 -0
  82. package/src/map/data/types.ts +19 -0
  83. package/src/map/layout.ts +1212 -96
  84. package/src/map/legend-band.ts +2 -2
  85. package/src/map/load-data.ts +10 -1
  86. package/src/map/parser.ts +61 -32
  87. package/src/map/renderer.ts +284 -12
  88. package/src/map/resolved-types.ts +15 -1
  89. package/src/map/resolver.ts +132 -12
  90. package/src/map/types.ts +28 -8
  91. package/src/migrate/embedded.ts +9 -7
  92. package/src/mindmap/text-wrap.ts +13 -14
  93. package/src/org/layout.ts +19 -17
  94. package/src/org/renderer.ts +11 -4
  95. package/src/palettes/color-utils.ts +82 -21
  96. package/src/palettes/index.ts +0 -19
  97. package/src/palettes/registry.ts +1 -1
  98. package/src/palettes/types.ts +2 -2
  99. package/src/pert/layout.ts +48 -40
  100. package/src/pert/renderer.ts +30 -43
  101. package/src/pyramid/renderer.ts +4 -5
  102. package/src/raci/renderer.ts +34 -68
  103. package/src/render.ts +1 -1
  104. package/src/ring/renderer.ts +1 -2
  105. package/src/sequence/parser.ts +100 -22
  106. package/src/sequence/renderer.ts +75 -50
  107. package/src/sitemap/layout.ts +27 -19
  108. package/src/sitemap/renderer.ts +12 -5
  109. package/src/tech-radar/renderer.ts +11 -35
  110. package/src/utils/arrow-markers.ts +51 -0
  111. package/src/utils/fit-canvas.ts +64 -0
  112. package/src/utils/legend-constants.ts +8 -54
  113. package/src/utils/legend-d3.ts +10 -7
  114. package/src/utils/legend-layout.ts +7 -4
  115. package/src/utils/legend-types.ts +10 -4
  116. package/src/utils/note-box/constants.ts +25 -0
  117. package/src/utils/note-box/index.ts +11 -0
  118. package/src/utils/note-box/metrics.ts +90 -0
  119. package/src/utils/note-box/svg.ts +331 -0
  120. package/src/utils/notes/bounds.ts +30 -0
  121. package/src/utils/notes/build.ts +131 -0
  122. package/src/utils/notes/index.ts +18 -0
  123. package/src/utils/notes/model.ts +19 -0
  124. package/src/utils/notes/parse.ts +131 -0
  125. package/src/utils/notes/place.ts +177 -0
  126. package/src/utils/notes/resolve.ts +88 -0
  127. package/src/utils/number-format.ts +36 -0
  128. package/src/utils/parsing.ts +41 -0
  129. package/src/utils/reserved-key-registry.ts +4 -0
  130. package/src/utils/text-measure.ts +122 -0
  131. package/src/wireframe/layout.ts +4 -2
  132. package/src/wireframe/renderer.ts +8 -6
  133. package/src/palettes/dracula.ts +0 -68
  134. package/src/palettes/gruvbox.ts +0 -85
  135. package/src/palettes/monokai.ts +0 -68
  136. package/src/palettes/one-dark.ts +0 -70
  137. package/src/palettes/rose-pine.ts +0 -84
  138. package/src/palettes/solarized.ts +0 -77
@@ -118,9 +118,13 @@ type PoiPos = {
118
118
  interface MapDirectives {
119
119
  /** Legend label for the region value ramp (`region-metric <label>`). */
120
120
  regionMetric?: string;
121
- /** Recognized color NAME for the choropleth ramp hue, peeled off the
121
+ /** Recognized color NAME for the choropleth ramp HIGH endpoint, peeled off the
122
122
  * `region-metric` trailing token (§24B.3). Defaults to red when absent. */
123
123
  regionMetricColor?: string;
124
+ /** Recognized color NAME for the choropleth ramp LOW endpoint (the second,
125
+ * left-of-two trailing colors on `region-metric`, §24B.3). Absent ⇒ the low
126
+ * end is the implied floored neutral (today's single-colour behaviour). */
127
+ regionMetricLowColor?: string;
124
128
  /** Legend label for the POI value (marker size) channel (`poi-metric`). */
125
129
  poiMetric?: string;
126
130
  /** Legend label for the edge/leg value (thickness) channel (`flow-metric`). */
@@ -148,12 +152,20 @@ interface MapDirectives {
148
152
  noContextLabels?: boolean;
149
153
  /** `no-region-labels` — suppress region labels (default-on, full→abbrev→hide). */
150
154
  noRegionLabels?: boolean;
155
+ /** `no-region-value` — suppress the metric VALUE shown under each data region's
156
+ * name on a `region-metric` choropleth (default-on). The region NAME still
157
+ * renders (governed by `no-region-labels`); only the numeric value line goes. */
158
+ noRegionValue?: boolean;
151
159
  /** `no-poi-labels` — suppress POI labels (default-on, collision-managed auto). */
152
160
  noPoiLabels?: boolean;
153
161
  /** `no-colorize` — force the plain green-land reference dress even when regions
154
162
  * are referenced (regions are auto-coloured by default; §24B colorize). A
155
163
  * no-op under data — the basemap is already gray there. */
156
164
  noColorize?: boolean;
165
+ /** `no-cities` — suppress the subtle gazetteer city dots scattered across the
166
+ * basemap for geographic orientation (default-on; population-ranked, spacing-
167
+ * thinned so density adapts to zoom). Explicit POIs always draw regardless. */
168
+ noCities?: boolean;
157
169
  /** `no-cluster-pois` — never collapse coincident POI markers into a count badge
158
170
  * (clustering/spiderfy is default-on in the interactive preview). With this set
159
171
  * the markers always render fanned out with their legs — the same as a static
@@ -195,8 +207,8 @@ interface MapPoi {
195
207
  }
196
208
  /** One leg of a route (§24B.6): an edge from the previous stop to `dest`. Reuses
197
209
  * the edge arrow idiom — in-arrow text = leg label, `value:` = leg thickness,
198
- * `->`/`~>` (or the header `style: arc`) = shape. Stop-targeted keys on the leg
199
- * line (`tag`, `label:`) decorate the DESTINATION point. */
210
+ * `->`/`~>` (or the header `style: arc`) = shape. A tag on the leg line colours
211
+ * the LINE (§24B.6); `label:`/`as` still name the DESTINATION stop. */
200
212
  interface MapRouteLeg {
201
213
  readonly label?: string;
202
214
  readonly style: 'straight' | 'arc';
@@ -204,7 +216,9 @@ interface MapRouteLeg {
204
216
  readonly dest: PoiPos;
205
217
  readonly destAlias?: string;
206
218
  readonly destLabel?: string;
207
- readonly destTags: Readonly<Record<string, string>>;
219
+ /** Tag(s) on the leg line → colour the LINE itself. To categorise a STOP,
220
+ * tag its own `poi` line. */
221
+ readonly tags: Readonly<Record<string, string>>;
208
222
  readonly lineNumber: number;
209
223
  }
210
224
  /** An ordered, auto-numbered route (§24B.6): `route <origin> [style: arc]` + a
@@ -221,7 +235,9 @@ interface MapRoute {
221
235
  readonly lineNumber: number;
222
236
  }
223
237
  /** A connector (§24B.6). Endpoints are RAW identifier strings (name or alias);
224
- * binding to POIs/regions is the resolver's job. `~>`→arc; `--`→directed:false. */
238
+ * binding to POIs/regions is the resolver's job. Token = arrowhead iff it ends
239
+ * in `>`, arc iff it starts with `~`: `->` straight, `~>` arc, `--`/`-label-`
240
+ * undirected straight, `~~`/`~label~` undirected arc. */
225
241
  interface MapEdge {
226
242
  readonly from: string;
227
243
  readonly to: string;
@@ -229,6 +245,8 @@ interface MapEdge {
229
245
  readonly directed: boolean;
230
246
  readonly style: 'straight' | 'arc';
231
247
  readonly meta: Readonly<Record<string, string>>;
248
+ /** Tag(s) on the edge line → colour the LINE itself (§24B.6). */
249
+ readonly tags: Readonly<Record<string, string>>;
232
250
  readonly lineNumber: number;
233
251
  }
234
252
  interface ParsedMap {
@@ -261,9 +279,11 @@ interface MapLayoutLegend {
261
279
  metric?: string;
262
280
  min: number;
263
281
  max: number;
264
- hue: string;
265
- /** Low end of the ramp gradient (the land colour the fills blend from). */
266
- base: string;
282
+ /** Resolved hex of the LOW (t=0) endpoint — the explicit low colour, or the
283
+ * floored neutral the single-colour fills blend up from. */
284
+ low: string;
285
+ /** Resolved hex of the HIGH (t=1) endpoint (the named ramp hue). */
286
+ high: string;
267
287
  };
268
288
  }
269
289
 
@@ -318,6 +338,24 @@ interface Gazetteer {
318
338
  /** Folded alias → index into `cities`. Never collides with a `byName` key. */
319
339
  alt: Record<string, number>;
320
340
  }
341
+ /**
342
+ * IATA-coded airport index (a SEPARATE optional asset — `airports.json`; ADR-1).
343
+ * Lets memorized airport codes resolve to coordinates through the resolver's
344
+ * existing fold→lookup path (`poi JFK`, `route JFK -> LAX`) — no parser change.
345
+ *
346
+ * - `airports` — `GazetteerEntry` tuples `[lat, lon, iso, 0, name]`. `pop` is
347
+ * always 0 (OurAirports has no enplanement column); `name` is the full airport
348
+ * name, used for COMPLETION DISPLAY only — airports resolve by IATA code, never
349
+ * by name. Coords are rounded to 2 decimals (~1km; sub-pixel at map scale).
350
+ * - `airportIata` — folded 3-letter IATA code → index into `airports`. Consulted
351
+ * LAST in resolution (after city `byName` + `alt`), so a real city always wins
352
+ * a shared token (ADR-2). Airports never enter `cities[]`, so the city-scatter
353
+ * and reverse-geocode layers never see them.
354
+ */
355
+ interface AirportData {
356
+ readonly airports: GazetteerEntry[];
357
+ readonly airportIata: Record<string, number>;
358
+ }
321
359
  /** Water-feature class (Natural Earth `featurecla`, rivers/reefs excluded). */
322
360
  type WaterKind = 'ocean' | 'sea' | 'gulf' | 'bay' | 'strait' | 'channel' | 'sound';
323
361
  /**
@@ -384,9 +422,13 @@ interface MapData {
384
422
  * `context-labels` directive is on — oceans/seas/gulfs/bays/etc. Optional, so
385
423
  * hand-built test fixtures and older bundles need not supply it. */
386
424
  waterBodies?: WaterBodies;
425
+ /** IATA-coded airports (`airports.json`) — lets `poi JFK` / `route JFK -> LAX`
426
+ * resolve. Optional so hand-built fixtures and older DI bundles need not supply
427
+ * it; the resolver guards `data.airports?.…` everywhere. */
428
+ airports?: AirportData;
387
429
  gazetteer: Gazetteer;
388
430
  }
389
- type ProjectionFamily = 'equal-earth' | 'natural-earth' | 'equirectangular' | 'albers-usa' | 'mercator';
431
+ type ProjectionFamily = 'equal-earth' | 'natural-earth' | 'equirectangular' | 'albers-usa' | 'conic-equal-area' | 'mercator';
390
432
  /** Which geometry layers the renderer draws. */
391
433
  interface Basemaps {
392
434
  /** World country tier: coarse (world-scale) | detail (regional/zoom). */
@@ -431,6 +473,8 @@ interface ResolvedEdge {
431
473
  readonly directed: boolean;
432
474
  readonly style: 'straight' | 'arc';
433
475
  readonly meta: Readonly<Record<string, string>>;
476
+ /** Tag(s) on the edge line → colour the LINE (§24B.6). */
477
+ readonly tags: Readonly<Record<string, string>>;
434
478
  readonly lineNumber: number;
435
479
  }
436
480
  interface ResolvedRouteLeg {
@@ -439,6 +483,8 @@ interface ResolvedRouteLeg {
439
483
  readonly label?: string;
440
484
  readonly style: 'straight' | 'arc';
441
485
  readonly value?: string;
486
+ /** Tag(s) on the leg line → colour the LINE (§24B.6). */
487
+ readonly tags: Readonly<Record<string, string>>;
442
488
  readonly lineNumber: number;
443
489
  }
444
490
  interface ResolvedRoute {
@@ -808,9 +854,9 @@ interface PaletteColors {
808
854
  * hands out the same frozen-shape object on every `getPalette(id)`.
809
855
  */
810
856
  interface PaletteConfig {
811
- /** Registry key: 'nord', 'solarized', 'catppuccin' */
857
+ /** Registry key: 'nord', 'slate', 'catppuccin' */
812
858
  readonly id: string;
813
- /** Display name: 'Nord', 'Solarized', 'Catppuccin' */
859
+ /** Display name: 'Nord', 'Slate', 'Catppuccin' */
814
860
  readonly name: string;
815
861
  /** Light mode color definitions */
816
862
  readonly light: PaletteColors;
@@ -872,7 +918,7 @@ declare function mix(a: string, b: string, pct: number): string;
872
918
  * tokyo-night green `#9ece6a` min 106, ratio 11.4:1 all correctly pick dark).
873
919
  * 3. **Saturated fill (min RGB < 100, luminance ≤ 0.55)** → `lightText`. At least
874
920
  * one channel near zero signals true saturation — gruvbox dark green
875
- * `#b8bb26` (min 38), one-dark blue `#4078f2` (min 64), bold red/blue
921
+ * `#b8bb26` (min 38), blueprint blue `#1f5e8c` (min 31), bold red/blue
876
922
  * (min 0), solarized blue `#268bd2` (min 38). The user consistently
877
923
  * prefers light text on these for visual punch.
878
924
  *
@@ -910,26 +956,14 @@ declare const blueprintPalette: PaletteConfig;
910
956
 
911
957
  declare const catppuccinPalette: PaletteConfig;
912
958
 
913
- declare const gruvboxPalette: PaletteConfig;
914
-
915
959
  declare const nordPalette: PaletteConfig;
916
960
 
917
- declare const oneDarkPalette: PaletteConfig;
918
-
919
- declare const rosePinePalette: PaletteConfig;
920
-
921
961
  declare const slatePalette: PaletteConfig;
922
962
 
923
- declare const solarizedPalette: PaletteConfig;
924
-
925
963
  declare const tidewaterPalette: PaletteConfig;
926
964
 
927
965
  declare const tokyoNightPalette: PaletteConfig;
928
966
 
929
- declare const draculaPalette: PaletteConfig;
930
-
931
- declare const monokaiPalette: PaletteConfig;
932
-
933
967
  /**
934
968
  * All built-in palettes, keyed by camelCase id. Use directly with render():
935
969
  *
@@ -946,13 +980,7 @@ declare const palettes: {
946
980
  readonly tidewater: PaletteConfig;
947
981
  readonly nord: PaletteConfig;
948
982
  readonly catppuccin: PaletteConfig;
949
- readonly solarized: PaletteConfig;
950
- readonly gruvbox: PaletteConfig;
951
983
  readonly tokyoNight: PaletteConfig;
952
- readonly oneDark: PaletteConfig;
953
- readonly rosePine: PaletteConfig;
954
- readonly dracula: PaletteConfig;
955
- readonly monokai: PaletteConfig;
956
984
  };
957
985
 
958
986
  type ChartType$1 = 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'polar-area' | 'radar' | 'bar-stacked';
@@ -1100,8 +1128,12 @@ interface LegendGroupData {
1100
1128
  readonly gradient?: {
1101
1129
  readonly min: number;
1102
1130
  readonly max: number;
1103
- readonly hue: string;
1104
- readonly base: string;
1131
+ /** Resolved hex of the LOW (t=0) endpoint. For a single-colour ramp this is
1132
+ * the floored neutral (`mix(hue, base, RAMP_FLOOR)`); for an explicit
1133
+ * two-colour ramp it is the user's low colour. */
1134
+ readonly low: string;
1135
+ /** Resolved hex of the HIGH (t=1) endpoint (the named hue). */
1136
+ readonly high: string;
1105
1137
  };
1106
1138
  }
1107
1139
  interface LegendConfig {
@@ -1182,8 +1214,10 @@ interface LegendCapsuleLayout {
1182
1214
  maxText: string;
1183
1215
  maxX: number;
1184
1216
  textY: number;
1185
- hue: string;
1186
- base: string;
1217
+ /** Resolved hex endpoints (low = t0, high = t1); the renderer samples the
1218
+ * ramp between them via `valueRampStops`. */
1219
+ low: string;
1220
+ high: string;
1187
1221
  };
1188
1222
  }
1189
1223
  interface LegendControlLayout {
@@ -1532,6 +1566,8 @@ interface ParsedVisualization {
1532
1566
  timelineDefaultSwimlaneTG?: string;
1533
1567
  timelineScale: boolean;
1534
1568
  timelineSwimlanes: boolean;
1569
+ /** Authored `active-tag <group|none|metric>` directive (§15.6); resolved at render. */
1570
+ timelineActiveTag?: string;
1535
1571
  vennSets: VennSet[];
1536
1572
  vennOverlaps: VennOverlap[];
1537
1573
  quadrantLabels: QuadrantLabels;
@@ -1748,7 +1784,7 @@ interface ParsedSequenceDgmo {
1748
1784
  /**
1749
1785
  * Parse a .dgmo file with `chart: sequence` into a structured representation.
1750
1786
  */
1751
- declare function parseSequenceDgmo(content: string): ParsedSequenceDgmo;
1787
+ declare function parseSequenceDgmo(content: string, palette?: PaletteColors): ParsedSequenceDgmo;
1752
1788
  /**
1753
1789
  * Detect whether raw content looks like a sequence diagram.
1754
1790
  * Used by the chart type inference logic.
@@ -1765,6 +1801,17 @@ declare function inferParticipantType(name: string): ParticipantType;
1765
1801
  */
1766
1802
  declare const RULE_COUNT: number;
1767
1803
 
1804
+ interface DiagramNote {
1805
+ /** Author-typed node id/label the note attaches to. */
1806
+ readonly ref: string;
1807
+ /** Body text (inline + indented lines, joined with `\n`). */
1808
+ readonly body: string;
1809
+ /** Resolved hex accent (border + faded fill); default yellow if absent. */
1810
+ readonly color?: string;
1811
+ readonly lineNumber: number;
1812
+ readonly endLineNumber: number;
1813
+ }
1814
+
1768
1815
  type GraphShape = 'terminal' | 'process' | 'decision' | 'io' | 'subroutine' | 'document' | 'state' | 'pseudostate';
1769
1816
  type GraphDirection = 'TB' | 'LR';
1770
1817
  interface GraphNode {
@@ -1790,6 +1837,8 @@ interface GraphGroup {
1790
1837
  readonly lineNumber: number;
1791
1838
  }
1792
1839
 
1840
+ type GraphNote = DiagramNote;
1841
+
1793
1842
  interface ParsedGraph {
1794
1843
  readonly type: 'flowchart' | 'state';
1795
1844
  readonly title?: string;
@@ -1798,6 +1847,7 @@ interface ParsedGraph {
1798
1847
  readonly nodes: readonly GraphNode[];
1799
1848
  readonly edges: readonly GraphEdge[];
1800
1849
  readonly groups?: readonly GraphGroup[];
1850
+ readonly notes?: readonly GraphNote[];
1801
1851
  readonly options: Readonly<Record<string, string>>;
1802
1852
  readonly diagnostics: readonly DgmoError[];
1803
1853
  readonly error: string | null;
@@ -1832,6 +1882,43 @@ declare function parseState(content: string, palette?: PaletteColors): ParsedGra
1832
1882
  */
1833
1883
  declare function looksLikeState(content: string): boolean;
1834
1884
 
1885
+ /**
1886
+ * One rendered description line. `kind` controls horizontal placement and
1887
+ * whether the renderer draws a bullet glyph:
1888
+ * - `plain` — flush left at the description's left edge
1889
+ * - `bullet-first` — "•" drawn at the left edge, body text at the bullet column
1890
+ * - `bullet-cont` — body continuation at the bullet column (no glyph)
1891
+ *
1892
+ * Splitting first-line bullet rendering into separate text elements lets
1893
+ * continuation lines align exactly under the first word past the bullet,
1894
+ * regardless of font-width estimation drift.
1895
+ */
1896
+ interface WrappedDescLine {
1897
+ text: string;
1898
+ kind: 'plain' | 'bullet-first' | 'bullet-cont';
1899
+ }
1900
+
1901
+ type NoteSide$1 = 'above' | 'below' | 'left' | 'right';
1902
+ /** A note box positioned relative to its anchor node's center. */
1903
+ interface NoteLayout {
1904
+ readonly x: number;
1905
+ readonly y: number;
1906
+ readonly width: number;
1907
+ readonly height: number;
1908
+ /** Which side of the node the box sits on (drives the connector). */
1909
+ readonly side: NoteSide$1;
1910
+ /** Resolved hex accent (border + faded fill); default yellow if absent. */
1911
+ readonly color?: string;
1912
+ readonly lines: readonly WrappedDescLine[];
1913
+ readonly lineNumber: number;
1914
+ readonly endLineNumber: number;
1915
+ /**
1916
+ * When true the note is collapsed: the renderer draws a small badge at
1917
+ * the node corner instead of the floated box, and `x/y/width/height/side/
1918
+ * lines` are unused. Collapsed notes reserve no layout space.
1919
+ */
1920
+ readonly collapsed?: boolean;
1921
+ }
1835
1922
  interface LayoutNode {
1836
1923
  readonly id: string;
1837
1924
  readonly label: string;
@@ -1843,6 +1930,13 @@ interface LayoutNode {
1843
1930
  readonly y: number;
1844
1931
  readonly width: number;
1845
1932
  readonly height: number;
1933
+ /**
1934
+ * A note floated beside this node. The shape keeps its natural dagre
1935
+ * position and dimensions (so its edges stay connected) — the note is
1936
+ * placed in adjacent space and the canvas bounds are expanded to fit
1937
+ * it. Absent on un-annotated nodes.
1938
+ */
1939
+ readonly note?: NoteLayout;
1846
1940
  }
1847
1941
  interface LayoutEdge {
1848
1942
  readonly source: string;
@@ -1870,6 +1964,11 @@ interface LayoutOptions$1 {
1870
1964
  collapsedChildCounts?: Map<string, number>;
1871
1965
  /** Original groups before collapse (includes collapsed ones) */
1872
1966
  originalGroups?: readonly GraphGroup[];
1967
+ /**
1968
+ * 1-based source line numbers of notes the user has collapsed. A
1969
+ * collapsed note renders as a corner badge and reserves no space.
1970
+ */
1971
+ collapsedNotes?: ReadonlySet<number>;
1873
1972
  }
1874
1973
  interface LayoutResult$1 {
1875
1974
  readonly nodes: readonly LayoutNode[];
@@ -1903,6 +2002,26 @@ interface StateCollapseResult {
1903
2002
  */
1904
2003
  declare function collapseStateGroups(parsed: ParsedGraph, collapsedGroups: Set<string>): StateCollapseResult;
1905
2004
 
2005
+ type NoteSide = 'above' | 'below' | 'left' | 'right';
2006
+
2007
+ /** A resolved, placed note ready for the note-box drawer. */
2008
+ interface PlacedNote {
2009
+ /** Box left, LOCAL to the node center (add node.x). Unused if collapsed. */
2010
+ readonly x: number;
2011
+ /** Box top, LOCAL to the node center (add node.y). Unused if collapsed. */
2012
+ readonly y: number;
2013
+ readonly width: number;
2014
+ readonly height: number;
2015
+ readonly side: NoteSide;
2016
+ /** Resolved hex accent (border + faded fill); default yellow if absent. */
2017
+ readonly color?: string;
2018
+ readonly lines: readonly WrappedDescLine[];
2019
+ readonly lineNumber: number;
2020
+ readonly endLineNumber: number;
2021
+ /** Collapsed → renderer draws a corner badge; box geometry is unused. */
2022
+ readonly collapsed?: boolean;
2023
+ }
2024
+
1906
2025
  type ClassModifier = 'abstract' | 'interface' | 'enum';
1907
2026
  type MemberVisibility = 'public' | 'private' | 'protected';
1908
2027
  type RelationshipType = 'extends' | 'implements' | 'composes' | 'aggregates' | 'depends' | 'associates';
@@ -1938,6 +2057,8 @@ interface ParsedClassDiagram {
1938
2057
  readonly classes: readonly ClassNode[];
1939
2058
  readonly relationships: readonly ClassRelationship[];
1940
2059
  readonly options: Readonly<Record<string, string>>;
2060
+ /** Generic node notes (`note <ClassName> …`); resolved in layout. */
2061
+ readonly notes?: readonly DiagramNote[];
1941
2062
  readonly diagnostics: readonly DgmoError[];
1942
2063
  readonly error: string | null;
1943
2064
  }
@@ -1958,6 +2079,15 @@ interface ClassLayoutNode extends ClassNode {
1958
2079
  readonly headerHeight: number;
1959
2080
  readonly fieldsHeight: number;
1960
2081
  readonly methodsHeight: number;
2082
+ /** A note floated beside this class (never moves the box). */
2083
+ readonly note?: PlacedNote;
2084
+ }
2085
+ interface ClassLayoutOptions {
2086
+ /**
2087
+ * 1-based source line numbers of notes the user has collapsed. A
2088
+ * collapsed note renders as a corner badge and reserves no space.
2089
+ */
2090
+ collapsedNotes?: ReadonlySet<number>;
1961
2091
  }
1962
2092
  interface ClassLayoutEdge {
1963
2093
  readonly source: string;
@@ -1976,7 +2106,7 @@ interface ClassLayoutResult {
1976
2106
  readonly width: number;
1977
2107
  readonly height: number;
1978
2108
  }
1979
- declare function layoutClassDiagram(parsed: ParsedClassDiagram): ClassLayoutResult;
2109
+ declare function layoutClassDiagram(parsed: ParsedClassDiagram, options?: ClassLayoutOptions): ClassLayoutResult;
1980
2110
 
1981
2111
  declare function renderClassDiagram(container: HTMLDivElement, parsed: ParsedClassDiagram, layout: ClassLayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1982
2112
  width?: number;
@@ -2019,6 +2149,8 @@ interface ParsedERDiagram {
2019
2149
  readonly tables: readonly ERTable[];
2020
2150
  readonly relationships: readonly ERRelationship[];
2021
2151
  readonly tagGroups: readonly TagGroup[];
2152
+ /** Generic node notes (`note <Table> …`); resolved in layout. */
2153
+ readonly notes?: readonly DiagramNote[];
2022
2154
  readonly diagnostics: readonly DgmoError[];
2023
2155
  readonly error: string | null;
2024
2156
  }
@@ -2037,6 +2169,12 @@ interface ERLayoutNode extends ERTable {
2037
2169
  readonly height: number;
2038
2170
  readonly headerHeight: number;
2039
2171
  readonly columnsHeight: number;
2172
+ /** A note floated beside this table (never moves the box). */
2173
+ readonly note?: PlacedNote;
2174
+ }
2175
+ interface ERLayoutOptions {
2176
+ /** 1-based source lines of notes the user collapsed (corner badge). */
2177
+ collapsedNotes?: ReadonlySet<number>;
2040
2178
  }
2041
2179
  interface ERLayoutEdge {
2042
2180
  readonly source: string;
@@ -2058,7 +2196,7 @@ interface ERLayoutResult {
2058
2196
  readonly width: number;
2059
2197
  readonly height: number;
2060
2198
  }
2061
- declare function layoutERDiagram(parsed: ParsedERDiagram): ERLayoutResult;
2199
+ declare function layoutERDiagram(parsed: ParsedERDiagram, options?: ERLayoutOptions): ERLayoutResult;
2062
2200
 
2063
2201
  declare function renderERDiagram(container: HTMLDivElement, parsed: ParsedERDiagram, layout: ERLayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
2064
2202
  width?: number;
@@ -2558,19 +2696,25 @@ interface ParsedBoxesAndLines {
2558
2696
  readonly groups: readonly BLGroup[];
2559
2697
  readonly tagGroups: readonly TagGroup[];
2560
2698
  readonly options: Readonly<Record<string, string>>;
2699
+ /** Generic node notes (`note <Box> …`); resolved in layout. */
2700
+ readonly notes?: readonly DiagramNote[];
2561
2701
  readonly initialHiddenTagValues: ReadonlyMap<string, ReadonlySet<string>>;
2562
2702
  readonly direction: 'LR' | 'TB';
2563
- /** `box-metric <label> [color]` — names the value-ramp dimension and
2564
- * optionally sets its hue. Mirror of map's `region-metric`. */
2703
+ /** `box-metric <label> [low] [high]` — names the value-ramp dimension and
2704
+ * optionally sets its endpoint colours. One color = high hue over a neutral
2705
+ * low; two = explicit `low high`. Mirror of map's `region-metric`. */
2565
2706
  readonly boxMetric?: string;
2707
+ /** Recognized color NAME for the ramp HIGH endpoint. */
2566
2708
  readonly boxMetricColor?: string;
2709
+ /** Recognized color NAME for the ramp LOW endpoint (two-colour form). */
2710
+ readonly boxMetricLowColor?: string;
2567
2711
  /** `show-values` — print each box's numeric value as text (opt-in). */
2568
2712
  readonly showValues?: boolean;
2569
2713
  readonly diagnostics: readonly DgmoError[];
2570
2714
  readonly error: string | null;
2571
2715
  }
2572
2716
 
2573
- declare function parseBoxesAndLines(content: string): ParsedBoxesAndLines;
2717
+ declare function parseBoxesAndLines(content: string, palette?: PaletteColors): ParsedBoxesAndLines;
2574
2718
 
2575
2719
  interface BLLayoutNode {
2576
2720
  readonly label: string;
@@ -2578,6 +2722,8 @@ interface BLLayoutNode {
2578
2722
  readonly y: number;
2579
2723
  readonly width: number;
2580
2724
  readonly height: number;
2725
+ /** A note floated beside this box (never moves the box). */
2726
+ readonly note?: PlacedNote;
2581
2727
  }
2582
2728
  interface BLLayoutEdge {
2583
2729
  readonly source: string;
@@ -2620,6 +2766,13 @@ declare function layoutBoxesAndLines(parsed: ParsedBoxesAndLines, collapseInfo?:
2620
2766
  originalGroups: readonly BLGroup[];
2621
2767
  }, layoutOptions?: {
2622
2768
  hideDescriptions?: boolean;
2769
+ collapsedNotes?: ReadonlySet<number>;
2770
+ /** Previous node positions (label → {x,y}) for layout stability —
2771
+ * minimizes node drift on edit/collapse. */
2772
+ previousPositions?: ReadonlyMap<string, {
2773
+ x: number;
2774
+ y: number;
2775
+ }>;
2623
2776
  }): Promise<BLLayoutResult>;
2624
2777
 
2625
2778
  interface BLRenderOptions {
@@ -4279,22 +4432,6 @@ declare function renderQuadrantFocusForExport(container: HTMLDivElement, parsed:
4279
4432
  height: number;
4280
4433
  }): void;
4281
4434
 
4282
- /**
4283
- * One rendered description line. `kind` controls horizontal placement and
4284
- * whether the renderer draws a bullet glyph:
4285
- * - `plain` — flush left at the description's left edge
4286
- * - `bullet-first` — "•" drawn at the left edge, body text at the bullet column
4287
- * - `bullet-cont` — body continuation at the bullet column (no glyph)
4288
- *
4289
- * Splitting first-line bullet rendering into separate text elements lets
4290
- * continuation lines align exactly under the first word past the bullet,
4291
- * regardless of font-width estimation drift.
4292
- */
4293
- interface WrappedDescLine {
4294
- text: string;
4295
- kind: 'plain' | 'bullet-first' | 'bullet-cont';
4296
- }
4297
-
4298
4435
  interface CycleNode {
4299
4436
  readonly label: string;
4300
4437
  readonly lineNumber: number;
@@ -4613,7 +4750,7 @@ declare function renderRingForExport(container: HTMLDivElement, parsed: ParsedRi
4613
4750
 
4614
4751
  /** True when the first non-blank/non-comment line declares `map`. */
4615
4752
  declare function looksLikeMap(content: string): boolean;
4616
- declare function parseMap(content: string): ParsedMap;
4753
+ declare function parseMap(content: string, palette?: PaletteColors): ParsedMap;
4617
4754
 
4618
4755
  declare function resolveMap(parsed: ParsedMap, data: MapData): ResolvedMap;
4619
4756
 
@@ -4694,6 +4831,9 @@ interface MapLayoutPoi {
4694
4831
  readonly cy: number;
4695
4832
  readonly r: number;
4696
4833
  readonly fill: string;
4834
+ /** Fill opacity scaled by radius — larger bubbles fade so they read as light
4835
+ * rather than heavy. Stroke stays fully opaque (crisp edge at every size). */
4836
+ readonly fillOpacity: number;
4697
4837
  readonly stroke: string;
4698
4838
  readonly lineNumber: number;
4699
4839
  readonly implicit: boolean;
@@ -4740,6 +4880,15 @@ interface MapLayoutLeg {
4740
4880
  readonly width: number;
4741
4881
  readonly color: string;
4742
4882
  readonly arrow: boolean;
4883
+ /** Endpoint POI ids (resolved `fromId`/`toId`), emitted as `data-from-id` /
4884
+ * `data-to-id`. Lets an interactive preview co-highlight a leg's two endpoint
4885
+ * POIs when the leg is focused (§17 sync). */
4886
+ readonly fromId: string;
4887
+ readonly toId: string;
4888
+ /** Tag values (keyed by lowercased group name) — emitted as `data-tag-*`, like
4889
+ * POI markers, so a legend-entry hover spotlights only the matching lines
4890
+ * (§24B.6). Omitted when the leg carries no tag. */
4891
+ readonly tags?: Readonly<Record<string, string>>;
4743
4892
  readonly label?: string;
4744
4893
  readonly labelX?: number;
4745
4894
  readonly labelY?: number;
@@ -4778,6 +4927,11 @@ interface PlacedLabel {
4778
4927
  /** The POI this label belongs to (POI labels only) — emitted as `data-poi` on
4779
4928
  * the label + leader so the app can spotlight the dot on label hover. */
4780
4929
  readonly poiId?: string;
4930
+ /** Per-label font size in px. Set on context COUNTRY labels, which scale up with
4931
+ * their projected footprint (a big country reads as a faded backdrop name, a
4932
+ * small one stays at the base label font). Absent ⇒ the renderer's default
4933
+ * LABEL_FONT, so every other label type renders byte-identically. */
4934
+ readonly fontSize?: number;
4781
4935
  /** Cartographic italic (context-label water names, §24B). Default upright. */
4782
4936
  readonly italic?: boolean;
4783
4937
  /** Cartographic letter-spacing in px (context-label water names). Default 0. */
@@ -4796,9 +4950,31 @@ interface PlacedLabel {
4796
4950
  * visible (export + expanded view) but tagged `data-cluster-member` so the app
4797
4951
  * hides it when the stack is collapsed to its badge. */
4798
4952
  readonly clusterMember?: string;
4953
+ /** A choropleth region's metric VALUE (already compact-formatted, e.g. `39.5M`),
4954
+ * drawn as a smaller, dimmer second line UNDER `text` (the region name). Set
4955
+ * only on region labels of a `region-metric` map when `no-region-value` is off.
4956
+ * The renderer stacks it as a sub-line; absent ⇒ single name line. */
4957
+ readonly valueLine?: string;
4958
+ /** A region too small to carry its name+value stack in place gets a leader-lined
4959
+ * callout in a margin column; this marks the region's true centroid so the
4960
+ * renderer draws a small anchor dot there (the leader runs dot → chip). The
4961
+ * colour is the region's fill, tying the dot/leader/chip together. */
4962
+ readonly calloutDot?: {
4963
+ x: number;
4964
+ y: number;
4965
+ color: string;
4966
+ };
4799
4967
  readonly lineNumber: number;
4800
4968
  }
4801
4969
 
4970
+ /** A subtle gazetteer city dot for basemap orientation (§24B `no-cities`). Just
4971
+ * a position + radius; the renderer paints it muted/low-opacity. No label, no
4972
+ * interactivity — purely decorative context. */
4973
+ interface MapLayoutCityDot {
4974
+ readonly cx: number;
4975
+ readonly cy: number;
4976
+ readonly r: number;
4977
+ }
4802
4978
  /** A drawn river centerline — an open stroked path (no fill). */
4803
4979
  interface MapLayoutRiver {
4804
4980
  readonly d: string;
@@ -4862,6 +5038,9 @@ interface MapLayout {
4862
5038
  readonly coastlineStyle: MapLayoutCoastlineStyle | null;
4863
5039
  readonly legs: readonly MapLayoutLeg[];
4864
5040
  readonly pois: readonly MapLayoutPoi[];
5041
+ /** Subtle gazetteer city dots for orientation (empty when `no-cities` or no
5042
+ * cities fall on-canvas). Drawn over the basemap, under connectors/POIs. */
5043
+ readonly cityDots: readonly MapLayoutCityDot[];
4865
5044
  /** Coincident POI stacks (spiderfy). Empty when no ≥2-member overlap exists.
4866
5045
  * The renderer draws a collapsed badge per stack; the app collapses/expands. */
4867
5046
  readonly clusters: readonly MapLayoutCluster[];
@@ -4901,6 +5080,28 @@ interface LayoutOptions {
4901
5080
  * `'preview'` keeps inactive pills. Used to size the reserved legend band so
4902
5081
  * the projected land starts below the legend. Defaults to `'preview'`. */
4903
5082
  readonly legendMode?: LegendMode;
5083
+ /** INTERNAL (set by layoutMap's own second pass — do not pass in). When tiny
5084
+ * valued regions need margin callouts, the first pass measures them and
5085
+ * re-runs with reserved bands: the projection fits into the canvas MINUS these
5086
+ * bands so the data shrinks/shifts inward, opening label room. A cluster on
5087
+ * EACH side reserves its own band (px), so tiny regions on both coasts each get
5088
+ * a column. An absent side reserves nothing there. Also carries the POI
5089
+ * edge-clearance bands (any of the four sides) measured by the POI-label pass
5090
+ * (same fit-box mechanism). Region callouts only ever set left/right. */
5091
+ readonly _calloutReserve?: {
5092
+ left?: number;
5093
+ right?: number;
5094
+ top?: number;
5095
+ bottom?: number;
5096
+ };
5097
+ /** INTERNAL (set by layoutMap's own POI-clearance pass — do not pass in). After
5098
+ * POI-label placement, any POI dot/label crossing the edge-clearance band
5099
+ * triggers a re-fit that ADDS the residual intrusion to the reserved band on
5100
+ * that side, sliding the data inward. Re-measured each pass and accumulated
5101
+ * until nothing intrudes (or the pass cap), so a tight cluster on a small canvas
5102
+ * converges instead of giving up after one under-shoot. This counts the passes
5103
+ * taken to bound the recursion. */
5104
+ readonly _poiClearancePass?: number;
4904
5105
  }
4905
5106
  interface Size {
4906
5107
  readonly width: number;
@@ -5073,10 +5274,23 @@ interface MapPlaceCompletion {
5073
5274
  readonly iso: string;
5074
5275
  readonly sub?: string;
5075
5276
  readonly pop: number;
5277
+ /** `'airport'` for IATA-code entries (icon/grouping affordance); absent or
5278
+ * `'city'` for gazetteer cities. Cities rank above airports for a shared
5279
+ * prefix so ~1500 codes never bury city names (ADR-5). */
5280
+ readonly kind?: 'city' | 'airport';
5076
5281
  }
5077
5282
  interface MapCompletionOptions {
5078
5283
  /** Max results (default 12). */
5079
5284
  readonly limit?: number;
5285
+ /** IATA-coded airports (`airports.json`). When supplied, airport codes
5286
+ * matching the prefix are offered as a second (post-city) group. Optional —
5287
+ * absent (old DI bundles / no asset) just yields city-only completions. */
5288
+ readonly airports?: AirportData;
5289
+ /** Resolver-inferred map scope (country `US` or subdivision `US-CA`). Biases
5290
+ * airport ranking so in-region airports sort above out-of-region same-prefix
5291
+ * ones (ADR-6). Pure rank, never a filter — cross-region airports still
5292
+ * appear. App passes the document's inferred scope in (Slice 2). */
5293
+ readonly scopeISO?: string;
5080
5294
  }
5081
5295
  /**
5082
5296
  * Prefix-match city names + alternate-name aliases against the gazetteer,
@@ -5699,4 +5913,4 @@ declare function migrateContent(source: string): ContentMigration;
5699
5913
  */
5700
5914
  declare function formatLineDiff(path: string, original: string, migrated: string): string;
5701
5915
 
5702
- export { ALL_CHART_TYPES, AMBIGUITY_THRESHOLD, ARROW_DIAGNOSTIC_CODES, type Activation, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BoundaryTopology, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, CHART_TYPES, CHART_TYPE_DESCRIPTIONS, COMPLETION_REGISTRY, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type Confidence as ChartTypeConfidence, type ChartTypeMeta, type ChartTypeScore, type SuggestionResult as ChartTypeSuggestionResult, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, type CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContentMigration, type ContextRelationship, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DirectiveSpec, type DirectiveValueSpec, type Duration, type DurationUnit, ECHART_EXPORT_WIDTH, ENTITY_TYPES, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type ExpandedActivity, type ExtendedChartType, type ExtractFn, type FocusOrgResult, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, type Gazetteer, type GazetteerEntry, type GeoExtent, type GetOrCreateNameResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, METADATA_KEY_SET, MIN_PRIMARY_SCORE, type MapCompletionOptions, type MapData, type MapDirectives, type MapEdge, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, type MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MapPlaceCompletion, type MapPoi, type MapRegion, type MapRegionCompletion, type MapRoute, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PIPE_METADATA, type PaletteColors, type PaletteConfig, type ParseInArrowLabelResult, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedCycle, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, type ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedTechRadar, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PipeKeySpec, type PlacedLabel, type PoiPos, type ProjectedCity, type ProjectionFamily, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type ReadFileFn, type RegionName, type RegionNames, type RegionToken, type RelationshipType, type RenderCategory, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedEdge, type ResolvedGroup$1 as ResolvedGroup, type ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedPoi, type ResolvedRegion, type ResolvedRoute, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, STRUCTURAL_KEYWORDS, ScaleContext, type ScatterLabelPoint, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type StateCollapseResult, TAG_SUPPORTING_TYPES, type TagEntry, type TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type Theme, type TransformResult, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, addDurationToDate, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, blueprintPalette, buildExtendedChartOption, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, confidence as chartTypeConfidence, chartTypeParsers, chartTypes, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, completeMapPlaces, completeMapRegions, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, decodeDiagramUrl, decodeViewState, displayName, draculaPalette, encodeDiagramUrl, encodeViewState, extractDiagramSymbols, extractPertSymbols, extractTagDeclarations, findUnsafePipePositions, focusOrgTree, formatDateLabel, formatDgmoError, formatLineDiff, getAllChartTypes, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getPalette, getRadarGeometry, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, isArchiveColumn, isExtendedChartType, isLegacyMetadataLine, isRecognizedColorName, isSequenceBlock, isSequenceNote, isValidHex, knownChartTypeIds, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, matchesContiguously, measurePertAnalysisBlock, migrateContent, mix, monokaiPalette, mulberry32, nord, nordPalette, normalize as normalizeChartTypePrompt, normalizeName, normalizePertSourceForShare, oneDarkPalette, orderArcNodes, palettes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseCycle, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseState, parseTechRadar, parseTimelineDate, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, registerExtractor, registerPalette, relayoutPert, render, renderArcDiagram, renderBoxesAndLines, renderBoxesAndLinesForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderExtendedChartForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderVenn, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, sampleBetaPert, scoreChartType, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, slatePalette, solarizedPalette, suggestChartTypes, themes, tidewaterPalette, tint, tokyoNightPalette, transformLine, truncateBareUrl, parseDgmo as validate, validateComputed, validateInfra, validateLabelCharacters };
5916
+ export { ALL_CHART_TYPES, AMBIGUITY_THRESHOLD, ARROW_DIAGNOSTIC_CODES, type Activation, type AirportData, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BoundaryTopology, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, CHART_TYPES, CHART_TYPE_DESCRIPTIONS, COMPLETION_REGISTRY, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type Confidence as ChartTypeConfidence, type ChartTypeMeta, type ChartTypeScore, type SuggestionResult as ChartTypeSuggestionResult, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, type CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContentMigration, type ContextRelationship, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DirectiveSpec, type DirectiveValueSpec, type Duration, type DurationUnit, ECHART_EXPORT_WIDTH, ENTITY_TYPES, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type ExpandedActivity, type ExtendedChartType, type ExtractFn, type FocusOrgResult, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, type Gazetteer, type GazetteerEntry, type GeoExtent, type GetOrCreateNameResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, METADATA_KEY_SET, MIN_PRIMARY_SCORE, type MapCompletionOptions, type MapData, type MapDirectives, type MapEdge, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, type MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MapPlaceCompletion, type MapPoi, type MapRegion, type MapRegionCompletion, type MapRoute, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PIPE_METADATA, type PaletteColors, type PaletteConfig, type ParseInArrowLabelResult, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedCycle, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, type ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedTechRadar, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PipeKeySpec, type PlacedLabel, type PoiPos, type ProjectedCity, type ProjectionFamily, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type ReadFileFn, type RegionName, type RegionNames, type RegionToken, type RelationshipType, type RenderCategory, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedEdge, type ResolvedGroup$1 as ResolvedGroup, type ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedPoi, type ResolvedRegion, type ResolvedRoute, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, STRUCTURAL_KEYWORDS, ScaleContext, type ScatterLabelPoint, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type StateCollapseResult, TAG_SUPPORTING_TYPES, type TagEntry, type TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type Theme, type TransformResult, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, addDurationToDate, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, blueprintPalette, buildExtendedChartOption, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, confidence as chartTypeConfidence, chartTypeParsers, chartTypes, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, completeMapPlaces, completeMapRegions, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, decodeDiagramUrl, decodeViewState, displayName, encodeDiagramUrl, encodeViewState, extractDiagramSymbols, extractPertSymbols, extractTagDeclarations, findUnsafePipePositions, focusOrgTree, formatDateLabel, formatDgmoError, formatLineDiff, getAllChartTypes, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getPalette, getRadarGeometry, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, isArchiveColumn, isExtendedChartType, isLegacyMetadataLine, isRecognizedColorName, isSequenceBlock, isSequenceNote, isValidHex, knownChartTypeIds, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, matchesContiguously, measurePertAnalysisBlock, migrateContent, mix, mulberry32, nord, nordPalette, normalize as normalizeChartTypePrompt, normalizeName, normalizePertSourceForShare, orderArcNodes, palettes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseCycle, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseState, parseTechRadar, parseTimelineDate, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, registerExtractor, registerPalette, relayoutPert, render, renderArcDiagram, renderBoxesAndLines, renderBoxesAndLinesForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderExtendedChartForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderVenn, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, sampleBetaPert, scoreChartType, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, slatePalette, suggestChartTypes, themes, tidewaterPalette, tint, tokyoNightPalette, transformLine, truncateBareUrl, parseDgmo as validate, validateComputed, validateInfra, validateLabelCharacters };