@props(['value', 'judged' => true])
@php
// $judged: does "up" mean good here? Sales/Profit are judged (growth is good);
// Purchases is not (more spend isn't inherently good or bad), so it stays neutral gray.
$isUp = is_numeric($value) && $value > 0;
$isDown = is_numeric($value) && $value < 0;
$toneClasses = match (true) {
$value === null => 'text-gray-400 dark:text-gray-500',
$value === 'new' => 'text-indigo-600 dark:text-indigo-400 bg-indigo-50 dark:bg-indigo-500/10',
! $judged => 'text-gray-600 dark:text-gray-300 bg-gray-100 dark:bg-gray-700/50',
$isUp => 'text-green-700 dark:text-green-400 bg-green-50 dark:bg-green-500/10',
$isDown => 'text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-500/10',
default => 'text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-700/50',
};
@endphp
@if ($value === null)
vs previous period: n/a
@elseif ($value === 'new')
New activity
@else
@if ($isUp)
@elseif ($isDown)
@endif
{{ $value > 0 ? '+' : '' }}{{ $value }}% vs previous period
@endif