diff --git a/d2ast/keywords.go b/d2ast/keywords.go
index f89404507..65f67b775 100644
--- a/d2ast/keywords.go
+++ b/d2ast/keywords.go
@@ -30,17 +30,17 @@ var SimpleReservedKeywords = map[string]struct{}{
// ReservedKeywordHolders are reserved keywords that are meaningless on its own and must hold composites
var ReservedKeywordHolders = map[string]struct{}{
- "style": {},
- "source-arrowhead": {},
- "target-arrowhead": {},
+ "style": {},
}
// CompositeReservedKeywords are reserved keywords that can hold composites
var CompositeReservedKeywords = map[string]struct{}{
- "classes": {},
- "constraint": {},
- "label": {},
- "icon": {},
+ "source-arrowhead": {},
+ "target-arrowhead": {},
+ "classes": {},
+ "constraint": {},
+ "label": {},
+ "icon": {},
}
// StyleKeywords are reserved keywords which cannot exist outside of the "style" keyword
diff --git a/e2etests/testdata/stable/complex-layers/dagre/board.exp.json b/e2etests/testdata/stable/complex-layers/dagre/board.exp.json
index 21f84ea29..ae57a8c07 100644
--- a/e2etests/testdata/stable/complex-layers/dagre/board.exp.json
+++ b/e2etests/testdata/stable/complex-layers/dagre/board.exp.json
@@ -4,12 +4,54 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "window",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 0,
"y": 0
},
+ "width": 261,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Multi-layer diagram of a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 216,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "window",
+ "type": "rectangle",
+ "pos": {
+ "x": 321,
+ "y": 0
+ },
"width": 103,
"height": 66,
"opacity": 1,
@@ -49,7 +91,7 @@
"id": "roof",
"type": "rectangle",
"pos": {
- "x": 163,
+ "x": 484,
"y": 0
},
"width": 75,
@@ -91,7 +133,7 @@
"id": "garage",
"type": "rectangle",
"pos": {
- "x": 298,
+ "x": 619,
"y": 0
},
"width": 94,
@@ -616,9 +658,52 @@
},
{
"name": "repair",
- "isFolderOnly": true,
+ "isFolderOnly": false,
"fontFamily": "SourceSansPro",
- "shapes": [],
+ "shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
"connections": [],
"root": {
"id": "",
@@ -667,11 +752,53 @@
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 50
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
{
"id": "find contractors",
"type": "rectangle",
"pos": {
- "x": 10,
+ "x": 250,
"y": 20
},
"width": 341,
@@ -713,7 +840,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 40,
+ "x": 280,
"y": 50
},
"width": 110,
@@ -755,7 +882,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 210,
+ "x": 450,
"y": 50
},
"width": 111,
@@ -842,11 +969,53 @@
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 50
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
{
"id": "find contractors",
"type": "rectangle",
"pos": {
- "x": 10,
+ "x": 250,
"y": 20
},
"width": 341,
@@ -888,7 +1057,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 40,
+ "x": 280,
"y": 50
},
"width": 110,
@@ -930,7 +1099,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 210,
+ "x": 450,
"y": 50
},
"width": 111,
@@ -972,7 +1141,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 196,
+ "x": 436,
"y": 266
},
"width": 140,
@@ -1038,19 +1207,19 @@
"link": "",
"route": [
{
- "x": 265.5,
+ "x": 505.5,
"y": 146
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 202
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 226
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 266
}
],
@@ -1108,11 +1277,53 @@
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 50
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
{
"id": "find contractors",
"type": "rectangle",
"pos": {
- "x": 10,
+ "x": 250,
"y": 20
},
"width": 341,
@@ -1154,7 +1365,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 40,
+ "x": 280,
"y": 50
},
"width": 110,
@@ -1196,7 +1407,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 210,
+ "x": 450,
"y": 50
},
"width": 111,
@@ -1238,7 +1449,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 196,
+ "x": 436,
"y": 266
},
"width": 140,
@@ -1280,7 +1491,7 @@
"id": "obtain quotes",
"type": "rectangle",
"pos": {
- "x": 401,
+ "x": 641,
"y": 50
},
"width": 143,
@@ -1322,7 +1533,7 @@
"id": "negotiate",
"type": "rectangle",
"pos": {
- "x": 417,
+ "x": 657,
"y": 266
},
"width": 112,
@@ -1388,19 +1599,19 @@
"link": "",
"route": [
{
- "x": 265.5,
+ "x": 505.5,
"y": 146
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 202
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 226
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 266
}
],
@@ -1436,19 +1647,19 @@
"link": "",
"route": [
{
- "x": 472.5,
+ "x": 712.5,
"y": 116
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 156
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 226
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 266
}
],
@@ -1506,11 +1717,53 @@
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 50
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
{
"id": "find contractors",
"type": "rectangle",
"pos": {
- "x": 10,
+ "x": 250,
"y": 20
},
"width": 341,
@@ -1552,7 +1805,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 40,
+ "x": 280,
"y": 50
},
"width": 110,
@@ -1594,7 +1847,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 210,
+ "x": 450,
"y": 50
},
"width": 111,
@@ -1636,7 +1889,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 196,
+ "x": 436,
"y": 266
},
"width": 140,
@@ -1678,7 +1931,7 @@
"id": "obtain quotes",
"type": "rectangle",
"pos": {
- "x": 401,
+ "x": 641,
"y": 50
},
"width": 143,
@@ -1720,7 +1973,7 @@
"id": "negotiate",
"type": "rectangle",
"pos": {
- "x": 417,
+ "x": 657,
"y": 266
},
"width": 112,
@@ -1762,7 +2015,7 @@
"id": "book the best bid",
"type": "rectangle",
"pos": {
- "x": 389,
+ "x": 629,
"y": 432
},
"width": 167,
@@ -1828,19 +2081,19 @@
"link": "",
"route": [
{
- "x": 265.5,
+ "x": 505.5,
"y": 146
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 202
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 226
},
{
- "x": 265.5,
+ "x": 505.5,
"y": 266
}
],
@@ -1876,19 +2129,19 @@
"link": "",
"route": [
{
- "x": 472.5,
+ "x": 712.5,
"y": 116
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 156
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 226
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 266
}
],
@@ -1924,19 +2177,19 @@
"link": "",
"route": [
{
- "x": 472.5,
+ "x": 712.5,
"y": 332
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 372
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 392
},
{
- "x": 472.5,
+ "x": 712.5,
"y": 432
}
],
@@ -1999,12 +2252,54 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "window",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 0,
"y": 0
},
+ "width": 261,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Multi-layer diagram of a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 216,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "window",
+ "type": "rectangle",
+ "pos": {
+ "x": 321,
+ "y": 0
+ },
"width": 103,
"height": 66,
"opacity": 1,
@@ -2044,7 +2339,7 @@
"id": "roof",
"type": "rectangle",
"pos": {
- "x": 163,
+ "x": 484,
"y": 0
},
"width": 75,
@@ -2086,7 +2381,7 @@
"id": "garage",
"type": "rectangle",
"pos": {
- "x": 298,
+ "x": 619,
"y": 0
},
"width": 94,
@@ -2128,7 +2423,7 @@
"id": "water",
"type": "rectangle",
"pos": {
- "x": 452,
+ "x": 773,
"y": 0
},
"width": 88,
@@ -2170,7 +2465,7 @@
"id": "rain",
"type": "rectangle",
"pos": {
- "x": 600,
+ "x": 921,
"y": 0
},
"width": 73,
@@ -2212,7 +2507,7 @@
"id": "thunder",
"type": "rectangle",
"pos": {
- "x": 733,
+ "x": 1054,
"y": 0
},
"width": 103,
diff --git a/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg b/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg
index d692ba458..a657284fd 100644
--- a/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/complex-layers/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-
\ No newline at end of file
diff --git a/e2etests/testdata/stable/complex-layers/elk/board.exp.json b/e2etests/testdata/stable/complex-layers/elk/board.exp.json
index d8da04f90..59583bc63 100644
--- a/e2etests/testdata/stable/complex-layers/elk/board.exp.json
+++ b/e2etests/testdata/stable/complex-layers/elk/board.exp.json
@@ -4,12 +4,54 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "window",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
"y": 12
},
+ "width": 261,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Multi-layer diagram of a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 216,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "window",
+ "type": "rectangle",
+ "pos": {
+ "x": 293,
+ "y": 12
+ },
"width": 103,
"height": 66,
"opacity": 1,
@@ -49,7 +91,7 @@
"id": "roof",
"type": "rectangle",
"pos": {
- "x": 135,
+ "x": 416,
"y": 12
},
"width": 75,
@@ -91,7 +133,7 @@
"id": "garage",
"type": "rectangle",
"pos": {
- "x": 230,
+ "x": 511,
"y": 12
},
"width": 94,
@@ -616,9 +658,52 @@
},
{
"name": "repair",
- "isFolderOnly": true,
+ "isFolderOnly": false,
"fontFamily": "SourceSansPro",
- "shapes": [],
+ "shapes": [
+ {
+ "id": "desc",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
"connections": [],
"root": {
"id": "",
@@ -668,10 +753,52 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "find contractors",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
+ "y": 62
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "find contractors",
+ "type": "rectangle",
+ "pos": {
+ "x": 232,
"y": 12
},
"width": 341,
@@ -713,7 +840,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 62,
+ "x": 282,
"y": 62
},
"width": 110,
@@ -755,7 +882,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 192,
+ "x": 412,
"y": 62
},
"width": 111,
@@ -843,10 +970,52 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "find contractors",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
+ "y": 62
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "find contractors",
+ "type": "rectangle",
+ "pos": {
+ "x": 232,
"y": 12
},
"width": 341,
@@ -888,7 +1057,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 62,
+ "x": 282,
"y": 62
},
"width": 110,
@@ -930,7 +1099,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 192,
+ "x": 412,
"y": 62
},
"width": 111,
@@ -972,7 +1141,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 112,
+ "x": 332,
"y": 248
},
"width": 140,
@@ -1038,11 +1207,11 @@
"link": "",
"route": [
{
- "x": 182.5,
+ "x": 402.5,
"y": 178
},
{
- "x": 182.5,
+ "x": 402.5,
"y": 248
}
],
@@ -1100,10 +1269,52 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "find contractors",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
+ "y": 62
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "find contractors",
+ "type": "rectangle",
+ "pos": {
+ "x": 232,
"y": 12
},
"width": 341,
@@ -1145,7 +1356,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 62,
+ "x": 282,
"y": 62
},
"width": 110,
@@ -1187,7 +1398,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 192,
+ "x": 412,
"y": 62
},
"width": 111,
@@ -1229,7 +1440,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 112,
+ "x": 332,
"y": 248
},
"width": 140,
@@ -1271,7 +1482,7 @@
"id": "obtain quotes",
"type": "rectangle",
"pos": {
- "x": 373,
+ "x": 593,
"y": 112
},
"width": 143,
@@ -1313,7 +1524,7 @@
"id": "negotiate",
"type": "rectangle",
"pos": {
- "x": 388,
+ "x": 608,
"y": 248
},
"width": 112,
@@ -1379,11 +1590,11 @@
"link": "",
"route": [
{
- "x": 182.5,
+ "x": 402.5,
"y": 178
},
{
- "x": 182.5,
+ "x": 402.5,
"y": 248
}
],
@@ -1418,11 +1629,11 @@
"link": "",
"route": [
{
- "x": 444.5,
+ "x": 664.5,
"y": 178
},
{
- "x": 444.5,
+ "x": 664.5,
"y": 248
}
],
@@ -1480,10 +1691,52 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "find contractors",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
+ "y": 62
+ },
+ "width": 200,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "How to repair a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 155,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "find contractors",
+ "type": "rectangle",
+ "pos": {
+ "x": 232,
"y": 12
},
"width": 341,
@@ -1525,7 +1778,7 @@
"id": "find contractors.craigslist",
"type": "rectangle",
"pos": {
- "x": 62,
+ "x": 282,
"y": 62
},
"width": 110,
@@ -1567,7 +1820,7 @@
"id": "find contractors.facebook",
"type": "rectangle",
"pos": {
- "x": 192,
+ "x": 412,
"y": 62
},
"width": 111,
@@ -1609,7 +1862,7 @@
"id": "solicit quotes",
"type": "rectangle",
"pos": {
- "x": 112,
+ "x": 332,
"y": 248
},
"width": 140,
@@ -1651,7 +1904,7 @@
"id": "obtain quotes",
"type": "rectangle",
"pos": {
- "x": 373,
+ "x": 593,
"y": 112
},
"width": 143,
@@ -1693,7 +1946,7 @@
"id": "negotiate",
"type": "rectangle",
"pos": {
- "x": 388,
+ "x": 608,
"y": 248
},
"width": 112,
@@ -1735,7 +1988,7 @@
"id": "book the best bid",
"type": "rectangle",
"pos": {
- "x": 361,
+ "x": 581,
"y": 384
},
"width": 167,
@@ -1801,11 +2054,11 @@
"link": "",
"route": [
{
- "x": 182.5,
+ "x": 402.5,
"y": 178
},
{
- "x": 182.5,
+ "x": 402.5,
"y": 248
}
],
@@ -1840,11 +2093,11 @@
"link": "",
"route": [
{
- "x": 444.5,
+ "x": 664.5,
"y": 178
},
{
- "x": 444.5,
+ "x": 664.5,
"y": 248
}
],
@@ -1879,11 +2132,11 @@
"link": "",
"route": [
{
- "x": 444.5,
+ "x": 664.5,
"y": 314
},
{
- "x": 444.5,
+ "x": 664.5,
"y": 384
}
],
@@ -1945,12 +2198,54 @@
"fontFamily": "SourceSansPro",
"shapes": [
{
- "id": "window",
+ "id": "desc",
"type": "rectangle",
"pos": {
"x": 12,
"y": 12
},
+ "width": 261,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "animated": false,
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Multi-layer diagram of a home.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 216,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "window",
+ "type": "rectangle",
+ "pos": {
+ "x": 293,
+ "y": 12
+ },
"width": 103,
"height": 66,
"opacity": 1,
@@ -1990,7 +2285,7 @@
"id": "roof",
"type": "rectangle",
"pos": {
- "x": 135,
+ "x": 416,
"y": 12
},
"width": 75,
@@ -2032,7 +2327,7 @@
"id": "garage",
"type": "rectangle",
"pos": {
- "x": 230,
+ "x": 511,
"y": 12
},
"width": 94,
@@ -2074,7 +2369,7 @@
"id": "water",
"type": "rectangle",
"pos": {
- "x": 344,
+ "x": 625,
"y": 12
},
"width": 88,
@@ -2116,7 +2411,7 @@
"id": "rain",
"type": "rectangle",
"pos": {
- "x": 452,
+ "x": 733,
"y": 12
},
"width": 73,
@@ -2158,7 +2453,7 @@
"id": "thunder",
"type": "rectangle",
"pos": {
- "x": 545,
+ "x": 826,
"y": 12
},
"width": 103,
diff --git a/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg b/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg
index 0fb3f8fad..4f3a0e495 100644
--- a/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/complex-layers/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-windowroofgarage
-
-
-
-
-blindsglass
+ 90.000000%, 100% {
+ opacity: 0;
+ }
+}@keyframes d2Transition-d2-469555219-9 {
+ 0%, 89.990000% {
+ opacity: 0;
+ }
+ 90.000000%, 100.000000% {
+ opacity: 1;
+ }
+}]]>Multi-layer diagram of a home.windowroofgarage
+
+
+
+
+
+blindsglass
-shinglesstarlinkutility hookup
+shinglesstarlinkutility hookup
-toolsvehicles
+toolsvehicles
-find contractorscraigslistfacebook
-
-
-
-
-find contractorssolicit quotescraigslistfacebook
-
-
-
-
-
-find contractorssolicit quotesobtain quotesnegotiatecraigslistfacebook
-
-
-
-
-
-
-
-find contractorssolicit quotesobtain quotesnegotiatebook the best bidcraigslistfacebook
-
-
-
-
-
-
-
-
-windowroofgaragewaterrainthunder
-
-
-
-
-
-
-
+How to repair a home.
+
+
+How to repair a home.find contractorscraigslistfacebook
+
+
+
+
+
+How to repair a home.find contractorssolicit quotescraigslistfacebook
+
+
+
+
+
+
+How to repair a home.find contractorssolicit quotesobtain quotesnegotiatecraigslistfacebook
+
+
+
+
+
+
+
+
+How to repair a home.find contractorssolicit quotesobtain quotesnegotiatebook the best bidcraigslistfacebook
+
+
+
+
+
+
+
+
+
+Multi-layer diagram of a home.windowroofgaragewaterrainthunder
+
+
+
+
+
+
+
+
\ No newline at end of file