v0.2 Phase 7.7: SettingsPage — wrapper sweep via import-only swap

SettingsPage is 2 791 LOC with ~95 form controls. The plan called for
section-by-section migration with selective Formsnap; the wrapper
aliases land Phase 4 made that unnecessary on the per-section level.

Because LumotiaCard / LumotiaToggle / LumotiaSettingsGroup /
LumotiaStatusPill keep the exact prop API of the underlying components,
all that's needed to migrate every existing markup site is repointing
the four local import names:

  Card           → $lib/ui/LumotiaCard.svelte
  Toggle         → $lib/ui/LumotiaToggle.svelte
  SettingsGroup  → $lib/ui/LumotiaSettingsGroup.svelte
  StatusPill     → $lib/ui/LumotiaStatusPill.svelte

The 90+ <Card>, <Toggle>, <SettingsGroup>, <StatusPill> usages compile
unchanged because the local symbols still resolve to compatible
components. Existing IA is preserved verbatim — section ordering,
SegmentedButton bindings, HotkeyRecorder, ZonePicker, ModelDownloader,
and the Phase 3 KI-05 theme bindings all stay in place.

Formsnap is intentionally NOT pulled into SettingsPage in v0.2. The
form here is a wide tree of independent settings; Superforms +
Formsnap would force a heavyweight schema layer for no observable
validation win.

Per-page gate: npm run check (0/0/5704 files).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-15 09:01:09 +01:00
parent 4fa8df638b
commit b5f622f128

View File

@@ -4,13 +4,13 @@
import { invoke } from "@tauri-apps/api/core";
import { listen } from "@tauri-apps/api/event";
import { settings, saveSettings, profiles, saveProfiles, templates, saveTemplates, page, addProfileTaskList, removeProfileTaskList } from "$lib/stores/page.svelte.js";
import Card from "$lib/components/Card.svelte";
import Toggle from "$lib/components/Toggle.svelte";
import Card from "$lib/ui/LumotiaCard.svelte";
import Toggle from "$lib/ui/LumotiaToggle.svelte";
import SegmentedButton from "$lib/components/SegmentedButton.svelte";
import HotkeyRecorder from "$lib/components/HotkeyRecorder.svelte";
import ImplementationRulesEditor from "$lib/components/ImplementationRulesEditor.svelte";
import SettingsGroup from "$lib/components/SettingsGroup.svelte";
import StatusPill from "$lib/components/StatusPill.svelte";
import SettingsGroup from "$lib/ui/LumotiaSettingsGroup.svelte";
import StatusPill from "$lib/ui/LumotiaStatusPill.svelte";
import ZonePicker from "$lib/components/ZonePicker.svelte";
import AccessibilityControls from "$lib/components/AccessibilityControls.svelte";
import { getPreferences, updatePreferences } from "$lib/stores/preferences.svelte.js";