From af5b671805f4778e2d3cee40693ef1aedf8ed058 Mon Sep 17 00:00:00 2001 From: melsonic Date: Sun, 4 May 2025 23:50:55 +0530 Subject: [PATCH 01/10] feat: add ability to fade multiple --- d2ast/keywords.go | 8 +- d2compiler/compile.go | 10 ++ d2exporter/export.go | 3 + d2graph/d2graph.go | 50 +++++---- .../testdata/dots-multiple/sketch.exp.svg | 2 +- .../testdata/dots-real/sketch.exp.svg | 2 +- .../testdata/paper-real/sketch.exp.svg | 2 +- .../d2sketch/testdata/terminal/sketch.exp.svg | 2 +- .../d2sketch/testdata/twitter/sketch.exp.svg | 2 +- .../testdata/twitter_dark/sketch.exp.svg | 2 +- d2renderers/d2svg/d2svg.go | 17 +-- .../testdata/twitter/dark_theme.exp.svg | 2 +- d2target/d2target.go | 11 +- .../patterns/multiple/dagre/sketch.exp.svg | 2 +- .../patterns/real-lines/dagre/sketch.exp.svg | 2 +- .../patterns/real/dagre/sketch.exp.svg | 2 +- .../all_shapes_multiple/dagre/sketch.exp.svg | 2 +- .../all_shapes_multiple/elk/sketch.exp.svg | 2 +- .../dagre/sketch.exp.svg | 2 +- .../elk/sketch.exp.svg | 2 +- .../stable/border-radius/dagre/sketch.exp.svg | 2 +- .../stable/border-radius/elk/sketch.exp.svg | 2 +- .../stable/elk_shim/dagre/sketch.exp.svg | 2 +- .../stable/elk_shim/elk/sketch.exp.svg | 2 +- .../grid_outside_labels/dagre/sketch.exp.svg | 2 +- .../grid_outside_labels/elk/sketch.exp.svg | 2 +- .../stable/mono-font/dagre/sketch.exp.svg | 2 +- .../stable/mono-font/elk/sketch.exp.svg | 2 +- .../dagre/sketch.exp.svg | 2 +- .../multiple_box_selection/elk/sketch.exp.svg | 2 +- .../multiple_offset/dagre/sketch.exp.svg | 16 +-- .../stable/multiple_offset/elk/sketch.exp.svg | 16 +-- .../multiple_offset_left/dagre/sketch.exp.svg | 16 +-- .../multiple_offset_left/elk/sketch.exp.svg | 16 +-- .../dagre/sketch.exp.svg | 2 +- .../multiple_person_label/elk/sketch.exp.svg | 2 +- .../stable/nesting_power/dagre/sketch.exp.svg | 2 +- .../stable/nesting_power/elk/sketch.exp.svg | 2 +- .../dagre/sketch.exp.svg | 4 +- .../elk/sketch.exp.svg | 4 +- .../themes/origami/dagre/sketch.exp.svg | 2 +- .../themes/origami/elk/sketch.exp.svg | 2 +- .../themes/terminal/dagre/sketch.exp.svg | 4 +- .../themes/terminal/elk/sketch.exp.svg | 4 +- .../terminal_grayscale/dagre/sketch.exp.svg | 2 +- .../terminal_grayscale/elk/sketch.exp.svg | 2 +- .../multiple_opacity/dagre/board.exp.json | 100 ++++++++++++++++++ .../multiple_opacity/dagre/sketch.exp.svg | 95 +++++++++++++++++ .../txtar/multiple_opacity/elk/board.exp.json | 100 ++++++++++++++++++ .../txtar/multiple_opacity/elk/sketch.exp.svg | 95 +++++++++++++++++ .../txtar/shape-animate/dagre/sketch.exp.svg | 2 +- .../txtar/shape-animate/elk/sketch.exp.svg | 2 +- .../theme-overrides/dagre/sketch.exp.svg | 2 +- .../txtar/theme-overrides/elk/sketch.exp.svg | 2 +- e2etests/txtar.txt | 8 ++ 55 files changed, 539 insertions(+), 110 deletions(-) create mode 100644 e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json create mode 100644 e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg create mode 100644 e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json create mode 100644 e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg diff --git a/d2ast/keywords.go b/d2ast/keywords.go index 65f67b7754..a7ece2ef58 100644 --- a/d2ast/keywords.go +++ b/d2ast/keywords.go @@ -41,6 +41,7 @@ var CompositeReservedKeywords = map[string]struct{}{ "constraint": {}, "label": {}, "icon": {}, + "multiple": {}, } // StyleKeywords are reserved keywords which cannot exist outside of the "style" keyword @@ -63,9 +64,10 @@ var StyleKeywords = map[string]struct{}{ "text-transform": {}, // Only for shapes - "shadow": {}, - "multiple": {}, - "double-border": {}, + "shadow": {}, + "multiple": {}, + "multiple.opacity": {}, + "double-border": {}, // Only for squares "3d": {}, diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 651238afe9..51aae2a2aa 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -763,6 +763,14 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) { c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name.ScalarString()) return } + if f.Map() != nil { + fields := f.Map().Fields + for i := 0; i < len(fields); i++ { + field := fields[i] + field.Name.SetString(f.Name.ScalarString() + "." + field.Name.ScalarString()) + c.compileStyleField(styles, field) + } + } if f.Primary() == nil { return } @@ -797,6 +805,8 @@ func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) { styles.ThreeDee = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "multiple": styles.Multiple = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} + case "multiple.opacity": + styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "font": styles.Font = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "font-size": diff --git a/d2exporter/export.go b/d2exporter/export.go index 56f4b9146b..36114fc917 100644 --- a/d2exporter/export.go +++ b/d2exporter/export.go @@ -172,6 +172,9 @@ func applyStyles(shape *d2target.Shape, obj *d2graph.Object) { if obj.Style.Multiple != nil { shape.Multiple, _ = strconv.ParseBool(obj.Style.Multiple.Value) } + if obj.Style.MultipleOpacity != nil { + shape.MultipleOpacity, _ = strconv.ParseFloat(obj.Style.MultipleOpacity.Value, 64) + } if obj.Style.BorderRadius != nil { shape.BorderRadius, _ = strconv.Atoi(obj.Style.BorderRadius.Value) } diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index ba9a026573..f97769f4ed 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -281,26 +281,27 @@ func (r Reference) InEdge() bool { } type Style struct { - Opacity *Scalar `json:"opacity,omitempty"` - Stroke *Scalar `json:"stroke,omitempty"` - Fill *Scalar `json:"fill,omitempty"` - FillPattern *Scalar `json:"fillPattern,omitempty"` - StrokeWidth *Scalar `json:"strokeWidth,omitempty"` - StrokeDash *Scalar `json:"strokeDash,omitempty"` - BorderRadius *Scalar `json:"borderRadius,omitempty"` - Shadow *Scalar `json:"shadow,omitempty"` - ThreeDee *Scalar `json:"3d,omitempty"` - Multiple *Scalar `json:"multiple,omitempty"` - Font *Scalar `json:"font,omitempty"` - FontSize *Scalar `json:"fontSize,omitempty"` - FontColor *Scalar `json:"fontColor,omitempty"` - Animated *Scalar `json:"animated,omitempty"` - Bold *Scalar `json:"bold,omitempty"` - Italic *Scalar `json:"italic,omitempty"` - Underline *Scalar `json:"underline,omitempty"` - Filled *Scalar `json:"filled,omitempty"` - DoubleBorder *Scalar `json:"doubleBorder,omitempty"` - TextTransform *Scalar `json:"textTransform,omitempty"` + Opacity *Scalar `json:"opacity,omitempty"` + Stroke *Scalar `json:"stroke,omitempty"` + Fill *Scalar `json:"fill,omitempty"` + FillPattern *Scalar `json:"fillPattern,omitempty"` + StrokeWidth *Scalar `json:"strokeWidth,omitempty"` + StrokeDash *Scalar `json:"strokeDash,omitempty"` + BorderRadius *Scalar `json:"borderRadius,omitempty"` + Shadow *Scalar `json:"shadow,omitempty"` + ThreeDee *Scalar `json:"3d,omitempty"` + Multiple *Scalar `json:"multiple,omitempty"` + MultipleOpacity *Scalar `json:"multipleOpacity,omitempty"` + Font *Scalar `json:"font,omitempty"` + FontSize *Scalar `json:"fontSize,omitempty"` + FontColor *Scalar `json:"fontColor,omitempty"` + Animated *Scalar `json:"animated,omitempty"` + Bold *Scalar `json:"bold,omitempty"` + Italic *Scalar `json:"italic,omitempty"` + Underline *Scalar `json:"underline,omitempty"` + Filled *Scalar `json:"filled,omitempty"` + DoubleBorder *Scalar `json:"doubleBorder,omitempty"` + TextTransform *Scalar `json:"textTransform,omitempty"` } // NoneTextTransform will return a boolean if the text should not have any @@ -399,6 +400,15 @@ func (s *Style) Apply(key, value string) error { return errors.New(`expected "multiple" to be true or false`) } s.Multiple.Value = value + case "multiple.opacity": + if s.MultipleOpacity == nil { + break + } + f, err := strconv.ParseFloat(value, 64) + if err != nil || (f < 0 || f > 1) { + return errors.New(`expected "opacity" to be a number between 0.0 and 1.0`) + } + s.MultipleOpacity.Value = value case "font": if s.Font == nil { break diff --git a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg index c0550e4644..598628dc9a 100644 --- a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg @@ -134,7 +134,7 @@ -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud diff --git a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg index dd26833b11..418a878db9 100644 --- a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg @@ -170,7 +170,7 @@ -NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND +NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND diff --git a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg index bc6b4a4eda..819b7b3844 100644 --- a/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/paper-real/sketch.exp.svg @@ -1216,7 +1216,7 @@ -NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND +NETWORKCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND diff --git a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg index 0bfab05357..f26423b23a 100644 --- a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg @@ -148,7 +148,7 @@ -NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST +NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST diff --git a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg index ae2b560505..cc6aecf47a 100644 --- a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg @@ -862,7 +862,7 @@ -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

