{#snippet actions()} {/snippet} {#if loading} {:else if accessDenied} {:else} {#if inviteAcceptLink}
{/if} {#if !staffRoleApiOk} {/if}
{ if (e.key === "Enter") void applySearch(); }} />
{#if tab === "users"} {:else} {/if}
onTabChange(v)} class="mb-8 w-full" > {i18n.t("admin.users.tabUsers")} {i18n.t("admin.users.tabCompanies")} Users ({formatCredits(usersTotal)}) Assign platform staff roles (Admin, Developer, or Support staff). {#if users.length === 0} {:else} {i18n.t("admin.users.colName")} {i18n.t("admin.users.colActions")} {#each users as user} {@const role = user.staff_role || user.resolved_role}

{user.name || "—"}

{user.email}

{displayRole(user)} {#if user.must_set_password} {i18n.t("admin.users.mustSetPassword")} {/if} {#if user.is_active === false} {i18n.t("admin.users.inactive")} {/if}
{#if user.must_set_password} {/if} {#if userOps} {/if}
{/each}
Page {usersPage} of {usersPages} · {formatCredits(usersTotal)} total
{/if}
Companies ({formatCredits(companiesTotal)})
View active plan (public / legacy / custom) and assign a plan. Credits from company balance.
{#if companies.length === 0} {:else} {i18n.t("admin.users.colCompany")} {i18n.t("admin.users.colPlan")} {i18n.t("admin.users.colActions")} {#each companies as company} {@const planBadge = companyPlanBadge(company)} {@const total = Number(company.total_credits ?? 0)} {@const used = Number(company.used_credits ?? 0)} {@const remaining = Math.max(total - used, 0)}

{company.name}

{company.id}

{formatCredits(remaining)} / {formatCredits(total)} credits

{planBadge.label} {#if company.has_api_key === false} {i18n.t("admin.users.needsApiKeyReissue")} {/if}
{/each}
Page {companiesPage} of {companiesPages} · {formatCredits(companiesTotal)} total
{/if}
{/if}
{#if error} {/if} {#if passwordUser}

{passwordUser.name || "—"} · {passwordUser.email}

{/if}
{#if error} {/if} {#if roleUser}

{roleUser.name || "—"} · {roleUser.email}

{/if}

You cannot change your own staff role. Clearing a role removes platform admin access.

{#if error} {/if} {#if assignCompany}

{assignCompany.name}

{/if}
{#if error} {/if} {#if cloneCompany}

{i18n.t("admin.users.cloneCatalogFrom", { name: cloneCompany.name })}

{/if}

{i18n.t("admin.users.cloneCatalogWarning")}

{#if error} {/if} {#if syncCompany}

{i18n.t("admin.users.syncA1Company", { name: syncCompany.name })}

{/if}

{i18n.t("admin.users.syncA1Warning")}