Merge pull request #1189 from gavin-ts/fix-grid-panic

Fix grid panic with fewer objects than rows
This commit is contained in:
gavin-ts 2023-04-12 14:31:05 -07:00 committed by GitHub
commit 4f91c99f52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 987 additions and 0 deletions

View file

@ -8,3 +8,4 @@
- Fixes grid layouts not applying on objects with a constant near [#1173](https://github.com/terrastruct/d2/issues/1173) - Fixes grid layouts not applying on objects with a constant near [#1173](https://github.com/terrastruct/d2/issues/1173)
- Fixes markdown header rendering in firefox and safari [#1177](https://github.com/terrastruct/d2/issues/1177) - Fixes markdown header rendering in firefox and safari [#1177](https://github.com/terrastruct/d2/issues/1177)
- Fixes a grid layout panic when there are fewer objects than rows [#1189](https://github.com/terrastruct/d2/issues/1189)

View file

@ -64,6 +64,14 @@ func newGridDiagram(root *d2graph.Object) *gridDiagram {
} }
} else if gd.columns == 0 { } else if gd.columns == 0 {
gd.rowDirected = true gd.rowDirected = true
// we can only make N rows with N objects
if len(gd.objects) < gd.rows {
gd.rows = len(gd.objects)
}
} else {
if len(gd.objects) < gd.columns {
gd.columns = len(gd.objects)
}
} }
return &gd return &gd

View file

@ -681,6 +681,28 @@ explanation: |md
And other normal markdown stuff And other normal markdown stuff
| |
`,
},
{
name: "grid_panic",
script: `
2 rows 1 obj: {
grid-rows: 2
one
}
3 rows 2 obj: {
grid-rows: 3
one
two
}
4 columns 2 obj: {
grid-columns: 4
one
two
}
`, `,
}, },
} }

View file

