@diagrammo/dgmo 0.8.20 → 0.8.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -1
- package/README.md +1 -0
- package/dist/cli.cjs +142 -90
- package/dist/editor.cjs +30 -4
- package/dist/editor.cjs.map +1 -1
- package/dist/editor.js +30 -4
- package/dist/editor.js.map +1 -1
- package/dist/highlight.cjs +25 -3
- package/dist/highlight.cjs.map +1 -1
- package/dist/highlight.js +25 -3
- package/dist/highlight.js.map +1 -1
- package/dist/index.cjs +21201 -12886
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +646 -89
- package/dist/index.d.ts +646 -89
- package/dist/index.js +21178 -12889
- package/dist/index.js.map +1 -1
- package/docs/guide/chart-mindmap.md +198 -0
- package/docs/guide/chart-sequence.md +23 -1
- package/docs/guide/chart-sitemap.md +18 -1
- package/docs/guide/chart-tech-radar.md +219 -0
- package/docs/guide/chart-wireframe.md +100 -0
- package/docs/guide/index.md +8 -0
- package/docs/guide/registry.json +1 -0
- package/docs/language-reference.md +249 -4
- package/gallery/fixtures/boxes-and-lines.dgmo +10 -3
- package/gallery/fixtures/c4-full.dgmo +2 -2
- package/gallery/fixtures/cycle/ooda-loop.dgmo +25 -0
- package/gallery/fixtures/cycle/pdca-circle-nodes.dgmo +12 -0
- package/gallery/fixtures/cycle/pdca-minimal.dgmo +6 -0
- package/gallery/fixtures/cycle/sprint-cycle-span.dgmo +17 -0
- package/gallery/fixtures/gantt-full.dgmo +2 -2
- package/gallery/fixtures/gantt.dgmo +2 -2
- package/gallery/fixtures/infra-full.dgmo +2 -2
- package/gallery/fixtures/infra.dgmo +1 -1
- package/gallery/fixtures/sequence-tags-protocols.dgmo +2 -2
- package/gallery/fixtures/sequence-tags.dgmo +2 -2
- package/gallery/fixtures/tech-radar-dense.dgmo +77 -0
- package/gallery/fixtures/tech-radar.dgmo +36 -0
- package/gallery/fixtures/timeline.dgmo +1 -1
- package/package.json +1 -1
- package/src/boxes-and-lines/collapse.ts +21 -3
- package/src/boxes-and-lines/layout.ts +360 -42
- package/src/boxes-and-lines/parser.ts +94 -11
- package/src/boxes-and-lines/renderer.ts +371 -114
- package/src/boxes-and-lines/types.ts +2 -1
- package/src/c4/layout.ts +8 -8
- package/src/c4/parser.ts +35 -2
- package/src/c4/renderer.ts +19 -3
- package/src/c4/types.ts +1 -0
- package/src/chart.ts +14 -7
- package/src/completion.ts +253 -0
- package/src/cycle/layout.ts +732 -0
- package/src/cycle/parser.ts +352 -0
- package/src/cycle/renderer.ts +539 -0
- package/src/cycle/types.ts +77 -0
- package/src/d3.ts +240 -40
- package/src/dgmo-router.ts +15 -0
- package/src/echarts.ts +7 -4
- package/src/editor/dgmo.grammar +5 -1
- package/src/editor/dgmo.grammar.js +1 -1
- package/src/editor/keywords.ts +26 -0
- package/src/gantt/parser.ts +2 -8
- package/src/graph/flowchart-parser.ts +15 -21
- package/src/graph/layout.ts +73 -9
- package/src/graph/state-collapse.ts +78 -0
- package/src/graph/state-parser.ts +5 -10
- package/src/graph/state-renderer.ts +139 -34
- package/src/index.ts +78 -0
- package/src/infra/layout.ts +218 -74
- package/src/infra/parser.ts +30 -6
- package/src/infra/renderer.ts +14 -8
- package/src/infra/types.ts +10 -3
- package/src/journey-map/layout.ts +386 -0
- package/src/journey-map/parser.ts +540 -0
- package/src/journey-map/renderer.ts +1456 -0
- package/src/journey-map/types.ts +47 -0
- package/src/kanban/parser.ts +3 -10
- package/src/kanban/renderer.ts +325 -63
- package/src/mindmap/collapse.ts +88 -0
- package/src/mindmap/layout.ts +605 -0
- package/src/mindmap/parser.ts +373 -0
- package/src/mindmap/renderer.ts +544 -0
- package/src/mindmap/text-wrap.ts +217 -0
- package/src/mindmap/types.ts +55 -0
- package/src/org/parser.ts +2 -6
- package/src/render.ts +18 -21
- package/src/sequence/renderer.ts +273 -56
- package/src/sharing.ts +3 -0
- package/src/sitemap/layout.ts +56 -18
- package/src/sitemap/parser.ts +26 -17
- package/src/sitemap/renderer.ts +34 -0
- package/src/sitemap/types.ts +1 -0
- package/src/tech-radar/index.ts +14 -0
- package/src/tech-radar/interactive.ts +1058 -0
- package/src/tech-radar/layout.ts +190 -0
- package/src/tech-radar/parser.ts +385 -0
- package/src/tech-radar/renderer.ts +1159 -0
- package/src/tech-radar/shared.ts +187 -0
- package/src/tech-radar/types.ts +81 -0
- package/src/utils/description-helpers.ts +33 -0
- package/src/utils/export-container.ts +3 -2
- package/src/utils/legend-d3.ts +1 -0
- package/src/utils/legend-layout.ts +5 -3
- package/src/utils/parsing.ts +48 -7
- package/src/utils/tag-groups.ts +46 -60
- package/src/wireframe/layout.ts +460 -0
- package/src/wireframe/parser.ts +956 -0
- package/src/wireframe/renderer.ts +1293 -0
- package/src/wireframe/types.ts +110 -0
package/dist/index.d.ts
CHANGED
|
@@ -88,6 +88,85 @@ declare function parseInArrowLabel(rawLabel: string, lineNumber: number): ParseI
|
|
|
88
88
|
*/
|
|
89
89
|
declare function matchColorParens(content: string): string | null;
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Compact view state schema (ADR-6).
|
|
93
|
+
* All fields optional. Only non-default values are encoded.
|
|
94
|
+
* `tag: null` means "user chose none"; absent `tag` means "use DSL default" (ADR-5).
|
|
95
|
+
*/
|
|
96
|
+
interface CompactViewState {
|
|
97
|
+
tag?: string | null;
|
|
98
|
+
cs?: number[];
|
|
99
|
+
cg?: string[];
|
|
100
|
+
swim?: string | null;
|
|
101
|
+
cl?: string[];
|
|
102
|
+
cc?: string[];
|
|
103
|
+
rm?: string;
|
|
104
|
+
htv?: Record<string, string[]>;
|
|
105
|
+
ha?: string[];
|
|
106
|
+
enl?: number[];
|
|
107
|
+
sem?: boolean;
|
|
108
|
+
cm?: boolean;
|
|
109
|
+
c4l?: string;
|
|
110
|
+
c4s?: string;
|
|
111
|
+
c4c?: string;
|
|
112
|
+
rps?: number;
|
|
113
|
+
spd?: number;
|
|
114
|
+
io?: Record<string, number>;
|
|
115
|
+
hd?: boolean;
|
|
116
|
+
cbd?: boolean;
|
|
117
|
+
rq?: string;
|
|
118
|
+
}
|
|
119
|
+
interface DecodedDiagramUrl {
|
|
120
|
+
dsl: string;
|
|
121
|
+
viewState: CompactViewState;
|
|
122
|
+
palette?: string;
|
|
123
|
+
theme?: 'light' | 'dark';
|
|
124
|
+
filename?: string;
|
|
125
|
+
}
|
|
126
|
+
interface EncodeDiagramUrlOptions {
|
|
127
|
+
baseUrl?: string;
|
|
128
|
+
viewState?: CompactViewState;
|
|
129
|
+
palette?: string;
|
|
130
|
+
theme?: 'light' | 'dark';
|
|
131
|
+
filename?: string;
|
|
132
|
+
}
|
|
133
|
+
type EncodeDiagramUrlResult = {
|
|
134
|
+
url: string;
|
|
135
|
+
error?: undefined;
|
|
136
|
+
} | {
|
|
137
|
+
url?: undefined;
|
|
138
|
+
error: 'too-large';
|
|
139
|
+
compressedSize: number;
|
|
140
|
+
limit: number;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Encode a CompactViewState to a compressed string for URL embedding.
|
|
144
|
+
* Returns empty string if state has no keys (ADR-4).
|
|
145
|
+
*/
|
|
146
|
+
declare function encodeViewState(state: CompactViewState): string;
|
|
147
|
+
/**
|
|
148
|
+
* Decode a compressed view state string back to CompactViewState.
|
|
149
|
+
* Returns empty object on failure (no crash).
|
|
150
|
+
*/
|
|
151
|
+
declare function decodeViewState(encoded: string): CompactViewState;
|
|
152
|
+
/**
|
|
153
|
+
* Compress a DGMO DSL string into a shareable URL.
|
|
154
|
+
* Returns `{ url }` on success, or `{ error: 'too-large', compressedSize, limit }` if the
|
|
155
|
+
* compressed payload exceeds the 8 KB limit.
|
|
156
|
+
*/
|
|
157
|
+
declare function encodeDiagramUrl(dsl: string, options?: EncodeDiagramUrlOptions): EncodeDiagramUrlResult;
|
|
158
|
+
/**
|
|
159
|
+
* Decode a DGMO DSL string and view state from a URL query string or hash.
|
|
160
|
+
* Accepts any of:
|
|
161
|
+
* - `?dgmo=<payload>&vs=<state>`
|
|
162
|
+
* - `#dgmo=<payload>&vs=<state>` (backwards compat)
|
|
163
|
+
* - `dgmo=<payload>`
|
|
164
|
+
* - `<bare payload>`
|
|
165
|
+
*
|
|
166
|
+
* Returns `{ dsl, viewState }`. The DSL is empty string on invalid input.
|
|
167
|
+
*/
|
|
168
|
+
declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
|
|
169
|
+
|
|
91
170
|
/**
|
|
92
171
|
* Render DGMO source to an SVG string.
|
|
93
172
|
*
|
|
@@ -120,6 +199,8 @@ declare function render(content: string, options?: {
|
|
|
120
199
|
activeGroup?: string;
|
|
121
200
|
hiddenAttributes?: string[];
|
|
122
201
|
};
|
|
202
|
+
/** View state for export — controls interactive state (collapse, swimlanes, etc.) */
|
|
203
|
+
viewState?: CompactViewState;
|
|
123
204
|
}): Promise<{
|
|
124
205
|
svg: string;
|
|
125
206
|
diagnostics: DgmoError[];
|
|
@@ -244,6 +325,13 @@ declare function tint(hex: string, amount: number): string;
|
|
|
244
325
|
* amount: 0 = original, 1 = base
|
|
245
326
|
*/
|
|
246
327
|
declare function shade(hex: string, base: string, amount: number): string;
|
|
328
|
+
/**
|
|
329
|
+
* Blend two hex colors by percentage.
|
|
330
|
+
* `pct` = 0 → 100% of `b`, `pct` = 100 → 100% of `a`.
|
|
331
|
+
*
|
|
332
|
+
* Used by all renderers for tinted fills and strokes.
|
|
333
|
+
*/
|
|
334
|
+
declare function mix(a: string, b: string, pct: number): string;
|
|
247
335
|
/**
|
|
248
336
|
* Pick a text color that contrasts against `bg`.
|
|
249
337
|
* Returns `darkText` when background is light (luminance > 0.179),
|
|
@@ -708,7 +796,7 @@ interface TagGroup {
|
|
|
708
796
|
lineNumber: number;
|
|
709
797
|
}
|
|
710
798
|
|
|
711
|
-
type VisualizationType = 'slope' | 'wordcloud' | 'arc' | 'timeline' | 'venn' | 'quadrant' | 'sequence';
|
|
799
|
+
type VisualizationType = 'slope' | 'wordcloud' | 'arc' | 'timeline' | 'venn' | 'quadrant' | 'sequence' | 'tech-radar' | 'cycle';
|
|
712
800
|
interface D3DataItem {
|
|
713
801
|
label: string;
|
|
714
802
|
values: number[];
|
|
@@ -886,12 +974,7 @@ declare function renderQuadrant(container: HTMLDivElement, parsed: ParsedVisuali
|
|
|
886
974
|
* Renders a D3 chart to an SVG string for export.
|
|
887
975
|
* Creates a detached DOM element, renders into it, extracts the SVG, then cleans up.
|
|
888
976
|
*/
|
|
889
|
-
declare function renderForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette?: PaletteColors,
|
|
890
|
-
collapsedNodes?: Set<string>;
|
|
891
|
-
activeTagGroup?: string | null;
|
|
892
|
-
hiddenAttributes?: Set<string>;
|
|
893
|
-
swimlaneTagGroup?: string | null;
|
|
894
|
-
}, options?: {
|
|
977
|
+
declare function renderForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette?: PaletteColors, viewState?: CompactViewState, options?: {
|
|
895
978
|
c4Level?: 'context' | 'containers' | 'components' | 'deployment';
|
|
896
979
|
c4System?: string;
|
|
897
980
|
c4Container?: string;
|
|
@@ -1187,11 +1270,18 @@ interface LayoutGroup {
|
|
|
1187
1270
|
label: string;
|
|
1188
1271
|
color?: string;
|
|
1189
1272
|
lineNumber: number;
|
|
1273
|
+
collapsed?: boolean;
|
|
1190
1274
|
x: number;
|
|
1191
1275
|
y: number;
|
|
1192
1276
|
width: number;
|
|
1193
1277
|
height: number;
|
|
1194
1278
|
}
|
|
1279
|
+
interface LayoutOptions {
|
|
1280
|
+
/** Map of group ID → number of child nodes (for collapsed groups) */
|
|
1281
|
+
collapsedChildCounts?: Map<string, number>;
|
|
1282
|
+
/** Original groups before collapse (includes collapsed ones) */
|
|
1283
|
+
originalGroups?: GraphGroup[];
|
|
1284
|
+
}
|
|
1195
1285
|
interface LayoutResult {
|
|
1196
1286
|
nodes: LayoutNode[];
|
|
1197
1287
|
edges: LayoutEdge[];
|
|
@@ -1199,7 +1289,7 @@ interface LayoutResult {
|
|
|
1199
1289
|
width: number;
|
|
1200
1290
|
height: number;
|
|
1201
1291
|
}
|
|
1202
|
-
declare function layoutGraph(graph: ParsedGraph): LayoutResult;
|
|
1292
|
+
declare function layoutGraph(graph: ParsedGraph, options?: LayoutOptions): LayoutResult;
|
|
1203
1293
|
|
|
1204
1294
|
declare function renderState(container: HTMLDivElement, graph: ParsedGraph, layout: LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
|
|
1205
1295
|
width?: number;
|
|
@@ -1207,6 +1297,23 @@ declare function renderState(container: HTMLDivElement, graph: ParsedGraph, layo
|
|
|
1207
1297
|
}): void;
|
|
1208
1298
|
declare function renderStateForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
|
|
1209
1299
|
|
|
1300
|
+
interface StateCollapseResult {
|
|
1301
|
+
parsed: ParsedGraph;
|
|
1302
|
+
collapsedChildCounts: Map<string, number>;
|
|
1303
|
+
originalGroups: GraphGroup[];
|
|
1304
|
+
}
|
|
1305
|
+
/**
|
|
1306
|
+
* Pure transform: returns a new ParsedGraph with collapsed groups
|
|
1307
|
+
* removed from the diagram content.
|
|
1308
|
+
*
|
|
1309
|
+
* - Children of collapsed groups removed from nodes
|
|
1310
|
+
* - Edges redirected: endpoints in collapsed groups → group ID
|
|
1311
|
+
* - Internal edges (both in same collapsed group) dropped
|
|
1312
|
+
* - Duplicate edges (same source, target, label) deduplicated
|
|
1313
|
+
* - Collapsed groups removed from groups[] (layout handles as nodes)
|
|
1314
|
+
*/
|
|
1315
|
+
declare function collapseStateGroups(parsed: ParsedGraph, collapsedGroups: Set<string>): StateCollapseResult;
|
|
1316
|
+
|
|
1210
1317
|
type ClassModifier = 'abstract' | 'interface' | 'enum';
|
|
1211
1318
|
type MemberVisibility = 'public' | 'private' | 'protected';
|
|
1212
1319
|
type RelationshipType = 'extends' | 'implements' | 'composes' | 'aggregates' | 'depends' | 'associates';
|
|
@@ -1539,6 +1646,9 @@ interface KanbanInteractiveOptions {
|
|
|
1539
1646
|
activeTagGroup?: string | null;
|
|
1540
1647
|
currentSwimlaneGroup?: string | null;
|
|
1541
1648
|
onSwimlaneChange?: (group: string | null) => void;
|
|
1649
|
+
collapsedLanes?: Set<string>;
|
|
1650
|
+
collapsedColumns?: Set<string>;
|
|
1651
|
+
compactMeta?: boolean;
|
|
1542
1652
|
}
|
|
1543
1653
|
declare function renderKanban(container: HTMLElement, parsed: ParsedKanban, palette: PaletteColors, isDark: boolean, options?: KanbanInteractiveOptions): void;
|
|
1544
1654
|
declare function renderKanbanForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
|
|
@@ -1567,6 +1677,7 @@ interface C4Element {
|
|
|
1567
1677
|
type: C4ElementType;
|
|
1568
1678
|
shape: C4Shape;
|
|
1569
1679
|
metadata: Record<string, string>;
|
|
1680
|
+
description?: string[];
|
|
1570
1681
|
children: C4Element[];
|
|
1571
1682
|
groups: C4Group[];
|
|
1572
1683
|
relationships: C4Relationship[];
|
|
@@ -1724,7 +1835,7 @@ interface BLNode {
|
|
|
1724
1835
|
label: string;
|
|
1725
1836
|
lineNumber: number;
|
|
1726
1837
|
metadata: Record<string, string>;
|
|
1727
|
-
description?: string;
|
|
1838
|
+
description?: string[];
|
|
1728
1839
|
}
|
|
1729
1840
|
interface BLEdge {
|
|
1730
1841
|
source: string;
|
|
@@ -1739,6 +1850,7 @@ interface BLGroup {
|
|
|
1739
1850
|
children: string[];
|
|
1740
1851
|
lineNumber: number;
|
|
1741
1852
|
metadata: Record<string, string>;
|
|
1853
|
+
parentGroup?: string;
|
|
1742
1854
|
}
|
|
1743
1855
|
interface ParsedBoxesAndLines {
|
|
1744
1856
|
type: 'boxes-and-lines';
|
|
@@ -1802,6 +1914,8 @@ interface BLLayoutResult {
|
|
|
1802
1914
|
declare function layoutBoxesAndLines(parsed: ParsedBoxesAndLines, collapseInfo?: {
|
|
1803
1915
|
collapsedChildCounts: Map<string, number>;
|
|
1804
1916
|
originalGroups: BLGroup[];
|
|
1917
|
+
}, layoutOptions?: {
|
|
1918
|
+
hideDescriptions?: boolean;
|
|
1805
1919
|
}): BLLayoutResult;
|
|
1806
1920
|
|
|
1807
1921
|
interface BLRenderOptions {
|
|
@@ -1812,6 +1926,10 @@ interface BLRenderOptions {
|
|
|
1812
1926
|
};
|
|
1813
1927
|
activeTagGroup?: string | null;
|
|
1814
1928
|
hiddenTagValues?: Map<string, Set<string>>;
|
|
1929
|
+
hideDescriptions?: boolean;
|
|
1930
|
+
controlsExpanded?: boolean;
|
|
1931
|
+
onToggleDescriptions?: (active: boolean) => void;
|
|
1932
|
+
onToggleControlsExpand?: () => void;
|
|
1815
1933
|
}
|
|
1816
1934
|
declare function renderBoxesAndLines(container: HTMLDivElement, parsed: ParsedBoxesAndLines, layout: BLLayoutResult, palette: PaletteColors, isDark: boolean, options?: BLRenderOptions): void;
|
|
1817
1935
|
declare function renderBoxesAndLinesForExport(container: HTMLDivElement, parsed: ParsedBoxesAndLines, layout: BLLayoutResult, palette: PaletteColors, isDark: boolean, options?: {
|
|
@@ -1820,6 +1938,7 @@ declare function renderBoxesAndLinesForExport(container: HTMLDivElement, parsed:
|
|
|
1820
1938
|
height: number;
|
|
1821
1939
|
};
|
|
1822
1940
|
activeTagGroup?: string | null;
|
|
1941
|
+
hiddenTagValues?: Map<string, Set<string>>;
|
|
1823
1942
|
}): void;
|
|
1824
1943
|
|
|
1825
1944
|
interface BLCollapseResult {
|
|
@@ -1845,6 +1964,7 @@ interface SitemapNode {
|
|
|
1845
1964
|
metadata: Record<string, string>;
|
|
1846
1965
|
children: SitemapNode[];
|
|
1847
1966
|
parentId: string | null;
|
|
1967
|
+
description?: string[];
|
|
1848
1968
|
/** True for [Group Name] container nodes */
|
|
1849
1969
|
isContainer: boolean;
|
|
1850
1970
|
lineNumber: number;
|
|
@@ -1886,6 +2006,7 @@ interface SitemapLayoutNode {
|
|
|
1886
2006
|
metadata: Record<string, string>;
|
|
1887
2007
|
/** Original (unfiltered) metadata for tag-based coloring and hover dimming */
|
|
1888
2008
|
tagMetadata: Record<string, string>;
|
|
2009
|
+
description?: string[];
|
|
1889
2010
|
isContainer: boolean;
|
|
1890
2011
|
lineNumber: number;
|
|
1891
2012
|
color?: string;
|
|
@@ -1984,7 +2105,7 @@ interface InfraNode {
|
|
|
1984
2105
|
groupId: string | null;
|
|
1985
2106
|
tags: Record<string, string>;
|
|
1986
2107
|
isEdge: boolean;
|
|
1987
|
-
description?: string;
|
|
2108
|
+
description?: string[];
|
|
1988
2109
|
lineNumber: number;
|
|
1989
2110
|
}
|
|
1990
2111
|
interface InfraEdge {
|
|
@@ -2080,7 +2201,7 @@ interface ComputedInfraNode {
|
|
|
2080
2201
|
};
|
|
2081
2202
|
properties: InfraProperty[];
|
|
2082
2203
|
tags: Record<string, string>;
|
|
2083
|
-
description?: string;
|
|
2204
|
+
description?: string[];
|
|
2084
2205
|
lineNumber: number;
|
|
2085
2206
|
}
|
|
2086
2207
|
interface ComputedInfraEdge {
|
|
@@ -2161,7 +2282,7 @@ interface InfraLayoutNode {
|
|
|
2161
2282
|
properties: ComputedInfraNode['properties'];
|
|
2162
2283
|
queueMetrics?: ComputedInfraNode['queueMetrics'];
|
|
2163
2284
|
tags: Record<string, string>;
|
|
2164
|
-
description?: string;
|
|
2285
|
+
description?: string[];
|
|
2165
2286
|
lineNumber: number;
|
|
2166
2287
|
}
|
|
2167
2288
|
interface InfraLayoutEdge {
|
|
@@ -2466,6 +2587,509 @@ interface CollapsedOrgResult {
|
|
|
2466
2587
|
}
|
|
2467
2588
|
declare function collapseOrgTree(original: ParsedOrg, collapsedIds: Set<string>): CollapsedOrgResult;
|
|
2468
2589
|
|
|
2590
|
+
interface MindmapNode {
|
|
2591
|
+
id: string;
|
|
2592
|
+
label: string;
|
|
2593
|
+
description?: string[];
|
|
2594
|
+
metadata: Record<string, string>;
|
|
2595
|
+
children: MindmapNode[];
|
|
2596
|
+
parentId: string | null;
|
|
2597
|
+
lineNumber: number;
|
|
2598
|
+
color?: string;
|
|
2599
|
+
collapsed?: boolean;
|
|
2600
|
+
}
|
|
2601
|
+
interface ParsedMindmap {
|
|
2602
|
+
title: string | null;
|
|
2603
|
+
titleLineNumber: number | null;
|
|
2604
|
+
roots: MindmapNode[];
|
|
2605
|
+
tagGroups: TagGroup[];
|
|
2606
|
+
options: Record<string, string>;
|
|
2607
|
+
diagnostics: DgmoError[];
|
|
2608
|
+
error: string | null;
|
|
2609
|
+
}
|
|
2610
|
+
interface MindmapLayoutNode {
|
|
2611
|
+
id: string;
|
|
2612
|
+
label: string;
|
|
2613
|
+
description?: string[];
|
|
2614
|
+
metadata: Record<string, string>;
|
|
2615
|
+
lineNumber: number;
|
|
2616
|
+
color?: string;
|
|
2617
|
+
x: number;
|
|
2618
|
+
y: number;
|
|
2619
|
+
width: number;
|
|
2620
|
+
height: number;
|
|
2621
|
+
depth: number;
|
|
2622
|
+
angle: number;
|
|
2623
|
+
radius: number;
|
|
2624
|
+
hiddenCount?: number;
|
|
2625
|
+
hasChildren?: boolean;
|
|
2626
|
+
}
|
|
2627
|
+
interface MindmapLayoutEdge {
|
|
2628
|
+
sourceId: string;
|
|
2629
|
+
targetId: string;
|
|
2630
|
+
path: string;
|
|
2631
|
+
}
|
|
2632
|
+
interface MindmapLayoutResult {
|
|
2633
|
+
nodes: MindmapLayoutNode[];
|
|
2634
|
+
edges: MindmapLayoutEdge[];
|
|
2635
|
+
width: number;
|
|
2636
|
+
height: number;
|
|
2637
|
+
}
|
|
2638
|
+
|
|
2639
|
+
declare function parseMindmap(content: string, palette?: PaletteColors): ParsedMindmap;
|
|
2640
|
+
|
|
2641
|
+
declare function layoutMindmap(parsed: ParsedMindmap, palette: PaletteColors, options?: {
|
|
2642
|
+
interactive?: boolean;
|
|
2643
|
+
hiddenCounts?: Map<string, number>;
|
|
2644
|
+
activeTagGroup?: string | null;
|
|
2645
|
+
hideDescriptions?: boolean;
|
|
2646
|
+
}): MindmapLayoutResult;
|
|
2647
|
+
|
|
2648
|
+
declare function renderMindmap(container: HTMLDivElement, parsed: ParsedMindmap, layout: MindmapLayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
|
|
2649
|
+
width?: number;
|
|
2650
|
+
height?: number;
|
|
2651
|
+
}, onToggleNode?: (nodeId: string) => void, hideDescriptions?: boolean, activeTagGroup?: string | null, options?: {
|
|
2652
|
+
colorByDepth?: boolean;
|
|
2653
|
+
onToggleColorByDepth?: (active: boolean) => void;
|
|
2654
|
+
onToggleDescriptions?: (active: boolean) => void;
|
|
2655
|
+
controlsExpanded?: boolean;
|
|
2656
|
+
onToggleControlsExpand?: () => void;
|
|
2657
|
+
}): void;
|
|
2658
|
+
declare function renderMindmapForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
|
|
2659
|
+
|
|
2660
|
+
interface CollapsedMindmapResult {
|
|
2661
|
+
/** Roots with collapsed subtrees pruned (deep-cloned, never mutates original) */
|
|
2662
|
+
roots: MindmapNode[];
|
|
2663
|
+
/** nodeId → count of hidden descendants */
|
|
2664
|
+
hiddenCounts: Map<string, number>;
|
|
2665
|
+
}
|
|
2666
|
+
declare function collapseMindmapTree(roots: MindmapNode[], collapsedIds: Set<string>): CollapsedMindmapResult;
|
|
2667
|
+
|
|
2668
|
+
/**
|
|
2669
|
+
* All wireframe element types.
|
|
2670
|
+
* Visual-mnemonic elements are inferred from bracket syntax;
|
|
2671
|
+
* keyword elements use a small vocabulary (9 keywords).
|
|
2672
|
+
*/
|
|
2673
|
+
type WireframeElementType = 'group' | 'textInput' | 'button' | 'dropdown' | 'checkbox' | 'radio' | 'heading' | 'divider' | 'text' | 'listItem' | 'nav' | 'tabs' | 'table' | 'image' | 'modal' | 'skeleton' | 'alert' | 'progress' | 'chart';
|
|
2674
|
+
/**
|
|
2675
|
+
* Single flat interface for all wireframe elements (ADR-8).
|
|
2676
|
+
* No separate WireframeGroup — all elements carry group fields
|
|
2677
|
+
* with sensible defaults (isContainer=false, orientation='vertical', isSkeleton=false).
|
|
2678
|
+
*/
|
|
2679
|
+
interface WireframeElement {
|
|
2680
|
+
id: string;
|
|
2681
|
+
type: WireframeElementType;
|
|
2682
|
+
/** Display label / placeholder text / heading text */
|
|
2683
|
+
label: string;
|
|
2684
|
+
/** Child elements (non-empty only when isContainer=true) */
|
|
2685
|
+
children: WireframeElement[];
|
|
2686
|
+
/** Pipe metadata key-value pairs */
|
|
2687
|
+
metadata: Record<string, string>;
|
|
2688
|
+
/** State keywords: disabled, active, ghost, destructive, etc. */
|
|
2689
|
+
states: string[];
|
|
2690
|
+
/** Free-text annotations from pipe metadata */
|
|
2691
|
+
annotations: string[];
|
|
2692
|
+
/** 1-based line number in source */
|
|
2693
|
+
lineNumber: number;
|
|
2694
|
+
/** Measured indentation (column) */
|
|
2695
|
+
indent: number;
|
|
2696
|
+
/** True when element has children (set during parse via indent stack) */
|
|
2697
|
+
isContainer: boolean;
|
|
2698
|
+
/** Stacking direction for group children */
|
|
2699
|
+
orientation: 'vertical' | 'horizontal';
|
|
2700
|
+
/** True when inside a skeleton block */
|
|
2701
|
+
isSkeleton: boolean;
|
|
2702
|
+
/** Heading level: 1 for `#`, 2 for `##` */
|
|
2703
|
+
headingLevel?: number;
|
|
2704
|
+
/** Dropdown options (for type='dropdown') */
|
|
2705
|
+
options?: string[];
|
|
2706
|
+
/** Checked state (for type='checkbox') */
|
|
2707
|
+
checked?: boolean;
|
|
2708
|
+
/** Selected state (for type='radio') */
|
|
2709
|
+
selected?: boolean;
|
|
2710
|
+
/** Image hint: 'default' | 'round' | 'wide' */
|
|
2711
|
+
imageHint?: 'default' | 'round' | 'wide';
|
|
2712
|
+
/** Progress value 0-100 (for type='progress') */
|
|
2713
|
+
progressValue?: number;
|
|
2714
|
+
/** Chart hint: 'line' | 'bar' | 'pie' */
|
|
2715
|
+
chartHint?: 'line' | 'bar' | 'pie';
|
|
2716
|
+
/** Table dimensions for skeleton shorthand (for type='table') */
|
|
2717
|
+
tableRows?: number;
|
|
2718
|
+
tableCols?: number;
|
|
2719
|
+
/** Table header row labels (for type='table') */
|
|
2720
|
+
tableHeaders?: string[];
|
|
2721
|
+
/** Table data rows — each row is an array of cell content strings (for type='table') */
|
|
2722
|
+
tableData?: string[][];
|
|
2723
|
+
/** Inline elements on the same line (multi-element line) */
|
|
2724
|
+
inlineElements?: WireframeElement[];
|
|
2725
|
+
/** Label element for label-field pairing */
|
|
2726
|
+
labelFor?: WireframeElement;
|
|
2727
|
+
/** Color from tag system */
|
|
2728
|
+
color?: string;
|
|
2729
|
+
/** Field variant: password, textarea */
|
|
2730
|
+
fieldVariant?: 'password' | 'textarea';
|
|
2731
|
+
}
|
|
2732
|
+
/** Form factor / layout mode */
|
|
2733
|
+
type WireframeFormFactor = 'desktop' | 'mobile';
|
|
2734
|
+
interface ParsedWireframe {
|
|
2735
|
+
title: string | null;
|
|
2736
|
+
titleLineNumber: number | null;
|
|
2737
|
+
formFactor: WireframeFormFactor;
|
|
2738
|
+
/** Top-level elements (roots of the hierarchy) */
|
|
2739
|
+
roots: WireframeElement[];
|
|
2740
|
+
/** Modal elements (rendered separately below main) */
|
|
2741
|
+
modals: WireframeElement[];
|
|
2742
|
+
tagGroups: TagGroup[];
|
|
2743
|
+
options: Record<string, string>;
|
|
2744
|
+
diagnostics: DgmoError[];
|
|
2745
|
+
error: string | null;
|
|
2746
|
+
}
|
|
2747
|
+
|
|
2748
|
+
declare function parseWireframe(content: string): ParsedWireframe;
|
|
2749
|
+
|
|
2750
|
+
interface WireframeLayoutNode {
|
|
2751
|
+
id: string;
|
|
2752
|
+
x: number;
|
|
2753
|
+
y: number;
|
|
2754
|
+
width: number;
|
|
2755
|
+
height: number;
|
|
2756
|
+
element: WireframeElement;
|
|
2757
|
+
children: WireframeLayoutNode[];
|
|
2758
|
+
/** For label-field pairs: the x offset where fields align */
|
|
2759
|
+
fieldAlignX?: number;
|
|
2760
|
+
}
|
|
2761
|
+
interface WireframeLayout {
|
|
2762
|
+
width: number;
|
|
2763
|
+
height: number;
|
|
2764
|
+
titleHeight: number;
|
|
2765
|
+
nodes: WireframeLayoutNode[];
|
|
2766
|
+
modalNodes: WireframeLayoutNode[];
|
|
2767
|
+
}
|
|
2768
|
+
declare function layoutWireframe(parsed: ParsedWireframe, _options?: Record<string, string>, overrideWidth?: number, showGroupLabels?: boolean): WireframeLayout;
|
|
2769
|
+
|
|
2770
|
+
interface WireframeRenderOptions {
|
|
2771
|
+
exportDims?: {
|
|
2772
|
+
width?: number;
|
|
2773
|
+
height?: number;
|
|
2774
|
+
};
|
|
2775
|
+
theme?: string;
|
|
2776
|
+
onClickItem?: (lineNumber: number) => void;
|
|
2777
|
+
/** Controls group state */
|
|
2778
|
+
controlsExpanded?: boolean;
|
|
2779
|
+
fitWidth?: boolean;
|
|
2780
|
+
showGroupLabels?: boolean;
|
|
2781
|
+
onControlsExpand?: () => void;
|
|
2782
|
+
onControlsToggle?: (id: string, active: boolean) => void;
|
|
2783
|
+
}
|
|
2784
|
+
declare function renderWireframe(container: HTMLDivElement, parsed: ParsedWireframe, layout: WireframeLayout, palette: PaletteColors, isDark: boolean, _onClickItem?: (lineNumber: number) => void, exportDims?: {
|
|
2785
|
+
width?: number;
|
|
2786
|
+
height?: number;
|
|
2787
|
+
}, theme?: string, options?: WireframeRenderOptions): void;
|
|
2788
|
+
|
|
2789
|
+
type QuadrantPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
2790
|
+
type BlipTrend = 'new' | 'up' | 'down' | 'stable';
|
|
2791
|
+
interface TechRadarRing {
|
|
2792
|
+
name: string;
|
|
2793
|
+
alias: string | null;
|
|
2794
|
+
lineNumber: number;
|
|
2795
|
+
}
|
|
2796
|
+
interface TechRadarBlip {
|
|
2797
|
+
name: string;
|
|
2798
|
+
ring: string;
|
|
2799
|
+
trend: BlipTrend | null;
|
|
2800
|
+
description: string[];
|
|
2801
|
+
lineNumber: number;
|
|
2802
|
+
/** Assigned after parsing — global numbering across all quadrants. */
|
|
2803
|
+
globalNumber: number;
|
|
2804
|
+
}
|
|
2805
|
+
interface TechRadarQuadrant {
|
|
2806
|
+
name: string;
|
|
2807
|
+
position: QuadrantPosition;
|
|
2808
|
+
color: string | null;
|
|
2809
|
+
lineNumber: number;
|
|
2810
|
+
blips: TechRadarBlip[];
|
|
2811
|
+
}
|
|
2812
|
+
interface ParsedTechRadar {
|
|
2813
|
+
type: 'tech-radar';
|
|
2814
|
+
title: string;
|
|
2815
|
+
titleLineNumber: number;
|
|
2816
|
+
rings: TechRadarRing[];
|
|
2817
|
+
quadrants: TechRadarQuadrant[];
|
|
2818
|
+
options: Record<string, string>;
|
|
2819
|
+
diagnostics: DgmoError[];
|
|
2820
|
+
error: string | null;
|
|
2821
|
+
}
|
|
2822
|
+
interface TechRadarLayoutPoint {
|
|
2823
|
+
blip: TechRadarBlip;
|
|
2824
|
+
x: number;
|
|
2825
|
+
y: number;
|
|
2826
|
+
quadrantIndex: number;
|
|
2827
|
+
ringIndex: number;
|
|
2828
|
+
}
|
|
2829
|
+
interface TechRadarRenderOptions {
|
|
2830
|
+
/** Whether the blip listing is visible. Default: true for export, false for interactive. */
|
|
2831
|
+
showListing?: boolean;
|
|
2832
|
+
/** Callback when the listing toggle is clicked. */
|
|
2833
|
+
onToggleListing?: (show: boolean) => void;
|
|
2834
|
+
/** Whether the controls legend capsule is expanded. */
|
|
2835
|
+
controlsExpanded?: boolean;
|
|
2836
|
+
/** Callback when the controls gear pill is clicked (expand/collapse). */
|
|
2837
|
+
onToggleControlsExpand?: () => void;
|
|
2838
|
+
/** Active legend group name (e.g. 'Trends'). */
|
|
2839
|
+
activeLegendGroup?: string | null;
|
|
2840
|
+
/** Callback when a legend group pill is toggled. */
|
|
2841
|
+
onLegendGroupToggle?: (groupName: string) => void;
|
|
2842
|
+
/** Active line from the editor cursor — triggers popover/expansion for that blip. */
|
|
2843
|
+
activeLine?: number | null;
|
|
2844
|
+
}
|
|
2845
|
+
|
|
2846
|
+
declare function parseTechRadar(content: string): ParsedTechRadar;
|
|
2847
|
+
|
|
2848
|
+
/**
|
|
2849
|
+
* Compute deterministic, non-overlapping blip positions for a tech radar.
|
|
2850
|
+
*
|
|
2851
|
+
* Each blip is positioned within its ring+quadrant slice using polar coordinates,
|
|
2852
|
+
* then converted to cartesian. The algorithm is:
|
|
2853
|
+
* - Stable: changes in one slice don't affect other slices
|
|
2854
|
+
* - Deterministic: same input always produces same output
|
|
2855
|
+
* - Collision-avoiding: nudges overlapping blips radially within their ring band
|
|
2856
|
+
*/
|
|
2857
|
+
declare function computeRadarLayout(parsed: ParsedTechRadar, width: number, height: number): TechRadarLayoutPoint[];
|
|
2858
|
+
/**
|
|
2859
|
+
* Get the center and max radius for a radar at the given dimensions.
|
|
2860
|
+
* Useful for renderers that need these values independently.
|
|
2861
|
+
*/
|
|
2862
|
+
declare function getRadarGeometry(width: number, height: number, ringCount: number): {
|
|
2863
|
+
cx: number;
|
|
2864
|
+
cy: number;
|
|
2865
|
+
maxRadius: number;
|
|
2866
|
+
ringBandWidth: number;
|
|
2867
|
+
};
|
|
2868
|
+
|
|
2869
|
+
declare function renderTechRadar(container: HTMLDivElement, parsed: ParsedTechRadar, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, viewState?: CompactViewState, options?: TechRadarRenderOptions): void;
|
|
2870
|
+
declare function renderTechRadarForExport(container: HTMLDivElement, parsed: ParsedTechRadar, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, viewState?: CompactViewState): void;
|
|
2871
|
+
|
|
2872
|
+
declare function renderQuadrantFocus(container: HTMLDivElement, parsed: ParsedTechRadar, quadrantPosition: QuadrantPosition, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, _options?: TechRadarRenderOptions): void;
|
|
2873
|
+
declare function renderQuadrantFocusForExport(container: HTMLDivElement, parsed: ParsedTechRadar, quadrantPosition: QuadrantPosition, palette: PaletteColors, isDark: boolean, exportDims: {
|
|
2874
|
+
width: number;
|
|
2875
|
+
height: number;
|
|
2876
|
+
}): void;
|
|
2877
|
+
|
|
2878
|
+
interface CycleNode {
|
|
2879
|
+
label: string;
|
|
2880
|
+
lineNumber: number;
|
|
2881
|
+
color?: string;
|
|
2882
|
+
span: number;
|
|
2883
|
+
description: string[];
|
|
2884
|
+
metadata: Record<string, string>;
|
|
2885
|
+
}
|
|
2886
|
+
interface CycleEdge {
|
|
2887
|
+
sourceIndex: number;
|
|
2888
|
+
targetIndex: number;
|
|
2889
|
+
label?: string;
|
|
2890
|
+
color?: string;
|
|
2891
|
+
width?: number;
|
|
2892
|
+
description: string[];
|
|
2893
|
+
lineNumber?: number;
|
|
2894
|
+
metadata: Record<string, string>;
|
|
2895
|
+
}
|
|
2896
|
+
interface ParsedCycle {
|
|
2897
|
+
type: 'cycle';
|
|
2898
|
+
title: string;
|
|
2899
|
+
titleLineNumber: number;
|
|
2900
|
+
nodes: CycleNode[];
|
|
2901
|
+
edges: CycleEdge[];
|
|
2902
|
+
direction: 'clockwise' | 'counterclockwise';
|
|
2903
|
+
options: Record<string, string>;
|
|
2904
|
+
diagnostics: DgmoError[];
|
|
2905
|
+
error: string | null;
|
|
2906
|
+
}
|
|
2907
|
+
interface CycleLayoutNode {
|
|
2908
|
+
label: string;
|
|
2909
|
+
x: number;
|
|
2910
|
+
y: number;
|
|
2911
|
+
angle: number;
|
|
2912
|
+
width: number;
|
|
2913
|
+
height: number;
|
|
2914
|
+
/** Pre-wrapped description lines (fit to node width). Empty if no descriptions. */
|
|
2915
|
+
wrappedDesc: string[];
|
|
2916
|
+
/** Whether this node should be rendered as a circle. */
|
|
2917
|
+
isCircle: boolean;
|
|
2918
|
+
}
|
|
2919
|
+
interface CycleLayoutEdge {
|
|
2920
|
+
sourceIndex: number;
|
|
2921
|
+
targetIndex: number;
|
|
2922
|
+
path: string;
|
|
2923
|
+
labelX: number;
|
|
2924
|
+
labelY: number;
|
|
2925
|
+
/** Angle of the label position on the circle (radians), for text-anchor. */
|
|
2926
|
+
labelAngle: number;
|
|
2927
|
+
label?: string;
|
|
2928
|
+
}
|
|
2929
|
+
interface CycleLayoutResult {
|
|
2930
|
+
nodes: CycleLayoutNode[];
|
|
2931
|
+
edges: CycleLayoutEdge[];
|
|
2932
|
+
cx: number;
|
|
2933
|
+
cy: number;
|
|
2934
|
+
radius: number;
|
|
2935
|
+
width: number;
|
|
2936
|
+
height: number;
|
|
2937
|
+
/** Scale factor applied to nodes (1 = no scaling, <1 = shrunk to fit). */
|
|
2938
|
+
scale: number;
|
|
2939
|
+
}
|
|
2940
|
+
|
|
2941
|
+
/**
|
|
2942
|
+
* Parse a `.dgmo` cycle diagram document.
|
|
2943
|
+
*
|
|
2944
|
+
* Syntax:
|
|
2945
|
+
* ```
|
|
2946
|
+
* cycle Title
|
|
2947
|
+
*
|
|
2948
|
+
* direction-counterclockwise
|
|
2949
|
+
*
|
|
2950
|
+
* NodeLabel | color: blue, span: 3
|
|
2951
|
+
* Description line (indented under node)
|
|
2952
|
+
* -Label-> | color: red, width: 6
|
|
2953
|
+
* Edge description (indented under edge)
|
|
2954
|
+
* ```
|
|
2955
|
+
*/
|
|
2956
|
+
declare function parseCycle(content: string): ParsedCycle;
|
|
2957
|
+
|
|
2958
|
+
/**
|
|
2959
|
+
* Compute cycle diagram layout: positions nodes equidistant (or span-weighted)
|
|
2960
|
+
* on a circle, and generates curved edge paths between consecutive nodes.
|
|
2961
|
+
*/
|
|
2962
|
+
declare function computeCycleLayout(parsed: ParsedCycle, options?: {
|
|
2963
|
+
width?: number;
|
|
2964
|
+
height?: number;
|
|
2965
|
+
hideDescriptions?: boolean;
|
|
2966
|
+
}): CycleLayoutResult;
|
|
2967
|
+
|
|
2968
|
+
interface CycleRenderOptions {
|
|
2969
|
+
onClickItem?: (lineNumber: number) => void;
|
|
2970
|
+
exportDims?: D3ExportDimensions;
|
|
2971
|
+
viewState?: CompactViewState;
|
|
2972
|
+
hideDescriptions?: boolean;
|
|
2973
|
+
controlsExpanded?: boolean;
|
|
2974
|
+
onToggleDescriptions?: (active: boolean) => void;
|
|
2975
|
+
onToggleControlsExpand?: () => void;
|
|
2976
|
+
}
|
|
2977
|
+
/**
|
|
2978
|
+
* Render a cycle diagram into the given container.
|
|
2979
|
+
*/
|
|
2980
|
+
declare function renderCycle(container: HTMLDivElement, parsed: ParsedCycle, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, viewState?: CompactViewState, renderOptions?: CycleRenderOptions): void;
|
|
2981
|
+
/**
|
|
2982
|
+
* Render for CLI/export (no click handlers).
|
|
2983
|
+
*/
|
|
2984
|
+
declare function renderCycleForExport(container: HTMLDivElement, parsed: ParsedCycle, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, viewState?: CompactViewState): void;
|
|
2985
|
+
|
|
2986
|
+
interface JourneyMapAnnotation {
|
|
2987
|
+
type: 'pain' | 'opportunity' | 'thought';
|
|
2988
|
+
text: string;
|
|
2989
|
+
}
|
|
2990
|
+
interface JourneyMapStep {
|
|
2991
|
+
id: string;
|
|
2992
|
+
title: string;
|
|
2993
|
+
score?: number;
|
|
2994
|
+
emotionLabel?: string;
|
|
2995
|
+
tags: Record<string, string>;
|
|
2996
|
+
annotations: JourneyMapAnnotation[];
|
|
2997
|
+
description?: string;
|
|
2998
|
+
lineNumber: number;
|
|
2999
|
+
endLineNumber: number;
|
|
3000
|
+
}
|
|
3001
|
+
interface JourneyMapPhase {
|
|
3002
|
+
id: string;
|
|
3003
|
+
name: string;
|
|
3004
|
+
steps: JourneyMapStep[];
|
|
3005
|
+
lineNumber: number;
|
|
3006
|
+
}
|
|
3007
|
+
interface JourneyMapPersona {
|
|
3008
|
+
name: string;
|
|
3009
|
+
description?: string;
|
|
3010
|
+
color?: string;
|
|
3011
|
+
lineNumber: number;
|
|
3012
|
+
}
|
|
3013
|
+
interface ParsedJourneyMap {
|
|
3014
|
+
type: 'journey-map';
|
|
3015
|
+
title?: string;
|
|
3016
|
+
titleLineNumber?: number;
|
|
3017
|
+
persona?: JourneyMapPersona;
|
|
3018
|
+
phases: JourneyMapPhase[];
|
|
3019
|
+
/** Flat-mode steps (not inside any phase) */
|
|
3020
|
+
steps: JourneyMapStep[];
|
|
3021
|
+
tagGroups: TagGroup[];
|
|
3022
|
+
options: Record<string, string>;
|
|
3023
|
+
diagnostics: DgmoError[];
|
|
3024
|
+
error: string | null;
|
|
3025
|
+
}
|
|
3026
|
+
|
|
3027
|
+
declare function parseJourneyMap(content: string, palette?: PaletteColors): ParsedJourneyMap;
|
|
3028
|
+
|
|
3029
|
+
interface CurvePoint {
|
|
3030
|
+
x: number;
|
|
3031
|
+
y: number;
|
|
3032
|
+
score: number;
|
|
3033
|
+
emotionLabel?: string;
|
|
3034
|
+
stepIndex: number;
|
|
3035
|
+
}
|
|
3036
|
+
interface StepLayout {
|
|
3037
|
+
x: number;
|
|
3038
|
+
y: number;
|
|
3039
|
+
width: number;
|
|
3040
|
+
height: number;
|
|
3041
|
+
step: JourneyMapStep;
|
|
3042
|
+
color: string;
|
|
3043
|
+
}
|
|
3044
|
+
interface PhaseLayout {
|
|
3045
|
+
x: number;
|
|
3046
|
+
y: number;
|
|
3047
|
+
width: number;
|
|
3048
|
+
height: number;
|
|
3049
|
+
phase: JourneyMapPhase;
|
|
3050
|
+
headerColor: string;
|
|
3051
|
+
stepLayouts: StepLayout[];
|
|
3052
|
+
}
|
|
3053
|
+
interface JourneyMapLayout {
|
|
3054
|
+
phases: PhaseLayout[];
|
|
3055
|
+
flatStepLayouts: StepLayout[];
|
|
3056
|
+
curvePoints: CurvePoint[];
|
|
3057
|
+
totalWidth: number;
|
|
3058
|
+
totalHeight: number;
|
|
3059
|
+
curveAreaTop: number;
|
|
3060
|
+
curveAreaBottom: number;
|
|
3061
|
+
cardAreaTop: number;
|
|
3062
|
+
personaHeight: number;
|
|
3063
|
+
titleHeight: number;
|
|
3064
|
+
/** Whether any step has thought annotations */
|
|
3065
|
+
hasThoughts: boolean;
|
|
3066
|
+
}
|
|
3067
|
+
declare function layoutJourneyMap(parsed: ParsedJourneyMap, palette: PaletteColors, options?: {
|
|
3068
|
+
exportDims?: {
|
|
3069
|
+
width: number;
|
|
3070
|
+
height: number;
|
|
3071
|
+
};
|
|
3072
|
+
collapsedPhases?: Set<string>;
|
|
3073
|
+
}): JourneyMapLayout;
|
|
3074
|
+
|
|
3075
|
+
interface JourneyMapInteractiveOptions {
|
|
3076
|
+
onNavigateToLine?: (line: number) => void;
|
|
3077
|
+
exportDims?: {
|
|
3078
|
+
width: number;
|
|
3079
|
+
height: number;
|
|
3080
|
+
};
|
|
3081
|
+
activeTagGroup?: string | null;
|
|
3082
|
+
onActiveTagGroupChange?: (group: string | null) => void;
|
|
3083
|
+
/** Current editor cursor line — highlights the matching face + card, dims the rest */
|
|
3084
|
+
currentLine?: number | null;
|
|
3085
|
+
/** Set of collapsed phase names */
|
|
3086
|
+
collapsedPhases?: Set<string>;
|
|
3087
|
+
/** Called when a phase is toggled */
|
|
3088
|
+
onPhaseToggle?: (phaseName: string) => void;
|
|
3089
|
+
}
|
|
3090
|
+
declare function renderJourneyMap(container: HTMLElement, parsed: ParsedJourneyMap, palette: PaletteColors, isDark: boolean, options?: JourneyMapInteractiveOptions): void;
|
|
3091
|
+
declare function renderJourneyMapForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
|
|
3092
|
+
|
|
2469
3093
|
/**
|
|
2470
3094
|
* Async or sync file reader. Receives an absolute path, returns content.
|
|
2471
3095
|
* Throwing means "file not found".
|
|
@@ -2519,6 +3143,10 @@ interface SequenceRenderOptions {
|
|
|
2519
3143
|
expandedNoteLines?: Set<number>;
|
|
2520
3144
|
exportWidth?: number;
|
|
2521
3145
|
activeTagGroup?: string | null;
|
|
3146
|
+
expandAllNotes?: boolean;
|
|
3147
|
+
onExpandAllNotes?: (expand: boolean) => void;
|
|
3148
|
+
controlsExpanded?: boolean;
|
|
3149
|
+
onToggleControlsExpand?: () => void;
|
|
2522
3150
|
}
|
|
2523
3151
|
/**
|
|
2524
3152
|
* Group messages by the top-level section that precedes them.
|
|
@@ -2577,6 +3205,11 @@ declare function renderSequenceDiagram(container: HTMLDivElement, parsed: Parsed
|
|
|
2577
3205
|
* Used by the app to expand notes when cursor is on the associated message.
|
|
2578
3206
|
*/
|
|
2579
3207
|
declare function buildNoteMessageMap(elements: SequenceElement[]): Map<number, number>;
|
|
3208
|
+
/**
|
|
3209
|
+
* Collect all note line numbers from a sequence diagram's elements.
|
|
3210
|
+
* Used by the app to compute the "expand all" set.
|
|
3211
|
+
*/
|
|
3212
|
+
declare function collectNoteLineNumbers(elements: SequenceElement[]): number[];
|
|
2580
3213
|
|
|
2581
3214
|
interface CollapsedView {
|
|
2582
3215
|
participants: SequenceParticipant[];
|
|
@@ -2649,82 +3282,6 @@ declare function resolveColorWithDiagnostic(color: string, line: number, diagnos
|
|
|
2649
3282
|
/** @deprecated Use getSeriesColors(palette) from '@/lib/palettes' instead. */
|
|
2650
3283
|
declare const seriesColors: string[];
|
|
2651
3284
|
|
|
2652
|
-
/**
|
|
2653
|
-
* Compact view state schema (ADR-6).
|
|
2654
|
-
* All fields optional. Only non-default values are encoded.
|
|
2655
|
-
* `tag: null` means "user chose none"; absent `tag` means "use DSL default" (ADR-5).
|
|
2656
|
-
*/
|
|
2657
|
-
interface CompactViewState {
|
|
2658
|
-
tag?: string | null;
|
|
2659
|
-
cs?: number[];
|
|
2660
|
-
cg?: string[];
|
|
2661
|
-
swim?: string | null;
|
|
2662
|
-
cl?: string[];
|
|
2663
|
-
cc?: string[];
|
|
2664
|
-
rm?: string;
|
|
2665
|
-
htv?: Record<string, string[]>;
|
|
2666
|
-
ha?: string[];
|
|
2667
|
-
enl?: number[];
|
|
2668
|
-
sem?: boolean;
|
|
2669
|
-
cm?: boolean;
|
|
2670
|
-
c4l?: string;
|
|
2671
|
-
c4s?: string;
|
|
2672
|
-
c4c?: string;
|
|
2673
|
-
rps?: number;
|
|
2674
|
-
spd?: number;
|
|
2675
|
-
io?: Record<string, number>;
|
|
2676
|
-
}
|
|
2677
|
-
interface DecodedDiagramUrl {
|
|
2678
|
-
dsl: string;
|
|
2679
|
-
viewState: CompactViewState;
|
|
2680
|
-
palette?: string;
|
|
2681
|
-
theme?: 'light' | 'dark';
|
|
2682
|
-
filename?: string;
|
|
2683
|
-
}
|
|
2684
|
-
interface EncodeDiagramUrlOptions {
|
|
2685
|
-
baseUrl?: string;
|
|
2686
|
-
viewState?: CompactViewState;
|
|
2687
|
-
palette?: string;
|
|
2688
|
-
theme?: 'light' | 'dark';
|
|
2689
|
-
filename?: string;
|
|
2690
|
-
}
|
|
2691
|
-
type EncodeDiagramUrlResult = {
|
|
2692
|
-
url: string;
|
|
2693
|
-
error?: undefined;
|
|
2694
|
-
} | {
|
|
2695
|
-
url?: undefined;
|
|
2696
|
-
error: 'too-large';
|
|
2697
|
-
compressedSize: number;
|
|
2698
|
-
limit: number;
|
|
2699
|
-
};
|
|
2700
|
-
/**
|
|
2701
|
-
* Encode a CompactViewState to a compressed string for URL embedding.
|
|
2702
|
-
* Returns empty string if state has no keys (ADR-4).
|
|
2703
|
-
*/
|
|
2704
|
-
declare function encodeViewState(state: CompactViewState): string;
|
|
2705
|
-
/**
|
|
2706
|
-
* Decode a compressed view state string back to CompactViewState.
|
|
2707
|
-
* Returns empty object on failure (no crash).
|
|
2708
|
-
*/
|
|
2709
|
-
declare function decodeViewState(encoded: string): CompactViewState;
|
|
2710
|
-
/**
|
|
2711
|
-
* Compress a DGMO DSL string into a shareable URL.
|
|
2712
|
-
* Returns `{ url }` on success, or `{ error: 'too-large', compressedSize, limit }` if the
|
|
2713
|
-
* compressed payload exceeds the 8 KB limit.
|
|
2714
|
-
*/
|
|
2715
|
-
declare function encodeDiagramUrl(dsl: string, options?: EncodeDiagramUrlOptions): EncodeDiagramUrlResult;
|
|
2716
|
-
/**
|
|
2717
|
-
* Decode a DGMO DSL string and view state from a URL query string or hash.
|
|
2718
|
-
* Accepts any of:
|
|
2719
|
-
* - `?dgmo=<payload>&vs=<state>`
|
|
2720
|
-
* - `#dgmo=<payload>&vs=<state>` (backwards compat)
|
|
2721
|
-
* - `dgmo=<payload>`
|
|
2722
|
-
* - `<bare payload>`
|
|
2723
|
-
*
|
|
2724
|
-
* Returns `{ dsl, viewState }`. The DSL is empty string on invalid input.
|
|
2725
|
-
*/
|
|
2726
|
-
declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
|
|
2727
|
-
|
|
2728
3285
|
/**
|
|
2729
3286
|
* Shared parser utilities — extracted from individual parsers to eliminate
|
|
2730
3287
|
* duplication of measureIndent, extractColor, header regexes, and
|
|
@@ -2744,4 +3301,4 @@ declare function parseFirstLine(line: string): {
|
|
|
2744
3301
|
title: string | undefined;
|
|
2745
3302
|
} | null;
|
|
2746
3303
|
|
|
2747
|
-
export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, 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, COMPLETION_REGISTRY, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, type CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DirectiveSpec, type DirectiveValueSpec, type Duration, type DurationUnit, 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 ExtendedChartType, type ExtractFn, 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 GanttParallelBlock, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, 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 KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, METADATA_KEY_SET, type MemberVisibility, 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 ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedKanban, type ParsedOrg, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedVisualization, type ParticipantType, type PipeKeySpec, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderCategory, type RenderStep, type ResolveImportsResult, type ResolvedGroup, type ResolvedSchedule, type ResolvedTask, type ScatterLabelPoint, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type TagEntry, type TagGroup, type VisualizationType, addDurationToDate, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseOrgTree, collapseSitemapTree, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, decodeViewState, draculaPalette, encodeDiagramUrl, encodeViewState, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getPalette, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, isArchiveColumn, isExtendedChartType, isRecognizedColorName, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutOrg, layoutSitemap, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, matchColorParens, monokaiPalette, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseKanban, parseOrg, parseSequenceDgmo, parseSitemap, parseState, parseTimelineDate, parseVisualization, registerExtractor, registerPalette, render, renderArcDiagram, renderBoxesAndLines, renderBoxesAndLinesForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderERDiagram, renderERDiagramForExport, renderExtendedChartForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderInfra, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };
|
|
3304
|
+
export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, 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, COMPLETION_REGISTRY, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, 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 ContextRelationship, 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, 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 ExtendedChartType, type ExtractFn, 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 GanttParallelBlock, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, 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_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions, type LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, METADATA_KEY_SET, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, 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 ParsedMindmap, type ParsedOrg, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedTechRadar, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PipeKeySpec, type QuadrantPosition, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderCategory, type RenderStep, type ResolveImportsResult, type ResolvedGroup, type ResolvedSchedule, type ResolvedTask, type ScatterLabelPoint, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type StateCollapseResult, type TagEntry, type TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, addDurationToDate, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseStateGroups, collectDiagramRoles, collectNoteLineNumbers, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, decodeViewState, draculaPalette, encodeDiagramUrl, encodeViewState, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getPalette, getRadarGeometry, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, isArchiveColumn, isExtendedChartType, isRecognizedColorName, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutJourneyMap, layoutMindmap, layoutOrg, layoutSitemap, layoutWireframe, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, matchColorParens, mix, monokaiPalette, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseCycle, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMindmap, parseOrg, parseSequenceDgmo, parseSitemap, parseState, parseTechRadar, parseTimelineDate, parseVisualization, parseWireframe, registerExtractor, registerPalette, 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, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderVenn, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };
|