From b6235577951830d558e8573e1053d21ac2f88824 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Sat, 6 Jun 2026 20:19:22 -0400 Subject: [PATCH] feat(layout): collapsible offline/API-error banner with improved messages Replace the static full-width offline banner with a two-state toggle: expanded banner (default) with a collapse button, and a small chip in the top-right corner when collapsed. Adds a subtitle line explaining what still works offline vs. what requires network. Changes "No API" chip label to "API Error" and "Offline" title to "Device Offline". Co-Authored-By: Claude Sonnet 4.6 --- src/routes/+layout.svelte | 47 ++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b31861d3..b0249f26 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -12,6 +12,8 @@ import '../app.css'; // *** Import other supporting libraries import { RefreshCw, + WifiOff, + ChevronDown, } from '@lucide/svelte'; // Highlight JS @@ -408,16 +410,45 @@ $effect(() => { {#if browser && (is_offline || api_unreachable)} -
- {is_offline ? 'Offline' : api_error_msg} - -
+ + + {:else} + + + {/if} {/if} {#if browser && flag_expired}