- Prop
data- Type
ChartHeatmapDay[]- Default
- —
- Requirement
- required
- Description
- —
Heatmap
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- surface
- —
- marks
- —
- size
- —
- value
- —
ts
import { useState } from "react";import { Heatmap } from "@grassroot/charts-react";import { VariantToggle } from "./VariantToggle"; const heatmapMonths = [ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun",];function buildHeatmapDays(): React.ComponentProps<typeof Heatmap>["data"] { let seed = 20260622; const rand = () => { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; }; const days: React.ComponentProps<typeof Heatmap>["data"] = []; const start = new Date(2025, 5, 22); for (let index = 0; index < 53 * 7; index += 1) { const date = new Date(start.getTime() + index * 86400000); const weekend = date.getDay() === 0 || date.getDay() === 6; const value = Math.floor(rand() * (weekend ? 5 : 13)); days.push({ date: date.toISOString().slice(0, 10), value: value < 2 ? 0 : value }); } return days;}const heatmapDays = buildHeatmapDays();const heatmapTotal = heatmapDays.reduce((sum, day) => sum + day.value, 0);const heatmapSummary = heatmapTotal.toLocaleString("en-GB") + " production deployments in the last year"; export default function HeatmapDemo() { const [mark, setMark] = useState<"cell" | "dot">("cell"); return ( <div style={{ width: "100%", minWidth: 0 }}> <VariantToggle label="Mark" options={[ { value: "cell" as const, label: "Cells" }, { value: "dot" as const, label: "Punch card" }, ]} value={mark} onChange={setMark} /> <Heatmap mark={mark} animation={{ durationMs: 560, staggerMs: 8 }} data={heatmapDays} months={heatmapMonths} total={heatmapSummary} ariaLabel="Daily production deployment activity over the last 53 weeks" /> </div> );}- surface
- —
- marks
- —
- size
- —
- value
- —
ts
<script setup lang="ts">import { ref } from "vue";import { Heatmap } from "@grassroot/charts-vue";import VariantToggle from "./VariantToggle.vue"; const mark = ref<"cell" | "dot">("cell");const marks = [ { value: "cell", label: "Cells" }, { value: "dot", label: "Punch card" },]; const heatmapMonths = [ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun",];function buildHeatmapDays(): React.ComponentProps<typeof Heatmap>["data"] { let seed = 20260622; const rand = () => { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; }; const days: React.ComponentProps<typeof Heatmap>["data"] = []; const start = new Date(2025, 5, 22); for (let index = 0; index < 53 * 7; index += 1) { const date = new Date(start.getTime() + index * 86400000); const weekend = date.getDay() === 0 || date.getDay() === 6; const value = Math.floor(rand() * (weekend ? 5 : 13)); days.push({ date: date.toISOString().slice(0, 10), value: value < 2 ? 0 : value }); } return days;}const heatmapDays = buildHeatmapDays();const heatmapTotal = heatmapDays.reduce((sum, day) => sum + day.value, 0);const heatmapSummary = heatmapTotal.toLocaleString("en-GB") + " production deployments in the last year";</script> <template> <div style="width: 100%; min-width: 0"> <VariantToggle v-model="mark" label="Mark" :options="marks" /> <Heatmap :mark="mark" :animation="{ durationMs: 560, staggerMs: 8 }" :data="heatmapDays" :months="heatmapMonths" :total="heatmapSummary" aria-label="Daily production deployment activity over the last 53 weeks" /> </div></template>- surface
- —
- marks
- —
- size
- —
- value
- —
ts
import { ChangeDetectionStrategy, Component, signal } from "@angular/core";import { GrassrootHeatmap } from "@grassroot/charts-angular";import type { HeatmapDatum } from "@grassroot/chart-spec";import { VariantToggleComponent } from "./VariantToggle.component"; @Component({ selector: "app-heatmap-chart-demo", standalone: true, imports: [GrassrootHeatmap, VariantToggleComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `<app-variant-toggle label="Mark" [options]="marks" [value]="mark()" (valueChange)="setMark($event)" /><grassroot-heatmap [mark]="mark()" [animation]="{ durationMs: 560, staggerMs: 8 }" [data]="heatmapDays" [months]="heatmapMonths" [total]="heatmapSummary" ariaLabel="Daily production deployment activity over the last 53 weeks" />`,})export class HeatmapDemoComponent { readonly mark = signal<"cell" | "dot">("cell"); readonly marks = [ { value: "cell", label: "Cells" }, { value: "dot", label: "Punch card" }, ] as const; readonly heatmapMonths = [ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", ]; readonly buildHeatmapDays = () => { let seed = 20260622; const rand = () => { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; }; const days: HeatmapDatum[] = []; const start = new Date(2025, 5, 22); for (let index = 0; index < 53 * 7; index += 1) { const date = new Date(start.getTime() + index * 86400000); const weekend = date.getDay() === 0 || date.getDay() === 6; const value = Math.floor(rand() * (weekend ? 5 : 13)); days.push({ date: date.toISOString().slice(0, 10), value: value < 2 ? 0 : value }); } return days; }; readonly heatmapDays = this.buildHeatmapDays(); readonly heatmapTotal = this.heatmapDays.reduce((sum, day) => sum + day.value, 0); readonly heatmapSummary = this.heatmapTotal.toLocaleString("en-GB") + " production deployments in the last year"; setMark(value: string): void { if (value === "cell" || value === "dot") this.mark.set(value); }} export default HeatmapDemoComponent;- surface
- —
- marks
- —
- size
- —
- value
- —
ts
<script lang="ts"> import { Heatmap } from "@grassroot/charts-svelte"; import VariantToggle from "./VariantToggle.svelte"; let mark = $state<"cell" | "dot">("cell"); const marks = [ { value: "cell", label: "Cells" }, { value: "dot", label: "Punch card" }, ]; const heatmapMonths = [ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun", ]; function buildHeatmapDays(): React.ComponentProps<typeof Heatmap>["data"] { let seed = 20260622; const rand = () => { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; }; const days: React.ComponentProps<typeof Heatmap>["data"] = []; const start = new Date(2025, 5, 22); for (let index = 0; index < 53 * 7; index += 1) { const date = new Date(start.getTime() + index * 86400000); const weekend = date.getDay() === 0 || date.getDay() === 6; const value = Math.floor(rand() * (weekend ? 5 : 13)); days.push({ date: date.toISOString().slice(0, 10), value: value < 2 ? 0 : value }); } return days; } const heatmapDays = buildHeatmapDays(); const heatmapTotal = heatmapDays.reduce((sum, day) => sum + day.value, 0); const heatmapSummary = heatmapTotal.toLocaleString("en-GB") + " production deployments in the last year";</script> <div style="width: 100%; min-width: 0"> <VariantToggle label="Mark" options={marks} value={mark} onchange={(value) => (mark = value as typeof mark)} /> <Heatmap {mark} animation={{ durationMs: 560, staggerMs: 8 }} data={heatmapDays} months={heatmapMonths} total={heatmapSummary} ariaLabel="Daily production deployment activity over the last 53 weeks" /></div>- surface
- —
- marks
- —
- size
- —
- value
- —
ts
/** @jsxImportSource solid-js */import { createSignal } from "solid-js";import { Heatmap } from "@grassroot/charts-solid";import type { HeatmapDatum } from "@grassroot/chart-spec";import { VariantToggle } from "./VariantToggle"; const heatmapMonths = [ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun",];function buildHeatmapDays(): readonly HeatmapDatum[] { let seed = 20260622; const rand = () => { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; }; const days: HeatmapDatum[] = []; const start = new Date(2025, 5, 22); for (let index = 0; index < 53 * 7; index += 1) { const date = new Date(start.getTime() + index * 86400000); const weekend = date.getDay() === 0 || date.getDay() === 6; const value = Math.floor(rand() * (weekend ? 5 : 13)); days.push({ date: date.toISOString().slice(0, 10), value: value < 2 ? 0 : value }); } return days;}const heatmapDays = buildHeatmapDays();const heatmapTotal = heatmapDays.reduce((sum, day) => sum + day.value, 0);const heatmapSummary = heatmapTotal.toLocaleString("en-GB") + " production deployments in the last year"; export default function HeatmapDemo() { const [mark, setMark] = createSignal<"cell" | "dot">("cell"); const marks = [ { value: "cell", label: "Cells" }, { value: "dot", label: "Punch card" }, ]; return ( <div style={{ width: "100%", "min-width": "0" }}> <VariantToggle label="Mark" options={marks} value={mark} onChange={(value) => setMark(value as "cell" | "dot")} /> <Heatmap mark={mark()} animation={{ durationMs: 560, staggerMs: 8 }} data={heatmapDays} months={heatmapMonths} total={heatmapSummary} ariaLabel="Daily production deployment activity over the last 53 weeks" /> </div> );}Installation
API Reference
Import
import { useState } from "react";
import { Heatmap } from "@grassroot/charts-react";
import { VariantToggle } from "./VariantToggle";
Props
Prop
Type
Default
Requirement
Description
dataChartHeatmapDay[]—
required
—
cellnumber | undefined—
optional
Cell edge length in px.
gapnumber | undefined—
optional
Gap between cells in px.
thresholdsnumber[] | undefined—
optional
—
totalstring | undefined—
optional
—
monthsstring[] | undefined—
optional
—
mark"cell" | "dot" | undefined—
optional
`"cell"` (default): today's bucketed-colour grid.
interactiveboolean | undefined—
optional
Gates pointer and keyboard interaction (hit-test, focus-to-first, arrow navigation, Escape) and, with `keyboardNavigation`, whether the plot surface is focusable.
tooltipboolean | undefined—
optional
Renders the active cell's tooltip.
legendboolean | undefined—
optional
Renders the "Less..More" level scale.
activePointstring | null | undefined—
optional
Controlled active cell id — pair with `onActivePointChange`.
defaultActivePointstring | null | undefined—
optional
Uncontrolled initial value for the `activePoint` pair.
onActivePointChange((id: string | null, datum: ChartHeatmapDay | null) => void) | undefined—
optional
—
speednumber | undefined—
optional
Playback-speed multiplier for entrance motion, merged into `animation`'s existing `ChartAnimationConfig.speed` (see `useVibeAnimation` below) — the mechanism this chart already has, not a new one.
- Prop
cell- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- Cell edge length in px.
- Prop
gap- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- Gap between cells in px.
- Prop
thresholds- Type
number[] | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
total- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
months- Type
string[] | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
mark- Type
"cell" | "dot" | undefined- Default
- —
- Requirement
- optional
- Description
- `"cell"` (default): today's bucketed-colour grid.
- Prop
interactive- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Gates pointer and keyboard interaction (hit-test, focus-to-first, arrow navigation, Escape) and, with `keyboardNavigation`, whether the plot surface is focusable.
- Prop
tooltip- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Renders the active cell's tooltip.
- Prop
legend- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- Renders the "Less..More" level scale.
- Prop
activePoint- Type
string | null | undefined- Default
- —
- Requirement
- optional
- Description
- Controlled active cell id — pair with `onActivePointChange`.
- Prop
defaultActivePoint- Type
string | null | undefined- Default
- —
- Requirement
- optional
- Description
- Uncontrolled initial value for the `activePoint` pair.
- Prop
onActivePointChange- Type
((id: string | null, datum: ChartHeatmapDay | null) => void) | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
speed- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- Playback-speed multiplier for entrance motion, merged into `animation`'s existing `ChartAnimationConfig.speed` (see `useVibeAnimation` below) — the mechanism this chart already has, not a new one.
- Prop
morphDurationMs- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- How long a dataset change tweens, in ms.
- Prop
replayToken- Type
string | number | undefined- Default
- —
- Requirement
- optional
- Description
- Changing this value replays the entrance animation.
- Prop
renderer- Type
ChartRenderer | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
theme- Type
import("@grassroot/theme").PartialChartTheme | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
animation- Type
ChartAnimationInput | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
title- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
description- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
ariaLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
keyboardNavigation- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- —
Events
| Event | Payload |
|---|---|
onActivePointChange | ((id: string | null, datum: ChartHeatmapDay | null) => void) | undefined |
Content regions
dataSummary
Native attributes
Standard DOM and ARIA attributes not listed above spread onto the root element.
Import
import { ref } from "vue";
import { Heatmap } from "@grassroot/charts-vue";
import VariantToggle from "./VariantToggle.vue";
Props
Prop
Type
Default
Requirement
datareadonly HeatmapDatum[]—
required
cellnumber | undefined—
optional
gapnumber | undefined—
optional
thresholdsreadonly number[] | undefined—
optional
mark"cell" | "dot" | undefined—
optional
totalstring | undefined—
optional
monthsreadonly string[] | undefined—
optional
rendererChartRenderer | undefined"auto"optional
ariaLabelstring | undefined—
optional
classNamestring | undefined—
optional
titlestring | undefined—
optional
descriptionstring | undefined—
optional
themePartialChartTheme | undefined—
optional
animationChartAnimationInput | undefined—
optional
- Prop
data- Type
readonly HeatmapDatum[]- Default
- —
- Requirement
- required
- Prop
cell- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
gap- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
thresholds- Type
readonly number[] | undefined- Default
- —
- Requirement
- optional
- Prop
mark- Type
"cell" | "dot" | undefined- Default
- —
- Requirement
- optional
- Prop
total- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
months- Type
readonly string[] | undefined- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer | undefined- Default
"auto"- Requirement
- optional
- Prop
ariaLabel- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
title- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
description- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme | undefined- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput | undefined- Default
- —
- Requirement
- optional
- Prop
interactive- Type
boolean | undefined- Default
true- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean | undefined- Default
true- Requirement
- optional
- Prop
tooltip- Type
boolean | undefined- Default
true- Requirement
- optional
- Prop
legend- Type
boolean | undefined- Default
true- Requirement
- optional
- Prop
activePoint- Type
string | null | undefined- Default
- —
- Requirement
- optional
- Prop
defaultActivePoint- Type
string | null | undefined- Default
null- Requirement
- optional
- Prop
speed- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
morphDurationMs- Type
number | undefined- Default
- —
- Requirement
- optional
- Prop
replayToken- Type
string | number | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:activePoint | [id: string | null] |
activePointChange | [id: string | null, datum: HeatmapDatum | null] |
Content regions
dataSummary
Import
import { ChangeDetectionStrategy, Component, signal } from "@angular/core";
import { GrassrootHeatmap } from "@grassroot/charts-angular";
import type { HeatmapDatum } from "@grassroot/chart-spec";
import { VariantToggleComponent } from "./VariantToggle.component";
Props
Prop
Type
Default
Requirement
datareadonly HeatmapDatum[]—
required
cellnumber—
optional
gapnumber—
optional
thresholdsreadonly number[]—
optional
totalstring—
optional
monthsreadonly string[]—
optional
rendererChartRenderer"auto"optional
speednumber—
optional
morphDurationMsnumber—
optional
replayTokenstring | number—
optional
ariaLabelstring—
optional
classNamestring—
optional
titlestring—
optional
descriptionstring—
optional
- Prop
data- Type
readonly HeatmapDatum[]- Default
- —
- Requirement
- required
- Prop
cell- Type
number- Default
- —
- Requirement
- optional
- Prop
gap- Type
number- Default
- —
- Requirement
- optional
- Prop
thresholds- Type
readonly number[]- Default
- —
- Requirement
- optional
- Prop
total- Type
string- Default
- —
- Requirement
- optional
- Prop
months- Type
readonly string[]- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
"auto"- Requirement
- optional
- Prop
speed- Type
number- Default
- —
- Requirement
- optional
- Prop
morphDurationMs- Type
number- Default
- —
- Requirement
- optional
- Prop
replayToken- Type
string | number- Default
- —
- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
interactive- Type
boolean- Default
true- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
true- Requirement
- optional
- Prop
tooltip- Type
boolean- Default
true- Requirement
- optional
- Prop
legend- Type
boolean- Default
true- Requirement
- optional
- Prop
mark- Type
HeatmapOptions["mark"]- Default
- —
- Requirement
- optional
- Prop
activePoint- Type
string | null- Default
- —
- Requirement
- optional
- Prop
defaultActivePoint- Type
string | null- Default
null- Requirement
- optional
Events
| Event | Payload |
|---|---|
activePointChange | [string | null, HeatmapDatum | null] |
Content regions
dataSummary
Import
import { Heatmap } from "@grassroot/charts-svelte";
import VariantToggle from "./VariantToggle.svelte";
Props
Prop
Type
Default
Requirement
datareadonly HeatmapDatum[]—
required
cellnumber—
optional
gapnumber—
optional
thresholdsreadonly number[]—
optional
markHeatmapOptions["mark"]—
optional
totalstring—
optional
monthsreadonly string[]—
optional
rendererChartRenderer"auto"optional
ariaLabelstring—
optional
classstring—
optional
titlestring—
optional
descriptionstring—
optional
themePartialChartTheme—
optional
animationChartAnimationInput—
optional
- Prop
data- Type
readonly HeatmapDatum[]- Default
- —
- Requirement
- required
- Prop
cell- Type
number- Default
- —
- Requirement
- optional
- Prop
gap- Type
number- Default
- —
- Requirement
- optional
- Prop
thresholds- Type
readonly number[]- Default
- —
- Requirement
- optional
- Prop
mark- Type
HeatmapOptions["mark"]- Default
- —
- Requirement
- optional
- Prop
total- Type
string- Default
- —
- Requirement
- optional
- Prop
months- Type
readonly string[]- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
"auto"- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
class- Type
string- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
interactive- Type
boolean- Default
true- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
true- Requirement
- optional
- Prop
tooltip- Type
boolean- Default
true- Requirement
- optional
- Prop
legend- Type
boolean- Default
true- Requirement
- optional
- Prop
activePoint- Type
string | null- Default
- —
- Requirement
- optional
- Prop
defaultActivePoint- Type
string | null- Default
- —
- Requirement
- optional
- Prop
onActivePointChange- Type
(id: string | null, datum: HeatmapDatum | null) => void- Default
- —
- Requirement
- optional
- Prop
speed- Type
number- Default
- —
- Requirement
- optional
- Prop
morphDurationMs- Type
number- Default
- —
- Requirement
- optional
- Prop
replayToken- Type
string | number- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onActivePointChange | (id: string | null, datum: HeatmapDatum | null) => void |
Content regions
dataSummary
Import
import { createSignal } from "solid-js";
import { Heatmap } from "@grassroot/charts-solid";
import type { HeatmapDatum } from "@grassroot/chart-spec";
import { VariantToggle } from "./VariantToggle";
Props
Prop
Type
Default
Requirement
datareadonly HeatmapDatum[]—
required
cellnumber13optional
gapnumber3optional
markHeatmapOptions["mark"]—
optional
thresholdsreadonly number[]—
optional
totalstring"Activity heatmap"optional
monthsreadonly string[]—
optional
rendererChartRenderer"auto"optional
ariaLabelstring—
optional
titlestring—
optional
descriptionstring—
optional
themePartialChartTheme—
optional
animationChartAnimationInput—
optional
speednumber—
optional
- Prop
data- Type
readonly HeatmapDatum[]- Default
- —
- Requirement
- required
- Prop
cell- Type
number- Default
13- Requirement
- optional
- Prop
gap- Type
number- Default
3- Requirement
- optional
- Prop
mark- Type
HeatmapOptions["mark"]- Default
- —
- Requirement
- optional
- Prop
thresholds- Type
readonly number[]- Default
- —
- Requirement
- optional
- Prop
total- Type
string- Default
"Activity heatmap"- Requirement
- optional
- Prop
months- Type
readonly string[]- Default
- —
- Requirement
- optional
- Prop
renderer- Type
ChartRenderer- Default
"auto"- Requirement
- optional
- Prop
ariaLabel- Type
string- Default
- —
- Requirement
- optional
- Prop
title- Type
string- Default
- —
- Requirement
- optional
- Prop
description- Type
string- Default
- —
- Requirement
- optional
- Prop
theme- Type
PartialChartTheme- Default
- —
- Requirement
- optional
- Prop
animation- Type
ChartAnimationInput- Default
- —
- Requirement
- optional
- Prop
speed- Type
number- Default
- —
- Requirement
- optional
- Prop
morphDurationMs- Type
number- Default
- —
- Requirement
- optional
- Prop
replayToken- Type
string | number- Default
- —
- Requirement
- optional
- Prop
interactive- Type
boolean- Default
true- Requirement
- optional
- Prop
keyboardNavigation- Type
boolean- Default
true- Requirement
- optional
- Prop
tooltip- Type
boolean- Default
true- Requirement
- optional
- Prop
legend- Type
boolean- Default
true- Requirement
- optional
- Prop
activePoint- Type
string | null- Default
- —
- Requirement
- optional
- Prop
defaultActivePoint- Type
string | null- Default
null- Requirement
- optional
- Prop
onActivePointChange- Type
(id: string | null, datum: HeatmapDatum | null) => void- Default
- —
- Requirement
- optional
- Prop
class- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onActivePointChange | (id: string | null, datum: HeatmapDatum | null) => void |
Content regions
dataSummary