feat(perception): add lossless lidar replay v2

This commit is contained in:
DCCONSTRUCTIONS
2026-07-25 01:35:03 +03:00
parent 3f549f91f1
commit e4fdd9fa20
18 changed files with 2538 additions and 11 deletions
@@ -13,7 +13,8 @@
.mission-layout,
.polygon-live-layout,
.polygon-run-layout,
.polygon-run-evidence-grid {
.polygon-run-evidence-grid,
.lidar-quality-grid {
grid-template-columns: 1fr;
}
@@ -157,6 +158,10 @@
grid-template-columns: 1fr;
}
.lidar-quality-facts {
grid-template-columns: 1fr;
}
.polygon-run-identity dl {
grid-template-columns: 1fr;
}
@@ -803,6 +803,157 @@
font-weight: 650;
}
.lidar-quality-workspace {
gap: 1rem;
}
.lidar-quality-message {
display: grid;
min-height: 12rem;
align-content: center;
justify-items: start;
gap: 0.7rem;
}
.lidar-quality-message h2,
.lidar-quality-message p {
margin: 0;
}
.lidar-quality-message p {
max-width: 46rem;
color: var(--nodedc-text-muted);
font-size: 0.76rem;
line-height: 1.55;
}
.lidar-quality-grid {
display: grid;
grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
gap: 0.85rem;
}
.lidar-quality-panel {
min-width: 0;
}
.lidar-quality-facts {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem;
margin-top: 1rem;
}
.lidar-quality-facts > div {
display: grid;
gap: 0.32rem;
border: 1px solid var(--station-hairline);
border-radius: 0.8rem;
background: rgb(255 255 255 / 0.025);
padding: 0.72rem;
}
.lidar-quality-facts span,
.lidar-pack-catalog footer,
.lidar-readiness-list small {
color: var(--nodedc-text-muted);
font-size: 0.62rem;
line-height: 1.45;
}
.lidar-quality-facts strong {
overflow: hidden;
color: var(--nodedc-text-primary);
font-size: 0.72rem;
text-overflow: ellipsis;
}
.lidar-retention-list {
display: flex;
flex-wrap: wrap;
gap: 0.42rem;
margin-top: 0.8rem;
}
.lidar-retention-list span {
display: inline-flex;
align-items: center;
gap: 0.35rem;
border: 1px solid var(--station-hairline);
border-radius: 999px;
padding: 0.34rem 0.52rem;
color: var(--nodedc-text-secondary);
font-size: 0.58rem;
}
.lidar-retention-list i {
width: 0.38rem;
height: 0.38rem;
border-radius: 50%;
background: rgb(185 255 74 / 0.9);
}
.lidar-retention-list span[data-retained="false"] i {
background: rgb(255 97 97 / 0.9);
}
.lidar-readiness-list,
.lidar-pack-list {
display: grid;
gap: 0.48rem;
margin-top: 1rem;
}
.lidar-readiness-list > div,
.lidar-pack-list > button {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 0.8rem;
border: 1px solid var(--station-hairline);
border-radius: 0.78rem;
background: rgb(255 255 255 / 0.02);
padding: 0.68rem 0.76rem;
}
.lidar-readiness-list > div > div,
.lidar-pack-list > button > div {
display: grid;
min-width: 0;
gap: 0.24rem;
}
.lidar-readiness-list strong,
.lidar-pack-list strong {
color: var(--nodedc-text-primary);
font-size: 0.68rem;
}
.lidar-pack-list > button {
width: 100%;
color: inherit;
text-align: left;
cursor: pointer;
}
.lidar-pack-list > button:hover,
.lidar-pack-list > button[data-selected="true"] {
border-color: rgb(185 255 74 / 0.42);
background: rgb(185 255 74 / 0.055);
}
.lidar-pack-list small {
color: var(--nodedc-text-muted);
font-size: 0.6rem;
}
.lidar-pack-catalog footer {
display: grid;
gap: 0.22rem;
margin-top: 0.8rem;
}
.overview-grid {
display: grid;
grid-template-columns: minmax(0, 1.55fr) minmax(19rem, 0.75fr);