series Required | CwResponsiveLineSeries[] | Series rendered on the chart. Each series carries its own `data: { t, v }[]`, color, unit, and optional thresholds. |
series[].id | string | Stable identifier referenced by axis props, legend toggles, and onchange events. |
series[].label | string | Human-readable label shown in legend chips, tooltip rows, and axis selectors. |
series[].unit | string | Unit suffix shown beside last-value readouts and axis crowns (e.g. "ยฐC", "%RH", "ppm"). |
series[].color | string | Solid line color. Ignored when `gradient` is true. |
series[].gradient Default: false | boolean | When true, color each segment by mean value using the temperature gradient (indigo โ blue โ cyan โ green โ amber โ red), legible on light and dark backgrounds. |
series[].data | { t: number; v: number | null }[] | Samples sorted ascending by `t` (epoch ms). Use `v: null` for missing readings. |
series[].decimals Default: 1 | number | Decimals used in tooltips and legend readouts. |
series[].gapMs | number | When set, gaps between consecutive samples greater than this many ms render as an explicit "no signal" band. |
series[].thresholds | CwResponsiveLineThreshold[] | Optional named horizontal reference lines drawn on the series' axis. Each entry is `{ value, label, color? }`. |
series[].axisSide | 'left' | 'right' | Force this series' Y axis to a specific side. When omitted, axes auto-distribute (index 0 โ left, 1 โ right, 2 โ left, โฆ). |
dataStart | number | Earliest selectable timestamp (epoch ms). Computed from `series` when omitted. |
dataEnd | number | Latest selectable timestamp (epoch ms). Computed from `series` when omitted. |
title Default: '' | string | Heading shown above the chart. |
subtitle Default: '' | string | Sub-heading shown beneath the title. |
theme Default: 'light' | 'light' | 'dark' | Theme palette. Bindable. |
themeAuto Default: false | boolean | When true, follows `prefers-color-scheme` and hides the manual toggle. |
showThemeToggle Default: true | boolean | Show the sun/moon theme toggle in the header. |
ranges Default: [ '1H', '24H', '7D' ] | CwResponsiveLineRangePreset[] | Range pill presets shown in the header. Each entry is `{ id, label, ms }`. Pass `[]` to hide the row. |
initialRange Default: '24h' | string | Range preset id used on mount when its `ms` is shorter than the full dataset span. |
initialHidden Default: [] | string[] | Series ids hidden at mount time. Mutable thereafter via legend chips. |
showLegend Default: true | boolean | Show the legend panel at all (chips, axis picker, stats). |
showLegendStats Default: true | boolean | Show min / avg / max under each legend chip. |
showAnomalies Default: true | boolean | Render ringed dots for z-score > 2.5ฯ within the current viewport. |
showThresholds Default: true | boolean | Render named threshold lines from each series' `thresholds` array. |
showDataGaps Default: true | boolean | Render explicit "no signal" bands when a series has `gapMs` set and a gap occurs. |
showNightBands Default: true | boolean | Shade 18:00โ06:00 local time when the view spans less than 14 days. |
layout Default: 'auto' | 'auto' | 'desktop' | 'tablet-land' | 'tablet' | 'phone-land' | 'phone' | Forced layout variant. `auto` (default) picks one from the container width. |
height Default: 480 | number | string | Component height. Number is treated as pixels; strings are passed through verbatim (e.g. "60vh"). |
bare Default: false | boolean | Strip the card chrome (background, border, padding) for embedding inside other cards. |
noData | string | boolean | When present, blurs the chart and shows an overlay. Pass localized text, or use the bare `noData` attribute for "No Data Available". |
class Default: '' | string | Optional class forwarded to the root element. |
onchange | (e: CwResponsiveLineChangeEvent) => void | Called whenever the view or visibility changes. Receives `{ viewStart, viewEnd, hidden, legendStats }`. |