@diagrammo/dgmo 0.47.0 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto.js +1 -1
- package/dist/auto.mjs +1 -1
- package/dist/element.js +1 -1
- package/dist/element.mjs +1 -1
- package/package.json +19 -70
- package/dist/advanced.cjs +0 -71648
- package/dist/advanced.d.cts +0 -5719
- package/dist/auto.cjs +0 -70648
- package/dist/auto.d.cts +0 -54
- package/dist/block.cjs +0 -70208
- package/dist/block.d.cts +0 -115
- package/dist/editor.cjs +0 -526
- package/dist/editor.d.cts +0 -26
- package/dist/element.cjs +0 -70530
- package/dist/element.d.cts +0 -62
- package/dist/highlight.cjs +0 -852
- package/dist/highlight.d.cts +0 -49
- package/dist/index.cjs +0 -70491
- package/dist/index.d.cts +0 -160
- package/dist/pert.cjs +0 -325
- package/dist/pert.d.cts +0 -559
- package/dist/themes-1-CuKpeH.d.cts +0 -908
- package/src/advanced.ts +0 -873
- package/src/arc/parser.ts +0 -15
- package/src/arc/renderer.ts +0 -633
- package/src/auto/index.ts +0 -621
- package/src/auto/shared.ts +0 -370
- package/src/auto/styles.ts +0 -73
- package/src/block/layout.ts +0 -198
- package/src/block/parser.ts +0 -427
- package/src/block/renderer.ts +0 -484
- package/src/block/types.ts +0 -67
- package/src/boxes-and-lines/collapse.ts +0 -96
- package/src/boxes-and-lines/focus.ts +0 -257
- package/src/boxes-and-lines/label-placement.ts +0 -339
- package/src/boxes-and-lines/layout-grouped.ts +0 -912
- package/src/boxes-and-lines/layout-layered.ts +0 -722
- package/src/boxes-and-lines/layout-search.ts +0 -1678
- package/src/boxes-and-lines/layout.ts +0 -398
- package/src/boxes-and-lines/parser.ts +0 -1181
- package/src/boxes-and-lines/renderer.ts +0 -1465
- package/src/boxes-and-lines/types.ts +0 -66
- package/src/c4/layout.ts +0 -2441
- package/src/c4/parser.ts +0 -1158
- package/src/c4/renderer.ts +0 -2008
- package/src/c4/types.ts +0 -89
- package/src/chart-type-registry.ts +0 -529
- package/src/chart-types.ts +0 -225
- package/src/chart.ts +0 -685
- package/src/charts-d3/bar.ts +0 -338
- package/src/charts-d3/chord.ts +0 -140
- package/src/charts-d3/function.ts +0 -147
- package/src/charts-d3/funnel.ts +0 -104
- package/src/charts-d3/heatmap.ts +0 -145
- package/src/charts-d3/index.ts +0 -337
- package/src/charts-d3/interactions.ts +0 -477
- package/src/charts-d3/line.ts +0 -344
- package/src/charts-d3/mount.ts +0 -151
- package/src/charts-d3/pie.ts +0 -117
- package/src/charts-d3/polar.ts +0 -89
- package/src/charts-d3/radar.ts +0 -0
- package/src/charts-d3/sankey.ts +0 -0
- package/src/charts-d3/scatter.ts +0 -185
- package/src/charts-d3/shared.ts +0 -208
- package/src/class/layout.ts +0 -326
- package/src/class/parser.ts +0 -635
- package/src/class/renderer.ts +0 -793
- package/src/class/types.ts +0 -58
- package/src/cli-banner.ts +0 -106
- package/src/cli.ts +0 -1080
- package/src/colors-diagnostics.ts +0 -35
- package/src/colors.ts +0 -379
- package/src/completion-types.ts +0 -27
- package/src/completion.ts +0 -2668
- package/src/cycle/layout.ts +0 -1026
- package/src/cycle/parser.ts +0 -387
- package/src/cycle/renderer.ts +0 -653
- package/src/cycle/types.ts +0 -101
- package/src/d3.ts +0 -1434
- package/src/data-chart-parser.ts +0 -1007
- package/src/dgmo-router.ts +0 -296
- package/src/diagnostics-registry.ts +0 -108
- package/src/diagnostics.ts +0 -0
- package/src/dimensions.ts +0 -20
- package/src/directives-registry.ts +0 -396
- package/src/editor/dgmo.grammar +0 -76
- package/src/editor/dgmo.grammar.d.ts +0 -2
- package/src/editor/dgmo.grammar.js +0 -18
- package/src/editor/dgmo.grammar.terms.d.ts +0 -5
- package/src/editor/dgmo.grammar.terms.js +0 -35
- package/src/editor/highlight-api.ts +0 -596
- package/src/editor/highlight.ts +0 -36
- package/src/editor/index.ts +0 -27
- package/src/editor/keywords.ts +0 -128
- package/src/editor/tokens.ts +0 -30
- package/src/element/index.ts +0 -432
- package/src/embed/css.ts +0 -312
- package/src/embed/escape.ts +0 -15
- package/src/embed/index.ts +0 -280
- package/src/er/classify.ts +0 -228
- package/src/er/layout.ts +0 -530
- package/src/er/parser.ts +0 -750
- package/src/er/renderer.ts +0 -725
- package/src/er/types.ts +0 -52
- package/src/error-card.ts +0 -269
- package/src/event-line/diagnostics.ts +0 -117
- package/src/event-line/parser.ts +0 -643
- package/src/event-line/renderer.ts +0 -1742
- package/src/event-line/types.ts +0 -74
- package/src/fonts.ts +0 -3
- package/src/gantt/calculator.ts +0 -979
- package/src/gantt/parser.ts +0 -1641
- package/src/gantt/renderer.ts +0 -3787
- package/src/gantt/resolver.ts +0 -172
- package/src/gantt/types.ts +0 -206
- package/src/graph/diagnostics.ts +0 -64
- package/src/graph/edge-spline.ts +0 -29
- package/src/graph/flowchart-parser.ts +0 -759
- package/src/graph/flowchart-renderer.ts +0 -817
- package/src/graph/layout.ts +0 -472
- package/src/graph/notes.ts +0 -21
- package/src/graph/state-collapse.ts +0 -78
- package/src/graph/state-parser.ts +0 -574
- package/src/graph/state-renderer.ts +0 -653
- package/src/graph/types.ts +0 -65
- package/src/index.ts +0 -261
- package/src/infra/compute.ts +0 -1385
- package/src/infra/layout.ts +0 -888
- package/src/infra/parser.ts +0 -1234
- package/src/infra/renderer.ts +0 -2534
- package/src/infra/roles.ts +0 -75
- package/src/infra/types.ts +0 -216
- package/src/infra/validation.ts +0 -201
- package/src/journey-map/layout.ts +0 -490
- package/src/journey-map/parser.ts +0 -557
- package/src/journey-map/renderer.ts +0 -1580
- package/src/journey-map/types.ts +0 -47
- package/src/kanban/mutations.ts +0 -175
- package/src/kanban/parser.ts +0 -509
- package/src/kanban/renderer.ts +0 -1449
- package/src/kanban/types.ts +0 -39
- package/src/label-layout.ts +0 -368
- package/src/map/colorize.ts +0 -54
- package/src/map/completion.ts +0 -316
- package/src/map/context-labels.ts +0 -609
- package/src/map/data/PROVENANCE.json +0 -1
- package/src/map/data/README.md +0 -40
- package/src/map/data/airport-collisions.json +0 -1
- package/src/map/data/airports.json +0 -1
- package/src/map/data/gazetteer.json +0 -1
- package/src/map/data/lakes.json +0 -1
- package/src/map/data/mountain-ranges.json +0 -1
- package/src/map/data/na-lakes.json +0 -1
- package/src/map/data/na-land.json +0 -1
- package/src/map/data/region-names.json +0 -1
- package/src/map/data/rivers.json +0 -1
- package/src/map/data/types.ts +0 -121
- package/src/map/data/us-states.json +0 -1
- package/src/map/data/water-bodies.json +0 -1
- package/src/map/data/world-coarse.json +0 -1
- package/src/map/data/world-detail.json +0 -1
- package/src/map/diagnostics.ts +0 -134
- package/src/map/dimensions.ts +0 -150
- package/src/map/geo-query.ts +0 -295
- package/src/map/geo.ts +0 -438
- package/src/map/invert.ts +0 -111
- package/src/map/layout.ts +0 -5069
- package/src/map/legend-band.ts +0 -127
- package/src/map/load-data.ts +0 -186
- package/src/map/parser.ts +0 -783
- package/src/map/renderer.ts +0 -1445
- package/src/map/resolved-types.ts +0 -160
- package/src/map/resolver.ts +0 -1146
- package/src/map/types.ts +0 -194
- package/src/mindmap/collapse.ts +0 -67
- package/src/mindmap/layout.ts +0 -649
- package/src/mindmap/parser.ts +0 -430
- package/src/mindmap/renderer.ts +0 -637
- package/src/mindmap/text-wrap.ts +0 -218
- package/src/mindmap/types.ts +0 -56
- package/src/org/collapse.ts +0 -151
- package/src/org/layout.ts +0 -1262
- package/src/org/parser.ts +0 -519
- package/src/org/renderer.ts +0 -866
- package/src/org/resolver.ts +0 -636
- package/src/palettes/atlas.ts +0 -77
- package/src/palettes/blueprint.ts +0 -73
- package/src/palettes/catppuccin.ts +0 -84
- package/src/palettes/color-utils.ts +0 -443
- package/src/palettes/index.ts +0 -67
- package/src/palettes/nord.ts +0 -67
- package/src/palettes/registry.ts +0 -114
- package/src/palettes/slate.ts +0 -73
- package/src/palettes/tidewater.ts +0 -73
- package/src/palettes/tokyo-night.ts +0 -86
- package/src/palettes/types.ts +0 -88
- package/src/pert/analyzer.ts +0 -1183
- package/src/pert/diagnostics.ts +0 -110
- package/src/pert/index.ts +0 -43
- package/src/pert/internal.ts +0 -252
- package/src/pert/layout.ts +0 -971
- package/src/pert/monte-carlo.ts +0 -446
- package/src/pert/parser.ts +0 -1606
- package/src/pert/renderer.ts +0 -4009
- package/src/pert/share-normalize.ts +0 -62
- package/src/pert/types.ts +0 -604
- package/src/pyramid/parser.ts +0 -185
- package/src/pyramid/renderer.ts +0 -768
- package/src/pyramid/types.ts +0 -28
- package/src/quadrant/parser.ts +0 -18
- package/src/quadrant/renderer.ts +0 -638
- package/src/raci/diagnostics.ts +0 -213
- package/src/raci/index.ts +0 -23
- package/src/raci/mutations.ts +0 -321
- package/src/raci/parser.ts +0 -699
- package/src/raci/renderer.ts +0 -1627
- package/src/raci/types.ts +0 -82
- package/src/raci/variants.ts +0 -320
- package/src/render.ts +0 -268
- package/src/ring/parser.ts +0 -212
- package/src/ring/renderer.ts +0 -490
- package/src/ring/types.ts +0 -27
- package/src/sequence/collapse.ts +0 -174
- package/src/sequence/parser.ts +0 -1596
- package/src/sequence/participant-inference.ts +0 -152
- package/src/sequence/renderer.ts +0 -3168
- package/src/sequence/tag-resolution.ts +0 -164
- package/src/sharing.ts +0 -211
- package/src/sitemap/collapse.ts +0 -100
- package/src/sitemap/layout.ts +0 -925
- package/src/sitemap/parser.ts +0 -755
- package/src/sitemap/renderer.ts +0 -828
- package/src/sitemap/types.ts +0 -42
- package/src/slope/parser.ts +0 -18
- package/src/slope/renderer.ts +0 -378
- package/src/swimlane/diagnostics.ts +0 -94
- package/src/swimlane/layout.ts +0 -597
- package/src/swimlane/parser.ts +0 -613
- package/src/swimlane/renderer.ts +0 -681
- package/src/swimlane/types.ts +0 -151
- package/src/tech-radar/interactive.ts +0 -1129
- package/src/tech-radar/layout.ts +0 -197
- package/src/tech-radar/parser.ts +0 -436
- package/src/tech-radar/renderer.ts +0 -1239
- package/src/tech-radar/shared.ts +0 -151
- package/src/tech-radar/types.ts +0 -86
- package/src/themes.ts +0 -22
- package/src/timeline/parser.ts +0 -472
- package/src/timeline/renderer.ts +0 -3024
- package/src/timeline/types.ts +0 -33
- package/src/timeline/viz-parser.ts +0 -21
- package/src/treemap/diagnostics.ts +0 -62
- package/src/treemap/layout-radial.ts +0 -233
- package/src/treemap/layout.ts +0 -189
- package/src/treemap/parser.ts +0 -463
- package/src/treemap/renderer-radial.ts +0 -438
- package/src/treemap/renderer.ts +0 -572
- package/src/treemap/treemap-shared.ts +0 -309
- package/src/treemap/types.ts +0 -60
- package/src/utils/arrow-markers.ts +0 -51
- package/src/utils/arrows-diagnostics.ts +0 -62
- package/src/utils/arrows.ts +0 -227
- package/src/utils/brand.ts +0 -61
- package/src/utils/card.ts +0 -183
- package/src/utils/collapse-engine/tree-edges.ts +0 -115
- package/src/utils/collapse-engine/tree.ts +0 -117
- package/src/utils/d3-helpers.ts +0 -219
- package/src/utils/d3-types.ts +0 -9
- package/src/utils/description-helpers.ts +0 -38
- package/src/utils/duration.ts +0 -312
- package/src/utils/export-container.ts +0 -41
- package/src/utils/expr-eval.ts +0 -27
- package/src/utils/fit-canvas.ts +0 -64
- package/src/utils/hover-styles.ts +0 -673
- package/src/utils/inline-markdown.ts +0 -96
- package/src/utils/legend-constants.ts +0 -48
- package/src/utils/legend-d3.ts +0 -618
- package/src/utils/legend-integration.ts +0 -107
- package/src/utils/legend-layout.ts +0 -776
- package/src/utils/legend-svg.ts +0 -214
- package/src/utils/legend-types.ts +0 -272
- package/src/utils/name-normalize.ts +0 -163
- package/src/utils/note-box/constants.ts +0 -25
- package/src/utils/note-box/index.ts +0 -11
- package/src/utils/note-box/metrics.ts +0 -90
- package/src/utils/note-box/svg.ts +0 -331
- package/src/utils/notes/bounds.ts +0 -30
- package/src/utils/notes/build.ts +0 -131
- package/src/utils/notes/index.ts +0 -18
- package/src/utils/notes/model.ts +0 -19
- package/src/utils/notes/parse.ts +0 -131
- package/src/utils/notes/place.ts +0 -177
- package/src/utils/notes/resolve.ts +0 -88
- package/src/utils/number-format.ts +0 -36
- package/src/utils/parsing.ts +0 -953
- package/src/utils/reserved-key-registry.ts +0 -239
- package/src/utils/safe-href.ts +0 -38
- package/src/utils/scaling.ts +0 -97
- package/src/utils/svg-embed.ts +0 -251
- package/src/utils/tag-groups.ts +0 -607
- package/src/utils/text-measure.ts +0 -122
- package/src/utils/time-ticks.ts +0 -253
- package/src/utils/title-constants.ts +0 -24
- package/src/utils/visual-conventions.ts +0 -61
- package/src/utils/wrapped-desc.ts +0 -87
- package/src/venn/parser.ts +0 -18
- package/src/venn/renderer.ts +0 -1047
- package/src/version-control/diagnostics.ts +0 -67
- package/src/version-control/parser.ts +0 -544
- package/src/version-control/renderer.ts +0 -724
- package/src/version-control/types.ts +0 -100
- package/src/visualizations/parse.ts +0 -1560
- package/src/visualizations/types.ts +0 -262
- package/src/wireframe/layout.ts +0 -479
- package/src/wireframe/parser.ts +0 -1114
- package/src/wireframe/renderer.ts +0 -1318
- package/src/wireframe/types.ts +0 -110
- package/src/wordcloud/parser.ts +0 -18
- package/src/wordcloud/renderer.ts +0 -357
package/src/graph/types.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
export type GraphShape =
|
|
2
|
-
| 'terminal' // () — rounded/stadium
|
|
3
|
-
| 'process' // [] — rectangle
|
|
4
|
-
| 'decision' // <> — diamond
|
|
5
|
-
| 'io' // // — parallelogram
|
|
6
|
-
| 'subroutine' // [[]] — double-bordered rectangle
|
|
7
|
-
| 'document' // [~] — wavy-bottom rectangle
|
|
8
|
-
| 'state' // state diagram — rounded rectangle
|
|
9
|
-
| 'pseudostate'; // [*] — filled circle (start/end)
|
|
10
|
-
|
|
11
|
-
export type GraphDirection = 'TB' | 'LR';
|
|
12
|
-
|
|
13
|
-
export interface GraphNode {
|
|
14
|
-
readonly id: string;
|
|
15
|
-
readonly label: string;
|
|
16
|
-
readonly shape: GraphShape;
|
|
17
|
-
readonly color?: string;
|
|
18
|
-
readonly group?: string;
|
|
19
|
-
readonly lineNumber: number;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface GraphEdge {
|
|
23
|
-
readonly source: string;
|
|
24
|
-
readonly target: string;
|
|
25
|
-
readonly label?: string;
|
|
26
|
-
readonly color?: string;
|
|
27
|
-
readonly lineNumber: number;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface GraphGroup {
|
|
31
|
-
readonly id: string;
|
|
32
|
-
readonly label: string;
|
|
33
|
-
readonly color?: string;
|
|
34
|
-
readonly nodeIds: readonly string[];
|
|
35
|
-
readonly lineNumber: number;
|
|
36
|
-
readonly collapsed?: boolean; // `[Group] collapsed: true` view-state marker
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* A generic note as authored — anchors to a node by `ref` (the
|
|
41
|
-
* author-typed id/label) and carries a multi-line `body`. Resolution
|
|
42
|
-
* to a concrete node happens at end-of-parse via `resolveNotes`; this
|
|
43
|
-
* model is intentionally a top-level list (ADR-1), not a field on
|
|
44
|
-
* `GraphNode`, so the placement pass sees the whole set at once.
|
|
45
|
-
*/
|
|
46
|
-
// The graph note is now the chart-neutral `DiagramNote`; kept as a named
|
|
47
|
-
// alias so existing `graph/` imports of `GraphNote` stay valid.
|
|
48
|
-
import type { DiagramNote } from '../utils/notes/model';
|
|
49
|
-
export type GraphNote = DiagramNote;
|
|
50
|
-
|
|
51
|
-
import type { DgmoError } from '../diagnostics';
|
|
52
|
-
|
|
53
|
-
export interface ParsedGraph {
|
|
54
|
-
readonly type: 'flowchart' | 'state';
|
|
55
|
-
readonly title?: string;
|
|
56
|
-
readonly titleLineNumber?: number;
|
|
57
|
-
readonly direction: GraphDirection;
|
|
58
|
-
readonly nodes: readonly GraphNode[];
|
|
59
|
-
readonly edges: readonly GraphEdge[];
|
|
60
|
-
readonly groups?: readonly GraphGroup[];
|
|
61
|
-
readonly notes?: readonly GraphNote[];
|
|
62
|
-
readonly options: Readonly<Record<string, string>>;
|
|
63
|
-
readonly diagnostics: readonly DgmoError[];
|
|
64
|
-
readonly error: string | null;
|
|
65
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// @diagrammo/dgmo — Public API
|
|
3
|
-
// ============================================================
|
|
4
|
-
//
|
|
5
|
-
// This is the frozen public surface. Everything else lives in
|
|
6
|
-
// `@diagrammo/dgmo/advanced` (unstable, no semver), `@diagrammo/dgmo/editor`,
|
|
7
|
-
// `@diagrammo/dgmo/highlight`, or `@diagrammo/dgmo/auto`.
|
|
8
|
-
//
|
|
9
|
-
// If you need something not exported here, import from `/advanced` and
|
|
10
|
-
// accept the no-semver contract. (The legacy `/internal` alias was removed at 1.0.)
|
|
11
|
-
|
|
12
|
-
import { render as renderInternal } from './render';
|
|
13
|
-
import {
|
|
14
|
-
encodeDiagramUrl as encodeDiagramUrlInternal,
|
|
15
|
-
decodeDiagramUrl as decodeDiagramUrlInternal,
|
|
16
|
-
type CompactViewState,
|
|
17
|
-
} from './sharing';
|
|
18
|
-
import { parseDgmo as validate } from './dgmo-router';
|
|
19
|
-
import { palettes, getPalette } from './palettes';
|
|
20
|
-
import type { PaletteConfig } from './palettes/types';
|
|
21
|
-
import type { Theme } from './themes';
|
|
22
|
-
import { formatDgmoError, type DgmoError } from './diagnostics';
|
|
23
|
-
import { renderErrorCard } from './error-card';
|
|
24
|
-
|
|
25
|
-
export type { CompactViewState } from './sharing';
|
|
26
|
-
|
|
27
|
-
// ============================================================
|
|
28
|
-
// render(text, options?)
|
|
29
|
-
// ============================================================
|
|
30
|
-
|
|
31
|
-
export interface RenderOptions {
|
|
32
|
-
theme?: Theme;
|
|
33
|
-
palette?: PaletteConfig;
|
|
34
|
-
/**
|
|
35
|
-
* How to handle parse errors:
|
|
36
|
-
* 'svg' — render an inline error SVG (default)
|
|
37
|
-
* 'silent' — return empty svg + diagnostics; caller handles UI
|
|
38
|
-
* 'throw' — throw an Error with the diagnostics
|
|
39
|
-
*/
|
|
40
|
-
onError?: 'svg' | 'silent' | 'throw';
|
|
41
|
-
/**
|
|
42
|
-
* Pre-applied interactive view state — collapsed sections/columns,
|
|
43
|
-
* active swimlane tag-group, etc. Used to render a specific view
|
|
44
|
-
* non-interactively (server-side render, share-link decode).
|
|
45
|
-
*/
|
|
46
|
-
viewState?: CompactViewState;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface RenderResult {
|
|
50
|
-
svg: string;
|
|
51
|
-
diagnostics: DgmoError[];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Render DGMO source to an SVG string.
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```ts
|
|
59
|
-
* import { render, palettes, themes } from '@diagrammo/dgmo';
|
|
60
|
-
*
|
|
61
|
-
* const { svg } = await render(text, {
|
|
62
|
-
* palette: palettes.catppuccin,
|
|
63
|
-
* theme: themes.dark,
|
|
64
|
-
* });
|
|
65
|
-
* document.getElementById('chart').innerHTML = svg;
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export async function render(
|
|
69
|
-
text: string,
|
|
70
|
-
options?: RenderOptions
|
|
71
|
-
): Promise<RenderResult> {
|
|
72
|
-
const palette = options?.palette ?? palettes.slate;
|
|
73
|
-
const onError = options?.onError ?? 'svg';
|
|
74
|
-
|
|
75
|
-
const result = await renderInternal(text, {
|
|
76
|
-
...(options?.theme !== undefined && { theme: options.theme }),
|
|
77
|
-
palette: palette.id,
|
|
78
|
-
...(options?.viewState !== undefined && { viewState: options.viewState }),
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
const errors = result.diagnostics.filter((d) => d.severity === 'error');
|
|
82
|
-
|
|
83
|
-
if (errors.length === 0) {
|
|
84
|
-
return result;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (onError === 'throw') {
|
|
88
|
-
throw new Error(
|
|
89
|
-
`DGMO parse error: ${errors.map(formatDgmoError).join('; ')}`
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
if (onError === 'silent') {
|
|
94
|
-
return result;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// 'svg' (default): render an inline error card so the author sees what
|
|
98
|
-
// broke, on which line, and the offending source — see error-card.ts.
|
|
99
|
-
// We show the card whenever there are error-severity diagnostics, even if a
|
|
100
|
-
// parser produced a partial SVG: a misleading half-diagram is worse than a
|
|
101
|
-
// clear "here's what's wrong" for an embedded host (remark/astro/obsidian).
|
|
102
|
-
return {
|
|
103
|
-
svg: renderErrorCard(errors, text, palette, options?.theme),
|
|
104
|
-
diagnostics: result.diagnostics,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// ============================================================
|
|
109
|
-
// validate(text)
|
|
110
|
-
// ============================================================
|
|
111
|
-
|
|
112
|
-
export { validate };
|
|
113
|
-
|
|
114
|
-
// ============================================================
|
|
115
|
-
// formatDgmoError(err)
|
|
116
|
-
// ============================================================
|
|
117
|
-
|
|
118
|
-
export { formatDgmoError };
|
|
119
|
-
|
|
120
|
-
// ============================================================
|
|
121
|
-
// Sharing — encodeDiagramUrl / decodeDiagramUrl
|
|
122
|
-
// ============================================================
|
|
123
|
-
|
|
124
|
-
export interface EncodeDiagramUrlOptions {
|
|
125
|
-
baseUrl?: string;
|
|
126
|
-
palette?: PaletteConfig;
|
|
127
|
-
theme?: Theme;
|
|
128
|
-
filename?: string;
|
|
129
|
-
/**
|
|
130
|
-
* Initial view state to embed in the URL — re-applied when the link is
|
|
131
|
-
* decoded so recipients open the diagram in the same configuration.
|
|
132
|
-
*/
|
|
133
|
-
viewState?: CompactViewState;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Encode DGMO text into a shareable URL. Returns null if the compressed
|
|
138
|
-
* payload exceeds the 8 KB URL limit.
|
|
139
|
-
*/
|
|
140
|
-
export function encodeDiagramUrl(
|
|
141
|
-
text: string,
|
|
142
|
-
options?: EncodeDiagramUrlOptions
|
|
143
|
-
): string | null {
|
|
144
|
-
const internalTheme =
|
|
145
|
-
options?.theme === 'light' || options?.theme === 'dark'
|
|
146
|
-
? options.theme
|
|
147
|
-
: undefined;
|
|
148
|
-
const result = encodeDiagramUrlInternal(text, {
|
|
149
|
-
...(options?.baseUrl !== undefined && { baseUrl: options.baseUrl }),
|
|
150
|
-
...(options?.palette?.id !== undefined && { palette: options.palette.id }),
|
|
151
|
-
...(internalTheme !== undefined && { theme: internalTheme }),
|
|
152
|
-
...(options?.filename !== undefined && { filename: options.filename }),
|
|
153
|
-
...(options?.viewState !== undefined && { viewState: options.viewState }),
|
|
154
|
-
});
|
|
155
|
-
return 'error' in result && result.error ? null : (result.url ?? null);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export interface DecodedDiagramUrl {
|
|
159
|
-
text: string;
|
|
160
|
-
palette?: PaletteConfig;
|
|
161
|
-
theme?: Theme;
|
|
162
|
-
filename?: string;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Decode a share URL back into DGMO text plus optional palette/theme/filename.
|
|
167
|
-
* Returns null if the URL contains no valid DGMO payload.
|
|
168
|
-
*/
|
|
169
|
-
export function decodeDiagramUrl(url: string): DecodedDiagramUrl | null {
|
|
170
|
-
const decoded = decodeDiagramUrlInternal(url);
|
|
171
|
-
if (!decoded.dsl) return null;
|
|
172
|
-
const palette = decoded.palette ? getPalette(decoded.palette) : undefined;
|
|
173
|
-
const out: DecodedDiagramUrl = { text: decoded.dsl };
|
|
174
|
-
if (palette) out.palette = palette;
|
|
175
|
-
if (decoded.theme) out.theme = decoded.theme;
|
|
176
|
-
if (decoded.filename) out.filename = decoded.filename;
|
|
177
|
-
return out;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// ============================================================
|
|
181
|
-
// Palettes + themes (namespaces)
|
|
182
|
-
// ============================================================
|
|
183
|
-
|
|
184
|
-
export { palettes, getPalette, resolvePaletteOrFallback } from './palettes';
|
|
185
|
-
export { themes, type Theme } from './themes';
|
|
186
|
-
|
|
187
|
-
// ============================================================
|
|
188
|
-
// getMinDimensions(text)
|
|
189
|
-
// ============================================================
|
|
190
|
-
|
|
191
|
-
export { getMinDimensions } from './dimensions';
|
|
192
|
-
|
|
193
|
-
// ============================================================
|
|
194
|
-
// SVG embed normalization (responsive inline embedding)
|
|
195
|
-
// ============================================================
|
|
196
|
-
// Tightens a static render() SVG's viewBox to its content + strips fixed
|
|
197
|
-
// width/height so hosts (Obsidian, remark/markdown, web) can size it to its
|
|
198
|
-
// natural aspect ratio with no dead space. Pure string transform.
|
|
199
|
-
export { normalizeSvgForEmbed, getEmbedSvgViewBox } from './utils/svg-embed';
|
|
200
|
-
|
|
201
|
-
// ============================================================
|
|
202
|
-
// Map chart-type completion (gazetteer-fed; §24B.5/.8)
|
|
203
|
-
// ============================================================
|
|
204
|
-
// Pure + dependency-injected: the caller supplies the `Gazetteer` asset. Safe
|
|
205
|
-
// to export from the main index — no d3-geo/topojson runtime imports.
|
|
206
|
-
export {
|
|
207
|
-
completeMapPlaces,
|
|
208
|
-
completeMapRegions,
|
|
209
|
-
searchMapLocations,
|
|
210
|
-
} from './map/completion';
|
|
211
|
-
export type {
|
|
212
|
-
MapPlaceCompletion,
|
|
213
|
-
MapRegionCompletion,
|
|
214
|
-
MapCompletionOptions,
|
|
215
|
-
MapLocationMatch,
|
|
216
|
-
} from './map/completion';
|
|
217
|
-
export type {
|
|
218
|
-
Gazetteer,
|
|
219
|
-
GazetteerEntry,
|
|
220
|
-
RegionName,
|
|
221
|
-
RegionNames,
|
|
222
|
-
} from './map/data/types';
|
|
223
|
-
|
|
224
|
-
// ============================================================
|
|
225
|
-
// Chart-type registry (stable; cross-consumer essential — promoted to
|
|
226
|
-
// root at 1.0 so consumers needn't reach into the no-semver `/advanced`)
|
|
227
|
-
// ============================================================
|
|
228
|
-
export { chartTypes } from './chart-types';
|
|
229
|
-
export type { ChartTypeMeta } from './chart-types';
|
|
230
|
-
|
|
231
|
-
// ============================================================
|
|
232
|
-
// Map data (DI asset shape; stable — promoted to root at 1.0 for the
|
|
233
|
-
// obsidian/app browser-render path that injects bundled map JSON)
|
|
234
|
-
// ============================================================
|
|
235
|
-
export type { MapData } from './map/resolved-types';
|
|
236
|
-
|
|
237
|
-
// ============================================================
|
|
238
|
-
// SPIKE: hand-built D3 data-chart engine — interactive mount + adapter
|
|
239
|
-
// (browser-runtime; lets hosts replace the ECharts live-preview path)
|
|
240
|
-
// ============================================================
|
|
241
|
-
export { mountD3DataChart } from './charts-d3/mount';
|
|
242
|
-
export type { MountedD3Chart, MountD3Opts } from './charts-d3/mount';
|
|
243
|
-
export {
|
|
244
|
-
attachDataChartInteractions,
|
|
245
|
-
type DataChartInteractionOpts,
|
|
246
|
-
} from './charts-d3/interactions';
|
|
247
|
-
export { supportsD3DataChart, D3_DATA_CHART_TYPES } from './charts-d3';
|
|
248
|
-
|
|
249
|
-
// ============================================================
|
|
250
|
-
// Public types
|
|
251
|
-
// ============================================================
|
|
252
|
-
|
|
253
|
-
export type { PaletteConfig, PaletteColors } from './palettes/types';
|
|
254
|
-
export type { DgmoError, DgmoSeverity } from './diagnostics';
|
|
255
|
-
export { emit } from './diagnostics';
|
|
256
|
-
export type {
|
|
257
|
-
DiagnosticSpec,
|
|
258
|
-
DiagnosticParams,
|
|
259
|
-
EmitOptions,
|
|
260
|
-
} from './diagnostics';
|
|
261
|
-
export { listDiagnosticCodes, getDiagnosticSpec } from './diagnostics-registry';
|