@diagrammo/dgmo 0.8.23 → 0.8.26

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 (78) hide show
  1. package/.claude/commands/dgmo.md +43 -431
  2. package/.cursorrules +2 -2
  3. package/.windsurfrules +2 -2
  4. package/AGENTS.md +8 -5
  5. package/dist/cli.cjs +119 -114
  6. package/dist/editor.cjs +0 -2
  7. package/dist/editor.cjs.map +1 -1
  8. package/dist/editor.js +0 -2
  9. package/dist/editor.js.map +1 -1
  10. package/dist/highlight.cjs +0 -2
  11. package/dist/highlight.cjs.map +1 -1
  12. package/dist/highlight.js +0 -2
  13. package/dist/highlight.js.map +1 -1
  14. package/dist/index.cjs +719 -281
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +105 -18
  17. package/dist/index.d.ts +105 -18
  18. package/dist/index.js +709 -280
  19. package/dist/index.js.map +1 -1
  20. package/dist/internal.cjs +348 -51
  21. package/dist/internal.cjs.map +1 -1
  22. package/dist/internal.d.cts +93 -5
  23. package/dist/internal.d.ts +93 -5
  24. package/dist/internal.js +334 -38
  25. package/dist/internal.js.map +1 -1
  26. package/docs/guide/chart-area.md +17 -17
  27. package/docs/guide/chart-bar-stacked.md +12 -12
  28. package/docs/guide/chart-doughnut.md +10 -10
  29. package/docs/guide/chart-funnel.md +9 -9
  30. package/docs/guide/chart-heatmap.md +10 -10
  31. package/docs/guide/chart-kanban.md +2 -0
  32. package/docs/guide/chart-line.md +19 -19
  33. package/docs/guide/chart-multi-line.md +16 -16
  34. package/docs/guide/chart-pie.md +11 -11
  35. package/docs/guide/chart-polar-area.md +10 -10
  36. package/docs/guide/chart-radar.md +9 -9
  37. package/docs/guide/chart-scatter.md +24 -27
  38. package/docs/guide/index.md +3 -3
  39. package/docs/language-reference.md +46 -25
  40. package/fonts/Inter-Bold.ttf +0 -0
  41. package/fonts/Inter-Regular.ttf +0 -0
  42. package/fonts/LICENSE-Inter.txt +92 -0
  43. package/gallery/fixtures/bar-stacked.dgmo +12 -6
  44. package/gallery/fixtures/heatmap.dgmo +12 -6
  45. package/gallery/fixtures/multi-line.dgmo +11 -7
  46. package/gallery/fixtures/quadrant.dgmo +8 -8
  47. package/gallery/fixtures/scatter.dgmo +12 -12
  48. package/package.json +10 -3
  49. package/src/boxes-and-lines/parser.ts +13 -2
  50. package/src/boxes-and-lines/renderer.ts +22 -13
  51. package/src/chart-type-scoring.ts +162 -0
  52. package/src/chart-types.ts +437 -0
  53. package/src/cli.ts +147 -66
  54. package/src/completion.ts +0 -4
  55. package/src/d3.ts +40 -2
  56. package/src/dgmo-router.ts +85 -130
  57. package/src/editor/keywords.ts +0 -2
  58. package/src/fonts.ts +3 -2
  59. package/src/gantt/parser.ts +5 -1
  60. package/src/index.ts +24 -1
  61. package/src/infra/parser.ts +1 -1
  62. package/src/internal.ts +6 -2
  63. package/src/journey-map/layout.ts +8 -6
  64. package/src/journey-map/parser.ts +5 -1
  65. package/src/kanban/parser.ts +5 -1
  66. package/src/org/collapse.ts +1 -4
  67. package/src/org/parser.ts +1 -1
  68. package/src/org/renderer.ts +26 -17
  69. package/src/sequence/parser.ts +2 -2
  70. package/src/sequence/participant-inference.ts +0 -1
  71. package/src/sequence/renderer.ts +95 -263
  72. package/src/sharing.ts +0 -1
  73. package/src/sitemap/parser.ts +1 -1
  74. package/src/tech-radar/layout.ts +1 -2
  75. package/src/tech-radar/shared.ts +1 -37
  76. package/src/utils/tag-groups.ts +35 -5
  77. package/src/wireframe/parser.ts +3 -1
  78. package/src/tech-radar/index.ts +0 -14
