@php // CHANGELOG.md uses German Keep-a-Changelog headings as the canonical section keys; // map each to a localized display label + a badge tone. $sectionKey = [ 'Hinzugefügt' => 'added', 'Geändert' => 'changed', 'Behoben' => 'fixed', 'Sicherheit' => 'security', 'Entfernt' => 'removed', 'Veraltet' => 'deprecated', ]; $sectionTone = [ 'added' => 'accent', 'changed' => 'cyan', 'fixed' => 'neutral', 'security' => 'accent', 'removed' => 'neutral', 'deprecated' => 'neutral', ]; $sectionLabel = fn (string $g): string => isset($sectionKey[$g]) ? __('versions.section_'.$sectionKey[$g]) : $g; $tone = fn (string $g): string => $sectionTone[$sectionKey[$g] ?? ''] ?? 'neutral'; // Toned glance-dots on each collapsed release row (static classes so Tailwind's scanner sees them). $dotClass = ['accent' => 'bg-accent', 'cyan' => 'bg-cyan', 'neutral' => 'bg-ink-4']; $isUpdate = $updateState === 'update'; @endphp {{-- Auto-check for updates on load (async, non-blocking) so an available update + button show without the operator clicking "check" first. autoCheck() no-ops while an update is running. --}}
{{ __('versions.eyebrow') }}
Clusev v{{ $version }}
@if ($updateStatus) {{ $updateStatus }} @else {{ __('versions.banner_default') }} @endif
v{{ $rel['version'] }}@if ($rel['date']) · {{ $rel['date'] }}@endif
{{ __('versions.changelog_empty') }}
@else{{ __('versions.update_hint') }}
sudo clusev update