{#if availableLangs.length > 1}
{#each availableLangs as lang}
{/each}
{/if}
{#if panel === "apk"}
installError = null}
onkeydown={(e) => e.key === "Enter" && !installing && installExternal()} use:focusOnMount />
{#if installError}
{installError}
{/if}
{/if}
{#if panel === "repos"}
{#if reposLoading}
{:else}
{#if repos.length === 0}
No repos configured.
{:else}
{#each repos as url}
{url}
{/each}
{/if}
repoError = null}
onkeydown={(e) => e.key === "Enter" && !savingRepos && addRepo()} />
{#if repoError}
{repoError}
{/if}
{/if}
{/if}
{#if loading}
{:else if groups.length === 0}
No extensions found.
{:else}
{#each groups as { base, primary, variants }}
{@const isExpanded = expanded.has(base)}
{@const hasVariants = variants.length > 0}
(e.target as HTMLImageElement).style.display = "none"} />
{base}
{primary.lang.toUpperCase()} v{primary.versionName}
{#if working.has(primary.pkgName)}
{:else if primary.hasUpdate}
{:else if primary.isInstalled}
{:else}
{/if}
{#if hasVariants}
{/if}
{#if isExpanded && hasVariants}
{#each variants as v}
{v.lang.toUpperCase()}
{v.name}
v{v.versionName}
{#if v.hasUpdate}
↑{/if}
{#if working.has(v.pkgName)}
{:else if v.hasUpdate}
{:else if v.isInstalled}
{:else}
{/if}
{/each}
{/if}
{/each}
{/if}