@extends('admin.layout')
@section('title', 'Dashboard')
@section('content')
@php
use Illuminate\Support\Str;
$max = max(1, max(array_column($series, 'n')));
$chartTotal = array_sum(array_column($series, 'n'));
$trend = $counts['previous30'] ? (int) round(100 * ($counts['submissions30'] - $counts['previous30']) / $counts['previous30']) : null;
// sparkline of the last 14 days
$smax = max(1, max($spark));
$sparkPts = collect($spark)->map(fn ($n, $i) => round($i * (100 / 13), 1).','.round(28 - ($n / $smax) * 24, 1))->implode(' ');
$ranges = [30 => '30 days', 90 => '90 days', 365 => '12 months'];
$okChecks = collect($checks)->filter(fn ($c) => $c[1])->count();
$circ = 2 * M_PI * 34;
$scoreColor = $seo['score'] >= 85 ? 'var(--ok)' : ($seo['score'] >= 60 ? 'var(--accent-dark)' : 'var(--err)');
@endphp
{{ now()->format('l, j F Y') }}
@if ($counts['unread'])
You have {{ $counts['unread'] }} unread {{ Str::plural('enquiry', $counts['unread']) }} waiting.
@else
All enquiries are read. Nice work!
@endif
{{ $greeting }}, {{ Str::before(auth()->user()->name, ' ') }} 👋
Form submissions per {{ $range === 365 ? 'month, last 12 months' : 'day, last '.$range.' days' }} · click a bar to see them
Published pages with a meta description
{{ $seo['live'] - $seo['missing'] }} of {{ $seo['live'] }} pages are ready for Google.
@if ($seo['list']->isNotEmpty())and {{ $seo['missing'] - $seo['list']->count() }} more
@endif @endifEverything is published.
Changes made in the visual editor wait here until you press Update.Click any text, image or button on the page and edit it in place — like Elementor. Drag widgets in from the panel.
Press Ctrl K to search pages, posts, enquiries and media, or jump to any screen.
Visual-editor changes stay a draft until you press Update, and every update keeps a version you can restore.