diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md
index 4c987851e..2d7fa50bb 100644
--- a/ci/release/changelogs/next.md
+++ b/ci/release/changelogs/next.md
@@ -5,6 +5,7 @@
#### Improvements 🧹
- Labels on parallel `dagre` connections include a gap between them [#1134](https://github.com/terrastruct/d2/pull/1134)
+- Sequence Diagram `Lifelines` now inherit the Actor `stroke` and `stroke-dash` [#1140](https://github.com/terrastruct/d2/pull/1140)
#### Bugfixes ⛑️
diff --git a/d2layouts/d2sequence/sequence_diagram.go b/d2layouts/d2sequence/sequence_diagram.go
index f30307d7d..c67d146bd 100644
--- a/d2layouts/d2sequence/sequence_diagram.go
+++ b/d2layouts/d2sequence/sequence_diagram.go
@@ -386,15 +386,21 @@ func (sd *sequenceDiagram) addLifelineEdges() {
}
actorLifelineEnd := actor.Center()
actorLifelineEnd.Y = endY
+ style := d2graph.Style{
+ StrokeDash: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_DASH)},
+ StrokeWidth: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_WIDTH)},
+ }
+ if actor.Attributes.Style.StrokeDash != nil {
+ style.StrokeDash = &d2graph.Scalar{Value: actor.Attributes.Style.StrokeDash.Value}
+ }
+ if actor.Attributes.Style.Stroke != nil {
+ style.Stroke = &d2graph.Scalar{Value: actor.Attributes.Style.Stroke.Value}
+ }
+
sd.lifelines = append(sd.lifelines, &d2graph.Edge{
- Attributes: &d2graph.Attributes{
- Style: d2graph.Style{
- StrokeDash: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_DASH)},
- StrokeWidth: &d2graph.Scalar{Value: fmt.Sprintf("%d", LIFELINE_STROKE_WIDTH)},
- },
- },
- Src: actor,
- SrcArrow: false,
+ Attributes: &d2graph.Attributes{Style: style},
+ Src: actor,
+ SrcArrow: false,
Dst: &d2graph.Object{
ID: actor.ID + fmt.Sprintf("-lifeline-end-%d", go2.StringToIntHash(actor.ID+"-lifeline-end")),
},
diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go
index 14d123267..2c9a5d447 100644
--- a/e2etests/stable_test.go
+++ b/e2etests/stable_test.go
@@ -1487,8 +1487,13 @@ finally: {
sequence: {
shape: sequence_diagram
# items appear in this order
- scorer
- concept
+ scorer {
+ style.stroke: red
+ style.stroke-dash: 2
+ }
+ concept {
+ style.stroke-width: 6
+ }
essayRubric
item
itemOutcome
diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json
index ccb472b3b..fc722c210 100644
--- a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/board.exp.json
@@ -1302,7 +1302,7 @@
"opacity": 1,
"strokeDash": 6,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg
index 7c63dcf9e..b25f099d6 100644
--- a/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_nested_span/dagre/sketch.exp.svg
@@ -1,9 +1,9 @@
-
\ No newline at end of file
diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json
index ccb472b3b..fc722c210 100644
--- a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/board.exp.json
@@ -1302,7 +1302,7 @@
"opacity": 1,
"strokeDash": 6,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg
index 7c63dcf9e..b25f099d6 100644
--- a/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_nested_span/elk/sketch.exp.svg
@@ -1,9 +1,9 @@
-scoreritemResponseitemessayRubricconceptitemOutcome
+ .d2-2574879239 .fill-N1{fill:#0A0F25;}
+ .d2-2574879239 .fill-N2{fill:#676C7E;}
+ .d2-2574879239 .fill-N3{fill:#9499AB;}
+ .d2-2574879239 .fill-N4{fill:#CFD2DD;}
+ .d2-2574879239 .fill-N5{fill:#DEE1EB;}
+ .d2-2574879239 .fill-N6{fill:#EEF1F8;}
+ .d2-2574879239 .fill-N7{fill:#FFFFFF;}
+ .d2-2574879239 .fill-B1{fill:#0D32B2;}
+ .d2-2574879239 .fill-B2{fill:#0D32B2;}
+ .d2-2574879239 .fill-B3{fill:#E3E9FD;}
+ .d2-2574879239 .fill-B4{fill:#E3E9FD;}
+ .d2-2574879239 .fill-B5{fill:#EDF0FD;}
+ .d2-2574879239 .fill-B6{fill:#F7F8FE;}
+ .d2-2574879239 .fill-AA2{fill:#4A6FF3;}
+ .d2-2574879239 .fill-AA4{fill:#EDF0FD;}
+ .d2-2574879239 .fill-AA5{fill:#F7F8FE;}
+ .d2-2574879239 .fill-AB4{fill:#EDF0FD;}
+ .d2-2574879239 .fill-AB5{fill:#F7F8FE;}
+ .d2-2574879239 .stroke-N1{stroke:#0A0F25;}
+ .d2-2574879239 .stroke-N2{stroke:#676C7E;}
+ .d2-2574879239 .stroke-N3{stroke:#9499AB;}
+ .d2-2574879239 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2574879239 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2574879239 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2574879239 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2574879239 .stroke-B1{stroke:#0D32B2;}
+ .d2-2574879239 .stroke-B2{stroke:#0D32B2;}
+ .d2-2574879239 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2574879239 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2574879239 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2574879239 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2574879239 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2574879239 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2574879239 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2574879239 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2574879239 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2574879239 .background-color-N1{background-color:#0A0F25;}
+ .d2-2574879239 .background-color-N2{background-color:#676C7E;}
+ .d2-2574879239 .background-color-N3{background-color:#9499AB;}
+ .d2-2574879239 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2574879239 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2574879239 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2574879239 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2574879239 .background-color-B1{background-color:#0D32B2;}
+ .d2-2574879239 .background-color-B2{background-color:#0D32B2;}
+ .d2-2574879239 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2574879239 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2574879239 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2574879239 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2574879239 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2574879239 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2574879239 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2574879239 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2574879239 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2574879239 .color-N1{color:#0A0F25;}
+ .d2-2574879239 .color-N2{color:#676C7E;}
+ .d2-2574879239 .color-N3{color:#9499AB;}
+ .d2-2574879239 .color-N4{color:#CFD2DD;}
+ .d2-2574879239 .color-N5{color:#DEE1EB;}
+ .d2-2574879239 .color-N6{color:#EEF1F8;}
+ .d2-2574879239 .color-N7{color:#FFFFFF;}
+ .d2-2574879239 .color-B1{color:#0D32B2;}
+ .d2-2574879239 .color-B2{color:#0D32B2;}
+ .d2-2574879239 .color-B3{color:#E3E9FD;}
+ .d2-2574879239 .color-B4{color:#E3E9FD;}
+ .d2-2574879239 .color-B5{color:#EDF0FD;}
+ .d2-2574879239 .color-B6{color:#F7F8FE;}
+ .d2-2574879239 .color-AA2{color:#4A6FF3;}
+ .d2-2574879239 .color-AA4{color:#EDF0FD;}
+ .d2-2574879239 .color-AA5{color:#F7F8FE;}
+ .d2-2574879239 .color-AB4{color:#EDF0FD;}
+ .d2-2574879239 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>scoreritemResponseitemessayRubricconceptitemOutcome
\ No newline at end of file
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
index f0397629b..b1f454427 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/board.exp.json
@@ -621,7 +621,7 @@
"opacity": 1,
"strokeDash": 6,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
index a8ef0c3b9..ff3e33125 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_simple/dagre/sketch.exp.svg
@@ -1,16 +1,16 @@
-AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response
+ .d2-3170632497 .fill-N1{fill:#0A0F25;}
+ .d2-3170632497 .fill-N2{fill:#676C7E;}
+ .d2-3170632497 .fill-N3{fill:#9499AB;}
+ .d2-3170632497 .fill-N4{fill:#CFD2DD;}
+ .d2-3170632497 .fill-N5{fill:#DEE1EB;}
+ .d2-3170632497 .fill-N6{fill:#EEF1F8;}
+ .d2-3170632497 .fill-N7{fill:#FFFFFF;}
+ .d2-3170632497 .fill-B1{fill:#0D32B2;}
+ .d2-3170632497 .fill-B2{fill:#0D32B2;}
+ .d2-3170632497 .fill-B3{fill:#E3E9FD;}
+ .d2-3170632497 .fill-B4{fill:#E3E9FD;}
+ .d2-3170632497 .fill-B5{fill:#EDF0FD;}
+ .d2-3170632497 .fill-B6{fill:#F7F8FE;}
+ .d2-3170632497 .fill-AA2{fill:#4A6FF3;}
+ .d2-3170632497 .fill-AA4{fill:#EDF0FD;}
+ .d2-3170632497 .fill-AA5{fill:#F7F8FE;}
+ .d2-3170632497 .fill-AB4{fill:#EDF0FD;}
+ .d2-3170632497 .fill-AB5{fill:#F7F8FE;}
+ .d2-3170632497 .stroke-N1{stroke:#0A0F25;}
+ .d2-3170632497 .stroke-N2{stroke:#676C7E;}
+ .d2-3170632497 .stroke-N3{stroke:#9499AB;}
+ .d2-3170632497 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3170632497 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3170632497 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3170632497 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3170632497 .stroke-B1{stroke:#0D32B2;}
+ .d2-3170632497 .stroke-B2{stroke:#0D32B2;}
+ .d2-3170632497 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3170632497 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3170632497 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3170632497 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3170632497 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3170632497 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3170632497 .background-color-N1{background-color:#0A0F25;}
+ .d2-3170632497 .background-color-N2{background-color:#676C7E;}
+ .d2-3170632497 .background-color-N3{background-color:#9499AB;}
+ .d2-3170632497 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3170632497 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3170632497 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3170632497 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3170632497 .background-color-B1{background-color:#0D32B2;}
+ .d2-3170632497 .background-color-B2{background-color:#0D32B2;}
+ .d2-3170632497 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3170632497 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3170632497 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3170632497 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3170632497 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3170632497 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3170632497 .color-N1{color:#0A0F25;}
+ .d2-3170632497 .color-N2{color:#676C7E;}
+ .d2-3170632497 .color-N3{color:#9499AB;}
+ .d2-3170632497 .color-N4{color:#CFD2DD;}
+ .d2-3170632497 .color-N5{color:#DEE1EB;}
+ .d2-3170632497 .color-N6{color:#EEF1F8;}
+ .d2-3170632497 .color-N7{color:#FFFFFF;}
+ .d2-3170632497 .color-B1{color:#0D32B2;}
+ .d2-3170632497 .color-B2{color:#0D32B2;}
+ .d2-3170632497 .color-B3{color:#E3E9FD;}
+ .d2-3170632497 .color-B4{color:#E3E9FD;}
+ .d2-3170632497 .color-B5{color:#EDF0FD;}
+ .d2-3170632497 .color-B6{color:#F7F8FE;}
+ .d2-3170632497 .color-AA2{color:#4A6FF3;}
+ .d2-3170632497 .color-AA4{color:#EDF0FD;}
+ .d2-3170632497 .color-AA5{color:#F7F8FE;}
+ .d2-3170632497 .color-AB4{color:#EDF0FD;}
+ .d2-3170632497 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
index f0397629b..b1f454427 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/board.exp.json
@@ -621,7 +621,7 @@
"opacity": 1,
"strokeDash": 6,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
index a8ef0c3b9..ff3e33125 100644
--- a/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagram_simple/elk/sketch.exp.svg
@@ -1,16 +1,16 @@
-AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response
+ .d2-3170632497 .fill-N1{fill:#0A0F25;}
+ .d2-3170632497 .fill-N2{fill:#676C7E;}
+ .d2-3170632497 .fill-N3{fill:#9499AB;}
+ .d2-3170632497 .fill-N4{fill:#CFD2DD;}
+ .d2-3170632497 .fill-N5{fill:#DEE1EB;}
+ .d2-3170632497 .fill-N6{fill:#EEF1F8;}
+ .d2-3170632497 .fill-N7{fill:#FFFFFF;}
+ .d2-3170632497 .fill-B1{fill:#0D32B2;}
+ .d2-3170632497 .fill-B2{fill:#0D32B2;}
+ .d2-3170632497 .fill-B3{fill:#E3E9FD;}
+ .d2-3170632497 .fill-B4{fill:#E3E9FD;}
+ .d2-3170632497 .fill-B5{fill:#EDF0FD;}
+ .d2-3170632497 .fill-B6{fill:#F7F8FE;}
+ .d2-3170632497 .fill-AA2{fill:#4A6FF3;}
+ .d2-3170632497 .fill-AA4{fill:#EDF0FD;}
+ .d2-3170632497 .fill-AA5{fill:#F7F8FE;}
+ .d2-3170632497 .fill-AB4{fill:#EDF0FD;}
+ .d2-3170632497 .fill-AB5{fill:#F7F8FE;}
+ .d2-3170632497 .stroke-N1{stroke:#0A0F25;}
+ .d2-3170632497 .stroke-N2{stroke:#676C7E;}
+ .d2-3170632497 .stroke-N3{stroke:#9499AB;}
+ .d2-3170632497 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3170632497 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3170632497 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3170632497 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3170632497 .stroke-B1{stroke:#0D32B2;}
+ .d2-3170632497 .stroke-B2{stroke:#0D32B2;}
+ .d2-3170632497 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3170632497 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3170632497 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3170632497 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3170632497 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3170632497 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3170632497 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3170632497 .background-color-N1{background-color:#0A0F25;}
+ .d2-3170632497 .background-color-N2{background-color:#676C7E;}
+ .d2-3170632497 .background-color-N3{background-color:#9499AB;}
+ .d2-3170632497 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3170632497 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3170632497 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3170632497 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3170632497 .background-color-B1{background-color:#0D32B2;}
+ .d2-3170632497 .background-color-B2{background-color:#0D32B2;}
+ .d2-3170632497 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3170632497 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3170632497 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3170632497 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3170632497 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3170632497 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3170632497 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3170632497 .color-N1{color:#0A0F25;}
+ .d2-3170632497 .color-N2{color:#676C7E;}
+ .d2-3170632497 .color-N3{color:#9499AB;}
+ .d2-3170632497 .color-N4{color:#CFD2DD;}
+ .d2-3170632497 .color-N5{color:#DEE1EB;}
+ .d2-3170632497 .color-N6{color:#EEF1F8;}
+ .d2-3170632497 .color-N7{color:#FFFFFF;}
+ .d2-3170632497 .color-B1{color:#0D32B2;}
+ .d2-3170632497 .color-B2{color:#0D32B2;}
+ .d2-3170632497 .color-B3{color:#E3E9FD;}
+ .d2-3170632497 .color-B4{color:#E3E9FD;}
+ .d2-3170632497 .color-B5{color:#EDF0FD;}
+ .d2-3170632497 .color-B6{color:#F7F8FE;}
+ .d2-3170632497 .color-AA2{color:#4A6FF3;}
+ .d2-3170632497 .color-AA4{color:#EDF0FD;}
+ .d2-3170632497 .color-AA5{color:#F7F8FE;}
+ .d2-3170632497 .color-AB4{color:#EDF0FD;}
+ .d2-3170632497 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>AlicelinebreakerBobdbqueueanoddservicewithanameinmultiple lines Authentication Requestmake request for something that is quite far away and requires a really long label to take all the space between the objectsvalidate credentials Authentication ResponseAnother authentication Requestdo it later storedAnother authentication Response
diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
index b9e768aac..c51806b42 100644
--- a/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagrams/dagre/board.exp.json
@@ -1672,11 +1672,11 @@
"width": 100,
"height": 66,
"opacity": 1,
- "strokeDash": 0,
+ "strokeDash": 2,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
- "stroke": "B1",
+ "stroke": "red",
"shadow": false,
"3d": false,
"multiple": false,
@@ -1714,7 +1714,7 @@
"height": 66,
"opacity": 1,
"strokeDash": 0,
- "strokeWidth": 2,
+ "strokeWidth": 6,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
@@ -4744,9 +4744,9 @@
"dstArrow": "none",
"dstLabel": "",
"opacity": 1,
- "strokeDash": 6,
+ "strokeDash": 2,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
index 2cdbe42cc..e01a45c4a 100644
--- a/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagrams/dagre/sketch.exp.svg
@@ -1,23 +1,23 @@
-a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)
+ .d2-3948469414 .fill-N1{fill:#0A0F25;}
+ .d2-3948469414 .fill-N2{fill:#676C7E;}
+ .d2-3948469414 .fill-N3{fill:#9499AB;}
+ .d2-3948469414 .fill-N4{fill:#CFD2DD;}
+ .d2-3948469414 .fill-N5{fill:#DEE1EB;}
+ .d2-3948469414 .fill-N6{fill:#EEF1F8;}
+ .d2-3948469414 .fill-N7{fill:#FFFFFF;}
+ .d2-3948469414 .fill-B1{fill:#0D32B2;}
+ .d2-3948469414 .fill-B2{fill:#0D32B2;}
+ .d2-3948469414 .fill-B3{fill:#E3E9FD;}
+ .d2-3948469414 .fill-B4{fill:#E3E9FD;}
+ .d2-3948469414 .fill-B5{fill:#EDF0FD;}
+ .d2-3948469414 .fill-B6{fill:#F7F8FE;}
+ .d2-3948469414 .fill-AA2{fill:#4A6FF3;}
+ .d2-3948469414 .fill-AA4{fill:#EDF0FD;}
+ .d2-3948469414 .fill-AA5{fill:#F7F8FE;}
+ .d2-3948469414 .fill-AB4{fill:#EDF0FD;}
+ .d2-3948469414 .fill-AB5{fill:#F7F8FE;}
+ .d2-3948469414 .stroke-N1{stroke:#0A0F25;}
+ .d2-3948469414 .stroke-N2{stroke:#676C7E;}
+ .d2-3948469414 .stroke-N3{stroke:#9499AB;}
+ .d2-3948469414 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3948469414 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3948469414 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3948469414 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3948469414 .stroke-B1{stroke:#0D32B2;}
+ .d2-3948469414 .stroke-B2{stroke:#0D32B2;}
+ .d2-3948469414 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3948469414 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3948469414 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3948469414 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3948469414 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3948469414 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3948469414 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3948469414 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3948469414 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3948469414 .background-color-N1{background-color:#0A0F25;}
+ .d2-3948469414 .background-color-N2{background-color:#676C7E;}
+ .d2-3948469414 .background-color-N3{background-color:#9499AB;}
+ .d2-3948469414 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3948469414 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3948469414 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3948469414 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3948469414 .background-color-B1{background-color:#0D32B2;}
+ .d2-3948469414 .background-color-B2{background-color:#0D32B2;}
+ .d2-3948469414 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3948469414 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3948469414 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3948469414 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3948469414 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3948469414 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3948469414 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3948469414 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3948469414 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3948469414 .color-N1{color:#0A0F25;}
+ .d2-3948469414 .color-N2{color:#676C7E;}
+ .d2-3948469414 .color-N3{color:#9499AB;}
+ .d2-3948469414 .color-N4{color:#CFD2DD;}
+ .d2-3948469414 .color-N5{color:#DEE1EB;}
+ .d2-3948469414 .color-N6{color:#EEF1F8;}
+ .d2-3948469414 .color-N7{color:#FFFFFF;}
+ .d2-3948469414 .color-B1{color:#0D32B2;}
+ .d2-3948469414 .color-B2{color:#0D32B2;}
+ .d2-3948469414 .color-B3{color:#E3E9FD;}
+ .d2-3948469414 .color-B4{color:#E3E9FD;}
+ .d2-3948469414 .color-B5{color:#EDF0FD;}
+ .d2-3948469414 .color-B6{color:#F7F8FE;}
+ .d2-3948469414 .color-AA2{color:#4A6FF3;}
+ .d2-3948469414 .color-AA4{color:#EDF0FD;}
+ .d2-3948469414 .color-AA5{color:#F7F8FE;}
+ .d2-3948469414 .color-AB4{color:#EDF0FD;}
+ .d2-3948469414 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)
diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
index 4f32b4090..32d8460cf 100644
--- a/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
+++ b/e2etests/testdata/stable/sequence_diagrams/elk/board.exp.json
@@ -1672,11 +1672,11 @@
"width": 100,
"height": 66,
"opacity": 1,
- "strokeDash": 0,
+ "strokeDash": 2,
"strokeWidth": 2,
"borderRadius": 0,
"fill": "B5",
- "stroke": "B1",
+ "stroke": "red",
"shadow": false,
"3d": false,
"multiple": false,
@@ -1714,7 +1714,7 @@
"height": 66,
"opacity": 1,
"strokeDash": 0,
- "strokeWidth": 2,
+ "strokeWidth": 6,
"borderRadius": 0,
"fill": "B5",
"stroke": "B1",
@@ -4655,9 +4655,9 @@
"dstArrow": "none",
"dstLabel": "",
"opacity": 1,
- "strokeDash": 6,
+ "strokeDash": 2,
"strokeWidth": 2,
- "stroke": "B2",
+ "stroke": "red",
"borderRadius": 10,
"label": "",
"fontSize": 16,
diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
index d47ffb796..1c7cad7d9 100644
--- a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
@@ -1,23 +1,23 @@
-a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)
+ .d2-1435012343 .fill-N1{fill:#0A0F25;}
+ .d2-1435012343 .fill-N2{fill:#676C7E;}
+ .d2-1435012343 .fill-N3{fill:#9499AB;}
+ .d2-1435012343 .fill-N4{fill:#CFD2DD;}
+ .d2-1435012343 .fill-N5{fill:#DEE1EB;}
+ .d2-1435012343 .fill-N6{fill:#EEF1F8;}
+ .d2-1435012343 .fill-N7{fill:#FFFFFF;}
+ .d2-1435012343 .fill-B1{fill:#0D32B2;}
+ .d2-1435012343 .fill-B2{fill:#0D32B2;}
+ .d2-1435012343 .fill-B3{fill:#E3E9FD;}
+ .d2-1435012343 .fill-B4{fill:#E3E9FD;}
+ .d2-1435012343 .fill-B5{fill:#EDF0FD;}
+ .d2-1435012343 .fill-B6{fill:#F7F8FE;}
+ .d2-1435012343 .fill-AA2{fill:#4A6FF3;}
+ .d2-1435012343 .fill-AA4{fill:#EDF0FD;}
+ .d2-1435012343 .fill-AA5{fill:#F7F8FE;}
+ .d2-1435012343 .fill-AB4{fill:#EDF0FD;}
+ .d2-1435012343 .fill-AB5{fill:#F7F8FE;}
+ .d2-1435012343 .stroke-N1{stroke:#0A0F25;}
+ .d2-1435012343 .stroke-N2{stroke:#676C7E;}
+ .d2-1435012343 .stroke-N3{stroke:#9499AB;}
+ .d2-1435012343 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1435012343 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1435012343 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1435012343 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1435012343 .stroke-B1{stroke:#0D32B2;}
+ .d2-1435012343 .stroke-B2{stroke:#0D32B2;}
+ .d2-1435012343 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1435012343 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1435012343 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1435012343 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1435012343 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1435012343 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1435012343 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1435012343 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1435012343 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1435012343 .background-color-N1{background-color:#0A0F25;}
+ .d2-1435012343 .background-color-N2{background-color:#676C7E;}
+ .d2-1435012343 .background-color-N3{background-color:#9499AB;}
+ .d2-1435012343 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1435012343 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1435012343 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1435012343 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1435012343 .background-color-B1{background-color:#0D32B2;}
+ .d2-1435012343 .background-color-B2{background-color:#0D32B2;}
+ .d2-1435012343 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1435012343 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1435012343 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1435012343 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1435012343 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1435012343 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1435012343 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1435012343 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1435012343 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1435012343 .color-N1{color:#0A0F25;}
+ .d2-1435012343 .color-N2{color:#676C7E;}
+ .d2-1435012343 .color-N3{color:#9499AB;}
+ .d2-1435012343 .color-N4{color:#CFD2DD;}
+ .d2-1435012343 .color-N5{color:#DEE1EB;}
+ .d2-1435012343 .color-N6{color:#EEF1F8;}
+ .d2-1435012343 .color-N7{color:#FFFFFF;}
+ .d2-1435012343 .color-B1{color:#0D32B2;}
+ .d2-1435012343 .color-B2{color:#0D32B2;}
+ .d2-1435012343 .color-B3{color:#E3E9FD;}
+ .d2-1435012343 .color-B4{color:#E3E9FD;}
+ .d2-1435012343 .color-B5{color:#EDF0FD;}
+ .d2-1435012343 .color-B6{color:#F7F8FE;}
+ .d2-1435012343 .color-AA2{color:#4A6FF3;}
+ .d2-1435012343 .color-AA4{color:#EDF0FD;}
+ .d2-1435012343 .color-AA5{color:#F7F8FE;}
+ .d2-1435012343 .color-AB4{color:#EDF0FD;}
+ .d2-1435012343 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a_shapea_sequenceanothersequencefinallyscoreritemResponseitemessayRubricconceptitemOutcomesequencesequencescoreritemResponseitemessayRubricconceptitemOutcomescorerconceptessayRubricitemitemOutcomeitemResponse getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)getItem()itemgetRubric()rubricapplyTo(essayResp)match(essayResponse)scorenewgetNormalMinimum()getNormalMaximum()setScore(score)setFeedback(missingConcepts)