6 Commits

Author SHA1 Message Date
f5488eaa98 Live swipe feedback: content tracks finger with destination peek
All checks were successful
Test, Build & Deploy / test-and-build (push) Successful in 41s
Test, Build & Deploy / deploy (push) Successful in 25s
Replace the instant-jump swipe with a live drag on touch: the current tab
content translates with the finger in real time (translateX driven by
touchmove), a peek chip at the edge shows the destination tab, and on
release the sheet animates to the next tab or snaps back. Horizontal vs
vertical travel is decided after 12px so normal page scrolling is
untouched; touch-action:pan-y keeps horizontal gestures JS-owned. Radar
still pans its map instead of switching tabs.
2026-08-30 19:22:35 +00:00
cc6b573748 Add swipe-to-switch between tabs on mobile
Touch swipe on the content area moves between tabs (left = next, right =
previous), gated to non-radar views so map pan gestures keep working.
Vertical scroll with |dx|<|dy| is untouched; 60px horizontal threshold.
2026-08-30 14:05:08 +00:00
36d3625d61 Make tabs hash-routable
- New src/lib/router.js: parseHash/ viewToHash for the 5 tab views, with a
  default fallback for empty/unknown hashes.
- App.svelte: initialize viewMode from location.hash, setView() updates both
  state and the URL hash, and a guarded hashchange listener syncs back/forward
  and manual URL edits. All tab onclicks route through setView().
- Tests for parse/viewToHash round-trips and fallback. 76 total pass.
2026-08-27 00:41:05 +00:00
d870a8e668 Add configurable auto-refresh interval (default 30m, option to disable); remove manual refresh button 2026-08-18 17:32:25 +00:00
ddce5c15b3 Add radar tab 2026-07-24 02:30:02 +00:00
4ffb44e107 First pass 2026-07-24 01:53:36 +00:00