{#if !loaded} {:else if error}

{error}

{:else if status && heroSummary}
{t('dashboard.title')} · {heroSummary.allOk ? t('dashboard.live') : t('dashboard.attention')}

{t('dashboard.heroPrefix')} {t('dashboard.heroEmphasis')}
{t('dashboard.heroSuffix')}

{t('dashboard.heroSummary') .replace('{providers}', String(heroSummary.providers)) .replace('{armed}', String(heroSummary.armed)) .replace('{total}', String(heroSummary.total)) .replace('{throughput}', String(heroSummary.throughput)) .replace('{targets}', String(heroSummary.targets))}

{t('dashboard.throughput24h')}
{heroSummary.throughput.toLocaleString()}{t('dashboard.eventsShort')}
{heroSummary.armed}/{heroSummary.total} {t('dashboard.armedShort')} {heroSummary.providers} {t('dashboard.providersShort')} {heroSummary.targets} {t('dashboard.targetsShort')}
{#snippet statCardSnippet(card: {icon: string; label: string; literalLabel?: string; value: number; literalValue?: string; suffix?: string; accent: string}, idx: number)}

{card.literalLabel || t(card.label)}

{#if card.literalValue}{card.literalValue}{:else}{card.value}{/if}{#if card.suffix}{card.suffix}{/if}

{/snippet} {#snippet statCards()}
{#if globalProviderFilter.provider} {@render statCardSnippet({ icon: providerDefaultIcon(globalProviderFilter.provider), label: '', literalLabel: getDescriptor(globalProviderFilter.provider.type)?.defaultName ?? globalProviderFilter.provider.type, value: 0, literalValue: globalProviderFilter.provider.name, accent: STAT_ACCENTS[0], }, 0)} {:else} {@render statCardSnippet({ icon: 'mdiServer', label: 'dashboard.providers', value: filteredProviderCount, accent: STAT_ACCENTS[0], }, 0)} {/if} {@render statCardSnippet({ icon: 'mdiRadar', label: 'dashboard.activeTrackers', value: displayActive, suffix: ` / ${displayTotal}`, accent: STAT_ACCENTS[1], }, 1)} {@render statCardSnippet({ icon: 'mdiTarget', label: 'dashboard.targets', value: displayTargets, accent: STAT_ACCENTS[2], }, 2)} {#if status?.command_trackers !== undefined} {@render statCardSnippet({ icon: 'mdiConsoleLine', label: 'nav.commandTrackers', value: displayCommandTrackers, accent: STAT_ACCENTS[3], }, 3)} {:else} {@render statCardSnippet({ icon: 'mdiPulse', label: 'dashboard.eventsTotal', value: heroSummary?.throughput ?? 0, accent: STAT_ACCENTS[3], }, 3)} {/if}
{/snippet} {@render statCards()}

{t('dashboard.streamTitle')} {t('dashboard.streamEmphasis')}

{status.total_events} {t('dashboard.eventsLabel')}

{#if status.total_events > 0} {/if}
{#if !globalProviderFilter.id}
{/if}
{#snippet paginator()}
{#if totalPages > 1} {#each Array.from({ length: totalPages }, (_, i) => i + 1) as p} {#if p === 1 || p === totalPages || (p >= currentPage - 1 && p <= currentPage + 1)} {:else if p === currentPage - 2 || p === currentPage + 2} {/if} {/each} {/if}
{/snippet} {#if eventsLoading}

{t('dashboard.loadingEvents')}

{:else if status.recent_events.length === 0}

{t('dashboard.noEvents')}

{:else}
{#each status.recent_events as event, i}
{#if event.provider_name}{event.provider_name}{/if} {t(eventLabels[event.event_type] || event.event_type)} {#if event.assets_count > 0} {event.assets_count} {event.assets_count === 1 ? t('dashboard.asset') : t('dashboard.assets')} {/if} {#if event.collection_name} · «{event.collection_name}» {/if}
{#if event.tracker_name}
{event.tracker_name} {#if event.provider_name} {event.provider_name} {/if}
{/if}
{timeShort(event.created_at)} {timeAgo(event.created_at)}
{/each}
{@render paginator()}
{/if}
{#if !globalProviderFilter.id}

{t('dashboard.onWatchTitle')} {t('dashboard.onWatchEmphasis')}

{providerDeck.length} {t('dashboard.providersShort')}

{#if providerDeck.length === 0}

{t('dashboard.noProviders')}

{t('dashboard.addProvider')} →
{:else} {/if}
{/if}

{t('dashboard.pulseTitle')} {t('dashboard.pulseEmphasis')}

{t('dashboard.pulseSub')}

{#if chartVisible}
{/if}
{#if activeWires.length > 0}

{t('dashboard.wiresTitle')} {t('dashboard.wiresEmphasis')}

{activeWires.length} {t('dashboard.wiresSub')}

{#each activeWires as wire}
{wire.trackerName}
{wire.providerName}
{wire.events > 0 ? wire.events : '—'}
{wire.targetName}
{wire.targetType}
{/each}
{/if}

{t('dashboard.composeTitle')} {t('dashboard.composeEmphasis')}

{t('dashboard.composeSub')}

{/if} confirmClearEvents = false} />