@diagrammo/dgmo 0.2.26 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.claude/skills/dgmo-chart/SKILL.md +107 -0
  2. package/.claude/skills/dgmo-flowchart/SKILL.md +61 -0
  3. package/.claude/skills/dgmo-generate/SKILL.md +58 -0
  4. package/.claude/skills/dgmo-sequence/SKILL.md +83 -0
  5. package/.cursorrules +117 -0
  6. package/.github/copilot-instructions.md +117 -0
  7. package/.windsurfrules +117 -0
  8. package/README.md +10 -3
  9. package/dist/cli.cjs +116 -108
  10. package/dist/index.cjs +563 -356
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +39 -24
  13. package/dist/index.d.ts +39 -24
  14. package/dist/index.js +560 -355
  15. package/dist/index.js.map +1 -1
  16. package/docs/ai-integration.md +125 -0
  17. package/docs/language-reference.md +784 -0
  18. package/package.json +10 -3
  19. package/src/c4/parser.ts +90 -74
  20. package/src/c4/renderer.ts +13 -12
  21. package/src/c4/types.ts +6 -4
  22. package/src/chart.ts +3 -2
  23. package/src/class/parser.ts +2 -10
  24. package/src/class/types.ts +1 -1
  25. package/src/cli.ts +135 -19
  26. package/src/d3.ts +1 -1
  27. package/src/dgmo-mermaid.ts +1 -1
  28. package/src/dgmo-router.ts +1 -1
  29. package/src/echarts.ts +33 -13
  30. package/src/er/parser.ts +34 -43
  31. package/src/er/types.ts +1 -1
  32. package/src/graph/flowchart-parser.ts +2 -25
  33. package/src/graph/types.ts +1 -1
  34. package/src/index.ts +5 -0
  35. package/src/initiative-status/parser.ts +57 -11
  36. package/src/initiative-status/types.ts +1 -1
  37. package/src/kanban/parser.ts +32 -53
  38. package/src/kanban/renderer.ts +9 -8
  39. package/src/kanban/types.ts +6 -14
  40. package/src/org/parser.ts +47 -87
  41. package/src/org/resolver.ts +11 -12
  42. package/src/sequence/parser.ts +97 -15
  43. package/src/sequence/renderer.ts +62 -69
  44. package/src/utils/arrows.ts +75 -0
  45. package/src/utils/inline-markdown.ts +75 -0
  46. package/src/utils/parsing.ts +67 -0
  47. package/src/utils/tag-groups.ts +76 -0
package/dist/index.d.cts CHANGED
@@ -231,7 +231,7 @@ interface ParsedChart {
231
231
  labels?: 'name' | 'value' | 'percent' | 'full';
232
232
  data: ChartDataPoint[];
233
233
  diagnostics: DgmoError[];
234
- error?: string;
234
+ error: string | null;
235
235
  }
236
236
 
237
237
  /**
@@ -308,7 +308,7 @@ interface ParsedEChart {
308
308
  showLabels?: boolean;
309
309
  categoryColors?: Record<string, string>;
310
310
  diagnostics: DgmoError[];
311
- error?: string;
311
+ error: string | null;
312
312
  }
313
313
 
314
314
  /**
@@ -578,6 +578,7 @@ interface SequenceMessage {
578
578
  returnLabel?: string;
579
579
  lineNumber: number;
580
580
  async?: boolean;
581
+ bidirectional?: boolean;
581
582
  }
582
583
  /**
583
584
  * A conditional or loop block in the sequence diagram.
@@ -739,7 +740,7 @@ interface ParsedGraph {
739
740
  groups?: GraphGroup[];
740
741
  options: Record<string, string>;
741
742
  diagnostics: DgmoError[];
742
- error?: string;
743
+ error: string | null;
743
744
  }
744
745
 
745
746
  declare function parseFlowchart(content: string, palette?: PaletteColors): ParsedGraph;
@@ -786,7 +787,7 @@ interface ParsedClassDiagram {
786
787
  relationships: ClassRelationship[];
787
788
  options: Record<string, string>;
788
789
  diagnostics: DgmoError[];
789
- error?: string;
790
+ error: string | null;
790
791
  }
791
792
 
792
793
  declare function parseClassDiagram(content: string, palette?: PaletteColors): ParsedClassDiagram;
@@ -865,7 +866,7 @@ interface ParsedERDiagram {
865
866
  tables: ERTable[];
866
867
  relationships: ERRelationship[];
867
868
  diagnostics: DgmoError[];
868
- error?: string;
869
+ error: string | null;
869
870
  }
870
871
 
871
872
  declare function parseERDiagram(content: string, palette?: PaletteColors): ParsedERDiagram;
@@ -911,19 +912,36 @@ declare function renderERDiagram(container: HTMLDivElement, parsed: ParsedERDiag
911
912
  }): void;
912
913
  declare function renderERDiagramForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
913
914
 
914
- interface OrgTagEntry {
915
+ /** A single entry inside a tag group: `Value(color)` */
916
+ interface TagEntry {
915
917
  value: string;
916
918
  color: string;
917
919
  lineNumber: number;
918
920
  }
