Skip to content

Commit 3a75f10

Browse files
committed
feat: add card styling to Filters
1 parent 529e90b commit 3a75f10

1 file changed

Lines changed: 26 additions & 24 deletions

File tree

resources/js/components/Filters.vue

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -89,32 +89,34 @@ const handleReset = () => {
8989
</script>
9090

9191
<template>
92-
<div class="flex flex-col gap-4 mb-4">
93-
<div class="flex flex-col md:flex-row gap-4">
94-
<!-- Search Input -->
95-
<div class="flex-1">
96-
<div class="relative">
97-
<Search :size="18" class="absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" />
98-
<Input v-model="localSearch" @input="handleSearchInput" :placeholder="searchPlaceholder"
99-
class="pl-10" />
92+
<div class="rounded-lg border border-border bg-card shadow-sm p-4 mb-4">
93+
<div class="flex flex-col gap-4">
94+
<div class="flex flex-col md:flex-row gap-4">
95+
<!-- Search Input -->
96+
<div class="flex-1">
97+
<div class="relative">
98+
<Search :size="18" class="absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" />
99+
<Input v-model="localSearch" @input="handleSearchInput" :placeholder="searchPlaceholder"
100+
class="pl-10" />
101+
</div>
100102
</div>
101-
</div>
102103

103-
<!-- Filter Dropdowns -->
104-
<template v-for="filter in filters" :key="filter.key">
105-
<div class="w-full md:w-48">
106-
<Select v-model="localFilterValues[filter.key]" :options="filter.options"
107-
:placeholder="filter.placeholder || `Filter by ${filter.label}`"
108-
@update:modelValue="(value: string) => handleFilterChange(filter.key, value)" />
109-
</div>
110-
</template>
111-
112-
<!-- Reset Button (only show if filters are active) -->
113-
<Button v-if="showReset && hasActiveFilters" variant="outline" @click="handleReset"
114-
class="w-full md:w-auto">
115-
<X :size="16" class="mr-2" />
116-
Reset
117-
</Button>
104+
<!-- Filter Dropdowns -->
105+
<template v-for="filter in filters" :key="filter.key">
106+
<div class="w-full md:w-48">
107+
<Select v-model="localFilterValues[filter.key]" :options="filter.options"
108+
:placeholder="filter.placeholder || `Filter by ${filter.label}`"
109+
@update:modelValue="(value: string) => handleFilterChange(filter.key, value)" />
110+
</div>
111+
</template>
112+
113+
<!-- Reset Button (only show if filters are active) -->
114+
<Button v-if="showReset && hasActiveFilters" variant="outline" @click="handleReset"
115+
class="w-full md:w-auto">
116+
<X :size="16" class="mr-2" />
117+
Reset
118+
</Button>
119+
</div>
118120
</div>
119121
</div>
120122
</template>

0 commit comments

Comments
 (0)