@@ -8,12 +8,12 @@ x-label Year
8
8
  era 1710 -> 1716 Rise (green)
9
9
  era 1716 -> 1720 Decline (red)
10
10
 
11
- 1710: 3
12
- 1712: 5
13
- 1714: 9
14
- 1716: 14
15
- 1718: 8
16
- 1720: 4
11
+ 1710 3
12
+ 1712 5
13
+ 1714 9
14
+ 1716 14
15
+ 1718 8
16
+ 1720 4
17
17
  ```
18
18
 
19
19
  ## Syntax
@@ -24,7 +24,7 @@ series Series Name
24
24
  x-label X Axis Label
25
25
  y-label Y Axis Label
26
26
 
27
- Label: value
27
+ Label value
28
28
  ```
29
29
 
30
30
  ## Era Bands
@@ -38,12 +38,12 @@ x-label Year
38
38
  era 1710 -> 1714 Early Growth (blue)
39
39
  era 1714 -> 1720 Decline (red)
40
40
 
41
- 1710: 3
42
- 1712: 5
43
- 1714: 9
44
- 1716: 14
45
- 1718: 8
46
- 1720: 4
41
+ 1710 3
42
+ 1712 5
43
+ 1714 9
44
+ 1716 14
45
+ 1718 8
46
+ 1720 4
47
47
  ```
48
48
 
49
49
  Era syntax: `era <start> -> <end> Label (color)`
@@ -64,10 +64,10 @@ Era syntax: `era <start> -> <end> Label (color)`
64
64
 
65
65
  ## Data Format
66
66
 
67
- Each data line follows the pattern `Label: value`:
67
+ Each data line follows the pattern `Label value`:
68
68
 
69
69
  ```
70
- 1710: 3
71
- 1712: 5
72
- 1714: 9
70
+ 1710 3
71
+ 1712 5
72
+ 1714 9
73
73
  ```
@@ -4,10 +4,10 @@
4
4
  bar-stacked Cargo by Voyage
5
5
  series Rum, Spices, Silk, Gold
6
6
 
7
- Voyage 1 40, 20, 10, 30
8
- Voyage 2 25, 35, 20, 20
9
- Voyage 3 15, 10, 45, 30
10
- Voyage 4 30, 25, 15, 30
7
+ Voyage 1 40 20 10 30
8
+ Voyage 2 25 35 20 20
9
+ Voyage 3 15 10 45 30
10
+ Voyage 4 30 25 15 30
11
11
  ```
12
12
 
13
13
  ## Syntax
@@ -16,7 +16,7 @@ Voyage 4 30, 25, 15, 30
16
16
  bar-stacked Chart Title
17
17
  series Series1, Series2, Series3
18
18
 
19
- Label value1, value2, value3
19
+ Label value1 value2 value3
20
20
  ```
21
21
 
22
22
  ## Metadata Keys
@@ -30,11 +30,11 @@ Label value1, value2, value3
30
30
 
31
31
  ## Data Format
32
32
 
33
- Each data line provides comma-separated values matching the series order:
33
+ Each data line provides space-separated values matching the series order:
34
34
 
35
35
  ```
36
- Voyage 1 40, 20, 10, 30
37
- Voyage 2 25, 35, 20, 20
36
+ Voyage 1 40 20 10 30
37
+ Voyage 2 25 35 20 20
38
38
  ```
39
39
 
40
40
  ## Series Colors
@@ -54,8 +54,8 @@ bar-stacked Port Revenue by Trade
54
54
  orientation-horizontal
55
55
  series Imports(blue), Exports(green), Tariffs(orange)
56
56
 
57
- Port Royal 300, 450, 80
58
- Tortuga 150, 200, 30
59
- Nassau 400, 350, 120
60
- Havana 500, 600, 150
57
+ Port Royal 300 450 80
58
+ Tortuga 150 200 30
59
+ Nassau 400 350 120
60
+ Havana 500 600 150
61
61
  ```
