merge: resolve conflict with master — keep zoomToNode + search functions (THE-79)

Both zoomToNode() (pan/zoom, THE-79) and the search/badge additions from
master (THE-66, THE-73) are preserved. No logic changes to either side.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
s0lray
2026-03-25 00:00:56 -04:00
co-authored by Paperclip
3 changed files with 143 additions and 36 deletions
+31 -29
View File
@@ -13,6 +13,12 @@
--color-noscript-border: #7a4a00;
--color-legend: #e0e0e0;
--color-header: #e0e0e0;
/* Status badge colors — saturated enough for both light and dark backgrounds */
--badge-T: #4a9eda;
--badge-D: #e8944a;
--badge-R: #c8a030;
--badge-M: #9a7eda;
--color-accent: #4a9eda;
--color-border: #444;
@@ -147,39 +153,51 @@ a {
color: var(--color-node-stroke);
}
/* Status badge pills (used in legend) */
.badge {
display: inline-block;
font-size: 10px;
font-weight: bold;
padding: 1px 4px;
border-radius: 3px;
color: #fff;
vertical-align: middle;
}
.badge-T { background-color: var(--badge-T); }
.badge-D { background-color: var(--badge-D); }
.badge-R { background-color: var(--badge-R); }
.badge-M { background-color: var(--badge-M); }
/* Search */
#search-container {
text-align: center;
padding: var(--space-2) 0 var(--space-1);
padding: 8px 0 4px;
}
#search-input {
width: 400px;
max-width: 90vw;
padding: var(--space-2) var(--space-3);
font-size: var(--font-size-base);
font-family: var(--font-family);
padding: 8px 12px;
font-size: 14px;
font-family: "Helvetica Neue", Helvetica;
background: var(--color-surface);
color: var(--color-text-primary);
border: 1px solid var(--color-link);
border-radius: var(--radius-sm);
border-radius: 4px;
outline: none;
}
#search-input:focus {
border-color: var(--color-accent);
box-shadow: 0 0 0 2px rgba(74, 158, 218, 0.25);
border-color: var(--color-node-stroke);
}
#search-results {
margin: var(--space-2) auto 0;
margin: 8px auto 0;
width: 600px;
max-width: 90vw;
text-align: left;
background: var(--color-surface);
border: 1px solid var(--color-link);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-md);
border-radius: 4px;
max-height: 400px;
overflow-y: auto;
display: none;
@@ -190,7 +208,7 @@ a {
}
.search-result-item {
padding: var(--space-2) var(--space-3);
padding: 8px 12px;
border-bottom: 1px solid var(--color-link);
font-size: 13px;
}
@@ -211,28 +229,12 @@ a {
.search-result-path {
color: var(--color-text-secondary);
font-size: var(--font-size-sm);
font-size: 11px;
margin-top: 2px;
}
.search-no-results {
padding: var(--space-3);
padding: 12px;
color: var(--color-text-secondary);
text-align: center;
}
/* === Mobile responsive === */
@media (max-width: 768px) {
#header {
font-size: var(--font-size-lg);
top: 10px;
}
.legend {
position: relative;
width: auto;
max-width: 100%;
padding: var(--space-2) var(--space-3);
box-sizing: border-box;
}
}