summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/filter
diff options
context:
space:
mode:
authorWolfgang Müller2025-02-14 11:57:03 +0100
committerWolfgang Müller2025-02-14 11:57:03 +0100
commit1421152a9356c7def86143dfb31a3586d5491d55 (patch)
tree15280e72426d2100cb1556bf420eced020182dcd /frontend/src/lib/filter
parentbbf03cbc2822094cffe868e0710d2a8f7e1096c0 (diff)
downloadhircine-1421152a9356c7def86143dfb31a3586d5491d55.tar.gz
frontend: Migrate to Tailwind 4.0
Diffstat (limited to 'frontend/src/lib/filter')
-rw-r--r--frontend/src/lib/filter/ComicFilterForm.svelte16
-rw-r--r--frontend/src/lib/filter/components/Filter.svelte27
-rw-r--r--frontend/src/lib/filter/components/FilterForm.svelte4
3 files changed, 10 insertions, 37 deletions
diff --git a/frontend/src/lib/filter/ComicFilterForm.svelte b/frontend/src/lib/filter/ComicFilterForm.svelte
index 7f0058d..8bf7af3 100644
--- a/frontend/src/lib/filter/ComicFilterForm.svelte
+++ b/frontend/src/lib/filter/ComicFilterForm.svelte
@@ -25,13 +25,7 @@
<FilterForm type="grid" apply={filter.apply} expanded={filter.excludes > 0}>
{#snippet include(type)}
- <Filter
- {type}
- title="Tags"
- options={tags}
- filter={filter.include.tags}
- --grid-column="span 2"
- />
+ <Filter {type} wide title="Tags" options={tags} filter={filter.include.tags} />
<Filter {type} title="Artists" options={artists} filter={filter.include.artists} />
<Filter {type} title="Circles" options={circles} filter={filter.include.circles} />
<Filter {type} title="Characters" options={characters} filter={filter.include.characters} />
@@ -42,13 +36,7 @@
<Filter {type} title="Languages" options={languages} filter={filter.include.languages} />
{/snippet}
{#snippet exclude(type)}
- <Filter
- {type}
- title="Tags"
- options={tags}
- filter={filter.exclude.tags}
- --grid-column="span 2"
- />
+ <Filter {type} wide title="Tags" options={tags} filter={filter.exclude.tags} />
<Filter {type} title="Artists" options={artists} filter={filter.exclude.artists} />
<Filter {type} title="Circles" options={circles} filter={filter.exclude.circles} />
<Filter {type} title="Characters" options={characters} filter={filter.exclude.characters} />
diff --git a/frontend/src/lib/filter/components/Filter.svelte b/frontend/src/lib/filter/components/Filter.svelte
index c164cbb..4b39589 100644
--- a/frontend/src/lib/filter/components/Filter.svelte
+++ b/frontend/src/lib/filter/components/Filter.svelte
@@ -8,15 +8,16 @@
type: FilterType;
options: ListItem[] | undefined;
filter: Association<string> | Enum<string>;
+ wide?: boolean;
}
- let { title, type, options, filter }: Props = $props();
+ let { title, type, options, filter, wide = false }: Props = $props();
let exclude = $derived(type === 'exclude');
const id = `${type}-${title.toLowerCase()}`;
</script>
-<div class:exclude class="filter-container">
+<div class:exclude class:wide class="filter-container [&.wide]:col-span-2">
<div class="flex gap-2">
<label for={id}>{title}</label>
<div class="ml-auto flex items-center gap-1 self-center text-xs">
@@ -25,7 +26,7 @@
type="button"
title="matches all"
class:active={filter.mode === 'all'}
- class="btn btn-xs"
+ class="btn-xs hover:bg-slate-700 [&.active]:bg-indigo-800"
onclick={() => (filter.mode = 'all')}
>
&forall;
@@ -34,7 +35,7 @@
type="button"
title="matches any of"
class:active={filter.mode === 'any'}
- class="btn btn-xs"
+ class="btn-xs hover:bg-slate-700 [&.active]:bg-indigo-800"
onclick={() => (filter.mode = 'any')}
>
&exist;
@@ -43,7 +44,7 @@
type="button"
title="matches exactly"
class:active={filter.mode === 'exact'}
- class="btn btn-xs"
+ class="btn-xs hover:bg-slate-700 [&.active]:bg-indigo-800"
onclick={() => (filter.mode = 'exact')}
>
&equals;
@@ -54,7 +55,7 @@
type="button"
title="empty"
class:active={filter.empty}
- class="btn btn-xs"
+ class="btn-xs hover:bg-slate-700 [&.active]:bg-indigo-800"
onclick={() => (filter.empty = !filter.empty)}
>
&empty;
@@ -63,17 +64,3 @@
</div>
<Select multi clearable {options} {id} bind:value={filter.values} />
</div>
-
-<style lang="postcss">
- button:hover {
- @apply bg-slate-700;
- }
-
- button.active {
- @apply bg-indigo-800;
- }
-
- .filter-container {
- grid-column: var(--grid-column);
- }
-</style>
diff --git a/frontend/src/lib/filter/components/FilterForm.svelte b/frontend/src/lib/filter/components/FilterForm.svelte
index ed58ed9..a32faf8 100644
--- a/frontend/src/lib/filter/components/FilterForm.svelte
+++ b/frontend/src/lib/filter/components/FilterForm.svelte
@@ -38,9 +38,7 @@
</div>
{/if}
{:else}
- <div
- class="flex flex-wrap justify-center gap-2 [&>*]:basis-full xl:[&>*]:basis-1/3 2xl:[&>*]:basis-1/5"
- >
+ <div class="flex flex-wrap justify-center gap-2 *:basis-full xl:*:basis-1/3 2xl:*:basis-1/5">
<div class="p-2">
{@render include?.('include')}
</div>