diff --git a/src/lib/components/collection/CollectionFilters.svelte b/src/lib/components/collection/CollectionFilters.svelte index 034686d5..e5b5b5dc 100644 --- a/src/lib/components/collection/CollectionFilters.svelte +++ b/src/lib/components/collection/CollectionFilters.svelte @@ -6,7 +6,7 @@ import type { ViewMode } from '$lib/stores/viewMode.svelte' import MultiSelect from '$lib/components/ui/MultiSelect.svelte' import Select from '$lib/components/ui/Select.svelte' - import Icon from '$lib/components/Icon.svelte' + import ViewModeToggle from '$lib/components/ui/ViewModeToggle.svelte' import { createQuery, queryOptions } from '@tanstack/svelte-query' import { entityAdapter } from '$lib/api/adapters/entity.adapter' @@ -44,6 +44,10 @@ onViewModeChange?: (mode: ViewMode) => void /** Whether to show the view toggle */ showViewToggle?: boolean + /** Element color theme for active toggle state */ + element?: string + /** Use neutral gray styling for view toggle */ + neutralViewToggle?: boolean } export interface CollectionFilterState { @@ -104,7 +108,9 @@ showSort = true, viewMode = 'grid', onViewModeChange, - showViewToggle = false + showViewToggle = false, + element, + neutralViewToggle = false }: Props = $props() // Compute effective filter visibility (explicit showFilters overrides entityType defaults) @@ -360,28 +366,7 @@
{#if showViewToggle} -
- - -
+ {/if} {#if showSort} @@ -424,39 +409,6 @@ flex-shrink: 0; } - .view-toggle { - display: flex; - border: 1px solid var(--border-color, #ddd); - border-radius: 6px; - overflow: hidden; - } - - .view-btn { - display: flex; - align-items: center; - justify-content: center; - padding: $unit-half; - border: none; - background: transparent; - color: var(--text-secondary, #666); - cursor: pointer; - transition: background 0.15s, color 0.15s; - - &:hover { - background: var(--button-bg-hover, #f5f5f5); - color: var(--text-primary, #333); - } - - &.active { - background: var(--accent-color, #3366ff); - color: white; - } - - &:first-child { - border-right: 1px solid var(--border-color, #ddd); - } - } - .sort { flex-shrink: 0; diff --git a/src/routes/(app)/[username]/collection/artifacts/+page.svelte b/src/routes/(app)/[username]/collection/artifacts/+page.svelte index 19fb6413..dbb05440 100644 --- a/src/routes/(app)/[username]/collection/artifacts/+page.svelte +++ b/src/routes/(app)/[username]/collection/artifacts/+page.svelte @@ -7,6 +7,7 @@ import CollectionArtifactCard from '$lib/components/collection/CollectionArtifactCard.svelte' import CollectionArtifactRow from '$lib/components/collection/CollectionArtifactRow.svelte' import Icon from '$lib/components/Icon.svelte' + import ViewModeToggle from '$lib/components/ui/ViewModeToggle.svelte' import { IsInViewport } from 'runed' import { sidebar } from '$lib/stores/sidebar.svelte' import { viewMode, type ViewMode } from '$lib/stores/viewMode.svelte' @@ -105,26 +106,11 @@ size="small" /> -
- - -
+
@@ -209,37 +195,6 @@ gap: $unit-2x; } - .view-toggle { - display: flex; - gap: $unit-fourth; - padding: $unit-fourth; - background: var(--segmented-control-bg, $grey-90); - border-radius: $item-corner; - } - - .toggle-btn { - display: flex; - align-items: center; - justify-content: center; - padding: $unit-half; - border: none; - background: transparent; - border-radius: $item-corner-small; - cursor: pointer; - color: var(--text-secondary); - transition: all 0.15s; - - &:hover { - color: var(--text-primary); - } - - &.active { - background: var(--unit-bg, white); - color: var(--text-primary); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - } - } - .grid-area { min-height: 400px; } diff --git a/src/routes/(app)/[username]/collection/characters/+page.svelte b/src/routes/(app)/[username]/collection/characters/+page.svelte index c105bd00..22dd36c0 100644 --- a/src/routes/(app)/[username]/collection/characters/+page.svelte +++ b/src/routes/(app)/[username]/collection/characters/+page.svelte @@ -126,6 +126,7 @@ showViewToggle={true} viewMode={currentViewMode} onViewModeChange={handleViewModeChange} + neutralViewToggle={true} /> diff --git a/src/routes/(app)/[username]/collection/summons/+page.svelte b/src/routes/(app)/[username]/collection/summons/+page.svelte index a66521d3..57fa114d 100644 --- a/src/routes/(app)/[username]/collection/summons/+page.svelte +++ b/src/routes/(app)/[username]/collection/summons/+page.svelte @@ -106,6 +106,7 @@ showViewToggle={true} viewMode={currentViewMode} onViewModeChange={handleViewModeChange} + neutralViewToggle={true} /> diff --git a/src/routes/(app)/[username]/collection/weapons/+page.svelte b/src/routes/(app)/[username]/collection/weapons/+page.svelte index 1e0285d0..46791285 100644 --- a/src/routes/(app)/[username]/collection/weapons/+page.svelte +++ b/src/routes/(app)/[username]/collection/weapons/+page.svelte @@ -113,6 +113,7 @@ showViewToggle={true} viewMode={currentViewMode} onViewModeChange={handleViewModeChange} + neutralViewToggle={true} />