diff --git a/src/svelte-interface/components/Spinner.svelte b/src/svelte-interface/components/Spinner.svelte new file mode 100644 index 00000000..a578633a --- /dev/null +++ b/src/svelte-interface/components/Spinner.svelte @@ -0,0 +1,34 @@ + + + + + + \ No newline at end of file diff --git a/src/svelte-interface/components/store/Backgrounds.svelte b/src/svelte-interface/components/store/Backgrounds.svelte new file mode 100644 index 00000000..782aa602 --- /dev/null +++ b/src/svelte-interface/components/store/Backgrounds.svelte @@ -0,0 +1,389 @@ + + +
+ +
+
+

Categories

+ +
+
+ + +
+ +
+
+

Explore Backgrounds

+
+ +
+
+ + +
+ {#each ['All', 'Installed', 'Photos', 'Videos'] as tab} + + {/each} +
+
+ + +
+ {#if isLoading} +
+ {#each Array(9) as _, i} +
+ +
+ +
+ +
+
+
+
+
+
+ {/each} +
+ {:else if error} +
+ Error: {error} +
+ {:else} +
+ {#each filteredBackgrounds.filter((bg: Background) => { + if (activeTab === 'installed') return savedBackgrounds.includes(bg.id); + if (activeTab === 'photos') return bg.type === 'image'; + if (activeTab === 'videos') return bg.type !== 'image'; + return true; + }) as background (background.id)} +
toggleBackgroundInstallation(background)} + onkeydown={(event) => { + if (event.key === 'Enter' || event.key === ' ') { + toggleBackgroundInstallation(background); + } + }} + role="button" + tabindex="0" + > + {#if background.type === 'image'} + {background.name} + {:else} + + {/if} +
+ {#if installingBackgrounds.has(background.id)} + + {:else if savedBackgrounds.includes(background.id)} + + + Remove + + {:else} + + + Install + + {/if} +
+
+

{background.name}

+
+
+ {/each} +
+ {/if} +
+
+ + + {#if showPreview && displayBackground} +
e.key === 'Escape' && closePreview()} + > +
e.stopPropagation()} + > +
+

{displayBackground.name}

+ +
+ +
+ {#if displayBackground.type === 'image'} + {displayBackground.name} + {:else} + + {/if} +
+ +

{displayBackground.description}

+ +
+ + {#if savedBackgrounds.includes(displayBackground.id)} + + {/if} +
+
+
+ {/if} +
+ +{#if settingsState.devMode} +
+

Debug Info:

+

{debugInfo}

+

Total backgrounds: {backgrounds.length}

+

Categories: {categories.join(', ') || ''}

+

Active Tab: {activeTab}

+

Selected Category: {selectedCategory}

+
+{/if} + diff --git a/src/svelte-interface/components/store/FilterPanel.svelte b/src/svelte-interface/components/store/FilterPanel.svelte new file mode 100644 index 00000000..5ca3ad2f --- /dev/null +++ b/src/svelte-interface/components/store/FilterPanel.svelte @@ -0,0 +1,63 @@ + + +
+

Filters

+ +
+

Type

+
+ + +
+
+ + + + +
\ No newline at end of file diff --git a/src/svelte-interface/components/store/ThemeCard.svelte b/src/svelte-interface/components/store/ThemeCard.svelte index a03778af..2bae7ad8 100644 --- a/src/svelte-interface/components/store/ThemeCard.svelte +++ b/src/svelte-interface/components/store/ThemeCard.svelte @@ -1,6 +1,4 @@