feat: add Polygon UI-0 run view

This commit is contained in:
DCCONSTRUCTIONS
2026-07-24 19:02:10 +03:00
parent a78c8c83f5
commit b790f29d59
18 changed files with 2193 additions and 43 deletions
+26 -2
View File
@@ -10,10 +10,16 @@
@media (max-width: 1280px) {
.overview-grid,
.mission-layout {
.mission-layout,
.polygon-run-layout,
.polygon-run-evidence-grid {
grid-template-columns: 1fr;
}
.polygon-run-providers {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.pipeline-strip {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
@@ -67,6 +73,10 @@
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.polygon-run-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.workspace-lead {
align-items: flex-start;
flex-direction: column;
@@ -131,10 +141,24 @@
.metrics-grid,
.capability-summary,
.camera-grid {
.camera-grid,
.polygon-run-metrics,
.polygon-run-providers {
grid-template-columns: 1fr;
}
.polygon-run-identity dl {
grid-template-columns: 1fr;
}
.polygon-run-event-list article {
grid-template-columns: 2.3rem minmax(0, 1fr);
}
.polygon-run-event-list article > span:last-child {
grid-column: 2;
}
.camera-grid {
grid-template-rows: repeat(4, minmax(14rem, 1fr));
}
@@ -90,6 +90,399 @@
line-height: 1.4;
}
.polygon-run-workspace {
gap: 0.85rem;
}
.polygon-run-message {
display: grid;
min-height: 18rem;
place-items: start;
align-content: center;
gap: 0.8rem;
}
.polygon-run-message h2,
.polygon-run-message p,
.polygon-run-panel-heading h3,
.polygon-run-artifacts h3,
.polygon-run-limitations h3 {
margin: 0;
}
.polygon-run-message h2 {
color: var(--nodedc-text-primary);
font-size: 1.35rem;
letter-spacing: -0.035em;
}
.polygon-run-message p {
max-width: 38rem;
color: var(--nodedc-text-muted);
font-size: 0.72rem;
line-height: 1.55;
}
.polygon-run-lead-status {
display: grid;
justify-items: end;
gap: 0.45rem;
}
.polygon-run-lead-status > span {
color: var(--nodedc-text-muted);
font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
font-size: 0.58rem;
}
.polygon-run-metrics {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.65rem;
}
.polygon-run-metrics > div {
display: grid;
min-height: 5.5rem;
align-content: space-between;
gap: 0.32rem;
border-radius: 1rem;
background: var(--station-panel);
padding: 0.9rem 1rem;
}
.polygon-run-metrics span,
.polygon-run-metrics small,
.polygon-run-panel-heading > span {
color: var(--nodedc-text-muted);
font-size: 0.6rem;
}
.polygon-run-metrics strong {
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 1.05rem;
font-weight: 680;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-metrics small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-layout,
.polygon-run-evidence-grid {
display: grid;
grid-template-columns: minmax(17rem, 0.72fr) minmax(0, 1.28fr);
gap: 0.75rem;
}
.polygon-run-panel-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
margin-bottom: 1rem;
}
.polygon-run-panel-heading h3,
.polygon-run-artifacts h3,
.polygon-run-limitations h3 {
margin-top: 0.4rem;
color: var(--nodedc-text-primary);
font-size: 0.94rem;
letter-spacing: -0.025em;
}
.polygon-run-list {
display: grid;
gap: 0.35rem;
}
.polygon-run-list button {
display: grid;
min-width: 0;
grid-template-columns: auto minmax(0, 1fr) auto;
align-items: center;
gap: 0.65rem;
border: 0;
border-radius: 0.8rem;
background: rgb(255 255 255 / 0.025);
padding: 0.65rem 0.7rem;
text-align: left;
cursor: pointer;
}
.polygon-run-list button:hover,
.polygon-run-list button:focus-visible,
.polygon-run-list button[data-active="true"] {
outline: 0;
background: rgb(255 255 255 / 0.07);
}
.polygon-run-list button > i,
.polygon-run-providers i {
width: 0.48rem;
height: 0.48rem;
border-radius: 50%;
background: var(--nodedc-text-muted);
}
.polygon-run-list button > i[data-state="completed"],
.polygon-run-providers i {
background: rgb(var(--nodedc-success-rgb));
}
.polygon-run-list button > i[data-state="failed"],
.polygon-run-list button > i[data-state="aborted"] {
background: rgb(var(--nodedc-danger-rgb));
}
.polygon-run-list button > i[data-state="running"] {
background: var(--nodedc-text-primary);
}
.polygon-run-list button > span {
display: grid;
min-width: 0;
gap: 0.18rem;
}
.polygon-run-list strong,
.polygon-run-list small,
.polygon-run-list em {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-list strong {
color: var(--nodedc-text-primary);
font-size: 0.66rem;
}
.polygon-run-list small,
.polygon-run-list em {
color: var(--nodedc-text-muted);
font-size: 0.56rem;
}
.polygon-run-list em {
font-style: normal;
}
.polygon-run-identity dl {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.3rem 1rem;
margin: 0.9rem 0 0;
}
.polygon-run-identity dl > div {
display: grid;
min-width: 0;
grid-template-columns: 7rem minmax(0, 1fr);
gap: 0.7rem;
border-bottom: 1px solid var(--station-hairline);
padding: 0.48rem 0;
}
.polygon-run-identity dt,
.polygon-run-identity dd {
overflow: hidden;
margin: 0;
font-size: 0.61rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-identity dt {
color: var(--nodedc-text-muted);
}
.polygon-run-identity dd {
color: var(--nodedc-text-primary);
}
.polygon-run-safety-boundary {
display: grid;
gap: 0.45rem;
margin-top: 1rem;
border-radius: 0.8rem;
background: rgb(255 255 255 / 0.035);
padding: 0.75rem;
}
.polygon-run-safety-boundary p {
margin: 0;
color: var(--nodedc-text-muted);
font-size: 0.59rem;
line-height: 1.5;
}
.polygon-run-providers {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.55rem;
}
.polygon-run-providers > div {
display: grid;
min-width: 0;
grid-template-columns: auto minmax(0, 1fr);
gap: 0.22rem 0.55rem;
border-radius: 0.85rem;
background: var(--station-panel);
padding: 0.72rem;
}
.polygon-run-providers i {
grid-row: 1 / 3;
align-self: center;
}
.polygon-run-providers span {
display: grid;
min-width: 0;
gap: 0.15rem;
}
.polygon-run-providers strong,
.polygon-run-providers small,
.polygon-run-providers code {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-providers strong {
color: var(--nodedc-text-primary);
font-size: 0.64rem;
}
.polygon-run-providers small,
.polygon-run-providers code {
color: var(--nodedc-text-muted);
font-size: 0.54rem;
}
.polygon-run-providers code {
grid-column: 2;
}
.polygon-run-event-list {
display: grid;
}
.polygon-run-event-list article {
display: grid;
min-width: 0;
grid-template-columns: 2.3rem minmax(0, 1fr) auto;
align-items: start;
gap: 0.8rem;
border-top: 1px solid var(--station-hairline);
padding: 0.75rem 0;
}
.polygon-run-event-list article:first-child {
border-top: 0;
}
.polygon-run-event-list article > div {
display: grid;
min-width: 0;
gap: 0.2rem;
}
.polygon-run-event-list strong {
color: var(--nodedc-text-primary);
font-size: 0.66rem;
}
.polygon-run-event-list small,
.polygon-run-event-list article > span:last-child,
.polygon-run-event-sequence {
color: var(--nodedc-text-muted);
font-size: 0.55rem;
}
.polygon-run-event-list code {
overflow: hidden;
color: var(--nodedc-text-secondary);
font-size: 0.56rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-event-sequence {
border-radius: 0.4rem;
background: rgb(255 255 255 / 0.04);
padding: 0.2rem 0.3rem;
text-align: center;
}
.polygon-run-artifacts > div {
display: grid;
gap: 0.35rem;
margin-top: 0.85rem;
}
.polygon-run-artifacts article {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
border-radius: 0.75rem;
background: rgb(255 255 255 / 0.025);
padding: 0.65rem;
}
.polygon-run-artifacts article > span {
display: grid;
min-width: 0;
gap: 0.18rem;
}
.polygon-run-artifacts strong,
.polygon-run-artifacts small,
.polygon-run-artifacts code {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-run-artifacts strong {
color: var(--nodedc-text-primary);
font-size: 0.62rem;
}
.polygon-run-artifacts small,
.polygon-run-artifacts code,
.polygon-run-artifacts p,
.polygon-run-limitations li {
color: var(--nodedc-text-muted);
font-size: 0.56rem;
}
.polygon-run-artifacts p {
margin: 0.9rem 0 0;
}
.polygon-run-limitations ul {
display: grid;
gap: 0.55rem;
margin: 0.85rem 0 0;
padding-left: 1rem;
}
.polygon-run-limitations li {
line-height: 1.5;
}
.capability-summary {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));