Skip to main content

AI & workflows

Ai Loop Status Badge code

Copy the implementation or inspect every file that belongs to this component unit.

resources/views/components/ui/ai-loop-status-badge.blade.php

@props([
    'status' => 'idle',
    'size' => 'sm',
    'count' => null,
    'summary' => false,
])

@php
    /*
    | Status pill for agent loops and iteration timelines.
    |
    | Variants are chosen so adjacent states read clearly: blue = active,
    | amber = waiting, green = finished, red = failed, gray = idle.
    |
    | Usage:
    |   <x-ui.ai-loop-status-badge status="running" />
    |   <x-ui.ai-loop-status-badge status="completed" :count="2" summary />
    */
    $statuses = [
        'idle' => ['label' => 'Idle', 'summary' => 'Idle', 'plural' => 'idle', 'variant' => 'gray'],
        'pending' => ['label' => 'Pending', 'summary' => 'Pending', 'plural' => 'pending', 'variant' => 'gray'],
        'running' => ['label' => 'Running', 'summary' => 'Running', 'plural' => 'running', 'variant' => 'blue'],
        'paused' => ['label' => 'Paused', 'summary' => 'Paused', 'plural' => 'paused', 'variant' => 'amber'],
        'partial' => ['label' => 'Partial', 'summary' => 'Partial', 'plural' => 'partial', 'variant' => 'brand'],
        'completed' => ['label' => 'Completed', 'summary' => 'Done', 'plural' => 'done', 'variant' => 'green'],
        'complete' => ['label' => 'Complete', 'summary' => 'Done', 'plural' => 'done', 'variant' => 'green'],
        'failed' => ['label' => 'Failed', 'summary' => 'Failed', 'plural' => 'failed', 'variant' => 'red'],
    ];

    $config = $statuses[$status] ?? $statuses['idle'];

    $label = match (true) {
        $count !== null && $count > 1 => $count.' '.$config['plural'],
        $summary => $config['summary'],
        default => $config['label'],
    };
@endphp

<x-ui.badge :variant="$config['variant']" :size="$size" {{ $attributes }}>
    {{ $label }}
</x-ui.badge>