@ -0,0 +1,376 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "2 rows 1 obj",
"type": "rectangle",
"pos": {
"x": 0,
"y": 53
},
"width": 192,
"height": 186,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "2 rows 1 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 137,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "2 rows 1 obj.one",
"type": "rectangle",
"pos": {
"x": 60,
"y": 113
},
"width": 72,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "3 rows 2 obj",
"type": "rectangle",
"pos": {
"x": 252,
"y": 0
},
"width": 193,
"height": 292,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "3 rows 2 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 138,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "3 rows 2 obj.one",
"type": "rectangle",
"pos": {
"x": 312,
"y": 60
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "3 rows 2 obj.two",
"type": "rectangle",
"pos": {
"x": 312,
"y": 166
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "two",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 28,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "4 columns 2 obj",
"type": "rectangle",
"pos": {
"x": 505,
"y": 53
},
"width": 305,
"height": 186,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "4 columns 2 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 181,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "4 columns 2 obj.one",
"type": "rectangle",
"pos": {
"x": 565,
"y": 113
},
"width": 72,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "4 columns 2 obj.two",
"type": "rectangle",
"pos": {
"x": 677,
"y": 113
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "two",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 28,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

View file

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.4.0-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 812 294"><svg id="d2-svg" class="d2-2991480567" width="812" height="294" viewBox="-1 -1 812 294"><rect x="-1.000000" y="-1.000000" width="812.000000" height="294.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-2991480567 .text {
font-family: "d2-2991480567-font-regular";
}
@font-face {
font-family: d2-2991480567-font-regular;
src: url("data:application/font-woff;base64,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");
}
.d2-2991480567 .text-bold {
font-family: "d2-2991480567-font-bold";
}
@font-face {
font-family: d2-2991480567-font-bold;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-2991480567 .fill-N1{fill:#0A0F25;}
.d2-2991480567 .fill-N2{fill:#676C7E;}
.d2-2991480567 .fill-N3{fill:#9499AB;}
.d2-2991480567 .fill-N4{fill:#CFD2DD;}
.d2-2991480567 .fill-N5{fill:#DEE1EB;}
.d2-2991480567 .fill-N6{fill:#EEF1F8;}
.d2-2991480567 .fill-N7{fill:#FFFFFF;}
.d2-2991480567 .fill-B1{fill:#0D32B2;}
.d2-2991480567 .fill-B2{fill:#0D32B2;}
.d2-2991480567 .fill-B3{fill:#E3E9FD;}
.d2-2991480567 .fill-B4{fill:#E3E9FD;}
.d2-2991480567 .fill-B5{fill:#EDF0FD;}
.d2-2991480567 .fill-B6{fill:#F7F8FE;}
.d2-2991480567 .fill-AA2{fill:#4A6FF3;}
.d2-2991480567 .fill-AA4{fill:#EDF0FD;}
.d2-2991480567 .fill-AA5{fill:#F7F8FE;}
.d2-2991480567 .fill-AB4{fill:#EDF0FD;}
.d2-2991480567 .fill-AB5{fill:#F7F8FE;}
.d2-2991480567 .stroke-N1{stroke:#0A0F25;}
.d2-2991480567 .stroke-N2{stroke:#676C7E;}
.d2-2991480567 .stroke-N3{stroke:#9499AB;}
.d2-2991480567 .stroke-N4{stroke:#CFD2DD;}
.d2-2991480567 .stroke-N5{stroke:#DEE1EB;}
.d2-2991480567 .stroke-N6{stroke:#EEF1F8;}
.d2-2991480567 .stroke-N7{stroke:#FFFFFF;}
.d2-2991480567 .stroke-B1{stroke:#0D32B2;}
.d2-2991480567 .stroke-B2{stroke:#0D32B2;}
.d2-2991480567 .stroke-B3{stroke:#E3E9FD;}
.d2-2991480567 .stroke-B4{stroke:#E3E9FD;}
.d2-2991480567 .stroke-B5{stroke:#EDF0FD;}
.d2-2991480567 .stroke-B6{stroke:#F7F8FE;}
.d2-2991480567 .stroke-AA2{stroke:#4A6FF3;}
.d2-2991480567 .stroke-AA4{stroke:#EDF0FD;}
.d2-2991480567 .stroke-AA5{stroke:#F7F8FE;}
.d2-2991480567 .stroke-AB4{stroke:#EDF0FD;}
.d2-2991480567 .stroke-AB5{stroke:#F7F8FE;}
.d2-2991480567 .background-color-N1{background-color:#0A0F25;}
.d2-2991480567 .background-color-N2{background-color:#676C7E;}
.d2-2991480567 .background-color-N3{background-color:#9499AB;}
.d2-2991480567 .background-color-N4{background-color:#CFD2DD;}
.d2-2991480567 .background-color-N5{background-color:#DEE1EB;}
.d2-2991480567 .background-color-N6{background-color:#EEF1F8;}
.d2-2991480567 .background-color-N7{background-color:#FFFFFF;}
.d2-2991480567 .background-color-B1{background-color:#0D32B2;}
.d2-2991480567 .background-color-B2{background-color:#0D32B2;}
.d2-2991480567 .background-color-B3{background-color:#E3E9FD;}
.d2-2991480567 .background-color-B4{background-color:#E3E9FD;}
.d2-2991480567 .background-color-B5{background-color:#EDF0FD;}
.d2-2991480567 .background-color-B6{background-color:#F7F8FE;}
.d2-2991480567 .background-color-AA2{background-color:#4A6FF3;}
.d2-2991480567 .background-color-AA4{background-color:#EDF0FD;}
.d2-2991480567 .background-color-AA5{background-color:#F7F8FE;}
.d2-2991480567 .background-color-AB4{background-color:#EDF0FD;}
.d2-2991480567 .background-color-AB5{background-color:#F7F8FE;}
.d2-2991480567 .color-N1{color:#0A0F25;}
.d2-2991480567 .color-N2{color:#676C7E;}
.d2-2991480567 .color-N3{color:#9499AB;}
.d2-2991480567 .color-N4{color:#CFD2DD;}
.d2-2991480567 .color-N5{color:#DEE1EB;}
.d2-2991480567 .color-N6{color:#EEF1F8;}
.d2-2991480567 .color-N7{color:#FFFFFF;}
.d2-2991480567 .color-B1{color:#0D32B2;}
.d2-2991480567 .color-B2{color:#0D32B2;}
.d2-2991480567 .color-B3{color:#E3E9FD;}
.d2-2991480567 .color-B4{color:#E3E9FD;}
.d2-2991480567 .color-B5{color:#EDF0FD;}
.d2-2991480567 .color-B6{color:#F7F8FE;}
.d2-2991480567 .color-AA2{color:#4A6FF3;}
.d2-2991480567 .color-AA4{color:#EDF0FD;}
.d2-2991480567 .color-AA5{color:#F7F8FE;}
.d2-2991480567 .color-AB4{color:#EDF0FD;}
.d2-2991480567 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="2 rows 1 obj"><g class="shape" ><rect x="0.000000" y="53.000000" width="192.000000" height="186.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="96.000000" y="86.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">2 rows 1 obj</text></g><g id="3 rows 2 obj"><g class="shape" ><rect x="252.000000" y="0.000000" width="193.000000" height="292.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="348.500000" y="33.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">3 rows 2 obj</text></g><g id="4 columns 2 obj"><g class="shape" ><rect x="505.000000" y="53.000000" width="305.000000" height="186.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="657.500000" y="86.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">4 columns 2 obj</text></g><g id="2 rows 1 obj.one"><g class="shape" ><rect x="60.000000" y="113.000000" width="72.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="96.000000" y="151.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="3 rows 2 obj.one"><g class="shape" ><rect x="312.000000" y="60.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="348.500000" y="98.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="3 rows 2 obj.two"><g class="shape" ><rect x="312.000000" y="166.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="348.500000" y="204.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">two</text></g><g id="4 columns 2 obj.one"><g class="shape" ><rect x="565.000000" y="113.000000" width="72.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="601.000000" y="151.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="4 columns 2 obj.two"><g class="shape" ><rect x="677.000000" y="113.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="713.500000" y="151.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">two</text></g><mask id="d2-2991480567" maskUnits="userSpaceOnUse" x="-1" y="-1" width="812" height="294">
<rect x="-1" y="-1" width="812" height="294" fill="white"></rect>
</mask></svg></svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,376 @@
{
"name": "",
"isFolderOnly": false,
"fontFamily": "SourceSansPro",
"shapes": [
{
"id": "2 rows 1 obj",
"type": "rectangle",
"pos": {
"x": 12,
"y": 65
},
"width": 192,
"height": 186,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "2 rows 1 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 137,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "2 rows 1 obj.one",
"type": "rectangle",
"pos": {
"x": 72,
"y": 125
},
"width": 72,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "3 rows 2 obj",
"type": "rectangle",
"pos": {
"x": 224,
"y": 12
},
"width": 193,
"height": 292,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "3 rows 2 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 138,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "3 rows 2 obj.one",
"type": "rectangle",
"pos": {
"x": 284,
"y": 72
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "3 rows 2 obj.two",
"type": "rectangle",
"pos": {
"x": 284,
"y": 178
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "two",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 28,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "4 columns 2 obj",
"type": "rectangle",
"pos": {
"x": 437,
"y": 65
},
"width": 305,
"height": 186,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B4",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "4 columns 2 obj",
"fontSize": 28,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 181,
"labelHeight": 36,
"labelPosition": "INSIDE_TOP_CENTER",
"zIndex": 0,
"level": 1
},
{
"id": "4 columns 2 obj.one",
"type": "rectangle",
"pos": {
"x": 497,
"y": 125
},
"width": 72,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "one",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 27,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
},
{
"id": "4 columns 2 obj.two",
"type": "rectangle",
"pos": {
"x": 609,
"y": 125
},
"width": 73,
"height": 66,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "two",
"fontSize": 16,
"fontFamily": "DEFAULT",
"language": "",
"color": "N1",
"italic": false,
"bold": true,
"underline": false,
"labelWidth": 28,
"labelHeight": 21,
"labelPosition": "INSIDE_MIDDLE_CENTER",
"zIndex": 0,
"level": 2
}
],
"connections": [],
"root": {
"id": "",
"type": "",
"pos": {
"x": 0,
"y": 0
},
"width": 0,
"height": 0,
"opacity": 0,
"strokeDash": 0,
"strokeWidth": 0,
"borderRadius": 0,
"fill": "N7",
"stroke": "",
"shadow": false,
"3d": false,
"multiple": false,
"double-border": false,
"tooltip": "",
"link": "",
"icon": null,
"iconPosition": "",
"blend": false,
"fields": null,
"methods": null,
"columns": null,
"label": "",
"fontSize": 0,
"fontFamily": "",
"language": "",
"color": "",
"italic": false,
"bold": false,
"underline": false,
"labelWidth": 0,
"labelHeight": 0,
"zIndex": 0,
"level": 0
}
}

View file

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" d2Version="v0.4.0-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 732 294"><svg id="d2-svg" class="d2-3248084509" width="732" height="294" viewBox="11 11 732 294"><rect x="11.000000" y="11.000000" width="732.000000" height="294.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-3248084509 .text {
font-family: "d2-3248084509-font-regular";
}
@font-face {
font-family: d2-3248084509-font-regular;
src: url("data:application/font-woff;base64,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");
}
.d2-3248084509 .text-bold {
font-family: "d2-3248084509-font-bold";
}
@font-face {
font-family: d2-3248084509-font-bold;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-3248084509 .fill-N1{fill:#0A0F25;}
.d2-3248084509 .fill-N2{fill:#676C7E;}
.d2-3248084509 .fill-N3{fill:#9499AB;}
.d2-3248084509 .fill-N4{fill:#CFD2DD;}
.d2-3248084509 .fill-N5{fill:#DEE1EB;}
.d2-3248084509 .fill-N6{fill:#EEF1F8;}
.d2-3248084509 .fill-N7{fill:#FFFFFF;}
.d2-3248084509 .fill-B1{fill:#0D32B2;}
.d2-3248084509 .fill-B2{fill:#0D32B2;}
.d2-3248084509 .fill-B3{fill:#E3E9FD;}
.d2-3248084509 .fill-B4{fill:#E3E9FD;}
.d2-3248084509 .fill-B5{fill:#EDF0FD;}
.d2-3248084509 .fill-B6{fill:#F7F8FE;}
.d2-3248084509 .fill-AA2{fill:#4A6FF3;}
.d2-3248084509 .fill-AA4{fill:#EDF0FD;}
.d2-3248084509 .fill-AA5{fill:#F7F8FE;}
.d2-3248084509 .fill-AB4{fill:#EDF0FD;}
.d2-3248084509 .fill-AB5{fill:#F7F8FE;}
.d2-3248084509 .stroke-N1{stroke:#0A0F25;}
.d2-3248084509 .stroke-N2{stroke:#676C7E;}
.d2-3248084509 .stroke-N3{stroke:#9499AB;}
.d2-3248084509 .stroke-N4{stroke:#CFD2DD;}
.d2-3248084509 .stroke-N5{stroke:#DEE1EB;}
.d2-3248084509 .stroke-N6{stroke:#EEF1F8;}
.d2-3248084509 .stroke-N7{stroke:#FFFFFF;}
.d2-3248084509 .stroke-B1{stroke:#0D32B2;}
.d2-3248084509 .stroke-B2{stroke:#0D32B2;}
.d2-3248084509 .stroke-B3{stroke:#E3E9FD;}
.d2-3248084509 .stroke-B4{stroke:#E3E9FD;}
.d2-3248084509 .stroke-B5{stroke:#EDF0FD;}
.d2-3248084509 .stroke-B6{stroke:#F7F8FE;}
.d2-3248084509 .stroke-AA2{stroke:#4A6FF3;}
.d2-3248084509 .stroke-AA4{stroke:#EDF0FD;}
.d2-3248084509 .stroke-AA5{stroke:#F7F8FE;}
.d2-3248084509 .stroke-AB4{stroke:#EDF0FD;}
.d2-3248084509 .stroke-AB5{stroke:#F7F8FE;}
.d2-3248084509 .background-color-N1{background-color:#0A0F25;}
.d2-3248084509 .background-color-N2{background-color:#676C7E;}
.d2-3248084509 .background-color-N3{background-color:#9499AB;}
.d2-3248084509 .background-color-N4{background-color:#CFD2DD;}
.d2-3248084509 .background-color-N5{background-color:#DEE1EB;}
.d2-3248084509 .background-color-N6{background-color:#EEF1F8;}
.d2-3248084509 .background-color-N7{background-color:#FFFFFF;}
.d2-3248084509 .background-color-B1{background-color:#0D32B2;}
.d2-3248084509 .background-color-B2{background-color:#0D32B2;}
.d2-3248084509 .background-color-B3{background-color:#E3E9FD;}
.d2-3248084509 .background-color-B4{background-color:#E3E9FD;}
.d2-3248084509 .background-color-B5{background-color:#EDF0FD;}
.d2-3248084509 .background-color-B6{background-color:#F7F8FE;}
.d2-3248084509 .background-color-AA2{background-color:#4A6FF3;}
.d2-3248084509 .background-color-AA4{background-color:#EDF0FD;}
.d2-3248084509 .background-color-AA5{background-color:#F7F8FE;}
.d2-3248084509 .background-color-AB4{background-color:#EDF0FD;}
.d2-3248084509 .background-color-AB5{background-color:#F7F8FE;}
.d2-3248084509 .color-N1{color:#0A0F25;}
.d2-3248084509 .color-N2{color:#676C7E;}
.d2-3248084509 .color-N3{color:#9499AB;}
.d2-3248084509 .color-N4{color:#CFD2DD;}
.d2-3248084509 .color-N5{color:#DEE1EB;}
.d2-3248084509 .color-N6{color:#EEF1F8;}
.d2-3248084509 .color-N7{color:#FFFFFF;}
.d2-3248084509 .color-B1{color:#0D32B2;}
.d2-3248084509 .color-B2{color:#0D32B2;}
.d2-3248084509 .color-B3{color:#E3E9FD;}
.d2-3248084509 .color-B4{color:#E3E9FD;}
.d2-3248084509 .color-B5{color:#EDF0FD;}
.d2-3248084509 .color-B6{color:#F7F8FE;}
.d2-3248084509 .color-AA2{color:#4A6FF3;}
.d2-3248084509 .color-AA4{color:#EDF0FD;}
.d2-3248084509 .color-AA5{color:#F7F8FE;}
.d2-3248084509 .color-AB4{color:#EDF0FD;}
.d2-3248084509 .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);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g id="2 rows 1 obj"><g class="shape" ><rect x="12.000000" y="65.000000" width="192.000000" height="186.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="108.000000" y="98.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">2 rows 1 obj</text></g><g id="3 rows 2 obj"><g class="shape" ><rect x="224.000000" y="12.000000" width="193.000000" height="292.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="320.500000" y="45.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">3 rows 2 obj</text></g><g id="4 columns 2 obj"><g class="shape" ><rect x="437.000000" y="65.000000" width="305.000000" height="186.000000" class=" stroke-B1 fill-B4" style="stroke-width:2;" /></g><text x="589.500000" y="98.000000" class="text fill-N1" style="text-anchor:middle;font-size:28px">4 columns 2 obj</text></g><g id="2 rows 1 obj.one"><g class="shape" ><rect x="72.000000" y="125.000000" width="72.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="108.000000" y="163.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="3 rows 2 obj.one"><g class="shape" ><rect x="284.000000" y="72.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="320.500000" y="110.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="3 rows 2 obj.two"><g class="shape" ><rect x="284.000000" y="178.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="320.500000" y="216.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">two</text></g><g id="4 columns 2 obj.one"><g class="shape" ><rect x="497.000000" y="125.000000" width="72.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="533.000000" y="163.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">one</text></g><g id="4 columns 2 obj.two"><g class="shape" ><rect x="609.000000" y="125.000000" width="73.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="645.500000" y="163.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">two</text></g><mask id="d2-3248084509" maskUnits="userSpaceOnUse" x="11" y="11" width="732" height="294">
<rect x="11" y="11" width="732" height="294" fill="white"></rect>
</mask></svg></svg>

After

Width:  |  Height:  |  Size: 16 KiB