// js/components/widgets/historico/DonutChart.jsx
// [REFACTOR Wave 1 PR2 — 2026-05-14] Extraído literal de HistoricoVendedor.jsx L128-151.
// Zero mudança de lógica; closures `COLORS.X` substituídas por const local hardcoded (Path A).
// Caller único: HistoricoVendedor.jsx (uso interno após extração via window.ZNX.widgets.DonutChart).
(function() {
  'use strict';

  const COLORS = {
    gold:'#B89840',
    blue:'#2563EB',
    purple:'#7C3AED',
    green:'#15803D',
    orange:'#EA580C'
  };

  // Donut chart (mix marcas) — 120×120
  function DonutChart({data,total}){
    const R=42,cx=60,cy=60,sw=18;
    if(!data||data.length===0||total===0)return null;
    const palette=[COLORS.gold,COLORS.blue,COLORS.purple,COLORS.green,COLORS.orange,'#06B6D4','#EC4899','#84CC16'];
    let acc=0;
    const arcs=data.slice(0,8).map((d,i)=>{
      const pct=d.valor/total;
      const a0=acc*2*Math.PI-Math.PI/2;
      acc+=pct;
      const a1=acc*2*Math.PI-Math.PI/2;
      const large=pct>0.5?1:0;
      const x0=cx+R*Math.cos(a0),y0=cy+R*Math.sin(a0);
      const x1=cx+R*Math.cos(a1),y1=cy+R*Math.sin(a1);
      return{path:`M ${x0} ${y0} A ${R} ${R} 0 ${large} 1 ${x1} ${y1}`,color:palette[i%palette.length],pct,label:d.marca};
    });
    return(
      <svg width="120" height="120" viewBox="0 0 120 120">
        <circle cx={cx} cy={cy} r={R} fill="none" stroke="#F3F4F6" strokeWidth={sw}/>
        {arcs.map((a,i)=>(
          <path key={i} d={a.path} fill="none" stroke={a.color} strokeWidth={sw} strokeLinecap="butt"/>
        ))}
      </svg>
    );
  }

  window.ZNX = window.ZNX || {};
  window.ZNX.widgets = window.ZNX.widgets || {};
  window.ZNX.widgets.DonutChart = DonutChart;
})();
