Semiotic 3.9.0 focuses on charts that keep working as data arrives, a container resizes, or a reader switches from a pointer to a keyboard. Thefull changeloglists the new public helpers and the rendering fixes behind that work.
Read a stream in event time
A sensor reading can arrive late. Drawing it at its arrival time can make a stable process appear to jump. RealtimeLineChart can now reorder input by eventTime and useaggregate to collect high-rate input into retained windows. Its handle exposesflush() when the host knows the stream has ended.
The five realtime wrappers also share more of the chart contract: authored titles and descriptions, exact-value tables, legends, selection, linked hover, and observation. Start with the RealtimeLineChart guide to choose between a controlled dataset and incoming records pushed through a ref.
Bring chart checks into one reading
A valid configuration is only one part of a useful chart. evaluateChartcombines data-contract checks, representation diagnostics, accessibility findings, and optional render evidence into a ranked report. The CLI's --evaluate option and the MCP tool expose the same workflow. Findings help an author decide what to repair; a passing result does not establish that a dataset or conclusion is true.
Make interaction visible to the application
ObservationReadout and observedDatum help an application show which item a reader is inspecting. TooltipRoot and the tooltip helpers support an application-owned shell. Typed cursor styling lets a mark signal an available action, while the action itself remains in the click and keyboard callbacks.
The observation guide connects these pieces. Use a persistent readout when an explanation should remain available after the pointer leaves a mark.
Geometry and reading tools stay together
Responsive physics charts rebuild bodies, collision geometry, and visible labels as one layout. Hit testing follows visible marks more closely across chart families. Side legends reserve space for keyboard focus rings, and choropleth gradient legends work in both browser and static output. Compound charts such as MinimapChart and ScatterplotMatrix expose a single chart-level data table.
Server-render fixes cover OrbitDiagram, grouped XY inputs, custom layouts, geographic flows, zero-valued edges, and theme scales. Settled physics output shares the live chart's margins and projections. These fixes matter when a reader moves between an interactive chart and a report made from the same configuration.
Examples with a question to investigate
How a Hit Travels follows titles through national Netflix rankings. Parataxis Machinelets you inspect how neighboring clauses imply a relationship. The Last Scarcity uses an interactive scenario to ask what cheap intelligence leaves scarce. Each puts the chart inside a larger explanation and keeps its evidence or modeling assumptions available.
Upgrade notes
Install with npm install semiotic@3.9.0. If you use a heatmap's customColorScale, supply a callable function; a plain object now fails validation. Side legends include a small focus-ring gutter; an explicit legendLayout.edgeGutter controls that space.
In React push mode, omit data and use a ref. An empty array still selects controlled mode. Review the documented behavior when changing event-time or aggregate policies during a stream, and use flush() for a known end boundary. Themigration guide covers the wider version-3 API.