{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "recharts-pie-chart",
  "description": "Deprecated: Recharts pie chart. Use pie-chart instead.",
  "dependencies": [
    "recharts",
    "cn@^0.2.4"
  ],
  "registryDependencies": [
    "https://ui-three-mu.vercel.app/r/recharts-chart.json"
  ],
  "files": [
    {
      "path": "registry/preskok/ui/preskok-ui/recharts-pie-chart.tsx",
      "content": "\"use client\"\n\nimport { type ComponentProps } from \"react\"\nimport { twMerge } from \"cn\"\nimport { Cell, Pie, PieChart as PieChartPrimitive } from \"recharts\"\nimport type {\n  NameType,\n  ValueType,\n} from \"recharts/types/component/DefaultTooltipContent\"\n\nimport {\n  Chart,\n  ChartTooltip,\n  ChartTooltipContent,\n  DEFAULT_COLORS,\n  getColorValue,\n  type BaseChartProps,\n  type ChartDatum,\n} from \"./recharts-chart\"\n\nconst sumNumericArray = (arr: number[]): number =>\n  arr.reduce((sum, num) => sum + num, 0)\n\nconst calculateDefaultLabel = (data: ChartDatum[], valueKey: string): number =>\n  sumNumericArray(data.map((dataPoint) => Number(dataPoint[valueKey]) || 0))\n\nconst parseLabelInput = (\n  labelInput: string | undefined,\n  valueFormatter: (value: number) => string,\n  data: ChartDatum[],\n  valueKey: string\n): string => labelInput || valueFormatter(calculateDefaultLabel(data, valueKey))\n\ninterface RechartsPieChartProps<\n  TValue extends ValueType,\n  TName extends NameType,\n> extends Omit<\n  BaseChartProps<TValue, TName>,\n  | \"hideGridLines\"\n  | \"hideXAxis\"\n  | \"hideYAxis\"\n  | \"xAxisProps\"\n  | \"yAxisProps\"\n  | \"displayEdgeLabelsOnly\"\n  | \"legend\"\n  | \"legendProps\"\n> {\n  variant?: \"pie\" | \"donut\"\n  nameKey?: string\n\n  chartProps?: Omit<\n    ComponentProps<typeof PieChartPrimitive>,\n    \"data\" | \"stackOffset\"\n  >\n\n  label?: string\n  showLabel?: boolean\n  pieProps?: Omit<ComponentProps<typeof Pie>, \"data\" | \"dataKey\" | \"name\">\n}\n\n/**\n * @deprecated Use `PieChart` from `@preskok/pie-chart`, built on TanStack Charts.\n */\nconst RechartsPieChart = <TValue extends ValueType, TName extends NameType>({\n  data = [],\n  dataKey,\n  colors = DEFAULT_COLORS,\n  className,\n  config,\n  children,\n  label,\n  showLabel,\n\n  // Components\n  tooltip = true,\n  tooltipProps,\n\n  variant = \"pie\",\n  nameKey,\n\n  chartProps,\n\n  valueFormatter = (value: number) => value.toString(),\n  pieProps,\n  ...props\n}: RechartsPieChartProps<TValue, TName>) => {\n  const parsedLabelInput = parseLabelInput(label, valueFormatter, data, dataKey)\n\n  return (\n    <Chart\n      className={twMerge(\"aspect-square\", className)}\n      config={config}\n      data={data}\n      layout=\"radial\"\n      dataKey={dataKey}\n      {...props}\n    >\n      {({ onLegendSelect }) => (\n        <PieChartPrimitive\n          data={data}\n          onClick={() => {\n            onLegendSelect(null)\n          }}\n          margin={{\n            bottom: 0,\n            left: 0,\n            right: 0,\n            top: 0,\n          }}\n          {...chartProps}\n        >\n          {showLabel && variant === \"donut\" && (\n            <text\n              className=\"fill-foreground font-medium\"\n              x=\"50%\"\n              y=\"50%\"\n              textAnchor=\"middle\"\n              dominantBaseline=\"middle\"\n            >\n              {parsedLabelInput}\n            </text>\n          )}\n          <Pie\n            name={nameKey}\n            dataKey={dataKey}\n            data={data}\n            cx={pieProps?.cx ?? \"50%\"}\n            cy={pieProps?.cy ?? \"50%\"}\n            startAngle={pieProps?.startAngle ?? 90}\n            endAngle={pieProps?.endAngle ?? -270}\n            strokeLinejoin=\"round\"\n            innerRadius={variant === \"donut\" ? \"50%\" : \"0%\"}\n            isAnimationActive\n            {...pieProps}\n          >\n            {data.map((dataPoint, index) => {\n              let colorKey: string | undefined\n              if (typeof dataPoint.code === \"string\") {\n                colorKey = dataPoint.code\n              } else if (typeof dataPoint.name === \"string\") {\n                colorKey = dataPoint.name\n              }\n              const color = colorKey ? config?.[colorKey]?.color : undefined\n              return (\n                <Cell\n                  key={`cell-${index}`}\n                  fill={getColorValue(color ?? colors[index % colors.length])}\n                />\n              )\n            })}\n          </Pie>\n\n          {tooltip && (\n            <ChartTooltip\n              content={\n                typeof tooltip === \"boolean\" ? (\n                  <ChartTooltipContent\n                    labelSeparator={false}\n                    accessibilityLayer\n                  />\n                ) : (\n                  tooltip\n                )\n              }\n              {...tooltipProps}\n            />\n          )}\n\n          {children}\n        </PieChartPrimitive>\n      )}\n    </Chart>\n  )\n}\n\nexport { RechartsPieChart }\nexport type { RechartsPieChartProps }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}