@@ -3,11 +3,11 @@
3
3
  ```dgmo
4
4
  doughnut Plunder Distribution
5
5
 
6
- Captain's Share: 40
7
- Quartermaster: 20
8
- Crew Split: 25
9
- Ship Repairs: 10
10
- Provisions: 5
6
+ Captain's Share 40
7
+ Quartermaster 20
8
+ Crew Split 25
9
+ Ship Repairs 10
10
+ Provisions 5
11
11
  ```
12
12
 
13
13
  ## Syntax
@@ -15,7 +15,7 @@ Provisions: 5
15
15
  ```
16
16
  doughnut Chart Title
17
17
 
18
- Label: value
18
+ Label value
19
19
  ```
20
20
 
21
21
  ## Metadata Keys
@@ -27,12 +27,12 @@ Label: value
27
27
 
28
28
  ## Data Format
29
29
 
30
- Each data line follows the pattern `Label: value`:
30
+ Each data line follows the pattern `Label value`:
31
31
 
32
32
  ```
33
- Captain's Share: 40
34
- Quartermaster: 20
35
- Crew Split: 25
33
+ Captain's Share 40
34
+ Quartermaster 20
35
+ Crew Split 25
36
36
  ```
37
37
 
38
38
  Segments are automatically colored using the Nord palette.
@@ -3,11 +3,11 @@
3
3
  ```dgmo
4
4
  funnel Pirate Recruitment Pipeline
5
5
 
6
- Port Visitors: 1000
7
- Tavern Recruits: 500
8
- Crew Trials: 200
9
- Sworn Pirates: 100
10
- Veteran Buccaneers: 50
6
+ Port Visitors 1000
7
+ Tavern Recruits 500
8
+ Crew Trials 200
9
+ Sworn Pirates 100
10
+ Veteran Buccaneers 50
11
11
  ```
12
12
 
13
13
  ## Syntax
@@ -15,7 +15,7 @@ Veteran Buccaneers: 50
15
15
  ```
16
16
  funnel Chart Title
17
17
 
18
- Label: value
18
+ Label value
19
19
  ```
20
20
 
21
21
  ## Metadata Keys
@@ -30,9 +30,9 @@ Label: value
30
30
  Each data line defines a stage with its value. Stages are displayed top-to-bottom with widths proportional to their values:
31
31
 
32
32
  ```
33
- Visitors: 1000
34
- Signups: 500
35
- Purchases: 100
33
+ Visitors 1000
34
+ Signups 500
35
+ Purchases 100
36
36
  ```
37
37
 
38
38
  List stages from largest to smallest for a classic funnel shape.
@@ -4,12 +4,12 @@
4
4
  heatmap Pirate Activity by Sea Region
5
5
  columns Jan, Feb, Mar, Apr, May, Jun
6
6
 
7
- Caribbean: 5, 4, 5, 3, 4, 5
8
- Atlantic: 2, 3, 2, 4, 3, 2
9
- Mediterranean: 3, 2, 1, 2, 3, 4
10
- Indian Ocean: 4, 5, 4, 5, 4, 3
11
- South China Sea: 1, 2, 3, 2, 1, 2
12
- West Africa: 3, 3, 4, 3, 5, 4
7
+ Caribbean 5 4 5 3 4 5
8
+ Atlantic 2 3 2 4 3 2
9
+ Mediterranean 3 2 1 2 3 4
10
+ Indian Ocean 4 5 4 5 4 3
11
+ South China Sea 1 2 3 2 1 2
12
+ West Africa 3 3 4 3 5 4
13
13
  ```
14
14
 
15
15
  ## Syntax
@@ -18,7 +18,7 @@ West Africa: 3, 3, 4, 3, 5, 4
18
18
  heatmap Chart Title
19
19
  columns Col1, Col2, Col3
20
20
 
21
- Row Label: value1, value2, value3
21
+ Row Label value1 value2 value3
22
22
  ```
23
23
 
24
24
  ## Metadata Keys
@@ -31,11 +31,11 @@ Row Label: value1, value2, value3
31
31
 
32
32
  ## Data Format
33
33
 
34
- Each data line defines a row with comma-separated values matching the column count:
34
+ Each data line defines a row with space-separated values matching the column count:
35
35
 
