prop/assets
Graham McIntire 5488744f44
feat(contact): loading spinners, callsign-aware summaries, axis callsigns
Three improvements to the contact detail page:

* Track async hydration per source in `hydration_pending` so the
  Terrain / Soundings / Atmospheric Profile sections render a loading
  spinner while their task is in-flight instead of briefly flashing
  "no data available" before the payload arrives.
* Propagation analysis summary now names the origin station by
  callsign ("Path is terrain-obstructed at N mi from W5XD") instead
  of the generic "station 1" placeholder.
* Elevation profile chart labels the 0-mi and max-mi ticks with the
  matching callsign so it's obvious which end of the profile is
  which station.
2026-04-18 13:43:35 -05:00
..
css docs+ui: present-tense algo.md, NARR replaces ERA5, wider /algo page 2026-04-18 12:31:07 -05:00
js feat(contact): loading spinners, callsign-aware summaries, axis callsigns 2026-04-18 13:43:35 -05:00
vendor feat(import): fire confetti when the complete banner appears 2026-04-17 10:01:18 -05:00
tsconfig.json Convert all JavaScript to TypeScript with type annotations 2026-04-11 16:59:28 -05:00