diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md
index 79c22bf5f..68939d98c 100644
--- a/ci/release/changelogs/next.md
+++ b/ci/release/changelogs/next.md
@@ -8,6 +8,8 @@
#### Improvements 🧹
- Improved label placements for shapes with images to avoid overlapping container labels. [#474](https://github.com/terrastruct/d2/pull/474)
+- Themes are applied to sql_table and class shapes. [#521](https://github.com/terrastruct/d2/pull/521)
+- `class` shapes use monospaced font. [#521](https://github.com/terrastruct/d2/pull/521)
- Sequence diagram edge group labels have more reasonable padding. [#512](https://github.com/terrastruct/d2/pull/512)
- ELK layout engine preserves order of nodes. [#282](https://github.com/terrastruct/d2/issues/282)
diff --git a/d2exporter/export.go b/d2exporter/export.go
index 73a6e37bd..1eb2e6445 100644
--- a/d2exporter/export.go
+++ b/d2exporter/export.go
@@ -40,6 +40,11 @@ func applyTheme(shape *d2target.Shape, obj *d2graph.Object, theme *d2themes.Them
if obj.Attributes.Shape.Value == d2target.ShapeText {
shape.Color = theme.Colors.Neutrals.N1
}
+ if obj.Attributes.Shape.Value == d2target.ShapeSQLTable || obj.Attributes.Shape.Value == d2target.ShapeClass {
+ shape.PrimaryAccentColor = theme.Colors.B2
+ shape.SecondaryAccentColor = theme.Colors.AA2
+ shape.NeutralAccentColor = theme.Colors.Neutrals.N2
+ }
}
func applyStyles(shape *d2target.Shape, obj *d2graph.Object) {
diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go
index f0ad6e1f7..e60aa17c0 100644
--- a/d2graph/d2graph.go
+++ b/d2graph/d2graph.go
@@ -392,17 +392,23 @@ func (obj *Object) GetFill(theme *d2themes.Theme) string {
return theme.Colors.Neutrals.N5
}
+ if strings.EqualFold(shape, d2target.ShapeSQLTable) || strings.EqualFold(shape, d2target.ShapeClass) {
+ return theme.Colors.Neutrals.N1
+ }
+
return theme.Colors.Neutrals.N7
}
func (obj *Object) GetStroke(theme *d2themes.Theme, dashGapSize interface{}) string {
shape := obj.Attributes.Shape.Value
if strings.EqualFold(shape, d2target.ShapeCode) ||
- strings.EqualFold(shape, d2target.ShapeClass) ||
- strings.EqualFold(shape, d2target.ShapeSQLTable) ||
strings.EqualFold(shape, d2target.ShapeText) {
return theme.Colors.Neutrals.N1
}
+ if strings.EqualFold(shape, d2target.ShapeClass) ||
+ strings.EqualFold(shape, d2target.ShapeSQLTable) {
+ return theme.Colors.Neutrals.N7
+ }
if dashGapSize != 0.0 {
return theme.Colors.B2
}
@@ -451,6 +457,9 @@ func (obj *Object) Text() *d2target.MText {
if obj.Class != nil || obj.SQLTable != nil {
fontSize = d2fonts.FONT_SIZE_XL
}
+ if obj.Class != nil {
+ isBold = false
+ }
return &d2target.MText{
Text: obj.Attributes.Label.Value,
FontSize: fontSize,
@@ -907,6 +916,8 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
}
}
innerLabelPadding = 0
+ } else if obj.Attributes.Shape.Value == d2target.ShapeClass {
+ dims = getTextDimensions(mtexts, ruler, obj.Text(), go2.Pointer(d2fonts.SourceCodePro))
} else {
dims = getTextDimensions(mtexts, ruler, obj.Text(), fontFamily)
}
@@ -962,7 +973,7 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
maxWidth := dims.Width
for _, f := range obj.Class.Fields {
- fdims := getTextDimensions(mtexts, ruler, f.Text(), fontFamily)
+ fdims := getTextDimensions(mtexts, ruler, f.Text(), go2.Pointer(d2fonts.SourceCodePro))
if fdims == nil {
return fmt.Errorf("dimensions for class field %#v not found", f.Text())
}
@@ -972,7 +983,7 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
}
}
for _, m := range obj.Class.Methods {
- mdims := getTextDimensions(mtexts, ruler, m.Text(), fontFamily)
+ mdims := getTextDimensions(mtexts, ruler, m.Text(), go2.Pointer(d2fonts.SourceCodePro))
if mdims == nil {
return fmt.Errorf("dimensions for class method %#v not found", m.Text())
}
@@ -991,7 +1002,7 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
}
if anyRowText != nil {
// 10px of padding top and bottom so text doesn't look squished
- rowHeight := getTextDimensions(mtexts, ruler, anyRowText, fontFamily).Height + 20
+ rowHeight := getTextDimensions(mtexts, ruler, anyRowText, go2.Pointer(d2fonts.SourceCodePro)).Height + 20
obj.Height = float64(rowHeight * (len(obj.Class.Fields) + len(obj.Class.Methods) + 2))
}
// Leave room for padding
diff --git a/d2renderers/d2sketch/sketch.go b/d2renderers/d2sketch/sketch.go
index ea3eb941c..4c4913a2b 100644
--- a/d2renderers/d2sketch/sketch.go
+++ b/d2renderers/d2sketch/sketch.go
@@ -66,8 +66,13 @@ func DefineFillPattern() string {
func shapeStyle(shape d2target.Shape) string {
out := ""
- out += fmt.Sprintf(`fill:%s;`, shape.Fill)
- out += fmt.Sprintf(`stroke:%s;`, shape.Stroke)
+ if shape.Type == d2target.ShapeSQLTable || shape.Type == d2target.ShapeClass {
+ out += fmt.Sprintf(`fill:%s;`, shape.Stroke)
+ out += fmt.Sprintf(`stroke:%s;`, shape.Fill)
+ } else {
+ out += fmt.Sprintf(`fill:%s;`, shape.Fill)
+ out += fmt.Sprintf(`stroke:%s;`, shape.Stroke)
+ }
out += fmt.Sprintf(`opacity:%f;`, shape.Opacity)
out += fmt.Sprintf(`stroke-width:%d;`, shape.StrokeWidth)
if shape.StrokeDash != 0 {
@@ -226,10 +231,9 @@ func Table(r *Runner, shape d2target.Shape) (string, error) {
return "", err
}
for _, p := range paths {
- // TODO header fill
output += fmt.Sprintf(
``,
- shape.Pos.X, shape.Pos.Y, p, "#0a0f25",
+ shape.Pos.X, shape.Pos.Y, p, shape.Fill,
)
}
@@ -241,7 +245,6 @@ func Table(r *Runner, shape d2target.Shape) (string, error) {
float64(shape.LabelHeight),
)
- // TODO header font color
output += fmt.Sprintf(`%s`,
"text",
tl.X,
@@ -249,7 +252,7 @@ func Table(r *Runner, shape d2target.Shape) (string, error) {
fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s",
"start",
4+shape.FontSize,
- "white",
+ shape.Stroke,
),
svg.EscapeText(shape.Label),
)
@@ -276,31 +279,23 @@ func Table(r *Runner, shape d2target.Shape) (string, error) {
float64(shape.FontSize),
)
- // TODO theme based
- primaryColor := "rgb(13, 50, 178)"
- accentColor := "rgb(74, 111, 243)"
- neutralColor := "rgb(103, 108, 126)"
-
output += strings.Join([]string{
fmt.Sprintf(`%s`,
nameTL.X,
nameTL.Y+float64(shape.FontSize)*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", float64(shape.FontSize), primaryColor),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", float64(shape.FontSize), shape.PrimaryAccentColor),
svg.EscapeText(f.Name.Label),
),
-
- // TODO light font
fmt.Sprintf(`%s`,
nameTL.X+float64(longestNameWidth)+2*d2target.NamePadding,
nameTL.Y+float64(shape.FontSize)*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", float64(shape.FontSize), neutralColor),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", float64(shape.FontSize), shape.NeutralAccentColor),
svg.EscapeText(f.Type.Label),
),
-
fmt.Sprintf(`%s`,
constraintTR.X,
constraintTR.Y+float64(shape.FontSize)*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s;letter-spacing:2px;", "end", float64(shape.FontSize), accentColor),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s;letter-spacing:2px;", "end", float64(shape.FontSize), shape.SecondaryAccentColor),
f.ConstraintAbbr(),
),
}, "\n")
@@ -316,8 +311,8 @@ func Table(r *Runner, shape d2target.Shape) (string, error) {
}
for _, p := range paths {
output += fmt.Sprintf(
- ``,
- p, "#0a0f25",
+ ``,
+ p, shape.Fill,
)
}
}
@@ -365,10 +360,9 @@ func Class(r *Runner, shape d2target.Shape) (string, error) {
return "", err
}
for _, p := range paths {
- // TODO header fill
output += fmt.Sprintf(
``,
- shape.Pos.X, shape.Pos.Y, p, "#0a0f25",
+ shape.Pos.X, shape.Pos.Y, p, shape.Fill,
)
}
@@ -378,22 +372,21 @@ func Class(r *Runner, shape d2target.Shape) (string, error) {
)
if shape.Label != "" {
- tl := label.InsideMiddleLeft.GetPointOnBox(
+ tl := label.InsideMiddleCenter.GetPointOnBox(
headerBox,
0,
float64(shape.LabelWidth),
float64(shape.LabelHeight),
)
- // TODO header font color
output += fmt.Sprintf(`%s`,
- "text",
+ "text-mono",
tl.X+float64(shape.LabelWidth)/2,
tl.Y+float64(shape.LabelHeight)*3/4,
fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s",
"middle",
4+shape.FontSize,
- "white",
+ shape.Stroke,
),
svg.EscapeText(shape.Label),
)
@@ -402,7 +395,7 @@ func Class(r *Runner, shape d2target.Shape) (string, error) {
rowBox := geo.NewBox(box.TopLeft.Copy(), box.Width, rowHeight)
rowBox.TopLeft.Y += headerBox.Height
for _, f := range shape.Fields {
- output += classRow(rowBox, f.VisibilityToken(), f.Name, f.Type, float64(shape.FontSize))
+ output += classRow(shape, rowBox, f.VisibilityToken(), f.Name, f.Type, float64(shape.FontSize))
rowBox.TopLeft.Y += rowHeight
}
@@ -416,19 +409,19 @@ func Class(r *Runner, shape d2target.Shape) (string, error) {
for _, p := range paths {
output += fmt.Sprintf(
``,
- p, "#0a0f25",
+ p, shape.Fill,
)
}
for _, m := range shape.Methods {
- output += classRow(rowBox, m.VisibilityToken(), m.Name, m.Return, float64(shape.FontSize))
+ output += classRow(shape, rowBox, m.VisibilityToken(), m.Name, m.Return, float64(shape.FontSize))
rowBox.TopLeft.Y += rowHeight
}
return output, nil
}
-func classRow(box *geo.Box, prefix, nameText, typeText string, fontSize float64) string {
+func classRow(shape d2target.Shape, box *geo.Box, prefix, nameText, typeText string, fontSize float64) string {
output := ""
prefixTL := label.InsideMiddleLeft.GetPointOnBox(
box,
@@ -443,28 +436,25 @@ func classRow(box *geo.Box, prefix, nameText, typeText string, fontSize float64)
fontSize,
)
- // TODO theme based
- accentColor := "rgb(13, 50, 178)"
-
output += strings.Join([]string{
- fmt.Sprintf(`%s`,
+ fmt.Sprintf(`%s`,
prefixTL.X,
prefixTL.Y+fontSize*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", fontSize, accentColor),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", fontSize, shape.PrimaryAccentColor),
prefix,
),
- fmt.Sprintf(`%s`,
+ fmt.Sprintf(`%s`,
prefixTL.X+d2target.PrefixWidth,
prefixTL.Y+fontSize*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", fontSize, "black"),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s", "start", fontSize, shape.Fill),
svg.EscapeText(nameText),
),
- fmt.Sprintf(`%s`,
+ fmt.Sprintf(`%s`,
typeTR.X,
typeTR.Y+fontSize*3/4,
- fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s;", "end", fontSize, accentColor),
+ fmt.Sprintf("text-anchor:%s;font-size:%vpx;fill:%s;", "end", fontSize, shape.SecondaryAccentColor),
svg.EscapeText(typeText),
),
}, "\n")
diff --git a/d2renderers/d2sketch/sketch_test.go b/d2renderers/d2sketch/sketch_test.go
index 87a2e17a2..e033bedfe 100644
--- a/d2renderers/d2sketch/sketch_test.go
+++ b/d2renderers/d2sketch/sketch_test.go
@@ -255,7 +255,7 @@ shipments: {
shape: sql_table
id: int
order_id: int
- tracking_number: string
+ tracking_number: string {constraint: primary_key}
status: string
}
diff --git a/d2renderers/d2sketch/testdata/class/sketch.exp.svg b/d2renderers/d2sketch/testdata/class/sketch.exp.svg
index ed2b21d25..5dd1ee1a5 100644
--- a/d2renderers/d2sketch/testdata/class/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/class/sketch.exp.svg
@@ -2,7 +2,7 @@
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
index ef8c16188..68d7a9a2a 100644
--- a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
@@ -2,7 +2,7 @@
\ No newline at end of file
diff --git a/e2etests/testdata/stable/class/elk/board.exp.json b/e2etests/testdata/stable/class/elk/board.exp.json
index 90dd60cd4..438953ee7 100644
--- a/e2etests/testdata/stable/class/elk/board.exp.json
+++ b/e2etests/testdata/stable/class/elk/board.exp.json
@@ -9,14 +9,14 @@
"x": 12,
"y": 12
},
- "width": 339,
+ "width": 422,
"height": 368,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
- "fill": "#FFFFFF",
- "stroke": "#0A0F25",
+ "fill": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -68,10 +68,13 @@
"italic": false,
"bold": false,
"underline": false,
- "labelWidth": 150,
+ "labelWidth": 175,
"labelHeight": 36,
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
}
],
"connections": []
diff --git a/e2etests/testdata/stable/class/elk/sketch.exp.svg b/e2etests/testdata/stable/class/elk/sketch.exp.svg
index 45f859f36..a433f42f0 100644
--- a/e2etests/testdata/stable/class/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/class/elk/sketch.exp.svg
@@ -2,7 +2,7 @@
\ No newline at end of file
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 61504c34e..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
@@ -86,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,
@@ -127,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,
@@ -177,7 +180,7 @@
"id": "e",
"type": "code",
"pos": {
- "x": 1016,
+ "x": 1072,
"y": 188
},
"width": 196,
@@ -217,7 +220,7 @@
"id": "f",
"type": "cylinder",
"pos": {
- "x": 1289,
+ "x": 1345,
"y": 132
},
"width": 150,
@@ -257,7 +260,7 @@
"id": "g",
"type": "diamond",
"pos": {
- "x": 1539,
+ "x": 1595,
"y": 132
},
"width": 150,
@@ -297,7 +300,7 @@
"id": "h",
"type": "document",
"pos": {
- "x": 1789,
+ "x": 1845,
"y": 132
},
"width": 150,
@@ -337,7 +340,7 @@
"id": "i",
"type": "hexagon",
"pos": {
- "x": 2025,
+ "x": 2082,
"y": 132
},
"width": 177,
@@ -377,7 +380,7 @@
"id": "j",
"type": "image",
"pos": {
- "x": 2289,
+ "x": 2345,
"y": 109
},
"width": 150,
@@ -428,7 +431,7 @@
"id": "k",
"type": "oval",
"pos": {
- "x": 2539,
+ "x": 2595,
"y": 132
},
"width": 150,
@@ -468,7 +471,7 @@
"id": "l",
"type": "package",
"pos": {
- "x": 2789,
+ "x": 2845,
"y": 132
},
"width": 150,
@@ -508,7 +511,7 @@
"id": "m",
"type": "page",
"pos": {
- "x": 3027,
+ "x": 3084,
"y": 132
},
"width": 173,
@@ -548,7 +551,7 @@
"id": "n",
"type": "parallelogram",
"pos": {
- "x": 3275,
+ "x": 3332,
"y": 116
},
"width": 177,
@@ -588,7 +591,7 @@
"id": "o",
"type": "person",
"pos": {
- "x": 3538,
+ "x": 3595,
"y": 79
},
"width": 151,
@@ -628,7 +631,7 @@
"id": "p",
"type": "queue",
"pos": {
- "x": 3784,
+ "x": 3841,
"y": 132
},
"width": 159,
@@ -668,7 +671,7 @@
"id": "q",
"type": "rectangle",
"pos": {
- "x": 4032,
+ "x": 4089,
"y": 95
},
"width": 163,
@@ -708,7 +711,7 @@
"id": "r",
"type": "step",
"pos": {
- "x": 4260,
+ "x": 4317,
"y": 132
},
"width": 207,
@@ -748,7 +751,7 @@
"id": "s",
"type": "stored_data",
"pos": {
- "x": 4539,
+ "x": 4595,
"y": 132
},
"width": 150,
@@ -788,7 +791,7 @@
"id": "t",
"type": "sql_table",
"pos": {
- "x": 4783,
+ "x": 4840,
"y": 150
},
"width": 161,
@@ -798,7 +801,7 @@
"strokeWidth": 2,
"borderRadius": 0,
"fill": "#EDF0FD",
- "stroke": "#0A0F25",
+ "stroke": "#FFFFFF",
"shadow": false,
"3d": false,
"multiple": false,
@@ -879,7 +882,10 @@
"labelHeight": 36,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
- "level": 1
+ "level": 1,
+ "primaryAccentColor": "#0D32B2",
+ "secondaryAccentColor": "#4A6FF3",
+ "neutralAccentColor": "#676C7E"
}
],
"connections": [
@@ -952,7 +958,7 @@
"y": 518
},
{
- "x": 606.5,
+ "x": 632,
"y": 518
}
],
@@ -987,11 +993,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 606.5,
+ "x": 632,
"y": 648
},
{
- "x": 864,
+ "x": 920,
"y": 648
}
],
@@ -1026,11 +1032,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 864,
+ "x": 920,
"y": 778
},
{
- "x": 1114,
+ "x": 1170,
"y": 778
}
],
@@ -1065,11 +1071,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1114,
+ "x": 1170,
"y": 908
},
{
- "x": 1364,
+ "x": 1420,
"y": 908
}
],
@@ -1104,11 +1110,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1364,
+ "x": 1420,
"y": 1038
},
{
- "x": 1614,
+ "x": 1670,
"y": 1038
}
],
@@ -1143,11 +1149,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1614,
+ "x": 1670,
"y": 1168
},
{
- "x": 1864,
+ "x": 1920,
"y": 1168
}
],
@@ -1182,11 +1188,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1864,
+ "x": 1920,
"y": 1298
},
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 1298
}
],
@@ -1221,11 +1227,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 1428
},
{
- "x": 2364,
+ "x": 2420,
"y": 1428
}
],
@@ -1260,11 +1266,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2364,
+ "x": 2420,
"y": 1558
},
{
- "x": 2614,
+ "x": 2670,
"y": 1558
}
],
@@ -1299,11 +1305,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2614,
+ "x": 2670,
"y": 1688
},
{
- "x": 2864,
+ "x": 2920,
"y": 1688
}
],
@@ -1338,11 +1344,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2864,
+ "x": 2920,
"y": 1818
},
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 1818
}
],
@@ -1377,11 +1383,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 1948
},
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 1948
}
],
@@ -1416,11 +1422,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 2078
},
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2078
}
],
@@ -1455,11 +1461,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2208
},
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2208
}
],
@@ -1494,11 +1500,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2338
},
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2338
}
],
@@ -1533,11 +1539,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2468
},
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2468
}
],
@@ -1572,11 +1578,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2598
},
{
- "x": 4614,
+ "x": 4670,
"y": 2598
}
],
@@ -1611,11 +1617,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4614,
+ "x": 4670,
"y": 2728
},
{
- "x": 4863.5,
+ "x": 4920.5,
"y": 2728
}
],
@@ -1728,11 +1734,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 606.5,
+ "x": 632,
"y": 258
},
{
- "x": 606.5,
+ "x": 632,
"y": 2858
}
],
@@ -1767,11 +1773,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 864,
+ "x": 920,
"y": 258
},
{
- "x": 864,
+ "x": 920,
"y": 2858
}
],
@@ -1806,11 +1812,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1114,
+ "x": 1170,
"y": 258
},
{
- "x": 1114,
+ "x": 1170,
"y": 2858
}
],
@@ -1845,11 +1851,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1364,
+ "x": 1420,
"y": 258
},
{
- "x": 1364,
+ "x": 1420,
"y": 2858
}
],
@@ -1884,11 +1890,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1614,
+ "x": 1670,
"y": 258
},
{
- "x": 1614,
+ "x": 1670,
"y": 2858
}
],
@@ -1923,11 +1929,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1864,
+ "x": 1920,
"y": 258
},
{
- "x": 1864,
+ "x": 1920,
"y": 2858
}
],
@@ -1962,11 +1968,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 258
},
{
- "x": 2113.5,
+ "x": 2170.5,
"y": 2858
}
],
@@ -2001,11 +2007,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2364,
+ "x": 2420,
"y": 263
},
{
- "x": 2364,
+ "x": 2420,
"y": 2858
}
],
@@ -2040,11 +2046,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2614,
+ "x": 2670,
"y": 258
},
{
- "x": 2614,
+ "x": 2670,
"y": 2858
}
],
@@ -2079,11 +2085,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 2864,
+ "x": 2920,
"y": 258
},
{
- "x": 2864,
+ "x": 2920,
"y": 2858
}
],
@@ -2118,11 +2124,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 258
},
{
- "x": 3113.5,
+ "x": 3170.5,
"y": 2858
}
],
@@ -2157,11 +2163,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 258
},
{
- "x": 3363.5,
+ "x": 3420.5,
"y": 2858
}
],
@@ -2196,11 +2202,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 263
},
{
- "x": 3613.5,
+ "x": 3670.5,
"y": 2858
}
],
@@ -2235,11 +2241,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 258
},
{
- "x": 3863.5,
+ "x": 3920.5,
"y": 2858
}
],
@@ -2274,11 +2280,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 258
},
{
- "x": 4113.5,
+ "x": 4170.5,
"y": 2858
}
],
@@ -2313,11 +2319,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 258
},
{
- "x": 4363.5,
+ "x": 4420.5,
"y": 2858
}
],
@@ -2352,11 +2358,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4614,
+ "x": 4670,
"y": 258
},
{
- "x": 4614,
+ "x": 4670,
"y": 2858
}
],
@@ -2391,11 +2397,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 4863.5,
+ "x": 4920.5,
"y": 258
},
{
- "x": 4863.5,
+ "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 c23490a3e..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 @@