@props([ 'question', // App\Support\Witness\WitnessQuestion 'sectionKey', 'value' => null, // current buffer value 'meta' => null, // App\Models\Witness\WitnessStatementAnswer|null 'showOrigin' => true, 'validationRequested' => false, 'touched' => [], ]) @php $model = "answers.$sectionKey.{$question->key}"; $fieldId = "wq-$sectionKey-{$question->key}"; $key = "$sectionKey.{$question->key}"; $isSuggested = $meta && $meta->review_status === 'suggested'; $isRequiredMissing = $question->required && ! $question->isAnswered($value) && ! $isSuggested; // Validation stays neutral until requested or the field has been interacted with. $showError = $isRequiredMissing && ($validationRequested || in_array($key, $touched, true)); $describedBy = collect([$question->help ? "$fieldId-help" : null, $showError ? "$fieldId-error" : null])->filter()->implode(' '); $isProvenance = $meta && $meta->origin === 'evidence' && in_array($meta->review_status, ['accepted', 'edited'], true); @endphp
@if($question->help)
{{ $question->help }}
@endif @switch($question->type) @case('long_text') @break @case('date') @break @case('select') @break @case('boolean') @case('declaration')
@break @case('multiselect') {{-- Selectable chips with large touch targets. --}}
@foreach($question->options as $opt) @endforeach
@break @case('repeater') @php $rows = is_array($value) ? $value : []; @endphp
@forelse($rows as $index => $row)
@foreach($question->fields as $sub)
@endforeach
@empty

No entries yet.

@endforelse
@break @default @endswitch {{-- Provenance: an accepted evidence answer keeps a compact trace. --}} @if($isProvenance && ($meta->provenance['excerpt'] ?? null))
Accepted from {{ $meta->provenance['document'] ?? 'evidence' }}@if($meta->provenance['page'] ?? null), page {{ $meta->provenance['page'] }}@endif
@endif @if($showError)
This answer is required before the statement can be generated.
@elseif($isRequiredMissing)
Required for generation
@endif