Implemented epics read/write

This commit is contained in:
Martino Ferrari
2026-04-27 12:42:10 +02:00
parent b76b7f0ba8
commit 1bda25454b
32 changed files with 1553 additions and 281 deletions
+134 -27
View File
@@ -994,33 +994,7 @@ body {
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;
}
/* time-nav styles are in the time-nav-bar section at the bottom of this file */
/* Overlay shown inside a plot widget while history is loading or unavailable */
.hist-overlay {
@@ -1966,3 +1940,136 @@ kbd {
}
.ctx-help-link:hover { text-decoration: underline; }
/* ── Historical time-nav bar (below main toolbar, hidden by default) ──────── */
.time-nav-bar {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.35rem 1rem;
background: #161b27;
border-bottom: 1px solid #2d3748;
flex-shrink: 0;
flex-wrap: wrap;
}
.time-input {
font-size: 0.75rem;
background: #1a2236;
border: 1px solid #2d3748;
color: #e2e8f0;
border-radius: 4px;
padding: 0.25rem 0.4rem;
cursor: pointer;
height: 28px;
box-sizing: border-box;
}
.time-input:focus { outline: none; border-color: #63b3ed; }
.time-input::-webkit-calendar-picker-indicator { filter: invert(0.8); }
.time-sep {
color: #475569;
font-size: 0.8rem;
}
/* ── Fullscreen mode ──────────────────────────────────────────────────────── */
.fs-view {
width: 100vw;
height: 100vh;
overflow: auto;
background: #0f1117;
display: flex;
}
.fs-error {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
color: #f87171;
font-size: 1rem;
}
/* ── Signal drop menu (drop onto existing widget) ─────────────────────────── */
.signal-drop-backdrop {
position: absolute;
inset: 0;
z-index: 9500;
}
.signal-drop-menu {
position: fixed;
background: #1a1f2e;
border: 1px solid #2d3748;
border-radius: 6px;
box-shadow: 0 4px 20px rgba(0,0,0,0.6);
min-width: 220px;
z-index: 9600;
overflow: hidden;
transform: translateY(4px);
}
.signal-drop-header {
padding: 0.5rem 0.75rem;
font-size: 0.75rem;
color: #64748b;
border-bottom: 1px solid #2d3748;
}
.signal-drop-header strong {
color: #94a3b8;
}
.ctx-cancel {
color: #6b7280;
border-top: 1px solid #2d3748;
}
/* ── Button widget: pressed / mode hint ──────────────────────────────────── */
.btn-pressed {
background: #1e40af !important;
border-color: #3b82f6 !important;
color: #93c5fd !important;
}
.btn-mode-hint {
font-size: 0.65rem;
opacity: 0.7;
margin-left: 0.35rem;
}
/* ── PropertiesPane: signals list + hint text ─────────────────────────────── */
.prop-signals-list {
display: flex;
flex-direction: column;
gap: 0.2rem;
width: 100%;
}
.prop-signal-row {
display: flex;
align-items: center;
gap: 0.25rem;
justify-content: space-between;
}
.prop-sig-remove {
font-size: 0.65rem;
opacity: 0.6;
flex-shrink: 0;
}
.prop-sig-remove:hover { opacity: 1; color: #f87171; }
.prop-hint {
display: block;
font-size: 0.65rem;
color: #475569;
margin-top: 0.15rem;
line-height: 1.2;
}