@phillips/seldon 1.270.0 → 1.272.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index10.cjs +1 -1
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index7.cjs +1 -1
- package/dist/_virtual/index7.js +3 -2
- package/dist/_virtual/index8.cjs +1 -1
- package/dist/_virtual/index8.js +2 -3
- package/dist/_virtual/index9.cjs +1 -1
- package/dist/_virtual/index9.js +2 -2
- package/dist/assets/formatted/Card.cjs +1 -0
- package/dist/assets/formatted/Card.d.ts +9 -0
- package/dist/assets/formatted/Card.js +50 -0
- package/dist/assets/formatted/index.cjs +1 -1
- package/dist/assets/formatted/index.d.ts +1 -0
- package/dist/assets/formatted/index.js +124 -122
- package/dist/components/AddToCalendar/calendarLinks.cjs +1 -1
- package/dist/components/AddToCalendar/calendarLinks.js +1 -1
- package/dist/components/ComboBox/ComboBox.cjs +1 -1
- package/dist/components/ComboBox/ComboBox.js +1 -0
- package/dist/node_modules/ics/dist/index.cjs +1 -1
- package/dist/node_modules/ics/dist/index.js +1 -1
- package/dist/node_modules/prop-types/index.cjs +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.cjs +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/patterns/FiltersInline/FilterButton.cjs +1 -1
- package/dist/patterns/FiltersInline/FilterButton.js +14 -13
- package/dist/patterns/FiltersInline/FilterDropdownMenuDesktop.cjs +1 -1
- package/dist/patterns/FiltersInline/FilterDropdownMenuDesktop.js +47 -53
- package/dist/patterns/FiltersInline/FilterDropdownMenuMobile.cjs +1 -1
- package/dist/patterns/FiltersInline/FilterDropdownMenuMobile.js +51 -65
- package/dist/patterns/FiltersInline/MainFilterDropdown.cjs +1 -1
- package/dist/patterns/FiltersInline/MainFilterDropdown.js +56 -55
- package/dist/patterns/FiltersInline/SubFilterDropdown.cjs +1 -1
- package/dist/patterns/FiltersInline/SubFilterDropdown.js +76 -76
- package/dist/patterns/FiltersInline/utils.cjs +1 -1
- package/dist/patterns/FiltersInline/utils.d.ts +4 -0
- package/dist/patterns/FiltersInline/utils.js +25 -20
- package/dist/scss/patterns/FiltersInline/_filterDropdownMenu.scss +86 -27
- package/dist/scss/patterns/FiltersInline/_filtersInline.scss +22 -0
- package/package.json +1 -1
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { Root as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { SSRMediaQuery as
|
|
6
|
-
import { px as
|
|
7
|
-
import { FilterButton as
|
|
1
|
+
import { jsxs as p, Fragment as _, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { Root as j, Trigger as P, Portal as k, Content as q } from "../../node_modules/@radix-ui/react-popover/dist/index.js";
|
|
3
|
+
import A from "react";
|
|
4
|
+
import E from "../../components/Drawer/Drawer.js";
|
|
5
|
+
import { SSRMediaQuery as C } from "../../providers/SeldonProvider/utils.js";
|
|
6
|
+
import { px as D } from "../../utils/index.js";
|
|
7
|
+
import { FilterButton as O } from "./FilterButton.js";
|
|
8
8
|
import { FilterDropdownMenuDesktop as H } from "./FilterDropdownMenuDesktop.js";
|
|
9
|
-
import { FilterDropdownMenuMobile as
|
|
10
|
-
import { FilterButtonType as
|
|
11
|
-
import { countActiveFilters as z, getFilterButtonClickHandler as
|
|
12
|
-
import { Breakpoints as
|
|
13
|
-
const
|
|
9
|
+
import { FilterDropdownMenuMobile as Q } from "./FilterDropdownMenuMobile.js";
|
|
10
|
+
import { FilterButtonType as R } from "./types.js";
|
|
11
|
+
import { countActiveFilters as z, getFilterButtonClickHandler as g, resetAllFilters as G, getFilterButtonLabel as J } from "./utils.js";
|
|
12
|
+
import { Breakpoints as v } from "../../utils/constants.js";
|
|
13
|
+
const K = A.forwardRef(
|
|
14
14
|
({
|
|
15
|
-
filterId:
|
|
16
|
-
className:
|
|
15
|
+
filterId: i = 0,
|
|
16
|
+
className: u,
|
|
17
17
|
filterButtonLabel: r,
|
|
18
|
-
buttonType:
|
|
18
|
+
buttonType: e,
|
|
19
19
|
handleClick: m,
|
|
20
20
|
filtersListState: a,
|
|
21
|
-
filters:
|
|
22
|
-
onSelectFilter:
|
|
23
|
-
onApplyFilter:
|
|
24
|
-
onClickClear:
|
|
25
|
-
resultsCount:
|
|
26
|
-
filterButtonLabelTranslated:
|
|
21
|
+
filters: l,
|
|
22
|
+
onSelectFilter: F,
|
|
23
|
+
onApplyFilter: h,
|
|
24
|
+
onClickClear: w,
|
|
25
|
+
resultsCount: $,
|
|
26
|
+
filterButtonLabelTranslated: d,
|
|
27
27
|
dropdownMenuTranslation: x,
|
|
28
28
|
ariaLabels: n = {},
|
|
29
|
-
hideDesktopSortButton:
|
|
30
|
-
id:
|
|
29
|
+
hideDesktopSortButton: N,
|
|
30
|
+
id: s
|
|
31
31
|
}, M) => {
|
|
32
|
-
const
|
|
33
|
-
return
|
|
34
|
-
/* @__PURE__ */
|
|
32
|
+
const t = a?.[i] ?? !1, { totalCount: S, filterCount: b } = z(l, e), c = J(r, d || null), f = e === R.Sort ? `${D}-filters-inline__sort` : void 0;
|
|
33
|
+
return N && e === R.Sort ? null : /* @__PURE__ */ p(_, { children: [
|
|
34
|
+
/* @__PURE__ */ p(C.Media, { lessThan: v.md, className: f, children: [
|
|
35
35
|
/* @__PURE__ */ o(
|
|
36
|
-
|
|
36
|
+
O,
|
|
37
37
|
{
|
|
38
38
|
ref: M,
|
|
39
|
-
className:
|
|
40
|
-
isSelected:
|
|
41
|
-
count:
|
|
42
|
-
label:
|
|
43
|
-
id:
|
|
44
|
-
totalCount:
|
|
39
|
+
className: u,
|
|
40
|
+
isSelected: t,
|
|
41
|
+
count: b,
|
|
42
|
+
label: c,
|
|
43
|
+
id: s,
|
|
44
|
+
totalCount: S,
|
|
45
45
|
ariaLabel: n.button || `${r} button`,
|
|
46
|
-
onClick:
|
|
46
|
+
onClick: g(a, m, i),
|
|
47
47
|
isMobile: !0,
|
|
48
|
-
type:
|
|
48
|
+
type: e
|
|
49
49
|
}
|
|
50
50
|
),
|
|
51
51
|
/* @__PURE__ */ o(
|
|
52
|
-
|
|
52
|
+
E,
|
|
53
53
|
{
|
|
54
54
|
drawerOpenSide: "bottom",
|
|
55
|
-
isOpen:
|
|
56
|
-
onClose:
|
|
55
|
+
isOpen: t,
|
|
56
|
+
onClose: () => G(a, m),
|
|
57
57
|
"aria-label": n.drawer || `${r} drawer`,
|
|
58
|
-
className: `${
|
|
59
|
-
headerText:
|
|
58
|
+
className: `${D}-filter-drawer-mobile`,
|
|
59
|
+
headerText: c,
|
|
60
60
|
paddingLevel: 0,
|
|
61
61
|
children: /* @__PURE__ */ o(
|
|
62
|
-
|
|
62
|
+
Q,
|
|
63
63
|
{
|
|
64
|
-
buttonType:
|
|
65
|
-
filters:
|
|
66
|
-
filterIndex:
|
|
67
|
-
onSelectFilter:
|
|
68
|
-
onApplyFilter:
|
|
69
|
-
onClickClear:
|
|
70
|
-
resultsCount:
|
|
64
|
+
buttonType: e,
|
|
65
|
+
filters: l,
|
|
66
|
+
filterIndex: i,
|
|
67
|
+
onSelectFilter: F,
|
|
68
|
+
onApplyFilter: h,
|
|
69
|
+
onClickClear: w,
|
|
70
|
+
resultsCount: $,
|
|
71
71
|
ariaLabels: n?.ariaLabel,
|
|
72
72
|
filterButtonLabel: r,
|
|
73
|
-
filterButtonLabelTranslated:
|
|
73
|
+
filterButtonLabelTranslated: d,
|
|
74
74
|
dropdownMenuTranslation: x
|
|
75
75
|
}
|
|
76
76
|
)
|
|
77
77
|
}
|
|
78
78
|
)
|
|
79
79
|
] }),
|
|
80
|
-
/* @__PURE__ */ o(
|
|
81
|
-
|
|
80
|
+
/* @__PURE__ */ o(C.Media, { greaterThanOrEqual: v.md, className: f, children: /* @__PURE__ */ p(
|
|
81
|
+
j,
|
|
82
82
|
{
|
|
83
|
-
open:
|
|
84
|
-
onOpenChange:
|
|
83
|
+
open: t,
|
|
84
|
+
onOpenChange: g(a, m, i),
|
|
85
85
|
children: [
|
|
86
|
-
/* @__PURE__ */ o(
|
|
87
|
-
|
|
86
|
+
/* @__PURE__ */ o(P, { asChild: !0, children: /* @__PURE__ */ o(
|
|
87
|
+
O,
|
|
88
88
|
{
|
|
89
89
|
ref: M,
|
|
90
|
-
className:
|
|
91
|
-
isSelected:
|
|
92
|
-
count:
|
|
93
|
-
label:
|
|
94
|
-
totalCount:
|
|
95
|
-
id:
|
|
90
|
+
className: u,
|
|
91
|
+
isSelected: t,
|
|
92
|
+
count: b,
|
|
93
|
+
label: c,
|
|
94
|
+
totalCount: S,
|
|
95
|
+
id: s,
|
|
96
96
|
ariaLabel: n.ariaLabel || `${r} button`,
|
|
97
|
-
onClick:
|
|
97
|
+
onClick: g(a, m, i),
|
|
98
98
|
isMobile: !1,
|
|
99
|
-
type:
|
|
99
|
+
type: e
|
|
100
100
|
}
|
|
101
101
|
) }),
|
|
102
|
-
/* @__PURE__ */ o(
|
|
103
|
-
|
|
102
|
+
/* @__PURE__ */ o(k, { children: /* @__PURE__ */ o(
|
|
103
|
+
q,
|
|
104
104
|
{
|
|
105
105
|
avoidCollisions: !0,
|
|
106
106
|
collisionPadding: 10,
|
|
@@ -111,16 +111,16 @@ const G = k.forwardRef(
|
|
|
111
111
|
children: /* @__PURE__ */ o(
|
|
112
112
|
H,
|
|
113
113
|
{
|
|
114
|
-
buttonType:
|
|
115
|
-
filters:
|
|
116
|
-
filterIndex:
|
|
117
|
-
onSelectFilter:
|
|
118
|
-
onApplyFilter:
|
|
119
|
-
onClickClear:
|
|
120
|
-
resultsCount:
|
|
114
|
+
buttonType: e,
|
|
115
|
+
filters: l,
|
|
116
|
+
filterIndex: i,
|
|
117
|
+
onSelectFilter: F,
|
|
118
|
+
onApplyFilter: h,
|
|
119
|
+
onClickClear: w,
|
|
120
|
+
resultsCount: $,
|
|
121
121
|
ariaLabels: n?.ariaLabel,
|
|
122
122
|
filterButtonLabel: r,
|
|
123
|
-
filterButtonLabelTranslated:
|
|
123
|
+
filterButtonLabelTranslated: d,
|
|
124
124
|
dropdownMenuTranslation: x
|
|
125
125
|
}
|
|
126
126
|
)
|
|
@@ -128,12 +128,12 @@ const G = k.forwardRef(
|
|
|
128
128
|
) })
|
|
129
129
|
]
|
|
130
130
|
},
|
|
131
|
-
`${
|
|
131
|
+
`${s}-${r}-button`
|
|
132
132
|
) })
|
|
133
133
|
] });
|
|
134
134
|
}
|
|
135
135
|
);
|
|
136
|
-
|
|
136
|
+
K.displayName = "SubFilterDropdown";
|
|
137
137
|
export {
|
|
138
|
-
|
|
138
|
+
K as SubFilterDropdown
|
|
139
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./types.cjs");i.FilterButtonType.Filter,i.FilterButtonType.Sort,i.FilterButtonType.Sale,i.FilterButtonType.Departments,i.FilterButtonType.Location,i.FilterButtonType.Month,i.FilterButtonType.Year;const l=(t,e)=>{if(!t)return{totalCount:0,filterCount:0};const r=t.filter(n=>n.id!=="Sort").reduce((n,s)=>n+Array.from(s.filterDimensions).filter(u=>u.active).length,0),o=e==="Sort"?0:(()=>{const n=t.find(s=>s.id===e)?.filterDimensions;return n?Array.from(n).filter(s=>s.active).length:0})();return{totalCount:r,filterCount:o}},c=(t,e,r)=>{if(!t)return!1;const o=t.find(n=>n.id===e)?.filterDimensions??(typeof r=="number"?t[r-1]?.filterDimensions:void 0);return o?Array.from(o).some(n=>n.active):!1},a=(t,e)=>t&&typeof e=="number"&&t[e-1]&&t[e-1].filterDimensions?Array.from(t[e-1].filterDimensions):[],f=(t,e)=>t==="Filter"?"Filters":e?"ChevronUp":"ChevronDown",m=(t,e,r)=>()=>{t&&e&&e(t.map((o,n)=>n===r?!o:!1))};function F(t,e,r){r&&r(t,e)}function p(t,e){t&&e&&e(t.map(()=>!1))}function y(t,e){return e||`${t}`}exports.countActiveFilters=l;exports.getFilterButtonClickHandler=m;exports.getFilterButtonLabel=y;exports.getFilterDimensions=a;exports.getIcon=f;exports.handleInputChange=F;exports.hasActiveDimensions=c;exports.resetAllFilters=p;
|
|
@@ -48,6 +48,10 @@ export declare const countActiveFilters: (filters?: FilterType[], buttonType?: s
|
|
|
48
48
|
totalCount: number;
|
|
49
49
|
filterCount: number;
|
|
50
50
|
};
|
|
51
|
+
export declare const hasActiveDimensions: (filters: {
|
|
52
|
+
id?: string;
|
|
53
|
+
filterDimensions: Set<FilterDimension>;
|
|
54
|
+
}[] | undefined, buttonType?: string, filterIndex?: number) => boolean;
|
|
51
55
|
export declare const getFilterDimensions: (filters: {
|
|
52
56
|
filterDimensions: Set<FilterDimension>;
|
|
53
57
|
}[] | undefined, filterIndex: number | undefined) => FilterDimension[];
|
|
@@ -1,33 +1,38 @@
|
|
|
1
1
|
import { FilterButtonType as o } from "./types.js";
|
|
2
2
|
o.Filter, o.Sort, o.Sale, o.Departments, o.Location, o.Month, o.Year;
|
|
3
|
-
const
|
|
4
|
-
if (!
|
|
5
|
-
const e =
|
|
6
|
-
(
|
|
3
|
+
const m = (n, t) => {
|
|
4
|
+
if (!n) return { totalCount: 0, filterCount: 0 };
|
|
5
|
+
const e = n.filter((r) => r.id !== "Sort").reduce(
|
|
6
|
+
(r, s) => r + Array.from(s.filterDimensions).filter((u) => u.active).length,
|
|
7
7
|
0
|
|
8
|
-
),
|
|
9
|
-
const
|
|
10
|
-
return
|
|
8
|
+
), i = t === "Sort" ? 0 : (() => {
|
|
9
|
+
const r = n.find((s) => s.id === t)?.filterDimensions;
|
|
10
|
+
return r ? Array.from(r).filter((s) => s.active).length : 0;
|
|
11
11
|
})();
|
|
12
|
-
return { totalCount: e, filterCount:
|
|
13
|
-
},
|
|
14
|
-
|
|
12
|
+
return { totalCount: e, filterCount: i };
|
|
13
|
+
}, c = (n, t, e) => {
|
|
14
|
+
if (!n) return !1;
|
|
15
|
+
const i = n.find((r) => r.id === t)?.filterDimensions ?? (typeof e == "number" ? n[e - 1]?.filterDimensions : void 0);
|
|
16
|
+
return i ? Array.from(i).some((r) => r.active) : !1;
|
|
17
|
+
}, a = (n, t) => n && typeof t == "number" && n[t - 1] && n[t - 1].filterDimensions ? Array.from(n[t - 1].filterDimensions) : [], l = (n, t) => n === "Filter" ? "Filters" : t ? "ChevronUp" : "ChevronDown", D = (n, t, e) => () => {
|
|
18
|
+
n && t && t(n.map((i, r) => r === e ? !i : !1));
|
|
15
19
|
};
|
|
16
|
-
function p(
|
|
17
|
-
e && e(
|
|
20
|
+
function p(n, t, e) {
|
|
21
|
+
e && e(n, t);
|
|
18
22
|
}
|
|
19
|
-
function
|
|
20
|
-
|
|
23
|
+
function v(n, t) {
|
|
24
|
+
n && t && t(n.map(() => !1));
|
|
21
25
|
}
|
|
22
|
-
function F(
|
|
23
|
-
return
|
|
26
|
+
function F(n, t) {
|
|
27
|
+
return t || `${n}`;
|
|
24
28
|
}
|
|
25
29
|
export {
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
m as countActiveFilters,
|
|
31
|
+
D as getFilterButtonClickHandler,
|
|
28
32
|
F as getFilterButtonLabel,
|
|
29
|
-
|
|
33
|
+
a as getFilterDimensions,
|
|
30
34
|
l as getIcon,
|
|
31
35
|
p as handleInputChange,
|
|
32
|
-
|
|
36
|
+
c as hasActiveDimensions,
|
|
37
|
+
v as resetAllFilters
|
|
33
38
|
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
@use '../../allPartials' as *;
|
|
2
2
|
|
|
3
3
|
$dropdown-height: 240px;
|
|
4
|
+
$dropdown-width: 320px;
|
|
4
5
|
|
|
5
6
|
.#{$px}-filter-dropdown-menu {
|
|
6
7
|
background: $white-100;
|
|
7
|
-
border-radius: $radius-
|
|
8
|
+
border-radius: $radius-xs;
|
|
8
9
|
box-shadow: 0 4px 6px $medium-gray;
|
|
9
10
|
display: flex;
|
|
10
11
|
flex-direction: column;
|
|
11
|
-
min-width: 100%;
|
|
12
12
|
padding: $spacing-sm 0;
|
|
13
|
+
width: $dropdown-width;
|
|
13
14
|
|
|
14
15
|
&__filters {
|
|
15
16
|
display: flex;
|
|
@@ -37,6 +38,17 @@ $dropdown-height: 240px;
|
|
|
37
38
|
justify-content: space-between;
|
|
38
39
|
padding: $spacing-sm $spacing-sm 0 $spacing-sm;
|
|
39
40
|
|
|
41
|
+
> .#{$px}-button {
|
|
42
|
+
display: inline-flex;
|
|
43
|
+
flex: 1 1 0;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
margin: 0;
|
|
46
|
+
max-width: none;
|
|
47
|
+
min-width: 0;
|
|
48
|
+
text-align: center;
|
|
49
|
+
white-space: nowrap;
|
|
50
|
+
}
|
|
51
|
+
|
|
40
52
|
&--drawer {
|
|
41
53
|
box-shadow: 0 -4px 8px -4px $medium-gray;
|
|
42
54
|
display: flex;
|
|
@@ -50,6 +62,7 @@ $dropdown-height: 240px;
|
|
|
50
62
|
|
|
51
63
|
&__mobile-wrap {
|
|
52
64
|
box-shadow: 0 -4px 8px -4px $medium-gray;
|
|
65
|
+
padding-bottom: calc(#{$spacing-sm} + env(safe-area-inset-bottom));
|
|
53
66
|
}
|
|
54
67
|
|
|
55
68
|
&__header {
|
|
@@ -76,37 +89,14 @@ $dropdown-height: 240px;
|
|
|
76
89
|
}
|
|
77
90
|
}
|
|
78
91
|
|
|
79
|
-
&__buttons {
|
|
80
|
-
align-items: center;
|
|
81
|
-
display: flex;
|
|
82
|
-
flex-direction: row;
|
|
83
|
-
justify-content: space-between;
|
|
84
|
-
|
|
85
|
-
&--left {
|
|
86
|
-
margin-left: auto;
|
|
87
|
-
margin-right: 0;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&--right {
|
|
91
|
-
margin-left: 0;
|
|
92
|
-
margin-right: auto;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
&--mobile {
|
|
96
|
-
display: block;
|
|
97
|
-
margin-bottom: $spacing-md;
|
|
98
|
-
margin-top: $spacing-sm;
|
|
99
|
-
width: 45%;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
92
|
&__button-text {
|
|
104
93
|
color: $white-100;
|
|
105
94
|
}
|
|
106
95
|
|
|
107
96
|
&--mobile {
|
|
108
|
-
border-radius: $radius-
|
|
97
|
+
border-radius: $radius-xs $radius-xs 0 0;
|
|
109
98
|
box-shadow: none;
|
|
99
|
+
height: 100%;
|
|
110
100
|
padding: 0;
|
|
111
101
|
width: 100vw;
|
|
112
102
|
}
|
|
@@ -131,7 +121,37 @@ $dropdown-height: 240px;
|
|
|
131
121
|
}
|
|
132
122
|
.#{$px}-input__input[type='checkbox'] {
|
|
133
123
|
align-self: center;
|
|
124
|
+
appearance: none;
|
|
125
|
+
background: $bg-default;
|
|
126
|
+
border: 1px solid $bg-inverted;
|
|
127
|
+
border-radius: $radius-xs;
|
|
128
|
+
display: grid;
|
|
129
|
+
height: 16px;
|
|
130
|
+
margin-bottom: 0;
|
|
134
131
|
margin-left: auto;
|
|
132
|
+
padding: 0;
|
|
133
|
+
place-content: center;
|
|
134
|
+
width: 16px;
|
|
135
|
+
|
|
136
|
+
&::after {
|
|
137
|
+
background: $text-inverted;
|
|
138
|
+
content: '';
|
|
139
|
+
height: 11px;
|
|
140
|
+
mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='black' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E");
|
|
141
|
+
mask-position: center;
|
|
142
|
+
mask-repeat: no-repeat;
|
|
143
|
+
mask-size: 16px 11px;
|
|
144
|
+
opacity: 0;
|
|
145
|
+
width: 16px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&:checked {
|
|
149
|
+
background: $bg-inverted;
|
|
150
|
+
|
|
151
|
+
&::after {
|
|
152
|
+
opacity: 1;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
135
155
|
}
|
|
136
156
|
}
|
|
137
157
|
|
|
@@ -140,5 +160,44 @@ $dropdown-height: 240px;
|
|
|
140
160
|
}
|
|
141
161
|
|
|
142
162
|
.#{$px}-filter-drawer-mobile {
|
|
163
|
+
height: min(70dvh, 640px);
|
|
143
164
|
padding: 0;
|
|
165
|
+
|
|
166
|
+
.#{$px}-drawer__content {
|
|
167
|
+
flex: 1 1 auto;
|
|
168
|
+
height: auto;
|
|
169
|
+
min-height: 0;
|
|
170
|
+
overflow: hidden;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.#{$px}-filter-dropdown-menu--mobile {
|
|
174
|
+
min-height: 0;
|
|
175
|
+
overflow: hidden;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.#{$px}-filter-dropdown-menu__filters--mobile {
|
|
179
|
+
flex: 1 1 auto;
|
|
180
|
+
max-height: none;
|
|
181
|
+
min-height: 0;
|
|
182
|
+
overflow-y: auto;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.#{$px}-filter-dropdown-menu__mobile-wrap {
|
|
186
|
+
flex: 0 0 auto;
|
|
187
|
+
margin-top: 0;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.#{$px}-filter-drawer {
|
|
192
|
+
.#{$px}-filter-drawer-menu {
|
|
193
|
+
flex: 1 1 auto;
|
|
194
|
+
min-height: 0;
|
|
195
|
+
overflow-y: auto;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.#{$px}-filter-dropdown-menu__buttons-wrap--drawer {
|
|
199
|
+
flex: 0 0 auto;
|
|
200
|
+
margin-top: auto;
|
|
201
|
+
overflow: visible;
|
|
202
|
+
}
|
|
144
203
|
}
|
|
@@ -4,6 +4,28 @@
|
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-wrap: wrap;
|
|
6
6
|
gap: $spacing-sm;
|
|
7
|
+
|
|
8
|
+
// Desktop: align the Sort filter (and anything following it) to the right of the filter row.
|
|
9
|
+
@include media($breakpoint-md) {
|
|
10
|
+
> .#{$px}-filters-inline__sort {
|
|
11
|
+
margin-left: auto;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Mobile: filter buttons scroll horizontally and overflow off-screen instead of wrapping.
|
|
16
|
+
@include media($breakpoint-md, 'max') {
|
|
17
|
+
flex-wrap: nowrap;
|
|
18
|
+
overflow-x: auto;
|
|
19
|
+
scrollbar-width: none;
|
|
20
|
+
|
|
21
|
+
&::-webkit-scrollbar {
|
|
22
|
+
display: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> * {
|
|
26
|
+
flex: 0 0 auto;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
7
29
|
}
|
|
8
30
|
|
|
9
31
|
.#{$px}-filter-drawer {
|