@php /** * Branding fields (identity, logos, fallback images) for Settings → General. * Each section uses the app's card anatomy — .qm-card-head (title + subtitle) over a * .qm-card-body — the same header/body split the Business-model and Split-gateway cards * use, so the section headings share one typography + spacing treatment across the product. * The General tab wraps these in its own multipart form so the whole tab keeps a single * "Save settings" button. Persisted by App\Services\BrandingService. */ // Every logo / favicon / fallback field below is the shared media-library picker // (media_field_html → the same one used by My Account, vendor Settings and campaigns). // Each renders as a self-contained card: title header, live-preview body, action footer. // Clearing a field reverts it to the bundled default in BrandingService, never to blank. // $fallbackDefault supplies the current image the picker shows when no custom one is set. $fallbackDefault = ['fallback_food_image' => 'assets/admin/fallback/food-fallback.png', 'fallback_general_image' => 'assets/admin/fallback/general-fallback.png', 'fallback_avatar_image' => 'assets/admin/avatar-placeholder.svg', 'fallback_about_video' => 'assets/client/video/video.mp4', 'cuisines_panel_bg' => 'assets/client/promos/collection-2.png', 'ai_avatar' => 'assets/admin/favicon.png']; @endphp

{{ t_raw('admin.branding.h_identity') }}

{{ t_raw('admin.branding.help_identity') }}

@php /* The field first, THEN the swatches. With the swatch strip sitting between the label and its input, this column's input rendered 38px below the site-name input beside it — two labelled fields on one row that lined up at the label and nowhere else. The swatches are a shortcut for filling this field, so they belong under it. */ @endphp
@foreach (['#ff003d', '#e8590c', '#f59e0b', '#16a34a', '#0f9b8e', '#2484c6', '#4f46e5', '#8a45b8', '#e64980', '#0f172a'] as $c) @endforeach

{{ t_raw('admin.branding.hint_color') }}

@php /* The address the site is reached by. Almost everything builds its links from the request and never consults this — but a scheduled task and a queued email have no request to read, so without it a password-reset link sent by cron points wherever the site was INSTALLED from. Blank means "work it out from the request", which is right up until the day the domain moves. */ @endphp

{{ t_raw('admin.branding.hint_site_url') }}

{{ t_raw('admin.branding.h_logos') }}

{{ t_raw('admin.branding.help_logos') }}

{!! media_field_html('favicon', setting('favicon'), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-favicon', 'title' => t_raw('admin.branding.field_favicon')]) !!}
{!! media_field_html('logo', setting('logo'), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-logo', 'title' => t_raw('admin.branding.field_logo_light'), 'hint' => t_raw('admin.branding.hint_logo_light')]) !!}
{!! media_field_html('logo_light', setting('logo_light'), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-logo-light', 'title' => t_raw('admin.branding.field_logo_dark'), 'hint' => t_raw('admin.branding.hint_logo_dark')]) !!}
{!! media_field_html('ai_avatar', setting('ai_avatar', $fallbackDefault['ai_avatar']), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-ai-avatar', 'title' => t_raw('admin.branding.field_ai_avatar'), 'hint' => t_raw('admin.branding.hint_ai_avatar')]) !!}

{{ t_raw('admin.branding.h_fallback') }}

{{ t_raw('admin.branding.help_fallback') }}

{!! media_field_html('fallback_food_image', setting('fallback_food_image', $fallbackDefault['fallback_food_image']), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-fb-food', 'title' => t_raw('admin.branding.field_fallback_food'), 'hint' => t_raw('admin.branding.hint_fallback_food')]) !!}
{!! media_field_html('fallback_general_image', setting('fallback_general_image', $fallbackDefault['fallback_general_image']), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-fb-general', 'title' => t_raw('admin.branding.field_fallback_general'), 'hint' => t_raw('admin.branding.hint_fallback_general')]) !!}
{!! media_field_html('fallback_avatar_image', setting('fallback_avatar_image', $fallbackDefault['fallback_avatar_image']), ['accept' => 'image', 'circle' => true, 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-fb-avatar', 'title' => t_raw('admin.branding.field_fallback_avatar'), 'hint' => t_raw('admin.branding.hint_fallback_avatar')]) !!}
{!! media_field_html('fallback_about_video', setting('fallback_about_video', $fallbackDefault['fallback_about_video']), ['accept' => 'video', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-fb-video', 'title' => t_raw('admin.branding.field_fallback_video'), 'hint' => t_raw('admin.branding.hint_fallback_video')]) !!}
{!! media_field_html('cuisines_panel_bg', setting('cuisines_panel_bg', $fallbackDefault['cuisines_panel_bg']), ['accept' => 'image', 'endpoint' => '/account/media', 'allowClear' => true, 'id' => 'b-cuis-bg', 'title' => t_raw('admin.branding.field_cuisines_bg'), 'hint' => t_raw('admin.branding.hint_cuisines_bg')]) !!}