919
- interface OrgTagGroup {
921
+ /** A tag group block: heading + entries */
922
+ interface TagGroup {
920
923
  name: string;
921
924
  alias?: string;
922
- entries: OrgTagEntry[];
925
+ entries: TagEntry[];
923
926
  /** Value of the entry marked `default` (nodes without metadata get this) */
924
927
  defaultValue?: string;
925
928
  lineNumber: number;
926
929
  }
930
+
931
+ interface InlineSpan {
932
+ text: string;
933
+ bold?: boolean;
934
+ italic?: boolean;
935
+ code?: boolean;
936
+ href?: string;
937
+ }
938
+ declare function parseInlineMarkdown(text: string): InlineSpan[];
939
+ declare function truncateBareUrl(url: string): string;
940
+
941
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
942
+ type OrgTagEntry = TagEntry;
943
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
944
+ type OrgTagGroup = TagGroup;
927
945
  interface OrgNode {
928
946
  id: string;
929
947
  label: string;
@@ -1016,18 +1034,10 @@ declare function renderOrg(container: HTMLDivElement, parsed: ParsedOrg, layout:
1016
1034
  }, activeTagGroup?: string | null, hiddenAttributes?: Set<string>): void;
1017
1035
  declare function renderOrgForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1018
1036
 
1019
- interface KanbanTagEntry {
1020
- value: string;
1021
- color: string;
1022
- lineNumber: number;
1023
- }
1024
- interface KanbanTagGroup {
1025
- name: string;
1026
- alias?: string;
1027
- entries: KanbanTagEntry[];
1028
- defaultValue?: string;
1029
- lineNumber: number;
1030
- }
1037
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
1038
+ type KanbanTagEntry = TagEntry;
1039
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
1040
+ type KanbanTagGroup = TagGroup;
1031
1041
  interface KanbanCard {
1032
1042
  id: string;
1033
1043
  title: string;
@@ -1053,7 +1063,7 @@ interface ParsedKanban {
1053
1063
  tagGroups: KanbanTagGroup[];
1054
1064
  options: Record<string, string>;
1055
1065
  diagnostics: DgmoError[];
1056
- error?: string;
1066
+ error: string | null;
1057
1067
  }
1058
1068
 
1059
1069
  declare function parseKanban(content: string, palette?: PaletteColors): ParsedKanban;
@@ -1085,6 +1095,10 @@ declare function renderKanban(container: HTMLElement, parsed: ParsedKanban, pale
1085
1095
  }, activeTagGroup?: string | null): void;
1086
1096
  declare function renderKanbanForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1087
1097
 
1098
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
1099
+ type C4TagEntry = TagEntry;
1100
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
1101
+ type C4TagGroup = TagGroup;
1088
1102
  type C4ElementType = 'person' | 'system' | 'container' | 'component';
1089
1103
  type C4Shape = 'default' | 'database' | 'cache' | 'queue' | 'cloud' | 'external';
1090
1104
  type C4ArrowType = 'sync' | 'async' | 'bidirectional' | 'bidirectional-async';
@@ -1125,7 +1139,7 @@ interface ParsedC4 {
1125
1139
  title: string | null;
1126
1140
  titleLineNumber: number | null;
1127
1141
  options: Record<string, string>;
1128
- tagGroups: OrgTagGroup[];
1142
+ tagGroups: TagGroup[];
1129
1143
  elements: C4Element[];
1130
1144
  relationships: C4Relationship[];
1131
1145
  deployment: C4DeploymentNode[];
@@ -1286,7 +1300,7 @@ interface ParsedInitiativeStatus {
1286
1300
  groups: ISGroup[];
1287
1301
  options: Record<string, string>;
1288
1302
  diagnostics: DgmoError[];
1289
- error?: string;
1303
+ error: string | null;
1290
1304
  }
1291
1305
 
1292
1306
  /**
@@ -1437,6 +1451,7 @@ interface RenderStep {
1437
1451
  label: string;
1438
1452
  messageIndex: number;
1439
1453
  async?: boolean;
1454
+ bidirectional?: boolean;
1440
1455
  }
1441
1456
  /**
1442
1457
  * Build an ordered render sequence from flat messages.
@@ -1554,4 +1569,4 @@ declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
1554
1569
  */
1555
1570
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
1556
1571
 
1557
- 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 };
1572
+ 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 C4TagEntry, type 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 InlineSpan, 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, type TagEntry, type TagGroup, 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, parseInlineMarkdown, 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, truncateBareUrl };
package/dist/index.d.ts CHANGED
@@ -231,7 +231,7 @@ interface ParsedChart {
231
231
  labels?: 'name' | 'value' | 'percent' | 'full';
232
232
  data: ChartDataPoint[];
233
233
  diagnostics: DgmoError[];
234
- error?: string;
234
+ error: string | null;
235
235
  }
236
236
 
237
237
  /**
@@ -308,7 +308,7 @@ interface ParsedEChart {
308
308
  showLabels?: boolean;
309
309
  categoryColors?: Record<string, string>;
310
310
  diagnostics: DgmoError[];
311
- error?: string;
311
+ error: string | null;
312
312
  }
313
313
 
314
314
  /**
@@ -578,6 +578,7 @@ interface SequenceMessage {
578
578
  returnLabel?: string;
579
579
  lineNumber: number;
580
580
  async?: boolean;
581
+ bidirectional?: boolean;
581
582
  }
582
583
  /**
583
584
  * A conditional or loop block in the sequence diagram.
@@ -739,7 +740,7 @@ interface ParsedGraph {
739
740
  groups?: GraphGroup[];
740
741
  options: Record<string, string>;
741
742
  diagnostics: DgmoError[];
742
- error?: string;
743
+ error: string | null;
743
744
  }
744
745
 
745
746
  declare function parseFlowchart(content: string, palette?: PaletteColors): ParsedGraph;
@@ -786,7 +787,7 @@ interface ParsedClassDiagram {
786
787
  relationships: ClassRelationship[];
787
788
  options: Record<string, string>;
788
789
  diagnostics: DgmoError[];
789
- error?: string;
790
+ error: string | null;
790
791
  }
791
792
 
792
793
  declare function parseClassDiagram(content: string, palette?: PaletteColors): ParsedClassDiagram;
@@ -865,7 +866,7 @@ interface ParsedERDiagram {
865
866
  tables: ERTable[];
866
867
  relationships: ERRelationship[];
867
868
  diagnostics: DgmoError[];
868
- error?: string;
869
+ error: string | null;
869
870
  }
870
871
 
871
872
  declare function parseERDiagram(content: string, palette?: PaletteColors): ParsedERDiagram;
@@ -911,19 +912,36 @@ declare function renderERDiagram(container: HTMLDivElement, parsed: ParsedERDiag
911
912
  }): void;
912
913
  declare function renderERDiagramForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
913
914
 
914
- interface OrgTagEntry {
915
+ /** A single entry inside a tag group: `Value(color)` */
916
+ interface TagEntry {
915
917
  value: string;
916
918
  color: string;
917
919
  lineNumber: number;
918
920
  }
919
- interface OrgTagGroup {
921
+ /** A tag group block: heading + entries */
922
+ interface TagGroup {
920
923
  name: string;
921
924
  alias?: string;
922
- entries: OrgTagEntry[];
925
+ entries: TagEntry[];
923
926
  /** Value of the entry marked `default` (nodes without metadata get this) */
924
927
  defaultValue?: string;
925
928
  lineNumber: number;
926
929
  }
930
+
931
+ interface InlineSpan {
932
+ text: string;
933
+ bold?: boolean;
934
+ italic?: boolean;
935
+ code?: boolean;
936
+ href?: string;
937
+ }
938
+ declare function parseInlineMarkdown(text: string): InlineSpan[];
939
+ declare function truncateBareUrl(url: string): string;
940
+
941
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
942
+ type OrgTagEntry = TagEntry;
943
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
944
+ type OrgTagGroup = TagGroup;
927
945
  interface OrgNode {
928
946
  id: string;
929
947
  label: string;
@@ -1016,18 +1034,10 @@ declare function renderOrg(container: HTMLDivElement, parsed: ParsedOrg, layout:
1016
1034
  }, activeTagGroup?: string | null, hiddenAttributes?: Set<string>): void;
1017
1035
  declare function renderOrgForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1018
1036
 
1019
- interface KanbanTagEntry {
1020
- value: string;
1021
- color: string;
1022
- lineNumber: number;
1023
- }
1024
- interface KanbanTagGroup {
1025
- name: string;
1026
- alias?: string;
1027
- entries: KanbanTagEntry[];
1028
- defaultValue?: string;
1029
- lineNumber: number;
1030
- }
1037
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
1038
+ type KanbanTagEntry = TagEntry;
1039
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
1040
+ type KanbanTagGroup = TagGroup;
1031
1041
  interface KanbanCard {
1032
1042
  id: string;
1033
1043
  title: string;
@@ -1053,7 +1063,7 @@ interface ParsedKanban {
1053
1063
  tagGroups: KanbanTagGroup[];
1054
1064
  options: Record<string, string>;
1055
1065
  diagnostics: DgmoError[];
1056
- error?: string;
1066
+ error: string | null;
1057
1067
  }
1058
1068
 
1059
1069
  declare function parseKanban(content: string, palette?: PaletteColors): ParsedKanban;
@@ -1085,6 +1095,10 @@ declare function renderKanban(container: HTMLElement, parsed: ParsedKanban, pale
1085
1095
  }, activeTagGroup?: string | null): void;
1086
1096
  declare function renderKanbanForExport(content: string, theme: 'light' | 'dark' | 'transparent', palette: PaletteColors): string;
1087
1097
 
1098
+ /** @deprecated Use `TagEntry` from `utils/tag-groups` */
1099
+ type C4TagEntry = TagEntry;
1100
+ /** @deprecated Use `TagGroup` from `utils/tag-groups` */
1101
+ type C4TagGroup = TagGroup;
1088
1102
  type C4ElementType = 'person' | 'system' | 'container' | 'component';
1089
1103
  type C4Shape = 'default' | 'database' | 'cache' | 'queue' | 'cloud' | 'external';
1090
1104
  type C4ArrowType = 'sync' | 'async' | 'bidirectional' | 'bidirectional-async';
@@ -1125,7 +1139,7 @@ interface ParsedC4 {
1125
1139
  title: string | null;
1126
1140
  titleLineNumber: number | null;
1127
1141
  options: Record<string, string>;
1128
- tagGroups: OrgTagGroup[];
1142
+ tagGroups: TagGroup[];
1129
1143
  elements: C4Element[];
1130
1144
  relationships: C4Relationship[];
1131
1145
  deployment: C4DeploymentNode[];
@@ -1286,7 +1300,7 @@ interface ParsedInitiativeStatus {
1286
1300
  groups: ISGroup[];
1287
1301
  options: Record<string, string>;
1288
1302
  diagnostics: DgmoError[];
1289
- error?: string;
1303
+ error: string | null;
1290
1304
  }
1291
1305
 
1292
1306
  /**
@@ -1437,6 +1451,7 @@ interface RenderStep {
1437
1451
  label: string;
1438
1452
  messageIndex: number;
1439
1453
  async?: boolean;
1454
+ bidirectional?: boolean;
1440
1455
  }
1441
1456
  /**
1442
1457
  * Build an ordered render sequence from flat messages.
@@ -1554,4 +1569,4 @@ declare function decodeDiagramUrl(hash: string): DecodedDiagramUrl;
1554
1569
  */
1555
1570
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
1556
1571
 
1557
- 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 };
1572
+ 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 C4TagEntry, type 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 InlineSpan, 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, type TagEntry, type TagGroup, 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, parseInlineMarkdown, 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, truncateBareUrl };