Manage Widgets @if ($widgets->isEmpty()) Manage Widgets @else
@foreach ($widgets as $widget) @php $colSpan = match($widget->size) { 'full' => 'sm:col-span-2 lg:col-span-3', 'half' => 'sm:col-span-1 lg:col-span-2' , default => '', }; $data = $widgetData[$widget->id] ?? null; @endphp

{{ $widget->title }}

@if ($widget->widget_type === 'metric') @php $metricLabel = \App\Models\DashboardWidget::$metrics[$widget->config['metric'] ?? 'page_views'] ?? 'Metric'; @endphp

@if (($widget->config['metric'] ?? '') === 'bounce_rate') {{ $data }}% @elseif (($widget->config['metric'] ?? '') === 'avg_duration') {{ gmdate('i:s', (int) $data) }} @else {{ number_format($data) }} @endif

{{ $metricLabel }}

@elseif ($widget->widget_type === 'chart')
@elseif (in_array($widget->widget_type, ['top_pages', 'top_sources', 'browsers', 'countries', 'events'])) @if ($data && $data->isNotEmpty())
@foreach ($data->take(5) as $row)
{{ $row->path ?? $row->source ?? $row->browser ?? $row->country ?? $row->name ?? '—' }} {{ number_format($row->views ?? $row->sessions ?? $row->visitors ?? $row->total ?? 0) }}
@endforeach
@else

No data for this period.

@endif @elseif ($widget->widget_type === 'new_vs_returning')

{{ $data['new_pct'] ?? 0 }}%

New

{{ $data['returning_pct'] ?? 0 }}%

Returning

@elseif ($widget->widget_type === 'conversions') @if ($data && $data->isNotEmpty())
@foreach ($data->take(5) as $goal)
{{ $goal->name }} {{ number_format($goal->conversions) }}
@endforeach
@else

No conversions for this period.

@endif @endif
@endforeach
@endif