:root {
--aq-bg: white;
--aq-fg: black;
--aq-read-color: #ff9500;
--aq-write-color: #0c7bdc;
--aq-own-color: #dc0055;
--aq-flow-color: #5ed100;
--aq-read-rgb-color: 255, 149, 0;
--aq-write-rgb-color: 12, 123, 220;
--aq-own-rgb-color: 220, 0, 85;
--aq-perm-gain-color: #333;
--aq-perm-loss-color: #666;
--aq-error: red;
--aq-error-text: white;
--aq-button-border: gray;
--aq-button-text: gray;
--aq-button-background: lightgray;
--aq-button-border-hover: black;
--aq-button-text-hover: black;
--aq-button-background-hover: white;
--aq-step-widget-text: #ccc;
--aq-step-table-text: black;
--aq-step-table-border: gainsboro;
--aq-step-table-background: whitesmoke;
--aq-step-table-background-alternate: transparent;
}
.perm {
font-family: "Verdana";
font-weight: bold;
}
.perm.missing {
color: transparent !important;
-webkit-text-stroke-width: 1px;
}
.perm.read {
color: var(--aq-read-color);
-webkit-text-stroke-color: var(--aq-read-color);
}
.perm.write {
color: var(--aq-write-color);
-webkit-text-stroke-color: var(--aq-write-color);
}
.perm.own {
color: var(--aq-own-color);
-webkit-text-stroke-color: var(--aq-own-color);
}
.perm.flow {
color: var(--aq-flow-color);
-webkit-text-stroke-color: var(--aq-flow-color);
}
/* Permission Boundaries */
.permission-stack {
display: inline-flex;
flex-direction: column;
position: relative;
margin-left: 2px;
margin-right: 2px;
transition: margin-top 0.5s ease-in-out, margin-bottom 0.5s ease-in-out, bottom 0.5s ease-in-out;
cursor: default;
}
.permission-stack .animating {
filter: url('data:image/svg+xml, #threshold');
}
.permission-stack.before-whitespace {
margin-left: -3px;
}
.permission-stack.stack-size-1 {
top: 1px;
}
.permission-stack.stack-size-2 {
bottom: 4px;
margin-top: 5px;
}
.permission-stack.stack-size-3 {
bottom: 8px;
margin-top: 6px;
}
.permission-stack .perm {
font-size: 14px;
text-align: right;
display: grid;
grid-template-columns: 1fr;
}
.permission-stack .perm > div {
transition: filter 0.5s ease-in-out, opacity 0.5s ease-in-out, width 0.5s ease-in-out, height 0.5s ease-in-out;
grid-row-start: 1;
grid-column-start: 1;
text-align: center;
}
.permission-stack .perm > .small {
filter: blur(0px);
width: 10px;
height: 10px;
}
.permission-stack .perm > .big {
opacity: 0;
font-weight: bold;
filter: blur(3px);
width: 10px;
height: 10px;
}
.permission-stack .perm.missing > .small {
-webkit-text-stroke-width: 1.5px;
}
.permission-stack .perm.missing > .big {
-webkit-text-stroke-width: 1px;
}
.permission-stack:not(.expanded):hover.stack-size-2, .permission-stack.expanded.stack-size-2 {
margin-top: 7px;
margin-bottom: -3px;
bottom: 6px;
}
.permission-stack:not(.expanded):hover.stack-size-3, .permission-stack.expanded.stack-size-3 {
margin-top: 7px;
bottom: 10px;
}
.permission-stack:not(.expanded):hover .perm > .small, .permission-stack.expanded .perm > .small {
opacity: 0;
filter: blur(3px);
width: 0;
height: 0;
}
.permission-stack:not(.expanded):hover .perm > .big, .permission-stack.expanded .perm > .big {
opacity: 1;
filter: blur(0px);
height: 14px;
}
.permission-stack:not(.expanded):hover .perm.write > .big, .permission-stack.expanded .perm.write > .big {
width: 14px;
}
.permission-stack:not(.expanded):hover .perm:not(.write) > .big, .permission-stack.expanded .perm:not(.write) > .big {
width: 12px;
}
.perm-diff-sub-container {
position: relative;
width: min-content;
display: inline-block;
}
.perm-diff-sub {
position: absolute;
left: calc((100% - 14px) / 2);
top: calc((100% - 14px) / 2);
width: 14px;
height: 14px;
background: linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 1px), var(--aq-perm-loss-color) calc(50% - 0.75px), var(--aq-perm-loss-color) calc(50% + 0.75px), rgba(0, 0, 0, 0) calc(50% + 1px), rgba(0, 0, 0, 0) 100%);
}
.perm-diff-add {
color: var(--aq-perm-gain-color);
margin-right: -2px;
position: relative;
bottom: 1px;
font-size: 80%;
}
.aquascope {
position: relative;
height: 100%;
width: 100%;
/* Loan Highlighting */
/* Permission Steps */
}
.aquascope .aquascope-stderr {
padding: 15px;
background-color: #f9ffff;
font-family: "Source Code Pro", monospace;
font-size: 0.9em;
overflow: scroll;
}
.aquascope span.cm-region-end {
font-family: "Verdana", sans-serif, bold;
text-align: center;
vertical-align: bottom;
padding: 0;
display: inline-block;
width: 0;
overflow: hidden;
transition: 1s background-color;
}
.aquascope .top-right {
z-index: 10;
position: absolute;
top: 8px;
right: 2px;
}
.aquascope .cm-button {
background-color: var(--aq-button-background);
color: var(--aq-button-text);
opacity: 0;
font-size: 14px;
border: 1px solid var(--aq-button-border);
border-radius: 4px;
padding: 3px 5px;
margin: 0px 5px;
transition: 100ms;
transition-property: color, border-color, background-color, opacity;
cursor: pointer;
}
.aquascope .cm-button:hover {
background-color: var(--aq-button-background-hover);
color: var(--aq-button-text-hover);
border-color: var(--aq-button-border-hover);
}
.aquascope:hover .cm-button {
opacity: 1;
}
.aquascope cm-tooltip-cursor {
font-size: 0.8em;
background-color: whitesmoke;
border-color: gainsboro;
border: 2px;
padding: 2px 7px 2px 2px;
border-radius: 4px;
}
.aquascope cm-tooltip-cursor.cm-tooltip-arrow ::before {
border-top-color: whitesmoke;
}
.aquascope cm-tooltip-cursor .cm-tooltip-arrow ::after {
border-top-color: transparent;
}
.aquascope .cm-scroller {
overflow: auto;
}
.aquascope .cm-line.hidden-line {
display: none;
}
.aquascope .show-hidden .cm-line.hidden-line {
display: block;
opacity: 0.6;
}
.aquascope .aquascope-loan {
text-decoration: underline 3px rgba(0, 0, 0, 0);
transition: 1s text-decoration;
}
.aquascope .aquascope-loan.show-hidden.read {
text-decoration: underline 3px var(--aq-read-color) !important;
}
.aquascope .aquascope-loan.show-hidden.write {
text-decoration: underline 3px var(--aq-write-color) !important;
}
.aquascope .aquascope-loan.show-hidden.own {
text-decoration: underline 3px var(--aq-own-color) !important;
}
.aquascope .aquascope-live-region {
background-color: rgba(0, 0, 0, 0);
border-radius: 5px;
transition: 1s background-color;
}
.aquascope .aquascope-live-region.show-hidden.read {
background-color: rgba(var(--aq-read-rgb-color), 0.4) !important;
}
.aquascope .aquascope-live-region.show-hidden.write {
background-color: rgba(var(--aq-write-rgb-color), 0.4) !important;
}
.aquascope .aquascope-live-region.show-hidden.own {
background-color: rgba(var(--aq-own-rgb-color), 0.4) !important;
}
.aquascope .hidden-width {
display: none !important;
}
.aquascope .hidden-height {
height: 0px;
}
.aquascope .step-widget-toggle {
cursor: pointer;
}
.aquascope .step-widget-toggle:hover {
color: var(--aq-fg);
}
.aquascope .perm-step-widget {
display: inline-block;
color: var(--aq-step-widget-text);
position: relative;
top: 0.75em;
margin-bottom: 0.75em;
}
@media (max-width: 800px) {
.aquascope .perm-step-widget {
display: block;
top: 0;
margin-bottom: -0.5em;
margin-left: 10px;
}
.aquascope .perm-step-widget .step-widget-spacer {
max-width: 20px;
}
}
.aquascope .step-widget-container {
overflow: hidden;
display: inline-flex;
justify-content: start;
}
.aquascope .step-table-dropdown {
font-size: 0.7em;
max-height: 15px;
text-align: center;
width: 100%;
cursor: pointer;
color: var(--aq-step-widget-text);
}
.aquascope .step-table-container {
overflow: hidden;
flex-direction: column;
align-items: flex-start;
display: inline-flex;
margin-bottom: 5px;
background-color: var(--aq-step-table-background);
border: 2px solid var(--aq-step-table-border);
border-radius: 4px;
position: relative;
z-index: 100;
}
.aquascope .perm-step-table,
.aquascope .step-table-container {
color: var(--aq-step-table-text);
}
.aquascope .perm-step-table td,
.aquascope .step-table-container td {
padding: 1px 4px;
}
.aquascope .perm-step-table td.perm-step-event,
.aquascope .step-table-container td.perm-step-event {
text-align: center;
}
.aquascope table.perm-step-table {
vertical-align: top;
border-collapse: collapse;
}
.aquascope table.perm-step-table tr:nth-child(2n) {
background-color: var(--aq-step-table-background-alternate);
}
.aquascope .perm-step-table tr td {
border: 1px dotted;
border-color: var(--aq-step-table-border);
}
.aquascope .contains-hidden .perm-step-table tr td:first-child {
border-left: none;
}
.aquascope .contains-hidden .perm-step-table tr td:last-child {
border-right: none;
}
.aquascope .perm-char {
position: relative;
font: bold 14px "Verdana";
text-align: center;
cursor: default;
border-left: none !important;
border-right: none !important;
padding: 1px 2px !important;
}
.aquascope .aquascope-action-indicator {
font-size: 0.9em;
}
.step-marker {
display: inline-block;
border-radius: 4px;
padding: 0 2px;
background: var(--aq-bg);
border: 1px solid var(--aq-fg);
}
.cm-editor .step-marker {
margin: 2px 6px 0;
}
.step-marker > span {
font-size: 0.8em;
color: var(--aq-fg);
vertical-align: middle;
position: relative;
bottom: 1px;
font-weight: bold;
}
.step-marker.fail {
background: var(--aq-error);
}
.step-marker.fail > span {
color: var(--aq-error-text);
}
.interpreter {
background: var(--aq-bg);
padding: 1rem;
display: flex;
column-gap: 50px;
row-gap: 30px;
flex-wrap: wrap;
overflow-x: auto;
position: relative;
font-size: 15px;
}
.interpreter .concrete-types {
position: absolute;
top: 1rem;
right: 1rem;
background-color: var(--aq-button-background);
color: var(--aq-button-text);
opacity: 0;
font-size: 14px;
border: 1px solid var(--aq-button-border);
border-radius: 4px;
padding: 3px 5px;
margin: 0px 5px;
transition: 100ms;
transition-property: color, border-color, background-color, opacity;
cursor: pointer;
}
.interpreter .concrete-types:hover {
background-color: var(--aq-button-background-hover);
color: var(--aq-button-text-hover);
border-color: var(--aq-button-border-hover);
}
.interpreter .concrete-types.active {
border-color: var(--aq-fg);
background-color: var(--aq-bg);
color: var(--aq-fg);
}
.interpreter .step .header {
position: relative;
}
.interpreter .step .header .header-text {
position: relative;
z-index: 12;
}
.interpreter .step .header .header-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 11;
background: var(--aq-bg);
opacity: 0.8;
}
.interpreter .step .step-header {
display: flex;
align-items: flex-start;
gap: 10px;
margin-bottom: 5px;
}
.interpreter .step .step-header .step-marker {
font-size: 1.1em;
font-family: "Source Code Pro", monospace;
}
.interpreter .step .step-header .undefined-behavior {
color: var(--aq-error);
max-width: 250px;
}
.interpreter .step .memory-header {
margin-bottom: 5px;
font-weight: bold;
}
.interpreter .step .memory-container {
position: relative;
}
.interpreter .step .memory-container .memory-container-flex {
display: flex;
flex-direction: row;
gap: 60px;
padding-left: 10px;
}
.interpreter .step .memory-container .memory {
border: 1px dashed var(--aq-step-table-border);
padding: 0.7rem;
height: max-content;
}
.interpreter .step .memory-container .memory .frames {
display: flex;
flex-direction: column;
gap: 10px;
}
.interpreter .step .memory-container .memory .frames .frame-header {
display: inline-block;
font-family: "Source Code Pro", monospace;
}
.interpreter .step .memory-container .memory .frames .empty-frame {
font-size: 0.9em;
}
.interpreter .step h2 {
margin-top: 0;
font-size: 1.1em;
font-weight: bold;
}
.interpreter .step code {
font-size: 0.9em;
}
.interpreter .step table.locals,
.interpreter .step .heap > table {
border: 2px solid var(--aq-step-table-border);
}
.interpreter .step table.locals tr.moved,
.interpreter .step .heap > table tr.moved {
opacity: 0.3;
background: repeating-linear-gradient(45deg, var(--aq-step-table-border), var(--aq-step-table-border) 3px, var(--aq-bg) 3px, var(--aq-bg) 10px);
}
.interpreter .step table.locals > tbody > tr > td,
.interpreter .step .heap > table > tbody > tr > td {
border-width: 2px;
padding: 2px 4px;
}
.interpreter .step table.locals > tbody > tr > td:nth-child(1),
.interpreter .step .heap > table > tbody > tr > td:nth-child(1) {
border-right-width: 1.5px;
}
.interpreter .step table.locals > tbody > tr > td:nth-child(2),
.interpreter .step .heap > table > tbody > tr > td:nth-child(2) {
border-left-width: 1.5px;
}
.interpreter .step table {
border: 1px solid var(--aq-step-table-border);
border-collapse: collapse;
font-family: "Source Code Pro", monospace;
}
.interpreter .step table.array {
border: none;
}
.interpreter .step table.array td {
border-top: none;
border-bottom: none;
padding: 0 2px;
}
.interpreter .step table.array td:first-child {
border-left: none;
}
.interpreter .step table.array td:last-child {
border-right: none;
}
.interpreter .step table td {
border: 1px solid var(--aq-step-table-border);
transition: width 1s, height 1s;
}
.interpreter .step .unallocated.error {
display: inline-block;
width: 1.2em;
color: var(--aq-error);
border: 1px dashed var(--aq-error);
border-radius: 50%;
text-align: center;
}
.leader-line {
z-index: 10;
}:root {
--aq-bg: white;
--aq-fg: black;
--aq-read-color: #ff9500;
--aq-write-color: #0c7bdc;
--aq-own-color: #dc0055;
--aq-flow-color: #5ed100;
--aq-read-rgb-color: 255, 149, 0;
--aq-write-rgb-color: 12, 123, 220;
--aq-own-rgb-color: 220, 0, 85;
--aq-perm-gain-color: #333;
--aq-perm-loss-color: #666;
--aq-error: red;
--aq-error-text: white;
--aq-button-border: gray;
--aq-button-text: gray;
--aq-button-background: lightgray;
--aq-button-border-hover: black;
--aq-button-text-hover: black;
--aq-button-background-hover: white;
--aq-step-widget-text: #ccc;
--aq-step-table-text: black;
--aq-step-table-border: gainsboro;
--aq-step-table-background: whitesmoke;
--aq-step-table-background-alternate: transparent;
}
.perm {
font-family: "Verdana";
font-weight: bold;
}
.perm.missing {
color: transparent !important;
-webkit-text-stroke-width: 1px;
}
.perm.read {
color: var(--aq-read-color);
-webkit-text-stroke-color: var(--aq-read-color);
}
.perm.write {
color: var(--aq-write-color);
-webkit-text-stroke-color: var(--aq-write-color);
}
.perm.own {
color: var(--aq-own-color);
-webkit-text-stroke-color: var(--aq-own-color);
}
.perm.flow {
color: var(--aq-flow-color);
-webkit-text-stroke-color: var(--aq-flow-color);
}
/* Permission Boundaries */
.permission-stack {
display: inline-flex;
flex-direction: column;
position: relative;
margin-left: 2px;
margin-right: 2px;
transition: margin-top 0.5s ease-in-out, margin-bottom 0.5s ease-in-out, bottom 0.5s ease-in-out;
cursor: default;
}
.permission-stack .animating {
filter: url('data:image/svg+xml, #threshold');
}
.permission-stack.before-whitespace {
margin-left: -3px;
}
.permission-stack.stack-size-1 {
top: 1px;
}
.permission-stack.stack-size-2 {
bottom: 4px;
margin-top: 5px;
}
.permission-stack.stack-size-3 {
bottom: 8px;
margin-top: 6px;
}
.permission-stack .perm {
font-size: 14px;
text-align: right;
display: grid;
grid-template-columns: 1fr;
}
.permission-stack .perm > div {
transition: filter 0.5s ease-in-out, opacity 0.5s ease-in-out, width 0.5s ease-in-out, height 0.5s ease-in-out;
grid-row-start: 1;
grid-column-start: 1;
text-align: center;
}
.permission-stack .perm > .small {
filter: blur(0px);
width: 10px;
height: 10px;
}
.permission-stack .perm > .big {
opacity: 0;
font-weight: bold;
filter: blur(3px);
width: 10px;
height: 10px;
}
.permission-stack .perm.missing > .small {
-webkit-text-stroke-width: 1.5px;
}
.permission-stack .perm.missing > .big {
-webkit-text-stroke-width: 1px;
}
.permission-stack:not(.expanded):hover.stack-size-2, .permission-stack.expanded.stack-size-2 {
margin-top: 7px;
margin-bottom: -3px;
bottom: 6px;
}
.permission-stack:not(.expanded):hover.stack-size-3, .permission-stack.expanded.stack-size-3 {
margin-top: 7px;
bottom: 10px;
}
.permission-stack:not(.expanded):hover .perm > .small, .permission-stack.expanded .perm > .small {
opacity: 0;
filter: blur(3px);
width: 0;
height: 0;
}
.permission-stack:not(.expanded):hover .perm > .big, .permission-stack.expanded .perm > .big {
opacity: 1;
filter: blur(0px);
height: 14px;
}
.permission-stack:not(.expanded):hover .perm.write > .big, .permission-stack.expanded .perm.write > .big {
width: 14px;
}
.permission-stack:not(.expanded):hover .perm:not(.write) > .big, .permission-stack.expanded .perm:not(.write) > .big {
width: 12px;
}
.perm-diff-sub-container {
position: relative;
width: min-content;
display: inline-block;
}
.perm-diff-sub {
position: absolute;
left: calc((100% - 14px) / 2);
top: calc((100% - 14px) / 2);
width: 14px;
height: 14px;
background: linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 1px), var(--aq-perm-loss-color) calc(50% - 0.75px), var(--aq-perm-loss-color) calc(50% + 0.75px), rgba(0, 0, 0, 0) calc(50% + 1px), rgba(0, 0, 0, 0) 100%);
}
.perm-diff-add {
color: var(--aq-perm-gain-color);
margin-right: -2px;
position: relative;
bottom: 1px;
font-size: 80%;
}
.aquascope {
position: relative;
height: 100%;
width: 100%;
/* Loan Highlighting */
/* Permission Steps */
}
.aquascope .aquascope-stderr {
padding: 15px;
background-color: #f9ffff;
font-family: "Source Code Pro", monospace;
font-size: 0.9em;
overflow: scroll;
}
.aquascope span.cm-region-end {
font-family: "Verdana", sans-serif, bold;
text-align: center;
vertical-align: bottom;
padding: 0;
display: inline-block;
width: 0;
overflow: hidden;
transition: 1s background-color;
}
.aquascope .top-right {
z-index: 10;
position: absolute;
top: 8px;
right: 2px;
}
.aquascope .cm-button {
background-color: var(--aq-button-background);
color: var(--aq-button-text);
opacity: 0;
font-size: 14px;
border: 1px solid var(--aq-button-border);
border-radius: 4px;
padding: 3px 5px;
margin: 0px 5px;
transition: 100ms;
transition-property: color, border-color, background-color, opacity;
cursor: pointer;
}
.aquascope .cm-button:hover {
background-color: var(--aq-button-background-hover);
color: var(--aq-button-text-hover);
border-color: var(--aq-button-border-hover);
}
.aquascope:hover .cm-button {
opacity: 1;
}
.aquascope cm-tooltip-cursor {
font-size: 0.8em;
background-color: whitesmoke;
border-color: gainsboro;
border: 2px;
padding: 2px 7px 2px 2px;
border-radius: 4px;
}
.aquascope cm-tooltip-cursor.cm-tooltip-arrow ::before {
border-top-color: whitesmoke;
}
.aquascope cm-tooltip-cursor .cm-tooltip-arrow ::after {
border-top-color: transparent;
}
.aquascope .cm-scroller {
overflow: auto;
}
.aquascope .cm-line.hidden-line {
display: none;
}
.aquascope .show-hidden .cm-line.hidden-line {
display: block;
opacity: 0.6;
}
.aquascope .aquascope-loan {
text-decoration: underline 3px rgba(0, 0, 0, 0);
transition: 1s text-decoration;
}
.aquascope .aquascope-loan.show-hidden.read {
text-decoration: underline 3px var(--aq-read-color) !important;
}
.aquascope .aquascope-loan.show-hidden.write {
text-decoration: underline 3px var(--aq-write-color) !important;
}
.aquascope .aquascope-loan.show-hidden.own {
text-decoration: underline 3px var(--aq-own-color) !important;
}
.aquascope .aquascope-live-region {
background-color: rgba(0, 0, 0, 0);
border-radius: 5px;
transition: 1s background-color;
}
.aquascope .aquascope-live-region.show-hidden.read {
background-color: rgba(var(--aq-read-rgb-color), 0.4) !important;
}
.aquascope .aquascope-live-region.show-hidden.write {
background-color: rgba(var(--aq-write-rgb-color), 0.4) !important;
}
.aquascope .aquascope-live-region.show-hidden.own {
background-color: rgba(var(--aq-own-rgb-color), 0.4) !important;
}
.aquascope .hidden-width {
display: none !important;
}
.aquascope .hidden-height {
height: 0px;
}
.aquascope .step-widget-toggle {
cursor: pointer;
}
.aquascope .step-widget-toggle:hover {
color: var(--aq-fg);
}
.aquascope .perm-step-widget {
display: inline-block;
color: var(--aq-step-widget-text);
position: relative;
top: 0.75em;
margin-bottom: 0.75em;
}
@media (max-width: 800px) {
.aquascope .perm-step-widget {
display: block;
top: 0;
margin-bottom: -0.5em;
margin-left: 10px;
}
.aquascope .perm-step-widget .step-widget-spacer {
max-width: 20px;
}
}
.aquascope .step-widget-container {
overflow: hidden;
display: inline-flex;
justify-content: start;
}
.aquascope .step-table-dropdown {
font-size: 0.7em;
max-height: 15px;
text-align: center;
width: 100%;
cursor: pointer;
color: var(--aq-step-widget-text);
}
.aquascope .step-table-container {
overflow: hidden;
flex-direction: column;
align-items: flex-start;
display: inline-flex;
margin-bottom: 5px;
background-color: var(--aq-step-table-background);
border: 2px solid var(--aq-step-table-border);
border-radius: 4px;
position: relative;
z-index: 100;
}
.aquascope .perm-step-table,
.aquascope .step-table-container {
color: var(--aq-step-table-text);
}
.aquascope .perm-step-table td,
.aquascope .step-table-container td {
padding: 1px 4px;
}
.aquascope .perm-step-table td.perm-step-event,
.aquascope .step-table-container td.perm-step-event {
text-align: center;
}
.aquascope table.perm-step-table {
vertical-align: top;
border-collapse: collapse;
}
.aquascope table.perm-step-table tr:nth-child(2n) {
background-color: var(--aq-step-table-background-alternate);
}
.aquascope .perm-step-table tr td {
border: 1px dotted;
border-color: var(--aq-step-table-border);
}
.aquascope .contains-hidden .perm-step-table tr td:first-child {
border-left: none;
}
.aquascope .contains-hidden .perm-step-table tr td:last-child {
border-right: none;
}
.aquascope .perm-char {
position: relative;
font: bold 14px "Verdana";
text-align: center;
cursor: default;
border-left: none !important;
border-right: none !important;
padding: 1px 2px !important;
}
.aquascope .aquascope-action-indicator {
font-size: 0.9em;
}
.step-marker {
display: inline-block;
border-radius: 4px;
padding: 0 2px;
background: var(--aq-bg);
border: 1px solid var(--aq-fg);
}
.cm-editor .step-marker {
margin: 2px 6px 0;
}
.step-marker > span {
font-size: 0.8em;
color: var(--aq-fg);
vertical-align: middle;
position: relative;
bottom: 1px;
font-weight: bold;
}
.step-marker.fail {
background: var(--aq-error);
}
.step-marker.fail > span {
color: var(--aq-error-text);
}
.interpreter {
background: var(--aq-bg);
padding: 1rem;
display: flex;
column-gap: 50px;
row-gap: 30px;
flex-wrap: wrap;
overflow-x: auto;
position: relative;
font-size: 15px;
}
.interpreter .concrete-types {
position: absolute;
top: 1rem;
right: 1rem;
background-color: var(--aq-button-background);
color: var(--aq-button-text);
opacity: 0;
font-size: 14px;
border: 1px solid var(--aq-button-border);
border-radius: 4px;
padding: 3px 5px;
margin: 0px 5px;
transition: 100ms;
transition-property: color, border-color, background-color, opacity;
cursor: pointer;
}
.interpreter .concrete-types:hover {
background-color: var(--aq-button-background-hover);
color: var(--aq-button-text-hover);
border-color: var(--aq-button-border-hover);
}
.interpreter .concrete-types.active {
border-color: var(--aq-fg);
background-color: var(--aq-bg);
color: var(--aq-fg);
}
.interpreter .step .header {
position: relative;
}
.interpreter .step .header .header-text {
position: relative;
z-index: 12;
}
.interpreter .step .header .header-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 11;
background: var(--aq-bg);
opacity: 0.8;
}
.interpreter .step .step-header {
display: flex;
align-items: flex-start;
gap: 10px;
margin-bottom: 5px;
}
.interpreter .step .step-header .step-marker {
font-size: 1.1em;
font-family: "Source Code Pro", monospace;
}
.interpreter .step .step-header .undefined-behavior {
color: var(--aq-error);
max-width: 250px;
}
.interpreter .step .memory-header {
margin-bottom: 5px;
font-weight: bold;
}
.interpreter .step .memory-container {
position: relative;
}
.interpreter .step .memory-container .memory-container-flex {
display: flex;
flex-direction: row;
gap: 60px;
padding-left: 10px;
}
.interpreter .step .memory-container .memory {
border: 1px dashed var(--aq-step-table-border);
padding: 0.7rem;
height: max-content;
}
.interpreter .step .memory-container .memory .frames {
display: flex;
flex-direction: column;
gap: 10px;
}
.interpreter .step .memory-container .memory .frames .frame-header {
display: inline-block;
font-family: "Source Code Pro", monospace;
}
.interpreter .step .memory-container .memory .frames .empty-frame {
font-size: 0.9em;
}
.interpreter .step h2 {
margin-top: 0;
font-size: 1.1em;
font-weight: bold;
}
.interpreter .step code {
font-size: 0.9em;
}
.interpreter .step table.locals,
.interpreter .step .heap > table {
border: 2px solid var(--aq-step-table-border);
}
.interpreter .step table.locals tr.moved,
.interpreter .step .heap > table tr.moved {
opacity: 0.3;
background: repeating-linear-gradient(45deg, var(--aq-step-table-border), var(--aq-step-table-border) 3px, var(--aq-bg) 3px, var(--aq-bg) 10px);
}
.interpreter .step table.locals > tbody > tr > td,
.interpreter .step .heap > table > tbody > tr > td {
border-width: 2px;
padding: 2px 4px;
}
.interpreter .step table.locals > tbody > tr > td:nth-child(1),
.interpreter .step .heap > table > tbody > tr > td:nth-child(1) {
border-right-width: 1.5px;
}
.interpreter .step table.locals > tbody > tr > td:nth-child(2),
.interpreter .step .heap > table > tbody > tr > td:nth-child(2) {
border-left-width: 1.5px;
}
.interpreter .step table {
border: 1px solid var(--aq-step-table-border);
border-collapse: collapse;
font-family: "Source Code Pro", monospace;
}
.interpreter .step table.array {
border: none;
}
.interpreter .step table.array td {
border-top: none;
border-bottom: none;
padding: 0 2px;
}
.interpreter .step table.array td:first-child {
border-left: none;
}
.interpreter .step table.array td:last-child {
border-right: none;
}
.interpreter .step table td {
border: 1px solid var(--aq-step-table-border);
transition: width 1s, height 1s;
}
.interpreter .step .unallocated.error {
display: inline-block;
width: 1.2em;
color: var(--aq-error);
border: 1px dashed var(--aq-error);
border-radius: 50%;
text-align: center;
}
.leader-line {
z-index: 10;
}
.light, .rust {
--code-bg: #f6f7f6;
}
.coal, .navy {
--code-bg: #1d1f21;
}
.ayu {
--code-bg: #191f26;
}
:root {
--aq-fg: var(--fg);
--aq-bg: var(--bg);
--aq-button-border: var(--icons);
--aq-button-text: var(--icons);
--aq-button-background: var(--theme-popup-bg);
--aq-button-border-hover: var(--icons-hover);
--aq-button-text-hover: var(--sidebar-active);
--aq-button-background-hover: var(--theme-hover);
--aq-step-widget-text: var(--searchresults-header-fg);
--aq-step-table-text: var(--sidebar-fg);
--aq-step-table-border: var(--table-header-bg);
--aq-step-table-background: var(--sidebar-bg);
}
.rust {
--aq-step-table-background-alternate: var(--sidebar-non-existant);
}
.coal, .navy, .ayu, .rust {
--aq-perm-gain-color: #eee;
--aq-perm-loss-color: #ccc;
}
.coal, .navy, .ayu {
--aq-error: #ff5151;
--aq-write-color: #399cf2;
--aq-step-widget-text: #aaa;
}
.aquascope {
border: 2px dashed var(--theme-popup-border);
}
.aquascope .cm-editor {
background-color: var(--code-bg);
}
.aquascope .cm-scroller {
line-height: inherit;
}
.aquascope .cm-content {
padding: 1rem;
font-family: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace, monospace;
font-size: 0.875em;
}
.aquascope .cm-line {
padding: 0;
}
.interpreter table {
margin: 0;
}
.interpreter table tbody tr:nth-child(2n) {
background: inherit;
}
.interpreter table td {
padding: 2px 4px;
}
.aquascope {
margin-top: 2em;
}
.extra-info {
display: flex;
position: absolute;
right: 0;
top: -2em;
width: max-content;
gap: 8px;
}
.context-provider button {
filter: grayscale(50%);
border: 0;
cursor: pointer;
border: 1px solid var(--aq-button-border);
background-color: var(--aq-button-background);
border-radius: 4px;
}
.context-provider button:hover {
background-color: var(--aq-button-background-hover);
color: var(--aq-button-text-hover);
border-color: var(--aq-button-border-hover);
}
.context-provider .popup-context {
background: var(--bg);
border: 2px solid var(--theme-popup-border);
padding: 0.5em;
text-align: left;
border-radius: 4px;
box-shadow: 1px 1px 4px var(--theme-popup-border);
z-index: 1000;
width: min(400px, 70vw);
}
.context-provider .popup-context h3 {
margin-top: 0;
margin-bottom: 1em;
}
.context-provider .popup-context p:last-child {
margin-bottom: 0;
}
.context-provider .popup-context textarea {
width: 100%;
min-height: 4.5em;
font-family: "Open Sans", sans-serif;
}
.context-provider .popup-context .close {
position: absolute;
top: 5px;
right: 5px;
color: var(--fg);
}