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 -

+ +