trips/mock
Greg Pomerantz 76749affb6 Make the airport→hotel drop-off a first-class, independently-editable leg
The drop-off (land → hotel, 'drop bags') was always by car, not L3-editable,
and the walk/taxi toggle was trip-global. It also read dayBase() rather than
the actual booked hotel, and the open route card went stale after enrichment
(the rail updated, the card didn't).

- transferIn is now a full leg: {mode, conf, geometry, hotelName} (both the
  apply_flight_anchors tool and the healTravelAnchors self-heal build it).
- enrichLegs routes the drop-off FIRST (so the stop-leg token bails can't
  starve it), idempotently, in its own mode; renderMap draws it from its
  routed geometry, walk=green / taxi=blue.
- The drop-off rail row is a normal clickable leg (not struct-leg): clicking
  it opens the same L3 editor as any stop-to-stop leg, with the walk/taxi
  toggle.
- openL3 generalises to openLegEditor(leg, from, to, ...) so any leg with
  explicit endpoints is editable; openArrivalEditor() edits the drop-off.
- The toggle is now per-leg (setLegMode) — it re-routes just the leg being
  edited and keeps the card, the itinerary rail, and the map in sync (the
  rail re-renders live, and enrichment refreshes an open card), killing the
  stale-state-after-toggle bug. rebuildLegs preserves each leg's mode.
- setTravelMode (no UI, kept as a global API) genuinely flips every on-ground
  leg + the drop-off.

Verified: cdp_leg 17/17 (drop-off routed on load, L3-editable, mode+colour+
pane update live, card==rail), struct 13/13, dates 7/7, Florence/Boston smoke
0 JS errors.
2026-09-09 19:33:48 -04:00
..
scripts multi-trip mock + Colombia trip with a real walking router 2026-09-09 09:44:29 -04:00
app.js Make the airport→hotel drop-off a first-class, independently-editable leg 2026-09-09 19:33:48 -04:00
data.js multi-trip mock + Colombia trip with a real walking router 2026-09-09 09:44:29 -04:00
index.html Route card: put walk/taxi on the leg popup; make the drop-off ride hoverable 2026-09-09 17:56:58 -04:00
server.js Re-date the whole plan on flight upload: stays, tabs, chips, title 2026-09-09 16:31:26 -04:00
styles.css Route card: put walk/taxi on the leg popup; make the drop-off ride hoverable 2026-09-09 17:56:58 -04:00