Note: This document is itself written using Markdown; you
+a b hello hello
+
+
+ hello hello
+
+
+ a b a b
+
+
+ a b a b
+
+
+ aa bb cc dd ll ff ww yy ad nn ii jj kk ss uu rm ee mm mm gg hh zz oo pp qq rr tt vv xx ab ac 1 2 3 4 5 6
-
+aa bb cc dd ll ff ww yy ad nn ii jj kk ss uu rm ee mm mm gg hh zz oo pp qq rr tt vv xx ab ac 1 2 3 4 5 6
+
-
+
-
-
-
+
+
+
aa bb cc dd ll ff ww yy ad nn ii jj kk ss uu rm ee mm mm gg hh zz oo pp qq rr tt vv xx ab ac 1 2 3 4 5 6
-
-
-
-
-
-
-
+aa bb cc dd ll ff ww yy ad nn ii jj kk ss uu rm ee mm mm gg hh zz oo pp qq rr tt vv xx ab ac 1 2 3 4 5 6
+
+
+
+
+
+
+
a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
+
+
+ a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
+
+
+ mixed together sugar solution we get
-
+mixed together sugar solution we get
+
mixed together sugar solution we get
-
-
+mixed together sugar solution we get
+
+
+
Overview
Philosophy
@@ -786,7 +787,10 @@ width="579" height="752" viewBox="-100 -100 579 752">
+
Overview
Philosophy
@@ -786,7 +787,10 @@ width="579" height="752" viewBox="-88 -88 579 752">
+
Overview ok this is all measured
Philosophy
@@ -782,7 +783,10 @@ width="445" height="728" viewBox="-100 -100 445 728">
+
Overview ok this is all measured
Philosophy
@@ -782,7 +783,10 @@ width="445" height="728" viewBox="-88 -88 445 728">
+
Overview
Philosophy
@@ -807,7 +808,10 @@ width="547" height="1164" viewBox="-100 -100 547 1164">
+
Overview
Philosophy
@@ -807,7 +808,10 @@ width="547" height="1164" viewBox="-88 -88 547 1164">List items may consist of multiple paragraphs. Each subsequent
+List items may consist of multiple paragraphs. Each subsequent
paragraph in a list item must be indented by either 4 spaces
or one tab:
@@ -805,7 +806,10 @@ sit amet, consectetuer adipiscing elit.
Another item in the same list.
- a b List items may consist of multiple paragraphs. Each subsequent
+List items may consist of multiple paragraphs. Each subsequent
paragraph in a list item must be indented by either 4 spaces
or one tab:
@@ -805,7 +806,10 @@ sit amet, consectetuer adipiscing elit.
Another item in the same list.
- a b x
+
+
+
+
+
+
+
+
+
+
+
+y
+
+
+
+
+
+
+
+
+
+
+
+
+Gee, I feel kind of LIGHT in the head now,
+knowing I can't make my satellite dish PAYMENTS!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/links/elk/board.exp.json b/e2etests/testdata/stable/links/elk/board.exp.json
new file mode 100644
index 000000000..69c78025b
--- /dev/null
+++ b/e2etests/testdata/stable/links/elk/board.exp.json
@@ -0,0 +1,127 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "x",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 113,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "https://d2lang.com",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "x",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 13,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "y",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 238
+ },
+ "width": 114,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "Gee, I feel kind of LIGHT in the head now,\nknowing I can't make my satellite dish PAYMENTS!",
+ "link": "https://terrastruct.com",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "y",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 14,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(x -> y)[0]",
+ "src": "x",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "y",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 69,
+ "y": 138
+ },
+ {
+ "x": 69,
+ "y": 238
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/links/elk/sketch.exp.svg b/e2etests/testdata/stable/links/elk/sketch.exp.svg
new file mode 100644
index 000000000..3a532dcdc
--- /dev/null
+++ b/e2etests/testdata/stable/links/elk/sketch.exp.svg
@@ -0,0 +1,72 @@
+
+x
+
+
+
+
+
+
+
+
+
+
+
+y
+
+
+
+
+
+
+
+
+
+
+
+
+Gee, I feel kind of LIGHT in the head now,
+knowing I can't make my satellite dish PAYMENTS!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/lone_h1/dagre/board.exp.json b/e2etests/testdata/stable/lone_h1/dagre/board.exp.json
index 654975ad8..ff793b416 100644
--- a/e2etests/testdata/stable/lone_h1/dagre/board.exp.json
+++ b/e2etests/testdata/stable/lone_h1/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "md",
@@ -14,8 +15,8 @@
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0D32B2",
+ "fill": "transparent",
+ "stroke": "#0A0F25",
"shadow": false,
"3d": false,
"multiple": false,
@@ -33,7 +34,7 @@
"language": "markdown",
"color": "#0A0F25",
"italic": false,
- "bold": true,
+ "bold": false,
"underline": false,
"labelWidth": 266,
"labelHeight": 50,
diff --git a/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg b/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg
index 160e7834f..ec323412e 100644
--- a/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/lone_h1/dagre/sketch.exp.svg
@@ -277,6 +277,7 @@ width="466" height="702" viewBox="-100 -100 466 702">
Markdown: Syntax
-
a b
Markdown: Syntax
+a b
+
+
+
Markdown: Syntax
-a b
Markdown: Syntax
+a b
+
+
+ Every frustum longs to be a cone
+
Every frustum longs to be a cone
A continuing flow of paper is sufficient to continue the flow of paper
Please remain calm, it's no use both of us being hysterical at the same time
Visits always give pleasure: if not on arrival, then on the departure
Festivity Level 1 : Your guests are chatting amiably with each other.
-
x y Every frustum longs to be a cone
+
Every frustum longs to be a cone
A continuing flow of paper is sufficient to continue the flow of paper
Please remain calm, it's no use both of us being hysterical at the same time
Visits always give pleasure: if not on arrival, then on the departure
Festivity Level 1 : Your guests are chatting amiably with each other.
-
x y container a header
+
a line of text and an
+
{
+ indented: "block",
+ of: "json",
+}
+
+
walk into a bar.
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/markdown_stroke_fill/elk/board.exp.json b/e2etests/testdata/stable/markdown_stroke_fill/elk/board.exp.json
new file mode 100644
index 000000000..1b9774b7f
--- /dev/null
+++ b/e2etests/testdata/stable/markdown_stroke_fill/elk/board.exp.json
@@ -0,0 +1,165 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "container",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 362,
+ "height": 407,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#E3E9FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 117,
+ "labelHeight": 41,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "container.md",
+ "type": "text",
+ "pos": {
+ "x": 87,
+ "y": 87
+ },
+ "width": 212,
+ "height": 257,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "darkorange",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "# a header\n\na line of text and an\n\n\t{\n\t\tindented: \"block\",\n\t\tof: \"json\",\n\t}\n\nwalk into a bar.",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "markdown",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 212,
+ "labelHeight": 257,
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no container",
+ "type": "text",
+ "pos": {
+ "x": 134,
+ "y": 519
+ },
+ "width": 118,
+ "height": 24,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#CEEDEE",
+ "stroke": "red",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "they did it in style",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "markdown",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 118,
+ "labelHeight": 24,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(container -> no container)[0]",
+ "src": "container",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "no container",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 193,
+ "y": 419
+ },
+ {
+ "x": 193,
+ "y": 519
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/markdown_stroke_fill/elk/sketch.exp.svg b/e2etests/testdata/stable/markdown_stroke_fill/elk/sketch.exp.svg
new file mode 100644
index 000000000..4c3d805ef
--- /dev/null
+++ b/e2etests/testdata/stable/markdown_stroke_fill/elk/sketch.exp.svg
@@ -0,0 +1,804 @@
+
+
container a header
+
a line of text and an
+
{
+ indented: "block",
+ of: "json",
+}
+
+
walk into a bar.
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/md_2space_newline/dagre/board.exp.json b/e2etests/testdata/stable/md_2space_newline/dagre/board.exp.json
index 994095495..5376f8370 100644
--- a/e2etests/testdata/stable/md_2space_newline/dagre/board.exp.json
+++ b/e2etests/testdata/stable/md_2space_newline/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "markdown",
@@ -54,8 +55,8 @@
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0D32B2",
+ "fill": "transparent",
+ "stroke": "#0A0F25",
"shadow": false,
"3d": false,
"multiple": false,
@@ -73,7 +74,7 @@
"language": "markdown",
"color": "#0A0F25",
"italic": false,
- "bold": true,
+ "bold": false,
"underline": false,
"labelWidth": 459,
"labelHeight": 48,
diff --git a/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg b/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg
index aa217c671..9e82a30fa 100644
--- a/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/md_2space_newline/dagre/sketch.exp.svg
@@ -277,6 +277,7 @@ width="759" height="348" viewBox="-100 -100 759 348">
markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
+markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-
markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
+markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-
markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
+markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-
markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
+markdown Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
-
{
+{
fenced: "block",
of: "json",
}
-
a b {
+{
fenced: "block",
of: "json",
}
-
a b a line of text and an
+
a line of text and an
{
indented: "block",
of: "json",
}
-
a b a line of text and an
+
a line of text and an
{
indented: "block",
of: "json",
}
-
a b a b a b
+
+
+ a b a b
+
+
+ this goes multiple lines this goes multiple lines
+
+
+ this goes multiple lines this goes multiple lines
+
+
+ a b c d e f g h i j k l m n o p q r s t u v w a b c d e f g h i j k l m n o p q r s t u v w
+
+
+ a b c d e f g h i j k l m n o p q r s t u v w a b c d e f g h i j k l m n o p q r s t u v w
+
+
+ a b c d e f g h i j k l m n o p q r s t u a b c d e f g h i j k l m n o p q r s t u
+
+
+ a b c d e f g h i j k l m n o p q r s t u a b c d e f g h i j k l m n o p q r s t u
+
+
+ Foo Baz 1 2 hello Foo Baz 1 2 hello
+
+
+ Foo Baz 1 2 hello Foo Baz 1 2 hello
+
+
+ a c d e f g b h a c d e f g b h
+
+
+ a c d e f g b h a c d e f g b h
+
+
+ top a b c bottom start end top a b c bottom start end
+
+
+ top a b c bottom start end top a b c bottom start end
+
+
+ root container root left right root inner root inner left right left right to inner left to inner right to inner left to inner right to left container root to right container root
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json
new file mode 100644
index 000000000..4a0d2c40b
--- /dev/null
+++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json
@@ -0,0 +1,929 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "root",
+ "type": "image",
+ "pos": {
+ "x": 279,
+ "y": 12
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 35,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "container",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 271
+ },
+ "width": 1322,
+ "height": 1044,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#E3E9FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 117,
+ "labelHeight": 41,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "container.root",
+ "type": "image",
+ "pos": {
+ "x": 279,
+ "y": 346
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 35,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "container.left",
+ "type": "",
+ "pos": {
+ "x": 87,
+ "y": 566
+ },
+ "width": 576,
+ "height": 674,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "left",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 38,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "container.left.root",
+ "type": "image",
+ "pos": {
+ "x": 258,
+ "y": 641
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 35,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "container.left.inner",
+ "type": "",
+ "pos": {
+ "x": 162,
+ "y": 861
+ },
+ "width": 426,
+ "height": 304,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "inner",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 49,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "container.left.inner.left",
+ "type": "image",
+ "pos": {
+ "x": 237,
+ "y": 936
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "left",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 29,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "container.left.inner.right",
+ "type": "image",
+ "pos": {
+ "x": 385,
+ "y": 936
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "right",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 39,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "container.right",
+ "type": "",
+ "pos": {
+ "x": 683,
+ "y": 566
+ },
+ "width": 576,
+ "height": 674,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "right",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 52,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "container.right.root",
+ "type": "image",
+ "pos": {
+ "x": 854,
+ "y": 641
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 35,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "container.right.inner",
+ "type": "",
+ "pos": {
+ "x": 758,
+ "y": 861
+ },
+ "width": 426,
+ "height": 304,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "inner",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 49,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "container.right.inner.left",
+ "type": "image",
+ "pos": {
+ "x": 833,
+ "y": 936
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "left",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 29,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "container.right.inner.right",
+ "type": "image",
+ "pos": {
+ "x": 981,
+ "y": 936
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/essentials/004-picture.svg",
+ "RawPath": "",
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_MIDDLE_CENTER",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "right",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 39,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_BOTTOM_CENTER",
+ "zIndex": 0,
+ "level": 4
+ }
+ ],
+ "connections": [
+ {
+ "id": "(root -> container.root)[0]",
+ "src": "root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.root",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 343.6666666666667,
+ "y": 166
+ },
+ {
+ "x": 343.6666666666667,
+ "y": 346
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.left.(root -> inner.left)[0]",
+ "src": "container.left.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.left.inner.left",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to inner left",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 76,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 301,
+ "y": 795
+ },
+ {
+ "x": 301,
+ "y": 936
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.left.(root -> inner.right)[0]",
+ "src": "container.left.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.left.inner.right",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to inner right",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 86,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 343.6666666666667,
+ "y": 795
+ },
+ {
+ "x": 343.6666666666667,
+ "y": 805
+ },
+ {
+ "x": 393,
+ "y": 805
+ },
+ {
+ "x": 393,
+ "y": 846
+ },
+ {
+ "x": 449,
+ "y": 846
+ },
+ {
+ "x": 449,
+ "y": 936
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.right.(root -> inner.left)[0]",
+ "src": "container.right.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.right.inner.left",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to inner left",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 76,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 897,
+ "y": 795
+ },
+ {
+ "x": 897,
+ "y": 936
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.right.(root -> inner.right)[0]",
+ "src": "container.right.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.right.inner.right",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to inner right",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 86,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 939.6666666666667,
+ "y": 795
+ },
+ {
+ "x": 939.6666666666667,
+ "y": 805
+ },
+ {
+ "x": 989,
+ "y": 805
+ },
+ {
+ "x": 989,
+ "y": 846
+ },
+ {
+ "x": 1045,
+ "y": 846
+ },
+ {
+ "x": 1045,
+ "y": 936
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.(root -> left.root)[0]",
+ "src": "container.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.left.root",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to left container root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 136,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 322.33333333333337,
+ "y": 500
+ },
+ {
+ "x": 322.33333333333337,
+ "y": 641
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "container.(root -> right.root)[0]",
+ "src": "container.root",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "container.right.root",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "to right container root",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 146,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 365,
+ "y": 500
+ },
+ {
+ "x": 365,
+ "y": 510
+ },
+ {
+ "x": 918.3333333333334,
+ "y": 510
+ },
+ {
+ "x": 918.3333333333334,
+ "y": 641
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg
new file mode 100644
index 000000000..9505c6dec
--- /dev/null
+++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg
@@ -0,0 +1,50 @@
+
+
root container root left right root inner root inner left right left right to inner left to inner right to inner left to inner right to left container root to right container root
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/p/dagre/board.exp.json b/e2etests/testdata/stable/p/dagre/board.exp.json
index f50e058e8..a4742e0b8 100644
--- a/e2etests/testdata/stable/p/dagre/board.exp.json
+++ b/e2etests/testdata/stable/p/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "md",
@@ -14,8 +15,8 @@
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0D32B2",
+ "fill": "transparent",
+ "stroke": "#0A0F25",
"shadow": false,
"3d": false,
"multiple": false,
@@ -33,7 +34,7 @@
"language": "markdown",
"color": "#0A0F25",
"italic": false,
- "bold": true,
+ "bold": false,
"underline": false,
"labelWidth": 1857,
"labelHeight": 24,
diff --git a/e2etests/testdata/stable/p/dagre/sketch.exp.svg b/e2etests/testdata/stable/p/dagre/sketch.exp.svg
index fab012eab..6aba7026c 100644
--- a/e2etests/testdata/stable/p/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/p/dagre/sketch.exp.svg
@@ -277,6 +277,7 @@ width="2057" height="676" viewBox="-100 -100 2057 676">
A paragraph is simply one or more consecutive lines of text, separated
+A paragraph is simply one or more consecutive lines of text, separated
by one or more blank lines. (A blank line is any line that looks like a
blank line -- a line containing nothing but spaces or tabs is considered
blank.) Normal paragraphs should not be indented with spaces or tabs.
-
a b A paragraph is simply one or more consecutive lines of text, separated
+A paragraph is simply one or more consecutive lines of text, separated
by one or more blank lines. (A blank line is any line that looks like a
blank line -- a line containing nothing but spaces or tabs is considered
blank.) Normal paragraphs should not be indented with spaces or tabs.
-
a b Here is an example of AppleScript:
+
Here is an example of AppleScript:
tell application "Foo"
beep
end tell
A code block continues until it reaches a line that is not indented
(or the end of the article).
-
a b Here is an example of AppleScript:
+
Here is an example of AppleScript:
tell application "Foo"
beep
end tell
A code block continues until it reaches a line that is not indented
(or the end of the article).
-
a b x y z hello
-
+x y z hello
+
x y z hello
-
-
+x y z hello
+
+
an actor with a really long label that will break everything an actor with a really long label that will break everything simple a short one far away what if there were no labels between this actor and the previous one short long label for testing purposes and it must be really, really long short this should span many actors lifelines so we know how it will look like when redering a long label over many actors long label for testing purposes and it must be really, really long
-
+an actor with a really long label that will break everything an actor with a really long label that will break everything simple a short one far away what if there were no labels between this actor and the previous one short long label for testing purposes and it must be really, really long short this should span many actors lifelines so we know how it will look like when redering a long label over many actors long label for testing purposes and it must be really, really long
+
diff --git a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/board.exp.json
index 2341f4127..085e70d8e 100644
--- a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
diff --git a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg
index b0be8b3b5..f0302fd8e 100644
--- a/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_actor_distance/elk/sketch.exp.svg
@@ -18,8 +18,8 @@ width="2692" height="1396" viewBox="-76 -26 2692 1396">an actor with a really long label that will break everything an actor with a really long label that will break everything simple a short one far away what if there were no labels between this actor and the previous one short long label for testing purposes and it must be really, really long short this should span many actors lifelines so we know how it will look like when redering a long label over many actors long label for testing purposes and it must be really, really long
-
+an actor with a really long label that will break everything an actor with a really long label that will break everything simple a short one far away what if there were no labels between this actor and the previous one short long label for testing purposes and it must be really, really long short this should span many actors lifelines so we know how it will look like when redering a long label over many actors long label for testing purposes and it must be really, really long
+
diff --git a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/board.exp.json
index 9f037376a..42c5c962e 100644
--- a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
@@ -85,17 +86,17 @@
"id": "c",
"type": "class",
"pos": {
- "x": 486,
+ "x": 481,
"y": 74
},
- "width": 241,
+ "width": 302,
"height": 184,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#EDF0FD",
- "stroke": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -126,17 +127,20 @@
"italic": false,
"bold": false,
"underline": false,
- "labelWidth": 71,
+ "labelWidth": 104,
"labelHeight": 36,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
},
{
"id": "d",
"type": "cloud",
"pos": {
- "x": 777,
+ "x": 833,
"y": 132
},
"width": 174,
@@ -176,7 +180,7 @@
"id": "e",
"type": "code",
"pos": {
- "x": 1016,
+ "x": 1072,
"y": 188
},
"width": 196,
@@ -216,7 +220,7 @@
"id": "f",
"type": "cylinder",
"pos": {
- "x": 1289,
+ "x": 1345,
"y": 132
},
"width": 150,
@@ -256,7 +260,7 @@
"id": "g",
"type": "diamond",
"pos": {
- "x": 1539,
+ "x": 1595,
"y": 132
},
"width": 150,
@@ -296,7 +300,7 @@
"id": "h",
"type": "document",
"pos": {
- "x": 1789,
+ "x": 1845,
"y": 132
},
"width": 150,
@@ -336,7 +340,7 @@
"id": "i",
"type": "hexagon",
"pos": {
- "x": 2025,
+ "x": 2082,
"y": 132
},
"width": 177,
@@ -376,7 +380,7 @@
"id": "j",
"type": "image",
"pos": {
- "x": 2289,
+ "x": 2345,
"y": 109
},
"width": 150,
@@ -427,7 +431,7 @@
"id": "k",
"type": "oval",
"pos": {
- "x": 2539,
+ "x": 2595,
"y": 132
},
"width": 150,
@@ -467,7 +471,7 @@
"id": "l",
"type": "package",
"pos": {
- "x": 2789,
+ "x": 2845,
"y": 132
},
"width": 150,
@@ -507,7 +511,7 @@
"id": "m",
"type": "page",
"pos": {
- "x": 3027,
+ "x": 3084,
"y": 132
},
"width": 173,
@@ -547,7 +551,7 @@
"id": "n",
"type": "parallelogram",
"pos": {
- "x": 3275,
+ "x": 3332,
"y": 116
},
"width": 177,
@@ -587,7 +591,7 @@
"id": "o",
"type": "person",
"pos": {
- "x": 3538,
+ "x": 3595,
"y": 79
},
"width": 151,
@@ -627,7 +631,7 @@
"id": "p",
"type": "queue",
"pos": {
- "x": 3784,
+ "x": 3841,
"y": 132
},
"width": 159,
@@ -667,7 +671,7 @@
"id": "q",
"type": "rectangle",
"pos": {
- "x": 4032,
+ "x": 4089,
"y": 95
},
"width": 163,
@@ -707,7 +711,7 @@
"id": "r",
"type": "step",
"pos": {
- "x": 4260,
+ "x": 4317,
"y": 132
},
"width": 207,
@@ -747,7 +751,7 @@
"id": "s",
"type": "stored_data",
"pos": {
- "x": 4539,
+ "x": 4595,
"y": 132
},
"width": 150,
@@ -787,17 +791,17 @@
"id": "t",
"type": "sql_table",
"pos": {
- "x": 4759,
+ "x": 4840,
"y": 150
},
- "width": 210,
+ "width": 161,
"height": 108,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#EDF0FD",
- "stroke": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -810,14 +814,58 @@
"methods": null,
"columns": [
{
- "name": "id",
- "type": "int",
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "name",
- "type": "varchar",
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "varchar",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 64,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
}
@@ -834,7 +882,10 @@
"labelHeight": 36,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
}
],
"connections": [
@@ -907,7 +958,7 @@
"y": 518
},
{
- "x": 606.5,
+ "x": 632,
"y": 518
}
],
@@ -942,11 +993,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 606.5,
+ "x": 632,
"y": 648
},
{
- "x": 864,
+ "x": 920,
"y": 648
}
],
@@ -981,11 +1032,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 864,
+ "x": 920,
"y": 778
},
{
- "x": 1114,
+ "x": 1170,
"y": 778
}
],
@@ -1020,11 +1071,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1114,
+ "x": 1170,
"y": 908
},
{
- "x": 1364,
+ "x": 1420,
"y": 908
}
],
@@ -1059,11 +1110,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1364,
+ "x": 1420,
"y": 1038
},
{
- "x": 1614,
+ "x": 1670,
"y": 1038
}
],
@@ -1098,11 +1149,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1614,
+ "x": 1670,
"y": 1168
},
{
- "x": 1864,
+ "x": 1920,
"y": 1168
}
],
@@ -1137,11 +1188,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1864,
+ "x": 1920,
"y": 1298
},
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 1298
}
],
@@ -1176,11 +1227,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 1428
},
{
- "x": 2364,
+ "x": 2420,
"y": 1428
}
],
@@ -1215,11 +1266,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2364,
+ "x": 2420,
"y": 1558
},
{
- "x": 2614,
+ "x": 2670,
"y": 1558
}
],
@@ -1254,11 +1305,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2614,
+ "x": 2670,
"y": 1688
},
{
- "x": 2864,
+ "x": 2920,
"y": 1688
}
],
@@ -1293,11 +1344,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2864,
+ "x": 2920,
"y": 1818
},
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 1818
}
],
@@ -1332,11 +1383,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 1948
},
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 1948
}
],
@@ -1371,11 +1422,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 2078
},
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2078
}
],
@@ -1410,11 +1461,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2208
},
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2208
}
],
@@ -1449,11 +1500,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2338
},
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2338
}
],
@@ -1488,11 +1539,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2468
},
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2468
}
],
@@ -1527,11 +1578,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2598
},
{
- "x": 4614,
+ "x": 4670,
"y": 2598
}
],
@@ -1566,11 +1617,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4614,
+ "x": 4670,
"y": 2728
},
{
- "x": 4864,
+ "x": 4920.5,
"y": 2728
}
],
@@ -1683,11 +1734,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 606.5,
+ "x": 632,
"y": 258
},
{
- "x": 606.5,
+ "x": 632,
"y": 2858
}
],
@@ -1722,11 +1773,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 864,
+ "x": 920,
"y": 258
},
{
- "x": 864,
+ "x": 920,
"y": 2858
}
],
@@ -1761,11 +1812,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1114,
+ "x": 1170,
"y": 258
},
{
- "x": 1114,
+ "x": 1170,
"y": 2858
}
],
@@ -1800,11 +1851,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1364,
+ "x": 1420,
"y": 258
},
{
- "x": 1364,
+ "x": 1420,
"y": 2858
}
],
@@ -1839,11 +1890,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1614,
+ "x": 1670,
"y": 258
},
{
- "x": 1614,
+ "x": 1670,
"y": 2858
}
],
@@ -1878,11 +1929,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1864,
+ "x": 1920,
"y": 258
},
{
- "x": 1864,
+ "x": 1920,
"y": 2858
}
],
@@ -1917,11 +1968,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 258
},
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 2858
}
],
@@ -1956,11 +2007,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2364,
+ "x": 2420,
"y": 263
},
{
- "x": 2364,
+ "x": 2420,
"y": 2858
}
],
@@ -1995,11 +2046,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2614,
+ "x": 2670,
"y": 258
},
{
- "x": 2614,
+ "x": 2670,
"y": 2858
}
],
@@ -2034,11 +2085,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2864,
+ "x": 2920,
"y": 258
},
{
- "x": 2864,
+ "x": 2920,
"y": 2858
}
],
@@ -2073,11 +2124,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 258
},
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 2858
}
],
@@ -2112,11 +2163,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 258
},
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 2858
}
],
@@ -2151,11 +2202,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 263
},
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2858
}
],
@@ -2190,11 +2241,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 258
},
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2858
}
],
@@ -2229,11 +2280,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 258
},
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2858
}
],
@@ -2268,11 +2319,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 258
},
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2858
}
],
@@ -2307,11 +2358,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4614,
+ "x": 4670,
"y": 258
},
{
- "x": 4614,
+ "x": 4670,
"y": 2858
}
],
@@ -2346,11 +2397,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4864,
+ "x": 4920.5,
"y": 258
},
{
- "x": 4864,
+ "x": 4920.5,
"y": 2858
}
],
diff --git a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg
index 4823fd471..2b86d5324 100644
--- a/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_all_shapes/dagre/sketch.exp.svg
@@ -2,7 +2,7 @@
a label b labels a class +
-public() bool
-void -
-private() int
-void cloudyyyy a := 5
+a label b labels a class +
+public() bool
+void -
+private() int
+void cloudyyyy a := 5
b := a + 7
- fmt.Printf ("%d" , b) cyl dia docs six corners a random icon over pack docs page too hard o say single person a queue a square a step at a time data users id
-int
-name
-varchar
- result := callThisFunction(obj, 5) mid this side other side
-
+ fmt.Printf ("%d" , b) cyl dia docs six corners a random icon over pack docs page too hard o say single person a queue a square a step at a time data users id
+int
+name
+varchar
+ result := callThisFunction(obj, 5) mid this side other side
+
-
+
a label b labels a class +
-public() bool
-void -
-private() int
-void cloudyyyy a := 5
+a label b labels a class +
+public() bool
+void -
+private() int
+void cloudyyyy a := 5
b := a + 7
- fmt.Printf ("%d" , b) cyl dia docs six corners a random icon over pack docs page too hard o say single person a queue a square a step at a time data users id
-int
-name
-varchar
- result := callThisFunction(obj, 5) mid this side other side
-
+ fmt.Printf ("%d" , b) cyl dia docs six corners a random icon over pack docs page too hard o say single person a queue a square a step at a time data users id
+int
+name
+varchar
+ result := callThisFunction(obj, 5) mid this side other side
+
-
+
alice bob what does it mean to be well-adjusted The ability to play bridge or golf as if they were games
-
+alice bob what does it mean to be well-adjusted The ability to play bridge or golf as if they were games
+
alice bob what does it mean to be well-adjusted The ability to play bridge or golf as if they were games
-
+alice bob what does it mean to be well-adjusted The ability to play bridge or golf as if they were games
+
a b c d ggg group 1 group b choo nested guy lala ey okay okay what would arnold say this note
-
-
-
-
-
-
+a b c d ggg group 1 group b choo nested guy lala ey okay okay what would arnold say this note
+
+
+
+
+
+
diff --git a/e2etests/testdata/stable/sequence_diagram_groups/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_groups/elk/board.exp.json
index 4535a99dd..776b8ddfb 100644
--- a/e2etests/testdata/stable/sequence_diagram_groups/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_groups/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
@@ -197,6 +198,7 @@
"underline": false,
"labelWidth": 30,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 1
},
@@ -236,6 +238,7 @@
"underline": false,
"labelWidth": 57,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 1
},
@@ -275,6 +278,7 @@
"underline": false,
"labelWidth": 78,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 2
},
@@ -314,6 +318,7 @@
"underline": false,
"labelWidth": 58,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 1
},
@@ -393,6 +398,7 @@
"underline": false,
"labelWidth": 38,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 1
},
diff --git a/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg
index cac917156..d3ed45a1a 100644
--- a/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_groups/elk/sketch.exp.svg
@@ -18,13 +18,13 @@ width="1147" height="2268" viewBox="-76 -26 1147 2268">a b c d ggg group 1 group b choo nested guy lala ey okay okay what would arnold say this note
-
-
-
-
-
-
+a b c d ggg group 1 group b choo nested guy lala ey okay okay what would arnold say this note
+
+
+
+
+
+
diff --git a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/board.exp.json
index 8890d73c9..3c36498bb 100644
--- a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "b",
diff --git a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg
index e19ca892f..8cc670b3d 100644
--- a/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_long_note/dagre/sketch.exp.svg
@@ -18,7 +18,10 @@ width="850" height="1162" viewBox="-263 -26 850 1162">b a a note here to remember that padding must consider notes too just a long note here b a a note here to remember that padding must consider notes too just a long note here
+
+
+ b a a note here to remember that padding must consider notes too just a long note here b a a note here to remember that padding must consider notes too just a long note here
+
+
+ a b just an actor this is a message group alt and this is a nested message group case 1 case 2 case 3 case 4 what about more nesting crazy town whoa a note a note here to remember that padding must consider notes too just a long note here
-
-
-
-
-
-
-
-
-
-
-
+a b just an actor this is a message group alt and this is a nested message group case 1 case 2 case 3 case 4 what about more nesting crazy town whoa a note a note here to remember that padding must consider notes too just a long note here
+
+
+
+
+
+
+
+
+
+
+
a b just an actor this is a message group alt and this is a nested message group case 1 case 2 case 3 case 4 what about more nesting crazy town whoa a note a note here to remember that padding must consider notes too just a long note here
-
-
-
-
-
-
-
-
-
-
-
+a b just an actor this is a message group alt and this is a nested message group case 1 case 2 case 3 case 4 what about more nesting crazy town whoa a note a note here to remember that padding must consider notes too just a long note here
+
+
+
+
+
+
+
+
+
+
+
scorer itemResponse item essayRubric concept itemOutcome scorer itemResponse item essayRubric concept itemOutcome
+
+
+ scorer itemResponse item essayRubric concept itemOutcome scorer itemResponse item essayRubric concept itemOutcome
+
+
+ a b c d okay explanation another explanation Some one who believes imaginary things appear right before your i's. The earth is like a tiny grain of sand, only much, much heavier
-
+a b c d okay explanation another explanation Some one who believes imaginary things appear right before your i's. The earth is like a tiny grain of sand, only much, much heavier
+
a b c d okay explanation another explanation Some one who believes imaginary things appear right before your i's. The earth is like a tiny grain of sand, only much, much heavier
-
+a b c d okay explanation another explanation Some one who believes imaginary things appear right before your i's. The earth is like a tiny grain of sand, only much, much heavier
+
How this is rendered CLI d2ast d2compiler d2layout d2exporter d2themes d2renderer d2sequencelayout d2dagrelayout only if root is not sequence 'How this is rendered: {...}' tokenized AST compile AST objects and edges run layout engines run engine on shape: sequence_diagram, temporarily remove run core engine on rest add back in sequence diagrams diagram with correct positions and dimensions export diagram with chosen theme and renderer get theme styles render to SVG resulting SVG measurements also take place
-
-
+How this is rendered CLI d2ast d2compiler d2layout d2exporter d2themes d2renderer d2sequencelayout d2dagrelayout only if root is not sequence 'How this is rendered: {...}' tokenized AST compile AST objects and edges run layout engines run engine on shape: sequence_diagram, temporarily remove run core engine on rest add back in sequence diagrams diagram with correct positions and dimensions export diagram with chosen theme and renderer get theme styles render to SVG resulting SVG measurements also take place
+
+
diff --git a/e2etests/testdata/stable/sequence_diagram_real/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_real/elk/board.exp.json
index 0f9eb51ae..3945edf3f 100644
--- a/e2etests/testdata/stable/sequence_diagram_real/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_real/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "How this is rendered",
@@ -477,6 +478,7 @@
"underline": false,
"labelWidth": 185,
"labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_LEFT",
"zIndex": 3,
"level": 2
},
diff --git a/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg
index 0d904f1d9..5f4dd359a 100644
--- a/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_real/elk/sketch.exp.svg
@@ -18,9 +18,9 @@ width="2447" height="2536" viewBox="-88 -88 2447 2536">How this is rendered CLI d2ast d2compiler d2layout d2exporter d2themes d2renderer d2sequencelayout d2dagrelayout only if root is not sequence 'How this is rendered: {...}' tokenized AST compile AST objects and edges run layout engines run engine on shape: sequence_diagram, temporarily remove run core engine on rest add back in sequence diagrams diagram with correct positions and dimensions export diagram with chosen theme and renderer get theme styles render to SVG resulting SVG measurements also take place
-
-
+How this is rendered CLI d2ast d2compiler d2layout d2exporter d2themes d2renderer d2sequencelayout d2dagrelayout only if root is not sequence 'How this is rendered: {...}' tokenized AST compile AST objects and edges run layout engines run engine on shape: sequence_diagram, temporarily remove run core engine on rest add back in sequence diagrams diagram with correct positions and dimensions export diagram with chosen theme and renderer get theme styles render to SVG resulting SVG measurements also take place
+
+
diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/board.exp.json
index 4c8d9cd09..54d51adf1 100644
--- a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg
index b0d237070..f947663cd 100644
--- a/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_self_edges/dagre/sketch.exp.svg
@@ -18,8 +18,8 @@ width="696" height="1366" viewBox="-76 -26 696 1366">a b a self edge here between actors to descendant to deeper descendant to parent actor
-
+a b a self edge here between actors to descendant to deeper descendant to parent actor
+
diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/board.exp.json
index 4c8d9cd09..54d51adf1 100644
--- a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
diff --git a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg
index b0d237070..f947663cd 100644
--- a/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_self_edges/elk/sketch.exp.svg
@@ -18,8 +18,8 @@ width="696" height="1366" viewBox="-76 -26 696 1366">a b a self edge here between actors to descendant to deeper descendant to parent actor
-
+a b a self edge here between actors to descendant to deeper descendant to parent actor
+
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
index 5daa335fc..fb0887203 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "alice",
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
index 608019d3a..d0e6006a2 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
@@ -18,8 +18,8 @@ width="1598" height="1868" viewBox="-76 -26 1598 1868">Alice line breaker Bob db queue an odd service with a name in multiple lines Authentication Request make request for something that is quite far away and requires a really long label to take all the space between the objects validate credentials Authentication Response Another authentication Request do it later stored Another authentication Response
-
+Alice line breaker Bob db queue an odd service with a name in multiple lines Authentication Request make request for something that is quite far away and requires a really long label to take all the space between the objects validate credentials Authentication Response Another authentication Request do it later stored Another authentication Response
+
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
index 5daa335fc..fb0887203 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "alice",
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
index 608019d3a..d0e6006a2 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
@@ -18,8 +18,8 @@ width="1598" height="1868" viewBox="-76 -26 1598 1868">Alice line breaker Bob db queue an odd service with a name in multiple lines Authentication Request make request for something that is quite far away and requires a really long label to take all the space between the objects validate credentials Authentication Response Another authentication Request do it later stored Another authentication Response
-
+Alice line breaker Bob db queue an odd service with a name in multiple lines Authentication Request make request for something that is quite far away and requires a really long label to take all the space between the objects validate credentials Authentication Response Another authentication Request do it later stored Another authentication Response
+
diff --git a/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json
index af401f123..37a77eab3 100644
--- a/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_span/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "scorer",
diff --git a/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg
index 470d35fc6..aa3321ec2 100644
--- a/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_span/dagre/sketch.exp.svg
@@ -18,8 +18,8 @@ width="1624" height="2146" viewBox="-76 -26 1624 2146">scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
-
+scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
+
diff --git a/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json
index af401f123..37a77eab3 100644
--- a/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_span/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "scorer",
diff --git a/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg
index 470d35fc6..aa3321ec2 100644
--- a/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_span/elk/sketch.exp.svg
@@ -18,8 +18,8 @@ width="1624" height="2146" viewBox="-76 -26 1624 2146">scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
-
+scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
+
diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
index fb7550f69..5844c5a26 100644
--- a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a_shape",
diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
index 1a8465908..db69a01ce 100644
--- a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
@@ -18,8 +18,8 @@ width="3402" height="4269" viewBox="-100 -100 3402 4269">a_shape a_sequence another finally sequence sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
-
+a_shape a_sequence another finally sequence sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
+
diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
index 3ed298e02..1f4879ef4 100644
--- a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a_shape",
@@ -46,7 +47,7 @@
"type": "sequence_diagram",
"pos": {
"x": 12,
- "y": 364
+ "y": 363
},
"width": 1472,
"height": 2080,
@@ -165,7 +166,7 @@
"id": "finally",
"type": "queue",
"pos": {
- "x": 1504,
+ "x": 1503,
"y": 2626
},
"width": 1623,
@@ -205,7 +206,7 @@
"id": "finally.sequence",
"type": "sequence_diagram",
"pos": {
- "x": 1579,
+ "x": 1578,
"y": 2701
},
"width": 1473,
@@ -245,7 +246,7 @@
"id": "finally.sequence.scorer",
"type": "",
"pos": {
- "x": 1603,
+ "x": 1602,
"y": 2806
},
"width": 150,
@@ -285,7 +286,7 @@
"id": "finally.sequence.concept",
"type": "",
"pos": {
- "x": 1848,
+ "x": 1847,
"y": 2806
},
"width": 160,
@@ -325,7 +326,7 @@
"id": "finally.sequence.essayRubric",
"type": "",
"pos": {
- "x": 2085,
+ "x": 2084,
"y": 2806
},
"width": 186,
@@ -365,7 +366,7 @@
"id": "finally.sequence.item",
"type": "",
"pos": {
- "x": 2353,
+ "x": 2352,
"y": 2806
},
"width": 150,
@@ -405,7 +406,7 @@
"id": "finally.sequence.itemOutcome",
"type": "",
"pos": {
- "x": 2580,
+ "x": 2579,
"y": 2806
},
"width": 197,
@@ -445,7 +446,7 @@
"id": "finally.sequence.itemResponse",
"type": "",
"pos": {
- "x": 2828,
+ "x": 2827,
"y": 2806
},
"width": 200,
@@ -486,7 +487,7 @@
"type": "",
"pos": {
"x": 36,
- "y": 474
+ "y": 473
},
"width": 150,
"height": 126,
@@ -526,7 +527,7 @@
"type": "rectangle",
"pos": {
"x": 105,
- "y": 714
+ "y": 713
},
"width": 12,
"height": 1592,
@@ -565,7 +566,7 @@
"type": "",
"pos": {
"x": 261,
- "y": 474
+ "y": 473
},
"width": 200,
"height": 126,
@@ -605,7 +606,7 @@
"type": "rectangle",
"pos": {
"x": 355,
- "y": 714
+ "y": 713
},
"width": 12,
"height": 162,
@@ -644,7 +645,7 @@
"type": "",
"pos": {
"x": 536,
- "y": 474
+ "y": 473
},
"width": 150,
"height": 126,
@@ -684,7 +685,7 @@
"type": "rectangle",
"pos": {
"x": 605,
- "y": 974
+ "y": 973
},
"width": 12,
"height": 162,
@@ -723,7 +724,7 @@
"type": "",
"pos": {
"x": 768,
- "y": 474
+ "y": 473
},
"width": 186,
"height": 126,
@@ -763,7 +764,7 @@
"type": "rectangle",
"pos": {
"x": 855,
- "y": 1234
+ "y": 1233
},
"width": 12,
"height": 422,
@@ -802,7 +803,7 @@
"type": "rectangle",
"pos": {
"x": 851,
- "y": 1364
+ "y": 1363
},
"width": 20,
"height": 162,
@@ -841,7 +842,7 @@
"type": "",
"pos": {
"x": 1031,
- "y": 474
+ "y": 473
},
"width": 160,
"height": 126,
@@ -881,7 +882,7 @@
"type": "rectangle",
"pos": {
"x": 1105,
- "y": 1494
+ "y": 1493
},
"width": 12,
"height": 80,
@@ -920,7 +921,7 @@
"type": "",
"pos": {
"x": 1263,
- "y": 474
+ "y": 473
},
"width": 197,
"height": 126,
@@ -960,7 +961,7 @@
"type": "rectangle",
"pos": {
"x": 1355,
- "y": 1754
+ "y": 1753
},
"width": 12,
"height": 80,
@@ -999,7 +1000,7 @@
"type": "rectangle",
"pos": {
"x": 605,
- "y": 1884
+ "y": 1883
},
"width": 12,
"height": 80,
@@ -1038,7 +1039,7 @@
"type": "rectangle",
"pos": {
"x": 605,
- "y": 2014
+ "y": 2013
},
"width": 12,
"height": 80,
@@ -1077,7 +1078,7 @@
"type": "rectangle",
"pos": {
"x": 1355,
- "y": 2144
+ "y": 2143
},
"width": 12,
"height": 80,
@@ -1116,7 +1117,7 @@
"type": "rectangle",
"pos": {
"x": 1355,
- "y": 2274
+ "y": 2273
},
"width": 12,
"height": 80,
@@ -1863,7 +1864,7 @@
"id": "finally.sequence.itemResponse.a",
"type": "rectangle",
"pos": {
- "x": 2922,
+ "x": 2921,
"y": 3046
},
"width": 12,
@@ -1902,7 +1903,7 @@
"id": "finally.sequence.item.a",
"type": "rectangle",
"pos": {
- "x": 2422,
+ "x": 2421,
"y": 3030
},
"width": 12,
@@ -1941,7 +1942,7 @@
"id": "finally.sequence.item.a.b",
"type": "rectangle",
"pos": {
- "x": 2418,
+ "x": 2417,
"y": 3046
},
"width": 20,
@@ -1980,7 +1981,7 @@
"id": "finally.sequence.essayRubric.a",
"type": "rectangle",
"pos": {
- "x": 2172,
+ "x": 2171,
"y": 3144
},
"width": 12,
@@ -2019,7 +2020,7 @@
"id": "finally.sequence.essayRubric.a.b",
"type": "rectangle",
"pos": {
- "x": 2168,
+ "x": 2167,
"y": 3160
},
"width": 20,
@@ -2058,7 +2059,7 @@
"id": "finally.sequence.essayRubric.a.b.c",
"type": "rectangle",
"pos": {
- "x": 2164,
+ "x": 2163,
"y": 3176
},
"width": 28,
@@ -2097,7 +2098,7 @@
"id": "finally.sequence.concept.a",
"type": "rectangle",
"pos": {
- "x": 1922,
+ "x": 1921,
"y": 3258
},
"width": 12,
@@ -2136,7 +2137,7 @@
"id": "finally.sequence.concept.a.b",
"type": "rectangle",
"pos": {
- "x": 1918,
+ "x": 1917,
"y": 3274
},
"width": 20,
@@ -2175,7 +2176,7 @@
"id": "finally.sequence.concept.a.b.c",
"type": "rectangle",
"pos": {
- "x": 1914,
+ "x": 1913,
"y": 3290
},
"width": 28,
@@ -2214,7 +2215,7 @@
"id": "finally.sequence.concept.a.b.c.d",
"type": "rectangle",
"pos": {
- "x": 1910,
+ "x": 1909,
"y": 3306
},
"width": 36,
@@ -2448,7 +2449,7 @@
"id": "finally.sequence.scorer.abc",
"type": "rectangle",
"pos": {
- "x": 1672,
+ "x": 1671,
"y": 3696
},
"width": 12,
@@ -2487,7 +2488,7 @@
"id": "finally.sequence.itemResponse.c",
"type": "rectangle",
"pos": {
- "x": 2922,
+ "x": 2921,
"y": 3956
},
"width": 12,
@@ -2551,11 +2552,11 @@
"route": [
{
"x": 117,
- "y": 730
+ "y": 729.5
},
{
"x": 355,
- "y": 730
+ "y": 729.5
}
],
"animated": false,
@@ -2590,11 +2591,11 @@
"route": [
{
"x": 117,
- "y": 860
+ "y": 859.5
},
{
"x": 355,
- "y": 860
+ "y": 859.5
}
],
"animated": false,
@@ -2629,11 +2630,11 @@
"route": [
{
"x": 117,
- "y": 990
+ "y": 989.5
},
{
"x": 605,
- "y": 990
+ "y": 989.5
}
],
"animated": false,
@@ -2668,11 +2669,11 @@
"route": [
{
"x": 117,
- "y": 1120
+ "y": 1119.5
},
{
"x": 605,
- "y": 1120
+ "y": 1119.5
}
],
"animated": false,
@@ -2707,11 +2708,11 @@
"route": [
{
"x": 117,
- "y": 1250
+ "y": 1249.5
},
{
"x": 855,
- "y": 1250
+ "y": 1249.5
}
],
"animated": false,
@@ -2746,11 +2747,11 @@
"route": [
{
"x": 361,
- "y": 1380
+ "y": 1379.5
},
{
"x": 851,
- "y": 1380
+ "y": 1379.5
}
],
"animated": false,
@@ -2785,11 +2786,11 @@
"route": [
{
"x": 871,
- "y": 1510
+ "y": 1509.5
},
{
"x": 1105,
- "y": 1510
+ "y": 1509.5
}
],
"animated": false,
@@ -2824,11 +2825,11 @@
"route": [
{
"x": 111,
- "y": 1640
+ "y": 1639.5
},
{
"x": 855,
- "y": 1640
+ "y": 1639.5
}
],
"animated": false,
@@ -2863,11 +2864,11 @@
"route": [
{
"x": 117,
- "y": 1770
+ "y": 1769.5
},
{
"x": 1355.5,
- "y": 1770
+ "y": 1769.5
}
],
"animated": false,
@@ -2902,11 +2903,11 @@
"route": [
{
"x": 117,
- "y": 1900
+ "y": 1899.5
},
{
"x": 605,
- "y": 1900
+ "y": 1899.5
}
],
"animated": false,
@@ -2941,11 +2942,11 @@
"route": [
{
"x": 117,
- "y": 2030
+ "y": 2029.5
},
{
"x": 605,
- "y": 2030
+ "y": 2029.5
}
],
"animated": false,
@@ -2980,11 +2981,11 @@
"route": [
{
"x": 117,
- "y": 2160
+ "y": 2159.5
},
{
"x": 1355.5,
- "y": 2160
+ "y": 2159.5
}
],
"animated": false,
@@ -3019,11 +3020,11 @@
"route": [
{
"x": 117,
- "y": 2290
+ "y": 2289.5
},
{
"x": 1355.5,
- "y": 2290
+ "y": 2289.5
}
],
"animated": false,
@@ -3565,7 +3566,7 @@
"route": [
{
"x": 748,
- "y": 176
+ "y": 165
},
{
"x": 748,
@@ -3729,7 +3730,7 @@
"route": [
{
"x": 830,
- "y": 176
+ "y": 165
},
{
"x": 830,
@@ -3748,7 +3749,7 @@
"y": 2571
},
{
- "x": 2325,
+ "x": 2326,
"y": 2626
}
],
@@ -3783,11 +3784,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2922,
+ "x": 2921.5,
"y": 3062
},
{
- "x": 2438,
+ "x": 2437.5,
"y": 3062
}
],
@@ -3822,11 +3823,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2418,
+ "x": 2417.5,
"y": 3192
},
{
- "x": 2192,
+ "x": 2191.5,
"y": 3192
}
],
@@ -3861,11 +3862,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2164,
+ "x": 2163.5,
"y": 3322
},
{
- "x": 1946,
+ "x": 1945.5,
"y": 3322
}
],
@@ -3900,11 +3901,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2422,
+ "x": 2421.5,
"y": 3452
},
{
- "x": 2188,
+ "x": 2187.5,
"y": 3452
}
],
@@ -3939,11 +3940,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1946,
+ "x": 1945.5,
"y": 3582
},
{
- "x": 2656.5,
+ "x": 2656,
"y": 3582
}
],
@@ -3978,11 +3979,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1684,
+ "x": 1683.5,
"y": 3712
},
{
- "x": 2422,
+ "x": 2421.5,
"y": 3712
}
],
@@ -4017,11 +4018,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2656.5,
+ "x": 2656,
"y": 3842
},
{
- "x": 1678,
+ "x": 1677.5,
"y": 3842
}
],
@@ -4056,11 +4057,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1678,
+ "x": 1677.5,
"y": 3972
},
{
- "x": 2922,
+ "x": 2921.5,
"y": 3972
}
],
@@ -4096,11 +4097,11 @@
"route": [
{
"x": 111,
- "y": 600
+ "y": 599.5
},
{
"x": 111,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4135,11 +4136,11 @@
"route": [
{
"x": 361,
- "y": 600
+ "y": 599.5
},
{
"x": 361,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4174,11 +4175,11 @@
"route": [
{
"x": 611,
- "y": 600
+ "y": 599.5
},
{
"x": 611,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4213,11 +4214,11 @@
"route": [
{
"x": 861,
- "y": 600
+ "y": 599.5
},
{
"x": 861,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4252,11 +4253,11 @@
"route": [
{
"x": 1111,
- "y": 600
+ "y": 599.5
},
{
"x": 1111,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4291,11 +4292,11 @@
"route": [
{
"x": 1361.5,
- "y": 600
+ "y": 599.5
},
{
"x": 1361.5,
- "y": 2420
+ "y": 2419.5
}
],
"animated": false,
@@ -4563,11 +4564,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1678,
+ "x": 1677.5,
"y": 2932
},
{
- "x": 1678,
+ "x": 1677.5,
"y": 4102
}
],
@@ -4602,11 +4603,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1928,
+ "x": 1927.5,
"y": 2932
},
{
- "x": 1928,
+ "x": 1927.5,
"y": 4102
}
],
@@ -4641,11 +4642,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2178,
+ "x": 2177.5,
"y": 2932
},
{
- "x": 2178,
+ "x": 2177.5,
"y": 4102
}
],
@@ -4680,11 +4681,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2428,
+ "x": 2427.5,
"y": 2932
},
{
- "x": 2428,
+ "x": 2427.5,
"y": 4102
}
],
@@ -4719,11 +4720,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2678.5,
+ "x": 2678,
"y": 2932
},
{
- "x": 2678.5,
+ "x": 2678,
"y": 4102
}
],
@@ -4758,11 +4759,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2928,
+ "x": 2927.5,
"y": 2932
},
{
- "x": 2928,
+ "x": 2927.5,
"y": 4102
}
],
diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
index b043d6fdd..7d5445201 100644
--- a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
@@ -18,20 +18,20 @@ width="3324" height="4389" viewBox="-88 -88 3324 4389">a_shape a_sequence another finally sequence sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
-
-
-
-
-
-
-
-
-
-
-
-
-
+a_shape a_sequence another finally sequence sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse scorer itemResponse item essayRubric concept itemOutcome getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/e2etests/testdata/stable/sql_tables/dagre/board.exp.json b/e2etests/testdata/stable/sql_tables/dagre/board.exp.json
index b6e0dfc1d..0fd37e978 100644
--- a/e2etests/testdata/stable/sql_tables/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sql_tables/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "users",
@@ -8,14 +9,14 @@
"x": 0,
"y": 0
},
- "width": 259,
+ "width": 268,
"height": 216,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0A0F25",
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -28,33 +29,143 @@
"methods": null,
"columns": [
{
- "name": "id",
- "type": "int",
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": "orders.user_id"
},
{
- "name": "name",
- "type": "string",
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "email",
- "type": "string",
+ "name": {
+ "label": "email",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "password",
- "type": "string",
+ "name": {
+ "label": "password",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 80,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "last_login",
- "type": "datetime",
- "constraint": "",
+ "name": {
+ "label": "last_login",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "datetime",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 77,
+ "labelHeight": 26
+ },
+ "constraint": "primary_key",
"reference": ""
}
],
@@ -69,23 +180,26 @@
"labelWidth": 61,
"labelHeight": 36,
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
},
{
"id": "products",
"type": "sql_table",
"pos": {
- "x": 319,
+ "x": 328,
"y": 18
},
- "width": 290,
+ "width": 164,
"height": 180,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0A0F25",
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -98,26 +212,114 @@
"methods": null,
"columns": [
{
- "name": "id",
- "type": "int",
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": "orders.product_id"
},
{
- "name": "price",
- "type": "decimal",
+ "name": {
+ "label": "price",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 42,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "decimal",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 67,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "sku",
- "type": "string",
+ "name": {
+ "label": "sku",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 29,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "name",
- "type": "string",
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
}
@@ -133,23 +335,26 @@
"labelWidth": 99,
"labelHeight": 36,
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
},
{
"id": "orders",
"type": "sql_table",
"pos": {
- "x": 357,
+ "x": 328,
"y": 316
},
- "width": 215,
+ "width": 164,
"height": 144,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0A0F25",
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -162,20 +367,86 @@
"methods": null,
"columns": [
{
- "name": "id",
- "type": "int",
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "user_id",
- "type": "int",
+ "name": {
+ "label": "user_id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 61,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "product_id",
- "type": "int",
+ "name": {
+ "label": "product_id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 91,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
}
@@ -191,23 +462,26 @@
"labelWidth": 74,
"labelHeight": 36,
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
},
{
"id": "shipments",
"type": "sql_table",
"pos": {
- "x": 669,
+ "x": 552,
"y": 18
},
- "width": 293,
+ "width": 244,
"height": 180,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0A0F25",
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -220,26 +494,114 @@
"methods": null,
"columns": [
{
- "name": "id",
- "type": "int",
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "order_id",
- "type": "int",
+ "name": {
+ "label": "order_id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 71,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": "orders.id"
},
{
- "name": "tracking_number",
- "type": "string",
+ "name": {
+ "label": "tracking_number",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 146,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
},
{
- "name": "status",
- "type": "string",
+ "name": {
+ "label": "status",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 51,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
"constraint": "",
"reference": ""
}
@@ -255,7 +617,10 @@
"labelWidth": 116,
"labelHeight": 36,
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
}
],
"connections": [
@@ -285,20 +650,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 129.5,
+ "x": 134,
"y": 216
},
{
- "x": 129.5,
+ "x": 134,
"y": 256
},
{
- "x": 174.9,
- "y": 282.55844544095663
+ "x": 172.8,
+ "y": 283.2
},
{
- "x": 356.5,
- "y": 348.7922272047833
+ "x": 328,
+ "y": 352
}
],
"isCurve": true,
@@ -333,19 +698,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 464,
+ "x": 410,
"y": 198
},
{
- "x": 464,
+ "x": 410,
"y": 252.4
},
{
- "x": 464,
+ "x": 410,
"y": 276
},
{
- "x": 464,
+ "x": 410,
"y": 316
}
],
@@ -381,20 +746,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 815.5,
+ "x": 674,
"y": 198
},
{
- "x": 815.5,
+ "x": 674,
"y": 252.4
},
{
- "x": 766.7,
- "y": 283
+ "x": 637.6,
+ "y": 282.8
},
{
- "x": 571.5,
- "y": 351
+ "x": 492,
+ "y": 350
}
],
"isCurve": true,
diff --git a/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg b/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg
index a953a362a..8b78b0f66 100644
--- a/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sql_tables/dagre/sketch.exp.svg
@@ -2,7 +2,7 @@
users id
-int
-name
-string
-email
-string
-password
-string
-last_login
-datetime
-products id
-int
-price
-decimal
-sku
-string
-name
-string
-orders id
-int
-user_id
-int
-product_id
-int
-shipments id
-int
-order_id
-int
-tracking_number
-string
-status
-string
- users id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+PK products id
+int
+price
+decimal
+sku
+string
+name
+string
+orders id
+int
+user_id
+int
+product_id
+int
+shipments id
+int
+order_id
+int
+tracking_number
+string
+status
+string
+
+
+
+ users id
-int
-name
-string
-email
-string
-password
-string
-last_login
-datetime
-products id
-int
-price
-decimal
-sku
-string
-name
-string
-orders id
-int
-user_id
-int
-product_id
-int
-shipments id
-int
-order_id
-int
-tracking_number
-string
-status
-string
- users id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+PK products id
+int
+price
+decimal
+sku
+string
+name
+string
+orders id
+int
+user_id
+int
+product_id
+int
+shipments id
+int
+order_id
+int
+tracking_number
+string
+status
+string
+
+
+
+
- rectangle
-
- square a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
+
+
+ a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/stylish/elk/board.exp.json b/e2etests/testdata/stable/stylish/elk/board.exp.json
index 0cd252c22..551a775bb 100644
--- a/e2etests/testdata/stable/stylish/elk/board.exp.json
+++ b/e2etests/testdata/stable/stylish/elk/board.exp.json
@@ -1,11 +1,12 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "x",
"type": "",
"pos": {
- "x": 13,
+ "x": 12,
"y": 12
},
"width": 113,
@@ -46,7 +47,7 @@
"type": "",
"pos": {
"x": 12,
- "y": 238
+ "y": 359
},
"width": 114,
"height": 126,
@@ -95,7 +96,8 @@
"strokeDash": 5,
"strokeWidth": 2,
"stroke": "green",
- "label": "",
+ "fill": "lavender",
+ "label": "in style",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
@@ -103,9 +105,9 @@
"italic": true,
"bold": false,
"underline": false,
- "labelWidth": 0,
- "labelHeight": 0,
- "labelPosition": "",
+ "labelWidth": 47,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
"labelPercentage": 0,
"route": [
{
@@ -114,7 +116,7 @@
},
{
"x": 69,
- "y": 238
+ "y": 359
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/stylish/elk/sketch.exp.svg b/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
index eff681d67..a3bbf4301 100644
--- a/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
@@ -2,7 +2,7 @@
\ No newline at end of file
diff --git a/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json b/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json
new file mode 100644
index 000000000..fdb475c2b
--- /dev/null
+++ b/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json
@@ -0,0 +1,221 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "bear",
+ "type": "text",
+ "pos": {
+ "x": 143,
+ "y": 141
+ },
+ "width": 44,
+ "height": 28,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "bear",
+ "fontSize": 22,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 44,
+ "labelHeight": 28,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "mama bear",
+ "type": "text",
+ "pos": {
+ "x": 0,
+ "y": 3
+ },
+ "width": 135,
+ "height": 36,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "mama bear",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 135,
+ "labelHeight": 36,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "papa bear",
+ "type": "text",
+ "pos": {
+ "x": 195,
+ "y": 0
+ },
+ "width": 134,
+ "height": 41,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "papa bear",
+ "fontSize": 32,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": true,
+ "labelWidth": 134,
+ "labelHeight": 41,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(mama bear -> bear)[0]",
+ "src": "mama bear",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "bear",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 67.5,
+ "y": 39.5
+ },
+ {
+ "x": 67.5,
+ "y": 80.7
+ },
+ {
+ "x": 82.7,
+ "y": 101
+ },
+ {
+ "x": 143.5,
+ "y": 141
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(papa bear -> bear)[0]",
+ "src": "papa bear",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "bear",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 262,
+ "y": 41
+ },
+ {
+ "x": 262,
+ "y": 81
+ },
+ {
+ "x": 246.8,
+ "y": 101
+ },
+ {
+ "x": 186,
+ "y": 141
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg b/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg
new file mode 100644
index 000000000..5c31b0803
--- /dev/null
+++ b/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg
@@ -0,0 +1,805 @@
+
+bear mama bear papa bear
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json b/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json
new file mode 100644
index 000000000..ae4e7c84e
--- /dev/null
+++ b/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json
@@ -0,0 +1,211 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "bear",
+ "type": "text",
+ "pos": {
+ "x": 64,
+ "y": 153
+ },
+ "width": 44,
+ "height": 28,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "bear",
+ "fontSize": 22,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 44,
+ "labelHeight": 28,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "mama bear",
+ "type": "text",
+ "pos": {
+ "x": 12,
+ "y": 17
+ },
+ "width": 135,
+ "height": 36,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "mama bear",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 135,
+ "labelHeight": 36,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "papa bear",
+ "type": "text",
+ "pos": {
+ "x": 167,
+ "y": 12
+ },
+ "width": 134,
+ "height": 41,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "transparent",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "papa bear",
+ "fontSize": 32,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": true,
+ "labelWidth": 134,
+ "labelHeight": 41,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(mama bear -> bear)[0]",
+ "src": "mama bear",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "bear",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 79.5,
+ "y": 53
+ },
+ {
+ "x": 79.5,
+ "y": 153
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(papa bear -> bear)[0]",
+ "src": "papa bear",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "bear",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 234,
+ "y": 53
+ },
+ {
+ "x": 234,
+ "y": 103
+ },
+ {
+ "x": 94.16666666666666,
+ "y": 103
+ },
+ {
+ "x": 94.16666666666666,
+ "y": 153
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg b/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg
new file mode 100644
index 000000000..506609593
--- /dev/null
+++ b/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg
@@ -0,0 +1,805 @@
+
+bear mama bear papa bear
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/tooltips/dagre/board.exp.json b/e2etests/testdata/stable/tooltips/dagre/board.exp.json
new file mode 100644
index 000000000..79b8db45b
--- /dev/null
+++ b/e2etests/testdata/stable/tooltips/dagre/board.exp.json
@@ -0,0 +1,136 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "x",
+ "type": "",
+ "pos": {
+ "x": 1,
+ "y": 0
+ },
+ "width": 113,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "Total abstinence is easier than perfect moderation",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "x",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 13,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "y",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 226
+ },
+ "width": 114,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "Gee, I feel kind of LIGHT in the head now,\nknowing I can't make my satellite dish PAYMENTS!",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "y",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 14,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(x -> y)[0]",
+ "src": "x",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "y",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 57,
+ "y": 126
+ },
+ {
+ "x": 57,
+ "y": 166
+ },
+ {
+ "x": 57,
+ "y": 186
+ },
+ {
+ "x": 57,
+ "y": 226
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg b/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg
new file mode 100644
index 000000000..083bb23f6
--- /dev/null
+++ b/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg
@@ -0,0 +1,61 @@
+
+x
+
+
+
+
+
+
+
+
+
+
+
+
+Total abstinence is easier than perfect moderation y
+
+
+
+
+
+
+
+
+
+
+
+
+Gee, I feel kind of LIGHT in the head now,
+knowing I can't make my satellite dish PAYMENTS!
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/tooltips/elk/board.exp.json b/e2etests/testdata/stable/tooltips/elk/board.exp.json
new file mode 100644
index 000000000..24850e39e
--- /dev/null
+++ b/e2etests/testdata/stable/tooltips/elk/board.exp.json
@@ -0,0 +1,127 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "x",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 113,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "Total abstinence is easier than perfect moderation",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "x",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 13,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "y",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 238
+ },
+ "width": 114,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "Gee, I feel kind of LIGHT in the head now,\nknowing I can't make my satellite dish PAYMENTS!",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "y",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 14,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(x -> y)[0]",
+ "src": "x",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "y",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 69,
+ "y": 138
+ },
+ {
+ "x": 69,
+ "y": 238
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/tooltips/elk/sketch.exp.svg b/e2etests/testdata/stable/tooltips/elk/sketch.exp.svg
new file mode 100644
index 000000000..c14d91d31
--- /dev/null
+++ b/e2etests/testdata/stable/tooltips/elk/sketch.exp.svg
@@ -0,0 +1,61 @@
+
+x
+
+
+
+
+
+
+
+
+
+
+
+
+Total abstinence is easier than perfect moderation y
+
+
+
+
+
+
+
+
+
+
+
+
+Gee, I feel kind of LIGHT in the head now,
+knowing I can't make my satellite dish PAYMENTS!
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/transparent_3d/dagre/board.exp.json b/e2etests/testdata/stable/transparent_3d/dagre/board.exp.json
index c19a78f8f..7927d10ea 100644
--- a/e2etests/testdata/stable/transparent_3d/dagre/board.exp.json
+++ b/e2etests/testdata/stable/transparent_3d/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "cube",
diff --git a/e2etests/testdata/stable/transparent_3d/dagre/sketch.exp.svg b/e2etests/testdata/stable/transparent_3d/dagre/sketch.exp.svg
index ab997d9a1..2a8e698d3 100644
--- a/e2etests/testdata/stable/transparent_3d/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/transparent_3d/dagre/sketch.exp.svg
@@ -20,7 +20,10 @@ width="339" height="326" viewBox="-100 -100 339 326">
- cube
- cube -
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b)
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json b/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json
new file mode 100644
index 000000000..1505d6b80
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_height/elk/board.exp.json
@@ -0,0 +1,538 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "class",
+ "type": "class",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 422,
+ "height": 512,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "num",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "timeout",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "pid",
+ "type": "",
+ "visibility": "private"
+ }
+ ],
+ "methods": [
+ {
+ "name": "getStatus()",
+ "return": "Enum",
+ "visibility": "public"
+ },
+ {
+ "name": "getJobs()",
+ "return": "Job[]",
+ "visibility": "public"
+ },
+ {
+ "name": "setTimeout(seconds int)",
+ "return": "void",
+ "visibility": "public"
+ }
+ ],
+ "columns": null,
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "users",
+ "type": "sql_table",
+ "pos": {
+ "x": 119,
+ "y": 624
+ },
+ "width": 208,
+ "height": 512,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": [
+ {
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "email",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "password",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 80,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "last_login",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "datetime",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 77,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ }
+ ],
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 59,
+ "labelHeight": 31,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "code",
+ "type": "code",
+ "pos": {
+ "x": 125,
+ "y": 1236
+ },
+ "width": 196,
+ "height": 512,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a := 5\nb := a + 7\nfmt.Printf(\"%d\", b)",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "golang",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 196,
+ "labelHeight": 70,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "package",
+ "type": "package",
+ "pos": {
+ "x": 173,
+ "y": 1848
+ },
+ "width": 100,
+ "height": 512,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no height",
+ "type": "",
+ "pos": {
+ "x": 173,
+ "y": 2460
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(class -> users)[0]",
+ "src": "class",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "users",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 223,
+ "y": 524
+ },
+ {
+ "x": 223,
+ "y": 624
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(users -> code)[0]",
+ "src": "users",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "code",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 223,
+ "y": 1136
+ },
+ {
+ "x": 223,
+ "y": 1236
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(code -> package)[0]",
+ "src": "code",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "package",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 223,
+ "y": 1748
+ },
+ {
+ "x": 223,
+ "y": 1848
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(package -> no height)[0]",
+ "src": "package",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "no height",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 223,
+ "y": 2360
+ },
+ {
+ "x": 223,
+ "y": 2460
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg
new file mode 100644
index 000000000..b9c8d3109
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_height/elk/sketch.exp.svg
@@ -0,0 +1,62 @@
+
+-
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b)
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json b/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json
new file mode 100644
index 000000000..01bac4015
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_width/dagre/board.exp.json
@@ -0,0 +1,574 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "class",
+ "type": "class",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 512,
+ "height": 368,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "num",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "timeout",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "pid",
+ "type": "",
+ "visibility": "private"
+ }
+ ],
+ "methods": [
+ {
+ "name": "getStatus()",
+ "return": "Enum",
+ "visibility": "public"
+ },
+ {
+ "name": "getJobs()",
+ "return": "Job[]",
+ "visibility": "public"
+ },
+ {
+ "name": "setTimeout(seconds int)",
+ "return": "void",
+ "visibility": "public"
+ }
+ ],
+ "columns": null,
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "users",
+ "type": "sql_table",
+ "pos": {
+ "x": 0,
+ "y": 468
+ },
+ "width": 512,
+ "height": 186,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": [
+ {
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "email",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "password",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 80,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "last_login",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "datetime",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 77,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ }
+ ],
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 59,
+ "labelHeight": 31,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "code",
+ "type": "code",
+ "pos": {
+ "x": 0,
+ "y": 754
+ },
+ "width": 512,
+ "height": 70,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a := 5\nb := a + 7\nfmt.Printf(\"%d\", b)",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "golang",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 196,
+ "labelHeight": 70,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "package",
+ "type": "package",
+ "pos": {
+ "x": 0,
+ "y": 924
+ },
+ "width": 512,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no width",
+ "type": "",
+ "pos": {
+ "x": 206,
+ "y": 1124
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(class -> users)[0]",
+ "src": "class",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "users",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 256,
+ "y": 368
+ },
+ {
+ "x": 256,
+ "y": 408
+ },
+ {
+ "x": 256,
+ "y": 428
+ },
+ {
+ "x": 256,
+ "y": 468
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(users -> code)[0]",
+ "src": "users",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "code",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 256,
+ "y": 654
+ },
+ {
+ "x": 256,
+ "y": 694
+ },
+ {
+ "x": 256,
+ "y": 714
+ },
+ {
+ "x": 256,
+ "y": 754
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(code -> package)[0]",
+ "src": "code",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "package",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 256,
+ "y": 824
+ },
+ {
+ "x": 256,
+ "y": 864
+ },
+ {
+ "x": 256,
+ "y": 890.8
+ },
+ {
+ "x": 256,
+ "y": 958
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(package -> no width)[0]",
+ "src": "package",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "no width",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 256,
+ "y": 1024
+ },
+ {
+ "x": 256,
+ "y": 1064
+ },
+ {
+ "x": 256,
+ "y": 1084
+ },
+ {
+ "x": 256,
+ "y": 1124
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg
new file mode 100644
index 000000000..86ddafb1b
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_width/dagre/sketch.exp.svg
@@ -0,0 +1,62 @@
+
+-
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b)
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json b/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json
new file mode 100644
index 000000000..6db26d5e7
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_width/elk/board.exp.json
@@ -0,0 +1,538 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "class",
+ "type": "class",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 512,
+ "height": 368,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "num",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "timeout",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "pid",
+ "type": "",
+ "visibility": "private"
+ }
+ ],
+ "methods": [
+ {
+ "name": "getStatus()",
+ "return": "Enum",
+ "visibility": "public"
+ },
+ {
+ "name": "getJobs()",
+ "return": "Job[]",
+ "visibility": "public"
+ },
+ {
+ "name": "setTimeout(seconds int)",
+ "return": "void",
+ "visibility": "public"
+ }
+ ],
+ "columns": null,
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "users",
+ "type": "sql_table",
+ "pos": {
+ "x": 12,
+ "y": 480
+ },
+ "width": 512,
+ "height": 186,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": [
+ {
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "email",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "password",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 80,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "last_login",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "datetime",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 77,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ }
+ ],
+ "label": "",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 59,
+ "labelHeight": 31,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "code",
+ "type": "code",
+ "pos": {
+ "x": 12,
+ "y": 766
+ },
+ "width": 512,
+ "height": 70,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a := 5\nb := a + 7\nfmt.Printf(\"%d\", b)",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "golang",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 196,
+ "labelHeight": 70,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "package",
+ "type": "package",
+ "pos": {
+ "x": 12,
+ "y": 936
+ },
+ "width": 512,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no width",
+ "type": "",
+ "pos": {
+ "x": 218,
+ "y": 1136
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(class -> users)[0]",
+ "src": "class",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "users",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 268,
+ "y": 380
+ },
+ {
+ "x": 268,
+ "y": 480
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(users -> code)[0]",
+ "src": "users",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "code",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 268,
+ "y": 666
+ },
+ {
+ "x": 268,
+ "y": 766
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(code -> package)[0]",
+ "src": "code",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "package",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 268,
+ "y": 836
+ },
+ {
+ "x": 268,
+ "y": 970
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(package -> no width)[0]",
+ "src": "package",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "no width",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 268,
+ "y": 1036
+ },
+ {
+ "x": 268,
+ "y": 1136
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg
new file mode 100644
index 000000000..b61d80937
--- /dev/null
+++ b/e2etests/testdata/stable/unnamed_only_width/elk/sketch.exp.svg
@@ -0,0 +1,62 @@
+
+-
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b)
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/us_map/dagre/board.exp.json b/e2etests/testdata/stable/us_map/dagre/board.exp.json
index 6deece116..8cb41e19c 100644
--- a/e2etests/testdata/stable/us_map/dagre/board.exp.json
+++ b/e2etests/testdata/stable/us_map/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "AK",
diff --git a/e2etests/testdata/stable/us_map/dagre/sketch.exp.svg b/e2etests/testdata/stable/us_map/dagre/sketch.exp.svg
index e2fa2bdca..1a0207fcd 100644
--- a/e2etests/testdata/stable/us_map/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/us_map/dagre/sketch.exp.svg
@@ -18,7 +18,10 @@ width="3322" height="2812" viewBox="-100 -100 3322 2812">AK HI AL FL GA MS TN AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND AK HI AL FL GA MS TN AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
+
+
+ AK HI AL FL GA MS TN AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND AK HI AL FL GA MS TN AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
+
+
+ container first second 1->2 c->2
-
+container first second 1->2 c->2
+
container first second 1->2 c->2
-
-
-
+container first second 1->2 c->2
+
+
+
ninety nine sixty four thirty two sixteen eight ninety nine sixty four thirty two sixteen eight
+
+
+ ninety nine sixty four thirty two sixteen eight ninety nine sixty four thirty two sixteen eight
+
+
+ eight sixteen thirty two sixty four ninety nine twelve twenty four forty eight eighty one
-
-
-
-
-
+eight sixteen thirty two sixty four ninety nine twelve twenty four forty eight eighty one
+
+
+
+
+
eight sixteen thirty two sixty four ninety nine twelve twenty four forty eight eighty one
-
-
-
-
-
+eight sixteen thirty two sixty four ninety nine twelve twenty four forty eight eighty one
+
+
+
+
+
b a c this is a message group and this is a nested message group what about more nesting yo yo
-
-
-
-
-
-
+b a c this is a message group and this is a nested message group what about more nesting yo yo
+
+
+
+
+
+
b a c this is a message group and this is a nested message group what about more nesting yo yo
-
-
-
-
-
-
+b a c this is a message group and this is a nested message group what about more nesting yo yo
+
+
+
+
+
+
containers cloud tall cylinder users id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+class -
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void markdown text expanded to 800x400 a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b) a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b) container circle container diamond container oval container hexagon container diamond circle hexagon oval
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json b/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json
new file mode 100644
index 000000000..61577b1dd
--- /dev/null
+++ b/e2etests/testdata/todo/shape_set_width_height/elk/board.exp.json
@@ -0,0 +1,1097 @@
+{
+ "name": "",
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "containers",
+ "type": "",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 1322,
+ "height": 428,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#E3E9FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "containers",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 128,
+ "labelHeight": 41,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "containers.circle container",
+ "type": "oval",
+ "pos": {
+ "x": 87,
+ "y": 119
+ },
+ "width": 278,
+ "height": 214,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "circle container",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 161,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "containers.circle container.diamond",
+ "type": "diamond",
+ "pos": {
+ "x": 162,
+ "y": 194
+ },
+ "width": 128,
+ "height": 64,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#CFD2DD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "diamond",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 68,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "containers.diamond container",
+ "type": "diamond",
+ "pos": {
+ "x": 385,
+ "y": 87
+ },
+ "width": 278,
+ "height": 278,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#CFD2DD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "diamond container",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 197,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "containers.diamond container.circle",
+ "type": "oval",
+ "pos": {
+ "x": 460,
+ "y": 162
+ },
+ "width": 128,
+ "height": 128,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "circle",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 44,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "containers.oval container",
+ "type": "oval",
+ "pos": {
+ "x": 683,
+ "y": 119
+ },
+ "width": 278,
+ "height": 214,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "oval container",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 149,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "containers.oval container.hexagon",
+ "type": "hexagon",
+ "pos": {
+ "x": 758,
+ "y": 194
+ },
+ "width": 128,
+ "height": 64,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#DEE1EB",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "hexagon",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 65,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "containers.hexagon container",
+ "type": "hexagon",
+ "pos": {
+ "x": 981,
+ "y": 119
+ },
+ "width": 278,
+ "height": 214,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#DEE1EB",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "hexagon container",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 193,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "containers.hexagon container.oval",
+ "type": "oval",
+ "pos": {
+ "x": 1056,
+ "y": 194
+ },
+ "width": 128,
+ "height": 64,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "oval",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 36,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "cloud",
+ "type": "cloud",
+ "pos": {
+ "x": 1354,
+ "y": 184
+ },
+ "width": 512,
+ "height": 256,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "cloud",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 45,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "tall cylinder",
+ "type": "cylinder",
+ "pos": {
+ "x": 1482,
+ "y": 1440
+ },
+ "width": 256,
+ "height": 512,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#EDF0FD",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "tall cylinder",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 91,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "users",
+ "type": "sql_table",
+ "pos": {
+ "x": 1210,
+ "y": 2052
+ },
+ "width": 800,
+ "height": 400,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": [
+ {
+ "name": {
+ "label": "id",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 15,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "int",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 23,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "name",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "email",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 47,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "password",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 80,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "string",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 48,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ },
+ {
+ "name": {
+ "label": "last_login",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 26
+ },
+ "type": {
+ "label": "datetime",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 77,
+ "labelHeight": 26
+ },
+ "constraint": "",
+ "reference": ""
+ }
+ ],
+ "label": "users",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 61,
+ "labelHeight": 36,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "class",
+ "type": "class",
+ "pos": {
+ "x": 1210,
+ "y": 740
+ },
+ "width": 800,
+ "height": 400,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": [
+ {
+ "name": "num",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "timeout",
+ "type": "int",
+ "visibility": "private"
+ },
+ {
+ "name": "pid",
+ "type": "",
+ "visibility": "private"
+ }
+ ],
+ "methods": [
+ {
+ "name": "getStatus()",
+ "return": "Enum",
+ "visibility": "public"
+ },
+ {
+ "name": "getJobs()",
+ "return": "Job[]",
+ "visibility": "public"
+ },
+ {
+ "name": "setTimeout(seconds int)",
+ "return": "void",
+ "visibility": "public"
+ }
+ ],
+ "columns": null,
+ "label": "class",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 75,
+ "labelHeight": 36,
+ "zIndex": 0,
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
+ },
+ {
+ "id": "text",
+ "type": "",
+ "pos": {
+ "x": 2030,
+ "y": 540
+ },
+ "width": 400,
+ "height": 800,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "markdown text expanded to 800x400",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 266,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "code",
+ "type": "code",
+ "pos": {
+ "x": 2030,
+ "y": 1546
+ },
+ "width": 400,
+ "height": 300,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a := 5\nb := a + 7\nfmt.Printf(\"%d\", b)",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "golang",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 196,
+ "labelHeight": 70,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "small code",
+ "type": "code",
+ "pos": {
+ "x": 2132,
+ "y": 2052
+ },
+ "width": 196,
+ "height": 70,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#FFFFFF",
+ "stroke": "#0A0F25",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a := 5\nb := a + 7\nfmt.Printf(\"%d\", b)",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "golang",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 196,
+ "labelHeight": 70,
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "container",
+ "type": "",
+ "pos": {
+ "x": 2143,
+ "y": 314
+ },
+ "width": 174,
+ "height": 126,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "#F7F8FE",
+ "stroke": "#0D32B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "container",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#0A0F25",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 74,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(cloud -> class)[0]",
+ "src": "cloud",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "class",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1610,
+ "y": 440
+ },
+ {
+ "x": 1610,
+ "y": 740
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(class -> tall cylinder)[0]",
+ "src": "class",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "tall cylinder",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1610,
+ "y": 1140
+ },
+ {
+ "x": 1610,
+ "y": 1440
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(tall cylinder -> users)[0]",
+ "src": "tall cylinder",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "users",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1610,
+ "y": 1952
+ },
+ {
+ "x": 1610,
+ "y": 2052
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(container -> text)[0]",
+ "src": "container",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "text",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 2230,
+ "y": 440
+ },
+ {
+ "x": 2230,
+ "y": 540
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(text -> code)[0]",
+ "src": "text",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "code",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 2230,
+ "y": 1340
+ },
+ {
+ "x": 2230,
+ "y": 1546
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(code -> small code)[0]",
+ "src": "code",
+ "srcArrow": "none",
+ "srcLabel": "",
+ "dst": "small code",
+ "dstArrow": "triangle",
+ "dstLabel": "",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "#0D32B2",
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "#676C7E",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 2230,
+ "y": 1846
+ },
+ {
+ "x": 2230,
+ "y": 2052
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ]
+}
diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg
new file mode 100644
index 000000000..509a9bf1e
--- /dev/null
+++ b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg
@@ -0,0 +1,71 @@
+
+containers cloud tall cylinder users id
+int
+name
+string
+email
+string
+password
+string
+last_login
+datetime
+class -
+num
+int -
+timeout
+int -
+pid
++
+getStatus()
+Enum +
+getJobs()
+Job[] +
+setTimeout(seconds int)
+void markdown text expanded to 800x400 a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b) a := 5
+ b := a + 7
+ fmt.Printf ("%d" , b) container circle container diamond container oval container hexagon container diamond circle hexagon oval
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json b/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json
index 4050c622f..ab7a9450a 100644
--- a/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json
+++ b/e2etests/testdata/todo/tall_edge_label/dagre/board.exp.json
@@ -1,5 +1,6 @@
{
"name": "",
+ "fontFamily": "SourceSansPro",
"shapes": [
{
"id": "a",
@@ -46,7 +47,7 @@
"type": "",
"pos": {
"x": 0,
- "y": 226
+ "y": 299
},
"width": 113,
"height": 126,
@@ -114,15 +115,15 @@
},
{
"x": 56.5,
- "y": 166
+ "y": 195.2
},
{
"x": 56.5,
- "y": 186
+ "y": 229.9
},
{
"x": 56.5,
- "y": 226
+ "y": 299.5
}
],
"isCurve": true,
diff --git a/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg b/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg
index b4e1b6d2d..e61e1a050 100644
--- a/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg
+++ b/e2etests/testdata/todo/tall_edge_label/dagre/sketch.exp.svg
@@ -2,7 +2,7 @@
a b There once was a very tall edge label
-
-
+a b There once was a very tall edge label
+
+
a b There once was a very tall edge label
-
+a b There once was a very tall edge label
+