@diagrammo/dgmo 0.2.22 → 0.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -36,6 +36,9 @@ declare function render(content: string, options?: {
36
36
  theme?: 'light' | 'dark' | 'transparent';
37
37
  palette?: string;
38
38
  branding?: boolean;
39
+ c4Level?: 'context' | 'containers' | 'components' | 'deployment';
40
+ c4System?: string;
41
+ c4Container?: string;
39
42
  }): Promise<string>;
40
43
 
41
44
  /**
@@ -540,6 +543,9 @@ declare function renderD3ForExport(content: string, theme: 'light' | 'dark' | 't
540
543
  hiddenAttributes?: Set<string>;
541
544
  }, options?: {
542
545
  branding?: boolean;
546
+ c4Level?: 'context' | 'containers' | 'components' | 'deployment';
547
+ c4System?: string;
548
+ c4Container?: string;
543
549
  }): Promise<string>;
544
550
 
545
551
  /**
@@ -982,7 +988,6 @@ interface OrgContainerBounds {
982
988
  interface OrgLegendEntry {
983
989
  value: string;
984
990
  color: string;
985
- isDefault?: boolean;
986
991
  }
987
992
  interface OrgLegendGroup {
988
993
  name: string;
@@ -1080,6 +1085,262 @@ declare function renderKanban(container: HTMLElement, parsed: ParsedKanban, pale
1080
1085
  }, activeTagGroup?: string | null): void;
1081
1086
  declare function renderKanbanForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1082
1087
 
1088
+ type C4ElementType = 'person' | 'system' | 'container' | 'component';
1089
+ type C4Shape = 'default' | 'database' | 'cache' | 'queue' | 'cloud' | 'external';
1090
+ type C4ArrowType = 'sync' | 'async' | 'bidirectional' | 'bidirectional-async';
1091
+ interface C4Relationship {
1092
+ target: string;
1093
+ label?: string;
1094
+ technology?: string;
1095
+ arrowType: C4ArrowType;
1096
+ lineNumber: number;
1097
+ }
1098
+ interface C4Group {
1099
+ name: string;
1100
+ children: C4Element[];
1101
+ lineNumber: number;
1102
+ }
1103
+ interface C4Element {
1104
+ name: string;
1105
+ type: C4ElementType;
1106
+ shape: C4Shape;
1107
+ metadata: Record<string, string>;
1108
+ children: C4Element[];
1109
+ groups: C4Group[];
1110
+ relationships: C4Relationship[];
1111
+ importPath?: string;
1112
+ lineNumber: number;
1113
+ sectionHeader?: 'containers' | 'components';
1114
+ sectionHeaderLineNumber?: number;
1115
+ }
1116
+ interface C4DeploymentNode {
1117
+ name: string;
1118
+ metadata: Record<string, string>;
1119
+ shape: C4Shape;
1120
+ children: C4DeploymentNode[];
1121
+ containerRefs: string[];
1122
+ lineNumber: number;
1123
+ }
1124
+ interface ParsedC4 {
1125
+ title: string | null;
1126
+ titleLineNumber: number | null;
1127
+ options: Record<string, string>;
1128
+ tagGroups: OrgTagGroup[];
1129
+ elements: C4Element[];
1130
+ relationships: C4Relationship[];
1131
+ deployment: C4DeploymentNode[];
1132
+ diagnostics: DgmoError[];
1133
+ error: string | null;
1134
+ }
1135
+
1136
+ declare function parseC4(content: string, palette?: PaletteColors): ParsedC4;
1137
+
1138
+ interface C4LayoutNode {
1139
+ id: string;
1140
+ name: string;
1141
+ type: 'person' | 'system' | 'container' | 'component';
1142
+ description?: string;
1143
+ metadata: Record<string, string>;
1144
+ lineNumber: number;
1145
+ color?: string;
1146
+ shape?: C4Shape;
1147
+ technology?: string;
1148
+ drillable?: boolean;
1149
+ importPath?: string;
1150
+ x: number;
1151
+ y: number;
1152
+ width: number;
1153
+ height: number;
1154
+ }
1155
+ interface C4LayoutEdge {
1156
+ source: string;
1157
+ target: string;
1158
+ arrowType: C4ArrowType;
1159
+ label?: string;
1160
+ technology?: string;
1161
+ lineNumber: number;
1162
+ points: {
1163
+ x: number;
1164
+ y: number;
1165
+ }[];
1166
+ }
1167
+ interface C4LegendEntry {
1168
+ value: string;
1169
+ color: string;
1170
+ }
1171
+ interface C4LegendGroup {
1172
+ name: string;
1173
+ entries: C4LegendEntry[];
1174
+ x: number;
1175
+ y: number;
1176
+ width: number;
1177
+ height: number;
1178
+ }
1179
+ interface C4LayoutBoundary {
1180
+ label: string;
1181
+ typeLabel: string;
1182
+ lineNumber: number;
1183
+ x: number;
1184
+ y: number;
1185
+ width: number;
1186
+ height: number;
1187
+ }
1188
+ interface C4LayoutResult {
1189
+ nodes: C4LayoutNode[];
1190
+ edges: C4LayoutEdge[];
1191
+ legend: C4LegendGroup[];
1192
+ boundary?: C4LayoutBoundary;
1193
+ groupBoundaries: C4LayoutBoundary[];
1194
+ width: number;
1195
+ height: number;
1196
+ }
1197
+ interface ContextRelationship {
1198
+ sourceName: string;
1199
+ targetName: string;
1200
+ label?: string;
1201
+ technology?: string;
1202
+ arrowType: C4ArrowType;
1203
+ lineNumber: number;
1204
+ }
1205
+ /**
1206
+ * Roll up container/component-level relationships to system-to-system edges.
1207
+ * - Skips internal relationships (same top-level ancestor).
1208
+ * - Deduplicates: same source→target pair keeps only one (first seen).
1209
+ * - Explicit system-level relationships override rolled-up ones.
1210
+ */
1211
+ declare function rollUpContextRelationships(parsed: ParsedC4): ContextRelationship[];
1212
+ declare function layoutC4Context(parsed: ParsedC4, activeTagGroup?: string | null): C4LayoutResult;
1213
+ /**
1214
+ * Layout containers within a specific system, plus external elements
1215
+ * that have relationships with those containers.
1216
+ */
1217
+ declare function layoutC4Containers(parsed: ParsedC4, systemName: string, activeTagGroup?: string | null): C4LayoutResult;
1218
+ /**
1219
+ * Layout components within a specific container, plus external elements
1220
+ * that have relationships with those components.
1221
+ */
1222
+ declare function layoutC4Components(parsed: ParsedC4, systemName: string, containerName: string, activeTagGroup?: string | null): C4LayoutResult;
1223
+ /**
1224
+ * Layout a C4 deployment diagram.
1225
+ *
1226
+ * Infrastructure nodes become boundary boxes (nested).
1227
+ * Container refs inside them become cards.
1228
+ * Edges are drawn between referenced containers that have relationships.
1229
+ */
1230
+ declare function layoutC4Deployment(parsed: ParsedC4, activeTagGroup?: string | null): C4LayoutResult;
1231
+
1232
+ declare function renderC4Context(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1233
+ width?: number;
1234
+ height?: number;
1235
+ }, activeTagGroup?: string | null): void;
1236
+ declare function renderC4ContextForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1237
+ /**
1238
+ * Render a C4 container-level diagram showing containers inside a system boundary
1239
+ * with external elements outside.
1240
+ */
1241
+ declare function renderC4Containers(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1242
+ width?: number;
1243
+ height?: number;
1244
+ }, activeTagGroup?: string | null): void;
1245
+ declare function renderC4ContainersForExport(content: string, systemName: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1246
+ declare function renderC4ComponentsForExport(content: string, systemName: string, containerName: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1247
+ /**
1248
+ * Render a C4 deployment diagram interactively.
1249
+ * Reuses the container renderer — infrastructure boundaries are rendered
1250
+ * as group boundaries and container refs as cards (same visual pattern).
1251
+ */
1252
+ declare function renderC4Deployment(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1253
+ width?: number;
1254
+ height?: number;
1255
+ }, activeTagGroup?: string | null): void;
1256
+ /**
1257
+ * Export convenience function for deployment diagrams.
1258
+ */
1259
+ declare function renderC4DeploymentForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1260
+
1261
+ type InitiativeStatus = 'done' | 'wip' | 'todo' | 'na' | null;
1262
+ interface ISNode {
1263
+ label: string;
1264
+ status: InitiativeStatus;
1265
+ shape: ParticipantType;
1266
+ lineNumber: number;
1267
+ }
1268
+ interface ISEdge {
1269
+ source: string;
1270
+ target: string;
1271
+ label?: string;
1272
+ status: InitiativeStatus;
1273
+ lineNumber: number;
1274
+ }
1275
+ interface ISGroup {
1276
+ label: string;
1277
+ nodeLabels: string[];
1278
+ lineNumber: number;
1279
+ }
1280
+ interface ParsedInitiativeStatus {
1281
+ type: 'initiative-status';
1282
+ title: string | null;
1283
+ titleLineNumber: number | null;
1284
+ nodes: ISNode[];
1285
+ edges: ISEdge[];
1286
+ groups: ISGroup[];
1287
+ options: Record<string, string>;
1288
+ diagnostics: DgmoError[];
1289
+ error?: string;
1290
+ }
1291
+
1292
+ /**
1293
+ * Returns true if the content looks like an initiative-status diagram.
1294
+ * Detects `->` arrows combined with `| done/wip/todo/na` status markers.
1295
+ */
1296
+ declare function looksLikeInitiativeStatus(content: string): boolean;
1297
+ declare function parseInitiativeStatus(content: string): ParsedInitiativeStatus;
1298
+
1299
+ interface ISLayoutNode {
1300
+ label: string;
1301
+ status: InitiativeStatus;
1302
+ shape: ParticipantType;
1303
+ lineNumber: number;
1304
+ x: number;
1305
+ y: number;
1306
+ width: number;
1307
+ height: number;
1308
+ }
1309
+ interface ISLayoutEdge {
1310
+ source: string;
1311
+ target: string;
1312
+ label?: string;
1313
+ status: InitiativeStatus;
1314
+ lineNumber: number;
1315
+ points: {
1316
+ x: number;
1317
+ y: number;
1318
+ }[];
1319
+ }
1320
+ interface ISLayoutGroup {
1321
+ label: string;
1322
+ status: InitiativeStatus;
1323
+ x: number;
1324
+ y: number;
1325
+ width: number;
1326
+ height: number;
1327
+ lineNumber: number;
1328
+ }
1329
+ interface ISLayoutResult {
1330
+ nodes: ISLayoutNode[];
1331
+ edges: ISLayoutEdge[];
1332
+ groups: ISLayoutGroup[];
1333
+ width: number;
1334
+ height: number;
1335
+ }
1336
+ declare function layoutInitiativeStatus(parsed: ParsedInitiativeStatus): ISLayoutResult;
1337
+
1338
+ declare function renderInitiativeStatus(container: HTMLDivElement, parsed: ParsedInitiativeStatus, layout: ISLayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1339
+ width?: number;
1340
+ height?: number;
1341
+ }): void;
1342
+ declare function renderInitiativeStatusForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1343
+
1083
1344
  interface CollapsedOrgResult {
1084
1345
  /** ParsedOrg with collapsed subtrees pruned (deep-cloned, never mutates original) */
1085
1346
  parsed: ParsedOrg;
@@ -1292,4 +1553,4 @@ declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
1292
1553
  */
1293
1554
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
1294
1555
 
1295
- export { type Activation, type ArcLink, type ArcNodeGroup, type ChartDataPoint, type ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedOrgResult, type D3ChartType, type D3ExportDimensions, DGMO_CHART_TYPE_MAP, type DecodedDiagramUrl, type DgmoError, type DgmoFramework, type DgmoSeverity, type DiagramViewState, type EChartsChartType, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutResult, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, type OrgTagEntry, type OrgTagGroup, type PaletteColors, type PaletteConfig, type ParsedChart, type ParsedClassDiagram, type ParsedD3, type ParsedEChart, type ParsedERDiagram, type ParsedGraph, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParticipantType, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderStep, type ResolveImportsResult, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, addDurationToDate, applyGroupOrdering, applyPositionOverrides, boldPalette, buildEChartsOption, buildEChartsOptionFromChart, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildThemeCSS, catppuccinPalette, collapseOrgTree, colorNames, computeActivations, computeCardArchive, computeCardMove, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, formatDateLabel, formatDgmoError, getAvailablePalettes, getDgmoFramework, getPalette, getSeriesColors, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, injectBranding, isArchiveColumn, isSequenceBlock, isSequenceNote, isValidHex, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutOrg, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseChart, parseClassDiagram, parseD3, parseDgmo, parseDgmoChartType, parseEChart, parseERDiagram, parseFlowchart, parseKanban, parseOrg, parseQuadrant, parseSequenceDgmo, parseTimelineDate, registerPalette, render, renderArcDiagram, renderClassDiagram, renderClassDiagramForExport, renderD3ForExport, renderEChartsForExport, renderERDiagram, renderERDiagramForExport, renderFlowchart, renderFlowchartForExport, renderKanban, renderKanbanForExport, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSlopeChart, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette };
1556
+ export { type Activation, type ArcLink, type ArcNodeGroup, 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 OrgTagEntry as C4TagEntry, type OrgTagGroup as C4TagGroup, type ChartDataPoint, type ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedOrgResult, type ContextRelationship, type D3ChartType, type D3ExportDimensions, DGMO_CHART_TYPE_MAP, type DecodedDiagramUrl, type DgmoError, type DgmoFramework, type DgmoSeverity, type DiagramViewState, type EChartsChartType, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, type ISEdge, type ISGroup, type ISLayoutEdge, type ISLayoutGroup, type ISLayoutNode, type ISLayoutResult, type ISNode, type InitiativeStatus, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutResult, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, type OrgTagEntry, type OrgTagGroup, type PaletteColors, type PaletteConfig, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedD3, type ParsedEChart, type ParsedERDiagram, type ParsedGraph, type ParsedInitiativeStatus, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParticipantType, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderStep, type ResolveImportsResult, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, addDurationToDate, applyGroupOrdering, applyPositionOverrides, boldPalette, buildEChartsOption, buildEChartsOptionFromChart, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildThemeCSS, catppuccinPalette, collapseOrgTree, colorNames, computeActivations, computeCardArchive, computeCardMove, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, formatDateLabel, formatDgmoError, getAvailablePalettes, getDgmoFramework, getPalette, getSeriesColors, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, injectBranding, isArchiveColumn, isSequenceBlock, isSequenceNote, isValidHex, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInitiativeStatus, layoutOrg, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeInitiativeStatus, looksLikeSequence, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseC4, parseChart, parseClassDiagram, parseD3, parseDgmo, parseDgmoChartType, parseEChart, parseERDiagram, parseFlowchart, parseInitiativeStatus, parseKanban, parseOrg, parseQuadrant, parseSequenceDgmo, parseTimelineDate, registerPalette, render, renderArcDiagram, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderD3ForExport, renderEChartsForExport, renderERDiagram, renderERDiagramForExport, renderFlowchart, renderFlowchartForExport, renderInitiativeStatus, renderInitiativeStatusForExport, renderKanban, renderKanbanForExport, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSlopeChart, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette };
package/dist/index.d.ts CHANGED
@@ -36,6 +36,9 @@ declare function render(content: string, options?: {
36
36
  theme?: 'light' | 'dark' | 'transparent';
37
37
  palette?: string;
38
38
  branding?: boolean;
39
+ c4Level?: 'context' | 'containers' | 'components' | 'deployment';
40
+ c4System?: string;
41
+ c4Container?: string;
39
42
  }): Promise<string>;
40
43
 
41
44
  /**
@@ -540,6 +543,9 @@ declare function renderD3ForExport(content: string, theme: 'light' | 'dark' | 't
540
543
  hiddenAttributes?: Set<string>;
541
544
  }, options?: {
542
545
  branding?: boolean;
546
+ c4Level?: 'context' | 'containers' | 'components' | 'deployment';
547
+ c4System?: string;
548
+ c4Container?: string;
543
549
  }): Promise<string>;
544
550
 
545
551
  /**
@@ -982,7 +988,6 @@ interface OrgContainerBounds {
982
988
  interface OrgLegendEntry {
983
989
  value: string;
984
990
  color: string;
985
- isDefault?: boolean;
986
991
  }
987
992
  interface OrgLegendGroup {
988
993
  name: string;
@@ -1080,6 +1085,262 @@ declare function renderKanban(container: HTMLElement, parsed: ParsedKanban, pale
1080
1085
  }, activeTagGroup?: string | null): void;
1081
1086
  declare function renderKanbanForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1082
1087
 
1088
+ type C4ElementType = 'person' | 'system' | 'container' | 'component';
1089
+ type C4Shape = 'default' | 'database' | 'cache' | 'queue' | 'cloud' | 'external';
1090
+ type C4ArrowType = 'sync' | 'async' | 'bidirectional' | 'bidirectional-async';
1091
+ interface C4Relationship {
1092
+ target: string;
1093
+ label?: string;
1094
+ technology?: string;
1095
+ arrowType: C4ArrowType;
1096
+ lineNumber: number;
1097
+ }
1098
+ interface C4Group {
1099
+ name: string;
1100
+ children: C4Element[];
1101
+ lineNumber: number;
1102
+ }
1103
+ interface C4Element {
1104
+ name: string;
1105
+ type: C4ElementType;
1106
+ shape: C4Shape;
1107
+ metadata: Record<string, string>;
1108
+ children: C4Element[];
1109
+ groups: C4Group[];
1110
+ relationships: C4Relationship[];
1111
+ importPath?: string;
1112
+ lineNumber: number;
1113
+ sectionHeader?: 'containers' | 'components';
1114
+ sectionHeaderLineNumber?: number;
1115
+ }
1116
+ interface C4DeploymentNode {
1117
+ name: string;
1118
+ metadata: Record<string, string>;
1119
+ shape: C4Shape;
1120
+ children: C4DeploymentNode[];
1121
+ containerRefs: string[];
1122
+ lineNumber: number;
1123
+ }
1124
+ interface ParsedC4 {
1125
+ title: string | null;
1126
+ titleLineNumber: number | null;
1127
+ options: Record<string, string>;
1128
+ tagGroups: OrgTagGroup[];
1129
+ elements: C4Element[];
1130
+ relationships: C4Relationship[];
1131
+ deployment: C4DeploymentNode[];
1132
+ diagnostics: DgmoError[];
1133
+ error: string | null;
1134
+ }
1135
+
1136
+ declare function parseC4(content: string, palette?: PaletteColors): ParsedC4;
1137
+
1138
+ interface C4LayoutNode {
1139
+ id: string;
1140
+ name: string;
1141
+ type: 'person' | 'system' | 'container' | 'component';
1142
+ description?: string;
1143
+ metadata: Record<string, string>;
1144
+ lineNumber: number;
1145
+ color?: string;
1146
+ shape?: C4Shape;
1147
+ technology?: string;
1148
+ drillable?: boolean;
1149
+ importPath?: string;
1150
+ x: number;
1151
+ y: number;
1152
+ width: number;
1153
+ height: number;
1154
+ }
1155
+ interface C4LayoutEdge {
1156
+ source: string;
1157
+ target: string;
1158
+ arrowType: C4ArrowType;
1159
+ label?: string;
1160
+ technology?: string;
1161
+ lineNumber: number;
1162
+ points: {
1163
+ x: number;
1164
+ y: number;
1165
+ }[];
1166
+ }
1167
+ interface C4LegendEntry {
1168
+ value: string;
1169
+ color: string;
1170
+ }
1171
+ interface C4LegendGroup {
1172
+ name: string;
1173
+ entries: C4LegendEntry[];
1174
+ x: number;
1175
+ y: number;
1176
+ width: number;
1177
+ height: number;
1178
+ }
1179
+ interface C4LayoutBoundary {
1180
+ label: string;
1181
+ typeLabel: string;
1182
+ lineNumber: number;
1183
+ x: number;
1184
+ y: number;
1185
+ width: number;
1186
+ height: number;
1187
+ }
1188
+ interface C4LayoutResult {
1189
+ nodes: C4LayoutNode[];
1190
+ edges: C4LayoutEdge[];
1191
+ legend: C4LegendGroup[];
1192
+ boundary?: C4LayoutBoundary;
1193
+ groupBoundaries: C4LayoutBoundary[];
1194
+ width: number;
1195
+ height: number;
1196
+ }
1197
+ interface ContextRelationship {
1198
+ sourceName: string;
1199
+ targetName: string;
1200
+ label?: string;
1201
+ technology?: string;
1202
+ arrowType: C4ArrowType;
1203
+ lineNumber: number;
1204
+ }
1205
+ /**
1206
+ * Roll up container/component-level relationships to system-to-system edges.
1207
+ * - Skips internal relationships (same top-level ancestor).
1208
+ * - Deduplicates: same source→target pair keeps only one (first seen).
1209
+ * - Explicit system-level relationships override rolled-up ones.
1210
+ */
1211
+ declare function rollUpContextRelationships(parsed: ParsedC4): ContextRelationship[];
1212
+ declare function layoutC4Context(parsed: ParsedC4, activeTagGroup?: string | null): C4LayoutResult;
1213
+ /**
1214
+ * Layout containers within a specific system, plus external elements
1215
+ * that have relationships with those containers.
1216
+ */
1217
+ declare function layoutC4Containers(parsed: ParsedC4, systemName: string, activeTagGroup?: string | null): C4LayoutResult;
1218
+ /**
1219
+ * Layout components within a specific container, plus external elements
1220
+ * that have relationships with those components.
1221
+ */
1222
+ declare function layoutC4Components(parsed: ParsedC4, systemName: string, containerName: string, activeTagGroup?: string | null): C4LayoutResult;
1223
+ /**
1224
+ * Layout a C4 deployment diagram.
1225
+ *
1226
+ * Infrastructure nodes become boundary boxes (nested).
1227
+ * Container refs inside them become cards.
1228
+ * Edges are drawn between referenced containers that have relationships.
1229
+ */
1230
+ declare function layoutC4Deployment(parsed: ParsedC4, activeTagGroup?: string | null): C4LayoutResult;
1231
+
1232
+ declare function renderC4Context(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1233
+ width?: number;
1234
+ height?: number;
1235
+ }, activeTagGroup?: string | null): void;
1236
+ declare function renderC4ContextForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1237
+ /**
1238
+ * Render a C4 container-level diagram showing containers inside a system boundary
1239
+ * with external elements outside.
1240
+ */
1241
+ declare function renderC4Containers(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1242
+ width?: number;
1243
+ height?: number;
1244
+ }, activeTagGroup?: string | null): void;
1245
+ declare function renderC4ContainersForExport(content: string, systemName: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1246
+ declare function renderC4ComponentsForExport(content: string, systemName: string, containerName: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1247
+ /**
1248
+ * Render a C4 deployment diagram interactively.
1249
+ * Reuses the container renderer — infrastructure boundaries are rendered
1250
+ * as group boundaries and container refs as cards (same visual pattern).
1251
+ */
1252
+ declare function renderC4Deployment(container: HTMLDivElement, parsed: ParsedC4, layout: C4LayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1253
+ width?: number;
1254
+ height?: number;
1255
+ }, activeTagGroup?: string | null): void;
1256
+ /**
1257
+ * Export convenience function for deployment diagrams.
1258
+ */
1259
+ declare function renderC4DeploymentForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1260
+
1261
+ type InitiativeStatus = 'done' | 'wip' | 'todo' | 'na' | null;
1262
+ interface ISNode {
1263
+ label: string;
1264
+ status: InitiativeStatus;
1265
+ shape: ParticipantType;
1266
+ lineNumber: number;
1267
+ }
1268
+ interface ISEdge {
1269
+ source: string;
1270
+ target: string;
1271
+ label?: string;
1272
+ status: InitiativeStatus;
1273
+ lineNumber: number;
1274
+ }
1275
+ interface ISGroup {
1276
+ label: string;
1277
+ nodeLabels: string[];
1278
+ lineNumber: number;
1279
+ }
1280
+ interface ParsedInitiativeStatus {
1281
+ type: 'initiative-status';
1282
+ title: string | null;
1283
+ titleLineNumber: number | null;
1284
+ nodes: ISNode[];
1285
+ edges: ISEdge[];
1286
+ groups: ISGroup[];
1287
+ options: Record<string, string>;
1288
+ diagnostics: DgmoError[];
1289
+ error?: string;
1290
+ }
1291
+
1292
+ /**
1293
+ * Returns true if the content looks like an initiative-status diagram.
1294
+ * Detects `->` arrows combined with `| done/wip/todo/na` status markers.
1295
+ */
1296
+ declare function looksLikeInitiativeStatus(content: string): boolean;
1297
+ declare function parseInitiativeStatus(content: string): ParsedInitiativeStatus;
1298
+
1299
+ interface ISLayoutNode {
1300
+ label: string;
1301
+ status: InitiativeStatus;
1302
+ shape: ParticipantType;
1303
+ lineNumber: number;
1304
+ x: number;
1305
+ y: number;
1306
+ width: number;
1307
+ height: number;
1308
+ }
1309
+ interface ISLayoutEdge {
1310
+ source: string;
1311
+ target: string;
1312
+ label?: string;
1313
+ status: InitiativeStatus;
1314
+ lineNumber: number;
1315
+ points: {
1316
+ x: number;
1317
+ y: number;
1318
+ }[];
1319
+ }
1320
+ interface ISLayoutGroup {
1321
+ label: string;
1322
+ status: InitiativeStatus;
1323
+ x: number;
1324
+ y: number;
1325
+ width: number;
1326
+ height: number;
1327
+ lineNumber: number;
1328
+ }
1329
+ interface ISLayoutResult {
1330
+ nodes: ISLayoutNode[];
1331
+ edges: ISLayoutEdge[];
1332
+ groups: ISLayoutGroup[];
1333
+ width: number;
1334
+ height: number;
1335
+ }
1336
+ declare function layoutInitiativeStatus(parsed: ParsedInitiativeStatus): ISLayoutResult;
1337
+
1338
+ declare function renderInitiativeStatus(container: HTMLDivElement, parsed: ParsedInitiativeStatus, layout: ISLayoutResult, palette: PaletteColors, isDark: boolean, onClickItem?: (lineNumber: number) => void, exportDims?: {
1339
+ width?: number;
1340
+ height?: number;
1341
+ }): void;
1342
+ declare function renderInitiativeStatusForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1343
+
1083
1344
  interface CollapsedOrgResult {
1084
1345
  /** ParsedOrg with collapsed subtrees pruned (deep-cloned, never mutates original) */
1085
1346
  parsed: ParsedOrg;
@@ -1292,4 +1553,4 @@ declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
1292
1553
  */
1293
1554
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
1294
1555
 
1295
- export { type Activation, type ArcLink, type ArcNodeGroup, type ChartDataPoint, type ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedOrgResult, type D3ChartType, type D3ExportDimensions, DGMO_CHART_TYPE_MAP, type DecodedDiagramUrl, type DgmoError, type DgmoFramework, type DgmoSeverity, type DiagramViewState, type EChartsChartType, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutResult, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, type OrgTagEntry, type OrgTagGroup, type PaletteColors, type PaletteConfig, type ParsedChart, type ParsedClassDiagram, type ParsedD3, type ParsedEChart, type ParsedERDiagram, type ParsedGraph, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParticipantType, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderStep, type ResolveImportsResult, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, addDurationToDate, applyGroupOrdering, applyPositionOverrides, boldPalette, buildEChartsOption, buildEChartsOptionFromChart, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildThemeCSS, catppuccinPalette, collapseOrgTree, colorNames, computeActivations, computeCardArchive, computeCardMove, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, formatDateLabel, formatDgmoError, getAvailablePalettes, getDgmoFramework, getPalette, getSeriesColors, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, injectBranding, isArchiveColumn, isSequenceBlock, isSequenceNote, isValidHex, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutOrg, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseChart, parseClassDiagram, parseD3, parseDgmo, parseDgmoChartType, parseEChart, parseERDiagram, parseFlowchart, parseKanban, parseOrg, parseQuadrant, parseSequenceDgmo, parseTimelineDate, registerPalette, render, renderArcDiagram, renderClassDiagram, renderClassDiagramForExport, renderD3ForExport, renderEChartsForExport, renderERDiagram, renderERDiagramForExport, renderFlowchart, renderFlowchartForExport, renderKanban, renderKanbanForExport, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSlopeChart, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette };
1556
+ export { type Activation, type ArcLink, type ArcNodeGroup, 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 OrgTagEntry as C4TagEntry, type OrgTagGroup as C4TagGroup, type ChartDataPoint, type ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedOrgResult, type ContextRelationship, type D3ChartType, type D3ExportDimensions, DGMO_CHART_TYPE_MAP, type DecodedDiagramUrl, type DgmoError, type DgmoFramework, type DgmoSeverity, type DiagramViewState, type EChartsChartType, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EncodeDiagramUrlOptions, type EncodeDiagramUrlResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, type ISEdge, type ISGroup, type ISLayoutEdge, type ISLayoutGroup, type ISLayoutNode, type ISLayoutResult, type ISNode, type InitiativeStatus, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutResult, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, type OrgTagEntry, type OrgTagGroup, type PaletteColors, type PaletteConfig, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedD3, type ParsedEChart, type ParsedERDiagram, type ParsedGraph, type ParsedInitiativeStatus, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParticipantType, RULE_COUNT, type ReadFileFn, type RelationshipType, type RenderStep, type ResolveImportsResult, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, addDurationToDate, applyGroupOrdering, applyPositionOverrides, boldPalette, buildEChartsOption, buildEChartsOptionFromChart, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildThemeCSS, catppuccinPalette, collapseOrgTree, colorNames, computeActivations, computeCardArchive, computeCardMove, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, formatDateLabel, formatDgmoError, getAvailablePalettes, getDgmoFramework, getPalette, getSeriesColors, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, injectBranding, isArchiveColumn, isSequenceBlock, isSequenceNote, isValidHex, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInitiativeStatus, layoutOrg, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeInitiativeStatus, looksLikeSequence, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseC4, parseChart, parseClassDiagram, parseD3, parseDgmo, parseDgmoChartType, parseEChart, parseERDiagram, parseFlowchart, parseInitiativeStatus, parseKanban, parseOrg, parseQuadrant, parseSequenceDgmo, parseTimelineDate, registerPalette, render, renderArcDiagram, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderD3ForExport, renderEChartsForExport, renderERDiagram, renderERDiagramForExport, renderFlowchart, renderFlowchartForExport, renderInitiativeStatus, renderInitiativeStatusForExport, renderKanban, renderKanbanForExport, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSlopeChart, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette };