@diagrammo/dgmo 0.8.9 → 0.8.11

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 (46) hide show
  1. package/AGENTS.md +3 -0
  2. package/dist/cli.cjs +245 -672
  3. package/dist/editor.cjs.map +1 -1
  4. package/dist/editor.d.cts +2 -3
  5. package/dist/editor.d.ts +2 -3
  6. package/dist/editor.js.map +1 -1
  7. package/dist/index.cjs +1623 -800
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +153 -1
  10. package/dist/index.d.ts +153 -1
  11. package/dist/index.js +1619 -802
  12. package/dist/index.js.map +1 -1
  13. package/docs/language-reference.md +28 -2
  14. package/gallery/fixtures/sitemap-full.dgmo +1 -0
  15. package/package.json +14 -17
  16. package/src/boxes-and-lines/layout.ts +48 -8
  17. package/src/boxes-and-lines/parser.ts +59 -13
  18. package/src/boxes-and-lines/renderer.ts +34 -138
  19. package/src/c4/layout.ts +31 -10
  20. package/src/c4/renderer.ts +25 -138
  21. package/src/class/renderer.ts +185 -186
  22. package/src/d3.ts +194 -222
  23. package/src/echarts.ts +56 -57
  24. package/src/editor/index.ts +1 -2
  25. package/src/er/renderer.ts +52 -245
  26. package/src/gantt/renderer.ts +140 -182
  27. package/src/gantt/resolver.ts +19 -14
  28. package/src/index.ts +23 -1
  29. package/src/infra/renderer.ts +91 -244
  30. package/src/kanban/renderer.ts +29 -133
  31. package/src/label-layout.ts +286 -0
  32. package/src/org/renderer.ts +103 -170
  33. package/src/render.ts +39 -9
  34. package/src/sequence/parser.ts +4 -0
  35. package/src/sequence/renderer.ts +47 -154
  36. package/src/sitemap/layout.ts +180 -38
  37. package/src/sitemap/parser.ts +64 -23
  38. package/src/sitemap/renderer.ts +73 -161
  39. package/src/utils/arrows.ts +1 -1
  40. package/src/utils/legend-constants.ts +6 -0
  41. package/src/utils/legend-d3.ts +400 -0
  42. package/src/utils/legend-layout.ts +491 -0
  43. package/src/utils/legend-svg.ts +28 -2
  44. package/src/utils/legend-types.ts +166 -0
  45. package/src/utils/parsing.ts +1 -1
  46. package/src/utils/tag-groups.ts +1 -1
package/dist/index.d.cts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { EChartsOption } from 'echarts';
2
+ import { Selection } from 'd3-selection';
2
3
  import * as d3Scale from 'd3-scale';
3
4
 
4
5
  type DgmoSeverity = 'error' | 'warning';
@@ -39,6 +40,11 @@ declare function render(content: string, options?: {
39
40
  c4System?: string;
40
41
  c4Container?: string;
41
42
  tagGroup?: string;
43
+ /** Legend state for export — controls which tag group is shown in exported SVG. */
44
+ legendState?: {
45
+ activeGroup?: string;
46
+ hiddenAttributes?: string[];
47
+ };
42
48
  }): Promise<string>;
43
49
 
