diff --git a/e2etests/testdata/txtar/c4-person-label/dagre/board.exp.json b/e2etests/testdata/txtar/c4-person-label/dagre/board.exp.json index d164ab8a8..f0edbecf7 100644 --- a/e2etests/testdata/txtar/c4-person-label/dagre/board.exp.json +++ b/e2etests/testdata/txtar/c4-person-label/dagre/board.exp.json @@ -16,10 +16,10 @@ "type": "c4-person", "pos": { "x": 0, - "y": 0 + "y": 8 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -58,10 +58,10 @@ "type": "c4-person", "pos": { "x": 470, - "y": 0 + "y": 8 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -100,10 +100,10 @@ "type": "c4-person", "pos": { "x": 940, - "y": 0 + "y": 8 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -136,9 +136,514 @@ "labelPosition": "INSIDE_BOTTOM_CENTER", "zIndex": 0, "level": 1 + }, + { + "id": "customer1", + "type": "c4-person", + "pos": { + "x": 1410, + "y": 0 + }, + "width": 448, + "height": 299, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank ccountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 388, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer2", + "type": "c4-person", + "pos": { + "x": 1137, + "y": 399 + }, + "width": 457, + "height": 378, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customerk\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.\n\nA customer of the bank, with pekkrsonal bank accountskks.\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 199, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer3", + "type": "c4-person", + "pos": { + "x": 1147, + "y": 877 + }, + "width": 457, + "height": 304, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer4", + "type": "c4-person", + "pos": { + "x": 1426, + "y": 1281 + }, + "width": 457, + "height": 304, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(customer1 -> customer2)[0]", + "src": "customer1", + "srcArrow": "none", + "dst": "customer2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1436, + "y": 297 + }, + { + "x": 1379.5999755859375, + "y": 338.6000061035156 + }, + { + "x": 1365.5999755859375, + "y": 359 + }, + { + "x": 1366, + "y": 399 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer2 -> customer3)[0]", + "src": "customer2", + "srcArrow": "none", + "dst": "customer3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1358, + "y": 777 + }, + { + "x": 1356, + "y": 817 + }, + { + "x": 1356.5999755859375, + "y": 837.2000122070312 + }, + { + "x": 1361, + "y": 878 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer3 -> customer4)[0]", + "src": "customer3", + "srcArrow": "none", + "dst": "customer4", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1375, + "y": 1181 + }, + { + "x": 1375.4000244140625, + "y": 1221 + }, + { + "x": 1415, + "y": 1259.5999755859375 + }, + { + "x": 1573, + "y": 1374 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer4 -> customer1)[0]", + "src": "customer4", + "srcArrow": "none", + "dst": "customer1", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1654, + "y": 1281 + }, + { + "x": 1654, + "y": 1241 + }, + { + "x": 1654, + "y": 1190.5999755859375 + }, + { + "x": 1654, + "y": 1130 + }, + { + "x": 1654, + "y": 1069.4000244140625 + }, + { + "x": 1654, + "y": 988.5999755859375 + }, + { + "x": 1654, + "y": 928 + }, + { + "x": 1654, + "y": 867.4000244140625 + }, + { + "x": 1654, + "y": 779.2000122070312 + }, + { + "x": 1654, + "y": 707.5 + }, + { + "x": 1654, + "y": 635.7999877929688 + }, + { + "x": 1653, + "y": 339 + }, + { + "x": 1649, + "y": 299 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer1 -> customer3)[0]", + "src": "customer1", + "srcArrow": "none", + "dst": "customer3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1634, + "y": 299 + }, + { + "x": 1634, + "y": 339 + }, + { + "x": 1634, + "y": 396.79998779296875 + }, + { + "x": 1634, + "y": 468.5 + }, + { + "x": 1634, + "y": 540.2000122070312 + }, + { + "x": 1598.800048828125, + "y": 854.5999755859375 + }, + { + "x": 1458, + "y": 965 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer3 -> customer2)[0]", + "src": "customer3", + "srcArrow": "none", + "dst": "customer2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1442, + "y": 911 + }, + { + "x": 1480.199951171875, + "y": 843.7999877929688 + }, + { + "x": 1484.5999755859375, + "y": 817 + }, + { + "x": 1464, + "y": 777 + } + ], + "isCurve": true, + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 } ], - "connections": [], "root": { "id": "", "type": "", diff --git a/e2etests/testdata/txtar/c4-person-label/dagre/sketch.exp.svg b/e2etests/testdata/txtar/c4-person-label/dagre/sketch.exp.svg index bab515547..7c7343d0c 100644 --- a/e2etests/testdata/txtar/c4-person-label/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-person-label/dagre/sketch.exp.svg @@ -1,14 +1,14 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-
- - - - +

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank ccountskks.

+

Personal Banking Customerk

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+

A customer of the bank, with pekkrsonal bank accountskks.

+

A customer of the bank, with pekkrsonal bank accountskks.

+

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+
+ + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-person-label/elk/board.exp.json b/e2etests/testdata/txtar/c4-person-label/elk/board.exp.json index 636de29e5..f55b84f10 100644 --- a/e2etests/testdata/txtar/c4-person-label/elk/board.exp.json +++ b/e2etests/testdata/txtar/c4-person-label/elk/board.exp.json @@ -16,10 +16,10 @@ "type": "c4-person", "pos": { "x": 12, - "y": 12 + "y": 19 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -57,11 +57,11 @@ "id": "c4mdperson2", "type": "c4-person", "pos": { - "x": 442, - "y": 12 + "x": 441, + "y": 19 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -99,11 +99,11 @@ "id": "c4mdperson3", "type": "c4-person", "pos": { - "x": 872, - "y": 12 + "x": 871, + "y": 19 }, "width": 410, - "height": 390, + "height": 284, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -136,9 +136,412 @@ "labelPosition": "INSIDE_BOTTOM_CENTER", "zIndex": 0, "level": 1 + }, + { + "id": "customer1", + "type": "c4-person", + "pos": { + "x": 1301, + "y": 12 + }, + "width": 448, + "height": 299, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank ccountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 388, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer2", + "type": "c4-person", + "pos": { + "x": 1028, + "y": 391 + }, + "width": 457, + "height": 378, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customerk\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.\n\nA customer of the bank, with pekkrsonal bank accountskks.\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 199, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer3", + "type": "c4-person", + "pos": { + "x": 1123, + "y": 849 + }, + "width": 457, + "height": 304, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + }, + { + "id": "customer4", + "type": "c4-person", + "pos": { + "x": 1313, + "y": 1233 + }, + "width": 457, + "height": 304, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B3", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": false, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "## Personal Banking Customer\n[person]\n\nA customer of the bank, with pekkrsonal bank accountskks.", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "markdown", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 396, + "labelHeight": 119, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [ + { + "id": "(customer1 -> customer2)[0]", + "src": "customer1", + "srcArrow": "none", + "dst": "customer2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1414, + "y": 311 + }, + { + "x": 1414, + "y": 540 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer2 -> customer3)[0]", + "src": "customer2", + "srcArrow": "none", + "dst": "customer3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1237, + "y": 769 + }, + { + "x": 1237, + "y": 997 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer3 -> customer4)[0]", + "src": "customer3", + "srcArrow": "none", + "dst": "customer4", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1465, + "y": 1153 + }, + { + "x": 1466, + "y": 1284 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer4 -> customer1)[0]", + "src": "customer4", + "srcArrow": "none", + "dst": "customer1", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1620, + "y": 1290 + }, + { + "x": 1620, + "y": 311 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer1 -> customer3)[0]", + "src": "customer1", + "srcArrow": "none", + "dst": "customer3", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1526, + "y": 311 + }, + { + "x": 1526, + "y": 997 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 + }, + { + "id": "(customer3 -> customer2)[0]", + "src": "customer3", + "srcArrow": "none", + "dst": "customer2", + "dstArrow": "triangle", + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "stroke": "B1", + "borderRadius": 10, + "label": "", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N2", + "italic": true, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "labelPosition": "", + "labelPercentage": 0, + "link": "", + "route": [ + { + "x": 1334, + "y": 851 + }, + { + "x": 1334, + "y": 769 + } + ], + "animated": false, + "tooltip": "", + "icon": null, + "zIndex": 0 } ], - "connections": [], "root": { "id": "", "type": "", diff --git a/e2etests/testdata/txtar/c4-person-label/elk/sketch.exp.svg b/e2etests/testdata/txtar/c4-person-label/elk/sketch.exp.svg index bfadee541..aafc758b9 100644 --- a/e2etests/testdata/txtar/c4-person-label/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-person-label/elk/sketch.exp.svg @@ -1,14 +1,14 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts

-
- - - - +

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank ccountskks.

+

Personal Banking Customerk

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+

A customer of the bank, with pekkrsonal bank accountskks.

+

A customer of the bank, with pekkrsonal bank accountskks.

+

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+

Personal Banking Customer

+

[person]

+

A customer of the bank, with pekkrsonal bank accountskks.

+
+ + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-person-shape/dagre/board.exp.json b/e2etests/testdata/txtar/c4-person-shape/dagre/board.exp.json index 279169e81..196f6f710 100644 --- a/e2etests/testdata/txtar/c4-person-shape/dagre/board.exp.json +++ b/e2etests/testdata/txtar/c4-person-shape/dagre/board.exp.json @@ -16,10 +16,10 @@ "type": "c4-person", "pos": { "x": 0, - "y": 504 + "y": 469 }, "width": 336, - "height": 328, + "height": 286, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -61,7 +61,7 @@ "y": 0 }, "width": 139, - "height": 132, + "height": 107, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -100,7 +100,7 @@ "type": "person", "pos": { "x": 101, - "y": 309 + "y": 279 }, "width": 134, "height": 89, @@ -142,10 +142,10 @@ "type": "rectangle", "pos": { "x": 386, - "y": 273 + "y": 248 }, "width": 210, - "height": 515, + "height": 484, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -184,10 +184,10 @@ "type": "c4-person", "pos": { "x": 449, - "y": 303 + "y": 278 }, "width": 84, - "height": 101, + "height": 91, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -226,7 +226,7 @@ "type": "c4-person", "pos": { "x": 416, - "y": 578 + "y": 522 }, "width": 150, "height": 180, @@ -292,19 +292,19 @@ "route": [ { "x": 168, - "y": 424 + "y": 394 }, { "x": 168, - "y": 448 + "y": 414 }, { "x": 168, - "y": 461 + "y": 429 }, { "x": 168, - "y": 489 + "y": 469 } ], "isCurve": true, @@ -339,20 +339,20 @@ "link": "", "route": [ { - "x": 262, - "y": 119 + "x": 263, + "y": 100 }, { - "x": 186.8000030517578, - "y": 177.8000030517578 + "x": 187, + "y": 154 }, { "x": 168, - "y": 264.20001220703125 + "y": 238.1999969482422 }, { "x": 168, - "y": 309 + "y": 279 } ], "isCurve": true, @@ -387,20 +387,20 @@ "link": "", "route": [ { - "x": 397, - "y": 119 + "x": 395, + "y": 100 }, { - "x": 472.20001220703125, - "y": 177.8000030517578 + "x": 471.79998779296875, + "y": 154 }, { "x": 491, - "y": 263 + "y": 238 }, { "x": 491, - "y": 303 + "y": 278 } ], "isCurve": true, @@ -436,19 +436,19 @@ "route": [ { "x": 491, - "y": 405 + "y": 369 }, { "x": 491, - "y": 444.20001220703125 + "y": 409 }, { "x": 491, - "y": 478.6000061035156 + "y": 439.6000061035156 }, { "x": 491, - "y": 577 + "y": 522 } ], "isCurve": true, diff --git a/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg b/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg index 65e12a1b3..e3498e842 100644 --- a/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-person-shape/dagre/sketch.exp.svg @@ -1,27 +1,27 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with
personal bank accounts

-
C4 Style PersonStandard Personstylingc4styledCustom Size Compare shapes - - - - - - - - +
C4 Style PersonStandard Personstylingc4styledCustom Size Compare shapes + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-person-shape/elk/board.exp.json b/e2etests/testdata/txtar/c4-person-shape/elk/board.exp.json index 95cb99c31..7c1686a85 100644 --- a/e2etests/testdata/txtar/c4-person-shape/elk/board.exp.json +++ b/e2etests/testdata/txtar/c4-person-shape/elk/board.exp.json @@ -16,10 +16,10 @@ "type": "c4-person", "pos": { "x": 12, - "y": 935 + "y": 900 }, "width": 336, - "height": 328, + "height": 286, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -61,7 +61,7 @@ "y": 12 }, "width": 139, - "height": 132, + "height": 107, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -100,7 +100,7 @@ "type": "person", "pos": { "x": 113, - "y": 750 + "y": 715 }, "width": 134, "height": 89, @@ -142,10 +142,10 @@ "type": "rectangle", "pos": { "x": 256, - "y": 229 + "y": 204 }, "width": 250, - "height": 451, + "height": 441, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -184,10 +184,10 @@ "type": "c4-person", "pos": { "x": 339, - "y": 279 + "y": 254 }, "width": 84, - "height": 101, + "height": 91, "opacity": 1, "strokeDash": 0, "strokeWidth": 1, @@ -226,7 +226,7 @@ "type": "c4-person", "pos": { "x": 306, - "y": 450 + "y": 415 }, "width": 150, "height": 180, @@ -292,11 +292,11 @@ "route": [ { "x": 180, - "y": 865 + "y": 830 }, { "x": 180, - "y": 920 + "y": 900 } ], "animated": false, @@ -331,19 +331,19 @@ "route": [ { "x": 258, - "y": 144 + "y": 119 }, { "x": 257.5830078125, - "y": 184 + "y": 159 }, { "x": 180, - "y": 184 + "y": 159 }, { "x": 180, - "y": 750 + "y": 715 } ], "animated": false, @@ -378,19 +378,19 @@ "route": [ { "x": 304, - "y": 144 + "y": 119 }, { "x": 303.9159851074219, - "y": 184 + "y": 159 }, { "x": 381.5, - "y": 184 + "y": 159 }, { "x": 382, - "y": 279 + "y": 254 } ], "animated": false, @@ -425,11 +425,11 @@ "route": [ { "x": 381, - "y": 381 + "y": 345 }, { "x": 382, - "y": 449 + "y": 415 } ], "animated": false, diff --git a/e2etests/testdata/txtar/c4-person-shape/elk/sketch.exp.svg b/e2etests/testdata/txtar/c4-person-shape/elk/sketch.exp.svg index d7fdb9e74..ec77604b2 100644 --- a/e2etests/testdata/txtar/c4-person-shape/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-person-shape/elk/sketch.exp.svg @@ -1,27 +1,27 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with
personal bank accounts

-
C4 Style PersonStandard Personstylingc4styledCustom Size Compare shapes - - - - - - - - +
C4 Style PersonStandard Personstylingc4styledCustom Size Compare shapes + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json b/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json index e462c9a73..9f035283b 100644 --- a/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json +++ b/e2etests/testdata/txtar/c4-theme/dagre/board.exp.json @@ -19,7 +19,7 @@ "y": 0 }, "width": 415, - "height": 394, + "height": 285, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -58,7 +58,7 @@ "type": "rectangle", "pos": { "x": 147, - "y": 551 + "y": 442 }, "width": 2407, "height": 915, @@ -100,7 +100,7 @@ "type": "rectangle", "pos": { "x": 177, - "y": 581 + "y": 472 }, "width": 550, "height": 164, @@ -142,7 +142,7 @@ "type": "rectangle", "pos": { "x": 390, - "y": 866 + "y": 757 }, "width": 609, "height": 164, @@ -184,7 +184,7 @@ "type": "rectangle", "pos": { "x": 1123, - "y": 866 + "y": 757 }, "width": 707, "height": 164, @@ -226,7 +226,7 @@ "type": "rectangle", "pos": { "x": 1246, - "y": 1167 + "y": 1058 }, "width": 461, "height": 164, @@ -268,7 +268,7 @@ "type": "rectangle", "pos": { "x": 1890, - "y": 866 + "y": 757 }, "width": 634, "height": 164, @@ -310,7 +310,7 @@ "type": "rectangle", "pos": { "x": 2410, - "y": 1603 + "y": 1494 }, "width": 360, "height": 164, @@ -352,7 +352,7 @@ "type": "rectangle", "pos": { "x": 0, - "y": 1603 + "y": 1494 }, "width": 629, "height": 164, @@ -418,19 +418,19 @@ "route": [ { "x": 1089, - "y": 262 + "y": 194 }, { "x": 579.4000244140625, - "y": 422.3999938964844 + "y": 321.6000061035156 }, { "x": 452, - "y": 541 + "y": 432 }, { "x": 452, - "y": 581 + "y": 472 } ], "isCurve": true, @@ -466,19 +466,19 @@ "route": [ { "x": 452, - "y": 744.5 + "y": 635.5 }, { "x": 452, - "y": 793.2999877929688 + "y": 684.2999877929688 }, { "x": 472.3999938964844, - "y": 817.7000122070312 + "y": 708.7000122070312 }, { "x": 554, - "y": 866.5 + "y": 757.5 } ], "isCurve": true, @@ -513,44 +513,44 @@ "link": "", "route": [ { - "x": 1092, - "y": 348 + "x": 1093, + "y": 262 }, { - "x": 968, - "y": 439.6000061035156 + "x": 968.2000122070312, + "y": 335.20001220703125 }, { "x": 937, - "y": 476.20001220703125 + "y": 367.20001220703125 }, { "x": 937, - "y": 496.75 + "y": 387.75 }, { "x": 937, - "y": 517.2990112304688 + "y": 408.29998779296875 }, { "x": 937, - "y": 557.4000244140625 + "y": 448.3999938964844 }, { "x": 937, - "y": 597 + "y": 488 }, { "x": 937, - "y": 636.5999755859375 + "y": 527.5999755859375 }, { "x": 916.5999755859375, - "y": 817.7000122070312 + "y": 708.7000122070312 }, { "x": 835, - "y": 866.5 + "y": 757.5 } ], "isCurve": true, @@ -585,44 +585,44 @@ "link": "", "route": [ { - "x": 1430, - "y": 394 + "x": 1418, + "y": 285 }, { - "x": 1466.800048828125, - "y": 448.79998779296875 + "x": 1464.4000244140625, + "y": 339.79998779296875 }, { "x": 1476, - "y": 476.20001220703125 + "y": 367.20001220703125 }, { "x": 1476, - "y": 496.75 + "y": 387.75 }, { "x": 1476, - "y": 517.2990112304688 + "y": 408.29998779296875 }, { "x": 1476, - "y": 557.4000244140625 + "y": 448.3999938964844 }, { "x": 1476, - "y": 597 + "y": 488 }, { "x": 1476, - "y": 636.5999755859375 + "y": 527.5999755859375 }, { "x": 1476, - "y": 817.7000122070312 + "y": 708.7000122070312 }, { "x": 1476, - "y": 866.5 + "y": 757.5 } ], "isCurve": true, @@ -658,19 +658,19 @@ "route": [ { "x": 694.5, - "y": 1029.5 + "y": 920.5 }, { "x": 694.5, - "y": 1084.699951171875 + "y": 975.7000122070312 }, { "x": 804.7000122070312, - "y": 1119.7220458984375 + "y": 1010.7219848632812 }, { "x": 1245.5, - "y": 1204.6099853515625 + "y": 1095.6099853515625 } ], "isCurve": true, @@ -706,19 +706,19 @@ "route": [ { "x": 1476, - "y": 1029.5 + "y": 920.5 }, { "x": 1476, - "y": 1084.699951171875 + "y": 975.7000122070312 }, { "x": 1476, - "y": 1112.300048828125 + "y": 1003.2999877929688 }, { "x": 1476, - "y": 1167.5 + "y": 1058.5 } ], "isCurve": true, @@ -754,19 +754,19 @@ "route": [ { "x": 1245.5, - "y": 1275.1949462890625 + "y": 1166.1949462890625 }, { "x": 500.6990051269531, - "y": 1427.8389892578125 + "y": 1318.8389892578125 }, { "x": 314.5, - "y": 1548.300048828125 + "y": 1439.300048828125 }, { "x": 314.5, - "y": 1603.5 + "y": 1494.5 } ], "isCurve": true, @@ -802,103 +802,103 @@ "route": [ { "x": 1505, - "y": 238 + "y": 175 }, { "x": 2410.60009765625, - "y": 417.6000061035156 + "y": 317.79998779296875 }, { "x": 2637, - "y": 476.20001220703125 + "y": 367.20001220703125 }, { "x": 2637, - "y": 496.75 + "y": 387.75 }, { "x": 2637, - "y": 517.2990112304688 + "y": 408.29998779296875 }, { "x": 2637, - "y": 557.4000244140625 + "y": 448.3999938964844 }, { "x": 2637, - "y": 597 + "y": 488 }, { "x": 2637, - "y": 636.5999755859375 + "y": 527.5999755859375 }, { "x": 2637, - "y": 691.5 + "y": 582.5 }, { "x": 2637, - "y": 734.25 + "y": 625.25 }, { "x": 2637, - "y": 777 + "y": 668 }, { "x": 2637, - "y": 834 + "y": 725 }, { "x": 2637, - "y": 876.75 + "y": 767.75 }, { "x": 2637, - "y": 919.5 + "y": 810.5 }, { "x": 2637, - "y": 978.0999755859375 + "y": 869.0999755859375 }, { "x": 2637, - "y": 1023.25 + "y": 914.25 }, { "x": 2637, - "y": 1068.4000244140625 + "y": 959.4000244140625 }, { "x": 2637, - "y": 1128.5999755859375 + "y": 1019.5999755859375 }, { "x": 2637, - "y": 1173.75 + "y": 1064.75 }, { "x": 2637, - "y": 1218.9000244140625 + "y": 1109.9000244140625 }, { "x": 2637, - "y": 1292.4000244140625 + "y": 1183.4000244140625 }, { "x": 2637, - "y": 1357.5 + "y": 1248.5 }, { "x": 2637, - "y": 1422.5999755859375 + "y": 1313.5999755859375 }, { "x": 2632.800048828125, - "y": 1548.300048828125 + "y": 1439.300048828125 }, { "x": 2616, - "y": 1603.5 + "y": 1494.5 } ], "isCurve": true, @@ -934,19 +934,19 @@ "route": [ { "x": 1707.5, - "y": 1282.843994140625 + "y": 1173.843994140625 }, { "x": 2241.5, - "y": 1429.3680419921875 + "y": 1320.3680419921875 }, { "x": 2394.39990234375, - "y": 1548.300048828125 + "y": 1439.300048828125 }, { "x": 2472, - "y": 1603.5 + "y": 1494.5 } ], "isCurve": true, @@ -982,19 +982,19 @@ "route": [ { "x": 2206.5, - "y": 1029.5 + "y": 920.5 }, { "x": 2206.5, - "y": 1084.699951171875 + "y": 975.7000122070312 }, { "x": 2106.5, - "y": 1119.0999755859375 + "y": 1010.0999755859375 }, { "x": 1706.5, - "y": 1201.5 + "y": 1092.5 } ], "isCurve": true, diff --git a/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg b/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg index 2613fb8b3..4e4ff9f84 100644 --- a/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-theme/dagre/sketch.exp.svg @@ -1,20 +1,20 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts.

-

Internet Banking System

+

Internet Banking System

[Software System]

-

E-mail System

+

E-mail System

[Software System]

The internal Microsoft Exchange e-mail system.

-

Mainframe Banking System

+

Mainframe Banking System

[Software System]

Stores all of the core banking information about customers, accounts, transactions, etc.

-

Web Application

+

Web Application

[Container: Java and Spring MVC]

Delivers the static content and the Internet banking single page application.

-

Single-Page Application

+

Single-Page Application

[Container: JavaScript and Angular]

Provides all of the Internet banking functionality to customers via their web browser.

-

Mobile App

+

Mobile App

[Container: Xamarin]

Provides a limited subset of the Internet banking functionality to customers via their mobile device.

-

API Application

+

API Application

[Container: Java and Spring MVC]

Provides Internet banking functionality via a JSON/HTTPS API.

-

Database

+

Database

[Container: Oracle Database Schema]

Stores user registration information, hashed authentication credentials, access logs, etc.

-
Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] - - - - - - - - - - - - - - - - - - - - +
Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/c4-theme/elk/board.exp.json b/e2etests/testdata/txtar/c4-theme/elk/board.exp.json index 4d6d3ccd8..3d9b2d3b7 100644 --- a/e2etests/testdata/txtar/c4-theme/elk/board.exp.json +++ b/e2etests/testdata/txtar/c4-theme/elk/board.exp.json @@ -19,7 +19,7 @@ "y": 12 }, "width": 415, - "height": 394, + "height": 285, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, @@ -58,7 +58,7 @@ "type": "rectangle", "pos": { "x": 12, - "y": 658 + "y": 549 }, "width": 2218, "height": 1035, @@ -100,7 +100,7 @@ "type": "rectangle", "pos": { "x": 62, - "y": 708 + "y": 599 }, "width": 550, "height": 164, @@ -142,7 +142,7 @@ "type": "rectangle", "pos": { "x": 190, - "y": 1043 + "y": 934 }, "width": 609, "height": 164, @@ -184,7 +184,7 @@ "type": "rectangle", "pos": { "x": 819, - "y": 1043 + "y": 934 }, "width": 707, "height": 164, @@ -226,7 +226,7 @@ "type": "rectangle", "pos": { "x": 942, - "y": 1394 + "y": 1285 }, "width": 461, "height": 164, @@ -268,7 +268,7 @@ "type": "rectangle", "pos": { "x": 1546, - "y": 1043 + "y": 934 }, "width": 634, "height": 164, @@ -310,7 +310,7 @@ "type": "rectangle", "pos": { "x": 1746, - "y": 1895 + "y": 1786 }, "width": 360, "height": 164, @@ -352,7 +352,7 @@ "type": "rectangle", "pos": { "x": 781, - "y": 1895 + "y": 1786 }, "width": 629, "height": 164, @@ -418,19 +418,19 @@ "route": [ { "x": 788, - "y": 406 + "y": 297 }, { "x": 787.75, - "y": 446 + "y": 337 }, { "x": 359.25, - "y": 446 + "y": 337 }, { "x": 359.25, - "y": 708 + "y": 599 } ], "animated": false, @@ -465,11 +465,11 @@ "route": [ { "x": 393, - "y": 872 + "y": 763 }, { "x": 393, - "y": 1043 + "y": 934 } ], "animated": false, @@ -504,19 +504,19 @@ "route": [ { "x": 871, - "y": 406 + "y": 297 }, { "x": 870.75, - "y": 496 + "y": 387 }, { "x": 652, - "y": 496 + "y": 387 }, { "x": 652, - "y": 1043 + "y": 934 } ], "animated": false, @@ -551,11 +551,11 @@ "route": [ { "x": 954, - "y": 406 + "y": 297 }, { "x": 953.75, - "y": 1043 + "y": 934 } ], "animated": false, @@ -590,19 +590,19 @@ "route": [ { "x": 494.5, - "y": 1207 + "y": 1098 }, { "x": 494.5, - "y": 1354 + "y": 1245 }, { "x": 1057.25, - "y": 1354 + "y": 1245 }, { "x": 1057.25, - "y": 1394 + "y": 1285 } ], "animated": false, @@ -637,11 +637,11 @@ "route": [ { "x": 1172.5, - "y": 1207 + "y": 1098 }, { "x": 1172.5, - "y": 1394 + "y": 1285 } ], "animated": false, @@ -676,11 +676,11 @@ "route": [ { "x": 1095.666015625, - "y": 1558 + "y": 1449 }, { "x": 1095.666015625, - "y": 1895 + "y": 1786 } ], "animated": false, @@ -715,27 +715,27 @@ "route": [ { "x": 1037, - "y": 406 + "y": 297 }, { "x": 1036.75, - "y": 446 + "y": 337 }, { "x": 2303.5, - "y": 446 + "y": 337 }, { "x": 2303.5, - "y": 1855 + "y": 1746 }, { "x": 1986.8330078125, - "y": 1855 + "y": 1746 }, { "x": 1986.8330078125, - "y": 1895 + "y": 1786 } ], "animated": false, @@ -770,19 +770,19 @@ "route": [ { "x": 1249.3330078125, - "y": 1558 + "y": 1449 }, { "x": 1249.3330078125, - "y": 1855 + "y": 1746 }, { "x": 1866.8330078125, - "y": 1855 + "y": 1746 }, { "x": 1866.8330078125, - "y": 1895 + "y": 1786 } ], "animated": false, @@ -817,19 +817,19 @@ "route": [ { "x": 1863, - "y": 1207 + "y": 1098 }, { "x": 1863, - "y": 1354 + "y": 1245 }, { "x": 1287.75, - "y": 1354 + "y": 1245 }, { "x": 1287.75, - "y": 1394 + "y": 1285 } ], "animated": false, diff --git a/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg b/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg index 31b06adcb..dc7185d81 100644 --- a/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/c4-theme/elk/sketch.exp.svg @@ -1,20 +1,20 @@ -

