feat: complete dual-seat whole-vehicle orchestration
This commit is contained in:
@@ -1075,6 +1075,311 @@
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
/* Unified live calibration workspace ------------------------------------ */
|
||||
|
||||
.v2-calibration-live-view {
|
||||
height: 100%;
|
||||
display: grid;
|
||||
grid-template-rows: minmax(275px, 1fr) auto;
|
||||
gap: 10px;
|
||||
padding: 1px 3px 6px 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid {
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(300px, 1.15fr) minmax(250px, 0.94fr) minmax(270px, 0.91fr);
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid > .v2-calibration-panel {
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
height: 100%;
|
||||
padding: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-stage {
|
||||
display: grid;
|
||||
grid-template-rows: auto minmax(150px, 1fr) auto;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-stage > header,
|
||||
.v2-calibration-live-grid .v2-calibration-video-panel > header,
|
||||
.v2-calibration-live-grid .v2-calibration-mqtt-panel > header {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-panel h2 {
|
||||
font-size: clamp(14px, 1.12vw, 18px);
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-operation {
|
||||
min-height: 38px;
|
||||
margin-top: 7px;
|
||||
padding-block: 5px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-axis-tag {
|
||||
padding: 4px 6px;
|
||||
font-size: 7px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-video-panel {
|
||||
display: grid;
|
||||
grid-template-rows: auto minmax(150px, 1fr) auto auto;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-video-frame {
|
||||
min-height: 0;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-video-panel .v2-calibration-detail {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-actions {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-actions button {
|
||||
min-height: 26px;
|
||||
padding: 4px 9px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-mqtt-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-metrics {
|
||||
gap: 5px;
|
||||
margin: 8px 0 5px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-metrics > div {
|
||||
gap: 1px;
|
||||
padding: 6px 7px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-metrics strong {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-detail {
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-pose-areas {
|
||||
min-height: 38px;
|
||||
max-height: 92px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 4px;
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-empty {
|
||||
align-self: center;
|
||||
margin: 10px auto;
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-pose-row {
|
||||
gap: 2px 6px;
|
||||
padding: 3px 6px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-pose-row strong {
|
||||
font-size: 8px;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-pose-row span {
|
||||
font-size: 7px;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid .v2-calibration-pose-row small {
|
||||
font-size: 6px;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
.v2-calibration-live-mapping {
|
||||
min-height: 0;
|
||||
margin-top: 6px;
|
||||
padding-top: 6px;
|
||||
border-top: 1px solid rgba(49, 94, 170, 0.1);
|
||||
}
|
||||
|
||||
.v2-calibration-subheading {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.v2-calibration-subheading span {
|
||||
color: #5b77aa;
|
||||
font: 800 7px Consolas, monospace;
|
||||
letter-spacing: 0.12em;
|
||||
}
|
||||
|
||||
.v2-calibration-subheading strong {
|
||||
color: #596a6d;
|
||||
font-size: 9px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-mapping .v2-calibration-mapping-rows {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-mapping .v2-calibration-mapping-row {
|
||||
grid-template-columns: 34px 52px minmax(28px, 1fr) 47px;
|
||||
gap: 5px;
|
||||
padding: 2px 6px;
|
||||
border-radius: 7px;
|
||||
font-size: 7px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.v2-calibration-live-mapping .v2-calibration-mapping-row span,
|
||||
.v2-calibration-live-mapping .v2-calibration-mapping-row b {
|
||||
font-size: 6px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes {
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
padding: 10px 11px 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes > .v2-calibration-live-toolbar {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(128px, 0.54fr) minmax(340px, 1.5fr) minmax(155px, 0.64fr);
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
margin: 0 0 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-axis-title {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.v2-calibration-axis-title h2 {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.v2-calibration-axis-title small {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
margin-top: 2px;
|
||||
color: #919d9e;
|
||||
font-size: 7px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow {
|
||||
min-width: 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr) 12px minmax(0, 1fr);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow > div {
|
||||
min-height: 36px;
|
||||
grid-template-columns: 24px minmax(0, 1fr);
|
||||
gap: 5px;
|
||||
padding: 4px 6px;
|
||||
border-radius: 9px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow > div > span {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow strong {
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow small {
|
||||
overflow: hidden;
|
||||
font-size: 6px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar .v2-calibration-flow > i {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.v2-calibration-live-toolbar > .v2-calibration-primary {
|
||||
width: 100%;
|
||||
min-height: 36px;
|
||||
padding: 7px 9px;
|
||||
font-size: 8px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-card {
|
||||
padding: 8px 9px;
|
||||
border-radius: 13px;
|
||||
box-shadow: 0 8px 22px rgba(39, 70, 72, 0.055);
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-reading {
|
||||
margin: 7px 0 4px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-reading strong {
|
||||
font-size: clamp(13px, 1.1vw, 17px);
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-actions {
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-actions button {
|
||||
min-height: 25px;
|
||||
padding: 4px 5px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-safety {
|
||||
min-height: 24px;
|
||||
grid-template-columns: 18px minmax(0, 1fr);
|
||||
gap: 5px;
|
||||
margin-top: 6px;
|
||||
padding: 4px 7px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-safety svg {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-safety p {
|
||||
display: flex;
|
||||
gap: 7px;
|
||||
align-items: baseline;
|
||||
font-size: 7px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-safety span {
|
||||
color: #718985;
|
||||
}
|
||||
|
||||
.v2-calibration-settings-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
@@ -1168,6 +1473,18 @@
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid {
|
||||
grid-template-columns: minmax(220px, 1.1fr) minmax(210px, 0.94fr) minmax(225px, 0.96fr);
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-grid {
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes > .v2-calibration-live-toolbar {
|
||||
grid-template-columns: minmax(118px, 0.48fr) minmax(300px, 1.45fr) minmax(140px, 0.62fr);
|
||||
}
|
||||
|
||||
.v2-calibration-settings-grid {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
@@ -1196,11 +1513,30 @@
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.v2-calibration-live-view {
|
||||
height: auto;
|
||||
grid-template-rows: auto auto;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.v2-calibration-hero-grid,
|
||||
.v2-calibration-stereo-grid {
|
||||
.v2-calibration-stereo-grid,
|
||||
.v2-calibration-live-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.v2-calibration-live-grid > .v2-calibration-panel {
|
||||
min-height: 330px;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes > .v2-calibration-live-toolbar {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.v2-calibration-live-axes .v2-calibration-axis-grid {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.v2-calibration-workflow {
|
||||
min-height: 360px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user