44
50
  /**
@@ -191,6 +197,10 @@ declare const solarizedPalette: PaletteConfig;
191
197
 
192
198
  declare const tokyoNightPalette: PaletteConfig;
193
199
 
200
+ declare const draculaPalette: PaletteConfig;
201
+
202
+ declare const monokaiPalette: PaletteConfig;
203
+
194
204
  /**
195
205
  * Generates ~121 Mermaid theme variables from palette tokens.
196
206
  * Replaces the hardcoded lightThemeVars/darkThemeVars objects.
@@ -283,6 +293,134 @@ declare function parseDataRowValues(line: string, options?: {
283
293
  values: number[];
284
294
  } | null;
285
295
 
296
+ interface LegendState {
297
+ activeGroup: string | null;
298
+ hiddenAttributes?: Set<string>;
299
+ }
300
+ interface LegendCallbacks {
301
+ onGroupToggle?: (groupName: string) => void;
302
+ onVisibilityToggle?: (attribute: string) => void;
303
+ onStateChange?: (newState: LegendState) => void;
304
+ /** Called when an entry is hovered. Chart renderers can use this for cross-element highlighting. */
305
+ onEntryHover?: (groupName: string, entryValue: string | null) => void;
306
+ /** Called after each group <g> is rendered — lets chart renderers inject custom elements (swimlane icons, etc.) */
307
+ onGroupRendered?: (groupName: string, groupEl: D3Sel, isActive: boolean) => void;
308
+ }
309
+ interface LegendPosition {
310
+ placement: 'top-center';
311
+ titleRelation: 'below-title' | 'inline-with-title';
312
+ }
313
+ type LegendMode = 'fixed' | 'inline';
314
+ type LegendControlExportBehavior = 'include' | 'strip' | 'static';
315
+ interface LegendControl {
316
+ id: string;
317
+ /** SVG markup for the control icon, or a string label */
318
+ icon: string;
319
+ label?: string;
320
+ exportBehavior: LegendControlExportBehavior;
321
+ onClick?: () => void;
322
+ children?: LegendControlEntry[];
323
+ }
324
+ interface LegendControlEntry {
325
+ id: string;
326
+ label: string;
327
+ isActive?: boolean;
328
+ onClick?: () => void;
329
+ }
330
+ interface LegendConfig {
331
+ groups: LegendGroupData[];
332
+ position: LegendPosition;
333
+ controls?: LegendControl[];
334
+ mode: LegendMode;
335
+ /** Title width in pixels — used for inline-with-title computation */
336
+ titleWidth?: number;
337
+ /** Extra width (px) reserved after the pill inside an active capsule (e.g. for eye icon addon). Entries start after this offset. */
338
+ capsulePillAddonWidth?: number;
339
+ /** When true, groups with no entries are still rendered as collapsed pills. Default: false (empty groups hidden). */
340
+ showEmptyGroups?: boolean;
341
+ }
342
+ interface LegendPalette {
343
+ bg: string;
344
+ surface: string;
345
+ text: string;
346
+ textMuted: string;
347
+ primary?: string;
348
+ }
349
+ interface LegendPillLayout {
350
+ groupName: string;
351
+ x: number;
352
+ y: number;
353
+ width: number;
354
+ height: number;
355
+ isActive: boolean;
356
+ }
357
+ interface LegendEntryLayout {
358
+ value: string;
359
+ color: string;
360
+ x: number;
361
+ y: number;
362
+ dotCx: number;
363
+ dotCy: number;
364
+ textX: number;
365
+ textY: number;
366
+ }
367
+ interface LegendCapsuleLayout {
368
+ groupName: string;
369
+ x: number;
370
+ y: number;
371
+ width: number;
372
+ height: number;
373
+ pill: LegendPillLayout;
374
+ entries: LegendEntryLayout[];
375
+ /** Overflow indicator when entries exceed max rows */
376
+ moreCount?: number;
377
+ /** X offset where addon content (e.g. eye icon) can be placed — after pill, before entries */
378
+ addonX?: number;
379
+ }
380
+ interface LegendControlLayout {
381
+ id: string;
382
+ x: number;
383
+ y: number;
384
+ width: number;
385
+ height: number;
386
+ icon: string;
387
+ label?: string;
388
+ exportBehavior: LegendControlExportBehavior;
389
+ children?: Array<{
390
+ id: string;
391
+ label: string;
392
+ x: number;
393
+ y: number;
394
+ width: number;
395
+ isActive?: boolean;
396
+ }>;
397
+ }
398
+ interface LegendRowLayout {
399
+ y: number;
400
+ items: Array<LegendPillLayout | LegendCapsuleLayout | LegendControlLayout>;
401
+ }
402
+ interface LegendLayout {
403
+ /** Total computed height including all rows */
404
+ height: number;
405
+ /** Total computed width */
406
+ width: number;
407
+ /** Rows of legend elements (pills wrap to new rows on overflow) */
408
+ rows: LegendRowLayout[];
409
+ /** Active capsule layout (if any group is active) */
410
+ activeCapsule?: LegendCapsuleLayout;
411
+ /** Control layouts (right-aligned) */
412
+ controls: LegendControlLayout[];
413
+ /** All pill layouts (collapsed groups) */
414
+ pills: LegendPillLayout[];
415
+ }
416
+ interface LegendHandle {
417
+ setState: (state: LegendState) => void;
418
+ destroy: () => void;
419
+ getHeight: () => number;
420
+ getLayout: () => LegendLayout;
421
+ }
422
+ type D3Sel = Selection<any, unknown, any, unknown>;
423
+
286
424
  interface LegendGroupData {
287
425
  name: string;
288
426
  entries: Array<{
@@ -313,6 +451,9 @@ interface LegendRenderResult {
313
451
  width: number;
314
452
  }
315
453
  declare function renderLegendSvg(groups: LegendGroupData[], options: LegendRenderOptions): LegendRenderResult;
454
+ declare function renderLegendSvgFromConfig(config: LegendConfig, state: LegendState, palette: LegendPalette & {
455
+ isDark: boolean;
456
+ }, containerWidth: number): LegendRenderResult;
316
457
 
317
458
  type ExtendedChartType = 'sankey' | 'chord' | 'function' | 'scatter' | 'heatmap' | 'funnel';
318
459
  interface ExtendedChartDataPoint {
@@ -709,6 +850,7 @@ interface SequenceMessage {
709
850
  interface ElseIfBranch {
710
851
  label: string;
711
852
  children: SequenceElement[];
853
+ lineNumber: number;
712
854
  }
713
855
  interface SequenceBlock {
714
856
  kind: 'block';
@@ -717,6 +859,7 @@ interface SequenceBlock {
717
859
  children: SequenceElement[];
718
860
  elseChildren: SequenceElement[];
719
861
  elseIfBranches?: ElseIfBranch[];
862
+ elseLineNumber?: number;
720
863
  lineNumber: number;
721
864
  }
722
865
  /**
@@ -1568,6 +1711,8 @@ interface BLLayoutEdge {
1568
1711
  yOffset: number;
1569
1712
  parallelCount: number;
1570
1713
  metadata: Record<string, string>;
1714
+ /** True for edges deferred from dagre (group endpoints) — use linear curve */
1715
+ deferred?: boolean;
1571
1716
  }
1572
1717
  interface BLLayoutGroup {
1573
1718
  label: string;
@@ -1694,6 +1839,8 @@ interface SitemapLayoutEdge {
1694
1839
  label?: string;
1695
1840
  color?: string;
1696
1841
  lineNumber: number;
1842
+ /** True for edges deferred from dagre (container endpoints) — use linear curve */
1843
+ deferred?: boolean;
1697
1844
  }
1698
1845
  interface SitemapContainerBounds {
1699
1846
  nodeId: string;
@@ -2277,6 +2424,11 @@ declare function renderFlowchartForExport(content: string, theme: 'light' | 'dar
2277
2424
 
2278
2425
  declare const LEGEND_HEIGHT = 28;
2279
2426
 
2427
+ declare function renderLegendD3(container: D3Sel, config: LegendConfig, state: LegendState, palette: LegendPalette, isDark: boolean, callbacks?: LegendCallbacks, containerWidth?: number): LegendHandle;
2428
+
2429
+ declare function computeLegendLayout(config: LegendConfig, state: LegendState, containerWidth: number): LegendLayout;
2430
+ declare function getLegendReservedHeight(config: LegendConfig, state: LegendState, containerWidth: number): number;
2431
+
2280
2432
  interface SectionMessageGroup {
2281
2433
  section: SequenceSection;
2282
2434
  messageIndices: number[];
@@ -2446,4 +2598,4 @@ declare function parseFirstLine(line: string): {
2446
2598
  */
2447
2599
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
2448
2600
 
2449
- export { ALL_CHART_TYPES, 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 ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DiagramViewState, 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 LegendGroupData, METADATA_KEY_SET, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PIPE_METADATA, type PaletteColors, type PaletteConfig, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedVisualization, type ParticipantType, type PipeKeySpec, 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, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, buildThemeCSS, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseOrgTree, collapseSitemapTree, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeInfra, computeInfraLegendGroups, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getPalette, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, injectBranding, isArchiveColumn, isExtendedChartType, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutOrg, layoutSitemap, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInfra, parseInlineMarkdown, parseKanban, parseOrg, parseQuadrant, 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, renderLegendSvg, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra };
2601
+ export { ALL_CHART_TYPES, 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 ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DiagramViewState, 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 ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedVisualization, type ParticipantType, type PipeKeySpec, 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, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, buildThemeCSS, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseOrgTree, collapseSitemapTree, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, draculaPalette, encodeDiagramUrl, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getPalette, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, injectBranding, isArchiveColumn, isExtendedChartType, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutOrg, layoutSitemap, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, monokaiPalette, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInfra, parseInlineMarkdown, parseKanban, parseOrg, parseQuadrant, 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, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { EChartsOption } from 'echarts';
2
+ import { Selection } from 'd3-selection';
2
3
  import * as d3Scale from 'd3-scale';
3
4
 
4
5
  type DgmoSeverity = 'error' | 'warning';
@@ -39,6 +40,11 @@ declare function render(content: string, options?: {
39
40
  c4System?: string;
40
41
  c4Container?: string;
41
42
  tagGroup?: string;
43
+ /** Legend state for export — controls which tag group is shown in exported SVG. */
44
+ legendState?: {
45
+ activeGroup?: string;
46
+ hiddenAttributes?: string[];
47
+ };
42
48
  }): Promise<string>;
43
49
 
44
50
  /**
@@ -191,6 +197,10 @@ declare const solarizedPalette: PaletteConfig;
191
197
 
192
198
  declare const tokyoNightPalette: PaletteConfig;
193
199
 
200
+ declare const draculaPalette: PaletteConfig;
201
+
202
+ declare const monokaiPalette: PaletteConfig;
203
+
194
204
  /**
195
205
  * Generates ~121 Mermaid theme variables from palette tokens.
196
206
  * Replaces the hardcoded lightThemeVars/darkThemeVars objects.
@@ -283,6 +293,134 @@ declare function parseDataRowValues(line: string, options?: {
283
293
  values: number[];
284
294
  } | null;
285
295
 
296
+ interface LegendState {
297
+ activeGroup: string | null;
298
+ hiddenAttributes?: Set<string>;
299
+ }
300
+ interface LegendCallbacks {
301
+ onGroupToggle?: (groupName: string) => void;
302
+ onVisibilityToggle?: (attribute: string) => void;
303
+ onStateChange?: (newState: LegendState) => void;
304
+ /** Called when an entry is hovered. Chart renderers can use this for cross-element highlighting. */
305
+ onEntryHover?: (groupName: string, entryValue: string | null) => void;
306
+ /** Called after each group <g> is rendered — lets chart renderers inject custom elements (swimlane icons, etc.) */
307
+ onGroupRendered?: (groupName: string, groupEl: D3Sel, isActive: boolean) => void;
308
+ }
309
+ interface LegendPosition {
310
+ placement: 'top-center';
311
+ titleRelation: 'below-title' | 'inline-with-title';
312
+ }
313
+ type LegendMode = 'fixed' | 'inline';
314
+ type LegendControlExportBehavior = 'include' | 'strip' | 'static';
315
+ interface LegendControl {
316
+ id: string;
317
+ /** SVG markup for the control icon, or a string label */
318
+ icon: string;
319
+ label?: string;
320
+ exportBehavior: LegendControlExportBehavior;
321
+ onClick?: () => void;
322
+ children?: LegendControlEntry[];
323
+ }
324
+ interface LegendControlEntry {
325
+ id: string;
326
+ label: string;
327
+ isActive?: boolean;
328
+ onClick?: () => void;
329
+ }
330
+ interface LegendConfig {
331
+ groups: LegendGroupData[];
332
+ position: LegendPosition;
333
+ controls?: LegendControl[];
334
+ mode: LegendMode;
335
+ /** Title width in pixels — used for inline-with-title computation */
336
+ titleWidth?: number;
337
+ /** Extra width (px) reserved after the pill inside an active capsule (e.g. for eye icon addon). Entries start after this offset. */
338
+ capsulePillAddonWidth?: number;
339
+ /** When true, groups with no entries are still rendered as collapsed pills. Default: false (empty groups hidden). */
340
+ showEmptyGroups?: boolean;
341
+ }
342
+ interface LegendPalette {
343
+ bg: string;
344
+ surface: string;
345
+ text: string;
346
+ textMuted: string;
347
+ primary?: string;
348
+ }
349
+ interface LegendPillLayout {
350
+ groupName: string;
351
+ x: number;
352
+ y: number;
353
+ width: number;
354
+ height: number;
355
+ isActive: boolean;
356
+ }
357
+ interface LegendEntryLayout {
358
+ value: string;
359
+ color: string;
360
+ x: number;
361
+ y: number;
362
+ dotCx: number;
363
+ dotCy: number;
364
+ textX: number;
365
+ textY: number;
366
+ }
367
+ interface LegendCapsuleLayout {
368
+ groupName: string;
369
+ x: number;
370
+ y: number;
371
+ width: number;
372
+ height: number;
373
+ pill: LegendPillLayout;
374
+ entries: LegendEntryLayout[];
375
+ /** Overflow indicator when entries exceed max rows */
376
+ moreCount?: number;
377
+ /** X offset where addon content (e.g. eye icon) can be placed — after pill, before entries */
378
+ addonX?: number;
379
+ }
380
+ interface LegendControlLayout {
381
+ id: string;
382
+ x: number;
383
+ y: number;
384
+ width: number;
385
+ height: number;
386
+ icon: string;
387
+ label?: string;
388
+ exportBehavior: LegendControlExportBehavior;
389
+ children?: Array<{
390
+ id: string;
391
+ label: string;
392
+ x: number;
393
+ y: number;
394
+ width: number;
395
+ isActive?: boolean;
396
+ }>;
397
+ }
398
+ interface LegendRowLayout {
399
+ y: number;
400
+ items: Array<LegendPillLayout | LegendCapsuleLayout | LegendControlLayout>;
401
+ }
402
+ interface LegendLayout {
403
+ /** Total computed height including all rows */
404
+ height: number;
405
+ /** Total computed width */
406
+ width: number;
407
+ /** Rows of legend elements (pills wrap to new rows on overflow) */
408
+ rows: LegendRowLayout[];
409
+ /** Active capsule layout (if any group is active) */
410
+ activeCapsule?: LegendCapsuleLayout;
411
+ /** Control layouts (right-aligned) */
412
+ controls: LegendControlLayout[];
413
+ /** All pill layouts (collapsed groups) */
414
+ pills: LegendPillLayout[];
415
+ }
416
+ interface LegendHandle {
417
+ setState: (state: LegendState) => void;
418
+ destroy: () => void;
419
+ getHeight: () => number;
420
+ getLayout: () => LegendLayout;
421
+ }
422
+ type D3Sel = Selection<any, unknown, any, unknown>;
423
+
286
424
  interface LegendGroupData {
287
425
  name: string;
288
426
  entries: Array<{
@@ -313,6 +451,9 @@ interface LegendRenderResult {
313
451
  width: number;
314
452
  }
315
453
  declare function renderLegendSvg(groups: LegendGroupData[], options: LegendRenderOptions): LegendRenderResult;
454
+ declare function renderLegendSvgFromConfig(config: LegendConfig, state: LegendState, palette: LegendPalette & {
455
+ isDark: boolean;
456
+ }, containerWidth: number): LegendRenderResult;
316
457
 
317
458
  type ExtendedChartType = 'sankey' | 'chord' | 'function' | 'scatter' | 'heatmap' | 'funnel';
318
459
  interface ExtendedChartDataPoint {
@@ -709,6 +850,7 @@ interface SequenceMessage {
709
850
  interface ElseIfBranch {
710
851
  label: string;
711
852
  children: SequenceElement[];
853
+ lineNumber: number;
712
854
  }
713
855
  interface SequenceBlock {
714
856
  kind: 'block';
@@ -717,6 +859,7 @@ interface SequenceBlock {
717
859
  children: SequenceElement[];
718
860
  elseChildren: SequenceElement[];
719
861
  elseIfBranches?: ElseIfBranch[];
862
+ elseLineNumber?: number;
720
863
  lineNumber: number;
721
864
  }
722
865
  /**
@@ -1568,6 +1711,8 @@ interface BLLayoutEdge {
1568
1711
  yOffset: number;
1569
1712
  parallelCount: number;
1570
1713
  metadata: Record<string, string>;
1714
+ /** True for edges deferred from dagre (group endpoints) — use linear curve */
1715
+ deferred?: boolean;
1571
1716
  }
1572
1717
  interface BLLayoutGroup {
1573
1718
  label: string;
@@ -1694,6 +1839,8 @@ interface SitemapLayoutEdge {
1694
1839
  label?: string;
1695
1840
  color?: string;
1696
1841
  lineNumber: number;
1842
+ /** True for edges deferred from dagre (container endpoints) — use linear curve */
1843
+ deferred?: boolean;
1697
1844
  }
1698
1845
  interface SitemapContainerBounds {
1699
1846
  nodeId: string;
@@ -2277,6 +2424,11 @@ declare function renderFlowchartForExport(content: string, theme: 'light' | 'dar
2277
2424
 
2278
2425
  declare const LEGEND_HEIGHT = 28;
2279
2426
 
2427
+ declare function renderLegendD3(container: D3Sel, config: LegendConfig, state: LegendState, palette: LegendPalette, isDark: boolean, callbacks?: LegendCallbacks, containerWidth?: number): LegendHandle;
2428
+
2429
+ declare function computeLegendLayout(config: LegendConfig, state: LegendState, containerWidth: number): LegendLayout;
2430
+ declare function getLegendReservedHeight(config: LegendConfig, state: LegendState, containerWidth: number): number;
2431
+
2280
2432
  interface SectionMessageGroup {
2281
2433
  section: SequenceSection;
2282
2434
  messageIndices: number[];
@@ -2446,4 +2598,4 @@ declare function parseFirstLine(line: string): {
2446
2598
  */
2447
2599
  declare function injectBranding(svgHtml: string, mutedColor: string): string;
2448
2600
 
2449
- export { ALL_CHART_TYPES, 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 ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DiagramViewState, 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 LegendGroupData, METADATA_KEY_SET, type MemberVisibility, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PIPE_METADATA, type PaletteColors, type PaletteConfig, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedVisualization, type ParticipantType, type PipeKeySpec, 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, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, buildThemeCSS, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseOrgTree, collapseSitemapTree, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeInfra, computeInfraLegendGroups, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, encodeDiagramUrl, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getPalette, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, injectBranding, isArchiveColumn, isExtendedChartType, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutOrg, layoutSitemap, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInfra, parseInlineMarkdown, parseKanban, parseOrg, parseQuadrant, 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, renderLegendSvg, renderOrg, renderOrgForExport, renderQuadrant, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSlopeChart, renderState, renderStateForExport, renderTimeline, renderVenn, renderWordCloud, resolveColor, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra };
2601
+ export { ALL_CHART_TYPES, 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 ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type D3ExportDimensions, type DecodedDiagramUrl, type DgmoError, type DgmoSeverity, type DiagramSymbols, type DiagramViewState, 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 ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedERDiagram, type ParsedExtendedChart, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedKanban, type ParsedOrg, type ParsedQuadrant, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedVisualization, type ParticipantType, type PipeKeySpec, 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, applyGroupOrdering, applyPositionOverrides, boldPalette, buildExtendedChartOption, buildMermaidQuadrant, buildMermaidThemeVars, buildNoteMessageMap, buildRenderSequence, buildSimpleChartOption, buildTagLaneRowList, buildThemeCSS, calculateSchedule, catppuccinPalette, collapseBoxesAndLines, collapseOrgTree, collapseSitemapTree, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeScatterLabelGraphics, computeTimeTicks, contrastText, decodeDiagramUrl, draculaPalette, encodeDiagramUrl, extractDiagramSymbols, extractTagDeclarations, formatDateLabel, formatDgmoError, getAvailablePalettes, getExtendedChartLegendGroups, getLegendReservedHeight, getPalette, getRenderCategory, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, gruvboxPalette, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, injectBranding, isArchiveColumn, isExtendedChartType, isSequenceBlock, isSequenceNote, isValidHex, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutGraph, layoutInfra, layoutOrg, layoutSitemap, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeSequence, looksLikeSitemap, looksLikeState, makeDgmoError, monokaiPalette, mute, nord, nordPalette, oneDarkPalette, orderArcNodes, parseAndLayoutInfra, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseDataRowValues, parseDgmo, parseDgmoChartType, parseERDiagram, parseExtendedChart, parseFirstLine, parseFlowchart, parseGantt, parseInfra, parseInlineMarkdown, parseKanban, parseOrg, parseQuadrant, 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, resolveOrgImports, resolveTaskName, rollUpContextRelationships, rosePinePalette, seriesColors, shade, solarizedPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra };