AUG 19, 2026CURRENT
0.6.0 · One Chart API
What is breaking
The canonical single-panel contract is now Chart. It requires an explicit kind="line" or kind="bar", so rendering is independent from whether a series is actual or forecast. Use ChartGroup for composed analysis.
LineChart, ProductionChart, and DeclineCurve, plus the legacy fluidType and curveType fields, remain functional in 0.6.0. They are deprecated, so migrate new work to Chart and the focused /chart export.
Migration map
| Before | Use now | Action |
|---|---|---|
| LineChart | Chart kind="line" | Pass the same TimeSeries[] and add the required visual kind. |
| ProductionChart | Chart kind="line" | Pass the same TimeSeries[] to the series prop. |
| DeclineCurve | Chart kind="line" + forecast | Move segment configuration under forecast and pass annotations directly. |
| fluidType | associatedType | Use optional semantic metadata without coupling identity to oil and gas. |
| curveType | seriesType | Mark each series as actual or forecast. |
| Built-in variance | Derived bar chart | Select stable source IDs and register the result as its own series. |
| Independent chart zoom | ChartGroup time window | Share X navigation while keeping each panel's Y controls local. |
Chart migration
A single series contract now covers plain plots, forecast editing, and grouped analysis.
BEFORE
tsx
import {
LineChart,
} from "@aai-agency/og-components/line-chart";
<LineChart
series={series}
forecast={{ seriesId: "oil.actual", initialSegments: segments }}
annotations={annotations}
/>0.6.0
tsx
import {
Chart,
ChartGroup,
} from "@aai-agency/og-components/chart";
// Plain, annotated, or interactively forecasted series
<Chart
kind="line"
series={series}
forecast={{
seriesId: "oil.actual",
initialSegments: segments,
}}
annotations={annotations}
/>
// Rendering is independent from actual/forecast series semantics
<Chart kind="bar" series={series} />
// Synchronized line, bar, and derived panels
<ChartGroup series={series} charts={charts} />Identify every series
Stable IDs determine composition and derivation. Type and association describe a series; neither replaces its identity.
tsx
const series = [
{
id: "oil.actual",
seriesType: "actual",
associatedType: "oil",
label: "Oil actual",
color: "#18181b",
unit: "BBL/d",
frequency: "monthly",
data,
},
{
id: "oil.forecast",
seriesType: "forecast",
associatedType: "oil",
label: "Oil forecast",
color: "#71717a",
unit: "BBL/d",
frequency: "monthly",
data: forecastData,
},
];Release details
- Chart is now the canonical single-panel surface and requires kind="line" or kind="bar".
- ChartGroup composes synchronized line and bar panels over an ID-addressable series registry.
- Actual and forecast remain ordinary TimeSeries entries; chart kind only selects the renderer.
- The focused @aai-agency/og-components/chart export is now the recommended import path.
- Derived panels declare sourceSeriesIds and an explicit derivation instead of depending on a chart-specific variance mode.
- Grouped panels share time, cursor, and annotations while retaining independent Y axes and display controls.
- LineChart, ProductionChart, and DeclineCurve remain functional but deprecated for a deliberate migration.
