Linear: https://linear.app/tinyland/issue/TIN-1727/pm25-modeled-provenance-popovers-across-readout-layer-rail-and
Problem
The app has HelpTooltip/Skeleton popovers working, but modeled atmospheric values still do not have a shared, domain-specific explanation surface. PM2.5 estimates, AOD handoff, sparse confidence, and null-reading exclusions should be visible where users inspect the modeled values.
Scope
- Build a reusable modeled-atmosphere support popover component on top of the existing mobile-safe HelpTooltip/Skeleton pattern.
- Surface station count, numeric reading count, null reading count, effective station count, nearest station distance, kernel bandwidth/radius, computedAt, and source.
- Use it in PointReadout PM2.5, TransmissionSheet AOD provenance, and the Smog layer rail/status surface.
- Keep the popover portaled/fixed/mobile-contained and avoid invalid nested markup.
Acceptance
- Users can tap/hover any modeled PM2.5/AOD provenance badge and see the same support facts.
- Mobile viewport popovers remain inside the visual viewport.
- Component tests cover the key copy paths and null/sparse cases.
- Browser QA verifies the popover opens on iPhone-sized viewport.
Related: #301, #275, #271.
Linear: https://linear.app/tinyland/issue/TIN-1727/pm25-modeled-provenance-popovers-across-readout-layer-rail-and
Problem
The app has HelpTooltip/Skeleton popovers working, but modeled atmospheric values still do not have a shared, domain-specific explanation surface. PM2.5 estimates, AOD handoff, sparse confidence, and null-reading exclusions should be visible where users inspect the modeled values.
Scope
Acceptance
Related: #301, #275, #271.