@props([ 'id' => null, 'type' => 'bar', // bar, line, area, pie, donut, radar 'title' => 'Evolución', 'data' => [], // ['Enero' => 10, 'Febrero' => 20] 'color' => '#007bff', 'height' => 350 ]) @php // Identificador único (si el programador no suplió uno en Blade) para evitar pisar mapas cuando hay gráficos múltiples. $chartId = $id ?? 'chart_' . Str::random(8); // Inteligencia: Si el tipo es 'pie' o 'donut', Apex requiere arreglos simples de 1D en vez de format de Series 2D. $isRadial = in_array($type, ['pie', 'donut']); // Particionamiento: Laravel extrae Etiquetas ("Enero, Febrero") y Series (Valores Numéricos) $keys = array_keys($data); $values = array_values($data); // Conversión a JSON Limpio para JS $jsonLabels = json_encode($keys); // Si es Radial, la "serie" es simplemente el [10, 20]. Si no es radial, es un objeto con la "data" adentro. $jsonSeries = $isRadial ? json_encode($values) : json_encode([['name' => $title, 'data' => $values]]); @endphp