This commit is contained in:
Martino Ferrari
2026-04-26 11:01:55 +02:00
parent 91b42027c9
commit e83e183673
17 changed files with 1009 additions and 182 deletions
+198 -1
View File
@@ -69,7 +69,11 @@ body {
.toolbar-center {
flex: 1;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
flex-wrap: wrap;
}
.toolbar-right {
@@ -984,6 +988,54 @@ body {
.toolbar-btn-primary:hover:not(:disabled) { background: #1d4ed8; }
.toolbar-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.toolbar-btn-active {
background: #1e40af;
color: #93c5fd;
border: 1px solid #3b82f6;
}
/* ── Time range / history navigation ──────────────────────────────────────── */
.time-nav {
display: flex;
align-items: center;
gap: 0.35rem;
flex-wrap: wrap;
}
.time-input {
font-size: 0.75rem;
background: #1a2236;
border: 1px solid #2d3748;
border-radius: 4px;
color: #cbd5e1;
padding: 0.2rem 0.4rem;
cursor: pointer;
}
.time-input:focus { outline: none; border-color: #63b3ed; }
/* Colour-scheme hint for the browser's native date-time picker */
.time-input::-webkit-calendar-picker-indicator { filter: invert(0.8); }
.time-sep {
color: #475569;
font-size: 0.8rem;
}
/* Overlay shown inside a plot widget while history is loading or unavailable */
.hist-overlay {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.8rem;
color: #94a3b8;
background: rgba(26, 31, 46, 0.75);
pointer-events: none;
}
.hist-overlay-warn { color: #fbbf24; }
.edit-body {
display: flex;
flex: 1;
@@ -1201,6 +1253,151 @@ body {
.signal-name { font-size: 0.8rem; color: #cbd5e1; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-unit { font-size: 0.7rem; color: #64748b; flex-shrink: 0; }
/* Signal tree toolbar (+ Synthetic, CSV, Refresh) */
.signal-tree-toolbar {
display: flex;
gap: 0.25rem;
padding: 0.3rem 0.5rem;
border-bottom: 1px solid #2d3748;
flex-wrap: wrap;
}
/* Row containing filter input + CF search button */
.signal-search-row {
display: flex;
gap: 0.25rem;
align-items: center;
}
/* "+" button inside group header */
.signal-add-btn {
margin-left: auto;
font-size: 0.85rem;
opacity: 0;
transition: opacity 0.15s;
}
.signal-group-header:hover .signal-add-btn { opacity: 1; }
/* Inline add-signal row */
.signal-add-row {
display: flex;
align-items: center;
gap: 0.25rem;
padding: 0.2rem 0.5rem 0.2rem 1.5rem;
}
.signal-add-input {
flex: 1;
font-size: 0.8rem;
background: #1a2236;
border: 1px solid #4a5568;
border-radius: 4px;
color: #e2e8f0;
padding: 0.15rem 0.4rem;
outline: none;
}
.signal-add-input:focus { border-color: #63b3ed; }
/* Custom (manually added) signal items */
.signal-custom { opacity: 0.85; }
.signal-custom .signal-name { font-style: italic; }
/* Remove button on custom items */
.signal-remove-btn {
margin-left: auto;
font-size: 0.7rem;
opacity: 0;
transition: opacity 0.15s;
flex-shrink: 0;
}
.signal-item:hover .signal-remove-btn { opacity: 1; }
/* ── Synthetic Wizard ─────────────────────────────────────────────────────── */
.wizard-backdrop {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.6);
display: flex;
align-items: center;
justify-content: center;
z-index: 200;
}
.wizard {
background: #1e2535;
border: 1px solid #2d3748;
border-radius: 8px;
width: 420px;
max-width: 95vw;
max-height: 90vh;
display: flex;
flex-direction: column;
box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}
.wizard-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.75rem 1rem;
border-bottom: 1px solid #2d3748;
font-weight: 600;
font-size: 0.95rem;
color: #e2e8f0;
}
.wizard-body {
padding: 1rem;
overflow-y: auto;
flex: 1;
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.wizard-footer {
display: flex;
gap: 0.5rem;
justify-content: flex-end;
padding: 0.75rem 1rem;
border-top: 1px solid #2d3748;
}
.wizard-section-title {
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
color: #64748b;
letter-spacing: 0.06em;
margin-top: 0.5rem;
}
.wizard-field {
display: flex;
flex-direction: column;
gap: 0.2rem;
}
.wizard-field label {
font-size: 0.75rem;
color: #94a3b8;
}
/* Side-by-side fields */
.wizard-field-row {
flex-direction: row;
gap: 0.5rem;
}
.wizard-field-row > .wizard-field { flex: 1; }
.wizard-error {
color: #fc8181;
font-size: 0.8rem;
background: rgba(252,129,129,0.1);
border: 1px solid #fc8181;
border-radius: 4px;
padding: 0.4rem 0.6rem;
}
/* ── Properties Pane ─────────────────────────────────────────────────────── */
.props-panel {