1.0.4 - tweaks to sidebar & ThemeSelector fixes

This commit is contained in:
ponzischeme89
2026-01-18 03:06:52 +13:00
parent 68bf4b4804
commit 56f87327b1
5 changed files with 458 additions and 523 deletions
+3 -14
View File
@@ -156,25 +156,14 @@
class={`flex items-center rounded-md bg-white/5 px-3 py-2 text-xs ${collapsed ? "justify-center" : "justify-between"}`}
>
{#if !collapsed}
<span class="text-text-tertiary">Version</span>
<Badge className="bg-white/10 text-text-secondary"
>v1.0.2 Release Candiate</Badge
>v1.0.4 Release Candiate</Badge
>
{:else}
<Badge className="bg-white/10 text-text-secondary">v</Badge>
{/if}
</div>
<a
href="https://github.com/ponzischeme89/Sublogue/releases"
target="_blank"
rel="noopener noreferrer"
class={`inline-flex items-center rounded-md bg-white/5 px-3 py-2 text-xs text-text-tertiary hover:text-white hover:bg-[color:var(--bg-hover)] transition-colors ${collapsed ? "justify-center" : "gap-2"}`}
>
<Download class="h-4 w-4" />
{#if !collapsed}
Check updates
{/if}
</a>
<a
href="https://github.com/ponzischeme89/Sublogue"
target="_blank"
@@ -183,7 +172,7 @@
>
<Github class="h-4 w-4" />
{#if !collapsed}
GitHub
Star on GitHub
{/if}
</a>
</div>
-3
View File
@@ -60,9 +60,6 @@
>
<!-- Left -->
<div class="flex items-center gap-3 text-[11px]">
<span class="font-medium text-text-primary tracking-tight">
Sublogue Version: v1.0.3 Release Candiate
</span>
<span class="hidden sm:inline opacity-30"></span>
<span class="text-text-secondary"> Open source (AGPL-3.0) </span>
<span class="hidden sm:inline opacity-30"></span>
@@ -20,6 +20,8 @@
value={$currentTheme}
placeholder="Appearance"
className={className}
dropup={true}
searchable={false}
on:change={handleThemeChange}
>
<svelte:fragment slot="icon">
@@ -11,6 +11,8 @@
export let placeholder = 'Select...'
export let disabled = false
export let className = ''
export let searchable = true
export let dropup = false
let open = false
let search = ''
@@ -22,10 +24,12 @@
items.find((item) => item.value === itemValue)?.label
$: selectedLabel = getLabel(value)
$: filteredItems = items.filter((item) => {
const haystack = `${item.label} ${item.description || ''}`.toLowerCase()
return haystack.includes(search.toLowerCase())
})
$: filteredItems = searchable
? items.filter((item) => {
const haystack = `${item.label} ${item.description || ''}`.toLowerCase()
return haystack.includes(search.toLowerCase())
})
: items
function toggle() {
if (!disabled) open = !open
@@ -105,16 +109,20 @@
{#if open}
<div
class="absolute top-full mt-2 left-0 min-w-[220px] w-[92%] rounded-lg border border-border bg-card shadow-2xl overflow-hidden z-50"
class="absolute left-0 min-w-[220px] w-[92%] rounded-lg border border-border bg-card shadow-2xl overflow-hidden z-50 {dropup
? 'bottom-full mb-2'
: 'top-full mt-2'}"
>
<div class="p-2 border-b border-border bg-muted/40">
<Input
value={search}
on:input={(e) => (search = e.target.value)}
placeholder="Search..."
className="h-9 text-[12px]"
/>
</div>
{#if searchable}
<div class="p-2 border-b border-border bg-muted/40">
<Input
value={search}
on:input={(e) => (search = e.target.value)}
placeholder="Search..."
className="h-9 text-[12px]"
/>
</div>
{/if}
<div class="max-h-56 overflow-y-auto py-1">
{#if filteredItems.length === 0}
<div class="px-4 py-3 text-xs text-text-tertiary">