d2/e2etests/testdata/txtar/legend/elk/sketch.exp.svg
Alexander Wang 5982c395b0
ta
2025-03-24 16:37:03 -06:00

106 lines
No EOL
25 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="v0.6.9-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 437 548"><svg class="d2-3767055042 d2-svg" width="437" height="548" viewBox="11 11 437 548"><rect x="11.000000" y="11.000000" width="437.000000" height="548.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-3767055042 .text {
font-family: "d2-3767055042-font-regular";
}
@font-face {
font-family: d2-3767055042-font-regular;
src: url("data:application/font-woff;base64,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");
}
.d2-3767055042 .text-bold {
font-family: "d2-3767055042-font-bold";
}
@font-face {
font-family: d2-3767055042-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-3767055042 .fill-N1{fill:#0A0F25;}
.d2-3767055042 .fill-N2{fill:#676C7E;}
.d2-3767055042 .fill-N3{fill:#9499AB;}
.d2-3767055042 .fill-N4{fill:#CFD2DD;}
.d2-3767055042 .fill-N5{fill:#DEE1EB;}
.d2-3767055042 .fill-N6{fill:#EEF1F8;}
.d2-3767055042 .fill-N7{fill:#FFFFFF;}
.d2-3767055042 .fill-B1{fill:#0D32B2;}
.d2-3767055042 .fill-B2{fill:#0D32B2;}
.d2-3767055042 .fill-B3{fill:#E3E9FD;}
.d2-3767055042 .fill-B4{fill:#E3E9FD;}
.d2-3767055042 .fill-B5{fill:#EDF0FD;}
.d2-3767055042 .fill-B6{fill:#F7F8FE;}
.d2-3767055042 .fill-AA2{fill:#4A6FF3;}
.d2-3767055042 .fill-AA4{fill:#EDF0FD;}
.d2-3767055042 .fill-AA5{fill:#F7F8FE;}
.d2-3767055042 .fill-AB4{fill:#EDF0FD;}
.d2-3767055042 .fill-AB5{fill:#F7F8FE;}
.d2-3767055042 .stroke-N1{stroke:#0A0F25;}
.d2-3767055042 .stroke-N2{stroke:#676C7E;}
.d2-3767055042 .stroke-N3{stroke:#9499AB;}
.d2-3767055042 .stroke-N4{stroke:#CFD2DD;}
.d2-3767055042 .stroke-N5{stroke:#DEE1EB;}
.d2-3767055042 .stroke-N6{stroke:#EEF1F8;}
.d2-3767055042 .stroke-N7{stroke:#FFFFFF;}
.d2-3767055042 .stroke-B1{stroke:#0D32B2;}
.d2-3767055042 .stroke-B2{stroke:#0D32B2;}
.d2-3767055042 .stroke-B3{stroke:#E3E9FD;}
.d2-3767055042 .stroke-B4{stroke:#E3E9FD;}
.d2-3767055042 .stroke-B5{stroke:#EDF0FD;}
.d2-3767055042 .stroke-B6{stroke:#F7F8FE;}
.d2-3767055042 .stroke-AA2{stroke:#4A6FF3;}
.d2-3767055042 .stroke-AA4{stroke:#EDF0FD;}
.d2-3767055042 .stroke-AA5{stroke:#F7F8FE;}
.d2-3767055042 .stroke-AB4{stroke:#EDF0FD;}
.d2-3767055042 .stroke-AB5{stroke:#F7F8FE;}
.d2-3767055042 .background-color-N1{background-color:#0A0F25;}
.d2-3767055042 .background-color-N2{background-color:#676C7E;}
.d2-3767055042 .background-color-N3{background-color:#9499AB;}
.d2-3767055042 .background-color-N4{background-color:#CFD2DD;}
.d2-3767055042 .background-color-N5{background-color:#DEE1EB;}
.d2-3767055042 .background-color-N6{background-color:#EEF1F8;}
.d2-3767055042 .background-color-N7{background-color:#FFFFFF;}
.d2-3767055042 .background-color-B1{background-color:#0D32B2;}
.d2-3767055042 .background-color-B2{background-color:#0D32B2;}
.d2-3767055042 .background-color-B3{background-color:#E3E9FD;}
.d2-3767055042 .background-color-B4{background-color:#E3E9FD;}
.d2-3767055042 .background-color-B5{background-color:#EDF0FD;}
.d2-3767055042 .background-color-B6{background-color:#F7F8FE;}
.d2-3767055042 .background-color-AA2{background-color:#4A6FF3;}
.d2-3767055042 .background-color-AA4{background-color:#EDF0FD;}
.d2-3767055042 .background-color-AA5{background-color:#F7F8FE;}
.d2-3767055042 .background-color-AB4{background-color:#EDF0FD;}
.d2-3767055042 .background-color-AB5{background-color:#F7F8FE;}
.d2-3767055042 .color-N1{color:#0A0F25;}
.d2-3767055042 .color-N2{color:#676C7E;}
.d2-3767055042 .color-N3{color:#9499AB;}
.d2-3767055042 .color-N4{color:#CFD2DD;}
.d2-3767055042 .color-N5{color:#DEE1EB;}
.d2-3767055042 .color-N6{color:#EEF1F8;}
.d2-3767055042 .color-N7{color:#FFFFFF;}
.d2-3767055042 .color-B1{color:#0D32B2;}
.d2-3767055042 .color-B2{color:#0D32B2;}
.d2-3767055042 .color-B3{color:#E3E9FD;}
.d2-3767055042 .color-B4{color:#E3E9FD;}
.d2-3767055042 .color-B5{color:#EDF0FD;}
.d2-3767055042 .color-B6{color:#F7F8FE;}
.d2-3767055042 .color-AA2{color:#4A6FF3;}
.d2-3767055042 .color-AA4{color:#EDF0FD;}
.d2-3767055042 .color-AA5{color:#F7F8FE;}
.d2-3767055042 .color-AB4{color:#EDF0FD;}
.d2-3767055042 .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-3767055042);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3767055042);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3767055042);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3767055042);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3767055042);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3767055042);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3767055042);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3767055042);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="YXBpLTE="><g class="shape" ><rect x="45.000000" y="12.000000" width="120.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="105.000000" y="50.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">api-1</text></g><g class="YXBpLTI="><g class="shape" ><rect x="65.000000" y="158.000000" width="81.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="105.500000" y="196.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">api-2</text></g><g class="cG9zdGdyZXM="><g class="shape" ><path d="M 12 328 C 12 304 60 304 65 304 C 70 304 118 304 118 328 V 398 C 118 422 70 422 65 422 C 60 422 12 422 12 398 V 328 Z" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B1 fill-AA4" style="stroke-width:2;" /><path d="M 12 328 C 12 352 60 352 65 352 C 70 352 118 352 118 328" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B1 fill-AA4" style="stroke-width:2;" /></g><text x="65.000000" y="380.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">postgres</text></g><g class="ZXh0ZXJuYWw="><g class="shape" ><rect x="12.000000" y="492.000000" width="105.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="64.500000" y="530.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">external</text></g><g class="YXBpLTM="><g class="shape" ><rect x="166.000000" y="158.000000" width="81.000000" height="66.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><text x="206.500000" y="196.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">api-3</text></g><g class="KGFwaS0xIC0mZ3Q7IHBvc3RncmVzKVswXQ=="><marker id="mk-d2-3767055042-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 75.750000 80.000000 L 75.750000 108.000000 S 75.750000 118.000000 65.750000 118.000000 L 34.249001 118.000000 S 24.249001 118.000000 24.236099 127.999992 L 24.005161 307.000003" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-3767055042-3488378134)" mask="url(#d2-3767055042)" /></g><g class="KGFwaS0yIC0mZ3Q7IHBvc3RncmVzKVswXQ=="><path d="M 82.674247 225.999983 L 82.983506 301.000034" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-3767055042-3488378134)" mask="url(#d2-3767055042)" /></g><g class="KHBvc3RncmVzIC0mZ3Q7IGV4dGVybmFsKVswXQ=="><marker id="mk-d2-3767055042-27687146" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="black" class="connection" stroke-width="2" /> </marker><path d="M 65.000000 424.000000 L 65.000000 488.000000" stroke="black" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-3767055042-27687146)" mask="url(#d2-3767055042)" /></g><g class="KGFwaS0xICZsdDstJmd0OyBhcGktMilbMF0="><marker id="mk-d2-3767055042-1062155981" markerWidth="10.000000" markerHeight="12.000000" refX="3.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" fill="red" class="connection" stroke-width="2" /> </marker><marker id="mk-d2-3767055042-1222543834" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="red" class="connection" stroke-width="2" /> </marker><path d="M 105.750000 82.000000 L 105.750000 154.000000" stroke="red" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:4.000000,3.946256;" marker-start="url(#mk-d2-3767055042-1062155981)" marker-end="url(#mk-d2-3767055042-1222543834)" mask="url(#d2-3767055042)" /></g><g class="KGFwaS0xIC0mZ3Q7IGFwaS0zKVswXQ=="><marker id="mk-d2-3767055042-2441562586" markerWidth="18.000000" markerHeight="18.000000" refX="15.000000" refY="9.000000" viewBox="0.000000 0.000000 18.000000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <circle r="7.000000" cx="10.000000" cy="9.000000" stroke="#0D32B2" fill="#FFFFFF" class=" stroke-B1 fill-N7" stroke-width="2" /> </marker><path d="M 135.750000 80.000000 L 135.750000 108.000000 S 135.750000 118.000000 145.750000 118.000000 L 196.750000 118.000000 S 206.750000 118.000000 206.750000 128.000000 L 206.750000 154.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-3767055042-2441562586)" mask="url(#d2-3767055042)" /></g><rect x="258.000000" y="292.000000" width="190.000000" height="267.000000" rx="4.000000" stroke="#DEE1EB" fill="#F7F7FA" style="stroke-width: 1px; filter: drop-shadow(0px 2px 3px rgba(0, 0, 0, 0.1))" /><rect x="258.000000" y="292.000000" width="190.000000" height="267.000000" rx="4.000000" stroke="#DEE1EB" fill="#ffffff" style="stroke-width: 1px" /><text class="text-bold" x="278" y="326" style="font-size: 16px;">Legend</text><g transform="translate(278, 346) scale(0.200000)"><g class="YQ=="><g class="shape" ><rect x="0.000000" y="0.000000" width="120.000000" height="120.000000" stroke="#0D32B2" fill="#F7F8FE" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g></g></g><text class="text" x="322" y="363" style="font-size: 14px;">Microservice</text><g transform="translate(278, 385) scale(0.200000)"><g class="Yg=="><g class="shape" ><path d="M 0 24 C 0 0 54 0 60 0 C 66 0 120 0 120 24 V 96 C 120 120 66 120 60 120 C 54 120 0 120 0 96 V 24 Z" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B2 fill-AA4" style="stroke-width:2;stroke-dasharray:4.000000,3.946256;" /><path d="M 0 24 C 0 48 54 48 60 48 C 66 48 120 48 120 24" stroke="#0D32B2" fill="#EDF0FD" class=" stroke-B2 fill-AA4" style="stroke-width:2;stroke-dasharray:4.000000,3.946256;" /></g></g></g><text class="text" x="322" y="402" style="font-size: 14px;">Database</text><line x1="278.000000" x2="428.000000" y1="431.000000" y2="431.000000" stroke-dasharray="2,2" stroke="#DEE1EB" /><g transform="translate(278, 458) scale(0.500000)"><g class="KGEgJmx0Oy0mZ3Q7IGIpWzBd"><marker id="mk-legend-2181742996-4262531034" markerWidth="10.000000" markerHeight="12.000000" refX="1.500000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" fill="red" class="connection" stroke-width="1" /> </marker><marker id="mk-legend-2181742996-2317136077" markerWidth="10.000000" markerHeight="12.000000" refX="8.500000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="red" class="connection" stroke-width="1" /> </marker><path d="M 1.500000 0.000000 L 46.500000 0.000000" stroke="red" fill="none" class="connection" style="stroke-width:1;stroke-dasharray:2.000000,2.000000;" marker-start="url(#mk-legend-2181742996-4262531034)" marker-end="url(#mk-legend-2181742996-2317136077)" mask="url(#legend-2181742996)" /></g></g><text class="text" x="322" y="461" style="font-size: 14px;">Good relationship</text><g transform="translate(278, 497) scale(0.500000)"><g class="KGEgLSZndDsgYilbMF0="><marker id="mk-legend-2106792467-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 1.000000 0.000000 L 45.000000 0.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-legend-2106792467-3488378134)" mask="url(#legend-2106792467)" /></g></g><text class="text" x="322" y="500" style="font-size: 14px;">Bad relationship</text><g transform="translate(278, 536) scale(0.500000)"><g class="KGEgLSZndDsgYilbMV0="><marker id="mk-legend-627180362-2441562586" markerWidth="18.000000" markerHeight="18.000000" refX="15.000000" refY="9.000000" viewBox="0.000000 0.000000 18.000000 18.000000" orient="auto" markerUnits="userSpaceOnUse"> <circle r="7.000000" cx="10.000000" cy="9.000000" stroke="#0D32B2" fill="#FFFFFF" class=" stroke-B1 fill-N7" stroke-width="2" /> </marker><path d="M 1.000000 0.000000 L 45.000000 0.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-legend-627180362-2441562586)" mask="url(#legend-627180362)" /></g></g><text class="text" x="322" y="539" style="font-size: 14px;">Tenuous</text><mask id="d2-3767055042" maskUnits="userSpaceOnUse" x="11" y="11" width="437" height="548">
<rect x="11" y="11" width="437" height="548" fill="white"></rect>
<rect x="85.000000" y="34.500000" width="40" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="85.500000" y="180.500000" width="40" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="32.500000" y="364.500000" width="65" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="32.500000" y="514.500000" width="64" height="21" fill="rgba(0,0,0,0.75)"></rect>
<rect x="186.500000" y="180.500000" width="40" height="21" fill="rgba(0,0,0,0.75)"></rect>
</mask></svg></svg>