36
36
  ```
37
- Caribbean: 5, 4, 5, 3, 4, 5
38
- Atlantic: 2, 3, 2, 4, 3, 2
37
+ Caribbean 5 4 5 3 4 5
38
+ Atlantic 2 3 2 4 3 2
39
39
  ```
40
40
 
41
41
  The row label becomes the Y axis label. Cell colors are scaled automatically based on value range.
@@ -59,6 +59,8 @@ Card Title | key: Value, key: Value
59
59
 
60
60
  Columns are defined with `[Column Name]` syntax. All cards between one column header and the next belong to that column.
61
61
 
62
+ Kanban columns model a workflow pipeline. Cards move left to right as work progresses. Each column should answer "what stage is this work in?" If something isn't a stage — like acceptance criteria, decision gates, or definitions of done — model it as a tag on cards rather than a separate column.
63
+
62
64
  ```
63
65
  [To Do]
64
66
  [In Progress]
@@ -9,13 +9,13 @@ y-label Speed
9
9
  era Day 1 -> Day 3 Rough Seas (red)
10
10
  era Day 3 -> Day 7 Fair Winds (blue)
11
11
 
12
- Day 1: 8
13
- Day 2: 10
14
- Day 3: 7
15
- Day 4: 12
16
- Day 5: 9
17
- Day 6: 11
18
- Day 7: 6
12
+ Day 1 8
13
+ Day 2 10
14
+ Day 3 7
15
+ Day 4 12
16
+ Day 5 9
17
+ Day 6 11
18
+ Day 7 6
19
19
  ```
20
20
 
21
21
  ## Syntax
@@ -26,7 +26,7 @@ series Series Name
26
26
  x-label X Axis Label
27
27
  y-label Y Axis Label
28
28
 
29
- Label: value
29
+ Label value
30
30
  ```
31
31
 
32
32
  ## Era Bands
@@ -41,13 +41,13 @@ era '77 -> '81 Carter (blue)
41
41
  era '81 -> '89 Reagan (red)
42
42
  era '89 -> '93 Bush (red)
43
43
 
44
- '77: 7
45
- '78: 67
46
- '79: 91
47
- '80: 108
48
- '81: 230
49
- '82: 294
50
- '83: 379
44
+ '77 7
45
+ '78 67
46
+ '79 91
47
+ '80 108
48
+ '81 230
49
+ '82 294
50
+ '83 379
51
51
  ```
52
52
 
53
53
  Era syntax: `era <start> -> <end> Label (color)`
@@ -70,10 +70,10 @@ Era syntax: `era <start> -> <end> Label (color)`
70
70
 
71
71
  ## Data Format
72
72
 
73
- Each data line follows the pattern `Label: value`:
73
+ Each data line follows the pattern `Label value`:
74
74
 
75
75
  ```
76
- Day 1: 8
77
- Day 2: 10
78
- Day 3: 7
76
+ Day 1 8
77
+ Day 2 10
78
+ Day 3 7
79
79
  ```
@@ -9,12 +9,12 @@ x-label Month
9
9
  era Jan -> Mar Atlantic Season
10
10
  era Mar -> Jun Caribbean Season (teal)
11
11
 
12
- Jan: 3, 5, 2
13
- Feb: 4, 3, 4
14
- Mar: 2, 7, 3
15
- Apr: 6, 4, 1
16
- May: 5, 6, 5
17
- Jun: 3, 8, 2
12
+ Jan 3 5 2
13
+ Feb 4 3 4
14
+ Mar 2 7 3
15
+ Apr 6 4 1
16
+ May 5 6 5
17
+ Jun 3 8 2
18
18
  ```
19
19
 
20
20
  ## Syntax
@@ -24,7 +24,7 @@ line Chart Title
24
24
  series Series1(color), Series2(color), Series3(color)
25
25
  x-label X Axis Label
26
26
 
27
- Label: value1, value2, value3
27
+ Label value1 value2 value3
28
28
  ```
29
29
 
30
30
  ## Metadata Keys
@@ -39,11 +39,11 @@ Label: value1, value2, value3
39
39
 
40
40
  ## Data Format
41
41
 
42
- Each data line provides comma-separated values matching the series order:
42
+ Each data line provides space-separated values matching the series order:
43
43
 
