Skip to content

Semiotic v3.8.9

Latest

Choose a tag to compare

@github-actions github-actions released this 05 Aug 03:19
0622455

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 chartsframeProps.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 ticksadaptiveTimeTicks(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 configtooltip={{ 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.