Skip to main content

Infrastructure

Forge Certificate Status Card code

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

resources/views/components/ui/forge-certificate-status-card.blade.php

@props([
    'domain',
    'type' => 'Let\'s Encrypt',
    'status' => 'Valid',
    'statusVariant' => 'green',
    'expiresAt' => null,
    'issuer' => null,
    'verification' => null,
    'autoRenews' => true,
    'wildcard' => false,
])

@php
    /*
    | Certificate status card for Let's Encrypt, custom, CSR and cloned certs.
    | Keeps expiry, issuer, verification and renewal state visible together.
    |
    | Usage:
    |   <x-ui.forge-certificate-status-card domain="example.com" expires-at="Aug 21, 2026" />
    */
@endphp

<article {{ $attributes->merge(['class' => 'min-w-0 rounded-xl border border-gray-200 bg-white p-5 shadow-sm dark:border-gray-800 dark:bg-gray-900']) }}>
    <div class="flex min-w-0 flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4">
        <div class="min-w-0">
            <p class="truncate text-base font-semibold text-gray-900 dark:text-white">{{ $domain }}</p>
            <p class="mt-1 truncate text-xs text-gray-500 dark:text-gray-400">{{ $type }}</p>
        </div>

        <x-ui.badge :variant="$statusVariant" size="sm" dot class="w-fit sm:shrink-0">{{ $status }}</x-ui.badge>
    </div>

    <dl class="mt-5 grid gap-3 text-sm sm:grid-cols-2">
        @foreach ([
            'Expires' => $expiresAt,
            'Issuer' => $issuer,
            'Verification' => $verification,
            'Renewal' => $autoRenews ? 'Automatic' : 'Manual',
        ] as $label => $item)
            @if ($item)
                <div class="min-w-0 rounded-lg bg-gray-50 p-3 dark:bg-gray-950/40">
                    <dt class="text-xs text-gray-500 dark:text-gray-400">{{ $label }}</dt>
                    <dd class="mt-1 truncate font-medium text-gray-900 dark:text-white">{{ $item }}</dd>
                </div>
            @endif
        @endforeach
    </dl>

    <div class="mt-4 flex flex-wrap gap-2">
        @if ($wildcard)
            <x-ui.badge variant="blue" size="sm">Wildcard</x-ui.badge>
        @endif
        @if (! $autoRenews)
            <x-ui.badge variant="amber" size="sm">Manual renewal</x-ui.badge>
        @endif
    </div>

    @isset($actions)
        <div class="mt-5 flex flex-wrap gap-2 border-t border-gray-100 pt-4 dark:border-gray-800">
            {{ $actions }}
        </div>
    @endisset
</article>