thermograph/static
Emi Griffith d38bf0192c Add a season/month time filter + mobile filter sheet (compare & calendar) (#79)
Compare gains a time-of-year filter it never had; the calendar's flat 4-season
filter is upgraded to the same model so both pages filter time identically.

- Shared season/month model in shared.js: seasons are the primary, color-coded
  selector, the 12 months a nested suboption, backed by one Set of month indices.
  seasonFilterDropdown/syncSeasonChecks/applySeasonMonthChange/seasonSummaryText
  plus month<->bitmask helpers, reused by both pages.
- Compare: filter gates r.date's month into computeStats and the distribution;
  instant re-rank, no refetch. Persisted (cmpMonths bitmask) and carried in the
  URL hash (m=, omitted when all 12). Empty-selection hint when a filter excludes
  every day.
- Calendar: checkedSeasons -> checkedMonths, applied in the render loop; persisted
  as calMonths. Season checkbox is checked/indeterminate by how many of its months
  are on.
- Mobile filter sheet (filtersheet.js): a subtle floating pill slides the page's
  filter panel up as a bottom sheet, reachable from anywhere on the page, on both
  compare and calendar. Desktop keeps the inline panel unchanged. Respects
  reduced-motion and the home-indicator inset.

Frontend-only; no backend or payload change.
2026-07-12 05:33:09 +00:00
..
app.js Extract the chart library and the chunked streaming fetch (#49) 2026-07-11 20:33:06 +00:00
cache.js Warm neighbor cells server-side (/cell?neighbors=1) (#51) 2026-07-11 20:47:31 +00:00
calendar.html Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
calendar.js Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
chart.js Extract the chart library and the chunked streaming fetch (#49) 2026-07-11 20:33:06 +00:00
compare.html Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
compare.js Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
day.html Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
day.js Day page: stop metric cards overflowing the viewport on phones 2026-07-11 14:13:05 -07:00
filtersheet.js Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
index.html Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
legend.html Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
logo.png Link previews: Open Graph tags + logo for shared URLs (#35) 2026-07-11 15:59:14 +00:00
logo.svg Link previews: Open Graph tags + logo for shared URLs (#35) 2026-07-11 15:59:14 +00:00
mappicker.js Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
nav.js Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
package.json Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
shared.js Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
style.css Add a season/month time filter + mobile filter sheet (compare & calendar) (#79) 2026-07-12 05:33:09 +00:00
units.js Make the compare page unit-aware so the °F/°C toggle works there (#55) 2026-07-11 21:48:21 +00:00