diff --git a/frontend/src/app.css b/frontend/src/app.css index 7cad308..823f8ce 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -180,6 +180,11 @@ body { 50% { transform: translateY(-6px); } } +/* CSS containment — isolate layout/paint for independent UI regions */ +main { + contain: layout style; +} + /* Respect user motion preferences — covers both CSS class animations and inline style animations */ @media (prefers-reduced-motion: reduce) { *, diff --git a/frontend/src/routes/admin/+layout.svelte b/frontend/src/routes/admin/+layout.svelte index 599de61..de91ec9 100644 --- a/frontend/src/routes/admin/+layout.svelte +++ b/frontend/src/routes/admin/+layout.svelte @@ -1,7 +1,19 @@ +
+ +
+ {@render children()} +
+
-{@render children()} diff --git a/frontend/src/routes/admin/capsules/+page.svelte b/frontend/src/routes/admin/capsules/+page.svelte index 7c7e4b7..ccba40a 100644 --- a/frontend/src/routes/admin/capsules/+page.svelte +++ b/frontend/src/routes/admin/capsules/+page.svelte @@ -1,5 +1,4 @@ -
- +
+ +
+ +
-
- -
- -
- -
-
-

- Hosts +
+
+

+ Hosts

Platform and BYOC compute across all teams. @@ -303,7 +293,6 @@ {/if}

-
{#snippet skeletonRows()}
diff --git a/frontend/src/routes/admin/teams/+page.svelte b/frontend/src/routes/admin/teams/+page.svelte index bdf3a32..a09b3d9 100644 --- a/frontend/src/routes/admin/teams/+page.svelte +++ b/frontend/src/routes/admin/teams/+page.svelte @@ -1,5 +1,4 @@ -
- - -
- -
+
+ +
@@ -373,8 +363,7 @@ {/if} {/if}
- -
+ diff --git a/frontend/src/routes/admin/users/+page.svelte b/frontend/src/routes/admin/users/+page.svelte index e933dc3..ca1960e 100644 --- a/frontend/src/routes/admin/users/+page.svelte +++ b/frontend/src/routes/admin/users/+page.svelte @@ -1,5 +1,4 @@ -{@render children()} +
+ +
+ {@render children()} +
+
diff --git a/frontend/src/routes/dashboard/audit/+page.svelte b/frontend/src/routes/dashboard/audit/+page.svelte index b4ee5d0..3539f5a 100644 --- a/frontend/src/routes/dashboard/audit/+page.svelte +++ b/frontend/src/routes/dashboard/audit/+page.svelte @@ -1,14 +1,7 @@ Wrenn — Capsules -
- - -
-
- - {#if $page.params.id} - -
-
- - Capsules - - - - - {$page.params.id} - - - -
-
- {:else} - -
-
-
-

- Capsules -

-

- All active and recent capsules across your team. -

-
- -
-
- - - - - {capsuleRunningCount.value} - running now -
-
-
- -
-
- {/if} - - {@render children()} -
- - -
-
- - - +
+ + {#if $page.params.id} + +
+
+ + Capsules + + + + + {$page.params.id} + + - All systems operational
-
+
+ {:else} + +
+
+
+

+ Capsules +

+

+ All active and recent capsules across your team. +

+
+ +
+
+ + + + + {capsuleRunningCount.value} + running now +
+
+
+ +
+
+ {/if} + + {@render children()} + + + +
+
+ + + + + All systems operational
-
+ diff --git a/frontend/src/routes/dashboard/channels/+page.svelte b/frontend/src/routes/dashboard/channels/+page.svelte index 0a57631..71c78ed 100644 --- a/frontend/src/routes/dashboard/channels/+page.svelte +++ b/frontend/src/routes/dashboard/channels/+page.svelte @@ -1,5 +1,4 @@ @@ -17,11 +10,7 @@ Wrenn — Metrics -
- - -
-
+

Metrics @@ -50,8 +39,6 @@ All systems operational

-
-
- import Sidebar from '$lib/components/Sidebar.svelte'; - import { onMount } from 'svelte'; + import { onMount, onDestroy } from 'svelte'; import { page } from '$app/stores'; import { goto } from '$app/navigation'; import { auth } from '$lib/auth.svelte'; @@ -16,12 +15,6 @@ type MeResponse } from '$lib/api/me'; - let collapsed = $state( - typeof window !== 'undefined' - ? localStorage.getItem('wrenn_sidebar_collapsed') === 'true' - : false - ); - let me = $state(null); let loadError = $state(null); @@ -189,17 +182,18 @@ toast.error(connectErrors[connectErr] ?? 'Failed to connect account.'); } }); + + onDestroy(() => { + if (nameSavedTimer) clearTimeout(nameSavedTimer); + if (passwordSavedTimer) clearTimeout(passwordSavedTimer); + }); Wrenn — Settings -
- - -
-
+
@@ -504,9 +498,7 @@ {/if}
-
-
-
+
{#if showDisconnectConfirm} diff --git a/frontend/src/routes/dashboard/team/+page.svelte b/frontend/src/routes/dashboard/team/+page.svelte index 5470cfd..8146a16 100644 --- a/frontend/src/routes/dashboard/team/+page.svelte +++ b/frontend/src/routes/dashboard/team/+page.svelte @@ -1,6 +1,5 @@ @@ -318,11 +315,7 @@ }} /> -
- - -
-
+

@@ -811,9 +804,7 @@

-
-
-
+
{#if openDropdownId} diff --git a/frontend/src/routes/dashboard/templates/+page.svelte b/frontend/src/routes/dashboard/templates/+page.svelte index 550e9b5..f48d09e 100644 --- a/frontend/src/routes/dashboard/templates/+page.svelte +++ b/frontend/src/routes/dashboard/templates/+page.svelte @@ -1,5 +1,4 @@