@diagrammo/dgmo 0.15.0 → 0.15.1

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 (64) hide show
  1. package/README.md +14 -1
  2. package/dist/advanced.cjs +53069 -0
  3. package/dist/advanced.d.cts +4691 -0
  4. package/dist/advanced.d.ts +4691 -0
  5. package/dist/advanced.js +52823 -0
  6. package/dist/auto.cjs +1495 -1288
  7. package/dist/auto.js +132 -109
  8. package/dist/auto.mjs +1491 -1284
  9. package/dist/cli.cjs +173 -150
  10. package/dist/index.cjs +1486 -1276
  11. package/dist/index.d.cts +45 -1
  12. package/dist/index.d.ts +45 -1
  13. package/dist/index.js +1481 -1272
  14. package/dist/internal.cjs +1497 -1289
  15. package/dist/internal.d.cts +80 -79
  16. package/dist/internal.d.ts +80 -79
  17. package/dist/internal.js +1492 -1285
  18. package/dist/pert.cjs +325 -0
  19. package/dist/pert.d.cts +542 -0
  20. package/dist/pert.d.ts +542 -0
  21. package/dist/pert.js +294 -0
  22. package/package.json +28 -3
  23. package/src/advanced.ts +731 -0
  24. package/src/auto/index.ts +14 -13
  25. package/src/boxes-and-lines/layout.ts +481 -445
  26. package/src/c4/parser.ts +7 -7
  27. package/src/chart-types.ts +0 -5
  28. package/src/class/parser.ts +1 -9
  29. package/src/cli.ts +9 -7
  30. package/src/completion-types.ts +28 -0
  31. package/src/completion.ts +15 -18
  32. package/src/cycle/layout.ts +2 -2
  33. package/src/d3.ts +1455 -1122
  34. package/src/echarts.ts +11 -11
  35. package/src/er/parser.ts +1 -9
  36. package/src/er/renderer.ts +1 -1
  37. package/src/gantt/calculator.ts +1 -11
  38. package/src/gantt/parser.ts +16 -16
  39. package/src/gantt/renderer.ts +2 -2
  40. package/src/graph/flowchart-parser.ts +1 -1
  41. package/src/graph/flowchart-renderer.ts +1 -1
  42. package/src/graph/state-renderer.ts +1 -1
  43. package/src/index.ts +17 -1
  44. package/src/infra/parser.ts +19 -19
  45. package/src/infra/renderer.ts +2 -2
  46. package/src/internal.ts +9 -721
  47. package/src/kanban/parser.ts +2 -2
  48. package/src/mindmap/layout.ts +1 -1
  49. package/src/mindmap/parser.ts +1 -1
  50. package/src/org/parser.ts +1 -1
  51. package/src/org/renderer.ts +1 -1
  52. package/src/pert/layout.ts +1 -1
  53. package/src/pert/monte-carlo.ts +2 -2
  54. package/src/pert/parser.ts +3 -3
  55. package/src/raci/parser.ts +4 -4
  56. package/src/raci/renderer.ts +1 -1
  57. package/src/sequence/renderer.ts +1 -4
  58. package/src/sitemap/parser.ts +1 -1
  59. package/src/tech-radar/interactive.ts +1 -1
  60. package/src/tech-radar/renderer.ts +1 -1
  61. package/src/utils/tag-groups.ts +11 -12
  62. package/src/wireframe/layout.ts +11 -7
  63. package/src/wireframe/parser.ts +2 -2
  64. package/src/wireframe/renderer.ts +5 -2
