From 8ed766bbca52c3ffed34778cfa59ecc0fa00b286 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 13 Mar 2026 15:45:35 -0400 Subject: [PATCH] fix(sys-bar): fix hover bounce, horizontal overflow, add collapsible sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hover info strip is now absolute-positioned above the bar (opacity fade with delay-500) so it never shifts the bar layout — fixes the bounce - Panel widened to w-80 with overflow-x-hidden — fixes horizontal scroll caused by sub-components hardcoding w-72 inside the padded panel - All panel sections are now collapsible (Access open by default, others closed) — reduces vertical crowding; matches launcher_cfg pattern - Section headers show current state inline (access level, theme name/mode) - Admin section groups cfg + debug trigger together cleanly - Bar transitions use duration-200 for snappier feel without bounce Co-Authored-By: Claude Sonnet 4.6 --- src/lib/app_components/e_app_sys_bar.svelte | 441 ++++++++++++-------- 1 file changed, 260 insertions(+), 181 deletions(-) diff --git a/src/lib/app_components/e_app_sys_bar.svelte b/src/lib/app_components/e_app_sys_bar.svelte index 26ed916a..6bbad4a4 100644 --- a/src/lib/app_components/e_app_sys_bar.svelte +++ b/src/lib/app_components/e_app_sys_bar.svelte @@ -130,6 +130,13 @@ } } + // ── Panel section collapse state ───────────────────────────────────────── + // Open/closed per section — access open by default (most common action). + let sec_access = $state(true); + let sec_signin = $state(false); + let sec_appearance = $state(false); + let sec_admin = $state(false); + // ── Derived display helpers ────────────────────────────────────────────── let font_label = $derived.by(() => { if ($ae_loc.font_size_mode === 'larger') return 'A+'; @@ -159,8 +166,8 @@
- -
- -
+ +
+
{#if $ae_loc?.person_id} - {person_display ?? '—'} + {person_display ?? '—'} {/if} {#if access_label} - + · {access_label} {/if} + {#if !$ae_loc?.person_id && !access_label} + Not signed in + {/if}
- + {#if $ae_loc?.app_cfg?.show_element__sign_in_out} -
-
- {/if} - - - {#if !$ae_loc?.sys_menu?.hide_access_type && !$ae_loc?.iframe} -
- -
- {/if} - - -
- -
- - - {#if $ae_loc.edit_mode} -
- -
- -
+
+ {#if sec_signin} +
+
+ {/if} +
+ {/if} + + + {#if !$ae_loc?.sys_menu?.hide_access_type && !$ae_loc?.iframe} +
+ + {#if sec_access} +
+ +
+ {/if} +
+ {/if} + + +
+ + {#if sec_appearance} +
+ +
+ {/if} +
+ + + {#if $ae_loc.edit_mode} +
+ + {#if sec_admin} +
+ + + +
+ {/if}
{/if} @@ -271,34 +345,28 @@ -
+
- + {#if !expand && (person_display || access_label)} - {/if} - +
{/if} - - + + + + + + + + + {#if $ae_loc?.authenticated_access} + {#if $ae_loc.edit_mode} + + {:else} + {/if} - {:else} - {/if} - - - - - - - - - - {#if $ae_loc?.authenticated_access} - {#if $ae_loc.edit_mode} - - {:else} - - {/if} - {/if} - - - + + +