feat(polygon): qualify GOOSE ground providers

This commit is contained in:
DCCONSTRUCTIONS
2026-07-25 16:02:20 +03:00
parent 60ba64004b
commit d6decbe05c
14 changed files with 2718 additions and 22 deletions
@@ -97,6 +97,15 @@
}
@media (max-width: 1040px) {
.polygon-qualification__grid,
.polygon-qualification__failures {
grid-template-columns: 1fr;
}
.polygon-qualification__providers dl {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.feature-group {
grid-template-columns: 1fr;
gap: 0.9rem;
@@ -174,6 +183,19 @@
}
@media (max-width: 760px) {
.polygon-qualification__heading,
.polygon-qualification__viewer > header {
display: grid;
}
.polygon-qualification__providers {
grid-template-columns: 1fr;
}
.polygon-qualification__degradations p {
grid-template-columns: 1fr 1fr;
}
.dataset-purpose ol {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -775,6 +775,246 @@
line-height: 1.5;
}
.polygon-qualification {
display: grid;
gap: 0.75rem;
border-radius: 1.2rem;
background: var(--station-panel);
padding: 1rem;
}
.polygon-qualification__heading {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1.5rem;
}
.polygon-qualification__heading h3,
.polygon-qualification__heading p {
margin: 0;
}
.polygon-qualification__heading h3 {
margin-top: 0.35rem;
color: var(--nodedc-text-primary);
font-size: 1.15rem;
letter-spacing: -0.035em;
}
.polygon-qualification__heading p {
max-width: 46rem;
margin-top: 0.45rem;
color: var(--nodedc-text-muted);
font-size: 0.62rem;
line-height: 1.5;
}
.polygon-qualification__providers {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.6rem;
}
.polygon-qualification__providers article,
.polygon-qualification__checks,
.polygon-qualification__degradations,
.polygon-qualification__failures > article {
border-radius: 0.9rem;
background: rgb(255 255 255 / 0.03);
padding: 0.85rem;
}
.polygon-qualification__providers article > strong {
color: var(--nodedc-text-primary);
font-size: 0.75rem;
}
.polygon-qualification__providers dl {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.6rem;
margin: 0.75rem 0 0;
}
.polygon-qualification__providers dl > div {
display: grid;
gap: 0.22rem;
}
.polygon-qualification__providers dt,
.polygon-qualification__providers dd {
margin: 0;
}
.polygon-qualification__providers dt {
color: var(--nodedc-text-muted);
font-size: 0.55rem;
}
.polygon-qualification__providers dd {
color: var(--nodedc-text-primary);
font-size: 0.88rem;
font-weight: 650;
}
.polygon-qualification__grid {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 0.6rem;
}
.polygon-qualification__checks > div,
.polygon-qualification__degradations > div {
display: grid;
gap: 0.25rem;
margin-top: 0.7rem;
}
.polygon-qualification__checks p,
.polygon-qualification__degradations p {
display: grid;
min-width: 0;
align-items: center;
gap: 0.55rem;
margin: 0;
border-radius: 0.65rem;
background: rgb(255 255 255 / 0.025);
padding: 0.48rem 0.55rem;
}
.polygon-qualification__checks p {
grid-template-columns: auto minmax(0, 1fr) auto;
}
.polygon-qualification__checks i {
width: 0.42rem;
height: 0.42rem;
border-radius: 50%;
background: rgb(var(--nodedc-danger-rgb));
}
.polygon-qualification__checks p[data-passed="true"] i {
background: rgb(var(--nodedc-success-rgb));
}
.polygon-qualification__checks span,
.polygon-qualification__checks code,
.polygon-qualification__degradations strong,
.polygon-qualification__degradations span {
overflow: hidden;
font-size: 0.55rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-qualification__checks span,
.polygon-qualification__degradations strong {
color: var(--nodedc-text-secondary);
}
.polygon-qualification__checks code,
.polygon-qualification__degradations span {
color: var(--nodedc-text-muted);
}
.polygon-qualification__degradations p {
grid-template-columns: minmax(7rem, 1fr) repeat(3, auto);
}
.polygon-qualification__failures {
display: grid;
grid-template-columns: minmax(14rem, 0.34fr) minmax(0, 1.66fr);
gap: 0.6rem;
}
.polygon-qualification__failures > article:first-child > div {
display: grid;
gap: 0.3rem;
margin-top: 0.7rem;
}
.polygon-qualification__failures button {
display: grid;
min-width: 0;
gap: 0.22rem;
border: 0;
border-radius: 0.65rem;
background: rgb(255 255 255 / 0.025);
color: var(--nodedc-text-secondary);
padding: 0.55rem;
text-align: left;
cursor: pointer;
}
.polygon-qualification__failures button:hover,
.polygon-qualification__failures button:focus-visible,
.polygon-qualification__failures button[data-active="true"] {
outline: 0;
background: rgb(255 255 255 / 0.075);
}
.polygon-qualification__failures button span,
.polygon-qualification__failures button code {
overflow: hidden;
font-size: 0.54rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-qualification__failures button code {
color: var(--nodedc-text-muted);
}
.polygon-qualification__viewer {
min-width: 0;
}
.polygon-qualification__viewer > header {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 1rem;
margin-bottom: 0.65rem;
}
.polygon-qualification__viewer > header > div:first-child {
display: grid;
min-width: 0;
gap: 0.25rem;
}
.polygon-qualification__viewer > header strong {
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 0.62rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.polygon-qualification__viewer .lidar-ground-scene {
min-height: 30rem;
}
.polygon-qualification__viewer-empty {
display: grid;
min-height: 30rem;
place-items: center;
border-radius: 0.85rem;
background: #06070a;
color: var(--nodedc-text-muted);
font-size: 0.62rem;
}
.polygon-qualification__error {
border-radius: 0.9rem;
background: rgb(var(--nodedc-danger-rgb) / 0.08);
color: var(--nodedc-text-muted);
padding: 0.8rem 1rem;
font-size: 0.62rem;
}
.capability-summary {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));