44
44
  ```
45
- Jan: 3, 5, 2
46
- Feb: 4, 3, 4
45
+ Jan 3 5 2
46
+ Feb 4 3 4
47
47
  ```
48
48
 
49
49
  The number of values per line must match the number of series names.
@@ -60,12 +60,12 @@ x-label Month
60
60
  era Jan -> Mar Q1 (green)
61
61
  era Apr -> Jun Q2 (orange)
62
62
 
63
- Jan: 3, 5
64
- Feb: 4, 3
65
- Mar: 2, 7
66
- Apr: 6, 4
67
- May: 5, 6
68
- Jun: 3, 8
63
+ Jan 3 5
64
+ Feb 4 3
65
+ Mar 2 7
66
+ Apr 6 4
67
+ May 5 6
68
+ Jun 3 8
69
69
  ```
70
70
 
71
71
  Era syntax: `era <start> -> <end> Label (color)`
@@ -3,12 +3,12 @@
3
3
  ```dgmo
4
4
  pie Crew Roles Distribution
5
5
 
6
- Sailors: 45
7
- Gunners: 20
8
- Marines: 15
9
- Officers: 8
10
- Specialists: 7
11
- Cooks & Surgeons: 5
6
+ Sailors 45
7
+ Gunners 20
8
+ Marines 15
9
+ Officers 8
10
+ Specialists 7
11
+ Cooks & Surgeons 5
12
12
  ```
13
13
 
14
14
  ## Syntax
@@ -16,7 +16,7 @@ Cooks & Surgeons: 5
16
16
  ```
17
17
  pie Chart Title
18
18
 
19
- Label: value
19
+ Label value
20
20
  ```
21
21
 
22
22
  ## Metadata Keys
@@ -28,12 +28,12 @@ Label: value
28
28
 
29
29
  ## Data Format
30
30
 
31
- Each data line follows the pattern `Label: value`:
31
+ Each data line follows the pattern `Label value`:
32
32
 
33
33
  ```
34
- Sailors: 45
35
- Gunners: 20
36
- Officers: 8
34
+ Sailors 45
35
+ Gunners 20
36
+ Officers 8
37
37
  ```
38
38
 
39
39
  Slices are automatically colored using the Nord palette.
@@ -3,11 +3,11 @@
3
3
  ```dgmo
4
4
  polar-area Captain's Skills
5
5
 
6
- Navigation: 90
7
- Swordsmanship: 75
8
- Leadership: 85
9
- Cunning: 95
10
- Seamanship: 80
6
+ Navigation 90
7
+ Swordsmanship 75
8
+ Leadership 85
9
+ Cunning 95
10
+ Seamanship 80
11
11
  ```
12
12
 
13
13
  ## Syntax
@@ -15,7 +15,7 @@ Seamanship: 80
15
15
  ```
16
16
  polar-area Chart Title
17
17
 
18
- Label: value
18
+ Label value
19
19
  ```
20
20
 
21
21
  ## Metadata Keys
@@ -27,12 +27,12 @@ Label: value
27
27
 
28
28
  ## Data Format
29
29
 
30
- Each data line follows the pattern `Label: value`:
30
+ Each data line follows the pattern `Label value`:
31
31
 
32
32
  ```
33
- Navigation: 90
34
- Swordsmanship: 75
35
- Leadership: 85
33
+ Navigation 90
34
+ Swordsmanship 75
35
+ Leadership 85
36
36
  ```
37
37
 
38
38
  Segments are automatically colored using the Nord palette.
@@ -3,11 +3,11 @@
3
3
  ```dgmo
4
4
  radar Ship Combat Rating
5
5
 
6
- Firepower: 85
7
- Speed: 70
8
- Armor: 60
9
- Maneuverability: 90
10
- Crew Morale: 75
6
+ Firepower 85
7
+ Speed 70
8
+ Armor 60
9
+ Maneuverability 90
10
+ Crew Morale 75
11
11
  ```
12
12
 
13
13
  ## Syntax
@@ -15,7 +15,7 @@ Crew Morale: 75
15
15
  ```
16
16
  radar Chart Title
17
17
 
