From e059be2d84a569775fd8a97433831696583a0837 Mon Sep 17 00:00:00 2001 From: James Smith Date: Sun, 3 May 2026 17:41:02 +0100 Subject: [PATCH] feat(drone): add HTML partial, CSS, and index.html mode panel wiring - Create templates/partials/modes/drone.html with drone mode sidebar panel - Create static/css/modes/drone.css with scoped drone UI styles - Wire drone mode into index.html: CSS map entry, partial include, classList toggle Co-Authored-By: Claude Sonnet 4.6 --- static/css/modes/drone.css | 74 +++++++++++++++++++++++++++++ templates/index.html | 6 ++- templates/partials/modes/drone.html | 42 ++++++++++++++++ 3 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 static/css/modes/drone.css create mode 100644 templates/partials/modes/drone.html diff --git a/static/css/modes/drone.css b/static/css/modes/drone.css new file mode 100644 index 0000000..6453a92 --- /dev/null +++ b/static/css/modes/drone.css @@ -0,0 +1,74 @@ +/* Drone Intelligence Styles */ + +.drone-vector-pills { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-top: 4px; +} + +.drone-vector-pill { + font-size: 10px; + font-family: var(--font-mono); + padding: 3px 8px; + border-radius: 3px; + background: var(--bg-primary); + color: var(--text-dim); + border: 1px solid var(--border-color); + transition: background 0.2s, color 0.2s; +} + +.drone-vector-pill.active { + background: color-mix(in srgb, var(--accent-cyan) 15%, transparent); + color: var(--accent-cyan); + border-color: var(--accent-cyan); +} + +.drone-contact-card { + background: var(--bg-card); + border: 1px solid var(--border-color); + border-radius: 4px; + padding: 10px 12px; + margin-bottom: 8px; + cursor: pointer; + transition: border-color 0.15s; +} + +.drone-contact-card:hover { + border-color: var(--accent-cyan); +} + +.drone-contact-card.high-risk { + border-left: 3px solid var(--accent-red); +} + +.drone-contact-card.medium-risk { + border-left: 3px solid var(--accent-yellow); +} + +.drone-contact-card.low-risk { + border-left: 3px solid var(--accent-green); +} + +.drone-compliance-badge { + font-size: 9px; + font-family: var(--font-mono); + padding: 2px 6px; + border-radius: 2px; + font-weight: 600; + text-transform: uppercase; +} + +.drone-compliance-badge.compliant { + background: color-mix(in srgb, var(--accent-green) 20%, transparent); + color: var(--accent-green); +} + +.drone-compliance-badge.non-compliant { + background: color-mix(in srgb, var(--accent-red) 20%, transparent); + color: var(--accent-red); +} + +.drone-marker-high-risk { + animation: dsc-distress-pulse 1.5s infinite; +} diff --git a/templates/index.html b/templates/index.html index a7640bb..0caf6f3 100644 --- a/templates/index.html +++ b/templates/index.html @@ -102,7 +102,8 @@ radiosonde: "{{ url_for('static', filename='css/modes/radiosonde.css') }}", meteor: "{{ url_for('static', filename='css/modes/meteor.css') }}", system: "{{ url_for('static', filename='css/modes/system.css') }}", - ook: "{{ url_for('static', filename='css/modes/ook.css') }}" + ook: "{{ url_for('static', filename='css/modes/ook.css') }}", + drone: "{{ url_for('static', filename='css/modes/drone.css') }}" }; window.INTERCEPT_MODE_STYLE_LOADED = {}; window.INTERCEPT_MODE_STYLE_PROMISES = {}; @@ -764,6 +765,8 @@ {% include 'partials/modes/ais.html' %} + {% include 'partials/modes/drone.html' %} + {% include 'partials/modes/radiosonde.html' %} {% include 'partials/modes/spy-stations.html' %} @@ -4625,6 +4628,7 @@ document.getElementById('aprsMode')?.classList.toggle('active', mode === 'aprs'); document.getElementById('tscmMode')?.classList.toggle('active', mode === 'tscm'); document.getElementById('aisMode')?.classList.toggle('active', mode === 'ais'); + document.getElementById('droneMode')?.classList.toggle('active', mode === 'drone'); document.getElementById('radiosondeMode')?.classList.toggle('active', mode === 'radiosonde'); document.getElementById('spystationsMode')?.classList.toggle('active', mode === 'spystations'); document.getElementById('meshtasticMode')?.classList.toggle('active', mode === 'meshtastic'); diff --git a/templates/partials/modes/drone.html b/templates/partials/modes/drone.html new file mode 100644 index 0000000..e63a860 --- /dev/null +++ b/templates/partials/modes/drone.html @@ -0,0 +1,42 @@ + +