[feat](trx-frontend): improve AIS decode and decoder views

Improve the AIS decoder timing recovery, add AIS vessel linking and map trails, and make the AIS/APRS decoder panels behave like mode-bound views with full-height history panes.

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-03-02 23:28:41 +01:00
parent 27f45feedd
commit 3099ae7d68
8 changed files with 312 additions and 32 deletions
@@ -1116,8 +1116,28 @@ small { color: var(--text-muted); }
font-size: 0.8rem;
line-height: 1.3;
}
#subtab-ais {
display: flex;
flex-direction: column;
min-height: calc(100vh - 18rem);
}
#subtab-aprs {
display: flex;
flex-direction: column;
min-height: calc(100vh - 18rem);
}
#aprs-packets,
#ais-messages { max-height: 360px; overflow-y: auto; border: 1px solid var(--border-light); border-radius: 6px; background: var(--input-bg); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
#aprs-packets {
flex: 1 1 auto;
min-height: calc(100vh - 21rem);
max-height: none;
}
#ais-messages {
flex: 1 1 auto;
min-height: calc(100vh - 24rem);
max-height: none;
}
.aprs-packet { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.82rem; padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--border); line-height: 1.4; }
.aprs-packet:last-child { border-bottom: none; }
.ais-message { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 0.82rem; padding: 0.45rem 0.55rem; border-bottom: 1px solid var(--border); line-height: 1.35; }
@@ -1534,6 +1554,18 @@ button:focus-visible, input:focus-visible, select:focus-visible {
.ais-summary {
grid-template-columns: minmax(0, 1fr);
}
#subtab-ais {
min-height: calc(100vh - 14rem);
}
#subtab-aprs {
min-height: calc(100vh - 14rem);
}
#aprs-packets {
min-height: calc(100vh - 19rem);
}
#ais-messages {
min-height: calc(100vh - 22rem);
}
.aprs-controls > button,
.ft8-controls > button,
.cw-controls > button {