@diagrammo/dgmo 0.26.0 → 0.28.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/README.md +3 -3
- package/dist/advanced.cjs +5651 -3193
- package/dist/advanced.d.cts +272 -58
- package/dist/advanced.d.ts +272 -58
- package/dist/advanced.js +5650 -3186
- package/dist/auto.cjs +5511 -3070
- package/dist/auto.js +116 -137
- package/dist/auto.mjs +5510 -3069
- package/dist/cli.cjs +168 -189
- package/dist/editor.cjs +4 -0
- package/dist/editor.js +4 -0
- package/dist/highlight.cjs +4 -0
- package/dist/highlight.js +4 -0
- package/dist/index.cjs +5536 -3072
- package/dist/index.d.cts +33 -8
- package/dist/index.d.ts +33 -8
- package/dist/index.js +5535 -3071
- package/dist/internal.cjs +5651 -3193
- package/dist/internal.d.cts +272 -58
- package/dist/internal.d.ts +272 -58
- package/dist/internal.js +5650 -3186
- package/dist/map-data/PROVENANCE.json +1 -1
- package/dist/map-data/airport-collisions.json +1 -0
- package/dist/map-data/airports.json +1 -0
- package/docs/language-reference.md +68 -18
- package/gallery/fixtures/boxes-and-lines-diverging.dgmo +15 -0
- package/gallery/fixtures/map-choropleth-diverging.dgmo +9 -0
- package/gallery/fixtures/map-region-values.dgmo +13 -0
- package/gallery/fixtures/map-subnational-zoom.dgmo +12 -0
- package/gallery/fixtures/map-tagged-legs.dgmo +16 -0
- package/gallery/fixtures/map-undirected-edges.dgmo +12 -0
- package/package.json +7 -3
- package/src/advanced.ts +1 -6
- package/src/auto/index.ts +1 -1
- package/src/boxes-and-lines/layout-layered.ts +722 -0
- package/src/boxes-and-lines/layout-search.ts +1200 -0
- package/src/boxes-and-lines/layout.ts +202 -571
- package/src/boxes-and-lines/parser.ts +43 -8
- package/src/boxes-and-lines/renderer.ts +223 -96
- package/src/boxes-and-lines/types.ts +9 -2
- package/src/c4/layout.ts +14 -32
- package/src/c4/parser.ts +9 -5
- package/src/c4/renderer.ts +34 -39
- package/src/class/layout.ts +118 -18
- package/src/class/parser.ts +35 -0
- package/src/class/renderer.ts +58 -2
- package/src/class/types.ts +3 -0
- package/src/cli.ts +4 -4
- package/src/completion.ts +26 -12
- package/src/cycle/layout.ts +55 -72
- package/src/cycle/renderer.ts +11 -6
- package/src/d3.ts +78 -117
- package/src/diagnostics.ts +16 -0
- package/src/echarts.ts +46 -33
- package/src/editor/keywords.ts +4 -0
- package/src/er/layout.ts +114 -22
- package/src/er/parser.ts +28 -0
- package/src/er/renderer.ts +55 -2
- package/src/er/types.ts +3 -0
- package/src/gantt/renderer.ts +46 -38
- package/src/gantt/resolver.ts +9 -2
- package/src/graph/edge-spline.ts +29 -0
- package/src/graph/flowchart-parser.ts +34 -1
- package/src/graph/flowchart-renderer.ts +78 -64
- package/src/graph/layout.ts +206 -23
- package/src/graph/notes.ts +21 -0
- package/src/graph/state-parser.ts +26 -1
- package/src/graph/state-renderer.ts +78 -64
- package/src/graph/types.ts +13 -0
- package/src/index.ts +1 -1
- package/src/infra/layout.ts +46 -26
- package/src/infra/renderer.ts +16 -7
- package/src/journey-map/layout.ts +38 -49
- package/src/journey-map/renderer.ts +22 -45
- package/src/kanban/renderer.ts +15 -6
- package/src/label-layout.ts +3 -3
- package/src/map/completion.ts +77 -22
- package/src/map/context-labels.ts +101 -25
- package/src/map/data/PROVENANCE.json +1 -1
- package/src/map/data/airport-collisions.json +1 -0
- package/src/map/data/airports.json +1 -0
- package/src/map/data/types.ts +19 -0
- package/src/map/layout.ts +1212 -96
- package/src/map/legend-band.ts +2 -2
- package/src/map/load-data.ts +10 -1
- package/src/map/parser.ts +61 -32
- package/src/map/renderer.ts +284 -12
- package/src/map/resolved-types.ts +15 -1
- package/src/map/resolver.ts +132 -12
- package/src/map/types.ts +28 -8
- package/src/migrate/embedded.ts +9 -7
- package/src/mindmap/text-wrap.ts +13 -14
- package/src/org/layout.ts +19 -17
- package/src/org/renderer.ts +11 -4
- package/src/palettes/color-utils.ts +82 -21
- package/src/palettes/index.ts +0 -19
- package/src/palettes/registry.ts +1 -1
- package/src/palettes/types.ts +2 -2
- package/src/pert/layout.ts +48 -40
- package/src/pert/renderer.ts +30 -43
- package/src/pyramid/renderer.ts +4 -5
- package/src/raci/renderer.ts +34 -68
- package/src/render.ts +1 -1
- package/src/ring/renderer.ts +1 -2
- package/src/sequence/parser.ts +100 -22
- package/src/sequence/renderer.ts +75 -50
- package/src/sitemap/layout.ts +27 -19
- package/src/sitemap/renderer.ts +12 -5
- package/src/tech-radar/renderer.ts +11 -35
- package/src/utils/arrow-markers.ts +51 -0
- package/src/utils/fit-canvas.ts +64 -0
- package/src/utils/legend-constants.ts +8 -54
- package/src/utils/legend-d3.ts +10 -7
- package/src/utils/legend-layout.ts +7 -4
- package/src/utils/legend-types.ts +10 -4
- package/src/utils/note-box/constants.ts +25 -0
- package/src/utils/note-box/index.ts +11 -0
- package/src/utils/note-box/metrics.ts +90 -0
- package/src/utils/note-box/svg.ts +331 -0
- package/src/utils/notes/bounds.ts +30 -0
- package/src/utils/notes/build.ts +131 -0
- package/src/utils/notes/index.ts +18 -0
- package/src/utils/notes/model.ts +19 -0
- package/src/utils/notes/parse.ts +131 -0
- package/src/utils/notes/place.ts +177 -0
- package/src/utils/notes/resolve.ts +88 -0
- package/src/utils/number-format.ts +36 -0
- package/src/utils/parsing.ts +41 -0
- package/src/utils/reserved-key-registry.ts +4 -0
- package/src/utils/text-measure.ts +122 -0
- package/src/wireframe/layout.ts +4 -2
- package/src/wireframe/renderer.ts +8 -6
- package/src/palettes/dracula.ts +0 -68
- package/src/palettes/gruvbox.ts +0 -85
- package/src/palettes/monokai.ts +0 -68
- package/src/palettes/one-dark.ts +0 -70
- package/src/palettes/rose-pine.ts +0 -84
- package/src/palettes/solarized.ts +0 -77
package/dist/index.d.cts
CHANGED
|
@@ -117,9 +117,9 @@ interface PaletteColors {
|
|
|
117
117
|
* hands out the same frozen-shape object on every `getPalette(id)`.
|
|
118
118
|
*/
|
|
119
119
|
interface PaletteConfig {
|
|
120
|
-
/** Registry key: 'nord', '
|
|
120
|
+
/** Registry key: 'nord', 'slate', 'catppuccin' */
|
|
121
121
|
readonly id: string;
|
|
122
|
-
/** Display name: 'Nord', '
|
|
122
|
+
/** Display name: 'Nord', 'Slate', 'Catppuccin' */
|
|
123
123
|
readonly name: string;
|
|
124
124
|
/** Light mode color definitions */
|
|
125
125
|
readonly light: PaletteColors;
|
|
@@ -168,13 +168,7 @@ declare const palettes: {
|
|
|
168
168
|
readonly tidewater: PaletteConfig;
|
|
169
169
|
readonly nord: PaletteConfig;
|
|
170
170
|
readonly catppuccin: PaletteConfig;
|
|
171
|
-
readonly solarized: PaletteConfig;
|
|
172
|
-
readonly gruvbox: PaletteConfig;
|
|
173
171
|
readonly tokyoNight: PaletteConfig;
|
|
174
|
-
readonly oneDark: PaletteConfig;
|
|
175
|
-
readonly rosePine: PaletteConfig;
|
|
176
|
-
readonly dracula: PaletteConfig;
|
|
177
|
-
readonly monokai: PaletteConfig;
|
|
178
172
|
};
|
|
179
173
|
|
|
180
174
|
declare function getMinDimensions(content: string): {
|
|
@@ -244,6 +238,24 @@ interface Gazetteer {
|
|
|
244
238
|
/** Folded alias → index into `cities`. Never collides with a `byName` key. */
|
|
245
239
|
alt: Record<string, number>;
|
|
246
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* IATA-coded airport index (a SEPARATE optional asset — `airports.json`; ADR-1).
|
|
243
|
+
* Lets memorized airport codes resolve to coordinates through the resolver's
|
|
244
|
+
* existing fold→lookup path (`poi JFK`, `route JFK -> LAX`) — no parser change.
|
|
245
|
+
*
|
|
246
|
+
* - `airports` — `GazetteerEntry` tuples `[lat, lon, iso, 0, name]`. `pop` is
|
|
247
|
+
* always 0 (OurAirports has no enplanement column); `name` is the full airport
|
|
248
|
+
* name, used for COMPLETION DISPLAY only — airports resolve by IATA code, never
|
|
249
|
+
* by name. Coords are rounded to 2 decimals (~1km; sub-pixel at map scale).
|
|
250
|
+
* - `airportIata` — folded 3-letter IATA code → index into `airports`. Consulted
|
|
251
|
+
* LAST in resolution (after city `byName` + `alt`), so a real city always wins
|
|
252
|
+
* a shared token (ADR-2). Airports never enter `cities[]`, so the city-scatter
|
|
253
|
+
* and reverse-geocode layers never see them.
|
|
254
|
+
*/
|
|
255
|
+
interface AirportData {
|
|
256
|
+
readonly airports: GazetteerEntry[];
|
|
257
|
+
readonly airportIata: Record<string, number>;
|
|
258
|
+
}
|
|
247
259
|
/** A fill-able region (country or US state) — the display name + its ISO id +
|
|
248
260
|
* layer. Powers region-name autocomplete (completion-only; the renderer derives
|
|
249
261
|
* names from the topology directly). Extracted from the topologies by
|
|
@@ -273,10 +285,23 @@ interface MapPlaceCompletion {
|
|
|
273
285
|
readonly iso: string;
|
|
274
286
|
readonly sub?: string;
|
|
275
287
|
readonly pop: number;
|
|
288
|
+
/** `'airport'` for IATA-code entries (icon/grouping affordance); absent or
|
|
289
|
+
* `'city'` for gazetteer cities. Cities rank above airports for a shared
|
|
290
|
+
* prefix so ~1500 codes never bury city names (ADR-5). */
|
|
291
|
+
readonly kind?: 'city' | 'airport';
|
|
276
292
|
}
|
|
277
293
|
interface MapCompletionOptions {
|
|
278
294
|
/** Max results (default 12). */
|
|
279
295
|
readonly limit?: number;
|
|
296
|
+
/** IATA-coded airports (`airports.json`). When supplied, airport codes
|
|
297
|
+
* matching the prefix are offered as a second (post-city) group. Optional —
|
|
298
|
+
* absent (old DI bundles / no asset) just yields city-only completions. */
|
|
299
|
+
readonly airports?: AirportData;
|
|
300
|
+
/** Resolver-inferred map scope (country `US` or subdivision `US-CA`). Biases
|
|
301
|
+
* airport ranking so in-region airports sort above out-of-region same-prefix
|
|
302
|
+
* ones (ADR-6). Pure rank, never a filter — cross-region airports still
|
|
303
|
+
* appear. App passes the document's inferred scope in (Slice 2). */
|
|
304
|
+
readonly scopeISO?: string;
|
|
280
305
|
}
|
|
281
306
|
/**
|
|
282
307
|
* Prefix-match city names + alternate-name aliases against the gazetteer,
|
package/dist/index.d.ts
CHANGED
|
@@ -117,9 +117,9 @@ interface PaletteColors {
|
|
|
117
117
|
* hands out the same frozen-shape object on every `getPalette(id)`.
|
|
118
118
|
*/
|
|
119
119
|
interface PaletteConfig {
|
|
120
|
-
/** Registry key: 'nord', '
|
|
120
|
+
/** Registry key: 'nord', 'slate', 'catppuccin' */
|
|
121
121
|
readonly id: string;
|
|
122
|
-
/** Display name: 'Nord', '
|
|
122
|
+
/** Display name: 'Nord', 'Slate', 'Catppuccin' */
|
|
123
123
|
readonly name: string;
|
|
124
124
|
/** Light mode color definitions */
|
|
125
125
|
readonly light: PaletteColors;
|
|
@@ -168,13 +168,7 @@ declare const palettes: {
|
|
|
168
168
|
readonly tidewater: PaletteConfig;
|
|
169
169
|
readonly nord: PaletteConfig;
|
|
170
170
|
readonly catppuccin: PaletteConfig;
|
|
171
|
-
readonly solarized: PaletteConfig;
|
|
172
|
-
readonly gruvbox: PaletteConfig;
|
|
173
171
|
readonly tokyoNight: PaletteConfig;
|
|
174
|
-
readonly oneDark: PaletteConfig;
|
|
175
|
-
readonly rosePine: PaletteConfig;
|
|
176
|
-
readonly dracula: PaletteConfig;
|
|
177
|
-
readonly monokai: PaletteConfig;
|
|
178
172
|
};
|
|
179
173
|
|
|
180
174
|
declare function getMinDimensions(content: string): {
|
|
@@ -244,6 +238,24 @@ interface Gazetteer {
|
|
|
244
238
|
/** Folded alias → index into `cities`. Never collides with a `byName` key. */
|
|
245
239
|
alt: Record<string, number>;
|
|
246
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* IATA-coded airport index (a SEPARATE optional asset — `airports.json`; ADR-1).
|
|
243
|
+
* Lets memorized airport codes resolve to coordinates through the resolver's
|
|
244
|
+
* existing fold→lookup path (`poi JFK`, `route JFK -> LAX`) — no parser change.
|
|
245
|
+
*
|
|
246
|
+
* - `airports` — `GazetteerEntry` tuples `[lat, lon, iso, 0, name]`. `pop` is
|
|
247
|
+
* always 0 (OurAirports has no enplanement column); `name` is the full airport
|
|
248
|
+
* name, used for COMPLETION DISPLAY only — airports resolve by IATA code, never
|
|
249
|
+
* by name. Coords are rounded to 2 decimals (~1km; sub-pixel at map scale).
|
|
250
|
+
* - `airportIata` — folded 3-letter IATA code → index into `airports`. Consulted
|
|
251
|
+
* LAST in resolution (after city `byName` + `alt`), so a real city always wins
|
|
252
|
+
* a shared token (ADR-2). Airports never enter `cities[]`, so the city-scatter
|
|
253
|
+
* and reverse-geocode layers never see them.
|
|
254
|
+
*/
|
|
255
|
+
interface AirportData {
|
|
256
|
+
readonly airports: GazetteerEntry[];
|
|
257
|
+
readonly airportIata: Record<string, number>;
|
|
258
|
+
}
|
|
247
259
|
/** A fill-able region (country or US state) — the display name + its ISO id +
|
|
248
260
|
* layer. Powers region-name autocomplete (completion-only; the renderer derives
|
|
249
261
|
* names from the topology directly). Extracted from the topologies by
|
|
@@ -273,10 +285,23 @@ interface MapPlaceCompletion {
|
|
|
273
285
|
readonly iso: string;
|
|
274
286
|
readonly sub?: string;
|
|
275
287
|
readonly pop: number;
|
|
288
|
+
/** `'airport'` for IATA-code entries (icon/grouping affordance); absent or
|
|
289
|
+
* `'city'` for gazetteer cities. Cities rank above airports for a shared
|
|
290
|
+
* prefix so ~1500 codes never bury city names (ADR-5). */
|
|
291
|
+
readonly kind?: 'city' | 'airport';
|
|
276
292
|
}
|
|
277
293
|
interface MapCompletionOptions {
|
|
278
294
|
/** Max results (default 12). */
|
|
279
295
|
readonly limit?: number;
|
|
296
|
+
/** IATA-coded airports (`airports.json`). When supplied, airport codes
|
|
297
|
+
* matching the prefix are offered as a second (post-city) group. Optional —
|
|
298
|
+
* absent (old DI bundles / no asset) just yields city-only completions. */
|
|
299
|
+
readonly airports?: AirportData;
|
|
300
|
+
/** Resolver-inferred map scope (country `US` or subdivision `US-CA`). Biases
|
|
301
|
+
* airport ranking so in-region airports sort above out-of-region same-prefix
|
|
302
|
+
* ones (ADR-6). Pure rank, never a filter — cross-region airports still
|
|
303
|
+
* appear. App passes the document's inferred scope in (Slice 2). */
|
|
304
|
+
readonly scopeISO?: string;
|
|
280
305
|
}
|
|
281
306
|
/**
|
|
282
307
|
* Prefix-match city names + alternate-name aliases against the gazetteer,
|