From 01f6e423464d5b20ffd85aa6cd4b096c99304fe7 Mon Sep 17 00:00:00 2001 From: jake Date: Sat, 21 Mar 2026 11:04:06 +0000 Subject: [PATCH] =?UTF-8?q?agent:=20settings=20=E2=80=94=20restyle=20with?= =?UTF-8?q?=20zone=20picker=20and=20accessibility=20controls?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- src/lib/pages/SettingsPage.svelte | 52 ++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/lib/pages/SettingsPage.svelte b/src/lib/pages/SettingsPage.svelte index 7e3b91b..02ba6d0 100644 --- a/src/lib/pages/SettingsPage.svelte +++ b/src/lib/pages/SettingsPage.svelte @@ -7,8 +7,14 @@ import Toggle from "$lib/components/Toggle.svelte"; import SegmentedButton from "$lib/components/SegmentedButton.svelte"; import HotkeyRecorder from "$lib/components/HotkeyRecorder.svelte"; + import ZonePicker from "$lib/components/ZonePicker.svelte"; + import AccessibilityControls from "$lib/components/AccessibilityControls.svelte"; + import { getPreferences, updatePreferences } from "$lib/stores/preferences.svelte.js"; + import { Check, ChevronRight } from "lucide-svelte"; import { open } from "@tauri-apps/plugin-dialog"; + const prefs = getPreferences(); + let engineStatus = $state("Checking..."); let engineOk = $state(false); let downloadedModels = $state([]); @@ -93,6 +99,15 @@ saveSettings(); }); + // Sync theme setting to preferences store + $effect(() => { + const map = { Dark: 'dark', Light: 'light', System: 'system' }; + const mapped = map[settings.theme] || 'dark'; + if (prefs.theme !== mapped) { + updatePreferences({ theme: mapped }); + } + }); + async function downloadModel(size) { downloadingModel = size; downloadProgress = 0; @@ -349,9 +364,7 @@ title={settings.britishEnglish ? "British English spelling active" : "Click to enable British English spelling"} > {#if settings.britishEnglish} - - - + {/if} British English @@ -425,9 +438,7 @@ class="flex items-center gap-2 w-full text-left mb-1" onclick={() => showProfiles = !showProfiles} > - - - +

Profiles

{profiles.length} @@ -495,9 +506,7 @@ class="flex items-center gap-2 w-full text-left mb-1" onclick={() => showTemplates = !showTemplates} > - - - +

Templates

{templates.length} @@ -645,6 +654,11 @@ +
+

Zone

+ +
+

Font Size {settings.fontSize}px @@ -660,6 +674,22 @@ {/if}

+ +
+ + {#if openSection === 'accessibility'} +
+ +
+ {/if} +
+
{/each}