@diagrammo/dgmo 0.8.6 → 0.8.8

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.
@@ -105,4 +105,4 @@ dgmo --chart-types --json # Machine-readable chart type list
105
105
 
106
106
  Run `dgmo --chart-types` for the full list, or see `docs/language-reference.md`.
107
107
 
108
- 34 types: bar, line, area, multi-line, pie, doughnut, radar, polar-area, bar-stacked, scatter, sankey, chord, function, heatmap, funnel, slope, wordcloud, arc, timeline, venn, quadrant, sequence, flowchart, state, class, er, org, kanban, c4, initiative-status, sitemap, infra, gantt, boxes-and-lines.
108
+ 33 types: bar, line, area, multi-line, pie, doughnut, radar, polar-area, bar-stacked, scatter, sankey, chord, function, heatmap, funnel, slope, wordcloud, arc, timeline, venn, quadrant, sequence, flowchart, state, class, er, org, kanban, c4, sitemap, infra, gantt, boxes-and-lines.
@@ -1,40 +1,6 @@
1
- # DGMO Language Reference
2
-
3
- DGMO is a text-based diagram markup language. Files use the `.dgmo` extension. Render with the `dgmo` CLI, the Diagrammo desktop app, or the `@diagrammo/dgmo` npm library.
4
-
5
- ## Migration Guide
6
-
7
- Syntax changes introduced in the consistency cleanup. Old forms now produce errors.
8
-
9
- | Old Syntax | New Syntax | Chart Types |
10
- |---|---|---|
11
- | `chart: TYPE` + `title: Text` | `TYPE Text` (single first line) | All |
12
- | `chart: TYPE` (alone) | `TYPE` | All |
13
- | `directive: value` | `directive value` (no colon) | All |
14
- | `Label: value` (ECharts data) | `Label value` | bar, line, pie, etc. |
15
- | `era YYYY->YYYY: Label` | `era YYYY->YYYY Label` | line, timeline, gantt |
16
- | `marker YYYY: Label` | `marker YYYY Label` | timeline, gantt |
17
- | `## Group` | `tag Group` | All |
18
- | `== Column ==` | `[Column]` | Kanban |
19
- | `person Name` | `Name is a person` | C4 |
20
- | `-> Target : Desc [tech]` | `-Desc-> Target \| tech: val` | C4 |
21
- | `A <-> B` | Two lines: `A -> B` + `B -> A` | C4 |
22
- | `-> Target x5` | `-> Target \| fanout: 5` | Infra |
23
- | `lag: 5d` / `lead: 3d` | `offset: 5d` / `offset: -3d` | Gantt |
24
- | `Name(color)` | Use `tag` groups | Sequence |
25
- | `scenario:` | (removed) | Infra |
26
- | `wip` | `doing` (wip still accepted) | Init-status |
27
- | `#ff0000` hex colors | Named colors only | All |
28
- | `show-sub-node-count: yes` | `show-sub-node-count` (flag) | Org |
29
- | `import: path` | `import path` | Org |
30
- | `tags: path` | `tags path` | Org |
31
- | `xlabel` | `x-label` | Data charts, function |
32
- | `ylabel` | `y-label` | Data charts, function |
33
- | `sizelabel` | `size-label` | Scatter/bubble |
34
- | `x-axis` | `x-label` | Quadrant |
35
- | `y-axis` | `y-label` | Quadrant |
1
+ # DGMO Language Specification
36
2
 
37
- ---
3
+ > **Authoritative reference** for the DGMO diagram language. This document describes what is valid syntax. If it is not in this document, it is not valid DGMO.
38
4
 
39
5
  ## Table of Contents
40
6
 
