diff --git a/packages/ui/src/routes/[projectId]/navigation/ProjectsPopup.svelte b/packages/ui/src/routes/[projectId]/navigation/ProjectsPopup.svelte
new file mode 100644
index 000000000..758184133
--- /dev/null
+++ b/packages/ui/src/routes/[projectId]/navigation/ProjectsPopup.svelte
@@ -0,0 +1,42 @@
+
+
+{#if !hidden}
+
{
+ hidden = true;
+ }}
+ >
+ {#each projects as project}
+
+
+ {/each}
+
+
+{/if}
diff --git a/packages/ui/src/routes/[projectId]/navigation/clickOutside.ts b/packages/ui/src/routes/[projectId]/navigation/clickOutside.ts
new file mode 100644
index 000000000..f7f6c55b5
--- /dev/null
+++ b/packages/ui/src/routes/[projectId]/navigation/clickOutside.ts
@@ -0,0 +1,14 @@
+export function clickOutside(node: HTMLElement, handler: () => void): { destroy: () => void } {
+ function onClick(event: MouseEvent) {
+ if (node && !node.contains(event.target as HTMLElement)) {
+ handler();
+ }
+ }
+
+ document.addEventListener('click', onClick, true);
+ return {
+ destroy() {
+ document.removeEventListener('click', onClick, true);
+ }
+ };
+}
diff --git a/packages/ui/src/routes/[projectId]/settings/Spacer.svelte b/packages/ui/src/routes/[projectId]/settings/Spacer.svelte
index a73186634..b15b777e7 100644
--- a/packages/ui/src/routes/[projectId]/settings/Spacer.svelte
+++ b/packages/ui/src/routes/[projectId]/settings/Spacer.svelte
@@ -1,3 +1,10 @@
-
+
-
+