d2ir: extend icon links
This commit is contained in:
parent
8d60c92d1d
commit
cea2a79644
5 changed files with 107 additions and 85 deletions
|
|
@ -18,3 +18,4 @@
|
|||
- Render: Multi-line class labels/headers are rendered correctly [#2057](https://github.com/terrastruct/d2/pull/2057)
|
||||
- CLI: Watch mode uses correct backlinks (`_` usages) [#2058](https://github.com/terrastruct/d2/pull/2058)
|
||||
- Vars: Spread variables are inserted in place instead of appending to end of scope [#2062](https://github.com/terrastruct/d2/pull/2062)
|
||||
- Imports: fix local icon imports from files that are imported [#2066](https://github.com/terrastruct/d2/pull/2066)
|
||||
|
|
|
|||
|
|
@ -1431,3 +1431,7 @@ func (i *Import) PathWithPre() string {
|
|||
}
|
||||
return path.Join(i.Pre, i.Path[0].Unbox().ScalarString())
|
||||
}
|
||||
|
||||
func (i *Import) Dir() string {
|
||||
return path.Dir(i.PathWithPre())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package d2ir
|
||||
|
||||
import (
|
||||
"html"
|
||||
"io/fs"
|
||||
"net/url"
|
||||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
|
|
@ -558,7 +561,8 @@ func (c *compiler) compileMap(dst *Map, ast, scopeAST *d2ast.Map) {
|
|||
}
|
||||
|
||||
OverlayMap(dst, impn.Map())
|
||||
c.extendLinks(dst, ParentField(dst))
|
||||
impDir := n.Import.Dir()
|
||||
c.extendLinks(dst, ParentField(dst), impDir)
|
||||
|
||||
if impnf, ok := impn.(*Field); ok {
|
||||
if impnf.Primary_ != nil {
|
||||
|
|
@ -862,7 +866,8 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) {
|
|||
}
|
||||
}
|
||||
OverlayMap(f.Map(), n)
|
||||
c.extendLinks(f.Map(), f)
|
||||
impDir := refctx.Key.Value.Import.Dir()
|
||||
c.extendLinks(f.Map(), f, impDir)
|
||||
switch NodeBoardKind(f) {
|
||||
case BoardScenario, BoardStep:
|
||||
c.overlayClasses(f.Map())
|
||||
|
|
@ -895,9 +900,10 @@ func (c *compiler) ignoreLazyGlob(n Node) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
// When importing a file, all of its board links need to be extended to reflect their new path
|
||||
func (c *compiler) extendLinks(m *Map, importF *Field) {
|
||||
// When importing a file, all of its board and icon links need to be extended to reflect their new path
|
||||
func (c *compiler) extendLinks(m *Map, importF *Field, importDir string) {
|
||||
nodeBoardKind := NodeBoardKind(m)
|
||||
importIDA := IDA(importF)
|
||||
for _, f := range m.Fields {
|
||||
if f.Name == "link" {
|
||||
if nodeBoardKind != "" {
|
||||
|
|
@ -914,14 +920,23 @@ func (c *compiler) extendLinks(m *Map, importF *Field) {
|
|||
continue
|
||||
}
|
||||
|
||||
importIDA := IDA(importF)
|
||||
extendedIDA := append(importIDA, linkIDA[1:]...)
|
||||
kp := d2ast.MakeKeyPath(extendedIDA)
|
||||
s := d2format.Format(kp)
|
||||
f.Primary_.Value = d2ast.MakeValueBox(d2ast.FlatUnquotedString(s)).ScalarBox().Unbox()
|
||||
}
|
||||
if f.Name == "icon" {
|
||||
val := f.Primary().Value.ScalarString()
|
||||
u, err := url.Parse(html.UnescapeString(val))
|
||||
isRemoteImg := err == nil && strings.HasPrefix(u.Scheme, "http")
|
||||
if isRemoteImg {
|
||||
continue
|
||||
}
|
||||
val = path.Join(importDir, val)
|
||||
f.Primary_.Value = d2ast.MakeValueBox(d2ast.FlatUnquotedString(val)).ScalarBox().Unbox()
|
||||
}
|
||||
if f.Map() != nil {
|
||||
c.extendLinks(f.Map(), importF)
|
||||
c.extendLinks(f.Map(), importF, importDir)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -715,8 +715,9 @@ steps: {
|
|||
name: "import_icon_relative",
|
||||
run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) {
|
||||
writeFile(t, dir, "hello-world.d2", `...@asdf/x`)
|
||||
writeFile(t, filepath.Join(dir, "asdf"), "x.d2", `y: { icon: ./blah.svg }`)
|
||||
writeFile(t, filepath.Join(dir, "asdf"), "x.d2", `y: { icon: ./blah.svg }; z: { icon: ../root.svg }`)
|
||||
writeFile(t, filepath.Join(dir, "asdf"), "blah.svg", ``)
|
||||
writeFile(t, dir, "root.svg", ``)
|
||||
err := runTestMain(t, ctx, dir, env, filepath.Join(dir, "hello-world.d2"))
|
||||
assert.Success(t, err)
|
||||
svg := readFile(t, dir, "hello-world.svg")
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
<?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.6.6-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 282 294"><svg id="d2-svg" class="d2-2359711515" width="282" height="294" viewBox="-101 -101 282 294"><rect x="-101.000000" y="-101.000000" width="282.000000" height="294.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
.d2-2359711515 .text-bold {
|
||||
font-family: "d2-2359711515-font-bold";
|
||||
<?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.6.6-HEAD" preserveAspectRatio="xMinYMin meet" viewBox="0 0 420 294"><svg id="d2-svg" class="d2-1179270023" width="420" height="294" viewBox="-101 -101 420 294"><rect x="-101.000000" y="-101.000000" width="420.000000" height="294.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
.d2-1179270023 .text-bold {
|
||||
font-family: "d2-1179270023-font-bold";
|
||||
}
|
||||
@font-face {
|
||||
font-family: d2-2359711515-font-bold;
|
||||
src: url("data:application/font-woff;base64,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");
|
||||
font-family: d2-1179270023-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;
|
||||
|
|
@ -18,78 +18,79 @@
|
|||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.d2-2359711515 .fill-N1{fill:#0A0F25;}
|
||||
.d2-2359711515 .fill-N2{fill:#676C7E;}
|
||||
.d2-2359711515 .fill-N3{fill:#9499AB;}
|
||||
.d2-2359711515 .fill-N4{fill:#CFD2DD;}
|
||||
.d2-2359711515 .fill-N5{fill:#DEE1EB;}
|
||||
.d2-2359711515 .fill-N6{fill:#EEF1F8;}
|
||||
.d2-2359711515 .fill-N7{fill:#FFFFFF;}
|
||||
.d2-2359711515 .fill-B1{fill:#0D32B2;}
|
||||
.d2-2359711515 .fill-B2{fill:#0D32B2;}
|
||||
.d2-2359711515 .fill-B3{fill:#E3E9FD;}
|
||||
.d2-2359711515 .fill-B4{fill:#E3E9FD;}
|
||||
.d2-2359711515 .fill-B5{fill:#EDF0FD;}
|
||||
.d2-2359711515 .fill-B6{fill:#F7F8FE;}
|
||||
.d2-2359711515 .fill-AA2{fill:#4A6FF3;}
|
||||
.d2-2359711515 .fill-AA4{fill:#EDF0FD;}
|
||||
.d2-2359711515 .fill-AA5{fill:#F7F8FE;}
|
||||
.d2-2359711515 .fill-AB4{fill:#EDF0FD;}
|
||||
.d2-2359711515 .fill-AB5{fill:#F7F8FE;}
|
||||
.d2-2359711515 .stroke-N1{stroke:#0A0F25;}
|
||||
.d2-2359711515 .stroke-N2{stroke:#676C7E;}
|
||||
.d2-2359711515 .stroke-N3{stroke:#9499AB;}
|
||||
.d2-2359711515 .stroke-N4{stroke:#CFD2DD;}
|
||||
.d2-2359711515 .stroke-N5{stroke:#DEE1EB;}
|
||||
.d2-2359711515 .stroke-N6{stroke:#EEF1F8;}
|
||||
.d2-2359711515 .stroke-N7{stroke:#FFFFFF;}
|
||||
.d2-2359711515 .stroke-B1{stroke:#0D32B2;}
|
||||
.d2-2359711515 .stroke-B2{stroke:#0D32B2;}
|
||||
.d2-2359711515 .stroke-B3{stroke:#E3E9FD;}
|
||||
.d2-2359711515 .stroke-B4{stroke:#E3E9FD;}
|
||||
.d2-2359711515 .stroke-B5{stroke:#EDF0FD;}
|
||||
.d2-2359711515 .stroke-B6{stroke:#F7F8FE;}
|
||||
.d2-2359711515 .stroke-AA2{stroke:#4A6FF3;}
|
||||
.d2-2359711515 .stroke-AA4{stroke:#EDF0FD;}
|
||||
.d2-2359711515 .stroke-AA5{stroke:#F7F8FE;}
|
||||
.d2-2359711515 .stroke-AB4{stroke:#EDF0FD;}
|
||||
.d2-2359711515 .stroke-AB5{stroke:#F7F8FE;}
|
||||
.d2-2359711515 .background-color-N1{background-color:#0A0F25;}
|
||||
.d2-2359711515 .background-color-N2{background-color:#676C7E;}
|
||||
.d2-2359711515 .background-color-N3{background-color:#9499AB;}
|
||||
.d2-2359711515 .background-color-N4{background-color:#CFD2DD;}
|
||||
.d2-2359711515 .background-color-N5{background-color:#DEE1EB;}
|
||||
.d2-2359711515 .background-color-N6{background-color:#EEF1F8;}
|
||||
.d2-2359711515 .background-color-N7{background-color:#FFFFFF;}
|
||||
.d2-2359711515 .background-color-B1{background-color:#0D32B2;}
|
||||
.d2-2359711515 .background-color-B2{background-color:#0D32B2;}
|
||||
.d2-2359711515 .background-color-B3{background-color:#E3E9FD;}
|
||||
.d2-2359711515 .background-color-B4{background-color:#E3E9FD;}
|
||||
.d2-2359711515 .background-color-B5{background-color:#EDF0FD;}
|
||||
.d2-2359711515 .background-color-B6{background-color:#F7F8FE;}
|
||||
.d2-2359711515 .background-color-AA2{background-color:#4A6FF3;}
|
||||
.d2-2359711515 .background-color-AA4{background-color:#EDF0FD;}
|
||||
.d2-2359711515 .background-color-AA5{background-color:#F7F8FE;}
|
||||
.d2-2359711515 .background-color-AB4{background-color:#EDF0FD;}
|
||||
.d2-2359711515 .background-color-AB5{background-color:#F7F8FE;}
|
||||
.d2-2359711515 .color-N1{color:#0A0F25;}
|
||||
.d2-2359711515 .color-N2{color:#676C7E;}
|
||||
.d2-2359711515 .color-N3{color:#9499AB;}
|
||||
.d2-2359711515 .color-N4{color:#CFD2DD;}
|
||||
.d2-2359711515 .color-N5{color:#DEE1EB;}
|
||||
.d2-2359711515 .color-N6{color:#EEF1F8;}
|
||||
.d2-2359711515 .color-N7{color:#FFFFFF;}
|
||||
.d2-2359711515 .color-B1{color:#0D32B2;}
|
||||
.d2-2359711515 .color-B2{color:#0D32B2;}
|
||||
.d2-2359711515 .color-B3{color:#E3E9FD;}
|
||||
.d2-2359711515 .color-B4{color:#E3E9FD;}
|
||||
.d2-2359711515 .color-B5{color:#EDF0FD;}
|
||||
.d2-2359711515 .color-B6{color:#F7F8FE;}
|
||||
.d2-2359711515 .color-AA2{color:#4A6FF3;}
|
||||
.d2-2359711515 .color-AA4{color:#EDF0FD;}
|
||||
.d2-2359711515 .color-AA5{color:#F7F8FE;}
|
||||
.d2-2359711515 .color-AB4{color:#EDF0FD;}
|
||||
.d2-2359711515 .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="y"><g class="shape" ><rect x="0.000000" y="0.000000" width="80.000000" height="92.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><image href="data:image/svg+xml;base64,YQ==" x="20.000000" y="26.000000" width="40" height="40" /><text x="40.000000" y="21.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><mask id="d2-2359711515" maskUnits="userSpaceOnUse" x="-101" y="-101" width="282" height="294">
|
||||
<rect x="-101" y="-101" width="282" height="294" fill="white"></rect>
|
||||
.d2-1179270023 .fill-N1{fill:#0A0F25;}
|
||||
.d2-1179270023 .fill-N2{fill:#676C7E;}
|
||||
.d2-1179270023 .fill-N3{fill:#9499AB;}
|
||||
.d2-1179270023 .fill-N4{fill:#CFD2DD;}
|
||||
.d2-1179270023 .fill-N5{fill:#DEE1EB;}
|
||||
.d2-1179270023 .fill-N6{fill:#EEF1F8;}
|
||||
.d2-1179270023 .fill-N7{fill:#FFFFFF;}
|
||||
.d2-1179270023 .fill-B1{fill:#0D32B2;}
|
||||
.d2-1179270023 .fill-B2{fill:#0D32B2;}
|
||||
.d2-1179270023 .fill-B3{fill:#E3E9FD;}
|
||||
.d2-1179270023 .fill-B4{fill:#E3E9FD;}
|
||||
.d2-1179270023 .fill-B5{fill:#EDF0FD;}
|
||||
.d2-1179270023 .fill-B6{fill:#F7F8FE;}
|
||||
.d2-1179270023 .fill-AA2{fill:#4A6FF3;}
|
||||
.d2-1179270023 .fill-AA4{fill:#EDF0FD;}
|
||||
.d2-1179270023 .fill-AA5{fill:#F7F8FE;}
|
||||
.d2-1179270023 .fill-AB4{fill:#EDF0FD;}
|
||||
.d2-1179270023 .fill-AB5{fill:#F7F8FE;}
|
||||
.d2-1179270023 .stroke-N1{stroke:#0A0F25;}
|
||||
.d2-1179270023 .stroke-N2{stroke:#676C7E;}
|
||||
.d2-1179270023 .stroke-N3{stroke:#9499AB;}
|
||||
.d2-1179270023 .stroke-N4{stroke:#CFD2DD;}
|
||||
.d2-1179270023 .stroke-N5{stroke:#DEE1EB;}
|
||||
.d2-1179270023 .stroke-N6{stroke:#EEF1F8;}
|
||||
.d2-1179270023 .stroke-N7{stroke:#FFFFFF;}
|
||||
.d2-1179270023 .stroke-B1{stroke:#0D32B2;}
|
||||
.d2-1179270023 .stroke-B2{stroke:#0D32B2;}
|
||||
.d2-1179270023 .stroke-B3{stroke:#E3E9FD;}
|
||||
.d2-1179270023 .stroke-B4{stroke:#E3E9FD;}
|
||||
.d2-1179270023 .stroke-B5{stroke:#EDF0FD;}
|
||||
.d2-1179270023 .stroke-B6{stroke:#F7F8FE;}
|
||||
.d2-1179270023 .stroke-AA2{stroke:#4A6FF3;}
|
||||
.d2-1179270023 .stroke-AA4{stroke:#EDF0FD;}
|
||||
.d2-1179270023 .stroke-AA5{stroke:#F7F8FE;}
|
||||
.d2-1179270023 .stroke-AB4{stroke:#EDF0FD;}
|
||||
.d2-1179270023 .stroke-AB5{stroke:#F7F8FE;}
|
||||
.d2-1179270023 .background-color-N1{background-color:#0A0F25;}
|
||||
.d2-1179270023 .background-color-N2{background-color:#676C7E;}
|
||||
.d2-1179270023 .background-color-N3{background-color:#9499AB;}
|
||||
.d2-1179270023 .background-color-N4{background-color:#CFD2DD;}
|
||||
.d2-1179270023 .background-color-N5{background-color:#DEE1EB;}
|
||||
.d2-1179270023 .background-color-N6{background-color:#EEF1F8;}
|
||||
.d2-1179270023 .background-color-N7{background-color:#FFFFFF;}
|
||||
.d2-1179270023 .background-color-B1{background-color:#0D32B2;}
|
||||
.d2-1179270023 .background-color-B2{background-color:#0D32B2;}
|
||||
.d2-1179270023 .background-color-B3{background-color:#E3E9FD;}
|
||||
.d2-1179270023 .background-color-B4{background-color:#E3E9FD;}
|
||||
.d2-1179270023 .background-color-B5{background-color:#EDF0FD;}
|
||||
.d2-1179270023 .background-color-B6{background-color:#F7F8FE;}
|
||||
.d2-1179270023 .background-color-AA2{background-color:#4A6FF3;}
|
||||
.d2-1179270023 .background-color-AA4{background-color:#EDF0FD;}
|
||||
.d2-1179270023 .background-color-AA5{background-color:#F7F8FE;}
|
||||
.d2-1179270023 .background-color-AB4{background-color:#EDF0FD;}
|
||||
.d2-1179270023 .background-color-AB5{background-color:#F7F8FE;}
|
||||
.d2-1179270023 .color-N1{color:#0A0F25;}
|
||||
.d2-1179270023 .color-N2{color:#676C7E;}
|
||||
.d2-1179270023 .color-N3{color:#9499AB;}
|
||||
.d2-1179270023 .color-N4{color:#CFD2DD;}
|
||||
.d2-1179270023 .color-N5{color:#DEE1EB;}
|
||||
.d2-1179270023 .color-N6{color:#EEF1F8;}
|
||||
.d2-1179270023 .color-N7{color:#FFFFFF;}
|
||||
.d2-1179270023 .color-B1{color:#0D32B2;}
|
||||
.d2-1179270023 .color-B2{color:#0D32B2;}
|
||||
.d2-1179270023 .color-B3{color:#E3E9FD;}
|
||||
.d2-1179270023 .color-B4{color:#E3E9FD;}
|
||||
.d2-1179270023 .color-B5{color:#EDF0FD;}
|
||||
.d2-1179270023 .color-B6{color:#F7F8FE;}
|
||||
.d2-1179270023 .color-AA2{color:#4A6FF3;}
|
||||
.d2-1179270023 .color-AA4{color:#EDF0FD;}
|
||||
.d2-1179270023 .color-AA5{color:#F7F8FE;}
|
||||
.d2-1179270023 .color-AB4{color:#EDF0FD;}
|
||||
.d2-1179270023 .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="y"><g class="shape" ><rect x="0.000000" y="0.000000" width="80.000000" height="92.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><image href="data:image/svg+xml;base64," x="20.000000" y="26.000000" width="40" height="40" /><text x="40.000000" y="21.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">y</text></g><g id="z"><g class="shape" ><rect x="140.000000" y="0.000000" width="78.000000" height="92.000000" class=" stroke-B1 fill-B6" style="stroke-width:2;" /></g><image href="data:image/svg+xml;base64," x="159.500000" y="26.500000" width="39" height="39" /><text x="179.000000" y="21.000000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">z</text></g><mask id="d2-1179270023" maskUnits="userSpaceOnUse" x="-101" y="-101" width="420" height="294">
|
||||
<rect x="-101" y="-101" width="420" height="294" fill="white"></rect>
|
||||
<rect x="35.500000" y="5.000000" width="9" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
<rect x="175.500000" y="5.000000" width="7" height="21" fill="rgba(0,0,0,0.75)"></rect>
|
||||
</mask></svg></svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 9.1 KiB |
Loading…
Reference in a new issue