## Summary - add the Evidence Snapshot domain with immutable tenant-scoped snapshots, per-dimension items, queued generation, audit actions, badge mappings, and Filament list/detail surfaces - add the workspace evidence overview, capability and policy wiring, Livewire update-path hardening, and review-pack integration through explicit evidence snapshot resolution - add spec 153 artifacts, migrations, factories, and focused Pest coverage for evidence, review-pack reuse, authorization, action-surface regressions, and audit behavior ## Testing - `vendor/bin/sail artisan test --compact --stop-on-failure` - `CI=1 vendor/bin/sail artisan test --compact` - `vendor/bin/sail bin pint --dirty --format agent` ## Notes - branch: `153-evidence-domain-foundation` - commit: `b7dfa279` - spec: `specs/153-evidence-domain-foundation/` Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #183
45 lines
2.0 KiB
PHP
45 lines
2.0 KiB
PHP
@php
|
|
$state = $getState();
|
|
$state = is_array($state) ? $state : [];
|
|
|
|
$summary = is_string($state['summary'] ?? null) ? $state['summary'] : null;
|
|
$highlights = is_array($state['highlights'] ?? null) ? $state['highlights'] : [];
|
|
$items = is_array($state['items'] ?? null) ? $state['items'] : [];
|
|
@endphp
|
|
|
|
<div class="space-y-3 rounded-md border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-800 dark:bg-gray-900">
|
|
@if ($summary)
|
|
<div class="text-sm font-medium text-gray-900 dark:text-gray-100">{{ $summary }}</div>
|
|
@endif
|
|
|
|
@if ($highlights !== [])
|
|
<dl class="grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
|
|
@foreach ($highlights as $highlight)
|
|
@php
|
|
$label = is_string($highlight['label'] ?? null) ? $highlight['label'] : null;
|
|
$value = is_string($highlight['value'] ?? null) ? $highlight['value'] : null;
|
|
@endphp
|
|
|
|
@continue($label === null || $value === null)
|
|
|
|
<div class="rounded-md border border-gray-100 bg-gray-50 px-3 py-2 dark:border-gray-800 dark:bg-gray-950/60">
|
|
<dt class="text-[11px] font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400">{{ $label }}</dt>
|
|
<dd class="mt-1 text-sm text-gray-900 dark:text-gray-100">{{ $value }}</dd>
|
|
</div>
|
|
@endforeach
|
|
</dl>
|
|
@endif
|
|
|
|
@if ($items !== [])
|
|
<div class="space-y-2">
|
|
<div class="text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400">Recent items</div>
|
|
<ul class="space-y-1 text-sm text-gray-700 dark:text-gray-300">
|
|
@foreach ($items as $item)
|
|
@continue(! is_string($item) || trim($item) === '')
|
|
|
|
<li class="rounded-md border border-gray-100 bg-gray-50 px-3 py-2 dark:border-gray-800 dark:bg-gray-950/60">{{ $item }}</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
@endif
|
|
</div> |