{#if renaming}
{ if (e.key === "Enter") handleRename(); if (e.key === "Escape") { renaming = false; } }} onblur={handleRename} autofocus /> {:else}
{ws?.name}
{/if}
showKebab = !showKebab} class="rounded-lg p-1.5 hover:bg-black/5 dark:hover:bg-white/10" >
{#if showKebab}
Rename
{ showKebab = false; ondelete?.(workspaceId); }} class="flex w-full items-center gap-2 px-4 py-2 text-sm text-danger hover:bg-black/5 dark:hover:bg-white/10" >
Delete
{/if}
{#if isWebdav}
WebDAV Sync
Server URL
Username
Password
{testStatus === "testing" ? "Testing..." : testStatus === "ok" ? "Connected" : testStatus === "fail" ? "Failed -- Retry" : "Test Connection"}
Save
Sync interval (focused)
{ const val = parseInt((e.target as HTMLSelectElement).value); app.setSyncInterval(val === 60 ? null : val); }} class="w-full appearance-none rounded-lg border border-border-light bg-surface-light px-3 py-2 text-sm text-text-light outline-none focus:border-primary dark:border-border-dark dark:bg-surface-dark dark:text-text-dark" >
30 seconds
1 minute
2 minutes
5 minutes
10 minutes
Sync interval (background)
{ const val = parseInt((e.target as HTMLSelectElement).value); app.setSyncIntervalUnfocused(val === 600 ? null : val); }} class="w-full appearance-none rounded-lg border border-border-light bg-surface-light px-3 py-2 text-sm text-text-light outline-none focus:border-primary dark:border-border-dark dark:bg-surface-dark dark:text-text-dark" >
1 minute
2 minutes
5 minutes
10 minutes
30 minutes
{/if}
Theme
{ const val = (e.target as HTMLSelectElement).value; app.setTheme(val || null); }} class="w-full appearance-none rounded-lg border border-border-light bg-surface-light px-3 py-2 text-sm text-text-light outline-none focus:border-primary dark:border-border-dark dark:bg-surface-dark dark:text-text-dark" >
System default
Light
Dark
Nord
Dracula
Solarized Dark
Tauri v2 + Svelte
{#if confirmRename}
confirmRename = false} /> {/if}