import { defineChart } from "@tanstack/charts"
import { focusGroupAngle, polar, radialBarAngle } from "@tanstack/charts/polar"
import { scaleBand } from "@tanstack/charts/scales/band"
import { scaleLinear } from "@tanstack/charts/scales/linear"
import { tooltip } from "@tanstack/charts/tooltip"
import { Chart } from "@/components/ui/tanstack-chart"
{ browser: "Chrome", visitors: 275 },
{ browser: "Safari", visitors: 200 },
{ browser: "Firefox", visitors: 187 },
{ browser: "Edge", visitors: 173 },
{ browser: "Other", visitors: 90 },
const browserNames = browsers.map((row) => row.browser)
// The track: every ring drawn to the end of the scale.
const tracks = browsers.map((row) => ({ ...row, track: 300 }))
const definition = defineChart(
angle: { scale: scaleLinear().domain([0, 300]) },
scale: scaleBand<string>().domain(browserNames).paddingInner(0.2),
fill: "var(--ant-color-fill-secondary)",
radialBarAngle(browsers, {
scales: { x: null, y: null },
color: { domain: browserNames },
const point = points.find((item) => item.markId === "visitors")
title: point?.datum.browser,
? [{ label: "Visitors", value: String(point.datum.visitors), color: point.color }]
export function BrowsersChart() {
ariaLabel="Visitors by browser, out of 300"