From 213eabd8c14072cf97381a949ec1c79fe0f6dd1f Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 26 May 2026 22:14:52 -0400 Subject: [PATCH] feat(launcher): migrate cfg menu to 7-tab sidebar layout (v3.1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the 3-tab horizontal bar (Setup / Device / Dev) with a vertical sidebar navigation matching the v3.1 design spec. New tab structure: General — App Modes, Screen Saver (operator-facing) Connectivity — Remote Controller & WebSocket Sync & Health — Sync Timers, System Health Native OS — OS controls (native or edit_mode preview) Wallpaper — Desktop wallpaper settings Advanced — Launch Timing, Updates (edit_mode only) Maintenance — Local Resets, Debug Panel (edit_mode only) Layout changes: - Sidebar nav (w-48) + scrollable main content area replace inline tab bar - Tab header shows label + description subtitle - Technical Mode toggle is now a labeled button (not hidden icon) - Footer shows Account/Device context; Reload moved to header - {#key active_tab} wrapper ensures clean component remount on tab switch - Remove unused icons (SlidersHorizontal, HeartPulse, Timer, CloudDownload) Co-Authored-By: Claude Sonnet 4.6 --- .../[event_id]/(launcher)/launcher_cfg.svelte | 396 +++++++++++------- 1 file changed, 238 insertions(+), 158 deletions(-) diff --git a/src/routes/events/[event_id]/(launcher)/launcher_cfg.svelte b/src/routes/events/[event_id]/(launcher)/launcher_cfg.svelte index bbc6f87e..c32ecf6f 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_cfg.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_cfg.svelte @@ -37,19 +37,74 @@ import Launcher_Cfg_Wallpaper from './cfg_components/launcher_cfg_wallpaper.svel import { Bug, Code, + Gamepad2, + Image, + LayoutGrid, Monitor, Pencil, RefreshCw, Settings, - SlidersHorizontal, + Wrench, X } from '@lucide/svelte'; + // UI Tab State -// Tabs are audience-oriented: -// setup — what every onsite operator needs (mode preset, display, WS, screen saver) -// device — sync engine (all devices) + native/Electron OS controls (native or edit_mode) -// dev — developer/debug tools; only useful when edit_mode is on -let active_tab: 'setup' | 'device' | 'dev' = $state('setup'); +type TabId = + | 'general' + | 'connectivity' + | 'sync' + | 'native' + | 'wallpaper' + | 'advanced' + | 'maintenance'; +let active_tab: TabId = $state('general'); + +const TABS = [ + { + id: 'general' as TabId, + label: 'General', + icon: LayoutGrid, + title: 'App Modes, UI & Screen Saver' + }, + { + id: 'connectivity' as TabId, + label: 'Connectivity', + icon: Gamepad2, + title: 'Remote Controller & WebSocket' + }, + { + id: 'sync' as TabId, + label: 'Sync & Health', + icon: RefreshCw, + title: 'Sync Engine & System Status' + }, + { + id: 'native' as TabId, + label: 'Native OS', + icon: Monitor, + title: 'Folders, Displays & Native Apps' + }, + { + id: 'wallpaper' as TabId, + label: 'Wallpaper', + icon: Image, + title: 'Desktop Wallpaper Settings' + }, + { + id: 'advanced' as TabId, + label: 'Advanced', + icon: Code, + title: 'Launch Timing & Updates', + edit_only: true + }, + { + id: 'maintenance' as TabId, + label: 'Maintenance', + icon: Wrench, + title: 'Local Resets & Debug Tools', + edit_only: true + } +]; /** * Auto-Collapse Coordinator @@ -70,185 +125,210 @@ function handle_section_expand(current_key: string) { }); $events_loc.launcher = launcher; // Trigger store update } + +const current_tab_info = $derived(TABS.find((t) => t.id === active_tab));
+ class="bg-surface-100-900 flex h-full min-h-[500px] w-full flex-row overflow-hidden"> +
-

- - Launcher Configuration -

+ class="bg-surface-500/5 flex w-48 flex-shrink-0 flex-col border-r border-surface-500/20 p-2"> +
+ + Launcher +
-
- + + +
- - -
- - - {#if $ae_loc.edit_mode} - - {/if} -
- - -
- - {#if active_tab === 'setup'} -
- - handle_section_expand('app_modes')} /> - handle_section_expand('controller')} /> - handle_section_expand('screen_saver')} /> + +
+ +
+
+

+ {current_tab_info?.label} +

+

{current_tab_info?.title}

- {/if} - - {#if active_tab === 'device'} -
- - handle_section_expand('sync_timers')} /> +
+ +
+
- - {#if $ae_loc.is_native || $ae_loc.edit_mode} - handle_section_expand('health')} /> - handle_section_expand('native_os')} /> - handle_section_expand('wallpaper')} /> - handle_section_expand('launch_timing')} /> - {#if $ae_loc.is_native} - - handle_section_expand('updates')} /> +
+ {#key active_tab} +
+ {#if active_tab === 'general'} +
+ + handle_section_expand('app_modes')} /> + + handle_section_expand('screen_saver')} /> +
{/if} - {:else} -
- -

Native OS controls available in Aether Desktop.

-

Enable Edit Mode to preview.

-
- {/if} -
- {/if} - - {#if active_tab === 'dev' && $ae_loc.edit_mode} -
- handle_section_expand('local_actions')} /> -
- {/if} -
+ {#if active_tab === 'connectivity'} +
+ + handle_section_expand('controller')} /> +
+ {/if} - -
-
- - + {#if active_tab === 'sync'} +
+ + handle_section_expand('sync_timers')} /> + + handle_section_expand('health')} /> +
+ {/if} - + {#if active_tab === 'native'} +
+ {#if $ae_loc.is_native || $ae_loc.edit_mode} + + handle_section_expand('native_os')} /> + {:else} +
+ +
+

+ Native OS controls are only + available when running in Aether + Desktop. +

+

+ Enable Technical Mode to preview + layout. +

+
+
+ {/if} +
+ {/if} + + {#if active_tab === 'wallpaper'} +
+ + handle_section_expand('wallpaper')} /> +
+ {/if} + + {#if active_tab === 'advanced' && $ae_loc.edit_mode} +
+ + handle_section_expand('launch_timing')} /> + {#if $ae_loc.is_native || $ae_loc.edit_mode} + + handle_section_expand('updates')} /> + {/if} +
+ {/if} + + {#if active_tab === 'maintenance' && $ae_loc.edit_mode} +
+ + handle_section_expand('local_actions')} /> + +
+

+ Debug Access +

+ +
+
+ {/if} +
+ {/key}
- {#if $ae_loc.edit_mode} - - {/if} - -

- Aether Platform • Events Launcher v3.0 -

+ +