18
- Label: value
18
+ Label value
19
19
  ```
20
20
 
21
21
  ## Metadata Keys
@@ -30,9 +30,9 @@ Label: value
30
30
  Each data line defines one axis of the radar with its value:
31
31
 
32
32
  ```
33
- Firepower: 85
34
- Speed: 70
35
- Armor: 60
33
+ Firepower 85
34
+ Speed 70
35
+ Armor 60
36
36
  ```
37
37
 
38
38
  Values are plotted on axes radiating from the center, connected by a filled polygon.
@@ -5,17 +5,16 @@ scatter Cannon Range vs Powder Charge
5
5
  x-label Powder (lbs)
6
6
  y-label Range (yards)
7
7
 
8
- // label: x, y
9
- Long Tom: 12, 1800
10
- Demi-Culverin: 8, 1200
11
- Carronade: 4, 400
12
- Swivel Gun: 2, 250
13
- Nine-Pounder: 6, 900
14
- Eighteen-Pounder: 10, 1500
15
- Basilisk: 14, 2000
16
- Falconet: 3, 350
17
- Minion: 5, 700
18
- Saker: 7, 1050
8
+ Long Tom 12 1800
9
+ Demi-Culverin 8 1200
10
+ Carronade 4 400
11
+ Swivel Gun 2 250
12
+ Nine-Pounder 6 900
13
+ Eighteen-Pounder 10 1500
14
+ Basilisk 14 2000
15
+ Falconet 3 350
16
+ Minion 5 700
17
+ Saker 7 1050
19
18
  ```
20
19
 
21
20
  ## Syntax
@@ -27,12 +26,10 @@ y-label Y Axis Label
27
26
  no-labels
28
27
  size-label Size Legend Label
29
28
 
30
- // label: x, y
31
- Point Name: x, y
29
+ Point Name x y
32
30
 
33
31
  // or with size (bubble chart)
34
- // label: x, y, size
35
- Point Name: x, y, size
32
+ Point Name x y size
36
33
  ```
37
34
 
38
35
  ## Metadata Keys
@@ -52,12 +49,12 @@ Each data line provides X and Y values, with an optional third value for bubble
52
49
 
53
50
  ```
54
51
  // 2D scatter
55
- Point A: 12, 1800
56
- Point B: 8, 1200
52
+ Point A 12 1800
53
+ Point B 8 1200
57
54
 
58
55
  // 3D bubble
59
- Point A: 85, 90, 80
60
- Point B: 45, 55, 35
56
+ Point A 85 90 80
57
+ Point B 45 55 35
61
58
  ```
62
59
 
63
60
  ## Category Groups
@@ -66,11 +63,11 @@ Use `[Category Name](color)` headers to group points into colored categories:
66
63
 
67
64
  ```
68
65
  [English Pirates](red)
69
- Blackbeard: 85, 90, 80
70
- Calico Jack: 45, 55, 35
66
+ Blackbeard 85 90 80
67
+ Calico Jack 45 55 35
71
68
 
72
69
  [French Buccaneers](blue)
73
- L'Olonnais: 70, 80, 60
70
+ L'Olonnais 70 80 60
74
71
  ```
75
72
 
76
73
  ## Variants
@@ -84,11 +81,11 @@ scatter Pirate Fleets of the Caribbean
84
81
  size-label Crew
85
82
 
86
83
  [English Pirates](red)
87
- Blackbeard: 85, 90, 80
88
- Calico Jack: 45, 55, 35
89
- Anne Bonny: 50, 70, 30
84
+ Blackbeard 85 90 80
85
+ Calico Jack 45 55 35
86
+ Anne Bonny 50 70 30
90
87
 
91
88
  [French Buccaneers](blue)
92
- L'Olonnais: 70, 80, 60
93
- Pierre le Grand: 30, 45, 25
89
+ L'Olonnais 70 80 60
90
+ Pierre le Grand 30 45 25
94
91
  ```
@@ -24,9 +24,9 @@ Every diagram starts with the chart type on the first line, followed by your dat
24
24
  ```
25
25
  bar Q1 Sales
26
26
 
27
- Jan: 42
28
- Feb: 58
29
- Mar: 71
27
+ Jan 42
28
+ Feb 58
29
+ Mar 71
30
30
  ```
31
31
 
32
32
  ## The Diagrammo Ecosystem