@@ -48,14 +14,13 @@ Syntax changes introduced in the consistency cleanup. Old forms now produce erro
48
14
  8. [Entity-Relationship Diagrams](#8-entity-relationship-diagrams)
49
15
  9. [Class Diagrams](#9-class-diagrams)
50
16
  10. [Kanban Boards](#10-kanban-boards)
51
- 11. [Initiative-Status Diagrams](#11-initiative-status-diagrams)
52
- 12. [Sitemap Diagrams](#12-sitemap-diagrams)
53
- 13. [Gantt Charts](#13-gantt-charts)
54
- 14. [Boxes and Lines Diagrams](#14-boxes-and-lines-diagrams)
55
- 15. [Timeline Diagrams](#15-timeline-diagrams)
56
- 16. [Data Charts](#16-data-charts)
57
- 17. [Visualizations](#17-visualizations)
58
- 18. [Colon Usage Summary](#18-colon-usage-summary)
17
+ 11. [Sitemap Diagrams](#11-sitemap-diagrams)
18
+ 12. [Gantt Charts](#12-gantt-charts)
19
+ 13. [Boxes and Lines Diagrams](#13-boxes-and-lines-diagrams)
20
+ 14. [Timeline Diagrams](#14-timeline-diagrams)
21
+ 15. [Data Charts](#15-data-charts)
22
+ 16. [Visualizations](#16-visualizations)
23
+ 17. [Colon Usage Summary](#17-colon-usage-summary)
59
24
 
60
25
  ---
61
26
 
@@ -96,7 +61,7 @@ tag GroupName [alias X]
96
61
  - First entry is default unless another is marked `default`
97
62
  - Must appear before diagram content
98
63
 
99
- **Diagram types that support tags**: sequence, infra, org, c4, er, kanban, gantt, initiative-status, sitemap, timeline, boxes-and-lines
64
+ **Diagram types that support tags**: sequence, infra, org, c4, er, kanban, gantt, sitemap, timeline, boxes-and-lines
100
65
 
101
66
  ### 1.4 Pipe Metadata
102
67
 
@@ -638,7 +603,7 @@ abstract Vessel
638
603
  interface Serializable
639
604
  Ship extends Vessel
640
605
  Galleon implements Serializable
641
- ShipType enum
606
+ enum ShipType
642
607
  ```
643
608
 
644
609
  ### 9.3 Members (Indented, Colon for Types)
@@ -661,7 +626,7 @@ Visibility: `+` public, `-` private, `#` protected
661
626
 
662
627
  **Enum values:**
663
628
  ```
664
- ShipType enum
629
+ enum ShipType
665
630
  Galleon
666
631
  Sloop
667
632
  ```
@@ -725,72 +690,15 @@ kanban [Title]
725
690
 
726
691
  ---
727
692
 
728
- ## 11. Initiative-Status Diagrams
693
+ ## 11. Sitemap Diagrams
729
694
 
730
695
  ### 11.1 Declaration
731
696
 
732
- ```
733
- initiative-status [Title]
734
- ```
735
-
736
- ### 11.2 Nodes
737
-
738
- ```
739
- NodeLabel | status, key: value
740
- NodeLabel | done, t: Team1
741
- ```
742
-
743
- Status values and equivalences:
744
-
745
- | User writes | Canonical | Display |
746
- |------------|-----------|---------|
747
- | `done` | `done` | Done |
748
- | `doing` | `doing` | In Progress |
749
- | `wip` | `doing` | In Progress |
750
- | `blocked` | `blocked` | Blocked |
751
- | `paused` | `blocked` | Blocked |
752
- | `waiting` | `blocked` | Blocked |
753
- | `todo` | `todo` | To Do |
754
- | `na` | `na` | N/A |
755
- | (omitted) | `na` | N/A |
756
-
757
- ### 11.3 Edges
758
-
759
- ```
760
- Source -> Target
761
- Source -label-> Target
762
- Source -> Target | status
763
- ```
764
-
765
- Indented shorthand (source from preceding node):
766
- ```
767
- Captain | t: Bridge
768
- -issueOrders-> CrewApp | na
769
- ```
770
-
771
- ### 11.4 Groups
772
-
773
- ```
774
- [Group Name]
775
- indented nodes...
776
- ```
777
-
778
- ### 11.5 Options
779
-
780
- - `active-tag GroupName`
781
- - `hide phase:Planning, phase:Review` (colon syntax for tag:value)
782
-
783
- ---
784
-
785
- ## 12. Sitemap Diagrams
786
-
787
- ### 12.1 Declaration
788
-
789
697
  ```
790
698
  sitemap [Title]
791
699
  ```
792
700
 
793
- ### 12.2 Pages (Indentation = Hierarchy)
701
+ ### 11.2 Pages (Indentation = Hierarchy)
794
702
 
795
703
  ```
796
704
  Home
@@ -800,7 +708,7 @@ Home
800
708
  Blog
801
709
  ```
802
710
 
803
- ### 12.3 Arrows
711
+ ### 11.3 Arrows
804
712
 
805
713
  ```
806
714
  Home
@@ -808,28 +716,28 @@ Home
808
716
  -login-> Login
809
717
  ```
810
718
 
811
- ### 12.4 Containers
719
+ ### 11.4 Containers
812
720
 
813
721
  ```
814
722
  [Marketing]
815
723
  Pricing | Auth: Public
816
724
  ```
817
725
 
818
- ### 12.5 Options
726
+ ### 11.5 Options
819
727
 
820
728
  - `direction-tb` (boolean; default is LR)
821
729
 
822
730
  ---
823
731
 
824
- ## 13. Gantt Charts
732
+ ## 12. Gantt Charts
825
733
 
826
- ### 13.1 Declaration
734
+ ### 12.1 Declaration
827
735
 
828
736
  ```
829
737
  gantt [Title]
830
738
  ```
831
739
 
832
- ### 13.2 Options (Space-Separated, NO Colon)
740
+ ### 12.2 Options (Space-Separated, NO Colon)
833
741
 
834
742
  ```
835
743
  start 2026-03-15
@@ -840,7 +748,7 @@ no-dependencies
840
748
  sort tag:Team
841
749
  ```
842
750
 
843
- ### 13.3 Holidays
751
+ ### 12.3 Holidays
844
752
 
845
753
  ```
846
754
  holiday
@@ -848,7 +756,7 @@ holiday
848
756
  2024-05-27 -> 2024-05-29 Memorial Weekend
849
757
  ```
850
758
 
851
- ### 13.4 Workweek
759
+ ### 12.4 Workweek
852
760
 
853
761
  ```
854
762
  workweek mon-fri
@@ -857,7 +765,7 @@ workweek sun-thu
857
765
 
858
766
  Top-level directive (not nested under `holiday`).
859
767
 
860
- ### 13.5 Eras
768
+ ### 12.5 Eras
861
769
 
862
770
  **Flat form:**
863
771
  ```
@@ -871,7 +779,7 @@ era
871
779
  2026-06-01 -> 2026-06-05 Sprint Review (blue)
872
780
  ```
873
781
 
874
- ### 13.6 Markers
782
+ ### 12.6 Markers
875
783
 
876
784
  **Flat form:**
877
785
  ```
@@ -885,7 +793,7 @@ marker
885
793
  2026-06-15 Release (green)
886
794
  ```
887
795
 
888
- ### 13.7 Groups (Swimlanes)
796
+ ### 12.7 Groups (Swimlanes)
889
797
 
890
798
  ```
891
799
  [Backend] | t: Engineering
@@ -893,7 +801,7 @@ marker
893
801
 
894
802
  Bracket syntax only.
895
803
 
896
- ### 13.8 Tasks
804
+ ### 12.8 Tasks
897
805
 
898
806
  ```
899
807
  20bd Database Schema | p: Foundation, 100%
@@ -906,7 +814,7 @@ Duration units: `min`, `h`, `d`, `bd` (business days), `w`, `m`, `q`, `y`
906
814
  Uncertain: `10bd?` (trailing `?`)
907
815
  Progress: `| 80%` in pipe metadata
908
816
 
909
- ### 13.9 Dependencies (Indented Under Tasks)
817
+ ### 12.9 Dependencies (Indented Under Tasks)
910
818
 
911
819
  ```
912
820
  10bd API Integration
@@ -914,7 +822,7 @@ Progress: `| 80%` in pipe metadata
914
822
  -> Launch Day | offset: 10bd
915
823
  ```
916
824
 
917
- ### 13.10 Parallel Block
825
+ ### 12.10 Parallel Block
918
826
 
919
827
  ```
920
828
  parallel
@@ -926,31 +834,29 @@ parallel
926
834
 
927
835
  ---
928
836
 
929
- ## 14. Boxes and Lines Diagrams
837
+ ## 13. Boxes and Lines Diagrams
930
838
 
931
- ### 14.1 Declaration
839
+ ### 13.1 Declaration
932
840
 
933
841
  ```
934
842
  boxes-and-lines [Title]
935
843
  ```
936
844
 
937
- Requires explicit first line — no heuristic detection. Default layout direction is left-to-right.
845
+ Requires explicit first line — no heuristic detection. Default direction is left-to-right.
938
846
 
939
- ### 14.2 Nodes
847
+ ### 13.2 Nodes
940
848
 
941
849
  ```
942
850
  NodeLabel
943
851
  NodeLabel | key: value, key2: value2
944
852
  NodeLabel | description: Some text here
945
- NodeLabel [type]
946
- NodeLabel [type] | key: value
947
853
  ```
948
854
 
949
- Nodes are created explicitly or implicitly (when referenced in edges). Shape is inferred from the name unless overridden with `[type]`.
855
+ Nodes are created explicitly or implicitly (when referenced in edges). All nodes render as uniform rounded rectangles.
950
856
 
951
- Valid types: `service`, `database`, `actor`, `queue`, `cache`, `gateway`, `external`, `networking`, `frontend`, `default`.
857
+ The `description` key is extracted as a dedicated field and not stored in metadata.
952
858
 
953
- ### 14.3 Edges
859
+ ### 13.3 Edges
954
860
 
955
861
  ```
956
862
  Source -> Target
@@ -967,11 +873,19 @@ API | description: Main gateway
967
873
  -routes-> ProductService
968
874
  ```
969
875
 
970
- ### 14.4 Groups
876
+ Pipe metadata on edges:
877
+ ```
878
+ A -reads-> DB | frequency: High
879
+ ```
880
+
881
+ ### 13.4 Groups
971
882
 
972
883
  ```
973
884
  [Group Name]
974
885
  indented nodes...
886
+
887
+ [Group Name] | key: value
888
+ indented nodes...
975
889
  ```
976
890
 
977
891
  Nested groups (max depth 2):
@@ -982,30 +896,36 @@ Nested groups (max depth 2):
982
896
  DB
983
897
  ```
984
898
 
985
- Group metadata cascades to children. Group-to-group edges:
899
+ Group metadata cascades to children (node metadata overrides). Nodes already declared above can be referenced inside groups to assign membership.
900
+
901
+ ### 13.5 Group-to-Group Edges
902
+
986
903
  ```
987
904
  [Region A] -> [Region B]
905
+ [Region A] <-> [Region B]
988
906
  [Region A] -VPN-> [Region B]
989
907
  ```
990
908
 
991
- ### 14.5 Options
909
+ ### 13.6 Directives
992
910
 
993
911
  - `direction TB` — top-to-bottom layout (default: `LR`)
994
- - `mode shapes` — render as inferred shapes (default: `rectangles`)
995
- - `active-tag GroupName`
996
- - `hide team:Backend` (colon syntax for tag:value)
912
+
913
+ ### 13.7 Options
914
+
915
+ - `active-tag GroupName` — set active tag group for coloring
916
+ - `hide team:Backend, team:Frontend` — hide nodes with matching tag values (colon syntax for tag:value)
997
917
 
998
918
  ---
999
919
 
1000
- ## 15. Timeline Diagrams
920
+ ## 14. Timeline Diagrams
1001
921
 
1002
- ### 15.1 Declaration
922
+ ### 14.1 Declaration
1003
923
 
1004
924
  ```
1005
925
  timeline [Title]
1006
926
  ```
1007
927
 
1008
- ### 15.2 Events
928
+ ### 14.2 Events
1009
929
 
1010
930
  **Point event:**
1011
931
  ```
@@ -1030,7 +950,7 @@ timeline [Title]
1030
950
  Date formats: `YYYY`, `YYYY-MM`, `YYYY-MM-DD`, `YYYY-MM-DD HH:MM`
1031
951
  Duration units: `min`, `h`, `d`, `w`, `m`, `y`
1032
952
 
1033
- ### 15.3 Eras
953
+ ### 14.3 Eras
1034
954
 
1035
955
  **Flat form:**
1036
956
  ```
@@ -1044,7 +964,7 @@ era
1044
964
  1718 -> 1720 Woodes Rogers Era (orange)
1045
965
  ```
1046
966
 
1047
- ### 15.4 Markers
967
+ ### 14.4 Markers
1048
968
 
1049
969
  **Flat form:**
1050
970
  ```
@@ -1058,7 +978,7 @@ marker
1058
978
  1720-01 End of Golden Age (red)
1059
979
  ```
1060
980
 
1061
- ### 15.5 Groups
981
+ ### 14.5 Groups
1062
982
 
1063
983
  ```
1064
984
  [Royal Navy]
@@ -1067,9 +987,9 @@ marker
1067
987
 
1068
988
  ---
1069
989
 
1070
- ## 16. Data Charts
990
+ ## 15. Data Charts
1071
991
 
1072
- ### 16.1 Simple Charts (bar, line, pie, doughnut, area, polar-area, radar, bar-stacked)
992
+ ### 15.1 Simple Charts (bar, line, pie, doughnut, area, polar-area, radar, bar-stacked)
1073
993
 
1074
994
  **Declaration:** `bar [Title]`, `line [Title]`, etc.
1075
995
 
@@ -1115,7 +1035,7 @@ stacked
1115
1035
  era Day 1 -> Day 3 Rough Seas (red)
1116
1036
  ```
1117
1037
 
1118
- ### 16.2 Scatter / Bubble Charts
1038
+ ### 15.2 Scatter / Bubble Charts
1119
1039
 
1120
1040
  **Data rows (space-separated, NO colon):**
1121
1041
  ```
@@ -1141,7 +1061,7 @@ no-labels
1141
1061
 
1142
1062
  Labels are on by default. Use `no-labels` to hide point names.
1143
1063
 
1144
- ### 16.3 Heatmap
1064
+ ### 15.3 Heatmap
1145
1065
 
1146
1066
  **Columns:**
1147
1067
  ```
@@ -1157,7 +1077,7 @@ RowLabel 5 4 3
1157
1077
 
1158
1078
  Commas between values are optional. Thousands commas supported.
1159
1079
 
1160
- ### 16.4 Function Charts (Colon REQUIRED)
1080
+ ### 15.4 Function Charts (Colon REQUIRED)
1161
1081
 
1162
1082
  ```
1163
1083
  function Trajectories
@@ -1174,7 +1094,7 @@ The colon between name and expression is **required** — both sides can contain
1174
1094
  **Options:**
1175
1095
  - `shade` (boolean; off by default, shades area below curves when enabled)
1176
1096
 
1177
- ### 16.5 Sankey Charts
1097
+ ### 15.5 Sankey Charts
1178
1098
 
1179
1099
  **Tree structure (indented, space-separated):**
1180
1100
  ```
@@ -1191,7 +1111,7 @@ Source -- Target 2000
1191
1111
 
1192
1112
  `->` = directed, `--` = undirected. Thousands commas supported in values.
1193
1113
 
1194
- ### 16.6 Chord Charts
1114
+ ### 15.6 Chord Charts
1195
1115
 
1196
1116
  ```
1197
1117
  Blackbeard -- Bonnet 150 // undirected
@@ -1200,7 +1120,7 @@ Roberts -> Rackham 20 // directed
1200
1120
 
1201
1121
  Thousands commas supported in values.
1202
1122
 
1203
- ### 16.7 Funnel Charts
1123
+ ### 15.7 Funnel Charts
1204
1124
 
1205
1125
  **Data rows (space-separated, NO colon):**
1206
1126
  ```
@@ -1213,9 +1133,9 @@ Thousands commas supported.
1213
1133
 
1214
1134
  ---
1215
1135
 
1216
- ## 17. Visualizations
1136
+ ## 16. Visualizations
1217
1137
 
1218
- ### 17.1 Slope Charts
1138
+ ### 16.1 Slope Charts
1219
1139
 
1220
1140
  ```
1221
1141
  slope Fleet Strength
@@ -1237,7 +1157,7 @@ Roberts 12 52
1237
1157
  - Color annotations: `Label (color) value1 value2`
1238
1158
  - Minimum 2 periods required
1239
1159
 
1240
- ### 17.2 Wordcloud
1160
+ ### 16.2 Wordcloud
1241
1161
 
1242
1162
  ```
1243
1163
  wordcloud Pirate Skills
@@ -1252,7 +1172,7 @@ navigation 88
1252
1172
  - Data: space-separated only (`word value`)
1253
1173
  - Options: `rotate none|mixed|angled`, `max N`, `size min max`
1254
1174
 
1255
- ### 17.3 Arc Diagrams
1175
+ ### 16.3 Arc Diagrams
1256
1176
 
1257
1177
  ```
1258
1178
  arc Pirate Alliances
@@ -1267,7 +1187,7 @@ order group
1267
1187
  - Link: `Source -> Target weight` — space before optional weight
1268
1188
  - Options: `order appearance|name|group|degree`
1269
1189
 
1270
- ### 17.4 Venn Diagrams
1190
+ ### 16.4 Venn Diagrams
1271
1191
 
1272
1192
  ```
1273
1193
  venn Skill Overlap
@@ -1283,7 +1203,7 @@ sw + nav + lead Legendary Pirates
1283
1203
  - Set declaration: `Name(color) alias X`
1284
1204
  - Intersections: `Set1 + Set2 Label` — label follows the last set reference (no colon)
1285
1205
 
1286
- ### 17.5 Quadrant Diagrams
1206
+ ### 16.5 Quadrant Diagrams
1287
1207
 
1288
1208
  ```
1289
1209
  quadrant Crew Assessment
@@ -1295,18 +1215,17 @@ top-left Train (yellow)
1295
1215
  bottom-left Maroon (red)
1296
1216
  bottom-right Watch Closely (purple)
1297
1217
 
1298
- Quartermaster 0.9, 0.95
1299
- Navigator 0.85, 0.8
1218
+ Quartermaster 0.9 0.95
1219
+ Navigator 0.85 0.8
1300
1220
  ```
1301
1221
 
1302
- - Axis labels: `x-label Low, High` — space-separated
1222
+ - Axis labels: `x-label Low, High` — comma-separated
1303
1223
  - Position labels: `top-right Label` — space-separated
1304
- - Data points: `Label x, y` — space-separated, comma between coordinates
1305
- - Thousands commas supported in values
1224
+ - Data points: `Label x y` or `Label x, y` — comma or space between coordinates
1306
1225
 
1307
1226
  ---
1308
1227
 
1309
- ## 18. Colon Usage Summary
1228
+ ## 17. Colon Usage Summary
1310
1229
 
1311
1230
  ### Constructs Where Colons Are REQUIRED
1312
1231
 
@@ -1318,7 +1237,7 @@ Navigator 0.85, 0.8
1318
1237
  | Class field types | class | `+ name: string` |
1319
1238
  | Class method returns | class | `+ sail(): void` |
1320
1239
  | Function expressions | function | `f(x): x^2 + 1` |
1321
- | Hide tag values | initiative-status | `hide phase:Planning` |
1240
+ | Hide tag values | boxes-and-lines | `hide phase:Planning` |
1322
1241
 
1323
1242
  ### Colons OPTIONAL
1324
1243
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diagrammo/dgmo",
3
- "version": "0.8.6",
3
+ "version": "0.8.8",
4
4
  "description": "DGMO diagram markup language — parser, renderer, and color system",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -250,7 +250,10 @@ export function parseBoxesAndLines(content: string): ParsedBoxesAndLines {
250
250
  });
251
251
  if (isDefault) currentTagGroup.defaultValue = label;
252
252
  }
253
- if (!currentTagGroup.defaultValue && currentTagGroup.entries.length > 0) {
253
+ if (
254
+ !currentTagGroup.defaultValue &&
255
+ currentTagGroup.entries.length > 0
256
+ ) {
254
257
  currentTagGroup.defaultValue = currentTagGroup.entries[0].value;
255
258
  }
256
259
  }
@@ -5,7 +5,10 @@
5
5
  import { makeDgmoError, formatDgmoError } from '../diagnostics';
6
6
  import type { DgmoError } from '../diagnostics';
7
7
  import type { TagGroup } from '../utils/tag-groups';
8
- import { matchTagBlockHeading, stripDefaultModifier } from '../utils/tag-groups';
8
+ import {
9
+ matchTagBlockHeading,
10
+ stripDefaultModifier,
11
+ } from '../utils/tag-groups';
9
12
  import {
10
13
  measureIndent,
11
14
  extractColor,
@@ -12,7 +12,10 @@ import {
12
12
  parseFirstLine,
13
13
  OPTION_NOCOLON_RE,
14
14
  } from '../utils/parsing';
15
- import { matchTagBlockHeading, stripDefaultModifier } from '../utils/tag-groups';
15
+ import {
16
+ matchTagBlockHeading,
17
+ stripDefaultModifier,
18
+ } from '../utils/tag-groups';
16
19
  import type {
17
20
  ParsedInfra,
18
21
  InfraNode,
@@ -1,7 +1,10 @@
1
1
  import type { PaletteColors } from '../palettes';
2
2
  import { makeDgmoError, formatDgmoError, suggest } from '../diagnostics';
3
3
  import { resolveColor } from '../colors';
4
- import { matchTagBlockHeading, stripDefaultModifier } from '../utils/tag-groups';
4
+ import {
5
+ matchTagBlockHeading,
6
+ stripDefaultModifier,
7
+ } from '../utils/tag-groups';
5
8
  import {
6
9
  measureIndent,
7
10
  extractColor,