@php $brandingAssetUrl = static function (mixed $path): ?string { if (! is_string($path) || trim($path) === '') { return null; } $path = ltrim(str_replace('\\', '/', trim($path)), '/'); if (preg_match('#^https?://#i', $path) === 1) { return $path; } return str_starts_with($path, 'storage/') ? asset($path) : asset('storage/'.$path); }; $brandingImages = [ 'logo' => [ 'label' => __('Logo'), 'help' => __('Recommended: approximately 500×200px. PNG, JPG, SVG and WebP supported. Maximum 2MB.'), 'accept' => '.png,.jpg,.jpeg,.webp,.svg', 'url' => $brandingAssetUrl($general->logo), ], 'logo_light' => [ 'label' => __('Logo Light'), 'help' => __('Use this version on dark backgrounds. Recommended: approximately 500×200px. Maximum 2MB.'), 'accept' => '.png,.jpg,.jpeg,.webp,.svg', 'url' => $brandingAssetUrl($general->logo_light), ], 'app_icon' => [ 'label' => __('Favicon'), 'help' => __('Recommended: 64×64px or 32×32px. ICO, PNG and SVG supported. Maximum 512KB.'), 'accept' => '.ico,.png,.svg', 'url' => $brandingAssetUrl($general->app_icon), ], ]; @endphp
{{ __('Branding Settings') }}

{{ __('Manage the logos, browser icon, colours and footer description used throughout the application.') }}

@foreach($brandingImages as $field => $image)
{{ $image['label'] }}
{{ __('No image uploaded') }}
@error($field)
{{ $message }}
@enderror
{{ $image['help'] }}
@if($image['url'])
@endif
@endforeach
{{ __('Brand Colours') }}
@error('site_color')
{{ $message }}
@enderror
@error('secondary_color')
{{ $message }}
@enderror
{{ __('Footer Content') }}
@error('about_footer')
{{ $message }}
@enderror
{{ __('This text appears beneath the logo in the public footer.') }}
@once @push('styles') @endpush @push('scripts') @endpush @endonce