{{-- Contact form (PRD ยง19). States: empty โ†’ validation (inline, on blur/submit) โ†’ loading (button disabled) โ†’ success (panel replaces the form) / error (with direct-email fallback). Status is announced via aria-live. Works as a normal POST without JS (old input preserved, flash messages shown). --}} @inject('settings', 'App\Domain\Site\Settings\ContactSettings') @inject('captchaFactory', 'App\Domain\Engagement\Contact\Captcha\CaptchaFactory') @php $captcha = $captchaFactory->make(); $success = session('contact.success'); $failure = session('contact.error'); @endphp
@if ($success)

{{ $success }}

@endif @if ($failure)

{{ $failure }}

@if ($settings->public_email)

{{ $settings->public_email }}

@endif
@endif
@unless ($success)
siteKey()) data-captcha-key="{{ $captcha->siteKey() }}" data-captcha-script="{{ $captcha->scriptUrl() }}" @endif> @csrf
@include('partials.forms.field', ['name' => 'name', 'label' => __('portfolio.form.name'), 'required' => true, 'autocomplete' => 'name']) @include('partials.forms.field', ['name' => 'email', 'label' => __('portfolio.form.email'), 'type' => 'email', 'required' => true, 'autocomplete' => 'email'])
@include('partials.forms.field', ['name' => 'subject', 'label' => __('portfolio.form.subject'), 'required' => true])
@include('partials.forms.field', ['name' => 'company', 'label' => __('portfolio.form.company'), 'autocomplete' => 'organization']) @if ($settings->opportunity_types !== []) @include('partials.forms.field', ['name' => 'opportunity_type', 'label' => __('portfolio.form.opportunity_type'), 'options' => $settings->opportunity_types]) @endif
@include('partials.forms.field', ['name' => 'linkedin_url', 'label' => __('portfolio.form.linkedin_url'), 'type' => 'url', 'placeholder' => __('portfolio.form.linkedin_placeholder')]) @include('partials.forms.field', ['name' => 'message', 'label' => __('portfolio.form.message'), 'required' => true, 'textarea' => true]) @if ($captcha->siteKey() && str_contains((string) $captcha->scriptUrl(), 'turnstile'))
@endif
{{ __('portfolio.form.send') }}

{{ __('portfolio.form.required_note') }}

@if ($settings->privacy_note)

{{ $settings->privacy_note }}

@endif @endunless