Unify graph docking, fix device hot-switch, and compact UI cards

- Unify minimap/toolbar/legend drag+dock into shared _makeDraggable() helper
- Persist legend visibility and position, add active state to toggle buttons
- Show custom colors only on graph cards (entity defaults remain in legend)
- Replace emoji overlay buttons with SVG path icons
- Fix stale is_running blocking target start (auto-clear if task is done)
- Resolve device/target IDs to names in conflict error messages
- Hot-switch LED device on running target via async stop-swap-start cycle
- Compact automation dashboard cards and fix time_of_day localization
- Inline CSS source pill on target cards to save vertical space

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-14 21:12:12 +03:00
parent 272cb69247
commit 6395709bb8
8 changed files with 224 additions and 139 deletions
@@ -83,27 +83,44 @@
.graph-legend {
position: absolute;
top: 12px;
right: 12px;
z-index: 20;
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 10px 14px;
box-shadow: 0 2px 8px var(--shadow-color);
font-size: 0.8rem;
display: none;
max-height: 60vh;
overflow-y: auto;
overflow: hidden;
}
.graph-legend.visible {
display: block;
}
.graph-legend-header {
display: flex;
align-items: center;
padding: 4px 10px;
background: var(--bg-secondary);
border-bottom: 1px solid var(--border-color);
cursor: grab;
user-select: none;
}
.graph-legend-header.dragging {
cursor: grabbing;
}
.graph-legend-title {
font-weight: 600;
margin-bottom: 6px;
color: var(--text-color);
font-size: 0.7rem;
color: var(--text-muted);
}
.graph-legend-body {
padding: 6px 12px;
max-height: 55vh;
overflow-y: auto;
}
.graph-legend-item {
@@ -112,6 +129,7 @@
gap: 8px;
padding: 2px 0;
color: var(--text-secondary);
white-space: nowrap;
}
.graph-legend-dot {