@@ -0,0 +1,731 @@
1
+ // ============================================================
2
+ // @diagrammo/dgmo/advanced — low-level building blocks for first-party
3
+ // and advanced consumers (parsers, layout helpers, internal types).
4
+ //
5
+ // **No semver guarantee.** Exports here may be renamed, removed, or
6
+ // behave differently between MINOR versions. Patch versions will only
7
+ // change behavior to fix bugs.
8
+ //
9
+ // Use only when the public root API at `@diagrammo/dgmo` cannot meet
10
+ // your needs. Pin your `@diagrammo/dgmo` dependency tight if you depend
11
+ // on /advanced symbols.
12
+ //
13
+ // (Previously published as `/internal`. The old subpath is kept as a
14
+ // deprecated alias for one minor and will be removed in 0.17.x.)
15
+ // ============================================================
16
+
17
+ // ============================================================
18
+ // Diagnostics
19
+ // ============================================================
20
+
21
+ export { makeDgmoError, formatDgmoError } from './diagnostics';
22
+ export type { DgmoError, DgmoSeverity } from './diagnostics';
23
+
24
+ // ============================================================
25
+ // Arrow helpers (in-arrow label validation)
26
+ // ============================================================
27
+
28
+ export {
29
+ parseInArrowLabel,
30
+ validateLabelCharacters,
31
+ matchColorParens,
32
+ ARROW_DIAGNOSTIC_CODES,
33
+ } from './utils/arrows';
34
+ export type { ParseInArrowLabelResult } from './utils/arrows';
35
+
36
+ // ============================================================
37
+ // Unified API
38
+ // ============================================================
39
+
40
+ export { render } from './render';
41
+
42
+ // ============================================================
43
+ // Chart-type registry (single source of truth)
44
+ // ============================================================
45
+
46
+ export { chartTypes } from './chart-types';
47
+ export type { ChartTypeMeta } from './chart-types';
48
+
49
+ export {
50
+ normalize as normalizeChartTypePrompt,
51
+ matchesContiguously,
52
+ scoreChartType,
53
+ confidence as chartTypeConfidence,
54
+ suggestChartTypes,
55
+ MIN_PRIMARY_SCORE,
56
+ AMBIGUITY_THRESHOLD,
57
+ } from './chart-type-scoring';
58
+ export type {
59
+ ChartTypeScore,
60
+ Confidence as ChartTypeConfidence,
61
+ SuggestionResult as ChartTypeSuggestionResult,
62
+ } from './chart-type-scoring';
63
+
64
+ // ============================================================
65
+ // Router
66
+ // ============================================================
67
+
68
+ export {
69
+ parseDgmoChartType,
70
+ parseDgmo,
71
+ getRenderCategory,
72
+ isExtendedChartType,
73
+ getAllChartTypes,
74
+ CHART_TYPE_DESCRIPTIONS,
75
+ chartTypeParsers,
76
+ knownChartTypeIds,
77
+ } from './dgmo-router';
78
+ export type { RenderCategory } from './dgmo-router';
79
+
80
+ // ============================================================
81
+ // Parsers
82
+ // ============================================================
83
+
84
+ export { parseChart, parseDataRowValues } from './chart';
85
+ export type { ParsedChart, ChartType, ChartDataPoint, ChartEra } from './chart';
86
+
87
+ export { parseExtendedChart } from './echarts';
88
+ export type { ParsedExtendedChart, ExtendedChartType } from './echarts';
89
+
90
+ export {
91
+ parseVisualization,
92
+ orderArcNodes,
93
+ parseTimelineDate,
94
+ addDurationToDate,
95
+ formatDateLabel,
96
+ } from './d3';
97
+ export { computeTimeTicks } from './utils/time-ticks';
98
+ export type {
99
+ ParsedVisualization,
100
+ VisualizationType,
101
+ D3ExportDimensions,
102
+ ArcLink,
103
+ ArcNodeGroup,
104
+ } from './d3';
105
+
106
+ export {
107
+ parseSequenceDgmo,
108
+ parseSequenceDgmo as parseSequenceDiagram,
109
+ looksLikeSequence,
110
+ isSequenceBlock,
111
+ isSequenceNote,
112
+ } from './sequence/parser';
113
+ export type {
114
+ ParsedSequenceDgmo,
115
+ SequenceParticipant,
116
+ SequenceMessage,
117
+ SequenceBlock,
118
+ ElseIfBranch,
119
+ SequenceSection,
120
+ SequenceNote,
121
+ SequenceElement,
122
+ SequenceGroup,
123
+ ParticipantType,
124
+ } from './sequence/parser';
125
+
126
+ export {
127
+ inferParticipantType,
128
+ RULE_COUNT,
129
+ } from './sequence/participant-inference';
130
+
131
+ export { parseFlowchart, looksLikeFlowchart } from './graph/flowchart-parser';
132
+
133
+ export { parseState, looksLikeState } from './graph/state-parser';
134
+ export { renderState, renderStateForExport } from './graph/state-renderer';
135
+ export { collapseStateGroups } from './graph/state-collapse';
136
+ export type { StateCollapseResult } from './graph/state-collapse';
137
+
138
+ export { parseClassDiagram, looksLikeClassDiagram } from './class/parser';
139
+
140
+ export type {
141
+ ParsedClassDiagram,
142
+ ClassNode,
143
+ ClassMember,
144
+ ClassRelationship,
145
+ ClassModifier,
146
+ MemberVisibility,
147
+ RelationshipType,
148
+ } from './class/types';
149
+
150
+ export { layoutClassDiagram } from './class/layout';
151
+ export type {
152
+ ClassLayoutResult,
153
+ ClassLayoutNode,
154
+ ClassLayoutEdge,
155
+ } from './class/layout';
156
+
157
+ export {
158
+ renderClassDiagram,
159
+ renderClassDiagramForExport,
160
+ } from './class/renderer';
161
+
162
+ export { parseERDiagram, looksLikeERDiagram } from './er/parser';
163
+
164
+ export type {
165
+ ParsedERDiagram,
166
+ ERTable,
167
+ ERColumn,
168
+ ERRelationship,
169
+ ERConstraint,
170
+ ERCardinality,
171
+ } from './er/types';
172
+
173
+ export { layoutERDiagram } from './er/layout';
174
+ export type { ERLayoutResult, ERLayoutNode, ERLayoutEdge } from './er/layout';
175
+
176
+ export { renderERDiagram, renderERDiagramForExport } from './er/renderer';
177
+
178
+ export type {
179
+ ParsedGraph,
180
+ GraphNode,
181
+ GraphEdge,
182
+ GraphGroup,
183
+ GraphShape,
184
+ GraphDirection,
185
+ } from './graph/types';
186
+
187
+ export type { TagGroup, TagEntry } from './utils/tag-groups';
188
+
189
+ export { parseInlineMarkdown, truncateBareUrl } from './utils/inline-markdown';
190
+ export type { InlineSpan } from './utils/inline-markdown';
191
+
192
+ export {
193
+ normalizeName,
194
+ displayName,
195
+ getOrCreateName,
196
+ } from './utils/name-normalize';
197
+ export type { NameEntry, GetOrCreateNameResult } from './utils/name-normalize';
198
+
199
+ export { parseOrg } from './org/parser';
200
+ export type { ParsedOrg, OrgNode } from './org/parser';
201
+
202
+ export { layoutOrg } from './org/layout';
203
+ export type {
204
+ OrgLayoutResult,
205
+ OrgLayoutNode,
206
+ OrgLayoutEdge,
207
+ OrgContainerBounds,
208
+ } from './org/layout';
209
+
210
+ export { renderOrg, renderOrgForExport } from './org/renderer';
211
+
212
+ export { parseKanban } from './kanban/parser';
213
+ export type {
214
+ ParsedKanban,
215
+ KanbanColumn,
216
+ KanbanCard,
217
+ KanbanTagGroup,
218
+ KanbanTagEntry,
219
+ } from './kanban/types';
220
+ export {
221
+ computeCardMove,
222
+ computeCardArchive,
223
+ isArchiveColumn,
224
+ } from './kanban/mutations';
225
+ export { renderKanban, renderKanbanForExport } from './kanban/renderer';
226
+
227
+ export { parseC4 } from './c4/parser';
228
+ export type {
229
+ ParsedC4,
230
+ C4Element,
231
+ C4ElementType,
232
+ C4Shape,
233
+ C4ArrowType,
234
+ C4Relationship,
235
+ C4Group,
236
+ C4DeploymentNode,
237
+ C4TagGroup,
238
+ C4TagEntry,
239
+ } from './c4/types';
240
+
241
+ export {
242
+ layoutC4Context,
243
+ layoutC4Containers,
244
+ layoutC4Components,
245
+ layoutC4Deployment,
246
+ rollUpContextRelationships,
247
+ } from './c4/layout';
248
+ export type {
249
+ C4LayoutResult,
250
+ C4LayoutNode,
251
+ C4LayoutEdge,
252
+ C4LayoutBoundary,
253
+ C4LegendGroup,
254
+ C4LegendEntry,
255
+ ContextRelationship,
256
+ } from './c4/layout';
257
+
258
+ export {
259
+ renderC4Context,
260
+ renderC4ContextForExport,
261
+ renderC4Containers,
262
+ renderC4ContainersForExport,
263
+ renderC4ComponentsForExport,
264
+ renderC4Deployment,
265
+ renderC4DeploymentForExport,
266
+ } from './c4/renderer';
267
+
268
+ export { parseBoxesAndLines } from './boxes-and-lines/parser';
269
+ export type {
270
+ ParsedBoxesAndLines,
271
+ BLNode,
272
+ BLEdge,
273
+ BLGroup,
274
+ } from './boxes-and-lines/types';
275
+ export { layoutBoxesAndLines } from './boxes-and-lines/layout';
276
+ export type {
277
+ BLLayoutResult,
278
+ BLLayoutNode,
279
+ BLLayoutEdge,
280
+ BLLayoutGroup,
281
+ } from './boxes-and-lines/layout';
282
+ export {
283
+ renderBoxesAndLines,
284
+ renderBoxesAndLinesForExport,
285
+ } from './boxes-and-lines/renderer';
286
+
287
+ export { collapseBoxesAndLines } from './boxes-and-lines/collapse';
288
+ export type { BLCollapseResult } from './boxes-and-lines/collapse';
289
+
290
+ export { parseSitemap, looksLikeSitemap } from './sitemap/parser';
291
+
292
+ export type {
293
+ ParsedSitemap,
294
+ SitemapNode,
295
+ SitemapEdge,
296
+ SitemapDirection,
297
+ } from './sitemap/types';
298
+
299
+ export { layoutSitemap } from './sitemap/layout';
300
+ export type {
301
+ SitemapLayoutResult,
302
+ SitemapLayoutNode,
303
+ SitemapLayoutEdge,
304
+ SitemapContainerBounds,
305
+ SitemapLegendGroup,
306
+ SitemapLegendEntry,
307
+ } from './sitemap/layout';
308
+
309
+ export { renderSitemap, renderSitemapForExport } from './sitemap/renderer';
310
+
311
+ export { collapseSitemapTree } from './sitemap/collapse';
312
+
313
+ // ── Infra Chart ────────────────────────────────────────────
314
+ export { parseInfra } from './infra/parser';
315
+ export type {
316
+ ParsedInfra,
317
+ InfraNode,
318
+ InfraEdge,
319
+ InfraGroup,
320
+ InfraTagGroup,
321
+ InfraProperty,
322
+ InfraDiagnostic,
323
+ InfraComputeParams,
324
+ InfraBehaviorKey,
325
+ } from './infra/types';
326
+ export { INFRA_BEHAVIOR_KEYS } from './infra/types';
327
+ export { computeInfra } from './infra/compute';
328
+ export type {
329
+ ComputedInfraModel,
330
+ ComputedInfraNode,
331
+ ComputedInfraEdge,
332
+ InfraLatencyPercentiles,
333
+ InfraAvailabilityPercentiles,
334
+ InfraCbState,
335
+ } from './infra/types';
336
+ export { validateInfra, validateComputed } from './infra/validation';
337
+ export { inferRoles, collectDiagramRoles } from './infra/roles';
338
+ export type { InfraRole } from './infra/roles';
339
+ export { layoutInfra } from './infra/layout';
340
+ export type {
341
+ InfraLayoutResult,
342
+ InfraLayoutNode,
343
+ InfraLayoutEdge,
344
+ InfraLayoutGroup,
345
+ } from './infra/layout';
346
+ export {
347
+ renderInfra,
348
+ parseAndLayoutInfra,
349
+ computeInfraLegendGroups,
350
+ } from './infra/renderer';
351
+ export type { InfraLegendGroup, InfraPlaybackState } from './infra/renderer';
352
+ export type { CollapsedSitemapResult } from './sitemap/collapse';
353
+
354
+ // ── Gantt Chart ───────────────────────────────────────────
355
+ export { parseGantt } from './gantt/parser';
356
+ export { calculateSchedule } from './gantt/calculator';
357
+ export { renderGantt, buildTagLaneRowList } from './gantt/renderer';
358
+ export type {
359
+ GanttInteractiveOptions,
360
+ GanttRow,
361
+ GanttGroupRow,
362
+ GanttTaskRow,
363
+ GanttLaneHeaderRow,
364
+ } from './gantt/renderer';
365
+ export { resolveTaskName, collectTasks } from './gantt/resolver';
366
+ export type {
367
+ ParsedGantt,
368
+ GanttTask,
369
+ GanttGroup,
370
+ GanttParallelBlock,
371
+ GanttNode,
372
+ GanttDependency,
373
+ GanttHolidays,
374
+ GanttEra,
375
+ GanttMarker,
376
+ GanttOptions,
377
+ Duration,
378
+ DurationUnit,
379
+ ResolvedSchedule,
380
+ ResolvedTask,
381
+ ResolvedGroup,
382
+ } from './gantt/types';
383
+
384
+ // ── PERT Diagram ──────────────────────────────────────────
385
+ export { parsePert, looksLikePert, extractPertSymbols } from './pert/parser';
386
+ export { analyzePert } from './pert/analyzer';
387
+ export { layoutPert, relayoutPert } from './pert/layout';
388
+ export type { LayoutOverrides as PertLayoutOverrides } from './pert/internal';
389
+ export { normalizePertSourceForShare } from './pert/share-normalize';
390
+
391
+ // Monte Carlo simulator surface (formerly the `/pert` subpath, now folded
392
+ // in here since there were zero subpath consumers and modern tree-shaking
393
+ // handles the Web Worker bundle-size case).
394
+ export {
395
+ mulberry32,
396
+ sampleBetaPert,
397
+ simulateCanonical,
398
+ simulateFast,
399
+ buildSimulationContext,
400
+ } from './pert/monte-carlo';
401
+ export type { ExpandedActivity, SimulateOptions } from './pert/monte-carlo';
402
+ export {
403
+ renderPert,
404
+ renderPertForExport,
405
+ renderPertAnalysisBlock,
406
+ measurePertAnalysisBlock,
407
+ highlightPertCriticalPath,
408
+ highlightPertSet,
409
+ pertLegendEntries,
410
+ pertLegendBlockWidth,
411
+ PERT_LEGEND_PILL_HEIGHT,
412
+ renderLegendBlock as renderPertLegendBlock,
413
+ resetPertCriticalPath,
414
+ resetPertHighlight,
415
+ } from './pert/renderer';
416
+ export type { PertRenderOptions } from './pert/renderer';
417
+ export type {
418
+ Anchor as PertAnchor,
419
+ ParsedPert,
420
+ PertActivity,
421
+ PertEdge,
422
+ PertGroup,
423
+ PertMilestone,
424
+ PertOptions,
425
+ PertDirection,
426
+ NodeDetail,
427
+ ResolvedActivity,
428
+ ResolvedGroup as ResolvedPertGroup,
429
+ ResolvedPert,
430
+ MonteCarloResult,
431
+ PertLayoutNode,
432
+ PertLayoutEdge,
433
+ PertLayoutGroup,
434
+ LayoutResult as PertLayoutResult,
435
+ } from './pert/types';
436
+
437
+ export { collapseOrgTree, focusOrgTree } from './org/collapse';
438
+ export type {
439
+ CollapsedOrgResult,
440
+ FocusOrgResult,
441
+ AncestorInfo,
442
+ } from './org/collapse';
443
+
444
+ export { parseMindmap } from './mindmap/parser';
445
+ export type {
446
+ MindmapNode,
447
+ ParsedMindmap,
448
+ MindmapLayoutNode,
449
+ MindmapLayoutEdge,
450
+ MindmapLayoutResult,
451
+ } from './mindmap/types';
452
+ export { layoutMindmap } from './mindmap/layout';
453
+ export { renderMindmap, renderMindmapForExport } from './mindmap/renderer';
454
+ export { collapseMindmapTree } from './mindmap/collapse';
455
+ export type { CollapsedMindmapResult } from './mindmap/collapse';
456
+
457
+ export { parseWireframe } from './wireframe/parser';
458
+ export type {
459
+ ParsedWireframe,
460
+ WireframeElement,
461
+ WireframeElementType,
462
+ WireframeFormFactor,
463
+ } from './wireframe/types';
464
+ export { layoutWireframe } from './wireframe/layout';
465
+ export type { WireframeLayout, WireframeLayoutNode } from './wireframe/layout';
466
+ export { renderWireframe } from './wireframe/renderer';
467
+
468
+ export { parseTechRadar } from './tech-radar/parser';
469
+ export { computeRadarLayout, getRadarGeometry } from './tech-radar/layout';
470
+ export {
471
+ renderTechRadar,
472
+ renderTechRadarForExport,
473
+ } from './tech-radar/renderer';
474
+ export {
475
+ renderQuadrantFocus,
476
+ renderQuadrantFocusForExport,
477
+ } from './tech-radar/interactive';
478
+ export type {
479
+ ParsedTechRadar,
480
+ TechRadarRing,
481
+ TechRadarQuadrant,
482
+ TechRadarBlip,
483
+ TechRadarLayoutPoint,
484
+ QuadrantPosition,
485
+ BlipTrend,
486
+ } from './tech-radar/types';
487
+
488
+ export { parseCycle } from './cycle/parser';
489
+ export { computeCycleLayout } from './cycle/layout';
490
+ export { renderCycle, renderCycleForExport } from './cycle/renderer';
491
+ export type { CycleRenderOptions } from './cycle/renderer';
492
+ export type {
493
+ ParsedCycle,
494
+ CycleNode,
495
+ CycleEdge,
496
+ CycleLayoutNode,
497
+ CycleLayoutEdge,
498
+ CycleLayoutResult,
499
+ } from './cycle/types';
500
+
501
+ export { parseJourneyMap } from './journey-map/parser';
502
+ export { layoutJourneyMap } from './journey-map/layout';
503
+ export type { JourneyMapLayout } from './journey-map/layout';
504
+ export {
505
+ renderJourneyMap,
506
+ renderJourneyMapForExport,
507
+ } from './journey-map/renderer';
508
+ export type {
509
+ ParsedJourneyMap,
510
+ JourneyMapPhase,
511
+ JourneyMapStep,
512
+ JourneyMapPersona,
513
+ JourneyMapAnnotation,
514
+ } from './journey-map/types';
515
+ export type { JourneyMapInteractiveOptions } from './journey-map/renderer';
516
+
517
+ export { parsePyramid } from './pyramid/parser';
518
+ export { renderPyramid, renderPyramidForExport } from './pyramid/renderer';
519
+ export type { ParsedPyramid, PyramidLayer } from './pyramid/types';
520
+
521
+ export { parseRing } from './ring/parser';
522
+ export { renderRing, renderRingForExport } from './ring/renderer';
523
+ export type { ParsedRing, RingLayer } from './ring/types';
524
+
525
+ export type { RaciDragSource, RaciInteractionHandlers } from './raci';
526
+ export {
527
+ parseRaci,
528
+ renderRaci,
529
+ renderRaciForExport,
530
+ VARIANTS as RACI_VARIANTS,
531
+ RACI_ERROR_CODES,
532
+ RACI_WARNING_CODES,
533
+ cellReplace as raciCellReplace,
534
+ cellAppendMarker as raciCellAppendMarker,
535
+ cellRemove as raciCellRemove,
536
+ cellCycle as raciCellCycle,
537
+ } from './raci';
538
+ export type {
539
+ ParsedRaci,
540
+ RaciVariant,
541
+ RaciMarker,
542
+ RaciTask,
543
+ RaciPhase,
544
+ RaciRoleAssignment,
545
+ } from './raci';
546
+
547
+ export { resolveOrgImports } from './org/resolver';
548
+ export type {
549
+ ReadFileFn,
550
+ ResolveImportsResult,
551
+ ImportSource,
552
+ } from './org/resolver';
553
+
554
+ export { layoutGraph } from './graph/layout';
555
+ export type {
556
+ LayoutResult,
557
+ LayoutNode,
558
+ LayoutEdge,
559
+ LayoutGroup,
560
+ LayoutOptions,
561
+ } from './graph/layout';
562
+
563
+ export {
564
+ renderFlowchart,
565
+ renderFlowchartForExport,
566
+ } from './graph/flowchart-renderer';
567
+
568
+ // ============================================================
569
+ // Config Builders (produce framework-specific config objects)
570
+ // ============================================================
571
+
572
+ export {
573
+ buildExtendedChartOption,
574
+ buildSimpleChartOption,
575
+ renderExtendedChartForExport,
576
+ getExtendedChartLegendGroups,
577
+ getSimpleChartLegendGroups,
578
+ computeScatterLabelGraphics,
579
+ } from './echarts';
580
+ export type { ScatterLabelPoint } from './echarts';
581
+ export {
582
+ renderLegendSvg,
583
+ renderLegendSvgFromConfig,
584
+ type LegendGroupData,
585
+ } from './utils/legend-svg';
586
+ export { LEGEND_HEIGHT, LEGEND_GEAR_PILL_W } from './utils/legend-constants';
587
+ export { renderLegendD3 } from './utils/legend-d3';
588
+ export {
589
+ computeLegendLayout,
590
+ controlsGroupCapsuleWidth,
591
+ getLegendReservedHeight,
592
+ } from './utils/legend-layout';
593
+ export type {
594
+ LegendConfig,
595
+ LegendState,
596
+ LegendCallbacks,
597
+ LegendPosition,
598
+ LegendMode,
599
+ LegendControl,
600
+ LegendLayout,
601
+ LegendHandle,
602
+ LegendPalette,
603
+ } from './utils/legend-types';
604
+ // ============================================================
605
+ // Renderers (produce SVG output)
606
+ // ============================================================
607
+
608
+ export {
609
+ renderSlopeChart,
610
+ renderArcDiagram,
611
+ renderTimeline,
612
+ renderWordCloud,
613
+ renderVenn,
614
+ renderQuadrant,
615
+ renderForExport,
616
+ } from './d3';
617
+
618
+ export {
619
+ renderSequenceDiagram,
620
+ buildRenderSequence,
621
+ computeActivations,
622
+ applyPositionOverrides,
623
+ applyGroupOrdering,
624
+ groupMessagesBySection,
625
+ buildNoteMessageMap,
626
+ } from './sequence/renderer';
627
+ export type {
628
+ RenderStep,
629
+ Activation,
630
+ SectionMessageGroup,
631
+ SequenceRenderOptions,
632
+ } from './sequence/renderer';
633
+
634
+ export { applyCollapseProjection } from './sequence/collapse';
635
+ export type { CollapsedView } from './sequence/collapse';
636
+
637
+ // ============================================================
638
+ // Colors & Palettes
639
+ // ============================================================
640
+
641
+ export {
642
+ resolveColor,
643
+ resolveColorWithDiagnostic,
644
+ colorNames,
645
+ nord,
646
+ seriesColors,
647
+ RECOGNIZED_COLOR_NAMES,
648
+ isRecognizedColorName,
649
+ } from './colors';
650
+
651
+ export {
652
+ // Registry
653
+ getPalette,
654
+ getAvailablePalettes,
655
+ registerPalette,
656
+ isValidHex,
657
+ // Utilities
658
+ hexToHSL,
659
+ hslToHex,
660
+ hexToHSLString,
661
+ tint,
662
+ shade,
663
+ getSeriesColors,
664
+ contrastText,
665
+ // Palette definitions
666
+ nordPalette,
667
+ solarizedPalette,
668
+ catppuccinPalette,
669
+ rosePinePalette,
670
+ gruvboxPalette,
671
+ tokyoNightPalette,
672
+ oneDarkPalette,
673
+ boldPalette,
674
+ draculaPalette,
675
+ monokaiPalette,
676
+ } from './palettes';
677
+
678
+ export type { PaletteConfig, PaletteColors } from './palettes';
679
+ export { mix, shapeFill } from './palettes/color-utils';
680
+
681
+ // ============================================================
682
+ // Sharing (URL encoding/decoding)
683
+ // ============================================================
684
+
685
+ export {
686
+ encodeDiagramUrl,
687
+ decodeDiagramUrl,
688
+ encodeViewState,
689
+ decodeViewState,
690
+ } from './sharing';
691
+ export type {
692
+ EncodeDiagramUrlOptions,
693
+ EncodeDiagramUrlResult,
694
+ CompactViewState,
695
+ DecodedDiagramUrl,
696
+ } from './sharing';
697
+
698
+ // ============================================================
699
+ // Completion (symbol extraction API)
700
+ // ============================================================
701
+
702
+ export {
703
+ registerExtractor,
704
+ extractDiagramSymbols,
705
+ COMPLETION_REGISTRY,
706
+ CHART_TYPES,
707
+ METADATA_KEY_SET,
708
+ ENTITY_TYPES,
709
+ PIPE_METADATA,
710
+ extractTagDeclarations,
711
+ } from './completion';
712
+ export type {
713
+ DiagramSymbols,
714
+ ExtractFn,
715
+ DirectiveSpec,
716
+ DirectiveValueSpec,
717
+ PipeKeySpec,
718
+ } from './completion';
719
+
720
+ export { parseFirstLine, ALL_CHART_TYPES } from './utils/parsing';
721
+
722
+ // ============================================================
723
+ // Additional exports introduced by the API freeze
724
+ // ============================================================
725
+
726
+ // Namespace constants (also exported from the public root)
727
+ export { palettes } from './palettes';
728
+ export { themes, type Theme } from './themes';
729
+
730
+ // Public-API alias for parseDgmo (also exported from the public root as `validate`)
731
+ export { parseDgmo as validate } from './dgmo-router';