{$t.nav?.dashboards}

{#if error}
{error}
{/if} {#if isLoading}
{#each Array(5) as _}
{/each}
{:else if dashboards.length === 0}

{$t.dashboard?.empty}

{:else}
{#if selectedIds.size > 0} {($t.dashboard?.selected_count).replace( "{count}", String(selectedIds.size), )} {/if}
{#if openFilterColumn === "title"}
updateColumnFilterSearch("title", event.target.value)} />
{#each getVisibleFilterOptions("title") as value} {/each}
{/if}
{#if openFilterColumn === "git_status"}
updateColumnFilterSearch("git_status", event.target.value)} />
{#each getVisibleFilterOptions("git_status") as value} {/each}
{/if}
{#if openFilterColumn === "llm_status"}
updateColumnFilterSearch("llm_status", event.target.value)} />
{#each getVisibleFilterOptions("llm_status") as value} {/each}
{/if}
{#if openFilterColumn === "changed_on"}
updateColumnFilterSearch("changed_on", event.target.value)} />
{#each getVisibleFilterOptions("changed_on") as value} {/each}
{/if}
{#if openFilterColumn === "actor"}
updateColumnFilterSearch("actor", event.target.value)} />
{#each getVisibleFilterOptions("actor") as value} {/each}
{/if}
{$t.dashboard?.actions}
{#each dashboards as dashboard}
handleCheckboxChange(dashboard, e)} />
{dashboard.git?.hasRepo ? $t.dashboard?.status_repo || "Repo" : $t.dashboard?.status_no_repo || "No Repo"} {#if dashboard.git?.hasRepo} {dashboard.git?.hasChangesForCommit ? $t.dashboard?.status_changes || "Diff" : $t.dashboard?.status_no_changes || "Synced"} {/if}
{#if dashboard.lastTask}
handleTaskStatusClick(dashboard)} on:keydown={(e) => (e.key === "Enter" || e.key === " ") && handleTaskStatusClick(dashboard)} role="button" tabindex="0" aria-label={$t.dashboard?.view_task} > {getValidationLabel(dashboard.lastTask.validationStatus)}
{:else} - {/if}
{dashboard.changedOnLabel}
{$t.dashboard?.owners || "Owners"}
{#if dashboard.owners?.length > 0}
{#each dashboard.owners as owner (owner)} {owner} {/each}
{:else}
-
{/if}
{#if !dashboard.git?.hasRepo} {:else} {/if}
{/each}
{#if totalPages > 1}
{($t.dashboard?.showing) .replace("{start}", String((currentPage - 1) * pageSize + 1)) .replace("{end}", String(Math.min(currentPage * pageSize, total))) .replace("{total}", String(total))}
{#each getPaginationRange(currentPage, totalPages) as pageNum} {#if pageNum === "..."} ... {:else} {/if} {/each}
{/if}
{#if selectedIds.size > 0}
✓ {($t.dashboard?.selected_count).replace( "{count}", String(selectedIds.size), )}
{/if} {/if} {#if showMigrateModal}
(showMigrateModal = false)} on:keydown={(e) => e.key === "Escape" && (showMigrateModal = false)} role="presentation" >
{/if} {#if showBackupModal}
(showBackupModal = false)} on:keydown={(e) => e.key === "Escape" && (showBackupModal = false)} role="presentation" >
{/if}