@phillips/seldon 1.168.0 → 1.169.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/components/Drawer/Drawer.d.ts +9 -1
- package/dist/components/Drawer/Drawer.js +67 -35
- package/dist/components/Drawer/Drawer.stories.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +74 -72
- package/dist/patterns/FilterMenu/FilterMenu.d.ts +1 -1
- package/dist/patterns/FilterMenu/FilterMenu.js +10 -10
- package/dist/patterns/FiltersInline/FilterButton.d.ts +28 -0
- package/dist/patterns/FiltersInline/FilterButton.js +35 -0
- package/dist/patterns/FiltersInline/FilterDropdownMenuDesktop.d.ts +3 -0
- package/dist/patterns/FiltersInline/FilterDropdownMenuDesktop.js +92 -0
- package/dist/patterns/FiltersInline/FilterDropdownMenuMobile.d.ts +3 -0
- package/dist/patterns/FiltersInline/FilterDropdownMenuMobile.js +99 -0
- package/dist/patterns/FiltersInline/FiltersInline.d.ts +12 -0
- package/dist/patterns/FiltersInline/FiltersInline.js +65 -0
- package/dist/patterns/FiltersInline/FiltersInline.stories.d.ts +17 -0
- package/dist/patterns/FiltersInline/FiltersInline.test.d.ts +1 -0
- package/dist/patterns/FiltersInline/MainFilterDropdown.d.ts +3 -0
- package/dist/patterns/FiltersInline/MainFilterDropdown.js +102 -0
- package/dist/patterns/FiltersInline/SubFilterDropdown.d.ts +3 -0
- package/dist/patterns/FiltersInline/SubFilterDropdown.js +135 -0
- package/dist/patterns/FiltersInline/index.d.ts +1 -0
- package/dist/patterns/FiltersInline/types.d.ts +191 -0
- package/dist/patterns/FiltersInline/types.js +4 -0
- package/dist/patterns/FiltersInline/utils.d.ts +61 -0
- package/dist/patterns/FiltersInline/utils.js +33 -0
- package/dist/scss/componentStyles.scss +3 -0
- package/dist/scss/components/Drawer/_drawer.scss +113 -2
- package/dist/scss/patterns/FiltersInline/_filterButton.scss +26 -0
- package/dist/scss/patterns/FiltersInline/_filterDropdownMenu.scss +126 -0
- package/dist/scss/patterns/FiltersInline/_filtersInline.scss +15 -0
- package/package.json +1 -1
|
@@ -12,6 +12,14 @@ export interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
12
12
|
* The content of the drawer
|
|
13
13
|
*/
|
|
14
14
|
children?: React.ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Which side the drawer opens from: left, right, or bottom
|
|
17
|
+
*/
|
|
18
|
+
drawerOpenSide?: 'left' | 'right' | 'bottom';
|
|
19
|
+
/**
|
|
20
|
+
* Optional label for the bottom content area
|
|
21
|
+
*/
|
|
22
|
+
bottomContentLabel?: string;
|
|
15
23
|
}
|
|
16
24
|
/**
|
|
17
25
|
* ## Overview
|
|
@@ -19,5 +27,5 @@ export interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
19
27
|
* A component for displaying a drawer.
|
|
20
28
|
*
|
|
21
29
|
*/
|
|
22
|
-
declare const Drawer: ({ className, isOpen, onClose, children, ...props }: DrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare const Drawer: ({ className, isOpen, onClose, children, drawerOpenSide, bottomContentLabel, ...props }: DrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
31
|
export default Drawer;
|
|
@@ -1,48 +1,80 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
1
|
+
import { jsx as o, jsxs as e } from "react/jsx-runtime";
|
|
2
|
+
import { Root as u, Portal as N, Overlay as v, Content as $, Title as x, Description as y, Close as n } from "../../node_modules/@radix-ui/react-dialog/dist/index.js";
|
|
3
3
|
import a from "../../node_modules/classnames/index.js";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
import { getCommonProps as g, noOp as w } from "../../utils/index.js";
|
|
5
|
+
import { ButtonVariants as c } from "../Button/types.js";
|
|
6
|
+
import m from "../Icon/Icon.js";
|
|
7
|
+
import d from "../IconButton/IconButton.js";
|
|
8
|
+
import k from "../Text/Text.js";
|
|
9
|
+
import { TextVariants as B } from "../Text/types.js";
|
|
10
|
+
const q = ({
|
|
11
|
+
className: h,
|
|
12
|
+
isOpen: p = !1,
|
|
13
|
+
onClose: r = w,
|
|
14
|
+
children: C,
|
|
15
|
+
drawerOpenSide: i = "right",
|
|
16
|
+
bottomContentLabel: f,
|
|
17
|
+
...l
|
|
18
|
+
}) => {
|
|
19
|
+
const { className: t, ..._ } = g(l, "Drawer"), s = i === "bottom";
|
|
20
|
+
return /* @__PURE__ */ o(
|
|
21
|
+
u,
|
|
12
22
|
{
|
|
13
|
-
open:
|
|
14
|
-
onOpenChange: (
|
|
15
|
-
|
|
23
|
+
open: p,
|
|
24
|
+
onOpenChange: (b) => {
|
|
25
|
+
b || r();
|
|
16
26
|
},
|
|
17
|
-
children: /* @__PURE__ */
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
|
|
27
|
+
children: /* @__PURE__ */ e(N, { children: [
|
|
28
|
+
/* @__PURE__ */ o(
|
|
29
|
+
v,
|
|
20
30
|
{
|
|
21
|
-
onClick:
|
|
22
|
-
className: a(`${
|
|
31
|
+
onClick: r,
|
|
32
|
+
className: a(`${t}__overlay`),
|
|
23
33
|
"data-testid": "drawer-overlay"
|
|
24
34
|
}
|
|
25
35
|
),
|
|
26
|
-
/* @__PURE__ */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
/* @__PURE__ */ e(
|
|
37
|
+
$,
|
|
38
|
+
{
|
|
39
|
+
className: a(t, h, { [`${t}--bottom`]: s }),
|
|
40
|
+
"data-side": i,
|
|
41
|
+
id: l.id,
|
|
42
|
+
..._,
|
|
43
|
+
children: [
|
|
44
|
+
/* @__PURE__ */ o(x, {}),
|
|
45
|
+
/* @__PURE__ */ o(y, {}),
|
|
46
|
+
s ? /* @__PURE__ */ e("div", { className: `${t}__bottom-content`, children: [
|
|
47
|
+
/* @__PURE__ */ o(n, { asChild: !0, children: /* @__PURE__ */ o(
|
|
48
|
+
d,
|
|
49
|
+
{
|
|
50
|
+
onClick: r,
|
|
51
|
+
className: a(`${t}__close--bottom`),
|
|
52
|
+
"aria-label": "Close",
|
|
53
|
+
"data-testid": "drawer-close",
|
|
54
|
+
variant: c.tertiary,
|
|
55
|
+
children: /* @__PURE__ */ o(m, { icon: "CloseX", color: "currentColor" })
|
|
56
|
+
}
|
|
57
|
+
) }),
|
|
58
|
+
/* @__PURE__ */ o(k, { variant: B.string1, className: `${t}__bottom-content--label`, children: f })
|
|
59
|
+
] }) : /* @__PURE__ */ o(n, { asChild: !0, children: /* @__PURE__ */ o(
|
|
60
|
+
d,
|
|
61
|
+
{
|
|
62
|
+
onClick: r,
|
|
63
|
+
className: a(`${t}__close`),
|
|
64
|
+
"aria-label": "Close",
|
|
65
|
+
"data-testid": "drawer-close",
|
|
66
|
+
variant: c.tertiary,
|
|
67
|
+
children: /* @__PURE__ */ o(m, { icon: "CloseX", color: "currentColor" })
|
|
68
|
+
}
|
|
69
|
+
) }),
|
|
70
|
+
C
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
)
|
|
42
74
|
] })
|
|
43
75
|
}
|
|
44
76
|
);
|
|
45
77
|
};
|
|
46
78
|
export {
|
|
47
|
-
|
|
79
|
+
q as default
|
|
48
80
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DrawerProps } from './Drawer';
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
|
-
component: ({ className, isOpen, onClose, children, ...props }: DrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
component: ({ className, isOpen, onClose, children, drawerOpenSide, bottomContentLabel, ...props }: DrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
};
|
|
6
6
|
export default meta;
|
|
7
7
|
export declare const Playground: {
|
package/dist/index.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export * from './components/PinchZoom';
|
|
|
66
66
|
export * from './components/SeldonImage';
|
|
67
67
|
export * from './components/Tabs';
|
|
68
68
|
export * from './patterns/DetailList';
|
|
69
|
+
export * from './patterns/FiltersInline';
|
|
69
70
|
export * from './patterns/SaleCard';
|
|
70
71
|
export * from './patterns/SaleHeaderBanner';
|
|
71
72
|
export * from './patterns/ViewingDetails';
|
package/dist/index.js
CHANGED
|
@@ -2,11 +2,11 @@ import { PaddingTokens as a, SpacingTokens as f, defaultYear as s, emailValidati
|
|
|
2
2
|
import { default as C } from "./pages/Page.js";
|
|
3
3
|
import { SSRMediaQuery as P, ssrMediaQueryStyle as A } from "./providers/SeldonProvider/utils.js";
|
|
4
4
|
import { usePendingState as L } from "./utils/hooks.js";
|
|
5
|
-
import { AuctionStatus as
|
|
5
|
+
import { AuctionStatus as V, LotStatus as b, SupportedLanguages as h } from "./types/commonTypes.js";
|
|
6
6
|
import { default as w } from "./components/Button/Button.js";
|
|
7
7
|
import { ButtonVariants as y } from "./components/Button/types.js";
|
|
8
|
-
import { default as
|
|
9
|
-
import { default as
|
|
8
|
+
import { default as F } from "./components/IconButton/IconButton.js";
|
|
9
|
+
import { default as M } from "./components/Accordion/Accordion.js";
|
|
10
10
|
import { default as E } from "./components/Accordion/AccordionItem.js";
|
|
11
11
|
import { AccordionItemVariant as U, AccordionVariants as O } from "./components/Accordion/types.js";
|
|
12
12
|
import { default as Q } from "./components/Breadcrumb/Breadcrumb.js";
|
|
@@ -29,12 +29,12 @@ import { default as ce } from "./components/Dropdown/Dropdown.js";
|
|
|
29
29
|
import { default as Ce } from "./components/ErrorBoundary/ErrorBoundary.js";
|
|
30
30
|
import { Grid as Pe } from "./components/Grid/Grid.js";
|
|
31
31
|
import { default as Be } from "./components/GridItem/GridItem.js";
|
|
32
|
-
import { GridItemAlign as
|
|
33
|
-
import { default as
|
|
32
|
+
import { GridItemAlign as Ie } from "./components/GridItem/types.js";
|
|
33
|
+
import { default as be } from "./components/Input/Input.js";
|
|
34
34
|
import { default as ke } from "./components/Link/Link.js";
|
|
35
35
|
import { LinkVariants as ve } from "./components/Link/types.js";
|
|
36
36
|
import { default as De } from "./components/LinkBlock/LinkBlock.js";
|
|
37
|
-
import { default as
|
|
37
|
+
import { default as He } from "./components/LinkList/LinkList.js";
|
|
38
38
|
import { default as Ne } from "./components/Modal/Modal.js";
|
|
39
39
|
import { default as Ge } from "./components/Navigation/Navigation.js";
|
|
40
40
|
import { default as Oe } from "./components/Navigation/NavigationItem/NavigationItem.js";
|
|
@@ -55,12 +55,12 @@ import { TextAlignments as gt, TextVariants as ct } from "./components/Text/type
|
|
|
55
55
|
import { default as Ct } from "./components/Text/Text.js";
|
|
56
56
|
import { TextSymbolVariants as Pt } from "./components/TextSymbol/types.js";
|
|
57
57
|
import { default as Bt } from "./components/TextSymbol/TextSymbol.js";
|
|
58
|
-
import { default as
|
|
59
|
-
import { default as
|
|
58
|
+
import { default as It } from "./components/Video/Video.js";
|
|
59
|
+
import { default as bt } from "./patterns/DetailList/DetailList.js";
|
|
60
60
|
import { DetailListAlignment as kt } from "./patterns/DetailList/types.js";
|
|
61
61
|
import { default as vt } from "./patterns/FavoritesCollectionTile/FavoritesCollectionTile.js";
|
|
62
62
|
import { default as Dt } from "./patterns/HeroBanner/HeroBanner.js";
|
|
63
|
-
import { default as
|
|
63
|
+
import { default as Ht } from "./patterns/LanguageSelector/LanguageSelector.js";
|
|
64
64
|
import { default as Nt } from "./patterns/SaleHeaderBanner/SaleHeaderBanner.js";
|
|
65
65
|
import { default as Gt } from "./patterns/SaleHeaderBanner/SaleHeaderBrowseAuctions.js";
|
|
66
66
|
import { default as Ot } from "./patterns/Social/Social.js";
|
|
@@ -77,46 +77,47 @@ import { default as so } from "./components/ExitGateCard/ExitGateCard.js";
|
|
|
77
77
|
import { default as mo } from "./components/Loader/Loader.js";
|
|
78
78
|
import { default as uo } from "./components/PageContentWrapper/PageContentWrapper.js";
|
|
79
79
|
import { default as io } from "./components/PhoneNumberPicker/PhoneNumberPicker.js";
|
|
80
|
-
import { default as go } from "./patterns/
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import { default as Lo } from "./
|
|
85
|
-
import { default as
|
|
86
|
-
import { default as ho } from "./
|
|
87
|
-
import { default as wo } from "./components/
|
|
88
|
-
import { default as yo } from "./components/
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import { default as Eo } from "./components/
|
|
92
|
-
import { default as Uo } from "./components/
|
|
93
|
-
import { default as Ro } from "./components/Filter/
|
|
94
|
-
import { default as jo } from "./components/Filter/
|
|
95
|
-
import { default as Wo } from "./components/
|
|
96
|
-
import { default as Zo } from "./components/
|
|
97
|
-
import { default as Jo } from "./components/
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import { default as rr } from "./patterns/
|
|
102
|
-
import { default as fr } from "./patterns/BidSnapshot/
|
|
103
|
-
import {
|
|
104
|
-
import {
|
|
105
|
-
import { default as xr } from "./patterns/
|
|
80
|
+
import { default as go } from "./patterns/FiltersInline/FiltersInline.js";
|
|
81
|
+
import { default as So } from "./patterns/SaleCard/SaleCard.js";
|
|
82
|
+
import { SaleCardActions as To } from "./patterns/SaleCard/SaleCardActions.js";
|
|
83
|
+
import { SaleCardVariants as Ao } from "./patterns/SaleCard/types.js";
|
|
84
|
+
import { default as Lo } from "./patterns/ViewingDetails/ViewingDetails.js";
|
|
85
|
+
import { default as Vo } from "./site-furniture/Footer/Footer.js";
|
|
86
|
+
import { default as ho } from "./site-furniture/Header/Header.js";
|
|
87
|
+
import { default as wo } from "./components/AddToCalendar/AddToCalendar.js";
|
|
88
|
+
import { default as yo } from "./components/Article/Article.js";
|
|
89
|
+
import { default as Fo } from "./components/Countdown/Countdown.js";
|
|
90
|
+
import { CountdownVariants as Mo } from "./components/Countdown/types.js";
|
|
91
|
+
import { default as Eo } from "./components/Divider/Divider.js";
|
|
92
|
+
import { default as Uo } from "./components/FavoritingTileButton/FavoritingTileButton.js";
|
|
93
|
+
import { default as Ro } from "./components/Filter/Filter.js";
|
|
94
|
+
import { default as jo } from "./components/Filter/FilterInput.js";
|
|
95
|
+
import { default as Wo } from "./components/Filter/FilterHeader.js";
|
|
96
|
+
import { default as Zo } from "./components/Pictogram/Pictogram.js";
|
|
97
|
+
import { default as Jo } from "./components/TextArea/TextArea.js";
|
|
98
|
+
import { default as Xo } from "./components/Toast/Toast.js";
|
|
99
|
+
import { ToastProvider as $o } from "./components/Toast/ToastContextProvider.js";
|
|
100
|
+
import { useToast as tr } from "./components/Toast/useToast.js";
|
|
101
|
+
import { default as rr } from "./patterns/AccountPageHeader/AccountPageHeader.js";
|
|
102
|
+
import { default as fr } from "./patterns/BidSnapshot/BidSnapshot.js";
|
|
103
|
+
import { default as lr } from "./patterns/BidSnapshot/BidMessage.js";
|
|
104
|
+
import { BidMessageVariants as mr, BidStatusEnum as pr } from "./patterns/BidSnapshot/types.js";
|
|
105
|
+
import { default as xr } from "./patterns/FilterMenu/FilterMenu.js";
|
|
106
|
+
import { default as nr } from "./patterns/ObjectTile/ObjectTile.js";
|
|
106
107
|
export {
|
|
107
|
-
|
|
108
|
+
M as Accordion,
|
|
108
109
|
E as AccordionItem,
|
|
109
110
|
U as AccordionItemVariant,
|
|
110
111
|
O as AccordionVariants,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
rr as AccountPageHeader,
|
|
113
|
+
wo as AddToCalendar,
|
|
114
|
+
yo as Article,
|
|
115
|
+
V as AuctionStatus,
|
|
115
116
|
Yt as AuthState,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
lr as BidMessage,
|
|
118
|
+
mr as BidMessageVariants,
|
|
119
|
+
fr as BidSnapshot,
|
|
120
|
+
pr as BidStatusEnum,
|
|
120
121
|
Q as Breadcrumb,
|
|
121
122
|
w as Button,
|
|
122
123
|
y as ButtonVariants,
|
|
@@ -132,56 +133,57 @@ export {
|
|
|
132
133
|
ao as ComposedModal,
|
|
133
134
|
de as ContentPeek,
|
|
134
135
|
pe as ContentPeekHeightUnits,
|
|
135
|
-
|
|
136
|
-
|
|
136
|
+
Fo as Countdown,
|
|
137
|
+
Mo as CountdownVariants,
|
|
137
138
|
xe as Detail,
|
|
138
|
-
|
|
139
|
+
bt as DetailList,
|
|
139
140
|
kt as DetailListAlignment,
|
|
140
|
-
|
|
141
|
+
Eo as Divider,
|
|
141
142
|
ne as Drawer,
|
|
142
143
|
ce as Dropdown,
|
|
143
144
|
Ce as ErrorBoundary,
|
|
144
145
|
so as ExitGateCard,
|
|
145
146
|
vt as FavoritesCollectionTile,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
Uo as FavoritingTileButton,
|
|
148
|
+
Ro as Filter,
|
|
149
|
+
Wo as FilterHeader,
|
|
150
|
+
jo as FilterInput,
|
|
151
|
+
xr as FilterMenu,
|
|
152
|
+
go as FiltersInline,
|
|
153
|
+
Vo as Footer,
|
|
152
154
|
Pe as Grid,
|
|
153
155
|
Be as GridItem,
|
|
154
|
-
|
|
155
|
-
|
|
156
|
+
Ie as GridItemAlign,
|
|
157
|
+
ho as Header,
|
|
156
158
|
Dt as HeroBanner,
|
|
157
159
|
z as Icon,
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
160
|
+
F as IconButton,
|
|
161
|
+
be as Input,
|
|
162
|
+
Ht as LanguageSelector,
|
|
161
163
|
ke as Link,
|
|
162
164
|
De as LinkBlock,
|
|
163
|
-
|
|
165
|
+
He as LinkList,
|
|
164
166
|
ve as LinkVariants,
|
|
165
167
|
mo as Loader,
|
|
166
|
-
|
|
168
|
+
b as LotStatus,
|
|
167
169
|
Ne as Modal,
|
|
168
170
|
Ge as Navigation,
|
|
169
171
|
Oe as NavigationItem,
|
|
170
172
|
Qe as NavigationItemTrigger,
|
|
171
173
|
ze as NavigationList,
|
|
172
|
-
|
|
174
|
+
nr as ObjectTile,
|
|
173
175
|
a as PaddingTokens,
|
|
174
176
|
C as Page,
|
|
175
177
|
uo as PageContentWrapper,
|
|
176
178
|
Ye as Pagination,
|
|
177
179
|
io as PhoneNumberPicker,
|
|
178
|
-
|
|
180
|
+
Zo as Pictogram,
|
|
179
181
|
qe as PinchZoom,
|
|
180
182
|
Ke as Row,
|
|
181
183
|
P as SSRMediaQuery,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
184
|
+
So as SaleCard,
|
|
185
|
+
To as SaleCardActions,
|
|
186
|
+
Ao as SaleCardVariants,
|
|
185
187
|
Nt as SaleHeaderBanner,
|
|
186
188
|
Gt as SaleHeaderBrowseAuctions,
|
|
187
189
|
_e as Search,
|
|
@@ -202,15 +204,15 @@ export {
|
|
|
202
204
|
it as TagsList,
|
|
203
205
|
Ct as Text,
|
|
204
206
|
gt as TextAlignments,
|
|
205
|
-
|
|
207
|
+
Jo as TextArea,
|
|
206
208
|
Pt as TextSymbolVariants,
|
|
207
209
|
Bt as TextSymbols,
|
|
208
210
|
ct as TextVariants,
|
|
209
|
-
|
|
210
|
-
|
|
211
|
+
Xo as Toast,
|
|
212
|
+
$o as ToastProvider,
|
|
211
213
|
qt as UserManagement,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
+
It as Video,
|
|
215
|
+
Lo as ViewingDetails,
|
|
214
216
|
_t as ViewingsList,
|
|
215
217
|
s as defaultYear,
|
|
216
218
|
l as emailValidation,
|
|
@@ -225,5 +227,5 @@ export {
|
|
|
225
227
|
A as ssrMediaQueryStyle,
|
|
226
228
|
c as useNormalizedInputProps,
|
|
227
229
|
L as usePendingState,
|
|
228
|
-
|
|
230
|
+
tr as useToast
|
|
229
231
|
};
|
|
@@ -16,7 +16,7 @@ export interface FilterMenuProps<ElementType = HTMLFormElement> extends React.HT
|
|
|
16
16
|
*
|
|
17
17
|
* [Figma Link](https://www.figma.com/design/OvBXAq48blO1r4qYbeBPjW/RW---Sale-Page-(PLP)?node-id=892-71019&node-type=frame&t=AsBDn4UgUEjNUnf7-0)
|
|
18
18
|
*
|
|
19
|
-
* [Storybook Link](https://phillips-seldon.netlify.app/?path=/docs/patterns-
|
|
19
|
+
* [Storybook Link](https://phillips-seldon.netlify.app/?path=/docs/patterns-filtermenu--overview)
|
|
20
20
|
*/
|
|
21
21
|
declare const FilterMenu: React.ForwardRefExoticComponent<FilterMenuProps<HTMLFormElement> & React.RefAttributes<HTMLFormElement>>;
|
|
22
22
|
export default FilterMenu;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { jsx as u } from "react/jsx-runtime";
|
|
2
|
-
import d, { forwardRef as F, useState as N, Children as w, cloneElement as
|
|
3
|
-
import { getCommonProps as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
2
|
+
import d, { forwardRef as F, useState as N, Children as w, cloneElement as g } from "react";
|
|
3
|
+
import { getCommonProps as A } from "../../utils/index.js";
|
|
4
|
+
import a from "../../node_modules/classnames/index.js";
|
|
5
|
+
import C from "../../components/Filter/Filter.js";
|
|
6
6
|
const V = F(
|
|
7
|
-
({ className:
|
|
8
|
-
const { className: n, ...p } =
|
|
7
|
+
({ className: t, children: l, element: i = "form", ...r }, m) => {
|
|
8
|
+
const { className: n, ...p } = A(r, "FilterMenu"), [o, f] = N(null), s = o?.length, c = w.map(
|
|
9
9
|
l,
|
|
10
|
-
(e) => d.isValidElement(e) && e.type ===
|
|
10
|
+
(e) => d.isValidElement(e) && e.type === C ? g(e, {
|
|
11
11
|
setViewAllFilter: f,
|
|
12
12
|
hidden: s ? o !== e.props.name : !1,
|
|
13
13
|
isViewingAll: s,
|
|
14
|
-
className: s &&
|
|
14
|
+
className: s && a(e.props.className, "is-opening")
|
|
15
15
|
}) : e
|
|
16
16
|
);
|
|
17
|
-
return /* @__PURE__ */ u(i, { ...p, ...r, className:
|
|
17
|
+
return /* @__PURE__ */ u(i, { ...p, ...r, className: a(n, t), ref: m, children: c });
|
|
18
18
|
}
|
|
19
19
|
);
|
|
20
|
-
V.displayName = "
|
|
20
|
+
V.displayName = "FilterMenu";
|
|
21
21
|
export {
|
|
22
22
|
V as default
|
|
23
23
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { FilterButtonIconType } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the FilterButton component.
|
|
5
|
+
*/
|
|
6
|
+
export type FilterButton = {
|
|
7
|
+
/** Optional CSS class for the filter button */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** The text label displayed on the button */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Click handler for the button */
|
|
12
|
+
onClick: () => void;
|
|
13
|
+
/** Whether the button is currently selected/active */
|
|
14
|
+
isSelected: boolean;
|
|
15
|
+
/** Icon type to display (defaults to ChevronDown) */
|
|
16
|
+
type: FilterButtonIconType;
|
|
17
|
+
/** Count badge to show next to the button */
|
|
18
|
+
count: number;
|
|
19
|
+
/** Optional unique identifier for the button (used for test IDs) */
|
|
20
|
+
id?: string;
|
|
21
|
+
/** Optional aria-label for accessibility */
|
|
22
|
+
ariaLabel?: string;
|
|
23
|
+
/** If true, applies mobile-specific styling */
|
|
24
|
+
isMobile?: boolean;
|
|
25
|
+
/** Total number of filters for this button */
|
|
26
|
+
totalCount: number;
|
|
27
|
+
};
|
|
28
|
+
export declare const FilterButton: React.ForwardRefExoticComponent<FilterButton & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsxs as p, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import u from "../../node_modules/classnames/index.js";
|
|
3
|
+
import b from "react";
|
|
4
|
+
import h from "../../components/Button/Button.js";
|
|
5
|
+
import { ButtonVariants as $ } from "../../components/Button/types.js";
|
|
6
|
+
import x from "../../components/Icon/Icon.js";
|
|
7
|
+
import { TextVariants as v } from "../../components/Text/types.js";
|
|
8
|
+
import w from "../../components/Text/Text.js";
|
|
9
|
+
import { px as t } from "../../utils/index.js";
|
|
10
|
+
import { getIcon as B } from "./utils.js";
|
|
11
|
+
const F = b.forwardRef(
|
|
12
|
+
({ className: m, label: n, onClick: l, isSelected: a, type: r = "ChevronDown", count: s, id: o, ariaLabel: f, isMobile: c, totalCount: i }, d) => /* @__PURE__ */ p(
|
|
13
|
+
h,
|
|
14
|
+
{
|
|
15
|
+
ref: d,
|
|
16
|
+
className: u(`${t}-filter-button`, m, {
|
|
17
|
+
[`${t}-filter-button--selected`]: a || s > 0 || r === "Filter" && i > 0
|
|
18
|
+
}),
|
|
19
|
+
"aria-label": f,
|
|
20
|
+
variant: $.secondary,
|
|
21
|
+
"data-testid": `${o}-filter-button`,
|
|
22
|
+
"data-viewport": c ? "mobile" : "desktop",
|
|
23
|
+
onClick: l,
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ e(w, { variant: v.string2, "data-testid": `${o}-filter-label`, children: n }),
|
|
26
|
+
/* @__PURE__ */ e(x, { icon: B(r, a), height: 8, width: 8, className: `${t}__icon` }),
|
|
27
|
+
i > 0 && r === "Filter" && /* @__PURE__ */ e("div", { className: `${t}-filter-button--count`, "data-testid": `${o}-filter-count`, children: i })
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
);
|
|
32
|
+
F.displayName = "FilterButton";
|
|
33
|
+
export {
|
|
34
|
+
F as FilterButton
|
|
35
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsxs as p, jsx as r, Fragment as C } from "react/jsx-runtime";
|
|
2
|
+
import e from "../../node_modules/classnames/index.js";
|
|
3
|
+
import F from "react";
|
|
4
|
+
import n from "../../components/Button/Button.js";
|
|
5
|
+
import { ButtonVariants as s } from "../../components/Button/types.js";
|
|
6
|
+
import v from "../../components/Filter/FilterHeader.js";
|
|
7
|
+
import D from "../../components/Filter/FilterInput.js";
|
|
8
|
+
import m from "../../components/Text/Text.js";
|
|
9
|
+
import { TextVariants as c } from "../../components/Text/types.js";
|
|
10
|
+
import { px as B } from "../../utils/index.js";
|
|
11
|
+
import { getFilterButtonLabel as S, getFilterDimensions as j, handleInputChange as A } from "./utils.js";
|
|
12
|
+
const I = F.forwardRef(
|
|
13
|
+
({
|
|
14
|
+
className: f,
|
|
15
|
+
buttonType: i,
|
|
16
|
+
filters: _,
|
|
17
|
+
filterIndex: h,
|
|
18
|
+
onSelectFilter: b,
|
|
19
|
+
onClickClear: u,
|
|
20
|
+
onApplyFilter: d,
|
|
21
|
+
resultsCount: $,
|
|
22
|
+
ariaLabels: N,
|
|
23
|
+
filterButtonLabel: x,
|
|
24
|
+
filterButtonLabelTranslated: g,
|
|
25
|
+
dropdownMenuTranslation: o
|
|
26
|
+
}, k) => {
|
|
27
|
+
const l = i === "Sort", t = `${B}-filter-dropdown-menu`;
|
|
28
|
+
return /* @__PURE__ */ p(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
className: e(t, f),
|
|
32
|
+
ref: k,
|
|
33
|
+
"data-testid": "filter-dropdown-desktop",
|
|
34
|
+
"aria-label": N || `${i} dropdown desktop`,
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ r(
|
|
37
|
+
v,
|
|
38
|
+
{
|
|
39
|
+
heading: S(x, null, g || null),
|
|
40
|
+
className: e(`${t}__header`)
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
/* @__PURE__ */ r("div", { className: e(`${t}__filters`), children: j(_, h).map((a) => /* @__PURE__ */ r(
|
|
44
|
+
D,
|
|
45
|
+
{
|
|
46
|
+
id: a.label,
|
|
47
|
+
labelText: a.label,
|
|
48
|
+
name: a.label,
|
|
49
|
+
type: l ? "radio" : "checkbox",
|
|
50
|
+
checked: a.active,
|
|
51
|
+
disabled: a?.disabled,
|
|
52
|
+
onChange: (w) => A(w, i ?? "", b)
|
|
53
|
+
},
|
|
54
|
+
a.label
|
|
55
|
+
)) }),
|
|
56
|
+
/* @__PURE__ */ r("div", { className: e(l ? `${t}__button-wrap` : `${t}__buttons-wrap`), children: l ? /* @__PURE__ */ r(
|
|
57
|
+
n,
|
|
58
|
+
{
|
|
59
|
+
className: e(`${t}__button`),
|
|
60
|
+
variant: s.primary,
|
|
61
|
+
onClick: () => d?.(!1),
|
|
62
|
+
children: /* @__PURE__ */ r(m, { variant: c.string2, className: `${t}__button-text`, children: o?.confirm || "Confirm" })
|
|
63
|
+
}
|
|
64
|
+
) : /* @__PURE__ */ p(C, { children: [
|
|
65
|
+
/* @__PURE__ */ r(
|
|
66
|
+
n,
|
|
67
|
+
{
|
|
68
|
+
className: e(`${t}__buttons`),
|
|
69
|
+
variant: s.secondary,
|
|
70
|
+
onClick: () => u?.(i ?? ""),
|
|
71
|
+
children: /* @__PURE__ */ r(m, { variant: c.string2, children: o?.clearAll || "Clear all" })
|
|
72
|
+
}
|
|
73
|
+
),
|
|
74
|
+
/* @__PURE__ */ r(
|
|
75
|
+
n,
|
|
76
|
+
{
|
|
77
|
+
className: e(`${t}__buttons`),
|
|
78
|
+
variant: s.primary,
|
|
79
|
+
onClick: () => d?.(!1),
|
|
80
|
+
children: /* @__PURE__ */ r(m, { variant: c.string2, className: `${t}__button-text`, children: o?.showAuctions || `Show ${$} Auctions` })
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
] }) })
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
I.displayName = "FilterDropdownMenuDesktop";
|
|
90
|
+
export {
|
|
91
|
+
I as FilterDropdownMenuDesktop
|
|
92
|
+
};
|