@diagrammo/dgmo 0.15.1 → 0.16.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 +9 -9
- package/dist/advanced.cjs +479 -454
- package/dist/advanced.d.cts +34 -35
- package/dist/advanced.d.ts +34 -35
- package/dist/advanced.js +479 -453
- package/dist/auto.cjs +374 -352
- package/dist/auto.js +103 -103
- package/dist/auto.mjs +374 -352
- package/dist/cli.cjs +140 -140
- package/dist/editor.cjs +8 -9
- package/dist/editor.js +8 -9
- package/dist/highlight.cjs +8 -9
- package/dist/highlight.js +8 -9
- package/dist/index.cjs +365 -342
- package/dist/index.js +365 -342
- package/dist/internal.cjs +479 -454
- package/dist/internal.d.cts +34 -35
- package/dist/internal.d.ts +34 -35
- package/dist/internal.js +479 -453
- package/dist/pert.d.cts +2 -2
- package/dist/pert.d.ts +2 -2
- package/docs/language-reference.md +83 -66
- package/gallery/fixtures/area.dgmo +3 -3
- package/gallery/fixtures/bar-stacked.dgmo +5 -5
- package/gallery/fixtures/boxes-and-lines.dgmo +2 -2
- package/gallery/fixtures/c4-full.dgmo +8 -8
- package/gallery/fixtures/class-full.dgmo +2 -2
- package/gallery/fixtures/doughnut.dgmo +6 -6
- package/gallery/fixtures/flowchart-colors.dgmo +3 -3
- package/gallery/fixtures/function.dgmo +3 -3
- package/gallery/fixtures/gantt-full.dgmo +9 -9
- package/gallery/fixtures/gantt.dgmo +7 -7
- package/gallery/fixtures/infra-full.dgmo +6 -6
- package/gallery/fixtures/infra.dgmo +2 -2
- package/gallery/fixtures/kanban.dgmo +9 -9
- package/gallery/fixtures/line.dgmo +2 -2
- package/gallery/fixtures/multi-line.dgmo +3 -3
- package/gallery/fixtures/org-full.dgmo +6 -6
- package/gallery/fixtures/quadrant.dgmo +2 -2
- package/gallery/fixtures/sankey.dgmo +9 -9
- package/gallery/fixtures/scatter.dgmo +3 -3
- package/gallery/fixtures/sequence-tags-protocols.dgmo +8 -8
- package/gallery/fixtures/sequence-tags.dgmo +7 -7
- package/gallery/fixtures/sitemap-full.dgmo +7 -7
- package/gallery/fixtures/slope.dgmo +5 -5
- package/gallery/fixtures/spr-eras.dgmo +9 -9
- package/gallery/fixtures/timeline.dgmo +3 -3
- package/gallery/fixtures/venn.dgmo +3 -3
- package/package.json +1 -1
- package/src/advanced.ts +0 -1
- package/src/boxes-and-lines/renderer.ts +5 -1
- package/src/c4/parser.ts +1 -1
- package/src/c4/renderer.ts +15 -8
- package/src/chart.ts +18 -9
- package/src/class/parser.ts +7 -6
- package/src/class/renderer.ts +17 -6
- package/src/cli.ts +6 -6
- package/src/completion.ts +13 -3
- package/src/cycle/parser.ts +14 -0
- package/src/cycle/renderer.ts +6 -3
- package/src/d3.ts +86 -46
- package/src/echarts.ts +26 -9
- package/src/editor/dgmo.grammar +1 -3
- package/src/editor/dgmo.grammar.js +8 -8
- package/src/editor/dgmo.grammar.terms.js +11 -12
- package/src/editor/highlight-api.ts +0 -1
- package/src/editor/highlight.ts +0 -1
- package/src/er/parser.ts +18 -11
- package/src/er/renderer.ts +19 -7
- package/src/gantt/parser.ts +1 -1
- package/src/gantt/renderer.ts +7 -4
- package/src/graph/flowchart-parser.ts +18 -84
- package/src/graph/flowchart-renderer.ts +3 -8
- package/src/graph/layout.ts +0 -2
- package/src/graph/state-parser.ts +17 -62
- package/src/graph/state-renderer.ts +3 -8
- package/src/infra/parser.ts +21 -11
- package/src/infra/renderer.ts +7 -4
- package/src/journey-map/parser.ts +10 -3
- package/src/journey-map/renderer.ts +3 -1
- package/src/kanban/parser.ts +10 -6
- package/src/kanban/renderer.ts +3 -1
- package/src/mindmap/parser.ts +2 -2
- package/src/mindmap/renderer.ts +2 -1
- package/src/org/parser.ts +2 -2
- package/src/org/renderer.ts +4 -3
- package/src/pert/parser.ts +7 -7
- package/src/pert/renderer.ts +7 -2
- package/src/pert/types.ts +1 -1
- package/src/pyramid/parser.ts +12 -0
- package/src/raci/parser.ts +40 -10
- package/src/raci/renderer.ts +2 -1
- package/src/raci/types.ts +4 -3
- package/src/ring/parser.ts +12 -0
- package/src/sequence/parser.ts +15 -9
- package/src/sequence/renderer.ts +1 -1
- package/src/sitemap/layout.ts +0 -2
- package/src/sitemap/parser.ts +11 -37
- package/src/sitemap/renderer.ts +13 -13
- package/src/sitemap/types.ts +0 -1
- package/src/tech-radar/renderer.ts +5 -3
- package/src/tech-radar/types.ts +2 -0
- package/src/utils/arrows.ts +3 -28
- package/src/utils/legend-d3.ts +12 -6
- package/src/utils/legend-layout.ts +1 -1
- package/src/utils/legend-types.ts +1 -1
- package/src/utils/parsing.ts +64 -35
- package/src/utils/tag-groups.ts +98 -18
- package/src/wireframe/parser.ts +2 -2
package/dist/pert.d.cts
CHANGED
|
@@ -12,7 +12,7 @@ interface DgmoError {
|
|
|
12
12
|
code?: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/** A single entry inside a tag group: `Value
|
|
15
|
+
/** A single entry inside a tag group: `Value color` */
|
|
16
16
|
interface TagEntry {
|
|
17
17
|
value: string;
|
|
18
18
|
color: string;
|
|
@@ -248,7 +248,7 @@ interface ParsedPert {
|
|
|
248
248
|
groups: PertGroup[];
|
|
249
249
|
/**
|
|
250
250
|
* Tag groups declared at the top of the diagram (`tag Priority as p
|
|
251
|
-
* High
|
|
251
|
+
* High red, Low green`). Drive node fill via `resolveTagColor()`.
|
|
252
252
|
* Empty when no `tag` blocks are declared.
|
|
253
253
|
*/
|
|
254
254
|
tagGroups: TagGroup[];
|
package/dist/pert.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ interface DgmoError {
|
|
|
12
12
|
code?: string;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/** A single entry inside a tag group: `Value
|
|
15
|
+
/** A single entry inside a tag group: `Value color` */
|
|
16
16
|
interface TagEntry {
|
|
17
17
|
value: string;
|
|
18
18
|
color: string;
|
|
@@ -248,7 +248,7 @@ interface ParsedPert {
|
|
|
248
248
|
groups: PertGroup[];
|
|
249
249
|
/**
|
|
250
250
|
* Tag groups declared at the top of the diagram (`tag Priority as p
|
|
251
|
-
* High
|
|
251
|
+
* High red, Low green`). Drive node fill via `resolveTagColor()`.
|
|
252
252
|
* Empty when no `tag` blocks are declared.
|
|
253
253
|
*/
|
|
254
254
|
tagGroups: TagGroup[];
|
|
@@ -59,14 +59,15 @@ These patterns are shared across all or most diagram types.
|
|
|
59
59
|
|
|
60
60
|
```
|
|
61
61
|
tag GroupName as <alias>
|
|
62
|
-
Value1
|
|
63
|
-
Value2
|
|
62
|
+
Value1 color
|
|
63
|
+
Value2 color
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
- `tag` keyword, NO colon
|
|
67
67
|
- Alias: optional postfix `as <alias>` per §2A (universal alias syntax — `[A-Za-z][A-Za-z0-9_]{0,11}`)
|
|
68
|
-
- Inline values also supported: `tag Priority as p Low
|
|
69
|
-
-
|
|
68
|
+
- Inline values also supported: `tag Priority as p Low green, High red`
|
|
69
|
+
- Color follows the value as a bare trailing token (see §1.5). Capitalize the color word (`Red`, `Yellow`) to keep it as a literal value with no color.
|
|
70
|
+
- First entry is the default — reorder to change
|
|
70
71
|
- Must appear before diagram content
|
|
71
72
|
- Legacy bare shorthand (`tag Priority p`) and `alias` keyword (`tag Priority alias p`) emit `E_TAG_SHORTHAND_REMOVED` per TD-18
|
|
72
73
|
|
|
@@ -85,15 +86,36 @@ EntityName | key: value, key2: value2
|
|
|
85
86
|
|
|
86
87
|
### 1.5 Color Suffixes
|
|
87
88
|
|
|
89
|
+
Color is set by typing the color name at the end of a label, lowercase. Example: `Done green` colors Done green. Eleven colors exist: `red`, `orange`, `yellow`, `green`, `blue`, `purple`, `teal`, `cyan`, `gray`, `black`, `white`. To use a color word as a literal label, capitalize it: `Red` stays as the word `Red`.
|
|
90
|
+
|
|
88
91
|
```
|
|
89
|
-
Label
|
|
92
|
+
Label color // bare trailing color token
|
|
93
|
+
Done green // value=Done, color=green
|
|
94
|
+
Senior Engineer red // value="Senior Engineer", color=red
|
|
95
|
+
Red // value=Red, no color (capitalized → escape hatch)
|
|
90
96
|
```
|
|
91
97
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
**The universal rule** — color trails the label:
|
|
99
|
+
|
|
100
|
+
> Color is the trailing whitespace-delimited token of a label region, when that token (case-sensitive, lowercase) is one of the 11 names above. Otherwise the label region has no color.
|
|
101
|
+
|
|
102
|
+
The "label region" is everything left after the parser strips off structural terminators it owns: `as <alias>`, `| <pipe metadata>`, numeric values, date ranges, structural brackets. Parsers split those off BEFORE invoking the color rule. So `Tortuga Distillery orange 3000` → `{ label: "Tortuga Distillery", color: "orange", value: 3000 }`: numeric value first, then the color trails the remaining label.
|
|
103
|
+
|
|
104
|
+
**Where the rule applies**: tag values, kanban columns (`[Done] green`), venn / quadrant items (color before `as`), gantt / timeline eras and markers, data-chart series + rows, sankey nodes + link lines, cycle / pyramid / ring / RACI / boxes-and-lines node labels (shortcut for `| color: <name>` when color is the only metadata).
|
|
105
|
+
|
|
106
|
+
**Long form preserved for multi-key pipe metadata**:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Spring | color: green // shortcut and long form are equivalent
|
|
110
|
+
Spring | color: green, icon: ❄ // long form REQUIRED when other keys accompany color
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Accepted tradeoffs**:
|
|
114
|
+
|
|
115
|
+
- **No typo diagnostics**: `Done grren` is a 2-word label with no color, no warning.
|
|
116
|
+
- **Case-sensitivity is the escape hatch**: `Red`, `Yellow`, `Green` stay as labels.
|
|
117
|
+
- **No edge color** on flowchart, state, sitemap. Sankey links DO accept a trailing color word after the numeric value.
|
|
118
|
+
- **11-name palette is a frozen public contract**: adding a 12th color is itself a breaking change.
|
|
97
119
|
|
|
98
120
|
### 1.6 Indentation
|
|
99
121
|
|
|
@@ -104,12 +126,12 @@ Label(colorName)
|
|
|
104
126
|
|
|
105
127
|
```
|
|
106
128
|
[Group Name]
|
|
107
|
-
[Group Name]
|
|
129
|
+
[Group Name] color
|
|
108
130
|
[Group Name] | key: value
|
|
109
131
|
```
|
|
110
132
|
|
|
111
133
|
- Bracket-enclosed name
|
|
112
|
-
- Optional color
|
|
134
|
+
- Optional trailing-token color (kanban columns, scatter categories, era/marker labels)
|
|
113
135
|
- Optional pipe metadata (outside brackets)
|
|
114
136
|
- Indented content below belongs to the group
|
|
115
137
|
|
|
@@ -162,7 +184,7 @@ A -日本語-> B
|
|
|
162
184
|
A -🎉-> B
|
|
163
185
|
|
|
164
186
|
// punctuation is literal — no markdown interpretation
|
|
165
|
-
A -(parenthetical)-> B // label = "(parenthetical)"
|
|
187
|
+
A -(parenthetical)-> B // label = "(parenthetical)"
|
|
166
188
|
A -*emphasis*-> B // label = "*emphasis*" (NOT bold)
|
|
167
189
|
A -`code`-> B // label = "`code`" (NOT a code span)
|
|
168
190
|
|
|
@@ -185,23 +207,21 @@ A -Makes calls-> B | tech: HTTP // preferred: technology on target metadata
|
|
|
185
207
|
- **Plain text only**: no markdown interpretation. `*foo*` renders as `*foo*`, not italicized. `[label](url)` renders as literal `[label](url)`, not a hyperlink. Clickable URLs belong in notes, not in in-arrow labels.
|
|
186
208
|
- **HTML-safe**: all renderers emit label text as a DOM text node. `<script>alert(1)</script>` renders as literal text — the entire label is a sequence of codepoints, not a markup fragment.
|
|
187
209
|
|
|
188
|
-
####
|
|
210
|
+
#### Edge color is not a feature
|
|
211
|
+
|
|
212
|
+
Edges on flowchart, state, and sitemap diagrams have NO color slot. `A -(red)-> B` is a literal label with text `(red)`; `A -yes-> B` and `A -no-> B` no longer auto-color the arrow. Arrows render with the default theme color, period. To color a *node*, use tags (§1.3).
|
|
213
|
+
|
|
214
|
+
Sankey link lines DO accept a trailing-token color, because the link itself carries data:
|
|
189
215
|
|
|
190
216
|
```
|
|
191
|
-
|
|
192
|
-
A -(notacolor)-> B // label = "(notacolor)" (fall-through)
|
|
193
|
-
A -(red) uses-> B // label = "(red) uses" (combined form not supported)
|
|
194
|
-
A -red-> B // label = "red" (bare word is always a label)
|
|
217
|
+
Sugar Plantations -> Tortuga Distillery 3000 red // link is colored red
|
|
195
218
|
```
|
|
196
219
|
|
|
197
|
-
A parenthesized palette color is only recognized when the entire label between the opening `-` and the arrow token is exactly `(colorName)` and `colorName` is one of the 11 names in §1.5. Any other content falls through to the label. To combine a color and a label, use the post-colon or pipe-metadata form instead.
|
|
198
|
-
|
|
199
220
|
#### Migrating from pre-gauntlet syntax
|
|
200
221
|
|
|
201
|
-
|
|
222
|
+
One legacy form changed with this spec:
|
|
202
223
|
|
|
203
224
|
1. **C4 trailing `[technology]` sugar is removed.** A C4 arrow like `-Makes calls [HTTPS]-> API` used to extract `HTTPS` as the technology annotation. The full `Makes calls [HTTPS]` is now the label. Use the post-colon or pipe form for technology: `-Makes calls-> API | tech: HTTPS`.
|
|
204
|
-
2. **Bare palette color suffixes are a literal label.** `A -red-> B` on flowchart/state used to be accepted as a bare color suffix in some surfaces. It is now always a label with text `red`. To color an edge, use the `-(red)->` parens form.
|
|
205
225
|
|
|
206
226
|
No code migration is required for in-arrow label character escaping — any label that was valid before remains valid, with one exception: if your label happened to contain the literal substring `->` or `~>`, the parser now rejects it with `E_ARROW_SUBSTRING_IN_LABEL`. Move those labels to the post-colon form.
|
|
207
227
|
|
|
@@ -290,8 +310,8 @@ b -ack-> a
|
|
|
290
310
|
|
|
291
311
|
```
|
|
292
312
|
venn
|
|
293
|
-
Swordsmanship
|
|
294
|
-
Navigation
|
|
313
|
+
Swordsmanship red as sw
|
|
314
|
+
Navigation blue as nav
|
|
295
315
|
sw + nav Sea Raiders
|
|
296
316
|
```
|
|
297
317
|
|
|
@@ -304,7 +324,7 @@ tag Concern as c
|
|
|
304
324
|
|
|
305
325
|
- **Token shape**: `[A-Za-z][A-Za-z0-9_]{0,11}` — letter start,
|
|
306
326
|
letters/digits/underscore, length 1–12. **Case-sensitive**.
|
|
307
|
-
- **Modifier order on declarations**: `<name> [
|
|
327
|
+
- **Modifier order on declarations**: `<name> [color] [is a type] as <alias> [| key: value, …]`.
|
|
308
328
|
- **Strict ordering**: aliases must be declared on or before first use.
|
|
309
329
|
- **Flat global namespace**: one alias literal has exactly one binding per source.
|
|
310
330
|
- **Aliases are NEVER UNH-normalized** — exact-match short-codes only.
|
|
@@ -328,7 +348,7 @@ rarely benefit. Aliases should aid comprehension, not obscure it.
|
|
|
328
348
|
|-----|-----|
|
|
329
349
|
| `tag Priority p` (bare shorthand) | `tag Priority as p` |
|
|
330
350
|
| `tag Priority alias p` (explicit) | `tag Priority as p` |
|
|
331
|
-
| `Swordsmanship
|
|
351
|
+
| `Swordsmanship red alias sw` (venn) | `Swordsmanship red as sw` |
|
|
332
352
|
|
|
333
353
|
### 2A.6 Error Codes
|
|
334
354
|
|
|
@@ -644,7 +664,7 @@ flowchart [Title]
|
|
|
644
664
|
| Subroutine | `[[Label]]` | `[[Validate]]` |
|
|
645
665
|
| Document | `[Label~]` | `[Report~]` |
|
|
646
666
|
|
|
647
|
-
-
|
|
667
|
+
- Node coloring: use tags (§1.3) — flowchart nodes have no color suffix
|
|
648
668
|
|
|
649
669
|
### 4.3 Arrows
|
|
650
670
|
|
|
@@ -652,8 +672,6 @@ flowchart [Title]
|
|
|
652
672
|
|------|--------|
|
|
653
673
|
| Unlabeled | `->` |
|
|
654
674
|
| Labeled | `-label->` |
|
|
655
|
-
| Colored | `-(color)->` |
|
|
656
|
-
| Labeled + colored | `-label(color)->` |
|
|
657
675
|
|
|
658
676
|
- Color inference: `yes/success/ok/true` infers green; `no/fail/error/false` infers red
|
|
659
677
|
|
|
@@ -695,7 +713,7 @@ state [Title]
|
|
|
695
713
|
|
|
696
714
|
```
|
|
697
715
|
StateName
|
|
698
|
-
StateName
|
|
716
|
+
StateName color
|
|
699
717
|
[*] // initial/final pseudostate
|
|
700
718
|
```
|
|
701
719
|
|
|
@@ -705,13 +723,12 @@ StateName(color)
|
|
|
705
723
|
|------|--------|
|
|
706
724
|
| Unlabeled | `Idle -> Active` |
|
|
707
725
|
| Labeled | `Idle -submit-> Processing` |
|
|
708
|
-
| Colored | `Idle -(blue)-> Active` |
|
|
709
726
|
|
|
710
727
|
### 5.4 Groups
|
|
711
728
|
|
|
712
729
|
```
|
|
713
730
|
[Group Name]
|
|
714
|
-
[Group Name]
|
|
731
|
+
[Group Name] color
|
|
715
732
|
```
|
|
716
733
|
|
|
717
734
|
### 5.5 Options
|
|
@@ -742,7 +759,7 @@ CEO
|
|
|
742
759
|
CFO
|
|
743
760
|
```
|
|
744
761
|
|
|
745
|
-
-
|
|
762
|
+
- Node coloring: per-node indented metadata `\n color: blue` (deferred to a follow-up spec; tag groups inside org also work)
|
|
746
763
|
- Pipe metadata: `Alice | role: CEO, t: Exec`
|
|
747
764
|
|
|
748
765
|
### 6.3 Metadata (Indented, Colon REQUIRED)
|
|
@@ -863,7 +880,7 @@ er [Title]
|
|
|
863
880
|
|
|
864
881
|
```
|
|
865
882
|
users
|
|
866
|
-
users
|
|
883
|
+
users blue
|
|
867
884
|
users | domain: Core
|
|
868
885
|
```
|
|
869
886
|
|
|
@@ -986,7 +1003,7 @@ Columns represent workflow stages and must flow left-to-right from least-done to
|
|
|
986
1003
|
|
|
987
1004
|
```
|
|
988
1005
|
[Column Name]
|
|
989
|
-
[Column Name]
|
|
1006
|
+
[Column Name] color | wip: 3
|
|
990
1007
|
```
|
|
991
1008
|
|
|
992
1009
|
### 10.3 Cards (Indented Under Columns)
|
|
@@ -1118,14 +1135,14 @@ Top-level directive (not nested under `holiday`).
|
|
|
1118
1135
|
|
|
1119
1136
|
**Flat form:**
|
|
1120
1137
|
```
|
|
1121
|
-
era 2026-04-06 -> 2026-04-10 Conference
|
|
1138
|
+
era 2026-04-06 -> 2026-04-10 Conference purple
|
|
1122
1139
|
```
|
|
1123
1140
|
|
|
1124
1141
|
**Block form:**
|
|
1125
1142
|
```
|
|
1126
1143
|
era
|
|
1127
|
-
2026-04-06 -> 2026-04-10 Conference
|
|
1128
|
-
2026-06-01 -> 2026-06-05 Sprint Review
|
|
1144
|
+
2026-04-06 -> 2026-04-10 Conference purple
|
|
1145
|
+
2026-06-01 -> 2026-06-05 Sprint Review blue
|
|
1129
1146
|
```
|
|
1130
1147
|
|
|
1131
1148
|
### 12.6 Markers
|
|
@@ -1139,7 +1156,7 @@ marker 2026-03-27 Board Review
|
|
|
1139
1156
|
```
|
|
1140
1157
|
marker
|
|
1141
1158
|
2026-03-27 Board Review
|
|
1142
|
-
2026-06-15 Release
|
|
1159
|
+
2026-06-15 Release green
|
|
1143
1160
|
```
|
|
1144
1161
|
|
|
1145
1162
|
### 12.7 Groups (Swimlanes)
|
|
@@ -1322,21 +1339,21 @@ era 1716 -> 1718 Nassau Republic
|
|
|
1322
1339
|
```
|
|
1323
1340
|
era
|
|
1324
1341
|
1716 -> 1718 Nassau Republic
|
|
1325
|
-
1718 -> 1720 Woodes Rogers Era
|
|
1342
|
+
1718 -> 1720 Woodes Rogers Era orange
|
|
1326
1343
|
```
|
|
1327
1344
|
|
|
1328
1345
|
### 14.4 Markers
|
|
1329
1346
|
|
|
1330
1347
|
**Flat form:**
|
|
1331
1348
|
```
|
|
1332
|
-
marker 1718-07 Woodes Rogers arrives
|
|
1349
|
+
marker 1718-07 Woodes Rogers arrives orange
|
|
1333
1350
|
```
|
|
1334
1351
|
|
|
1335
1352
|
**Block form:**
|
|
1336
1353
|
```
|
|
1337
1354
|
marker
|
|
1338
|
-
1718-07 Woodes Rogers arrives
|
|
1339
|
-
1720-01 End of Golden Age
|
|
1355
|
+
1718-07 Woodes Rogers arrives orange
|
|
1356
|
+
1720-01 End of Golden Age red
|
|
1340
1357
|
```
|
|
1341
1358
|
|
|
1342
1359
|
### 14.5 Groups
|
|
@@ -1365,11 +1382,11 @@ Q1 400, 700, 300, 500 ⚠ tolerated; use spaces
|
|
|
1365
1382
|
|
|
1366
1383
|
```
|
|
1367
1384
|
series ✅ preferred
|
|
1368
|
-
Cloud Platform
|
|
1369
|
-
Legacy Suite
|
|
1370
|
-
Mobile App
|
|
1385
|
+
Cloud Platform blue
|
|
1386
|
+
Legacy Suite red
|
|
1387
|
+
Mobile App green
|
|
1371
1388
|
|
|
1372
|
-
series Cloud
|
|
1389
|
+
series Cloud blue, Legacy red ⚠ tolerated; prefer the block
|
|
1373
1390
|
```
|
|
1374
1391
|
|
|
1375
1392
|
Parsers accept either form. The rules above are authoring guidance.
|
|
@@ -1381,8 +1398,8 @@ Parsers accept either form. The rules above are authoring guidance.
|
|
|
1381
1398
|
**Series** — follows Rule B (prefer the indented block):
|
|
1382
1399
|
```
|
|
1383
1400
|
series
|
|
1384
|
-
Cloud Platform
|
|
1385
|
-
Legacy Suite
|
|
1401
|
+
Cloud Platform blue
|
|
1402
|
+
Legacy Suite red
|
|
1386
1403
|
```
|
|
1387
1404
|
|
|
1388
1405
|
Short one-line form is tolerated: `series Revenue` or `series A B`.
|
|
@@ -1391,7 +1408,7 @@ Short one-line form is tolerated: `series Revenue` or `series A B`.
|
|
|
1391
1408
|
```
|
|
1392
1409
|
Label 100
|
|
1393
1410
|
Label 100 200 300
|
|
1394
|
-
Label
|
|
1411
|
+
Label color 100 // trailing color before numeric values
|
|
1395
1412
|
Q1 400 700 300 500
|
|
1396
1413
|
```
|
|
1397
1414
|
|
|
@@ -1425,7 +1442,7 @@ Each chart honors the subset of flags that has a renderable atom on it:
|
|
|
1425
1442
|
|
|
1426
1443
|
**Eras (line/area only):**
|
|
1427
1444
|
```
|
|
1428
|
-
era Day 1 -> Day 3 Rough Seas
|
|
1445
|
+
era Day 1 -> Day 3 Rough Seas red
|
|
1429
1446
|
```
|
|
1430
1447
|
|
|
1431
1448
|
### 15.2 Scatter / Bubble Charts
|
|
@@ -1438,7 +1455,7 @@ Name x y size
|
|
|
1438
1455
|
|
|
1439
1456
|
**Categories:**
|
|
1440
1457
|
```
|
|
1441
|
-
[Caribbean]
|
|
1458
|
+
[Caribbean] red
|
|
1442
1459
|
Blackbeard 90 8500
|
|
1443
1460
|
```
|
|
1444
1461
|
|
|
@@ -1477,8 +1494,8 @@ x-label Distance
|
|
|
1477
1494
|
y-label Height
|
|
1478
1495
|
x 0 to 250
|
|
1479
1496
|
|
|
1480
|
-
15 degrees
|
|
1481
|
-
45 degrees
|
|
1497
|
+
15 degrees blue: -0.001*x^2 + 0.27*x
|
|
1498
|
+
45 degrees red: -0.003*x^2 + 0.75*x
|
|
1482
1499
|
```
|
|
1483
1500
|
|
|
1484
1501
|
The colon between name and expression is **required** — both sides can contain spaces, so colon is the unambiguous delimiter.
|
|
@@ -1490,8 +1507,8 @@ The colon between name and expression is **required** — both sides can contain
|
|
|
1490
1507
|
|
|
1491
1508
|
**Tree structure (indented, space-separated):**
|
|
1492
1509
|
```
|
|
1493
|
-
Sugar Plantations
|
|
1494
|
-
Tortuga Distillery
|
|
1510
|
+
Sugar Plantations green
|
|
1511
|
+
Tortuga Distillery orange 3000
|
|
1495
1512
|
Nassau Distillery 2500
|
|
1496
1513
|
```
|
|
1497
1514
|
|
|
@@ -1544,7 +1561,7 @@ Roberts 12 52
|
|
|
1544
1561
|
```
|
|
1545
1562
|
- Data rows: `Label value1 value2` — follows §15 Rule A (space-separated; commas between values tolerated for back-compat but not idiomatic)
|
|
1546
1563
|
- Thousands commas within values supported (e.g., `1,000`)
|
|
1547
|
-
- Color annotations: `Label
|
|
1564
|
+
- Color annotations: `Label color value1 value2` (trailing color word before numeric values)
|
|
1548
1565
|
- Minimum 2 periods required
|
|
1549
1566
|
|
|
1550
1567
|
### 16.2 Wordcloud
|
|
@@ -1567,7 +1584,7 @@ navigation 88
|
|
|
1567
1584
|
```
|
|
1568
1585
|
arc Pirate Alliances
|
|
1569
1586
|
|
|
1570
|
-
[Caribbean]
|
|
1587
|
+
[Caribbean] red
|
|
1571
1588
|
Blackbeard -> Bonnet 8
|
|
1572
1589
|
Blackbeard -> Vane 5
|
|
1573
1590
|
|
|
@@ -1582,15 +1599,15 @@ order group
|
|
|
1582
1599
|
```
|
|
1583
1600
|
venn Skill Overlap
|
|
1584
1601
|
|
|
1585
|
-
Swordsmanship
|
|
1586
|
-
Navigation
|
|
1587
|
-
Leadership
|
|
1602
|
+
Swordsmanship red as sw
|
|
1603
|
+
Navigation blue as nav
|
|
1604
|
+
Leadership green as lead
|
|
1588
1605
|
|
|
1589
1606
|
sw + nav Sea Raiders
|
|
1590
1607
|
sw + nav + lead Legendary Pirates
|
|
1591
1608
|
```
|
|
1592
1609
|
|
|
1593
|
-
- Set declaration: `Name
|
|
1610
|
+
- Set declaration: `Name [color] as <alias>` — color is an optional trailing token BEFORE `as` (universal alias syntax, §2A)
|
|
1594
1611
|
- Intersections: `Set1 + Set2 Label` — label follows the last set reference (no colon)
|
|
1595
1612
|
- Legacy `Name(color) alias X` emits `E_VENN_ALIAS_KEYWORD_REMOVED` per TD-18
|
|
1596
1613
|
|
|
@@ -1601,10 +1618,10 @@ quadrant Crew Assessment
|
|
|
1601
1618
|
x-label Low Skill, High Skill
|
|
1602
1619
|
y-label Low Loyalty, High Loyalty
|
|
1603
1620
|
|
|
1604
|
-
top-right Promote
|
|
1605
|
-
top-left Train
|
|
1606
|
-
bottom-left Maroon
|
|
1607
|
-
bottom-right Watch Closely
|
|
1621
|
+
top-right Promote green
|
|
1622
|
+
top-left Train yellow
|
|
1623
|
+
bottom-left Maroon red
|
|
1624
|
+
bottom-right Watch Closely purple
|
|
1608
1625
|
|
|
1609
1626
|
Quartermaster 0.9 0.95
|
|
1610
1627
|
Navigator 0.85 0.8
|
|
@@ -2,9 +2,9 @@ area Memory Usage Over Time
|
|
|
2
2
|
x-label Hour
|
|
3
3
|
y-label GB
|
|
4
4
|
|
|
5
|
-
era 12am -> 9am Night
|
|
6
|
-
era 9am -> 6pm Day
|
|
7
|
-
era 6pm -> 11pm Evening
|
|
5
|
+
era 12am -> 9am Night blue
|
|
6
|
+
era 9am -> 6pm Day green
|
|
7
|
+
era 6pm -> 11pm Evening purple
|
|
8
8
|
|
|
9
9
|
12am 2.1
|
|
10
10
|
3am 1.8
|
|
@@ -3,11 +3,11 @@ x-label Month
|
|
|
3
3
|
y-label Tickets
|
|
4
4
|
|
|
5
5
|
series
|
|
6
|
-
Critical
|
|
7
|
-
High
|
|
8
|
-
Medium
|
|
9
|
-
Low
|
|
10
|
-
Info
|
|
6
|
+
Critical red
|
|
7
|
+
High orange
|
|
8
|
+
Medium yellow
|
|
9
|
+
Low green
|
|
10
|
+
Info blue
|
|
11
11
|
|
|
12
12
|
January 8 24 45 62 31
|
|
13
13
|
February 12 19 51 58 28
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
boxes-and-lines E-Commerce Platform
|
|
2
2
|
|
|
3
|
-
tag Team t Backend
|
|
4
|
-
tag Priority p High
|
|
3
|
+
tag Team t Backend blue, Frontend green, Platform purple
|
|
4
|
+
tag Priority p High red, Medium orange, Low gray
|
|
5
5
|
|
|
6
6
|
active-tag Team
|
|
7
7
|
hide priority:Low
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
c4 Online Bookstore — C4 Architecture
|
|
2
2
|
|
|
3
3
|
tag Technology as tech
|
|
4
|
-
React
|
|
5
|
-
Node
|
|
6
|
-
Python
|
|
7
|
-
PostgreSQL
|
|
4
|
+
React blue
|
|
5
|
+
Node green
|
|
6
|
+
Python orange
|
|
7
|
+
PostgreSQL purple
|
|
8
8
|
|
|
9
9
|
tag Team as t
|
|
10
|
-
Frontend
|
|
11
|
-
Backend
|
|
12
|
-
Platform
|
|
13
|
-
Data
|
|
10
|
+
Frontend blue
|
|
11
|
+
Backend green
|
|
12
|
+
Platform teal
|
|
13
|
+
Data purple
|
|
14
14
|
|
|
15
15
|
Customer is a person | t: Frontend
|
|
16
16
|
description: Browses and purchases books online
|
|
@@ -4,7 +4,7 @@ Drawable [interface]
|
|
|
4
4
|
+ draw(): void
|
|
5
5
|
+ resize(w: number, h: number): void
|
|
6
6
|
|
|
7
|
-
Shape implements Drawable [abstract]
|
|
7
|
+
Shape implements Drawable [abstract] purple
|
|
8
8
|
# x: number
|
|
9
9
|
# y: number
|
|
10
10
|
+ area(): number
|
|
@@ -20,7 +20,7 @@ Rectangle extends Shape
|
|
|
20
20
|
- height: number
|
|
21
21
|
+ getDiagonal(): number
|
|
22
22
|
|
|
23
|
-
Color [enum]
|
|
23
|
+
Color [enum] yellow
|
|
24
24
|
Red
|
|
25
25
|
Green
|
|
26
26
|
Blue
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
doughnut Cloud Spending by Service
|
|
2
2
|
|
|
3
|
-
Compute
|
|
4
|
-
Storage
|
|
5
|
-
Database
|
|
6
|
-
Networking
|
|
7
|
-
AI/ML
|
|
8
|
-
Other
|
|
3
|
+
Compute blue 34
|
|
4
|
+
Storage cyan 22
|
|
5
|
+
Database green 18
|
|
6
|
+
Networking orange 12
|
|
7
|
+
AI/ML purple 8
|
|
8
|
+
Other gray 6
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
flowchart Color Demo
|
|
2
2
|
|
|
3
|
-
(Start
|
|
4
|
-
-yes
|
|
5
|
-
-no
|
|
3
|
+
(Start) -> [Parse Input] -> <Valid?>
|
|
4
|
+
-yes-> [Process] -> (Success)
|
|
5
|
+
-no-> [Error Handler] -> /Log Error/ -> (Failure)
|
|
@@ -5,20 +5,20 @@ critical-path
|
|
|
5
5
|
dependencies
|
|
6
6
|
|
|
7
7
|
tag Team as t
|
|
8
|
-
Engineering
|
|
9
|
-
Design
|
|
10
|
-
QA
|
|
11
|
-
Marketing
|
|
8
|
+
Engineering blue
|
|
9
|
+
Design purple
|
|
10
|
+
QA orange
|
|
11
|
+
Marketing green
|
|
12
12
|
|
|
13
13
|
tag Phase as p
|
|
14
|
-
Foundation
|
|
15
|
-
Growth
|
|
16
|
-
Launch
|
|
14
|
+
Foundation green
|
|
15
|
+
Growth orange
|
|
16
|
+
Launch red
|
|
17
17
|
|
|
18
18
|
era 2024-01-15 -> 2024-02-15 Investor Review
|
|
19
|
-
era 2024-03-10 -> 2024-03-14 GDC 2024
|
|
19
|
+
era 2024-03-10 -> 2024-03-14 GDC 2024 purple
|
|
20
20
|
marker 2024-02-26 Board Meeting
|
|
21
|
-
marker 2024-04-08 Trade Show Demo
|
|
21
|
+
marker 2024-04-08 Trade Show Demo orange
|
|
22
22
|
|
|
23
23
|
// Independent task with offset — starts 8bd after project start
|
|
24
24
|
10bd Brand Guidelines | t: Design, p: Foundation, offset: 8bd
|
|
@@ -5,18 +5,18 @@ critical-path
|
|
|
5
5
|
dependencies
|
|
6
6
|
|
|
7
7
|
tag Team as t
|
|
8
|
-
Engineering
|
|
9
|
-
Design
|
|
10
|
-
QA
|
|
8
|
+
Engineering blue
|
|
9
|
+
Design purple
|
|
10
|
+
QA orange
|
|
11
11
|
|
|
12
12
|
tag Phase as p
|
|
13
|
-
Foundation
|
|
14
|
-
Growth
|
|
13
|
+
Foundation green
|
|
14
|
+
Growth orange
|
|
15
15
|
|
|
16
16
|
era 2024-01-15 -> 2024-02-15 Investor Review
|
|
17
|
-
era 2024-03-10 -> 2024-03-14 GDC 2024
|
|
17
|
+
era 2024-03-10 -> 2024-03-14 GDC 2024 purple
|
|
18
18
|
marker 2024-02-26 Board Meeting
|
|
19
|
-
marker 2024-04-08 Trade Show Demo
|
|
19
|
+
marker 2024-04-08 Trade Show Demo orange
|
|
20
20
|
|
|
21
21
|
// Independent task with offset — starts 8bd after project start
|
|
22
22
|
10bd Brand Guidelines | t: Design, p: Foundation, offset: 8bd
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
infra E-Commerce Platform — Full Infrastructure
|
|
2
2
|
|
|
3
3
|
tag Team as t
|
|
4
|
-
Backend
|
|
5
|
-
Platform
|
|
6
|
-
Data
|
|
4
|
+
Backend blue
|
|
5
|
+
Platform teal
|
|
6
|
+
Data purple
|
|
7
7
|
|
|
8
8
|
tag Tier as r
|
|
9
|
-
Edge
|
|
10
|
-
Core
|
|
11
|
-
Storage
|
|
9
|
+
Edge green
|
|
10
|
+
Core blue
|
|
11
|
+
Storage orange
|
|
12
12
|
|
|
13
13
|
edge
|
|
14
14
|
rps: 15000
|