You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Zoom-aware canvas resolution — all Stream Frames now repaint when browser zoom, OS display scale, or display migration changes devicePixelRatio, even when CSS layout dimensions stay fixed. The new maxDevicePixelRatio chart/frame prop overrides the default desktop (3×) and coarse-pointer/small-screen (2×) backing-store caps for consumers that prefer high-zoom crispness over paint and memory cost. DPR / cap changes are resolution-only invalidations: retained geometry is re-rasterized without a full scene rebuild.
Per-axis extent modes for XY charts — frameProps.axes[i].extent accepts "nice" | "exact" and overrides chart-level axisExtent for one axis. Tick generation, grid positions, y-domain padding, client SVG, and static SSR output resolve the same per-axis mode. Use chart-level "exact" (or an exact bottom axis) for a pinned time window, then { orient: "left", extent: "nice" } so magnitude ticks stay rounded.
IANA adaptive time ticks — adaptiveTimeTicks(granularity, { timeZone }) accepts "UTC", "local", or any IANA id (e.g. "America/Los_Angeles"). Labels and calendar-boundary detection use that zone via Intl. Legacy utc: false still maps to local; timeZone wins when both are set. Default remains UTC for deterministic SSR.
First-class multi tooltip config — tooltip={{ mode: "multi", content? }} enables multi-series hover and optionally supplies a custom renderer that receives unwrapped data with allSeries / xValue re-attached. Equivalent to tooltip="multi" when content is omitted; no separate frameProps.tooltipMode needed.