Timeline mixer

+People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

Timeline mixer

  • Inject ads, who-to-follow, onboarding
  • Conversation module
  • diff --git a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg index 0366f1db8f..f8cf7f4ba7 100644 --- a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg @@ -862,7 +862,7 @@ -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    +People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

    Timeline mixer

    • Inject ads, who-to-follow, onboarding
    • Conversation module
    • diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index adf6c5d1a3..9f07da82ba 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -1326,6 +1326,11 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape opacityStyle = fmt.Sprintf(" style='opacity:%f'", targetShape.Opacity) } + multipleOpacityStyle := "" + if targetShape.MultipleOpacity != 1.0 { + multipleOpacityStyle = fmt.Sprintf(" opacity:%f", targetShape.MultipleOpacity) + } + // this clipPath must be defined outside `g` element if targetShape.BorderRadius != 0 && (targetShape.Type == d2target.ShapeClass || targetShape.Type == d2target.ShapeSQLTable) { fmt.Fprint(writer, clipPathForBorderRadius(diagramHash, targetShape)) @@ -1413,7 +1418,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape case d2target.ShapeOval: if targetShape.DoubleBorder { if targetShape.Multiple { - fmt.Fprint(writer, renderDoubleOval(multipleTL, width, height, fill, "", stroke, style, inlineTheme)) + fmt.Fprint(writer, renderDoubleOval(multipleTL, width, height, fill, "", stroke, style+multipleOpacityStyle, inlineTheme)) } if jsRunner != nil { out, err := d2sketch.DoubleOval(jsRunner, targetShape) @@ -1426,7 +1431,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape } } else { if targetShape.Multiple { - fmt.Fprint(writer, renderOval(multipleTL, width, height, fill, "", stroke, style, inlineTheme)) + fmt.Fprint(writer, renderOval(multipleTL, width, height, fill, "", stroke, style+multipleOpacityStyle, inlineTheme)) } if jsRunner != nil { out, err := d2sketch.Oval(jsRunner, targetShape) @@ -1472,7 +1477,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape el.Height = float64(targetShape.Height) el.Fill = fill el.Stroke = stroke - el.Style = style + el.Style = style + multipleOpacityStyle el.Rx = borderRadius fmt.Fprint(writer, el.Render()) } @@ -1505,7 +1510,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape el.Fill = fill el.FillPattern = targetShape.FillPattern el.Stroke = stroke - el.Style = style + el.Style = style + multipleOpacityStyle el.Rx = borderRadius fmt.Fprint(writer, el.Render()) @@ -1561,7 +1566,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape el := d2themes.NewThemableElement("path", inlineTheme) el.Fill = fill el.Stroke = stroke - el.Style = style + el.Style = style + multipleOpacityStyle for _, pathData := range multiplePathData { el.D = pathData fmt.Fprint(writer, el.Render()) @@ -1593,7 +1598,7 @@ func drawShape(writer, appendixWriter io.Writer, diagramHash string, targetShape el := d2themes.NewThemableElement("path", inlineTheme) el.Fill = fill el.Stroke = stroke - el.Style = style + el.Style = style + multipleOpacityStyle for _, pathData := range multiplePathData { el.D = pathData fmt.Fprint(writer, el.Render()) diff --git a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg index 6a0a734071..01117aa743 100644 --- a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg +++ b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg @@ -842,7 +842,7 @@ .d2-1329315803 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

      Timeline mixer

      +People discovery serviceAd mixerOnboarding serviceTwitter Frontend WebIphoneAndroidTimelineScorerHome RankerTimeline ServiceHome mixerManhattanGizmoduckSocial graphTweety PiePrediction ServiceHome ScorerManhattanMemcacheFetchFeatureScoringPrediction Service...etc

      Timeline mixer

      • Inject ads, who-to-follow, onboarding
      • Conversation module
      • diff --git a/d2target/d2target.go b/d2target/d2target.go index 4880c2859a..115e00a42f 100644 --- a/d2target/d2target.go +++ b/d2target/d2target.go @@ -497,11 +497,12 @@ type Shape struct { FillPattern string `json:"fillPattern,omitempty"` Stroke string `json:"stroke"` - Animated bool `json:"animated"` - Shadow bool `json:"shadow"` - ThreeDee bool `json:"3d"` - Multiple bool `json:"multiple"` - DoubleBorder bool `json:"double-border"` + Animated bool `json:"animated"` + Shadow bool `json:"shadow"` + ThreeDee bool `json:"3d"` + Multiple bool `json:"multiple"` + MultipleOpacity float64 `json:"multipleOpacity,omitempty"` + DoubleBorder bool `json:"double-border"` Tooltip string `json:"tooltip"` Link string `json:"link"` diff --git a/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg b/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg index 9cd6dfc88c..1f68039721 100644 --- a/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg +++ b/e2etests/testdata/patterns/multiple/dagre/sketch.exp.svg @@ -122,7 +122,7 @@ -rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud +rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud diff --git a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg index 95c78ab871..b33ffde13c 100644 --- a/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg +++ b/e2etests/testdata/patterns/real-lines/dagre/sketch.exp.svg @@ -145,7 +145,7 @@ -NETWORKcostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND +NETWORKcostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND diff --git a/e2etests/testdata/patterns/real/dagre/sketch.exp.svg b/e2etests/testdata/patterns/real/dagre/sketch.exp.svg index 81a0e0484f..f9d5ea982c 100644 --- a/e2etests/testdata/patterns/real/dagre/sketch.exp.svg +++ b/e2etests/testdata/patterns/real/dagre/sketch.exp.svg @@ -136,7 +136,7 @@ -NETWORKCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND +NETWORKCELL TOWERSATELLITESTRANSMITTER SENDSENDSEND diff --git a/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg index bf4ee9bc34..241b501d3a 100644 --- a/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/all_shapes_multiple/dagre/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-2407724796 .color-AA4{color:#EDF0FD;} .d2-2407724796 .color-AA5{color:#F7F8FE;} .d2-2407724796 .color-AB4{color:#EDF0FD;} - .d2-2407724796 .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-2407724796);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + .d2-2407724796 .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-2407724796);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2407724796);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2407724796);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2407724796);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2407724796);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud diff --git a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg index ce8fd43ffe..e18fd727d7 100644 --- a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-637431275 .color-AA4{color:#EDF0FD;} .d2-637431275 .color-AA5{color:#F7F8FE;} .d2-637431275 .color-AB4{color:#EDF0FD;} - .d2-637431275 .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-637431275);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud + .d2-637431275 .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-637431275);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-637431275);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-637431275);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-637431275);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-637431275);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloud diff --git a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg index a9ecea93f2..7e9115b248 100644 --- a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-448308156 .color-AA4{color:#EDF0FD;} .d2-448308156 .color-AA5{color:#F7F8FE;} .d2-448308156 .color-AB4{color:#EDF0FD;} - .d2-448308156 .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-448308156);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double + .d2-448308156 .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-448308156);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-448308156);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-448308156);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-448308156);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-448308156);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double three-dee diff --git a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg index b287706c10..9f402c5c8d 100644 --- a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-2886130221 .color-AA4{color:#EDF0FD;} .d2-2886130221 .color-AA5{color:#F7F8FE;} .d2-2886130221 .color-AB4{color:#EDF0FD;} - .d2-2886130221 .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-2886130221);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double + .d2-2886130221 .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-2886130221);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2886130221);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2886130221);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2886130221);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2886130221);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double three-dee diff --git a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg index a1570a2c43..689c5c109b 100644 --- a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-1236460180 .color-AA4{color:#EDF0FD;} .d2-1236460180 .color-AA5{color:#F7F8FE;} .d2-1236460180 .color-AB4{color:#EDF0FD;} - .d2-1236460180 .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-1236460180);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double + .d2-1236460180 .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-1236460180);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1236460180);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1236460180);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1236460180);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1236460180);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double three-dee diff --git a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg index 134bb62705..50d8343a2b 100644 --- a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-773068003 .color-AA4{color:#EDF0FD;} .d2-773068003 .color-AA5{color:#F7F8FE;} .d2-773068003 .color-AB4{color:#EDF0FD;} - .d2-773068003 .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-773068003);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double + .d2-773068003 .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-773068003);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-773068003);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-773068003);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-773068003);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-773068003);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>xymultiple2double three-dee diff --git a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg index 9ec11c0f2b..9bec44ded4 100644 --- a/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/elk_shim/dagre/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-183595053 .color-AA4{color:#EDF0FD;} .d2-183595053 .color-AA5{color:#F7F8FE;} .d2-183595053 .color-AB4{color:#EDF0FD;} - .d2-183595053 .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-183595053);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist + .d2-183595053 .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-183595053);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-183595053);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-183595053);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-183595053);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-183595053);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg index 1a8bdd668a..710f8c3900 100644 --- a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-2410870253 .color-AA4{color:#EDF0FD;} .d2-2410870253 .color-AA5{color:#F7F8FE;} .d2-2410870253 .color-AB4{color:#EDF0FD;} - .d2-2410870253 .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-2410870253);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist + .d2-2410870253 .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-2410870253);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2410870253);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2410870253);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2410870253);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2410870253);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>networkuserapi serverlogscell towerONLINE PORTALLLLdata processorsatellitestransmitteruistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg index 536fd41bbc..d09475bc55 100644 --- a/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/grid_outside_labels/dagre/sketch.exp.svg @@ -91,7 +91,7 @@ .d2-269116138 .color-AB4{color:#EDF0FD;} .d2-269116138 .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-269116138);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-269116138);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-269116138);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-269116138);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-269116138);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-269116138);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-269116138);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-269116138);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>___________________________________container____________________________________amscd plugin -braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ +braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ diff --git a/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg index 3af1b4ff77..dcef15f441 100644 --- a/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/grid_outside_labels/elk/sketch.exp.svg @@ -91,7 +91,7 @@ .d2-1333473382 .color-AB4{color:#EDF0FD;} .d2-1333473382 .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-1333473382);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1333473382);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1333473382);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1333473382);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1333473382);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1333473382);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1333473382);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1333473382);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>___________________________________container____________________________________amscd plugin -braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ +braket plugincancel plugincolor plugingensymb pluginmhchem pluginphysics pluginmultilinesasmµ diff --git a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg index 9dd1ba116a..ed57ebcfc1 100644 --- a/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/mono-font/dagre/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-3097297157 .color-AA4{color:#EDF0FD;} .d2-3097297157 .color-AA5{color:#F7F8FE;} .d2-3097297157 .color-AB4{color:#EDF0FD;} - .d2-3097297157 .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-3097297157);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND + .d2-3097297157 .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-3097297157);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3097297157);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3097297157);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3097297157);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3097297157);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND diff --git a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg index f1d5c800ee..9d6f0f1c4b 100644 --- a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-3660418575 .color-AA4{color:#EDF0FD;} .d2-3660418575 .color-AA5{color:#F7F8FE;} .d2-3660418575 .color-AB4{color:#EDF0FD;} - .d2-3660418575 .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-3660418575);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND + .d2-3660418575 .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-3660418575);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3660418575);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3660418575);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3660418575);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3660418575);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITESTRANSMITTER SENDSENDSEND diff --git a/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg index 248178ed5d..99bdc1bad4 100644 --- a/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_box_selection/dagre/sketch.exp.svg @@ -96,7 +96,7 @@ .d2-3028019976 .color-AA4{color:#EDF0FD;} .d2-3028019976 .color-AA5{color:#F7F8FE;} .d2-3028019976 .color-AB4{color:#EDF0FD;} - .d2-3028019976 .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-3028019976);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume + .d2-3028019976 .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-3028019976);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3028019976);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3028019976);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3028019976);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3028019976);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg index 0bf87bffae..9ff80086d9 100644 --- a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg @@ -96,7 +96,7 @@ .d2-2029988810 .color-AA4{color:#EDF0FD;} .d2-2029988810 .color-AA5{color:#F7F8FE;} .d2-2029988810 .color-AB4{color:#EDF0FD;} - .d2-2029988810 .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-2029988810);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume + .d2-2029988810 .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-2029988810);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2029988810);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2029988810);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2029988810);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2029988810);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>outerstartendvolume groupvolume definitionvolume diff --git a/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg index 1002cf3456..cf6a63388e 100644 --- a/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg @@ -96,21 +96,21 @@ .d2-3863633706 .color-AA4{color:#EDF0FD;} .d2-3863633706 .color-AA5{color:#F7F8FE;} .d2-3863633706 .color-AB4{color:#EDF0FD;} - .d2-3863633706 .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-3863633706);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 + .d2-3863633706 .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-3863633706);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3863633706);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3863633706);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3863633706);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3863633706);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 -n4n5 +n4n5 -n6n7 +n6n7 -n8n9 +n8n9 -n10aba +n10aba -baba +baba -bababab +bababab -abab +abab a diff --git a/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg index d21b4d5640..73b97f7bdb 100644 --- a/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg @@ -96,21 +96,21 @@ .d2-2956067749 .color-AA4{color:#EDF0FD;} .d2-2956067749 .color-AA5{color:#F7F8FE;} .d2-2956067749 .color-AB4{color:#EDF0FD;} - .d2-2956067749 .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-2956067749);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 + .d2-2956067749 .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-2956067749);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2956067749);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-2956067749);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-2956067749);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-2956067749);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 -n4n5 +n4n5 -n6n7 +n6n7 -n8n9 +n8n9 -n10aba +n10aba -baba +baba -bababab +bababab -abab +abab a diff --git a/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg index f1e00d8a18..2ec0479863 100644 --- a/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg @@ -96,21 +96,21 @@ .d2-1825809757 .color-AA4{color:#EDF0FD;} .d2-1825809757 .color-AA5{color:#F7F8FE;} .d2-1825809757 .color-AB4{color:#EDF0FD;} - .d2-1825809757 .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-1825809757);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 + .d2-1825809757 .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-1825809757);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1825809757);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1825809757);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1825809757);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1825809757);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 -n4n5 +n4n5 -n6n7 +n6n7 -n8n9 +n8n9 -n10aba +n10aba -baba +baba -bababab +bababab -abab +abab a diff --git a/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg index 66ca987b41..107f548894 100644 --- a/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg @@ -96,21 +96,21 @@ .d2-1207717161 .color-AA4{color:#EDF0FD;} .d2-1207717161 .color-AA5{color:#F7F8FE;} .d2-1207717161 .color-AB4{color:#EDF0FD;} - .d2-1207717161 .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-1207717161);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 + .d2-1207717161 .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-1207717161);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1207717161);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1207717161);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1207717161);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1207717161);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>n1n2n3 -n4n5 +n4n5 -n6n7 +n6n7 -n8n9 +n8n9 -n10aba +n10aba -baba +baba -bababab +bababab -abab +abab a diff --git a/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg index f903c47418..b4a9a202f4 100644 --- a/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_person_label/dagre/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-1389951319 .color-AA4{color:#EDF0FD;} .d2-1389951319 .color-AA5{color:#F7F8FE;} .d2-1389951319 .color-AB4{color:#EDF0FD;} - .d2-1389951319 .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-1389951319);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]> + .d2-1389951319 .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-1389951319);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-1389951319);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-1389951319);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-1389951319);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-1389951319);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]> \ No newline at end of file diff --git a/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg index e2f6d8d158..a8f4021d4a 100644 --- a/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/multiple_person_label/elk/sketch.exp.svg @@ -89,7 +89,7 @@ .d2-3688633770 .color-AA4{color:#EDF0FD;} .d2-3688633770 .color-AA5{color:#F7F8FE;} .d2-3688633770 .color-AB4{color:#EDF0FD;} - .d2-3688633770 .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-3688633770);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]> + .d2-3688633770 .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-3688633770);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-3688633770);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-3688633770);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-3688633770);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-3688633770);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]> \ No newline at end of file diff --git a/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg b/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg index 20cb561941..3d3e5eb371 100644 --- a/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/nesting_power/dagre/sketch.exp.svg @@ -111,7 +111,7 @@ -Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax +Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax ya_sequencea_shapesequencefinallybrow 1row 2row 3row 4row 5withasequence diagramyou canchild of is12341234scoreritemResponseitemessayRubricconceptsequencefrom one constant nearhaveanothergridhere andgrandchildscorerconceptessayRubricitemitemOutcomeitemResponse123continuenesting ororruns thisruns thisruns thisA straight edge across straight edge across nested typesdefault layoutdefault layoutdefault layout in styleto inside sequence diagramto inside sequence diagramto inside sequence diagramto constant nearfrom within constant nearto another getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)score diff --git a/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg b/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg index 188c115694..e28c01e57a 100644 --- a/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg +++ b/e2etests/testdata/stable/nesting_power/elk/sketch.exp.svg @@ -111,7 +111,7 @@ -Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax +Left Constant NearcenterdirectionsRight Constant NearseqmoreBottom Left Constant Neardefaultlayouthererectanglesquarepageparallelogramdocumentcylinderqueuepackagestepcalloutstored_datapersondiamondovalcirclehexagoncloudrightleftisconstantandalsogridscoreritemResponseitemessayRubricconceptitemOutcomestylishcontaineradagreelktalathisisgrid12341234updownnearax ya_sequencea_shapesequencefinallybrow 1row 2row 3row 4row 5withasequence diagramyou canchild of is12341234scoreritemResponseitemessayRubricconceptsequencefrom one constant nearhaveanothergridhere andgrandchildscorerconceptessayRubricitemitemOutcomeitemResponse123continuenesting ororruns thisruns thisruns thisA straight edge across straight edge across nested typesdefault layoutdefault layoutdefault layout in styleto inside sequence diagramto inside sequence diagramto inside sequence diagramto constant nearfrom within constant nearto another getItem() itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)score diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg index ac8a7c4b77..2d4f796329 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg @@ -856,7 +856,7 @@ .d2-85991054 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

        A tale

        +networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

        A tale

        • of
        • two cities
        • @@ -907,7 +907,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist +}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg index e50e5243af..a0262422eb 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg @@ -856,7 +856,7 @@ .d2-3004075822 .md .contains-task-list:dir(rtl) .task-list-item-checkbox { margin: 0 -1.6em 0.25em 0.2em; } -networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

          A tale

          +networkuserapi serverlogsusersidintnamestringemailstringpasswordstringlast_logindatetimeproducts+idint+pricedecimal+skustring+namestring

          A tale

          • of
          • two cities
          • @@ -907,7 +907,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist +}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg index e3cf978039..d86218a3a0 100644 --- a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg @@ -1167,7 +1167,7 @@ -通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する +通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する diff --git a/e2etests/testdata/themes/origami/elk/sketch.exp.svg b/e2etests/testdata/themes/origami/elk/sketch.exp.svg index e91f3025c5..9fce8b2515 100644 --- a/e2etests/testdata/themes/origami/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/origami/elk/sketch.exp.svg @@ -1167,7 +1167,7 @@ -通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する +通信網ユーザーOTHER-USERapi サーバーログCell Towerオンラインポータルデータプロセッサ衛星送信機ui保管所 sendSENDsend電話ログ電話をかける アクセス画面持続する diff --git a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg index 88ab4d9699..52133b595f 100644 --- a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg @@ -882,7 +882,7 @@ -NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

            A TALE

            +NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

            A TALE

            • OF
            • TWO CITIES
            • @@ -933,7 +933,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg index f9a6f116e5..b8e01941f9 100644 --- a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg @@ -882,7 +882,7 @@ -NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

              A TALE

              +NETWORKUSERAPI SERVERLOGSUSERSidintnamestringemailstringpasswordstringlast_logindatetimePRODUCTS+idint+pricedecimal+skustring+namestring

              A TALE

              • OF
              • TWO CITIES
              • @@ -933,7 +933,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg index e1d3ca1150..7a04cd2eb1 100644 --- a/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal_grayscale/dagre/sketch.exp.svg @@ -136,7 +136,7 @@ -NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST +NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg index a4b9a4f201..9dcd2f7c6d 100644 --- a/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal_grayscale/elk/sketch.exp.svg @@ -136,7 +136,7 @@ -NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST +NETWORKUSERAPI SERVERLOGSCell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDphone logsMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json b/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json new file mode 100644 index 0000000000..70f9fabc96 --- /dev/null +++ b/e2etests/testdata/txtar/multiple_opacity/dagre/board.exp.json @@ -0,0 +1,100 @@ +{ + "name": "", + "config": { + "sketch": false, + "themeID": 0, + "darkThemeID": null, + "pad": null, + "center": null, + "layoutEngine": null + }, + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "a", + "type": "rectangle", + "pos": { + "x": 0, + "y": 0 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": true, + "multipleOpacity": 0.5, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "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": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg new file mode 100644 index 0000000000..ecbb9af314 --- /dev/null +++ b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg @@ -0,0 +1,95 @@ +a + + + \ No newline at end of file diff --git a/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json b/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json new file mode 100644 index 0000000000..a2dd469a4c --- /dev/null +++ b/e2etests/testdata/txtar/multiple_opacity/elk/board.exp.json @@ -0,0 +1,100 @@ +{ + "name": "", + "config": { + "sketch": false, + "themeID": 0, + "darkThemeID": null, + "pad": null, + "center": null, + "layoutEngine": null + }, + "isFolderOnly": false, + "fontFamily": "SourceSansPro", + "shapes": [ + { + "id": "a", + "type": "rectangle", + "pos": { + "x": 12, + "y": 22 + }, + "width": 53, + "height": 66, + "opacity": 1, + "strokeDash": 0, + "strokeWidth": 2, + "borderRadius": 0, + "fill": "B6", + "stroke": "B1", + "animated": false, + "shadow": false, + "3d": false, + "multiple": true, + "multipleOpacity": 0.5, + "double-border": false, + "tooltip": "", + "link": "", + "icon": null, + "iconPosition": "", + "blend": false, + "fields": null, + "methods": null, + "columns": null, + "label": "a", + "fontSize": 16, + "fontFamily": "DEFAULT", + "language": "", + "color": "N1", + "italic": false, + "bold": true, + "underline": false, + "labelWidth": 8, + "labelHeight": 21, + "labelPosition": "INSIDE_MIDDLE_CENTER", + "zIndex": 0, + "level": 1 + } + ], + "connections": [], + "root": { + "id": "", + "type": "", + "pos": { + "x": 0, + "y": 0 + }, + "width": 0, + "height": 0, + "opacity": 0, + "strokeDash": 0, + "strokeWidth": 0, + "borderRadius": 0, + "fill": "N7", + "stroke": "", + "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": "", + "fontSize": 0, + "fontFamily": "", + "language": "", + "color": "", + "italic": false, + "bold": false, + "underline": false, + "labelWidth": 0, + "labelHeight": 0, + "zIndex": 0, + "level": 0 + } +} diff --git a/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg b/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg new file mode 100644 index 0000000000..8769828ec4 --- /dev/null +++ b/e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg @@ -0,0 +1,95 @@ +a + + + \ No newline at end of file diff --git a/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg b/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg index 42ab87e195..01aced3c91 100644 --- a/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/shape-animate/dagre/sketch.exp.svg @@ -144,7 +144,7 @@ -NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg b/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg index 7705f2aae4..9fd032ec22 100644 --- a/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/shape-animate/elk/sketch.exp.svg @@ -144,7 +144,7 @@ -NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE SENDSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg b/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg index e76a7cfb3b..938545edca 100644 --- a/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/theme-overrides/dagre/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-586632521 .color-AA4{color:#42A5F5;} .d2-586632521 .color-AA5{color:#90CAF9;} .d2-586632521 .color-AB4{color:#F44336;} - .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access + .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access diff --git a/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg b/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg index dc1b82e745..522f953e73 100644 --- a/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg +++ b/e2etests/testdata/txtar/theme-overrides/elk/sketch.exp.svg @@ -103,7 +103,7 @@ .d2-2010673424 .color-AA4{color:#42A5F5;} .d2-2010673424 .color-AA5{color:#90CAF9;} .d2-2010673424 .color-AB4{color:#F44336;} - .d2-2010673424 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access + .d2-2010673424 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-2010673424);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-2010673424);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-2010673424);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-2010673424);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access diff --git a/e2etests/txtar.txt b/e2etests/txtar.txt index 90fb07c1b0..20980d6f31 100644 --- a/e2etests/txtar.txt +++ b/e2etests/txtar.txt @@ -1190,3 +1190,11 @@ customer4: |md | { shape: c4-person } + +-- multiple opacity -- +a: { + style: { + multiple: true + multiple.opacity: 0.5 + } +} From 9ea469a76d2d2a24416b5cee88e676b75c71ba92 Mon Sep 17 00:00:00 2001 From: melsonic Date: Sun, 4 May 2025 23:59:06 +0530 Subject: [PATCH 02/10] update next.md --- ci/release/changelogs/next.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 4a04e7e04c..a8d6aaefb7 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -10,6 +10,7 @@ - `shape: c4-person` to render a person shape like what the C4 model prescribes [#2397](https://github.com/terrastruct/d2/pull/2397) - Icons: border-radius should work on icon [#2409](https://github.com/terrastruct/d2/issues/2409) - Diagram legends are implemented [#2416](https://github.com/terrastruct/d2/pull/2416) +- Ability to fade background shape on multiple style [#2509](https://github.com/terrastruct/d2/pull/2509) #### Improvements 🧹 From da130c76985c460d0bf04201da90a9592d6c81fa Mon Sep 17 00:00:00 2001 From: melsonic Date: Mon, 5 May 2025 00:05:20 +0530 Subject: [PATCH 03/10] update next.md --- ci/release/changelogs/next.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 65780a72c5..9460f6575d 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -1,4 +1,5 @@ #### Features 🚀 +- Ability to fade background shape on multiple style [#2509](https://github.com/terrastruct/d2/pull/2509) #### Improvements 🧹 From 7e3fbd78356cb725b687d33d3c3cfdb96fa62de4 Mon Sep 17 00:00:00 2001 From: melsonic Date: Mon, 5 May 2025 00:09:55 +0530 Subject: [PATCH 04/10] add txtar expected files --- e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg | 2 +- e2etests/testdata/txtar/multiple_opacity/elk/sketch.exp.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg index ecbb9af314..e93b7433fd 100644 --- a/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg +++ b/e2etests/testdata/txtar/multiple_opacity/dagre/sketch.exp.svg @@ -1,4 +1,4 @@ -logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access + .d2-586632521 .color-AB5{color:#FFCDD2;}.appendix text.text{fill:#2E2E2E}.md{--color-fg-default:#2E2E2E;--color-fg-muted:#2E2E2E;--color-fg-subtle:#595959;--color-canvas-default:#DCDCDC;--color-canvas-subtle:#DCDCDC;--color-border-default:#2E7D32;--color-border-muted:#66BB6A;--color-neutral-muted:#DCDCDC;--color-accent-fg:#66BB6A;--color-accent-emphasis:#66BB6A;--color-attention-subtle:#2E2E2E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-B2{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-B5{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-586632521);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-AA4{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-AB5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker-d2-586632521);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N4{fill:url(#streaks-dark-d2-586632521);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.sketch-overlay-N7{fill:url(#streaks-normal-d2-586632521);mix-blend-mode:color-burn}.light-code{display: block}.dark-code{display: none}]]>logsUserNetworkAPI ServercostumesidintPKsillinessintmonsterintlast_updatedtimestampmonstersidintPKmoviestringweightintlast_updatedtimestampCell TowerData ProcessorOnline PortalsatellitestransmitterStorageUI phone logsMake callpersistdisplay access From 871978ca592b3e408baaeaf37592617237d6afb5 Mon Sep 17 00:00:00 2001 From: melsonic Date: Sat, 17 May 2025 11:40:59 +0530 Subject: [PATCH 06/10] updated compile multiple style method --- d2ast/keywords.go | 11 +++++++---- d2compiler/compile.go | 39 +++++++++++++++++++++++++++++++++++---- d2graph/d2graph.go | 28 +++++++++++++++++++--------- 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/d2ast/keywords.go b/d2ast/keywords.go index a7ece2ef58..65b35e0ae3 100644 --- a/d2ast/keywords.go +++ b/d2ast/keywords.go @@ -64,10 +64,9 @@ var StyleKeywords = map[string]struct{}{ "text-transform": {}, // Only for shapes - "shadow": {}, - "multiple": {}, - "multiple.opacity": {}, - "double-border": {}, + "shadow": {}, + "multiple": {}, + "double-border": {}, // Only for squares "3d": {}, @@ -77,6 +76,10 @@ var StyleKeywords = map[string]struct{}{ "filled": {}, } +var CompositeStyleKeywords = map[string]string{ + "multiple": "opacity", +} + // TODO maybe autofmt should allow other values, and transform them to conform // e.g. left-center becomes center-left var NearConstantsArray = []string{ diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 8c35994093..9de79d9149 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -760,8 +760,7 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) { fields := f.Map().Fields for i := 0; i < len(fields); i++ { field := fields[i] - field.Name.SetString(f.Name.ScalarString() + "." + field.Name.ScalarString()) - c.compileStyleField(styles, field) + c.compileCompositeStyle(styles, field, f.Name.ScalarString()) } } if f.Primary() == nil { @@ -776,6 +775,31 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) { } } +func (c *compiler) compileCompositeStyle(styles *d2graph.Style, f *d2ir.Field, parent string) { + if _, ok := d2ast.CompositeStyleKeywords[strings.ToLower(parent)]; !(ok && f.Name.IsUnquoted()) { + c.errorf(f.LastRef().AST(), `invalid composite style keyword: "%s"`, f.Name.ScalarString()) + return + } + + allowedStyle := d2ast.CompositeStyleKeywords[strings.ToLower(parent)] + + if allowedStyle != strings.ToLower(f.Name.ScalarString()) { + c.errorf(f.LastRef().AST(), `invalid style "%s" for composite style keyword: "%s"`, f.Name.ScalarString(), parent) + } + + if f.Primary() == nil { + return + } + + compileCompositeStyleFieldInit(styles, f, parent) + scalar := f.Primary().Value + err := styles.ApplyComposite(f.Name.ScalarString(), scalar.ScalarString(), parent) + if err != nil { + c.errorf(scalar, err.Error()) + return + } +} + func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) { switch f.Name.ScalarString() { case "opacity": @@ -798,8 +822,6 @@ func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) { styles.ThreeDee = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "multiple": styles.Multiple = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} - case "multiple.opacity": - styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "font": styles.Font = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} case "font-size": @@ -823,6 +845,15 @@ func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) { } } +func compileCompositeStyleFieldInit(styles *d2graph.Style, f *d2ir.Field, parent string) { + switch f.Name.ScalarString() { + case "opacity": + if parent == "multiple" { + styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} + } + } +} + func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { edge, err := obj.Connect(e.ID.SrcPath, e.ID.DstPath, e.ID.SrcArrow, e.ID.DstArrow, "") if err != nil { diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index f97769f4ed..5d4d401c2d 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -400,15 +400,6 @@ func (s *Style) Apply(key, value string) error { return errors.New(`expected "multiple" to be true or false`) } s.Multiple.Value = value - case "multiple.opacity": - if s.MultipleOpacity == nil { - break - } - f, err := strconv.ParseFloat(value, 64) - if err != nil || (f < 0 || f > 1) { - return errors.New(`expected "opacity" to be a number between 0.0 and 1.0`) - } - s.MultipleOpacity.Value = value case "font": if s.Font == nil { break @@ -503,6 +494,25 @@ func (s *Style) Apply(key, value string) error { return nil } +func (s *Style) ApplyComposite(key, value, parent string) error { + switch key { + case "opacity": + f, err := strconv.ParseFloat(value, 64) + if err != nil || (f < 0 || f > 1) { + return errors.New(`expected "opacity" to be a number between 0.0 and 1.0`) + } + if parent == "multiple" { + if s.MultipleOpacity == nil { + break + } + s.MultipleOpacity.Value = value + } + default: + return fmt.Errorf("unknown style key: %s", key) + } + return nil +} + type ContainerLevel int func (l ContainerLevel) LabelSize() int { From 8bacca9ef86fa3d5cb122ccea231894b151441a3 Mon Sep 17 00:00:00 2001 From: melsonic Date: Sat, 28 Jun 2025 12:58:59 +0530 Subject: [PATCH 07/10] update apply multipleopacity logic --- .vscode/launch.json | 16 ++++++++ d2compiler/compile.go | 65 ++++++++++++----------------- d2graph/d2graph.go | 22 +++------- test.d2 | 6 +++ test.svg | 95 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 150 insertions(+), 54 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 test.d2 create mode 100644 test.svg diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..826a339c46 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${workspaceFolder}/main.go", + "args": ["test.d2"] + } + ] +} \ No newline at end of file diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 9de79d9149..ac3c48c2b3 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -756,44 +756,42 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) { c.errorf(f.LastRef().AST(), `invalid style keyword: "%s"`, f.Name.ScalarString()) return } + if f.Map() != nil { - fields := f.Map().Fields - for i := 0; i < len(fields); i++ { - field := fields[i] - c.compileCompositeStyle(styles, field, f.Name.ScalarString()) + for _, ff := range f.Map().Fields { + if ff.Name.ScalarString() == "opacity" && ff.Name.IsUnquoted() { + if ff.Primary() == nil { + c.errorf(ff.LastPrimaryKey(), `invalid "opacity" field`) + } else { + scalar := ff.Primary().Value + switch f.Name.ScalarString() { + case "multiple": + styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} + err := styles.Apply(f.Name.ScalarString()+ff.Name.ScalarString(), scalar.ScalarString()) + if err != nil { + c.errorf(scalar, err.Error()) + return + } + default: + c.errorf(f.Name, `invalid "opacity" style for "%s"`, f.Name.ScalarString()) + return + } + } + } else { + if ff.LastPrimaryKey() != nil { + c.errorf(ff.LastPrimaryKey(), `unexpected field %s`, ff.Name.ScalarString()) + } + } } } - if f.Primary() == nil { - return - } - compileStyleFieldInit(styles, f) - scalar := f.Primary().Value - err := styles.Apply(f.Name.ScalarString(), scalar.ScalarString()) - if err != nil { - c.errorf(scalar, err.Error()) - return - } -} - -func (c *compiler) compileCompositeStyle(styles *d2graph.Style, f *d2ir.Field, parent string) { - if _, ok := d2ast.CompositeStyleKeywords[strings.ToLower(parent)]; !(ok && f.Name.IsUnquoted()) { - c.errorf(f.LastRef().AST(), `invalid composite style keyword: "%s"`, f.Name.ScalarString()) - return - } - - allowedStyle := d2ast.CompositeStyleKeywords[strings.ToLower(parent)] - - if allowedStyle != strings.ToLower(f.Name.ScalarString()) { - c.errorf(f.LastRef().AST(), `invalid style "%s" for composite style keyword: "%s"`, f.Name.ScalarString(), parent) - } if f.Primary() == nil { return } + compileStyleFieldInit(styles, f) - compileCompositeStyleFieldInit(styles, f, parent) scalar := f.Primary().Value - err := styles.ApplyComposite(f.Name.ScalarString(), scalar.ScalarString(), parent) + err := styles.Apply(f.Name.ScalarString(), scalar.ScalarString()) if err != nil { c.errorf(scalar, err.Error()) return @@ -845,15 +843,6 @@ func compileStyleFieldInit(styles *d2graph.Style, f *d2ir.Field) { } } -func compileCompositeStyleFieldInit(styles *d2graph.Style, f *d2ir.Field, parent string) { - switch f.Name.ScalarString() { - case "opacity": - if parent == "multiple" { - styles.MultipleOpacity = &d2graph.Scalar{MapKey: f.LastPrimaryKey()} - } - } -} - func (c *compiler) compileEdge(obj *d2graph.Object, e *d2ir.Edge) { edge, err := obj.Connect(e.ID.SrcPath, e.ID.DstPath, e.ID.SrcArrow, e.ID.DstArrow, "") if err != nil { diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 5d4d401c2d..c1b8da11c1 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -487,29 +487,19 @@ func (s *Style) Apply(key, value string) error { return fmt.Errorf(`expected "text-transform" to be one of (%s)`, strings.Join(d2ast.TextTransforms, ", ")) } s.TextTransform.Value = value - default: - return fmt.Errorf("unknown style key: %s", key) - } - - return nil -} - -func (s *Style) ApplyComposite(key, value, parent string) error { - switch key { - case "opacity": + case "multipleopacity": + if s.MultipleOpacity == nil { + break + } f, err := strconv.ParseFloat(value, 64) if err != nil || (f < 0 || f > 1) { return errors.New(`expected "opacity" to be a number between 0.0 and 1.0`) } - if parent == "multiple" { - if s.MultipleOpacity == nil { - break - } - s.MultipleOpacity.Value = value - } + s.MultipleOpacity.Value = value default: return fmt.Errorf("unknown style key: %s", key) } + return nil } diff --git a/test.d2 b/test.d2 new file mode 100644 index 0000000000..a2d2d75ff3 --- /dev/null +++ b/test.d2 @@ -0,0 +1,6 @@ +xx: { + style: { + multiple: true + fill.opacity: 0.1 + } +} \ No newline at end of file diff --git a/test.svg b/test.svg new file mode 100644 index 0000000000..e18a2ce5dd --- /dev/null +++ b/test.svg @@ -0,0 +1,95 @@ +xx + + + From 8083fb25987814747dfb565a6a5ff710c18c143d Mon Sep 17 00:00:00 2001 From: melsonic Date: Sat, 28 Jun 2025 13:00:55 +0530 Subject: [PATCH 08/10] clean up --- .vscode/launch.json | 16 -------- test.d2 | 6 --- test.svg | 95 --------------------------------------------- 3 files changed, 117 deletions(-) delete mode 100644 .vscode/launch.json delete mode 100644 test.d2 delete mode 100644 test.svg diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 826a339c46..0000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Package", - "type": "go", - "request": "launch", - "mode": "auto", - "program": "${workspaceFolder}/main.go", - "args": ["test.d2"] - } - ] -} \ No newline at end of file diff --git a/test.d2 b/test.d2 deleted file mode 100644 index a2d2d75ff3..0000000000 --- a/test.d2 +++ /dev/null @@ -1,6 +0,0 @@ -xx: { - style: { - multiple: true - fill.opacity: 0.1 - } -} \ No newline at end of file diff --git a/test.svg b/test.svg deleted file mode 100644 index e18a2ce5dd..0000000000 --- a/test.svg +++ /dev/null @@ -1,95 +0,0 @@ -xx - - - From 8fb989dd964cf2a38813b2d0b0be5494ad252fdc Mon Sep 17 00:00:00 2001 From: melsonic Date: Sat, 28 Jun 2025 13:10:26 +0530 Subject: [PATCH 09/10] clean up --- d2ast/keywords.go | 4 ---- d2compiler/compile.go | 1 - 2 files changed, 5 deletions(-) diff --git a/d2ast/keywords.go b/d2ast/keywords.go index 65b35e0ae3..ad3d68b8a3 100644 --- a/d2ast/keywords.go +++ b/d2ast/keywords.go @@ -76,10 +76,6 @@ var StyleKeywords = map[string]struct{}{ "filled": {}, } -var CompositeStyleKeywords = map[string]string{ - "multiple": "opacity", -} - // TODO maybe autofmt should allow other values, and transform them to conform // e.g. left-center becomes center-left var NearConstantsArray = []string{ diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 4be2266149..512476b335 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -789,7 +789,6 @@ func (c *compiler) compileStyleField(styles *d2graph.Style, f *d2ir.Field) { return } compileStyleFieldInit(styles, f) - scalar := f.Primary().Value err := styles.Apply(f.Name.ScalarString(), scalar.ScalarString()) if err != nil { From ffb39df43dfaba93aa8127ba38108493e3e56070 Mon Sep 17 00:00:00 2001 From: melsonic Date: Sat, 28 Jun 2025 14:30:00 +0530 Subject: [PATCH 10/10] update test .exp files --- d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg | 2 +- .../themes/dark_terrastruct_flagship/dagre/sketch.exp.svg | 2 +- .../themes/dark_terrastruct_flagship/elk/sketch.exp.svg | 2 +- e2etests/testdata/themes/terminal/dagre/sketch.exp.svg | 2 +- e2etests/testdata/themes/terminal/elk/sketch.exp.svg | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg index ad7efbacff..c941dfc790 100644 --- a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg +++ b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg @@ -170,7 +170,7 @@ -NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND +NETWORKD2 Parser+readerio.RuneReader+readerPosd2ast.Position-lookahead[]rune#peekn(n int)(s string, eof bool)+peek()(r rune, eof bool)+rewind()void+commit()voidCELL TOWERSATELLITESTRANSMITTER SEND SEND SEND diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg index 8c0ed47e8c..14a4b31d35 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg @@ -907,7 +907,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist +}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg index 60248c830a..da6353a709 100644 --- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg @@ -907,7 +907,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist +}Cell Toweronline portaldata processorsatellitesTRANSMITTERuistorage sendsendsendphone logsmake call accessdisplaypersist diff --git a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg index 671cdbd741..450d821085 100644 --- a/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/dagre/sketch.exp.svg @@ -933,7 +933,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST diff --git a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg index a02d965817..3401dfff78 100644 --- a/e2etests/testdata/themes/terminal/elk/sketch.exp.svg +++ b/e2etests/testdata/themes/terminal/elk/sketch.exp.svg @@ -933,7 +933,7 @@     city2 := City{Name: "CityB", Population: 1200000}     tellTale(city1, city2) -}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST +}Cell TowerONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE sendSENDSENDPHONE LOGSMAKE CALL ACCESSDISPLAYPERSIST