+
-
- {#if session.error}
-
- {/if}
-
diff --git a/src/routes/backup.svelte b/src/routes/backup.svelte
index 9eadad1..f2a3056 100644
--- a/src/routes/backup.svelte
+++ b/src/routes/backup.svelte
@@ -1,15 +1,12 @@
diff --git a/src/routes/delegate-account.svelte b/src/routes/delegate-account.svelte
index a5001cb..c77fa02 100644
--- a/src/routes/delegate-account.svelte
+++ b/src/routes/delegate-account.svelte
@@ -1,5 +1,123 @@
-
+{#if view === 'connect-backup-device'}
+
+{:else if view === 'delegate-account'}
+
+{/if}
diff --git a/src/routes/gallery.svelte b/src/routes/gallery.svelte
index 65001c0..dae469e 100644
--- a/src/routes/gallery.svelte
+++ b/src/routes/gallery.svelte
@@ -1,10 +1,11 @@
-
+
+
+{#if view === 'link-device'}
+
+{:else if view === 'load-filesystem'}
+
+{/if}
diff --git a/src/stores.ts b/src/stores.ts
index a00b378..67f293b 100644
--- a/src/stores.ts
+++ b/src/stores.ts
@@ -3,14 +3,13 @@ import type { Writable } from 'svelte/store'
import type FileSystem from 'webnative/fs/index'
import { loadTheme } from '$lib/theme'
-import type { Device } from '$lib/device'
import { AREAS } from '$lib/gallery'
import type { Gallery } from '$lib/gallery'
import type { Notification } from '$lib/notifications'
import type { Session } from '$lib/session'
import type { Theme } from '$lib/theme'
-export const theme: Writable
= writable(loadTheme())
+export const themeStore: Writable = writable(loadTheme())
export const sessionStore: Writable = writable({
username: null,
@@ -21,8 +20,6 @@ export const sessionStore: Writable = writable({
export const filesystemStore: Writable = writable(null)
-export const deviceStore: Writable = writable({ isMobile: true })
-
export const galleryStore: Writable = writable({
loading: true,
publicImages: [],
diff --git a/static/preview.png b/static/preview.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb29b5f7e8d3fe44d05441f5bb28973110d80051
GIT binary patch
literal 19476
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
literal 0
HcmV?d00001
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index b2fb69d..4313fe2 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -49,4 +49,9 @@ module.exports = {
rtl: false,
darkTheme: "dark",
},
+ purge: {
+ options: {
+ safelist: ['alert-success', 'alert-error', 'alert-info', 'alert-warning']
+ }
+ }
};
\ No newline at end of file