3134 lines
58 KiB
CSS
3134 lines
58 KiB
CSS
:root {
|
|
color: #1f2933;
|
|
font-family:
|
|
Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
sans-serif;
|
|
background: #eef2f6;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#root {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
|
|
button,
|
|
input,
|
|
select,
|
|
textarea {
|
|
font: inherit;
|
|
}
|
|
|
|
.app-shell {
|
|
display: grid;
|
|
grid-template-rows: 62px 42px minmax(0, 1fr);
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 980px;
|
|
}
|
|
|
|
.topbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
|
|
align-items: center;
|
|
gap: 18px;
|
|
min-height: 0;
|
|
padding: 8px 14px;
|
|
border-bottom: 1px solid #cfd8e3;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.product-name {
|
|
font-size: 15px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.product-meta {
|
|
margin-top: 2px;
|
|
color: #64748b;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.workspace-view-tabs {
|
|
display: flex;
|
|
align-items: stretch;
|
|
height: 34px;
|
|
border-bottom: 1px solid #bfcbd8;
|
|
}
|
|
|
|
.workspace-view-tabs button {
|
|
position: relative;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 7px;
|
|
min-width: 76px;
|
|
height: 34px;
|
|
padding: 0 13px;
|
|
border: 0;
|
|
border-bottom: 2px solid transparent;
|
|
color: #526172;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.workspace-view-tabs button:hover {
|
|
color: #1f2933;
|
|
background: #f1f5f8;
|
|
}
|
|
|
|
.workspace-view-tabs button.active {
|
|
border-bottom-color: #1d6fb8;
|
|
color: #155a94;
|
|
background: #eaf3fa;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.workspace-view-tabs button:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.result-available-dot {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
background: #2f7d55;
|
|
box-shadow: 0 0 0 2px rgba(47, 125, 85, 0.14);
|
|
}
|
|
|
|
.topbar-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
justify-self: end;
|
|
gap: 8px;
|
|
}
|
|
|
|
.save-indicator {
|
|
min-width: 112px;
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
text-align: center;
|
|
}
|
|
|
|
.visually-hidden {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
.primary-button,
|
|
.secondary-button {
|
|
height: 32px;
|
|
padding: 0 12px;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.primary-button:disabled,
|
|
.secondary-button:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.58;
|
|
}
|
|
|
|
.primary-button {
|
|
border: 1px solid #1d6fb8;
|
|
color: #ffffff;
|
|
background: #1d6fb8;
|
|
}
|
|
|
|
.secondary-button {
|
|
border: 1px solid #c2ccda;
|
|
color: #263442;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.project-name-field {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
color: #475569;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.project-name-field input {
|
|
width: 150px;
|
|
height: 32px;
|
|
padding: 0 9px;
|
|
border: 1px solid #c2ccda;
|
|
border-radius: 6px;
|
|
color: #1f2933;
|
|
}
|
|
|
|
.editor-toolbar {
|
|
position: relative;
|
|
z-index: 20;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
min-width: 0;
|
|
padding: 5px 12px;
|
|
overflow: visible;
|
|
border-bottom: 1px solid #cfd8e3;
|
|
background: #f5f7f9;
|
|
}
|
|
|
|
.toolbar-group {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
}
|
|
|
|
.toolbar-separator {
|
|
width: 1px;
|
|
height: 22px;
|
|
background: #cbd3dd;
|
|
}
|
|
|
|
.toolbar-item {
|
|
position: relative;
|
|
display: inline-flex;
|
|
}
|
|
|
|
.toolbar-item::after {
|
|
position: absolute;
|
|
top: calc(100% + 7px);
|
|
left: 50%;
|
|
z-index: 50;
|
|
padding: 5px 7px;
|
|
border: 1px solid #aeb8c5;
|
|
border-radius: 4px;
|
|
color: #ffffff;
|
|
background: #263442;
|
|
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
|
|
content: attr(data-tooltip);
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
letter-spacing: 0;
|
|
line-height: 1;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
transform: translate(-50%, -2px);
|
|
transition: opacity 120ms ease, transform 120ms ease;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.toolbar-item:hover::after {
|
|
opacity: 1;
|
|
transform: translate(-50%, 0);
|
|
}
|
|
|
|
.editor-tool-button {
|
|
display: grid;
|
|
place-items: center;
|
|
width: 30px;
|
|
height: 30px;
|
|
padding: 0;
|
|
border: 1px solid transparent;
|
|
border-radius: 4px;
|
|
color: #344252;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.editor-tool-button:hover:not(:disabled) {
|
|
border-color: #bcc7d4;
|
|
color: #17212b;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.editor-tool-button:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.editor-tool-button:disabled {
|
|
color: #9ba6b2;
|
|
cursor: not-allowed;
|
|
opacity: 0.62;
|
|
}
|
|
|
|
.editor-tool-button.active {
|
|
border-color: #1d6fb8;
|
|
color: #155a94;
|
|
background: #dceefa;
|
|
box-shadow: inset 0 0 0 1px rgba(29, 111, 184, 0.08);
|
|
}
|
|
|
|
.editor-tool-button.active:hover:not(:disabled) {
|
|
border-color: #155a94;
|
|
color: #0f4f82;
|
|
background: #cfe7f8;
|
|
}
|
|
|
|
.editor-tool-button.accent:not(.active) {
|
|
color: #26724a;
|
|
}
|
|
|
|
.editor-tool-button.primary {
|
|
border-color: #1d6fb8;
|
|
color: #ffffff;
|
|
background: #1d6fb8;
|
|
}
|
|
|
|
.editor-tool-button.primary:hover:not(:disabled) {
|
|
border-color: #155a94;
|
|
color: #ffffff;
|
|
background: #155a94;
|
|
}
|
|
|
|
.workbench {
|
|
--palette-width: 230px;
|
|
--properties-width: 330px;
|
|
--component-parameters-height: 340px;
|
|
display: grid;
|
|
grid-template-columns:
|
|
var(--palette-width) 7px minmax(0, 1fr) 7px
|
|
var(--properties-width);
|
|
min-height: 0;
|
|
}
|
|
|
|
.workbench.resizing-palette-width,
|
|
.workbench.resizing-properties-width {
|
|
cursor: col-resize;
|
|
user-select: none;
|
|
}
|
|
|
|
.workbench.resizing-component-parameters-height {
|
|
cursor: row-resize;
|
|
user-select: none;
|
|
}
|
|
|
|
.modeling-pane-splitter {
|
|
position: relative;
|
|
z-index: 8;
|
|
display: grid;
|
|
width: 7px;
|
|
min-width: 7px;
|
|
height: 100%;
|
|
padding: 0;
|
|
border: 0;
|
|
place-items: center;
|
|
background: #eef2f6;
|
|
cursor: col-resize;
|
|
touch-action: none;
|
|
}
|
|
|
|
.modeling-pane-splitter::before {
|
|
position: absolute;
|
|
inset: 0 auto 0 3px;
|
|
width: 1px;
|
|
background: #c7d1dc;
|
|
content: "";
|
|
}
|
|
|
|
.modeling-pane-splitter span {
|
|
position: relative;
|
|
width: 3px;
|
|
height: 42px;
|
|
border-radius: 2px;
|
|
background: #9eacbb;
|
|
opacity: 0;
|
|
transition: opacity 120ms ease, background 120ms ease;
|
|
}
|
|
|
|
.modeling-pane-splitter:hover span,
|
|
.modeling-pane-splitter:focus-visible span,
|
|
.workbench.resizing-palette-width .modeling-pane-splitter:first-of-type span,
|
|
.workbench.resizing-properties-width .modeling-pane-splitter:last-of-type span {
|
|
background: #1d6fb8;
|
|
opacity: 1;
|
|
}
|
|
|
|
.modeling-pane-splitter:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.palette,
|
|
.properties {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: auto;
|
|
border-color: #cfd8e3;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.palette {
|
|
border-right: 0;
|
|
}
|
|
|
|
.properties {
|
|
border-left: 0;
|
|
display: grid;
|
|
grid-template-rows:
|
|
minmax(0, var(--component-parameters-height)) 7px
|
|
minmax(120px, 1fr);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.properties-subpane {
|
|
display: grid;
|
|
grid-template-rows: auto minmax(0, 1fr);
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.properties-subpane-content {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: auto;
|
|
}
|
|
|
|
.properties-pane-splitter {
|
|
position: relative;
|
|
z-index: 9;
|
|
display: grid;
|
|
width: 100%;
|
|
height: 7px;
|
|
min-height: 7px;
|
|
padding: 0;
|
|
border: 0;
|
|
place-items: center;
|
|
background: #eef2f6;
|
|
cursor: row-resize;
|
|
touch-action: none;
|
|
}
|
|
|
|
.properties-pane-splitter::before {
|
|
position: absolute;
|
|
inset: 3px 0 auto;
|
|
height: 1px;
|
|
background: #c7d1dc;
|
|
content: "";
|
|
}
|
|
|
|
.properties-pane-splitter span {
|
|
position: relative;
|
|
width: 42px;
|
|
height: 3px;
|
|
border-radius: 2px;
|
|
background: #9eacbb;
|
|
opacity: 0;
|
|
transition: opacity 120ms ease, background 120ms ease;
|
|
}
|
|
|
|
.properties-pane-splitter:hover span,
|
|
.properties-pane-splitter:focus-visible span,
|
|
.workbench.resizing-component-parameters-height .properties-pane-splitter span {
|
|
background: #1d6fb8;
|
|
opacity: 1;
|
|
}
|
|
|
|
.properties-pane-splitter:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.panel-title {
|
|
padding: 14px;
|
|
border-bottom: 1px solid #e3e8ef;
|
|
font-size: 13px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.properties .panel-title {
|
|
display: flex;
|
|
align-items: center;
|
|
min-height: 32px;
|
|
padding: 0 10px;
|
|
border-bottom-color: #c7cdd4;
|
|
color: #293642;
|
|
background: #f2f4f6;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.palette-list {
|
|
display: block;
|
|
padding: 12px;
|
|
}
|
|
|
|
.parameter-form {
|
|
display: grid;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
}
|
|
|
|
.parameter-table-wrap {
|
|
width: 100%;
|
|
min-width: 0;
|
|
padding: 0;
|
|
overflow-x: clip;
|
|
}
|
|
|
|
.parameter-table-wrap.parameter-form {
|
|
display: block;
|
|
padding: 0;
|
|
}
|
|
|
|
.parameter-table {
|
|
--parameter-name-width: 116px;
|
|
--parameter-unit-width: 72px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
border: 0;
|
|
border-spacing: 0;
|
|
border-radius: 0;
|
|
color: #263442;
|
|
background: #ffffff;
|
|
table-layout: fixed;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.parameter-table-head .parameter-table-cell {
|
|
position: sticky;
|
|
z-index: 1;
|
|
top: 0;
|
|
height: 28px;
|
|
padding: 0 8px;
|
|
overflow: visible;
|
|
border-right-color: #c4cad1;
|
|
border-bottom-color: #b9c1c9;
|
|
color: #35414c;
|
|
background: #e3e6e9;
|
|
box-shadow: 0 1px 0 rgba(51, 65, 85, 0.06);
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
line-height: 27px;
|
|
}
|
|
|
|
.parameter-table-head .parameter-table-name-cell {
|
|
z-index: 3;
|
|
}
|
|
|
|
.parameter-table-head .parameter-table-value-cell {
|
|
z-index: 2;
|
|
}
|
|
|
|
.parameter-table-row {
|
|
height: 32px;
|
|
}
|
|
|
|
.parameter-table-head-row {
|
|
height: 28px;
|
|
}
|
|
|
|
.parameter-table-cell {
|
|
min-width: 0;
|
|
height: 32px;
|
|
box-sizing: border-box;
|
|
padding: 1px 7px;
|
|
overflow: hidden;
|
|
border-right: 1px solid #d5d9de;
|
|
border-bottom: 1px solid #e1e4e7;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.parameter-table-cell:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.parameter-table
|
|
> tbody
|
|
> .parameter-table-row:nth-child(even)
|
|
> .parameter-table-cell {
|
|
background: #f3f4f5;
|
|
}
|
|
|
|
.parameter-table > tbody > .parameter-table-row:hover > .parameter-table-cell {
|
|
background: #eaf3f8;
|
|
}
|
|
|
|
.parameter-table
|
|
> tbody
|
|
> .parameter-table-row:focus-within
|
|
> .parameter-table-cell {
|
|
background: #deedf5;
|
|
}
|
|
|
|
.parameter-table-row:focus-visible {
|
|
outline: 2px solid rgba(29, 111, 184, 0.5);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.parameter-name-cell,
|
|
.parameter-table-name-cell {
|
|
overflow: hidden;
|
|
color: #344256;
|
|
text-align: left;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.parameter-table > tbody .parameter-table-name-cell {
|
|
font-weight: 400;
|
|
}
|
|
|
|
.parameter-value-cell,
|
|
.parameter-table-value-cell,
|
|
.parameter-unit-cell,
|
|
.parameter-table-unit-cell {
|
|
min-width: 0;
|
|
padding: 1px 3px;
|
|
}
|
|
|
|
.parameter-unit-cell,
|
|
.parameter-table-unit-cell {
|
|
color: #526172;
|
|
text-align: center;
|
|
}
|
|
|
|
.parameter-table-cell input,
|
|
.parameter-table-cell select {
|
|
display: block;
|
|
width: 100%;
|
|
min-width: 0;
|
|
max-width: 100%;
|
|
height: 28px;
|
|
box-sizing: border-box;
|
|
margin: 0;
|
|
padding: 0 6px;
|
|
border: 1px solid transparent;
|
|
border-radius: 1px;
|
|
outline: 0;
|
|
color: #1f2933;
|
|
background: transparent;
|
|
font-size: 12px;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.parameter-table-cell select {
|
|
padding-right: 4px;
|
|
}
|
|
|
|
.parameter-table > tbody .parameter-table-value-cell,
|
|
.parameter-table > tbody .parameter-table-value-cell input,
|
|
.parameter-table > tbody .parameter-table-value-cell select {
|
|
text-align: right;
|
|
}
|
|
|
|
.parameter-table > tbody .parameter-table-value-cell select {
|
|
text-align-last: right;
|
|
}
|
|
|
|
.parameter-table-cell input:hover:not(:disabled),
|
|
.parameter-table-cell select:hover:not(:disabled) {
|
|
border-color: #aebbc7;
|
|
background: rgba(255, 255, 255, 0.72);
|
|
}
|
|
|
|
.parameter-table-cell input:focus,
|
|
.parameter-table-cell select:focus {
|
|
border-color: #1d6fb8;
|
|
outline: 0;
|
|
background: #ffffff;
|
|
box-shadow: inset 0 0 0 1px #1d6fb8;
|
|
}
|
|
|
|
.parameter-table-cell input:focus-visible,
|
|
.parameter-table-cell select:focus-visible {
|
|
outline: 2px solid rgba(29, 111, 184, 0.28);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.parameter-table-row.read-only .parameter-value-cell,
|
|
.parameter-table-row.read-only .parameter-table-value-cell,
|
|
.parameter-table-cell input:read-only {
|
|
background: transparent;
|
|
}
|
|
|
|
.parameter-read-only-value,
|
|
.parameter-table-read-only-value {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
width: 100%;
|
|
min-width: 0;
|
|
height: 28px;
|
|
box-sizing: border-box;
|
|
padding: 0 6px;
|
|
overflow: hidden;
|
|
border: 0;
|
|
border-radius: 0;
|
|
color: #526172;
|
|
text-align: right;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
background: transparent;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.parameter-table-row.unitless .parameter-unit-cell,
|
|
.parameter-table-row.unitless .parameter-table-unit-cell {
|
|
color: #8a96a4;
|
|
}
|
|
|
|
.parameter-table-row.unitless .parameter-unit-cell:empty::before,
|
|
.parameter-table-row.unitless .parameter-table-unit-cell:empty::before {
|
|
content: "—";
|
|
}
|
|
|
|
.parameter-table
|
|
> tbody
|
|
> .parameter-table-row.invalid
|
|
> .parameter-table-cell {
|
|
background: #fff8f7;
|
|
}
|
|
|
|
.parameter-table-row.invalid input,
|
|
.parameter-table-row.invalid select,
|
|
.parameter-table-cell input[aria-invalid="true"],
|
|
.parameter-table-cell select[aria-invalid="true"] {
|
|
border-color: #c63b32;
|
|
box-shadow: inset 0 0 0 1px rgba(198, 59, 50, 0.18);
|
|
}
|
|
|
|
.parameter-table-message-row {
|
|
height: auto;
|
|
}
|
|
|
|
.parameter-table-message-row > .parameter-table-cell {
|
|
height: auto;
|
|
min-height: 24px;
|
|
padding: 4px 7px 5px;
|
|
overflow: visible;
|
|
white-space: normal;
|
|
}
|
|
|
|
.parameter-table-message-row .field-error,
|
|
.parameter-table-message-row .field-hint {
|
|
display: block;
|
|
margin: 0;
|
|
overflow-wrap: anywhere;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.parameter-table-row.invalid + .parameter-table-message-row > .parameter-table-cell {
|
|
color: #b42318;
|
|
background: #fff8f7;
|
|
}
|
|
|
|
.parameter-table > tbody > tr:last-child > .parameter-table-cell {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.parameter-column-resizer,
|
|
.parameter-table-column-resizer {
|
|
position: absolute;
|
|
z-index: 4;
|
|
top: 0;
|
|
right: -5px;
|
|
bottom: 0;
|
|
width: 9px;
|
|
padding: 0;
|
|
border: 0;
|
|
outline: 0;
|
|
background: transparent;
|
|
cursor: col-resize;
|
|
touch-action: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.parameter-column-resizer::after,
|
|
.parameter-table-column-resizer::after {
|
|
position: absolute;
|
|
top: 3px;
|
|
bottom: 3px;
|
|
left: 4px;
|
|
width: 1px;
|
|
background: #aebac7;
|
|
content: "";
|
|
}
|
|
|
|
.parameter-column-resizer:hover::after,
|
|
.parameter-column-resizer:focus-visible::after,
|
|
.parameter-column-resizer:active::after,
|
|
.parameter-table-column-resizer:hover::after,
|
|
.parameter-table-column-resizer:focus-visible::after,
|
|
.parameter-table-column-resizer:active::after {
|
|
width: 2px;
|
|
background: #1d6fb8;
|
|
}
|
|
|
|
.parameter-column-resizer:focus-visible,
|
|
.parameter-table-column-resizer:focus-visible {
|
|
outline: 2px solid rgba(29, 111, 184, 0.42);
|
|
outline-offset: -2px;
|
|
}
|
|
|
|
.parameter-table-wrap[data-resizing-column],
|
|
.parameter-table-wrap[data-resizing-column] * {
|
|
cursor: col-resize;
|
|
user-select: none;
|
|
}
|
|
|
|
.parameter-table-wrap[data-resizing-column="name"]
|
|
.parameter-column-resizer[data-column="name"]::after,
|
|
.parameter-table-wrap[data-resizing-column="unit"]
|
|
.parameter-column-resizer[data-column="unit"]::after,
|
|
.parameter-table-wrap.resizing-name
|
|
.parameter-column-resizer[data-column="name"]::after,
|
|
.parameter-table-wrap.resizing-unit
|
|
.parameter-column-resizer[data-column="unit"]::after,
|
|
.parameter-table-wrap[data-resizing-column="name"]
|
|
.parameter-table-column-resizer[data-column="name"]::after,
|
|
.parameter-table-wrap[data-resizing-column="unit"]
|
|
.parameter-table-column-resizer[data-column="unit"]::after,
|
|
.parameter-table-wrap.resizing-name
|
|
.parameter-table-column-resizer[data-column="name"]::after,
|
|
.parameter-table-wrap.resizing-unit
|
|
.parameter-table-column-resizer[data-column="unit"]::after {
|
|
width: 2px;
|
|
background: #1d6fb8;
|
|
}
|
|
|
|
.parameter-table .field,
|
|
.parameter-table .parameter-control {
|
|
display: contents;
|
|
}
|
|
|
|
.parameter-help-preview {
|
|
position: fixed;
|
|
z-index: 10020;
|
|
width: max-content;
|
|
max-width: min(300px, calc(100vw - 16px));
|
|
box-sizing: border-box;
|
|
padding: 10px 12px;
|
|
border: 1px solid #c7d1dc;
|
|
border-radius: 5px;
|
|
color: #263442;
|
|
background: #ffffff;
|
|
box-shadow: 0 8px 22px rgba(15, 23, 42, 0.2);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.parameter-help-preview .title,
|
|
.parameter-help-preview-title {
|
|
display: block;
|
|
overflow-wrap: anywhere;
|
|
color: #17212b;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.parameter-help-preview .description,
|
|
.parameter-help-preview-description {
|
|
display: block;
|
|
margin-top: 6px;
|
|
overflow-wrap: anywhere;
|
|
color: #475569;
|
|
font-size: 11px;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.parameter-help-preview .meta,
|
|
.parameter-help-preview-meta {
|
|
display: grid;
|
|
gap: 2px;
|
|
margin-top: 7px;
|
|
padding-top: 6px;
|
|
overflow-wrap: anywhere;
|
|
border-top: 1px solid #e2e8f0;
|
|
color: #64748b;
|
|
font-size: 10px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.palette-panel-title {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.palette-display-mode {
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
gap: 1px;
|
|
padding: 1px;
|
|
border: 1px solid #cad5e1;
|
|
border-radius: 5px;
|
|
background: #f4f7fa;
|
|
}
|
|
|
|
.palette-display-mode-button {
|
|
display: grid;
|
|
width: 23px;
|
|
height: 22px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-radius: 3px;
|
|
place-items: center;
|
|
color: #64748b;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.palette-display-mode-button:hover {
|
|
color: #155a94;
|
|
background: #e6f0f8;
|
|
}
|
|
|
|
.palette-display-mode-button:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.palette-display-mode-button[aria-pressed="true"] {
|
|
color: #155a94;
|
|
background: #ffffff;
|
|
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.16);
|
|
}
|
|
|
|
.catalog-source {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
color: #64748b;
|
|
font-size: 10px;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.catalog-source > span {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: #d49b16;
|
|
}
|
|
|
|
.catalog-source.ready > span {
|
|
background: #198754;
|
|
}
|
|
|
|
.catalog-source.fallback > span {
|
|
background: #b45309;
|
|
}
|
|
|
|
.palette-library + .palette-library {
|
|
margin-top: 18px;
|
|
padding-top: 14px;
|
|
border-top: 1px solid #e3e8ef;
|
|
}
|
|
|
|
.palette-library-heading {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.palette-library-heading strong {
|
|
color: #17212b;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.palette-library-heading small {
|
|
color: #64748b;
|
|
font-size: 10px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.palette-category + .palette-category {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.palette-category-title {
|
|
margin-bottom: 6px;
|
|
color: #526172;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.palette-collapse-toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
width: 100%;
|
|
min-width: 0;
|
|
padding: 2px 0;
|
|
border: 0;
|
|
border-radius: 3px;
|
|
color: inherit;
|
|
text-align: left;
|
|
background: transparent;
|
|
font: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.palette-collapse-toggle:hover {
|
|
color: #155a94;
|
|
}
|
|
|
|
.palette-collapse-toggle:focus-visible {
|
|
outline: 2px solid #1d6fb8;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.palette-collapse-chevron {
|
|
flex: 0 0 auto;
|
|
transform: rotate(0deg);
|
|
transition: transform 120ms ease;
|
|
}
|
|
|
|
.palette-collapse-toggle[aria-expanded="false"] .palette-collapse-chevron {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
.palette-library-toggle {
|
|
flex: 1 1 auto;
|
|
width: auto;
|
|
}
|
|
|
|
.palette-category-items {
|
|
display: grid;
|
|
gap: 8px;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-category-items {
|
|
grid-template-columns: repeat(auto-fill, 76px);
|
|
gap: 6px;
|
|
justify-content: start;
|
|
}
|
|
|
|
.compact-form {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.compact-form .field:last-child {
|
|
grid-column: 1 / -1;
|
|
}
|
|
|
|
.palette-item {
|
|
display: grid;
|
|
grid-template-columns: 36px minmax(0, 1fr);
|
|
align-items: center;
|
|
gap: 10px;
|
|
min-height: 52px;
|
|
padding: 8px;
|
|
border: 1px solid #d6dee9;
|
|
border-radius: 6px;
|
|
color: #22303f;
|
|
text-align: left;
|
|
background: #ffffff;
|
|
cursor: grab;
|
|
transition: border-color 120ms ease, box-shadow 120ms ease,
|
|
background 120ms ease, transform 80ms ease;
|
|
}
|
|
|
|
.palette-item:hover {
|
|
border-color: #85add0;
|
|
background: #f5faff;
|
|
box-shadow: 0 2px 6px rgba(21, 90, 148, 0.1);
|
|
}
|
|
|
|
.palette-item:focus-visible {
|
|
border-color: #1d6fb8;
|
|
outline: 2px solid rgba(29, 111, 184, 0.32);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.palette-item:active {
|
|
cursor: grabbing;
|
|
transform: translateY(1px);
|
|
}
|
|
|
|
.palette-item-copy {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.palette-item-copy strong {
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.palette-item small {
|
|
display: block;
|
|
margin-top: 2px;
|
|
overflow: hidden;
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.palette-icon {
|
|
display: grid;
|
|
width: 36px;
|
|
height: 36px;
|
|
place-items: center;
|
|
}
|
|
|
|
.component-symbol {
|
|
display: grid;
|
|
width: 100%;
|
|
height: 100%;
|
|
place-items: center;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.component-symbol-svg {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: visible;
|
|
shape-rendering: geometricPrecision;
|
|
}
|
|
|
|
.component-symbol-svg[data-symbol-domain="neutral"] {
|
|
--component-symbol-stroke: #334155;
|
|
--component-symbol-fill: #f8fafc;
|
|
--component-symbol-accent: #2563eb;
|
|
--component-symbol-muted: #94a3b8;
|
|
}
|
|
|
|
.component-symbol-svg[data-symbol-domain="pneumatic"] {
|
|
--component-symbol-stroke: #a12b70;
|
|
--component-symbol-fill: #fff8fc;
|
|
--component-symbol-accent: #bd2779;
|
|
--component-symbol-muted: #d69aba;
|
|
}
|
|
|
|
.component-symbol-svg[data-symbol-domain="mechanical"] {
|
|
--component-symbol-stroke: #1f9d42;
|
|
--component-symbol-fill: #f4fff6;
|
|
--component-symbol-accent: #15803d;
|
|
--component-symbol-muted: #86c994;
|
|
}
|
|
|
|
.component-symbol-svg[data-symbol-domain="signal"] {
|
|
--component-symbol-stroke: #ef4444;
|
|
--component-symbol-fill: #fff8f8;
|
|
--component-symbol-accent: #dc2626;
|
|
--component-symbol-muted: #f5a3a3;
|
|
}
|
|
|
|
.component-symbol-svg[data-symbol-domain="medium"] {
|
|
--component-symbol-stroke: #c026d3;
|
|
--component-symbol-fill: #ffffff;
|
|
--component-symbol-accent: #a21caf;
|
|
--component-symbol-muted: #e879f9;
|
|
}
|
|
|
|
.component-symbol-medium-label {
|
|
font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-list {
|
|
padding: 10px;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-item {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
grid-template-rows: 48px 16px;
|
|
gap: 4px;
|
|
width: 76px;
|
|
height: 82px;
|
|
min-height: 82px;
|
|
box-sizing: border-box;
|
|
padding: 6px 5px;
|
|
place-items: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-item-copy {
|
|
display: block;
|
|
width: 100%;
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
line-height: 16px;
|
|
text-align: center;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-item-copy strong {
|
|
width: 100%;
|
|
overflow: hidden;
|
|
font-size: 10px;
|
|
line-height: 16px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-item-copy small {
|
|
display: none;
|
|
}
|
|
|
|
.palette[data-view-mode="icons"] .palette-icon {
|
|
flex: 0 0 48px;
|
|
width: 48px;
|
|
height: 48px;
|
|
}
|
|
|
|
.palette-icon-preview {
|
|
position: fixed;
|
|
z-index: 10000;
|
|
display: grid;
|
|
grid-template-rows: 56px auto;
|
|
min-width: 104px;
|
|
max-width: 220px;
|
|
box-sizing: border-box;
|
|
padding: 9px 11px 10px;
|
|
border: 1px solid #cbd5e1;
|
|
border-radius: 6px;
|
|
place-items: center;
|
|
color: #1f2937;
|
|
background: #ffffff;
|
|
box-shadow: 0 7px 18px rgba(15, 23, 42, 0.2);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.palette-icon-preview-symbol {
|
|
display: grid;
|
|
flex: 0 0 56px;
|
|
width: 56px;
|
|
height: 56px;
|
|
place-items: center;
|
|
}
|
|
|
|
.palette-icon-preview-symbol > .component-symbol {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.palette-icon-preview-label {
|
|
max-width: 198px;
|
|
margin-top: 5px;
|
|
overflow-wrap: anywhere;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
line-height: 1.35;
|
|
text-align: center;
|
|
}
|
|
|
|
.component-drag-preview {
|
|
position: fixed;
|
|
top: -1000px;
|
|
left: -1000px;
|
|
z-index: -1;
|
|
display: grid;
|
|
grid-template-rows: 30px 12px;
|
|
place-items: center;
|
|
width: 72px;
|
|
height: 58px;
|
|
padding: 5px 6px 4px;
|
|
border: 1px solid #7c8998;
|
|
border-radius: 5px;
|
|
color: #1f2933;
|
|
background: #ffffff;
|
|
box-shadow: 0 2px 5px rgba(15, 23, 42, 0.16);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.component-drag-preview .palette-icon {
|
|
width: 30px;
|
|
height: 30px;
|
|
}
|
|
|
|
.component-drag-preview-label {
|
|
max-width: 60px;
|
|
overflow: hidden;
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
line-height: 12px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
|
|
.flow-canvas {
|
|
position: relative;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
background: #f8fafc;
|
|
}
|
|
|
|
.recovery-banner button {
|
|
min-width: 48px;
|
|
height: 28px;
|
|
padding: 0 8px;
|
|
border: 1px solid #c2ccda;
|
|
border-radius: 4px;
|
|
color: #263442;
|
|
background: #ffffff;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.recovery-banner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 7px 9px;
|
|
border: 1px solid #d5a52e;
|
|
border-radius: 6px;
|
|
color: #713f12;
|
|
background: #fffbeb;
|
|
box-shadow: 0 2px 8px rgba(120, 53, 15, 0.12);
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.recovery-banner button {
|
|
min-width: 42px;
|
|
border-color: #d5a52e;
|
|
color: #713f12;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.flow-canvas .react-flow__pane,
|
|
.flow-canvas .react-flow__pane.selection,
|
|
.flow-canvas .react-flow__node.selectable,
|
|
.flow-canvas .react-flow__node.draggable {
|
|
cursor: default;
|
|
}
|
|
|
|
.flow-canvas .react-flow__pane.dragging {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.flow-canvas .react-flow__node.draggable.dragging {
|
|
cursor: move;
|
|
}
|
|
|
|
.flow-canvas .react-flow__nodesselection-rect {
|
|
border: 0;
|
|
background: transparent;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.sim-node {
|
|
position: relative;
|
|
width: 132px;
|
|
height: 84px;
|
|
}
|
|
|
|
.sim-node.orientation-vertical {
|
|
width: 84px;
|
|
height: 132px;
|
|
}
|
|
|
|
.sim-node-frame {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
width: 132px;
|
|
height: 84px;
|
|
box-sizing: border-box;
|
|
border: 2px solid #4b5563;
|
|
border-radius: 6px;
|
|
background: #ffffff;
|
|
box-shadow: 0 4px 10px rgba(15, 23, 42, 0.08);
|
|
transform-origin: center;
|
|
}
|
|
|
|
.sim-node.selected {
|
|
outline: 1px dashed #111827;
|
|
outline-offset: 4px;
|
|
}
|
|
|
|
.flow-canvas .react-flow__node.component-icon-node {
|
|
pointer-events: none !important;
|
|
}
|
|
|
|
.flow-canvas .react-flow__node.component-icon-node .sim-node {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.flow-canvas .react-flow__node.component-icon-node .node-symbol-envelope,
|
|
.flow-canvas
|
|
.react-flow__node.component-icon-node
|
|
.port-handle.port-connection-idle,
|
|
.flow-canvas
|
|
.react-flow__node.component-icon-node
|
|
.port-handle.port-connection-origin,
|
|
.flow-canvas
|
|
.react-flow__node.component-icon-node
|
|
.port-handle.port-connection-compatible {
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.react-flow__node.validation-error .sim-node-frame {
|
|
border-color: #c63b32;
|
|
box-shadow: 0 0 0 3px rgba(198, 59, 50, 0.14);
|
|
}
|
|
|
|
.react-flow__node.validation-warning .sim-node-frame {
|
|
border-color: #c08a16;
|
|
box-shadow: 0 0 0 3px rgba(192, 138, 22, 0.14);
|
|
}
|
|
|
|
.node-symbol-anchor {
|
|
position: absolute;
|
|
z-index: 1;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 112px;
|
|
height: 84px;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.node-symbol {
|
|
position: relative;
|
|
display: grid;
|
|
width: 112px;
|
|
height: 84px;
|
|
place-items: center;
|
|
transform-origin: center;
|
|
}
|
|
|
|
.node-symbol > .component-symbol {
|
|
position: relative;
|
|
z-index: 1;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.node-symbol-envelope {
|
|
position: absolute;
|
|
z-index: 2;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.sim-node.component-icon-only.selected {
|
|
outline: none;
|
|
}
|
|
|
|
.sim-node.component-icon-only.selected .node-symbol-envelope {
|
|
outline: 1px dashed #111827;
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.sim-node.symbol-presentation-bare .sim-node-frame,
|
|
.sim-node.symbol-presentation-bare.selected .sim-node-frame,
|
|
.sim-node.component-icon-only .sim-node-frame,
|
|
.sim-node.component-icon-only.selected .sim-node-frame {
|
|
border-width: 0;
|
|
border-color: transparent;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.sim-node.symbol-presentation-bare .node-label,
|
|
.sim-node.component-icon-only .node-label {
|
|
display: none;
|
|
background: transparent;
|
|
}
|
|
|
|
.react-flow__node.validation-error
|
|
.sim-node.component-icon-only
|
|
.component-symbol-svg {
|
|
filter: drop-shadow(0 0 3px rgba(198, 59, 50, 0.68));
|
|
}
|
|
|
|
.react-flow__node.validation-warning
|
|
.sim-node.component-icon-only
|
|
.component-symbol-svg {
|
|
filter: drop-shadow(0 0 3px rgba(192, 138, 22, 0.68));
|
|
}
|
|
|
|
.node-label {
|
|
position: absolute;
|
|
z-index: 2;
|
|
bottom: 4px;
|
|
left: 50%;
|
|
max-width: calc(100% - 14px);
|
|
padding: 0 2px;
|
|
overflow: hidden;
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
line-height: 16px;
|
|
pointer-events: none;
|
|
text-overflow: ellipsis;
|
|
transform: translateX(-50%);
|
|
white-space: nowrap;
|
|
background: rgba(255, 255, 255, 0.88);
|
|
}
|
|
|
|
.sim-node.generic-component .node-label {
|
|
top: 50%;
|
|
bottom: auto;
|
|
display: -webkit-box;
|
|
max-width: calc(100% - 28px);
|
|
overflow: hidden;
|
|
line-height: 16px;
|
|
text-align: center;
|
|
text-overflow: ellipsis;
|
|
transform: translate(-50%, -50%);
|
|
white-space: normal;
|
|
background: transparent;
|
|
-webkit-box-orient: vertical;
|
|
-webkit-line-clamp: 2;
|
|
}
|
|
|
|
.port-handle {
|
|
z-index: 3;
|
|
width: 9px;
|
|
height: 9px;
|
|
box-sizing: border-box;
|
|
border: 1.5px solid var(--port-handle-color, #475569);
|
|
border-radius: 50%;
|
|
background: #ffffff;
|
|
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.82);
|
|
opacity: 1;
|
|
transition: opacity 100ms ease, border-color 100ms ease,
|
|
background 100ms ease, box-shadow 100ms ease;
|
|
}
|
|
|
|
.port-handle-physical {
|
|
--port-handle-color: #a12b70;
|
|
}
|
|
|
|
.port-handle-signal {
|
|
--port-handle-color: #dc2626;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.port-handle.port-connection-connected {
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
}
|
|
|
|
.port-handle.port-connection-origin {
|
|
border-color: #d97706;
|
|
background: #fff7d6;
|
|
box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.24),
|
|
0 0 8px rgba(217, 119, 6, 0.42);
|
|
}
|
|
|
|
.port-handle.port-connection-compatible {
|
|
border-color: #15803d;
|
|
background: #dcfce7;
|
|
box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.24),
|
|
0 0 9px rgba(21, 128, 61, 0.48);
|
|
}
|
|
|
|
.port-handle.port-connection-incompatible {
|
|
pointer-events: none;
|
|
opacity: 0.18;
|
|
}
|
|
|
|
.flow-canvas .react-flow__edge-path,
|
|
.flow-canvas .react-flow__connection-path {
|
|
stroke: #64748b;
|
|
stroke-width: 1.5;
|
|
stroke-linecap: round;
|
|
stroke-linejoin: round;
|
|
transition: stroke 120ms ease-out, stroke-width 120ms ease-out, filter 120ms ease-out;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.flow-canvas .react-flow__edge-interaction {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.flow-canvas .react-flow__edge:hover .react-flow__edge-path {
|
|
stroke: #3977a8;
|
|
stroke-width: 2.25;
|
|
}
|
|
|
|
.flow-canvas .react-flow__edge.selected .react-flow__edge-path,
|
|
.flow-canvas .react-flow__edge.editor-edge-selected .react-flow__edge-path {
|
|
stroke: #1d6fb8;
|
|
stroke-width: 3.25;
|
|
filter: drop-shadow(0 0 2px rgba(29, 111, 184, 0.42));
|
|
}
|
|
|
|
.contact-edge-hit {
|
|
cursor: pointer;
|
|
fill: transparent;
|
|
pointer-events: all;
|
|
stroke: transparent;
|
|
}
|
|
|
|
.contact-edge-marker {
|
|
fill: #ffffff;
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
stroke: #64748b;
|
|
stroke-width: 1.5;
|
|
transition: opacity 120ms ease-out, fill 120ms ease-out, stroke 120ms ease-out;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.react-flow__edge.editor-edge-contact:hover .contact-edge-marker,
|
|
.react-flow__edge.editor-edge-contact.selected .contact-edge-marker,
|
|
.react-flow__edge.editor-edge-contact.editor-edge-selected .contact-edge-marker,
|
|
.contact-edge-hit:focus-visible + .contact-edge-marker {
|
|
opacity: 1;
|
|
}
|
|
|
|
.react-flow__edge.editor-edge-contact.selected .contact-edge-marker,
|
|
.react-flow__edge.editor-edge-contact.editor-edge-selected .contact-edge-marker,
|
|
.contact-edge-hit:focus-visible + .contact-edge-marker {
|
|
fill: #dbeafe;
|
|
stroke: #1d6fb8;
|
|
stroke-width: 2;
|
|
}
|
|
|
|
.field {
|
|
display: grid;
|
|
gap: 6px;
|
|
color: #334155;
|
|
font-size: 12px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.field em {
|
|
margin-left: 6px;
|
|
color: #64748b;
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.field input,
|
|
.field select {
|
|
width: 100%;
|
|
height: 34px;
|
|
padding: 0 9px;
|
|
border: 1px solid #c2ccda;
|
|
border-radius: 6px;
|
|
color: #1f2933;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.field select {
|
|
padding: 0 7px;
|
|
}
|
|
|
|
.parameter-control {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) 76px;
|
|
gap: 6px;
|
|
}
|
|
|
|
.parameter-control.unitless {
|
|
grid-template-columns: minmax(0, 1fr);
|
|
}
|
|
|
|
.field.invalid input,
|
|
.field.invalid select {
|
|
border-color: #c63b32;
|
|
}
|
|
|
|
.field-error {
|
|
color: #b42318;
|
|
font-size: 11px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.field-hint {
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
font-weight: 400;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.node-id {
|
|
padding-bottom: 8px;
|
|
border-bottom: 1px solid #e3e8ef;
|
|
color: #64748b;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.empty-state {
|
|
padding: 16px;
|
|
color: #64748b;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.results-shell {
|
|
display: grid;
|
|
grid-template-rows: 62px minmax(0, 1fr);
|
|
width: 100%;
|
|
height: 100%;
|
|
min-width: 980px;
|
|
background: #eef2f6;
|
|
}
|
|
|
|
.results-topbar {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
|
|
align-items: center;
|
|
gap: 18px;
|
|
padding: 8px 14px;
|
|
border-bottom: 1px solid #cfd8e3;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.results-run-meta {
|
|
display: grid;
|
|
justify-items: end;
|
|
gap: 2px;
|
|
min-width: 0;
|
|
text-align: right;
|
|
}
|
|
|
|
.results-run-meta strong,
|
|
.results-run-meta span {
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.results-run-meta strong {
|
|
color: #253342;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.results-run-meta span {
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.results-run-meta .results-run-status {
|
|
padding: 2px 5px;
|
|
border: 1px solid #d9a441;
|
|
border-radius: 4px;
|
|
color: #80591b;
|
|
background: #fff8e8;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.results-run-meta .results-run-status.stalled,
|
|
.results-run-meta .results-run-status.failed {
|
|
border-color: #d99b96;
|
|
color: #9f2f28;
|
|
background: #fff1f0;
|
|
}
|
|
|
|
.results-run-meta.empty {
|
|
color: #7b8795;
|
|
}
|
|
|
|
.results-run-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.results-file-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 3px;
|
|
padding: 2px;
|
|
border: 1px solid #c4cfdb;
|
|
border-radius: 6px;
|
|
background: #f6f8fa;
|
|
}
|
|
|
|
.results-file-toolbar button {
|
|
display: grid;
|
|
flex: 0 0 30px;
|
|
width: 30px;
|
|
height: 28px;
|
|
padding: 0;
|
|
border: 1px solid #b9c7d6;
|
|
border-radius: 4px;
|
|
place-items: center;
|
|
color: #214f78;
|
|
background: #ffffff;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-file-toolbar button:hover:not(:disabled) {
|
|
border-color: #7da8ce;
|
|
background: #eef6fc;
|
|
}
|
|
|
|
.results-file-toolbar button:disabled {
|
|
color: #8492a2;
|
|
background: #f3f5f7;
|
|
cursor: wait;
|
|
}
|
|
|
|
.results-file-input {
|
|
display: none;
|
|
}
|
|
|
|
.results-workbench {
|
|
display: grid;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
background: #dfe5ec;
|
|
}
|
|
|
|
.results-workbench.resizing-inspector-width,
|
|
.results-workbench.resizing-system-height {
|
|
user-select: none;
|
|
}
|
|
|
|
.results-inspector-pane {
|
|
display: grid;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.results-system-panel,
|
|
.results-chart-panel,
|
|
.results-variable-panel {
|
|
display: grid;
|
|
grid-template-rows: 43px minmax(0, 1fr);
|
|
min-width: 0;
|
|
min-height: 0;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.results-system-panel {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.results-chart-panel {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.results-variable-panel {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.results-variable-content {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: auto;
|
|
background: #fbfcfd;
|
|
}
|
|
|
|
.results-pane-splitter {
|
|
position: relative;
|
|
z-index: 30;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 0;
|
|
border: 0;
|
|
outline: none;
|
|
background: #e4e9ef;
|
|
touch-action: none;
|
|
}
|
|
|
|
.results-pane-splitter::before {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: transparent;
|
|
content: "";
|
|
}
|
|
|
|
.results-pane-splitter span {
|
|
position: relative;
|
|
display: block;
|
|
border-radius: 1px;
|
|
background: #91a0b0;
|
|
}
|
|
|
|
.results-pane-splitter.vertical {
|
|
cursor: col-resize;
|
|
}
|
|
|
|
.results-pane-splitter.vertical span {
|
|
width: 2px;
|
|
height: 34px;
|
|
}
|
|
|
|
.results-pane-splitter.horizontal {
|
|
cursor: row-resize;
|
|
}
|
|
|
|
.results-pane-splitter.horizontal span {
|
|
width: 34px;
|
|
height: 2px;
|
|
}
|
|
|
|
.results-pane-splitter:hover,
|
|
.results-pane-splitter:focus-visible,
|
|
.results-workbench.resizing-inspector-width > .results-pane-splitter.vertical,
|
|
.results-workbench.resizing-system-height .results-pane-splitter.horizontal {
|
|
background: #d7e9f7;
|
|
}
|
|
|
|
.results-pane-splitter:hover span,
|
|
.results-pane-splitter:focus-visible span,
|
|
.results-workbench.resizing-inspector-width > .results-pane-splitter.vertical span,
|
|
.results-workbench.resizing-system-height .results-pane-splitter.horizontal span {
|
|
background: #1d6fb8;
|
|
}
|
|
|
|
.results-section-heading {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-height: 43px;
|
|
padding: 0 13px;
|
|
border-bottom: 1px solid #dfe5ec;
|
|
color: #233142;
|
|
background: #f7f9fb;
|
|
}
|
|
|
|
.results-section-heading strong {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.results-section-heading span {
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.results-chart-heading {
|
|
position: relative;
|
|
z-index: 25;
|
|
overflow: visible;
|
|
}
|
|
|
|
.results-chart-heading-tools {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.results-multi-create {
|
|
position: relative;
|
|
}
|
|
|
|
.results-multi-create > button {
|
|
display: grid;
|
|
place-items: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
padding: 0;
|
|
border: 1px solid transparent;
|
|
border-radius: 4px;
|
|
color: #526172;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-multi-create > button:hover:not(:disabled),
|
|
.results-multi-create > button.active {
|
|
border-color: #74a9d7;
|
|
color: #0f5f9f;
|
|
background: #e8f3fc;
|
|
}
|
|
|
|
.results-multi-create > button:disabled {
|
|
cursor: default;
|
|
opacity: 0.38;
|
|
}
|
|
|
|
.results-multi-create-menu {
|
|
position: absolute;
|
|
top: 32px;
|
|
right: 0;
|
|
z-index: 40;
|
|
width: 210px;
|
|
max-height: 240px;
|
|
overflow: auto;
|
|
border: 1px solid #8fa1b4;
|
|
border-radius: 5px;
|
|
color: #26384b;
|
|
background: #ffffff;
|
|
box-shadow: 0 8px 22px rgba(30, 41, 59, 0.2);
|
|
}
|
|
|
|
.results-multi-create-title {
|
|
height: 31px;
|
|
padding: 8px 10px;
|
|
border-bottom: 1px solid #dbe2ea;
|
|
color: #5e6e80;
|
|
background: #f3f6f9;
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.results-multi-create-menu > button {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
width: 100%;
|
|
min-height: 34px;
|
|
padding: 6px 10px;
|
|
border: 0;
|
|
border-bottom: 1px solid #edf0f4;
|
|
color: #28394c;
|
|
background: #ffffff;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-multi-create-menu > button:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.results-multi-create-menu > button:hover,
|
|
.results-multi-create-menu > button:focus-visible {
|
|
outline: none;
|
|
background: #edf4fa;
|
|
}
|
|
|
|
.results-multi-create-menu > button strong {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
font-size: 11px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.results-multi-create-menu > button span {
|
|
flex: 0 0 auto;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.results-multi-create-menu.variables {
|
|
width: 320px;
|
|
}
|
|
|
|
.results-system-canvas {
|
|
position: relative;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
background: #f8fafc;
|
|
}
|
|
|
|
.results-system-canvas .react-flow__pane {
|
|
cursor: grab;
|
|
}
|
|
|
|
.results-system-canvas .react-flow__pane.dragging {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.results-system-canvas .react-flow__node {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-system-canvas .react-flow__handle {
|
|
cursor: default;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.results-system-canvas .react-flow__edge-path {
|
|
stroke: #5f6f82;
|
|
stroke-width: 1.5;
|
|
}
|
|
|
|
.results-system-canvas .contact-edge-hit {
|
|
cursor: default;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.results-system-canvas .contact-edge-marker {
|
|
opacity: 0;
|
|
}
|
|
|
|
.results-chart-workspace {
|
|
position: relative;
|
|
z-index: 0;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
background-color: #f5f7fa;
|
|
background-image: radial-gradient(#cbd5e1 0.7px, transparent 0.7px);
|
|
background-position: 0 0;
|
|
background-size: 18px 18px;
|
|
isolation: isolate;
|
|
}
|
|
|
|
.results-chart-workspace.empty {
|
|
background-color: #f8fafc;
|
|
}
|
|
|
|
.results-workspace-empty {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
color: #8a97a6;
|
|
font-size: 12px;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.result-chart-window {
|
|
position: absolute;
|
|
display: grid;
|
|
grid-template-rows: 44px minmax(0, 1fr);
|
|
overflow: hidden;
|
|
border: 1px solid #99a8b8;
|
|
border-radius: 6px;
|
|
background: #ffffff;
|
|
box-shadow: 0 7px 20px rgba(30, 41, 59, 0.18);
|
|
}
|
|
|
|
.result-chart-window.drop-target {
|
|
border-color: #1d6fb8;
|
|
box-shadow: 0 0 0 3px rgba(29, 111, 184, 0.2),
|
|
0 7px 20px rgba(30, 41, 59, 0.18);
|
|
}
|
|
|
|
.result-chart-pending {
|
|
display: grid;
|
|
align-content: center;
|
|
justify-items: center;
|
|
gap: 7px;
|
|
margin: 16px;
|
|
padding: 24px;
|
|
border: 1px dashed #9aaaba;
|
|
border-radius: 5px;
|
|
color: #718096;
|
|
text-align: center;
|
|
background: #f8fafc;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.result-chart-pending strong {
|
|
color: #43556a;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.result-chart-pending span {
|
|
max-width: 300px;
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.result-chart-window.pending.drop-target .result-chart-pending {
|
|
border-color: #1d6fb8;
|
|
color: #1d6fb8;
|
|
background: #edf6fd;
|
|
}
|
|
|
|
.result-chart-window-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 5px 7px 5px 11px;
|
|
border-bottom: 1px solid #dbe2ea;
|
|
background: #f6f8fa;
|
|
cursor: move;
|
|
touch-action: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.result-chart-window-title {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
}
|
|
|
|
.result-chart-window-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
flex: 0 0 auto;
|
|
gap: 2px;
|
|
}
|
|
|
|
.result-chart-window-actions select {
|
|
width: 74px;
|
|
height: 28px;
|
|
padding: 0 20px 0 7px;
|
|
border: 1px solid #c5cfda;
|
|
border-radius: 4px;
|
|
color: #34465a;
|
|
background: #ffffff;
|
|
font: inherit;
|
|
font-size: 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.result-chart-window-actions select:focus-visible {
|
|
border-color: #1d6fb8;
|
|
outline: 2px solid rgba(29, 111, 184, 0.18);
|
|
outline-offset: 1px;
|
|
}
|
|
|
|
.result-chart-window-title strong,
|
|
.result-chart-window-title span {
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.result-chart-window-title strong {
|
|
color: #1f2933;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.result-chart-window-title span {
|
|
margin-top: 1px;
|
|
color: #64748b;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.result-chart-window-header button {
|
|
display: grid;
|
|
flex: 0 0 28px;
|
|
place-items: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
padding: 0;
|
|
border: 1px solid transparent;
|
|
border-radius: 4px;
|
|
color: #526172;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.result-chart-window-header button:hover {
|
|
border-color: #c5cfda;
|
|
color: #1d6fb8;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.result-chart-window-header button.cursor.active {
|
|
border-color: #74a9d7;
|
|
color: #0f5f9f;
|
|
background: #e8f3fc;
|
|
}
|
|
|
|
.result-chart-window-header button.active {
|
|
border-color: #74a9d7;
|
|
color: #0f5f9f;
|
|
background: #e8f3fc;
|
|
}
|
|
|
|
.result-chart-multi-picker {
|
|
position: relative;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.result-chart-multi-menu {
|
|
position: absolute;
|
|
top: 31px;
|
|
right: 0;
|
|
z-index: 20;
|
|
width: 340px;
|
|
max-width: min(340px, calc(100vw - 32px));
|
|
overflow: hidden;
|
|
border: 1px solid #8fa1b4;
|
|
border-radius: 5px;
|
|
color: #26384b;
|
|
background: #ffffff;
|
|
box-shadow: 0 8px 22px rgba(30, 41, 59, 0.2);
|
|
cursor: default;
|
|
}
|
|
|
|
.result-chart-multi-menu-title {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
height: 32px;
|
|
padding: 0 9px;
|
|
border-bottom: 1px solid #dbe2ea;
|
|
background: #f3f6f9;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.result-chart-multi-menu-title span {
|
|
color: #5e6e80;
|
|
}
|
|
|
|
.result-chart-multi-menu-title strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.result-chart-multi-menu-list {
|
|
max-height: 156px;
|
|
overflow: auto;
|
|
padding: 4px;
|
|
}
|
|
|
|
.result-chart-multi-menu-row {
|
|
display: grid;
|
|
grid-template-columns: 16px 5px minmax(0, 1fr) 78px 26px;
|
|
gap: 7px;
|
|
align-items: center;
|
|
min-height: 36px;
|
|
padding: 4px 6px;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.result-chart-multi-menu-row:hover {
|
|
background: #edf4fa;
|
|
}
|
|
|
|
.result-chart-multi-menu-row > input {
|
|
width: 14px;
|
|
height: 14px;
|
|
margin: 0;
|
|
accent-color: #1d6fb8;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.result-chart-multi-menu-list .result-variable-swatch {
|
|
width: 4px;
|
|
height: 25px;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.result-chart-multi-menu-label {
|
|
min-width: 0;
|
|
}
|
|
|
|
.result-chart-multi-menu-label b,
|
|
.result-chart-multi-menu-label small {
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.result-chart-multi-menu-label b {
|
|
color: #27384b;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.result-chart-multi-menu-label small {
|
|
margin-top: 1px;
|
|
color: #718093;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.result-chart-window-actions .result-chart-multi-menu-row > select {
|
|
grid-column: 4;
|
|
width: 78px;
|
|
height: 26px;
|
|
padding: 0 18px 0 5px;
|
|
border: 1px solid #c5cfda;
|
|
border-radius: 4px;
|
|
color: #34465a;
|
|
background: #ffffff;
|
|
font: inherit;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.result-chart-multi-menu-row > .remove {
|
|
grid-column: 5;
|
|
width: 26px;
|
|
height: 26px;
|
|
color: #8b4650;
|
|
}
|
|
|
|
.result-chart-multi-menu-row > .remove:hover:not(:disabled) {
|
|
border-color: #d5a1a6;
|
|
color: #a52f3a;
|
|
background: #fff1f2;
|
|
}
|
|
|
|
.result-chart-multi-menu-row > .remove:disabled {
|
|
cursor: default;
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.result-chart-window-header button.close:hover {
|
|
color: #b42318;
|
|
}
|
|
|
|
.result-chart-body {
|
|
position: relative;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
overflow: hidden;
|
|
padding: 5px 8px 7px 4px;
|
|
-webkit-user-select: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.result-chart-body > svg {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
touch-action: none;
|
|
}
|
|
|
|
.result-chart-body > svg text {
|
|
pointer-events: none;
|
|
-webkit-user-select: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.result-chart-body > svg.cursor-enabled {
|
|
cursor: crosshair;
|
|
}
|
|
|
|
.result-chart-grid-line {
|
|
stroke: #dce4ec;
|
|
stroke-width: 1;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-axis {
|
|
stroke: #64758a;
|
|
stroke-width: 1;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-tick {
|
|
stroke: #64758a;
|
|
stroke-width: 1;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-label,
|
|
.result-chart-unit,
|
|
.result-chart-title,
|
|
.result-chart-axis-title {
|
|
fill: #5b6878;
|
|
font-family: inherit;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.result-chart-cursor line {
|
|
stroke: #0f766e;
|
|
stroke-width: 1;
|
|
stroke-dasharray: 4 3;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-cursor circle {
|
|
stroke: #ffffff;
|
|
stroke-width: 1.5;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-cursor-hit {
|
|
stroke: transparent;
|
|
stroke-width: 14;
|
|
pointer-events: stroke;
|
|
touch-action: none;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-cursor-hit.x {
|
|
cursor: ew-resize;
|
|
}
|
|
|
|
.result-chart-cursor-hit.y {
|
|
cursor: ns-resize;
|
|
}
|
|
|
|
.result-chart-cursor-panel {
|
|
position: absolute;
|
|
z-index: 3;
|
|
width: 154px;
|
|
max-width: calc(100% - 12px);
|
|
overflow: hidden;
|
|
border: 1px solid #7f91a5;
|
|
border-radius: 4px;
|
|
color: #25364a;
|
|
background: rgba(255, 255, 255, 0.96);
|
|
box-shadow: 0 3px 10px rgba(30, 41, 59, 0.16);
|
|
user-select: none;
|
|
}
|
|
|
|
.result-chart-cursor-panel-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
width: 100%;
|
|
height: 25px;
|
|
padding: 0 7px;
|
|
border: 0;
|
|
border-bottom: 1px solid #d4dde6;
|
|
border-radius: 0;
|
|
color: #34465a;
|
|
background: #edf2f6;
|
|
font: inherit;
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
cursor: move;
|
|
touch-action: none;
|
|
}
|
|
|
|
.result-chart-cursor-panel dl {
|
|
display: grid;
|
|
gap: 3px;
|
|
margin: 0;
|
|
padding: 6px 8px 7px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.result-chart-cursor-panel dl > div {
|
|
display: grid;
|
|
grid-template-columns: 16px minmax(0, 1fr);
|
|
gap: 5px;
|
|
align-items: baseline;
|
|
}
|
|
|
|
.result-chart-cursor-panel dt {
|
|
color: #64748b;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.result-chart-cursor-panel dd {
|
|
min-width: 0;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
color: #18293c;
|
|
font-variant-numeric: tabular-nums;
|
|
font-weight: 650;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.result-chart-cursor-panel.multi {
|
|
width: 208px;
|
|
}
|
|
|
|
.result-chart-cursor-panel.multi dl {
|
|
max-height: 150px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.result-chart-cursor-panel.multi dl > div {
|
|
grid-template-columns: 24px minmax(0, 1fr);
|
|
}
|
|
|
|
.result-chart-cursor-panel.multi dd {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
}
|
|
|
|
.result-chart-cursor-value-swatch {
|
|
flex: 0 0 auto;
|
|
width: 10px;
|
|
height: 3px;
|
|
border-radius: 1px;
|
|
}
|
|
|
|
.result-chart-resize-handle {
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 5;
|
|
display: grid;
|
|
width: 20px;
|
|
height: 20px;
|
|
padding: 0;
|
|
border: 0;
|
|
border-top: 1px solid #d5dee7;
|
|
border-left: 1px solid #d5dee7;
|
|
border-radius: 4px 0 0;
|
|
place-items: center;
|
|
color: #56697c;
|
|
background: rgba(246, 248, 250, 0.94);
|
|
cursor: nwse-resize;
|
|
touch-action: none;
|
|
}
|
|
|
|
.result-chart-resize-handle:hover {
|
|
color: #0f5f9f;
|
|
background: #e8f3fc;
|
|
}
|
|
|
|
.result-chart-title {
|
|
fill: #263648;
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.result-chart-legend text {
|
|
fill: #34465a;
|
|
font-family: inherit;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.result-chart-stack-divider {
|
|
stroke: #aebbc8;
|
|
stroke-width: 1;
|
|
vector-effect: non-scaling-stroke;
|
|
}
|
|
|
|
.result-chart-unit {
|
|
font-weight: 650;
|
|
}
|
|
|
|
.result-chart-axis-title {
|
|
fill: #46576a;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.result-chart-empty {
|
|
display: grid;
|
|
height: 100%;
|
|
place-items: center;
|
|
color: #8a97a6;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.results-selected-component {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-height: 46px;
|
|
padding: 8px 12px;
|
|
border-bottom: 1px solid #e3e8ef;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.results-selected-component strong {
|
|
overflow: hidden;
|
|
color: #1f2933;
|
|
font-size: 13px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.results-selected-component span {
|
|
flex: 0 0 auto;
|
|
color: #64748b;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.results-variable-group {
|
|
padding: 12px;
|
|
border-bottom: 1px solid #e3e8ef;
|
|
}
|
|
|
|
.results-variable-group-title {
|
|
margin-bottom: 8px;
|
|
color: #526172;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.results-variable-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
|
gap: 6px;
|
|
}
|
|
|
|
.results-variable-list button {
|
|
display: grid;
|
|
grid-template-columns: 4px minmax(0, 1fr);
|
|
align-items: stretch;
|
|
gap: 9px;
|
|
min-height: 43px;
|
|
padding: 6px 8px 6px 0;
|
|
overflow: hidden;
|
|
border: 1px solid #d4dde7;
|
|
border-radius: 5px;
|
|
color: #263442;
|
|
text-align: left;
|
|
background: #ffffff;
|
|
cursor: grab;
|
|
}
|
|
|
|
.results-variable-list button:hover {
|
|
border-color: #8ca0b5;
|
|
background: #f8fafc;
|
|
}
|
|
|
|
.results-variable-list button.visible {
|
|
border-color: #6b9ac4;
|
|
background: #edf6fc;
|
|
}
|
|
|
|
.results-variable-list button:active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.result-variable-swatch {
|
|
display: block;
|
|
width: 4px;
|
|
height: 100%;
|
|
}
|
|
|
|
.results-variable-list button > span:last-child {
|
|
align-self: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.results-variable-list strong,
|
|
.results-variable-list small {
|
|
display: block;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.results-variable-list strong {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.results-variable-list small {
|
|
margin-top: 2px;
|
|
color: #64748b;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.results-variable-empty {
|
|
padding: 18px 13px;
|
|
color: #7b8795;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.results-empty-view {
|
|
display: grid;
|
|
align-content: center;
|
|
justify-items: center;
|
|
gap: 14px;
|
|
min-height: 0;
|
|
color: #687586;
|
|
background: #f8fafc;
|
|
}
|
|
|
|
.results-empty-view strong {
|
|
color: #344252;
|
|
font-size: 14px;
|
|
}
|
|
|
|
.results-empty-view button {
|
|
height: 32px;
|
|
padding: 0 12px;
|
|
border: 1px solid #99aabc;
|
|
border-radius: 5px;
|
|
color: #263442;
|
|
background: #ffffff;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-empty-view button:hover {
|
|
border-color: #66798d;
|
|
background: #f2f6f9;
|
|
}
|
|
|
|
.simulation-console {
|
|
position: fixed;
|
|
z-index: 200;
|
|
overflow: hidden;
|
|
border: 1px solid #718297;
|
|
border-radius: 6px;
|
|
background: #ffffff;
|
|
box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
|
|
}
|
|
|
|
.simulation-console.dragging {
|
|
user-select: none;
|
|
}
|
|
|
|
.simulation-console.normal {
|
|
bottom: 14px;
|
|
left: 50%;
|
|
display: grid;
|
|
grid-template-rows: 38px 50px minmax(0, 1fr);
|
|
width: min(760px, calc(100vw - 28px));
|
|
height: 270px;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.simulation-console.maximized {
|
|
inset: 12px;
|
|
display: grid;
|
|
grid-template-rows: 38px 50px minmax(0, 1fr);
|
|
}
|
|
|
|
.simulation-console.minimized {
|
|
right: 14px;
|
|
bottom: 14px;
|
|
width: min(480px, calc(100vw - 28px));
|
|
height: 40px;
|
|
}
|
|
|
|
.simulation-console-collapsed {
|
|
display: grid;
|
|
grid-template-columns: 34px 34px minmax(0, 1fr);
|
|
align-items: center;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: #f7f9fb;
|
|
}
|
|
|
|
.simulation-console-collapsed-move,
|
|
.simulation-console-collapsed-stop,
|
|
.simulation-console-collapsed-open {
|
|
height: 100%;
|
|
padding: 0;
|
|
border: 0;
|
|
color: #253447;
|
|
background: transparent;
|
|
font: inherit;
|
|
}
|
|
|
|
.simulation-console-collapsed-move {
|
|
display: grid;
|
|
place-items: center;
|
|
border-right: 1px solid #d4dde7;
|
|
color: #526172;
|
|
cursor: grab;
|
|
touch-action: none;
|
|
}
|
|
|
|
.simulation-console-collapsed-stop {
|
|
display: grid;
|
|
place-items: center;
|
|
border-right: 1px solid #d4dde7;
|
|
color: #9aa5b1;
|
|
cursor: default;
|
|
}
|
|
|
|
.simulation-console-collapsed-stop.active {
|
|
color: #b42318;
|
|
background: #fff1f0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.simulation-console-collapsed-open {
|
|
display: grid;
|
|
grid-template-columns: 18px auto minmax(0, 1fr) 18px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
min-width: 0;
|
|
padding: 0 10px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.simulation-console-collapsed-move:hover,
|
|
.simulation-console-collapsed-open:hover {
|
|
background: #edf3f8;
|
|
}
|
|
|
|
.simulation-console-collapsed-stop.active:hover {
|
|
color: #941f17;
|
|
background: #ffe6e3;
|
|
}
|
|
|
|
.simulation-console-collapsed-open > svg:last-child {
|
|
grid-column: 5;
|
|
}
|
|
|
|
.simulation-console-collapsed strong {
|
|
font-size: 12px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.simulation-console-collapsed-status {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: #657487;
|
|
font-size: 11px;
|
|
text-align: left;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.simulation-console-collapsed-status {
|
|
color: #1767a8;
|
|
font-variant-numeric: tabular-nums;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.simulation-console-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
min-width: 0;
|
|
padding: 0 6px 0 11px;
|
|
border-bottom: 1px solid #d4dde7;
|
|
background: #f4f7f9;
|
|
}
|
|
|
|
.simulation-console-title,
|
|
.simulation-console-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.simulation-console-title {
|
|
min-width: 0;
|
|
gap: 7px;
|
|
}
|
|
|
|
.simulation-console-title strong {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.simulation-console-title span {
|
|
color: #1767a8;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.simulation-console-actions {
|
|
flex: 0 0 auto;
|
|
gap: 2px;
|
|
}
|
|
|
|
.simulation-console-actions button {
|
|
display: grid;
|
|
place-items: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
padding: 0;
|
|
border: 1px solid transparent;
|
|
border-radius: 4px;
|
|
color: #526172;
|
|
background: transparent;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.simulation-console-actions button:hover:not(:disabled) {
|
|
border-color: #bdc9d5;
|
|
color: #155a94;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.simulation-console-actions button:disabled {
|
|
cursor: default;
|
|
opacity: 0.38;
|
|
}
|
|
|
|
.simulation-console-actions .simulation-console-move-button {
|
|
cursor: grab;
|
|
touch-action: none;
|
|
}
|
|
|
|
.simulation-console-actions .simulation-console-stop-button.active {
|
|
border-color: #e2aaa5;
|
|
color: #b42318;
|
|
background: #fff1f0;
|
|
}
|
|
|
|
.simulation-console-actions .simulation-console-stop-button.active:hover:not(:disabled) {
|
|
border-color: #d47c74;
|
|
color: #941f17;
|
|
background: #ffe6e3;
|
|
}
|
|
|
|
.simulation-console.dragging .simulation-console-move-button,
|
|
.simulation-console.dragging .simulation-console-collapsed-move {
|
|
color: #155a94;
|
|
background: #eaf3fa;
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.simulation-console-progress {
|
|
padding: 8px 11px 9px;
|
|
border-bottom: 1px solid #dbe2ea;
|
|
background: #ffffff;
|
|
}
|
|
|
|
.simulation-console-progress-label {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-bottom: 6px;
|
|
color: #526172;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.simulation-console-progress-label span {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.simulation-console-progress-label strong {
|
|
flex: 0 0 auto;
|
|
color: #334155;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.simulation-console-progress-metrics {
|
|
display: flex;
|
|
align-items: center;
|
|
flex: 0 0 auto;
|
|
gap: 10px;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.simulation-console-progress-label .simulation-console-progress-metrics span {
|
|
overflow: visible;
|
|
color: #1767a8;
|
|
font-weight: 650;
|
|
text-overflow: clip;
|
|
}
|
|
|
|
.simulation-console-progress-track {
|
|
height: 6px;
|
|
overflow: hidden;
|
|
border-radius: 3px;
|
|
background: #e2e8f0;
|
|
}
|
|
|
|
.simulation-console-progress-track span {
|
|
display: block;
|
|
height: 100%;
|
|
background: #2478b8;
|
|
transition: width 160ms ease-out;
|
|
}
|
|
|
|
.simulation-console-progress.success .simulation-console-progress-track span {
|
|
background: #2f7d55;
|
|
}
|
|
|
|
.simulation-console-progress.warning .simulation-console-progress-track span {
|
|
background: #b7791f;
|
|
}
|
|
|
|
.simulation-console-progress.error .simulation-console-progress-track span {
|
|
background: #c13d35;
|
|
}
|
|
|
|
.simulation-console-log {
|
|
min-width: 0;
|
|
min-height: 0;
|
|
padding: 5px 0 8px;
|
|
overflow: auto;
|
|
color: #273548;
|
|
background: #fbfcfd;
|
|
font-family: Consolas, "Cascadia Mono", monospace;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.simulation-console-empty {
|
|
padding: 18px 12px;
|
|
color: #8793a2;
|
|
text-align: center;
|
|
}
|
|
|
|
.simulation-console-entry {
|
|
display: grid;
|
|
grid-template-columns: 68px 38px minmax(0, 1fr);
|
|
gap: 8px;
|
|
align-items: start;
|
|
min-height: 25px;
|
|
padding: 5px 12px 5px 9px;
|
|
border-left: 3px solid #5c8fbd;
|
|
line-height: 1.35;
|
|
}
|
|
|
|
.simulation-console-entry:nth-child(even) {
|
|
background: #f5f7fa;
|
|
}
|
|
|
|
.simulation-console-entry time {
|
|
color: #7a8796;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.simulation-console-entry-level {
|
|
color: #526172;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.simulation-console-entry.success {
|
|
border-left-color: #2f7d55;
|
|
}
|
|
|
|
.simulation-console-entry.success .simulation-console-entry-level {
|
|
color: #267047;
|
|
}
|
|
|
|
.simulation-console-entry.warning {
|
|
border-left-color: #b7791f;
|
|
}
|
|
|
|
.simulation-console-entry.warning .simulation-console-entry-level {
|
|
color: #94631b;
|
|
}
|
|
|
|
.simulation-console-entry.error {
|
|
border-left-color: #c13d35;
|
|
}
|
|
|
|
.simulation-console-entry.error .simulation-console-entry-level {
|
|
color: #a9322d;
|
|
}
|
|
|
|
.simulation-console-entry-message {
|
|
min-width: 0;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.simulation-console-entry.xml {
|
|
align-items: start;
|
|
}
|
|
|
|
.simulation-console-entry-xml {
|
|
min-width: 0;
|
|
max-height: 145px;
|
|
margin: 0;
|
|
padding: 8px 9px;
|
|
overflow: auto;
|
|
border: 1px solid #cad5e1;
|
|
border-radius: 4px;
|
|
color: #172231;
|
|
background: #f8fafc;
|
|
font-family: Consolas, "Courier New", monospace;
|
|
font-size: 11px;
|
|
line-height: 1.5;
|
|
white-space: pre;
|
|
}
|
|
|
|
.simulation-console.maximized .simulation-console-entry-xml {
|
|
max-height: calc(100vh - 170px);
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.simulation-console-progress-track span {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 1100px) {
|
|
.project-name-field input {
|
|
width: 120px;
|
|
}
|
|
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.simulation-console.normal {
|
|
bottom: 8px;
|
|
width: calc(100vw - 16px);
|
|
height: min(300px, calc(100vh - 16px));
|
|
}
|
|
|
|
.simulation-console.maximized {
|
|
inset: 8px;
|
|
}
|
|
|
|
.simulation-console.minimized {
|
|
right: 8px;
|
|
bottom: 8px;
|
|
width: calc(100vw - 16px);
|
|
}
|
|
|
|
.simulation-console-entry {
|
|
grid-template-columns: 62px 34px minmax(0, 1fr);
|
|
gap: 5px;
|
|
padding-right: 8px;
|
|
}
|
|
}
|