{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "pie-chart", "type": "registry:component", "title": "Pie Chart", "description": "Beautiful pie chart for data visualization with retro styling", "dependencies": [ "recharts" ], "files": [ { "path": "components/retroui/charts/PieChart.tsx", "content": "\"use client\"\n\nimport { cn } from \"@/lib/utils\"\nimport React from \"react\"\nimport {\n Cell,\n Pie,\n PieChart as RechartsPieChart,\n ResponsiveContainer,\n Tooltip,\n} from \"recharts\"\n\ninterface PieChartProps extends React.HTMLAttributes {\n data: Record[]\n dataKey: string\n nameKey: string\n colors?: string[]\n tooltipBgColor?: string\n tooltipBorderColor?: string\n valueFormatter?: (value: number) => string\n showTooltip?: boolean\n innerRadius?: number\n outerRadius?: number\n className?: string\n}\n\nconst PieChart = React.forwardRef(\n (\n {\n data = [],\n dataKey,\n nameKey,\n colors = [\"var(--chart-1)\", \"var(--chart-2)\", \"var(--chart-3)\", \"var(--chart-4)\", \"var(--chart-5)\"],\n tooltipBgColor = \"var(--background)\",\n tooltipBorderColor = \"var(--border)\",\n valueFormatter = (value: number) => value.toString(),\n showTooltip = true,\n innerRadius = 0,\n outerRadius = 100,\n className,\n ...props\n },\n ref\n ) => {\n return (\n
\n \n \n \n {data.map((entry, index) => (\n \n ))}\n \n \n {showTooltip && (\n {\n if (!active || !payload?.length) return null\n \n const data = payload[0]\n \n return (\n
\n
\n \n {data.name}\n \n \n {valueFormatter(data.value as number)}\n \n
\n
\n )\n }}\n />\n )}\n
\n
\n
\n )\n }\n)\n\nPieChart.displayName = \"PieChart\"\n\nexport { PieChart, type PieChartProps }", "type": "registry:component", "target": "components/retroui/charts/PieChart.tsx" } ] }