();
@@ -33,6 +65,20 @@
const selectedIndex = $derived(
items.findIndex((i) => i.activeMatch(page.url.pathname)),
);
+
+ beforeNavigate((e) => {
+ const oldIndex = items.findIndex((i) =>
+ i.activeMatch(e.from?.url.pathname || ""),
+ );
+ const newIndex = items.findIndex((i) =>
+ i.activeMatch(e.to?.url.pathname || ""),
+ );
+ if (newIndex < oldIndex) {
+ goingLeft.set(true)
+ } else {
+ goingLeft.set(false)
+ }
+ });
{#snippet link(item: (typeof items)[0], index: number)}
diff --git a/src/lib/components/layout/Navbar/Desktop.svelte b/src/lib/components/layout/Navbar/Desktop.svelte
new file mode 100644
index 0000000..18b54aa
--- /dev/null
+++ b/src/lib/components/layout/Navbar/Desktop.svelte
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/lib/components/layout/Navbar/Mobile.svelte b/src/lib/components/layout/Navbar/Mobile.svelte
new file mode 100644
index 0000000..89ff7a9
--- /dev/null
+++ b/src/lib/components/layout/Navbar/Mobile.svelte
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/lib/components/layout/Navbar/index.ts b/src/lib/components/layout/Navbar/index.ts
new file mode 100644
index 0000000..e7fc632
--- /dev/null
+++ b/src/lib/components/layout/Navbar/index.ts
@@ -0,0 +1,2 @@
+export { default as Desktop } from "./Desktop.svelte";
+export { default as Mobile } from "./Mobile.svelte";
\ No newline at end of file
diff --git a/src/lib/components/layout/PageContent.svelte b/src/lib/components/layout/PageContent.svelte
new file mode 100644
index 0000000..1845511
--- /dev/null
+++ b/src/lib/components/layout/PageContent.svelte
@@ -0,0 +1,44 @@
+
+
+
+ {#key page.url.pathname}
+
+
+ {@render children()}
+
+
+ {/key}
+
diff --git a/src/lib/components/layout/index.ts b/src/lib/components/layout/index.ts
new file mode 100644
index 0000000..7d3c8fc
--- /dev/null
+++ b/src/lib/components/layout/index.ts
@@ -0,0 +1,4 @@
+export { default as Footer } from './Footer.svelte';
+export { default as Gradients } from './Gradients.svelte';
+export { default as MobileLogo } from './MobileLogo.svelte';
+export { default as PageContent } from './PageContent.svelte';
\ No newline at end of file
diff --git a/src/lib/store/index.svelte.ts b/src/lib/store/index.svelte.ts
index d6d8a03..02f3d7d 100644
--- a/src/lib/store/index.svelte.ts
+++ b/src/lib/store/index.svelte.ts
@@ -229,6 +229,7 @@ export function setEffects(effectsEnabled: boolean) {
export const files = new Files();
export const showGradient = writable(true);
export const gradientColor = writable("");
+export const goingLeft = writable(false);
export const isMobile = writable(false);
export const effects = writable(true);
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 4d05a33..5de561c 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,82 +1,31 @@
@@ -158,6 +93,7 @@
+
{/if}
-
-
- {#key page.url.pathname}
-
-
- {@render children()}
-
-
- {/key}
-
+
{#each toastList as { id, type, message, durations }}
@@ -245,93 +129,13 @@