Personal Banking Customer

+

Personal Banking Customer

[person]

A customer of the bank, with personal bank accounts.

-

Internet Banking System

+

Internet Banking System

[Software System]

-

E-mail System

+

E-mail System

[Software System]

The internal Microsoft Exchange e-mail system.

-

Mainframe Banking System

+

Mainframe Banking System

[Software System]

Stores all of the core banking information about customers, accounts, transactions, etc.

-

Web Application

+

Web Application

[Container: Java and Spring MVC]

Delivers the static content and the Internet banking single page application.

-

Single-Page Application

+

Single-Page Application

[Container: JavaScript and Angular]

Provides all of the Internet banking functionality to customers via their web browser.

-

Mobile App

+

Mobile App

[Container: Xamarin]

Provides a limited subset of the Internet banking functionality to customers via their mobile device.

-

API Application

+

API Application

[Container: Java and Spring MVC]

Provides Internet banking functionality via a JSON/HTTPS API.

-

Database

+

Database

[Container: Oracle Database Schema]

Stores user registration information, hashed authentication credentials, access logs, etc.

-
Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] - - - - - - - - - - - - - - - - - - - - +
Visits bigbank.com/ib using[HTTPS]Delivers to the customer's web browserViews account balances, and makes payments usingViews account balances, and makes payments usingMakes API calls to[JSON/HTTPS]Makes API calls to[JSON/HTTPS]Makes API calls to[XML/HTTPS]Sends e-mails toSends e-mail using Reads from and writes to[SQL/TCP] + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/e2etests/testdata/txtar/small-c4-person/dagre/board.exp.json b/e2etests/testdata/txtar/small-c4-person/dagre/board.exp.json index e0d8c0959..3b7bdaf8e 100644 --- a/e2etests/testdata/txtar/small-c4-person/dagre/board.exp.json +++ b/e2etests/testdata/txtar/small-c4-person/dagre/board.exp.json @@ -19,7 +19,7 @@ "y": 0 }, "width": 180, - "height": 94, + "height": 85, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, diff --git a/e2etests/testdata/txtar/small-c4-person/dagre/sketch.exp.svg b/e2etests/testdata/txtar/small-c4-person/dagre/sketch.exp.svg index 009c53f4e..6f92c0949 100644 --- a/e2etests/testdata/txtar/small-c4-person/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/small-c4-person/dagre/sketch.exp.svg @@ -1,9 +1,9 @@ -c4-person - - + .d2-680955506 .fill-N1{fill:#0A0F25;} + .d2-680955506 .fill-N2{fill:#676C7E;} + .d2-680955506 .fill-N3{fill:#9499AB;} + .d2-680955506 .fill-N4{fill:#CFD2DD;} + .d2-680955506 .fill-N5{fill:#DEE1EB;} + .d2-680955506 .fill-N6{fill:#EEF1F8;} + .d2-680955506 .fill-N7{fill:#FFFFFF;} + .d2-680955506 .fill-B1{fill:#0D32B2;} + .d2-680955506 .fill-B2{fill:#0D32B2;} + .d2-680955506 .fill-B3{fill:#E3E9FD;} + .d2-680955506 .fill-B4{fill:#E3E9FD;} + .d2-680955506 .fill-B5{fill:#EDF0FD;} + .d2-680955506 .fill-B6{fill:#F7F8FE;} + .d2-680955506 .fill-AA2{fill:#4A6FF3;} + .d2-680955506 .fill-AA4{fill:#EDF0FD;} + .d2-680955506 .fill-AA5{fill:#F7F8FE;} + .d2-680955506 .fill-AB4{fill:#EDF0FD;} + .d2-680955506 .fill-AB5{fill:#F7F8FE;} + .d2-680955506 .stroke-N1{stroke:#0A0F25;} + .d2-680955506 .stroke-N2{stroke:#676C7E;} + .d2-680955506 .stroke-N3{stroke:#9499AB;} + .d2-680955506 .stroke-N4{stroke:#CFD2DD;} + .d2-680955506 .stroke-N5{stroke:#DEE1EB;} + .d2-680955506 .stroke-N6{stroke:#EEF1F8;} + .d2-680955506 .stroke-N7{stroke:#FFFFFF;} + .d2-680955506 .stroke-B1{stroke:#0D32B2;} + .d2-680955506 .stroke-B2{stroke:#0D32B2;} + .d2-680955506 .stroke-B3{stroke:#E3E9FD;} + .d2-680955506 .stroke-B4{stroke:#E3E9FD;} + .d2-680955506 .stroke-B5{stroke:#EDF0FD;} + .d2-680955506 .stroke-B6{stroke:#F7F8FE;} + .d2-680955506 .stroke-AA2{stroke:#4A6FF3;} + .d2-680955506 .stroke-AA4{stroke:#EDF0FD;} + .d2-680955506 .stroke-AA5{stroke:#F7F8FE;} + .d2-680955506 .stroke-AB4{stroke:#EDF0FD;} + .d2-680955506 .stroke-AB5{stroke:#F7F8FE;} + .d2-680955506 .background-color-N1{background-color:#0A0F25;} + .d2-680955506 .background-color-N2{background-color:#676C7E;} + .d2-680955506 .background-color-N3{background-color:#9499AB;} + .d2-680955506 .background-color-N4{background-color:#CFD2DD;} + .d2-680955506 .background-color-N5{background-color:#DEE1EB;} + .d2-680955506 .background-color-N6{background-color:#EEF1F8;} + .d2-680955506 .background-color-N7{background-color:#FFFFFF;} + .d2-680955506 .background-color-B1{background-color:#0D32B2;} + .d2-680955506 .background-color-B2{background-color:#0D32B2;} + .d2-680955506 .background-color-B3{background-color:#E3E9FD;} + .d2-680955506 .background-color-B4{background-color:#E3E9FD;} + .d2-680955506 .background-color-B5{background-color:#EDF0FD;} + .d2-680955506 .background-color-B6{background-color:#F7F8FE;} + .d2-680955506 .background-color-AA2{background-color:#4A6FF3;} + .d2-680955506 .background-color-AA4{background-color:#EDF0FD;} + .d2-680955506 .background-color-AA5{background-color:#F7F8FE;} + .d2-680955506 .background-color-AB4{background-color:#EDF0FD;} + .d2-680955506 .background-color-AB5{background-color:#F7F8FE;} + .d2-680955506 .color-N1{color:#0A0F25;} + .d2-680955506 .color-N2{color:#676C7E;} + .d2-680955506 .color-N3{color:#9499AB;} + .d2-680955506 .color-N4{color:#CFD2DD;} + .d2-680955506 .color-N5{color:#DEE1EB;} + .d2-680955506 .color-N6{color:#EEF1F8;} + .d2-680955506 .color-N7{color:#FFFFFF;} + .d2-680955506 .color-B1{color:#0D32B2;} + .d2-680955506 .color-B2{color:#0D32B2;} + .d2-680955506 .color-B3{color:#E3E9FD;} + .d2-680955506 .color-B4{color:#E3E9FD;} + .d2-680955506 .color-B5{color:#EDF0FD;} + .d2-680955506 .color-B6{color:#F7F8FE;} + .d2-680955506 .color-AA2{color:#4A6FF3;} + .d2-680955506 .color-AA4{color:#EDF0FD;} + .d2-680955506 .color-AA5{color:#F7F8FE;} + .d2-680955506 .color-AB4{color:#EDF0FD;} + .d2-680955506 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-680955506);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-680955506);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-680955506);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-680955506);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-680955506);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-680955506);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-680955506);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-680955506);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>c4-person + + \ No newline at end of file diff --git a/e2etests/testdata/txtar/small-c4-person/elk/board.exp.json b/e2etests/testdata/txtar/small-c4-person/elk/board.exp.json index 56a15e872..342178f5f 100644 --- a/e2etests/testdata/txtar/small-c4-person/elk/board.exp.json +++ b/e2etests/testdata/txtar/small-c4-person/elk/board.exp.json @@ -19,7 +19,7 @@ "y": 12 }, "width": 180, - "height": 94, + "height": 85, "opacity": 1, "strokeDash": 0, "strokeWidth": 2, diff --git a/e2etests/testdata/txtar/small-c4-person/elk/sketch.exp.svg b/e2etests/testdata/txtar/small-c4-person/elk/sketch.exp.svg index 4de020608..d41c6027d 100644 --- a/e2etests/testdata/txtar/small-c4-person/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/small-c4-person/elk/sketch.exp.svg @@ -1,9 +1,9 @@ -c4-person - - + .d2-2607365194 .fill-N1{fill:#0A0F25;} + .d2-2607365194 .fill-N2{fill:#676C7E;} + .d2-2607365194 .fill-N3{fill:#9499AB;} + .d2-2607365194 .fill-N4{fill:#CFD2DD;} + .d2-2607365194 .fill-N5{fill:#DEE1EB;} + .d2-2607365194 .fill-N6{fill:#EEF1F8;} + .d2-2607365194 .fill-N7{fill:#FFFFFF;} + .d2-2607365194 .fill-B1{fill:#0D32B2;} + .d2-2607365194 .fill-B2{fill:#0D32B2;} + .d2-2607365194 .fill-B3{fill:#E3E9FD;} + .d2-2607365194 .fill-B4{fill:#E3E9FD;} + .d2-2607365194 .fill-B5{fill:#EDF0FD;} + .d2-2607365194 .fill-B6{fill:#F7F8FE;} + .d2-2607365194 .fill-AA2{fill:#4A6FF3;} + .d2-2607365194 .fill-AA4{fill:#EDF0FD;} + .d2-2607365194 .fill-AA5{fill:#F7F8FE;} + .d2-2607365194 .fill-AB4{fill:#EDF0FD;} + .d2-2607365194 .fill-AB5{fill:#F7F8FE;} + .d2-2607365194 .stroke-N1{stroke:#0A0F25;} + .d2-2607365194 .stroke-N2{stroke:#676C7E;} + .d2-2607365194 .stroke-N3{stroke:#9499AB;} + .d2-2607365194 .stroke-N4{stroke:#CFD2DD;} + .d2-2607365194 .stroke-N5{stroke:#DEE1EB;} + .d2-2607365194 .stroke-N6{stroke:#EEF1F8;} + .d2-2607365194 .stroke-N7{stroke:#FFFFFF;} + .d2-2607365194 .stroke-B1{stroke:#0D32B2;} + .d2-2607365194 .stroke-B2{stroke:#0D32B2;} + .d2-2607365194 .stroke-B3{stroke:#E3E9FD;} + .d2-2607365194 .stroke-B4{stroke:#E3E9FD;} + .d2-2607365194 .stroke-B5{stroke:#EDF0FD;} + .d2-2607365194 .stroke-B6{stroke:#F7F8FE;} + .d2-2607365194 .stroke-AA2{stroke:#4A6FF3;} + .d2-2607365194 .stroke-AA4{stroke:#EDF0FD;} + .d2-2607365194 .stroke-AA5{stroke:#F7F8FE;} + .d2-2607365194 .stroke-AB4{stroke:#EDF0FD;} + .d2-2607365194 .stroke-AB5{stroke:#F7F8FE;} + .d2-2607365194 .background-color-N1{background-color:#0A0F25;} + .d2-2607365194 .background-color-N2{background-color:#676C7E;} + .d2-2607365194 .background-color-N3{background-color:#9499AB;} + .d2-2607365194 .background-color-N4{background-color:#CFD2DD;} + .d2-2607365194 .background-color-N5{background-color:#DEE1EB;} + .d2-2607365194 .background-color-N6{background-color:#EEF1F8;} + .d2-2607365194 .background-color-N7{background-color:#FFFFFF;} + .d2-2607365194 .background-color-B1{background-color:#0D32B2;} + .d2-2607365194 .background-color-B2{background-color:#0D32B2;} + .d2-2607365194 .background-color-B3{background-color:#E3E9FD;} + .d2-2607365194 .background-color-B4{background-color:#E3E9FD;} + .d2-2607365194 .background-color-B5{background-color:#EDF0FD;} + .d2-2607365194 .background-color-B6{background-color:#F7F8FE;} + .d2-2607365194 .background-color-AA2{background-color:#4A6FF3;} + .d2-2607365194 .background-color-AA4{background-color:#EDF0FD;} + .d2-2607365194 .background-color-AA5{background-color:#F7F8FE;} + .d2-2607365194 .background-color-AB4{background-color:#EDF0FD;} + .d2-2607365194 .background-color-AB5{background-color:#F7F8FE;} + .d2-2607365194 .color-N1{color:#0A0F25;} + .d2-2607365194 .color-N2{color:#676C7E;} + .d2-2607365194 .color-N3{color:#9499AB;} + .d2-2607365194 .color-N4{color:#CFD2DD;} + .d2-2607365194 .color-N5{color:#DEE1EB;} + .d2-2607365194 .color-N6{color:#EEF1F8;} + .d2-2607365194 .color-N7{color:#FFFFFF;} + .d2-2607365194 .color-B1{color:#0D32B2;} + .d2-2607365194 .color-B2{color:#0D32B2;} + .d2-2607365194 .color-B3{color:#E3E9FD;} + .d2-2607365194 .color-B4{color:#E3E9FD;} + .d2-2607365194 .color-B5{color:#EDF0FD;} + .d2-2607365194 .color-B6{color:#F7F8FE;} + .d2-2607365194 .color-AA2{color:#4A6FF3;} + .d2-2607365194 .color-AA4{color:#EDF0FD;} + .d2-2607365194 .color-AA5{color:#F7F8FE;} + .d2-2607365194 .color-AB4{color:#EDF0FD;} + .d2-2607365194 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-2607365194);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2607365194);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2607365194);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2607365194);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2607365194);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2607365194);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2607365194);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2607365194);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>c4-person + + \ No newline at end of file diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt index 89d18ce17..1b7eaca96 100644 --- a/e2etests/txtar.txt +++ b/e2etests/txtar.txt @@ -1221,3 +1221,47 @@ A customer of the bank, with personal bank accounts shape: c4-person label.near: bottom-center } + + customer1: |md + ## Personal Banking Customer + [person] + + A customer of the bank, with pekkrsonal bank ccountskks. +| { + shape: c4-person +} + +customer2: |md + ## Personal Banking Customerk + [person] + + A customer of the bank, with pekkrsonal bank accountskks. + + A customer of the bank, with pekkrsonal bank accountskks. + + A customer of the bank, with pekkrsonal bank accountskks. +| { + shape: c4-person +} + +customer3: |md + ## Personal Banking Customer + [person] + + A customer of the bank, with pekkrsonal bank accountskks. +| { + shape: c4-person +} + +customer4: |md + ## Personal Banking Customer + [person] + + A customer of the bank, with pekkrsonal bank accountskks. +| { + shape: c4-person +} + +customer1 -> customer2 -> customer3 -> customer4 +customer4 -> customer1 -> customer3 -> customer2 + diff --git a/lib/shape/shape_c4_person.go b/lib/shape/shape_c4_person.go index 99d47b07d..a9b7b9560 100644 --- a/lib/shape/shape_c4_person.go +++ b/lib/shape/shape_c4_person.go @@ -32,26 +32,24 @@ const ( func (s shapeC4Person) GetInnerBox() *geo.Box { width := s.Box.Width - height := s.Box.Height - headRadius := width * 0.22 - headCenterY := height * 0.18 + // Reduce head radius from 22% to 18% of width + headRadius := width * 0.18 + headCenterY := headRadius bodyTop := headCenterY + headRadius*0.8 - // Use a small fixed percentage instead of the full corner radius - horizontalPadding := width * 0.05 // 5% padding + // Horizontal padding = 5% of width + horizontalPadding := width * 0.05 + + // Vertical padding = 3% of width (not height) + vertPadding := width * 0.03 tl := s.Box.TopLeft.Copy() tl.X += horizontalPadding + tl.Y += bodyTop + vertPadding - // Add vertical padding - tl.Y += bodyTop + height*0.03 - - // Width minus padding on both sides innerWidth := width - (horizontalPadding * 2) - - // Add bottom padding - innerHeight := height - (tl.Y - s.Box.TopLeft.Y) - (height * 0.03) + innerHeight := s.Box.Height - bodyTop - (vertPadding * 2) return geo.NewBox(tl, innerWidth, innerHeight) } @@ -62,8 +60,10 @@ func bodyPath(box *geo.Box) *svg.SvgPathContext { pc := svg.NewSVGPathContext(box.TopLeft, 1, 1) - headRadius := width * 0.22 - headCenterY := height * 0.18 + // Reduce head radius from 22% to 18% of width + headRadius := width * 0.18 + // Adjust headCenterY to ensure head fits within box + headCenterY := headRadius bodyTop := headCenterY + headRadius*0.8 bodyWidth := width bodyHeight := height - bodyTop @@ -88,13 +88,13 @@ func bodyPath(box *geo.Box) *svg.SvgPathContext { func headPath(box *geo.Box) *svg.SvgPathContext { width := box.Width - height := box.Height - pc := svg.NewSVGPathContext(box.TopLeft, 1, 1) - headRadius := width * 0.22 + // Reduce head radius from 22% to 18% of width + headRadius := width * 0.18 headCenterX := width / 2 - headCenterY := height * 0.18 + // Adjust headCenterY to ensure head fits within box + headCenterY := headRadius pc.StartAt(pc.Absolute(headCenterX, headCenterY-headRadius)) @@ -123,13 +123,13 @@ func headPath(box *geo.Box) *svg.SvgPathContext { func (s shapeC4Person) Perimeter() []geo.Intersectable { width := s.Box.Width - height := s.Box.Height bodyPerimeter := bodyPath(s.Box).Path - headRadius := width * 0.22 + // Reduce head radius from 22% to 18% of width + headRadius := width * 0.18 headCenterX := s.Box.TopLeft.X + width/2 - headCenterY := s.Box.TopLeft.Y + height*0.18 + headCenterY := s.Box.TopLeft.Y + headRadius headCenter := geo.NewPoint(headCenterX, headCenterY) headEllipse := geo.NewEllipse(headCenter, headRadius, headRadius) @@ -145,28 +145,28 @@ func (s shapeC4Person) GetSVGPathData() []string { } func (s shapeC4Person) GetDimensionsToFit(width, height, paddingX, paddingY float64) (float64, float64) { - contentWidth := width + paddingX - contentHeight := height + paddingY + // Start with content dimensions + padding + totalWidth := width + paddingX + totalHeight := height + paddingY - // Account for 10% total horizontal padding (5% on each side) - totalWidth := contentWidth / 0.9 - headRadius := totalWidth * 0.22 - headCenterY := totalWidth * 0.18 - bodyTop := headCenterY + headRadius*0.8 + // Reduce head radius from 22% to 18% of width + headRadius := totalWidth * 0.18 - // Include vertical padding from GetInnerBox - verticalPadding := totalWidth * 0.06 // 3% top + 3% bottom - totalHeight := contentHeight + bodyTop + verticalPadding + // Head center is now at headRadius from the top + headCenterY := headRadius - // Calculate minimum height based on actual proportions - // Head height: 2 * headRadius = 0.44 * width - // Body should be at least half the width - minHeight := totalWidth * 0.95 // Reduced from 1.2 - if totalHeight < minHeight { - totalHeight = minHeight - } + // Body starts at headCenterY + headRadius*0.8 + bodyTopPosition := headCenterY + headRadius*0.8 + // Add space for body (head is now fully contained) + totalHeight += bodyTopPosition + + // Horizontal padding is handled in GetInnerBox (5% on each side) + totalWidth /= 0.9 + + // Prevent the shape's aspect ratio from becoming too extreme totalWidth, totalHeight = LimitAR(totalWidth, totalHeight, C4_PERSON_AR_LIMIT) + return math.Ceil(totalWidth), math.Ceil(totalHeight) }