Align biz-state interval to days/hours and polish compare result workbook.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-17 18:57:25 +08:00
parent 29b08f9807
commit ff37d0866a
7 changed files with 411 additions and 146 deletions

View file

@ -10020,32 +10020,210 @@ html.login-page--paused .login-page__flare {
min-height: min(64vh, 680px);
}
.bs-cmp-result {
min-height: 0;
}
.bs-cmp-kpis {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 8px;
}
.bs-cmp-kpi {
appearance: none;
border: 1px solid rgba(148, 163, 184, 0.28);
border-radius: 10px;
background: rgba(148, 163, 184, 0.06);
padding: 10px 12px;
text-align: left;
cursor: pointer;
color: inherit;
transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.bs-cmp-kpi:hover {
border-color: rgba(59, 130, 246, 0.45);
}
.bs-cmp-kpi.is-active {
border-color: rgba(37, 99, 235, 0.65);
box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.2);
background: rgba(59, 130, 246, 0.08);
}
.bs-cmp-kpi__label {
display: block;
font-size: 12px;
opacity: 0.72;
margin-bottom: 4px;
}
.bs-cmp-kpi__value {
font-size: 22px;
font-weight: 700;
font-variant-numeric: tabular-nums;
line-height: 1.1;
}
.bs-cmp-kpi--added .bs-cmp-kpi__value {
color: #16a34a;
}
.bs-cmp-kpi--removed .bs-cmp-kpi__value {
color: #dc2626;
}
.bs-cmp-kpi--changed .bs-cmp-kpi__value {
color: #d97706;
}
.bs-cmp-kpi--unchanged .bs-cmp-kpi__value {
color: #64748b;
}
.bs-cmp-filter-bar {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-items: center;
}
.bs-cmp-kind-pills {
display: flex;
flex-wrap: wrap;
gap: 4px;
}
.bs-cmp-kind-pill {
appearance: none;
border: 1px solid rgba(148, 163, 184, 0.32);
border-radius: 999px;
background: transparent;
color: inherit;
padding: 4px 10px;
font-size: 12px;
cursor: pointer;
line-height: 1.3;
}
.bs-cmp-kind-pill:hover {
background: rgba(148, 163, 184, 0.12);
}
.bs-cmp-kind-pill.is-active {
background: rgba(37, 99, 235, 0.12);
border-color: rgba(37, 99, 235, 0.55);
font-weight: 600;
color: #1d4ed8;
}
.bs-cmp-result-table {
flex: 1 1 auto;
min-height: 260px;
max-height: min(46vh, 520px);
min-height: 280px;
max-height: min(48vh, 560px);
}
.bs-cmp-diff-table .bs-cmp-pair-head {
text-align: center;
.bs-cmp-diff-table {
border-collapse: separate;
border-spacing: 0;
}
.bs-cmp-diff-table .bs-cmp-pre-head,
.bs-cmp-diff-table .bs-cmp-post-head {
.bs-cmp-diff-table thead th {
position: sticky;
top: 0;
z-index: 1;
background: var(--wb-surface, #f8fafc);
box-shadow: 0 1px 0 rgba(148, 163, 184, 0.35);
font-size: 12px;
white-space: nowrap;
}
.bs-cmp-col-kind {
width: 72px;
white-space: nowrap;
}
.bs-cmp-badge {
display: inline-block;
padding: 2px 8px;
border-radius: 999px;
font-size: 11px;
opacity: 0.8;
font-weight: 600;
line-height: 1.4;
}
.bs-cmp-badge--added {
background: rgba(34, 197, 94, 0.16);
color: #15803d;
}
.bs-cmp-badge--removed {
background: rgba(239, 68, 68, 0.14);
color: #b91c1c;
}
.bs-cmp-badge--changed {
background: rgba(245, 158, 11, 0.16);
color: #b45309;
}
.bs-cmp-badge--unchanged {
background: rgba(148, 163, 184, 0.18);
color: #475569;
}
.bs-cmp-key-cell {
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 12px;
white-space: nowrap;
}
.bs-cmp-val-cell {
font-size: 12px;
vertical-align: middle;
}
.bs-cmp-val-cell--diff {
background: rgba(245, 158, 11, 0.05);
}
.bs-cmp-val {
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}
.bs-cmp-val--pre {
color: #b91c1c;
text-decoration: line-through;
text-decoration-thickness: 1px;
opacity: 0.9;
}
.bs-cmp-val--post {
color: #15803d;
font-weight: 600;
}
.bs-cmp-val-arrow {
margin: 0 6px;
opacity: 0.45;
font-weight: 600;
}
.bs-cmp-row--added {
background: rgba(34, 197, 94, 0.08);
background: rgba(34, 197, 94, 0.05);
}
.bs-cmp-row--removed {
background: rgba(239, 68, 68, 0.08);
background: rgba(239, 68, 68, 0.05);
}
.bs-cmp-row--changed {
background: rgba(245, 158, 11, 0.06);
background: transparent;
}
.bs-cmp-row--unchanged {
opacity: 0.78;
}
.bs-cmp-cell--pre {
@ -10058,6 +10236,12 @@ html.login-page--paused .login-page__flare {
font-weight: 600;
}
@media (max-width: 720px) {
.bs-cmp-kpis {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.nm-config-modal__body {
flex: 1 1 auto;
width: 100%;