{tr('ui.title', null, 'Sync')}
{tr('ui.description', null, 'Synchronize your vault across devices.')}
{#if errorMsg}
{errorMsg}
{/if} {#if resultMsg && !errorMsg}
{resultMsg}
{/if} {#if conflictDetails.length > 0 && !errorMsg}
{tr('ui.syncConflicts', null, 'Sync conflicts')}
{#each conflictDetails as detail}
{detail}
{/each}
{/if} {#if settings && settings.lastError && !errorMsg}
{tr('ui.lastSyncError', { error: sanitizeError(settings.lastError) }, 'Last sync error: {error}')}
{/if}
{tr('ui.server', null, 'Server')}
{tr('ui.serverUrl', null, 'Server URL')}
e.target.style.cssText = INPUT_FOCUS_STYLE} on:blur={e => e.target.style.cssText = INPUT_STYLE} bind:value={serverUrl} placeholder="https://example.com" />
{tr('ui.username', null, 'Username')}
e.target.style.cssText = INPUT_FOCUS_STYLE} on:blur={e => e.target.style.cssText = INPUT_STYLE} bind:value={username} />
{tr('ui.password', null, 'Password')}
e.target.style.cssText = INPUT_FOCUS_STYLE} on:blur={e => e.target.style.cssText = INPUT_STYLE} bind:value={password} />
{tr('ui.testConnection', null, 'Test Connection')}
{tr('ui.connect', null, 'Connect')}
{#if connectionResult}
{connectionResult}
{/if}
{tr('ui.behavior', null, 'Sync Behavior')}
{tr('ui.enableAutoSync', null, 'Enable auto-sync')}
{tr('ui.interval', null, 'Sync interval')}
{tr('ui.minutes', null, 'minutes')}
{#if settings && settings.lastSyncAt}
{tr('ui.lastSync', { date: settings.lastSyncAt }, 'Last sync: {date}')}
{/if}
{tr('ui.save', null, 'Save')}
{#if settings && settings.configured}
{tr('ui.syncNow', null, 'Sync Now')}
{tr('ui.resetKey', null, 'Reset Key')}
{tr('ui.disconnect', null, 'Disconnect')}
{/if}