This commit is contained in:
Timothy Jaeryang Baek
2026-07-17 03:40:28 -04:00
parent 88c6b8bc5c
commit af8cc6c91a
6 changed files with 76 additions and 70 deletions
+2 -2
View File
@@ -91,7 +91,7 @@
? ''
: ' text-gray-300 dark:text-gray-600 hover:text-gray-700 dark:hover:text-white'}"
>
<div class=" self-center">{$i18n.t('Leaderboard')}</div>
<div class="self-center">{$i18n.t('Leaderboard')}</div>
{#if formattedLeaderboardCount !== null}
<div class="self-center text-sm opacity-60">
{formattedLeaderboardCount}
@@ -108,7 +108,7 @@
? ''
: ' text-gray-300 dark:text-gray-600 hover:text-gray-700 dark:hover:text-white'}"
>
<div class=" self-center">{$i18n.t('Feedback')}</div>
<div class="self-center">{$i18n.t('Feedback')}</div>
{#if formattedFeedbackCount !== null}
<div class="self-center text-sm opacity-60">
{formattedFeedbackCount}
@@ -217,7 +217,7 @@
<Spinner className="size-5" />
</div>
{:else}
<div class="space-y-1">
<div>
{#if modelIds.length > 0 || total > 0}
<div class="flex h-8 flex-1 items-center w-full gap-2">
<div
@@ -318,7 +318,7 @@
<tr class=" border-b-[1.5px] border-gray-50 dark:border-gray-850/30">
<th
scope="col"
class="px-2.5 py-2 cursor-pointer select-none w-3"
class="px-2.5 py-2 font-normal cursor-pointer select-none w-3"
on:click={() => setSortKey('user')}
>
<div class="flex gap-1.5 items-center justify-end">
@@ -341,7 +341,7 @@
<th
scope="col"
class="px-2.5 py-2 cursor-pointer select-none"
class="px-2.5 py-2 font-normal cursor-pointer select-none"
on:click={() => setSortKey('model_id')}
>
<div class="flex gap-1.5 items-center">
@@ -364,7 +364,7 @@
<th
scope="col"
class="px-2.5 py-2 text-right cursor-pointer select-none w-fit"
class="px-2.5 py-2 font-normal text-right cursor-pointer select-none w-fit"
on:click={() => setSortKey('rating')}
>
<div class="flex gap-1.5 items-center justify-end">
@@ -387,7 +387,7 @@
<th
scope="col"
class="px-2.5 py-2 text-right cursor-pointer select-none w-0"
class="px-2.5 py-2 font-normal text-right cursor-pointer select-none w-0"
on:click={() => setSortKey('updated_at')}
>
<div class="flex gap-1.5 items-center justify-end">
@@ -408,7 +408,11 @@
</div>
</th>
<th scope="col" class="px-2.5 py-2 text-right cursor-pointer select-none w-0"> </th>
<th
scope="col"
class="px-2.5 py-2 font-normal text-right cursor-pointer select-none w-0"
>
</th>
</tr>
</thead>
<tbody class="">
@@ -122,8 +122,8 @@
<ModelModal bind:show={showModal} model={selectedModel} onClose={closeModal} />
<div class="space-y-1">
<div class="pt-0.5 pb-1 sticky top-0 z-10 bg-white dark:bg-gray-900">
<div>
<div class="sticky top-0 z-10 bg-white dark:bg-gray-900">
<div class="flex h-8 flex-1 items-center w-full gap-2">
<div class="flex min-w-0 flex-1 items-center">
<div class="self-center ml-1 mr-3">
@@ -177,7 +177,7 @@
{#each [{ key: 'rating', label: 'RK', class: 'w-3' }, { key: 'name', label: 'Model', class: '' }, { key: 'rating', label: 'Rating', class: 'text-right w-fit' }, { key: 'won', label: 'Won', class: 'text-right w-5' }, { key: 'lost', label: 'Lost', class: 'text-right w-5' }] as col}
<th
scope="col"
class="px-2.5 py-2 cursor-pointer select-none {col.class}"
class="px-2.5 py-2 font-normal cursor-pointer select-none {col.class}"
on:click={() => toggleSort(col.key)}
>
<div
+1 -1
View File
@@ -122,7 +122,7 @@
</a>
</div>
<div class="flex-1 mt-1 lg:mt-0 px-[16px] lg:pr-[16px] lg:pl-0 overflow-y-scroll">
<div class="flex-1 px-3.5 lg:pr-[16px] lg:pl-0 overflow-y-scroll">
{#if selectedTab === 'overview'}
<UserList />
{:else if selectedTab === 'groups'}
+59 -57
View File
@@ -110,66 +110,68 @@
onSubmit={addGroupHandler}
/>
<div class="space-y-1">
<div class="flex h-8 flex-1 items-center w-full gap-2">
<div class="flex min-w-0 flex-1 items-center">
<div class="self-center ml-1 mr-3">
<Search className="size-3.5" />
<div>
<div class="sticky top-0 z-10 bg-white dark:bg-gray-900">
<div class="flex h-8 flex-1 items-center w-full gap-2">
<div class="flex min-w-0 flex-1 items-center">
<div class="self-center ml-1 mr-3">
<Search className="size-3.5" />
</div>
<input
class="w-full text-sm pr-4 py-1 rounded-r-xl outline-hidden bg-transparent"
bind:value={query}
aria-label={$i18n.t('Search Groups')}
placeholder={$i18n.t('Search Groups')}
/>
{#if query}
<div class="self-center pl-1.5 translate-y-[0.5px] rounded-l-xl bg-transparent">
<button
class="p-0.5 rounded-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
}}
>
<XMark className="size-3" strokeWidth="2" />
</button>
</div>
{/if}
</div>
<input
class="w-full text-sm pr-4 py-1 rounded-r-xl outline-hidden bg-transparent"
bind:value={query}
aria-label={$i18n.t('Search Groups')}
placeholder={$i18n.t('Search Groups')}
/>
{#if query}
<div class="self-center pl-1.5 translate-y-[0.5px] rounded-l-xl bg-transparent">
<button
class="p-0.5 rounded-full hover:bg-gray-100 dark:hover:bg-gray-900 transition"
aria-label={$i18n.t('Clear search')}
on:click={() => {
query = '';
}}
<Select
bind:value={sortBy}
items={sortItems}
placeholder={$i18n.t('Sort')}
triggerClass="relative h-8 shrink-0 flex items-center gap-1 px-1.5 py-1.5 bg-transparent rounded-xl text-[13px] font-normal text-gray-700 transition hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-100"
labelClass="inline-flex h-input outline-hidden bg-transparent truncate placeholder-gray-400 focus:outline-hidden"
align="end"
>
<svelte:fragment slot="trigger" let:selectedLabel>
<span
class="inline-flex h-input outline-hidden bg-transparent truncate placeholder-gray-400 focus:outline-hidden"
>
<XMark className="size-3" strokeWidth="2" />
</button>
</div>
{/if}
{selectedLabel}
</span>
<ChevronDown className="size-3.5" strokeWidth="2.5" />
</svelte:fragment>
<svelte:fragment slot="item" let:item let:selected>
{item.label}
<div class="ml-auto {selected ? '' : 'invisible'}">
<Check />
</div>
</svelte:fragment>
</Select>
<button
class="ml-1 shrink-0 rounded-lg bg-gray-50 px-2.5 py-1 text-xs text-gray-900 transition ring-1 ring-gray-200 hover:bg-gray-100 dark:bg-gray-850 dark:text-gray-100 dark:ring-gray-800 dark:hover:bg-gray-800"
on:click={() => {
showAddGroupModal = !showAddGroupModal;
}}
>
{$i18n.t('New Group')}
</button>
</div>
<Select
bind:value={sortBy}
items={sortItems}
placeholder={$i18n.t('Sort')}
triggerClass="relative h-8 shrink-0 flex items-center gap-1 px-1.5 py-1.5 bg-transparent rounded-xl text-[13px] font-normal text-gray-700 transition hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-100"
labelClass="inline-flex h-input outline-hidden bg-transparent truncate placeholder-gray-400 focus:outline-hidden"
align="end"
>
<svelte:fragment slot="trigger" let:selectedLabel>
<span
class="inline-flex h-input outline-hidden bg-transparent truncate placeholder-gray-400 focus:outline-hidden"
>
{selectedLabel}
</span>
<ChevronDown className="size-3.5" strokeWidth="2.5" />
</svelte:fragment>
<svelte:fragment slot="item" let:item let:selected>
{item.label}
<div class="ml-auto {selected ? '' : 'invisible'}">
<Check />
</div>
</svelte:fragment>
</Select>
<button
class="ml-1 shrink-0 rounded-lg bg-gray-50 px-2.5 py-1 text-xs text-gray-900 transition ring-1 ring-gray-200 hover:bg-gray-100 dark:bg-gray-850 dark:text-gray-100 dark:ring-gray-800 dark:hover:bg-gray-800"
on:click={() => {
showAddGroupModal = !showAddGroupModal;
}}
>
{$i18n.t('New Group')}
</button>
</div>
{#if filteredGroups.length !== 0}
@@ -176,7 +176,7 @@
<Spinner className="size-5" />
</div>
{:else}
<div class="pt-0.5 sticky top-0 z-10 bg-white dark:bg-gray-900">
<div class="sticky top-0 z-10 bg-white dark:bg-gray-900">
<div class="flex h-8 flex-1 items-center w-full gap-2">
<div class="flex min-w-0 flex-1 items-center">
<div class="self-center ml-1 mr-3">