Skip to content

Commit 3c1d609

Browse files
feat(table filter): remove tailwind style
1 parent bd3442f commit 3c1d609

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed

js/PureCSS/TableFilter.vue

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
<template>
2+
<ButtonWithDropdown
3+
class="table-filter"
4+
:class="hasEnabledFilter ? 'table-filter--active' : null"
5+
:active="hasEnabledFilter"
6+
placement="bottom-end"
7+
>
8+
<template #button>
9+
<svg
10+
xmlns="http://www.w3.org/2000/svg"
11+
viewBox="0 0 20 20"
12+
fill="currentColor"
13+
>
14+
<path
15+
fill-rule="evenodd"
16+
d="M3 3a1 1 0 011-1h12a1 1 0 011 1v3a1 1 0 01-.293.707L12 11.414V15a1 1 0 01-.293.707l-2 2A1 1 0 018 17v-5.586L3.293 6.707A1 1 0 013 6V3z"
17+
clip-rule="evenodd"
18+
/>
19+
</svg>
20+
</template>
21+
22+
<div
23+
role="menu"
24+
class="table-filter__menu"
25+
aria-orientation="vertical"
26+
aria-labelledby="sort-menu"
27+
>
28+
<div v-for="filter in filters" :key="filter.key">
29+
<h3>
30+
{{ filter.label }}
31+
</h3>
32+
<div class="select-container">
33+
<select
34+
:value="filter.value"
35+
@change="onChange(filter.key, $event.target.value)"
36+
>
37+
<option
38+
v-for="(option, key) in filter.options"
39+
:value="key"
40+
:key="key"
41+
>
42+
{{ option }}
43+
</option>
44+
</select>
45+
</div>
46+
</div>
47+
</div>
48+
</ButtonWithDropdown>
49+
</template>
50+
51+
<script>
52+
import ButtonWithDropdown from "./ButtonWithDropdown.vue";
53+
import TableFilter from "./../Components/TableFilter.vue";
54+
55+
export default {
56+
mixins: [TableFilter],
57+
58+
components: {
59+
ButtonWithDropdown,
60+
},
61+
};
62+
</script>
63+
<style>
64+
.table-filter svg {
65+
height: 1.25rem;
66+
width: 1.25rem;
67+
color: rgba(156, 163, 175, var(--dt-text-opacity));
68+
}
69+
.table-filter--active svg {
70+
color: rgba(52, 211, 153, var(--dt-text-opacity));
71+
}
72+
73+
.table-filter__menu h3 {
74+
text-transform: uppercase;
75+
background-color: rgba(243, 244, 246, var(--dt-bg-opacity));
76+
letter-spacing: 0.025em;
77+
line-height: 1rem;
78+
font-size: 0.8rem;
79+
padding: 1rem;
80+
margin: 0;
81+
}
82+
.table-filter__menu .select-container {
83+
padding: 0.5rem;
84+
}
85+
.table-filter__menu .select-container select {
86+
display: block;
87+
width: 100%;
88+
border-color: rgb(209 213 219 / var(--dt-border-opacity));
89+
border-radius: 0.375rem;
90+
box-shadow: 0 0.125rem 0.25rem rgba(24, 24, 24, 0.075);
91+
}
92+
.table-filter__menu .select-container select::focus {
93+
outline: 2px solid transparent;
94+
outline-offset: 2px;
95+
--dt-ring-opacity: 1;
96+
--dt-ring-inset: var(--dt-empty);
97+
--dt-ring-offset-width: 0px;
98+
--dt-ring-offset-color: #fff;
99+
--dt-ring-color: rgba(
100+
var(--dt-border-color, 99, 102, 241) var(--dt-ring-opacity)
101+
);
102+
--dt-ring-offset-shadow: var(--dt-ring-inset) 0 0 0
103+
var(--dt-ring-offset-width) var(--dt-ring-offset-color);
104+
--dt-ring-shadow: var(--dt-ring-inset) 0 0 0
105+
calc(1px + var(--dt-ring-offset-width)) var(--dt-ring-color);
106+
box-shadow: var(--dt-ring-offset-shadow), var(--dt-ring-shadow),
107+
var(--dt-shadow);
108+
border-color: rgba(
109+
var(--dt-input-border-color, 99, 102, 241),
110+
var(--dt-border-opacity)
111+
);
112+
/* shadow-sm
113+
sm:text-sm
114+
border-gray-300
115+
rounded-md */
116+
}
117+
@media (min-width: 640px) .table-filter__menu .select-container select {
118+
font-size: 0.875rem;
119+
line-height: 1.25rem;
120+
}
121+
</style>

0 commit comments

Comments
 (0)