@mobielnl/elements 0.7.0 → 0.8.1
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/elements.css +1 -1
- package/dist/elements.js +4 -16
- package/dist/elements.umd.cjs +226 -177
- package/dist/{index-C4M3Nf9p.js → index-DCRpjyU2.js} +16879 -16245
- package/dist/{index-D-uHa1PI.js → index-M4VofWGm.js} +1 -1
- package/dist/index.d.ts +610 -576
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import { Component } from 'react';
|
|
2
|
-
import { ErrorInfo } from 'react';
|
|
3
1
|
import { JSX } from 'react/jsx-runtime';
|
|
4
|
-
import { JSXElementConstructor } from 'react';
|
|
5
|
-
import { ReactElement } from 'react';
|
|
6
2
|
import { ReactNode } from 'react';
|
|
7
|
-
import { ReactPortal } from 'react';
|
|
8
3
|
import { z } from 'zod';
|
|
9
4
|
import * as z_2 from 'zod';
|
|
10
5
|
|
|
11
|
-
export declare function ActiveFilterChips({ activeFilters, filterOptions, onFilterRemove, classNames, }: ActiveFilterChipsProps): JSX.Element | null;
|
|
12
|
-
|
|
13
6
|
declare type ActiveFilterChipsClassNames = {
|
|
14
7
|
/** The container of the filter chips */
|
|
15
8
|
container?: string;
|
|
@@ -17,15 +10,177 @@ declare type ActiveFilterChipsClassNames = {
|
|
|
17
10
|
filterChip?: FilterChipClassNames;
|
|
18
11
|
};
|
|
19
12
|
|
|
20
|
-
declare type
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
|
|
13
|
+
declare type AverageSectionClassNames = {
|
|
14
|
+
/** Container for the average per month section */
|
|
15
|
+
container?: string;
|
|
16
|
+
/** Header section with icon and title */
|
|
17
|
+
header?: string;
|
|
18
|
+
/** Container for icon and text */
|
|
19
|
+
headerContent?: string;
|
|
20
|
+
/** Icon container */
|
|
21
|
+
icon?: string;
|
|
22
|
+
/** Title text */
|
|
23
|
+
title?: string;
|
|
24
|
+
/** Subtitle/description text */
|
|
25
|
+
subtitle?: string;
|
|
26
|
+
/** Price display in header */
|
|
27
|
+
price?: string;
|
|
28
|
+
/** Container for monthly fees list */
|
|
29
|
+
monthlyFeesContainer?: string;
|
|
30
|
+
/** Individual monthly fee item */
|
|
31
|
+
monthlyFee?: MonthlyFeeClassNames;
|
|
32
|
+
/** One-time fee row */
|
|
33
|
+
oneTimeFee?: {
|
|
34
|
+
container?: string;
|
|
35
|
+
label?: string;
|
|
36
|
+
price?: string;
|
|
37
|
+
};
|
|
38
|
+
/** Activation fee row */
|
|
39
|
+
activationFee?: {
|
|
40
|
+
container?: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
price?: string;
|
|
43
|
+
};
|
|
44
|
+
/** Installation fee row (for fixed products) */
|
|
45
|
+
installationFee?: {
|
|
46
|
+
container?: string;
|
|
47
|
+
label?: string;
|
|
48
|
+
price?: string;
|
|
49
|
+
};
|
|
50
|
+
/** Cashback row */
|
|
51
|
+
cashback?: {
|
|
52
|
+
container?: string;
|
|
53
|
+
label?: string;
|
|
54
|
+
price?: string;
|
|
55
|
+
};
|
|
56
|
+
/** Horizontal separator */
|
|
57
|
+
separator?: string;
|
|
58
|
+
/** Total costs row */
|
|
59
|
+
totalCosts?: {
|
|
60
|
+
container?: string;
|
|
61
|
+
label?: string;
|
|
62
|
+
price?: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
declare type ChannelsClassNames = {
|
|
67
|
+
/** The base slot of the channels section, it is the container of the channels section */
|
|
68
|
+
base?: string;
|
|
69
|
+
/** The description text above the channels list */
|
|
70
|
+
description?: string;
|
|
71
|
+
/** The list container for channels */
|
|
72
|
+
list?: string;
|
|
73
|
+
/** Individual list item styles */
|
|
74
|
+
listItem?: string;
|
|
75
|
+
/** Container for channel name and HD badge */
|
|
76
|
+
channelContainer?: string;
|
|
77
|
+
/** HD icon */
|
|
78
|
+
hdIcon?: string;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
declare type CombiDealModalClassNames = {
|
|
82
|
+
/** Modal dialog class styling slots - see type `ModalClassNames` */
|
|
83
|
+
modal?: ModalClassNames_3;
|
|
84
|
+
/** Header section containing icon and title */
|
|
85
|
+
header?: {
|
|
86
|
+
/** Container wrapping the header content */
|
|
87
|
+
container?: string;
|
|
88
|
+
/** Icon wrapper with background */
|
|
89
|
+
iconWrapper?: string;
|
|
90
|
+
/** Discount icon */
|
|
91
|
+
icon?: string;
|
|
92
|
+
/** Main title text */
|
|
93
|
+
title?: string;
|
|
94
|
+
/** Description text below title */
|
|
95
|
+
description?: string;
|
|
96
|
+
};
|
|
97
|
+
/** Home internet provider selection section */
|
|
98
|
+
providerSelection?: {
|
|
99
|
+
/** Home internet provider section title
|
|
100
|
+
* @example 'Thuis internet' */
|
|
101
|
+
title?: string;
|
|
102
|
+
/** Select component styling */
|
|
103
|
+
select?: {
|
|
104
|
+
/** Select label styling */
|
|
105
|
+
label?: string;
|
|
106
|
+
/** Select trigger button styling */
|
|
107
|
+
trigger?: string;
|
|
108
|
+
/** Provider item container in select */
|
|
109
|
+
itemContainer?: string;
|
|
110
|
+
/** Provider icon styling */
|
|
111
|
+
icon?: string;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
/** Other subscriptions section */
|
|
115
|
+
otherSubscriptions?: {
|
|
116
|
+
/** Container for the section */
|
|
117
|
+
container?: string;
|
|
118
|
+
/** Section label */
|
|
119
|
+
label?: string;
|
|
120
|
+
/** Description text below label */
|
|
121
|
+
description?: string;
|
|
122
|
+
/** Listbox container wrapper */
|
|
123
|
+
listboxContainer?: string;
|
|
124
|
+
/** The slot for the listbox component. You can see this slot as the `ul` slot */
|
|
125
|
+
listboxList?: string;
|
|
126
|
+
/** Listbox item styling */
|
|
127
|
+
listboxItem?: {
|
|
128
|
+
/** The main slot for the listbox item. It wraps all the other slots */
|
|
129
|
+
base?: string;
|
|
130
|
+
/** The title and description wrapper */
|
|
131
|
+
wrapper?: string;
|
|
132
|
+
/** Provider image styling */
|
|
133
|
+
image?: string;
|
|
134
|
+
/** Provider name title text
|
|
135
|
+
* @example 'Odido' */
|
|
136
|
+
title?: string;
|
|
137
|
+
/** Provider description text
|
|
138
|
+
* @example 'Één of meer mobiele abonnementen' */
|
|
139
|
+
description?: string;
|
|
140
|
+
/** The selected icon slot. This is only visible when the item is selected */
|
|
141
|
+
selectedIcon?: string;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
/** Submit button styling */
|
|
145
|
+
submitButton?: string;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
declare type CostOverviewClassNames = {
|
|
149
|
+
/** The base container of the cost overview */
|
|
150
|
+
base?: string;
|
|
151
|
+
/** Container for the monthly fees section */
|
|
152
|
+
monthlySection?: string;
|
|
153
|
+
/** Monthly fees container */
|
|
154
|
+
monthlyFeesContainer?: string;
|
|
155
|
+
/** Main monthly price header */
|
|
156
|
+
monthlyPriceHeader?: {
|
|
157
|
+
container?: string;
|
|
158
|
+
label?: string;
|
|
159
|
+
price?: string;
|
|
160
|
+
};
|
|
161
|
+
/** Monthly fee transition row */
|
|
162
|
+
monthlyFeeTransition?: MonthlyFeeTransitionClassNames;
|
|
163
|
+
/** Lifetime fee row */
|
|
164
|
+
lifetimeFee?: MonthlyFeeTransitionClassNames;
|
|
165
|
+
/** Provider contract row */
|
|
166
|
+
providerContract?: PriceRowClassNames;
|
|
167
|
+
/** Bundle row */
|
|
168
|
+
bundle?: PriceRowClassNames;
|
|
169
|
+
/** Handset bundle row */
|
|
170
|
+
handsetBundle?: PriceRowClassNames;
|
|
171
|
+
/** Separator line */
|
|
172
|
+
separator?: string;
|
|
173
|
+
/** One-time payment section */
|
|
174
|
+
oneTimeSection?: {
|
|
175
|
+
header?: {
|
|
176
|
+
container?: string;
|
|
177
|
+
label?: string;
|
|
178
|
+
price?: string;
|
|
179
|
+
};
|
|
180
|
+
productRow?: PriceRowClassNames;
|
|
181
|
+
};
|
|
182
|
+
/** Proposition overview section */
|
|
183
|
+
propositionOverview?: PropositionOverviewClassNames;
|
|
29
184
|
};
|
|
30
185
|
|
|
31
186
|
declare type CreditInfoClassNames = {
|
|
@@ -60,22 +215,89 @@ declare type CreditInfoClassNames = {
|
|
|
60
215
|
descriptionLink?: string;
|
|
61
216
|
};
|
|
62
217
|
|
|
63
|
-
declare type
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
218
|
+
declare type CreditInfoClassNames_2 = {
|
|
219
|
+
/** The base container of the credit info section */
|
|
220
|
+
base?: string;
|
|
221
|
+
/** Table class names */
|
|
222
|
+
table?: TableClassNames_2;
|
|
223
|
+
/** Description text */
|
|
224
|
+
description?: string;
|
|
225
|
+
/** Links in the description */
|
|
226
|
+
descriptionLink?: string;
|
|
71
227
|
};
|
|
72
228
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
229
|
+
declare type DetailsModalClassNames = {
|
|
230
|
+
/** Modal class names */
|
|
231
|
+
modal?: ModalClassNames_5;
|
|
232
|
+
/** Proposition info section */
|
|
233
|
+
propositionInfo?: {
|
|
234
|
+
container?: string;
|
|
235
|
+
image?: string;
|
|
236
|
+
content?: string;
|
|
237
|
+
name?: string;
|
|
238
|
+
details?: string;
|
|
239
|
+
productName?: string;
|
|
240
|
+
productProperties?: string;
|
|
241
|
+
};
|
|
242
|
+
/** Tabs class names */
|
|
243
|
+
tabs?: TabsClassNames;
|
|
244
|
+
/** General tab content class names */
|
|
245
|
+
general?: GeneralClassNames;
|
|
246
|
+
/** Terms tab content class names */
|
|
247
|
+
terms?: TermsClassNames;
|
|
248
|
+
/** Channels tab content class names */
|
|
249
|
+
channels?: ChannelsClassNames;
|
|
250
|
+
/** Cost overview tab content class names */
|
|
251
|
+
costOverview?: CostOverviewClassNames;
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
declare type DiscountSectionClassNames = {
|
|
255
|
+
/** Container for the discount section */
|
|
256
|
+
container?: string;
|
|
257
|
+
/** Header section with icon and title */
|
|
258
|
+
header?: string;
|
|
259
|
+
/** Container for icon and text */
|
|
260
|
+
headerContent?: string;
|
|
261
|
+
/** Icon container */
|
|
262
|
+
icon?: string;
|
|
263
|
+
/** Title text */
|
|
264
|
+
title?: string;
|
|
265
|
+
/** Subtitle/description text */
|
|
266
|
+
subtitle?: string;
|
|
267
|
+
/** Price display in header */
|
|
268
|
+
price?: string;
|
|
269
|
+
/** Price without subscription row */
|
|
270
|
+
priceWithoutSubscription?: {
|
|
271
|
+
container?: string;
|
|
272
|
+
label?: string;
|
|
273
|
+
price?: string;
|
|
274
|
+
};
|
|
275
|
+
/** Price with subscription row */
|
|
276
|
+
priceWithSubscription?: {
|
|
277
|
+
container?: string;
|
|
278
|
+
label?: string;
|
|
279
|
+
price?: string;
|
|
280
|
+
};
|
|
281
|
+
/** Handset costs row */
|
|
282
|
+
handsetCosts?: {
|
|
283
|
+
container?: string;
|
|
284
|
+
label?: string;
|
|
285
|
+
price?: string;
|
|
286
|
+
};
|
|
287
|
+
/** One-time fee row */
|
|
288
|
+
oneTimeFee?: {
|
|
289
|
+
container?: string;
|
|
290
|
+
label?: string;
|
|
291
|
+
price?: string;
|
|
292
|
+
};
|
|
293
|
+
/** Horizontal separator */
|
|
294
|
+
separator?: string;
|
|
295
|
+
/** Total discount row */
|
|
296
|
+
totalDiscount?: {
|
|
297
|
+
container?: string;
|
|
298
|
+
label?: string;
|
|
299
|
+
price?: string;
|
|
300
|
+
};
|
|
79
301
|
};
|
|
80
302
|
|
|
81
303
|
export declare function ElementsRoot({ withShadowDOM, ...props }: ElementsRootProps): JSX.Element;
|
|
@@ -83,8 +305,8 @@ export declare function ElementsRoot({ withShadowDOM, ...props }: ElementsRootPr
|
|
|
83
305
|
export declare type ElementsRootProps = {
|
|
84
306
|
/** The content to be rendered within the ElementsRoot component */
|
|
85
307
|
children: ReactNode;
|
|
86
|
-
/**
|
|
87
|
-
|
|
308
|
+
/** Only class slot for styling */
|
|
309
|
+
className?: string;
|
|
88
310
|
/**
|
|
89
311
|
* Enable Shadow DOM wrapping for complete style isolation
|
|
90
312
|
* - When `undefinded` or `false`, no Shadow DOM is applied
|
|
@@ -101,29 +323,7 @@ export declare type ElementsRootProps = {
|
|
|
101
323
|
};
|
|
102
324
|
};
|
|
103
325
|
|
|
104
|
-
|
|
105
|
-
state: ErrorBoundaryState;
|
|
106
|
-
static getDerivedStateFromError(_error: Error): ErrorBoundaryState;
|
|
107
|
-
componentDidCatch(error: Error, _errorInfo: ErrorInfo): void;
|
|
108
|
-
render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | ReactPortal | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | JSX.Element | null | undefined;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export declare type ErrorBoundaryProps = {
|
|
112
|
-
/** The content to be wrapped by the ErrorBoundary */
|
|
113
|
-
children: ReactNode;
|
|
114
|
-
/** Callback function called when an error is caught */
|
|
115
|
-
onError?: (error: Error) => void;
|
|
116
|
-
/** Custom fallback UI to render when an error occurs */
|
|
117
|
-
fallback?: ReactNode;
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
export declare type ErrorBoundaryState = {
|
|
121
|
-
hasError: boolean;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
export declare function ErrorComponent({ classNames }: ErrorComponentProps): JSX.Element;
|
|
125
|
-
|
|
126
|
-
export declare type ErrorComponentClassNames = {
|
|
326
|
+
declare type ErrorAlertClassNames = {
|
|
127
327
|
/** Main wrapper container for the error component */
|
|
128
328
|
base?: string;
|
|
129
329
|
/** Alert component class styling slots */
|
|
@@ -147,13 +347,6 @@ export declare type ErrorComponentClassNames = {
|
|
|
147
347
|
button?: string;
|
|
148
348
|
};
|
|
149
349
|
|
|
150
|
-
export declare type ErrorComponentProps = {
|
|
151
|
-
/** Class slots for styling */
|
|
152
|
-
classNames?: ErrorComponentClassNames;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
export declare function FilterChip({ filter, filterOption, onRemove, classNames, }: FilterChipProps): JSX.Element | null;
|
|
156
|
-
|
|
157
350
|
declare type FilterChipClassNames = {
|
|
158
351
|
/** The base slot of the chip, it is the container of the chip */
|
|
159
352
|
base?: string;
|
|
@@ -163,48 +356,10 @@ declare type FilterChipClassNames = {
|
|
|
163
356
|
closeButton?: string;
|
|
164
357
|
};
|
|
165
358
|
|
|
166
|
-
declare type FilterChipProps = {
|
|
167
|
-
/** Filter value */
|
|
168
|
-
filter: FilterValue;
|
|
169
|
-
/** Filter option */
|
|
170
|
-
filterOption: FilterOption;
|
|
171
|
-
/** Callback when the filter is removed */
|
|
172
|
-
onRemove: (filter: FilterValue) => void;
|
|
173
|
-
/** Class slots for styling */
|
|
174
|
-
classNames?: FilterChipClassNames;
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
export declare function FilterModal({ filterOptions, activeFilters, onFilterChange, classNames, }: FilterModalProps): JSX.Element;
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* ClassNames for styling different parts of the `FilterModal` component
|
|
181
|
-
*/
|
|
182
|
-
export declare type FilterModalClassNames = {
|
|
183
|
-
/** Trigger button that opens the modal
|
|
184
|
-
* @example "Filters" */
|
|
185
|
-
button?: string;
|
|
186
|
-
/** Modal dialog class styling slots - see type `ModalClassNames` */
|
|
187
|
-
modal?: ModalClassNames;
|
|
188
|
-
/** Filters component class styling slots - see type `FiltersClassNames` */
|
|
189
|
-
filters?: FiltersClassNames;
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
export declare type FilterModalProps = Omit<FiltersProps, 'classNames'> & {
|
|
193
|
-
/** Class slots for styling */
|
|
194
|
-
classNames?: FilterModalClassNames;
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Configuration for a single filter option
|
|
199
|
-
*/
|
|
200
|
-
declare type FilterOption = NonNullable<GetPageByPathQuery['page']>['pageFilters'][number];
|
|
201
|
-
|
|
202
|
-
export declare function Filters({ filterOptions, activeFilters, onFilterChange, classNames, }: FiltersProps): JSX.Element | null;
|
|
203
|
-
|
|
204
359
|
/**
|
|
205
360
|
* ClassNames for styling different parts of the `Filters` component
|
|
206
361
|
*/
|
|
207
|
-
|
|
362
|
+
declare type FiltersClassNames = {
|
|
208
363
|
/** The foundational slot, encompassing all other slots and elements
|
|
209
364
|
*
|
|
210
365
|
* It serves as the primary container */
|
|
@@ -224,17 +379,6 @@ export declare type FiltersClassNames = {
|
|
|
224
379
|
radioFilter?: RadioFilterClassNames;
|
|
225
380
|
};
|
|
226
381
|
|
|
227
|
-
export declare type FiltersProps = {
|
|
228
|
-
/** Available filter options to display */
|
|
229
|
-
filterOptions: FilterOption[];
|
|
230
|
-
/** Currently active filter values */
|
|
231
|
-
activeFilters: FilterValue[];
|
|
232
|
-
/** Callback when a filter value changes */
|
|
233
|
-
onFilterChange: (filter: FilterValue) => void;
|
|
234
|
-
/** Class slots for styling */
|
|
235
|
-
classNames?: FiltersClassNames;
|
|
236
|
-
};
|
|
237
|
-
|
|
238
382
|
/**
|
|
239
383
|
* Represents an active filter value selected by the user
|
|
240
384
|
*/
|
|
@@ -251,47 +395,19 @@ declare type FilterValue = {
|
|
|
251
395
|
value: string | string[];
|
|
252
396
|
};
|
|
253
397
|
|
|
254
|
-
declare type
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
productCategory: string;
|
|
259
|
-
filter: string;
|
|
260
|
-
filterDefaults: string;
|
|
261
|
-
pageFilters: Array<{
|
|
262
|
-
__typename?: 'PageFilter';
|
|
263
|
-
id: string;
|
|
264
|
-
name: string;
|
|
265
|
-
shortName: string;
|
|
266
|
-
slug: string;
|
|
267
|
-
column: string;
|
|
268
|
-
type: string;
|
|
269
|
-
valueType: string;
|
|
270
|
-
dynamic: boolean;
|
|
271
|
-
min?: number | null;
|
|
272
|
-
max?: number | null;
|
|
273
|
-
rank: number;
|
|
274
|
-
operator: string;
|
|
275
|
-
url?: string | null;
|
|
276
|
-
formatType: string;
|
|
277
|
-
showCounts: boolean;
|
|
278
|
-
options: Array<{
|
|
279
|
-
__typename?: 'PageFilterOption';
|
|
280
|
-
name: string;
|
|
281
|
-
descriptiveName: string;
|
|
282
|
-
value: string;
|
|
283
|
-
}>;
|
|
284
|
-
aliases: Array<{
|
|
285
|
-
__typename?: 'PageFilterAlias';
|
|
286
|
-
name: string;
|
|
287
|
-
value: string;
|
|
288
|
-
}>;
|
|
289
|
-
}>;
|
|
290
|
-
} | null;
|
|
291
|
-
};
|
|
398
|
+
declare type GeneralClassNames = {
|
|
399
|
+
/** The base slot of the general section, it is the container of the general section */
|
|
400
|
+
base?: string;
|
|
401
|
+
} & SectionClassNames;
|
|
292
402
|
|
|
403
|
+
/**
|
|
404
|
+
* ClassNames for styling the `Label` component within `PropositionCard`
|
|
405
|
+
*/
|
|
293
406
|
declare type LabelClassNames = {
|
|
407
|
+
/** Base wrapper container for the label */
|
|
294
408
|
wrapper?: string;
|
|
409
|
+
/** Text for the label
|
|
410
|
+
* @example "Meest voordelig" */
|
|
295
411
|
text?: string;
|
|
296
412
|
};
|
|
297
413
|
|
|
@@ -303,9 +419,62 @@ declare type ListBoxClassNames = {
|
|
|
303
419
|
selectedIcon?: string;
|
|
304
420
|
};
|
|
305
421
|
|
|
306
|
-
|
|
422
|
+
/**
|
|
423
|
+
* ClassNames for styling the `MainImage` component within `PropositionCard`
|
|
424
|
+
*/
|
|
425
|
+
declare type MainImageClassNames = {
|
|
426
|
+
/** When phone image is the main image
|
|
427
|
+
*
|
|
428
|
+
* Only available for Smartphone Propositions when no phone is selected */
|
|
429
|
+
phoneImage?: {
|
|
430
|
+
/** Wrapper container for the phone image and stock indicator */
|
|
431
|
+
wrapper?: string;
|
|
432
|
+
/** Wrapper container for the phone image */
|
|
433
|
+
imageWrapper?: string;
|
|
434
|
+
/** Phone image element */
|
|
435
|
+
image?: string;
|
|
436
|
+
/** Stock indicator under the phone image
|
|
437
|
+
*
|
|
438
|
+
* Only available when the phone is in stock */
|
|
439
|
+
stockIndicator?: {
|
|
440
|
+
/** Wrapper container for the stock indicator */
|
|
441
|
+
wrapper?: string;
|
|
442
|
+
/** Stock indicator icon */
|
|
443
|
+
icon?: string;
|
|
444
|
+
/** Stock indicator text
|
|
445
|
+
* @example "Direct leverbaar" */
|
|
446
|
+
text?: string;
|
|
447
|
+
};
|
|
448
|
+
};
|
|
449
|
+
/** When Provider image is the main image
|
|
450
|
+
*
|
|
451
|
+
* Not available for Smartphone Propositions when no phone is selected */
|
|
452
|
+
providerImage?: {
|
|
453
|
+
/** Wrapper container for the provider image */
|
|
454
|
+
imageWrapper?: string;
|
|
455
|
+
/** Provider image element */
|
|
456
|
+
image?: string;
|
|
457
|
+
};
|
|
458
|
+
};
|
|
307
459
|
|
|
308
460
|
declare type ModalClassNames = {
|
|
461
|
+
/** The backdrop slot, it is displayed behind the modal */
|
|
462
|
+
backdrop?: string;
|
|
463
|
+
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
464
|
+
wrapper?: string;
|
|
465
|
+
/** The main slot of the modal content */
|
|
466
|
+
base?: string;
|
|
467
|
+
/** The header of the modal, it is displayed at the top of the modal */
|
|
468
|
+
header?: string;
|
|
469
|
+
/** The body of the modal, it is displayed in the middle of the modal */
|
|
470
|
+
body?: string;
|
|
471
|
+
/** The footer of the modal, it is displayed at the bottom of the modal */
|
|
472
|
+
footer?: string;
|
|
473
|
+
/** The close button (X) of the modal in top-right corner */
|
|
474
|
+
closeButton?: string;
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
declare type ModalClassNames_2 = {
|
|
309
478
|
/** The backdrop slot, it is displayed behind the modal */
|
|
310
479
|
backdrop?: string;
|
|
311
480
|
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
@@ -326,7 +495,7 @@ declare type ModalClassNames = {
|
|
|
326
495
|
primaryButton?: string;
|
|
327
496
|
};
|
|
328
497
|
|
|
329
|
-
declare type
|
|
498
|
+
declare type ModalClassNames_3 = {
|
|
330
499
|
/** The backdrop slot, it is displayed behind the modal */
|
|
331
500
|
backdrop?: string;
|
|
332
501
|
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
@@ -343,7 +512,7 @@ declare type ModalClassNames_2 = {
|
|
|
343
512
|
closeButton?: string;
|
|
344
513
|
};
|
|
345
514
|
|
|
346
|
-
declare type
|
|
515
|
+
declare type ModalClassNames_4 = {
|
|
347
516
|
/** The backdrop slot, it is displayed behind the modal */
|
|
348
517
|
backdrop?: string;
|
|
349
518
|
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
@@ -360,9 +529,46 @@ declare type ModalClassNames_3 = {
|
|
|
360
529
|
closeButton?: string;
|
|
361
530
|
};
|
|
362
531
|
|
|
532
|
+
declare type ModalClassNames_5 = {
|
|
533
|
+
/** The backdrop slot, it is displayed behind the modal */
|
|
534
|
+
backdrop?: string;
|
|
535
|
+
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
536
|
+
wrapper?: string;
|
|
537
|
+
/** The main slot of the modal content */
|
|
538
|
+
base?: string;
|
|
539
|
+
/** The header of the modal, it is displayed at the top of the modal */
|
|
540
|
+
header?: string;
|
|
541
|
+
/** The body of the modal, it is displayed in the middle of the modal */
|
|
542
|
+
body?: string;
|
|
543
|
+
/** The footer of the modal, it is displayed at the bottom of the modal */
|
|
544
|
+
footer?: string;
|
|
545
|
+
/** The close button (X) of the modal in top-right corner */
|
|
546
|
+
closeButton?: string;
|
|
547
|
+
};
|
|
548
|
+
|
|
549
|
+
declare type MonthlyFeeClassNames = {
|
|
550
|
+
/** Container for the monthly fee row */
|
|
551
|
+
container?: string;
|
|
552
|
+
/** Label text for the monthly fee */
|
|
553
|
+
label?: string;
|
|
554
|
+
/** Price value for the monthly fee */
|
|
555
|
+
price?: string;
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
declare type MonthlyFeeTransitionClassNames = {
|
|
559
|
+
/** Container for the transition row */
|
|
560
|
+
container?: string;
|
|
561
|
+
/** Label with icon */
|
|
562
|
+
label?: string;
|
|
563
|
+
/** Icon */
|
|
564
|
+
icon?: string;
|
|
565
|
+
/** Price */
|
|
566
|
+
price?: string;
|
|
567
|
+
};
|
|
568
|
+
|
|
363
569
|
declare type NumberPreservationModalClassNames = {
|
|
364
570
|
/** Modal dialog class styling slots - see type `ModalClassNames` */
|
|
365
|
-
modal?:
|
|
571
|
+
modal?: ModalClassNames_4;
|
|
366
572
|
/** Header section containing icon and title */
|
|
367
573
|
header?: {
|
|
368
574
|
/** Container wrapping the header content */
|
|
@@ -434,42 +640,6 @@ declare type NumberPreservationModalClassNames = {
|
|
|
434
640
|
submitButton?: string;
|
|
435
641
|
};
|
|
436
642
|
|
|
437
|
-
declare type PhoneListContainerClassNames = {
|
|
438
|
-
base?: string;
|
|
439
|
-
wrapper?: string;
|
|
440
|
-
title?: string;
|
|
441
|
-
description?: string;
|
|
442
|
-
selectedIcon?: string;
|
|
443
|
-
item?: string;
|
|
444
|
-
itemWrapper?: string;
|
|
445
|
-
itemContent?: string;
|
|
446
|
-
itemLabel?: string;
|
|
447
|
-
itemDescription?: string;
|
|
448
|
-
emptyContent?: string;
|
|
449
|
-
};
|
|
450
|
-
|
|
451
|
-
export declare function PhoneSelector({ onChange, classNames, disabled, productSlug: initialProductSlug, selectedDistinctProperties: initialSelectedDistinctProperties, }: PhoneSelectorProps): JSX.Element;
|
|
452
|
-
|
|
453
|
-
declare type PhoneSelectorClassNames = {
|
|
454
|
-
base?: string;
|
|
455
|
-
button?: string;
|
|
456
|
-
/** Filter modal class styling slots - see type `ModalClassNames` */
|
|
457
|
-
modal?: ModalClassNames;
|
|
458
|
-
brandTabs?: string;
|
|
459
|
-
phoneList?: PhoneListContainerClassNames;
|
|
460
|
-
variantList?: string;
|
|
461
|
-
confirmButton?: string;
|
|
462
|
-
};
|
|
463
|
-
|
|
464
|
-
declare type PhoneSelectorProps = {
|
|
465
|
-
onChange?: (productSlug: string, distinctProperties: VersionDistinctProperty[]) => void;
|
|
466
|
-
classNames?: PhoneSelectorClassNames;
|
|
467
|
-
disabled?: boolean;
|
|
468
|
-
placeholder?: string;
|
|
469
|
-
productSlug?: string;
|
|
470
|
-
selectedDistinctProperties?: VersionDistinctProperty[];
|
|
471
|
-
};
|
|
472
|
-
|
|
473
643
|
declare type PopoverContentClassNames = {
|
|
474
644
|
base?: string;
|
|
475
645
|
trigger?: string;
|
|
@@ -494,7 +664,7 @@ declare type PostcodeCheckLoadingClassNames = {
|
|
|
494
664
|
|
|
495
665
|
export declare type PostcodeCheckModalClassNames = {
|
|
496
666
|
/** Modal dialog class styling slots - see type `ModalClassNames` */
|
|
497
|
-
modal?:
|
|
667
|
+
modal?: ModalClassNames;
|
|
498
668
|
/** Header section containing icon and title */
|
|
499
669
|
header?: {
|
|
500
670
|
/** Container wrapping the header content */
|
|
@@ -525,12 +695,22 @@ export declare type PostcodeCheckModalClassNames = {
|
|
|
525
695
|
/** Input label styling */
|
|
526
696
|
label?: string;
|
|
527
697
|
};
|
|
528
|
-
/** Error message
|
|
529
|
-
|
|
530
|
-
/**
|
|
531
|
-
|
|
532
|
-
/**
|
|
533
|
-
|
|
698
|
+
/** Error alert message */
|
|
699
|
+
errorAlert?: {
|
|
700
|
+
/** Alert container */
|
|
701
|
+
base?: string;
|
|
702
|
+
/** Alert title text */
|
|
703
|
+
title?: string;
|
|
704
|
+
/** Alert description text */
|
|
705
|
+
description?: string;
|
|
706
|
+
/** Alert main content wrapper */
|
|
707
|
+
mainWrapper?: string;
|
|
708
|
+
/** Alert close button */
|
|
709
|
+
closeButton?: string;
|
|
710
|
+
/** Alert icon wrapper */
|
|
711
|
+
iconWrapper?: string;
|
|
712
|
+
/** Alert icon */
|
|
713
|
+
alertIcon?: string;
|
|
534
714
|
};
|
|
535
715
|
};
|
|
536
716
|
/** Provider selection section */
|
|
@@ -553,51 +733,53 @@ export declare type PostcodeCheckModalClassNames = {
|
|
|
553
733
|
submitButton?: string;
|
|
554
734
|
};
|
|
555
735
|
|
|
556
|
-
|
|
557
|
-
/**
|
|
558
|
-
|
|
559
|
-
/**
|
|
560
|
-
|
|
561
|
-
/**
|
|
562
|
-
|
|
563
|
-
/**
|
|
564
|
-
|
|
565
|
-
/**
|
|
566
|
-
|
|
736
|
+
declare type PriceRowClassNames = {
|
|
737
|
+
/** Container for the price row */
|
|
738
|
+
container?: string;
|
|
739
|
+
/** Label text */
|
|
740
|
+
label?: string;
|
|
741
|
+
/** Price container */
|
|
742
|
+
priceContainer?: string;
|
|
743
|
+
/** Original price (strikethrough) */
|
|
744
|
+
originalPrice?: string;
|
|
745
|
+
/** Current price */
|
|
746
|
+
currentPrice?: string;
|
|
567
747
|
};
|
|
568
748
|
|
|
569
749
|
/**
|
|
570
|
-
* ClassNames for styling the `
|
|
750
|
+
* ClassNames for styling the `Pricing` component within `PropositionCard`
|
|
571
751
|
*/
|
|
572
|
-
|
|
752
|
+
declare type PricingClassNames = {
|
|
573
753
|
/** Wrapper container for the pricing section */
|
|
574
|
-
|
|
575
|
-
/**
|
|
576
|
-
* @example "
|
|
577
|
-
|
|
578
|
-
/**
|
|
579
|
-
|
|
754
|
+
wrapper?: string;
|
|
755
|
+
/** Promotion text for monthly fee
|
|
756
|
+
* @example "12 mnd van 10,- voor:" */
|
|
757
|
+
promotionText?: string;
|
|
758
|
+
/** Wrapper container for the monthly fee */
|
|
759
|
+
monthlyFeeWrapper?: string;
|
|
580
760
|
/** Monthly fee value text (price per month)
|
|
581
761
|
* @example "10,-" */
|
|
582
762
|
monthlyFeeValue?: string;
|
|
583
763
|
/** Monthly fee label text
|
|
584
|
-
|
|
764
|
+
/* @example "/ maand" */
|
|
585
765
|
monthlyFeeLabel?: string;
|
|
586
|
-
/**
|
|
587
|
-
*
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
766
|
+
/** Product price text (one-time fee for phone)
|
|
767
|
+
*
|
|
768
|
+
* Only visible for Smartphone Propositions
|
|
769
|
+
* @example "+ 100,- eenmalig" */
|
|
770
|
+
oneTimeFee?: string;
|
|
771
|
+
/** Wrapper container for the average price */
|
|
772
|
+
averagePriceWrapper?: string;
|
|
773
|
+
/** Average price Icon */
|
|
774
|
+
averagePriceIcon?: string;
|
|
775
|
+
/** Average price value text (TCO per month)
|
|
776
|
+
* @example "gem. 54,- / maand" */
|
|
777
|
+
averagePriceValue?: string;
|
|
596
778
|
};
|
|
597
779
|
|
|
598
|
-
declare type ProductCategory = 'sim-only-proposition' | 'fixed-proposition' | 'smartphone-proposition' | 'smartphone-proposition-extended';
|
|
780
|
+
export declare type ProductCategory = 'sim-only-proposition' | 'fixed-proposition' | 'smartphone-proposition' | 'smartphone-proposition-extended';
|
|
599
781
|
|
|
600
|
-
export declare function ProductResults({
|
|
782
|
+
export declare function ProductResults({ classNames, initialSelectedFilters, initialProfile, onProfileChange, onError, ...props }: ProductResultsProps): JSX.Element;
|
|
601
783
|
|
|
602
784
|
/**
|
|
603
785
|
* ClassNames for styling different parts of the `ProductResults` component
|
|
@@ -614,13 +796,17 @@ export declare type ProductResultsClassNames = {
|
|
|
614
796
|
/** Filter button (only on mobile & tablet screens) */
|
|
615
797
|
filterButton?: string;
|
|
616
798
|
/** Filter modal class styling slots - see type `ModalClassNames` */
|
|
617
|
-
filterModal?:
|
|
799
|
+
filterModal?: ModalClassNames_2;
|
|
618
800
|
/** Postcode check modal class styling slots - see type `PostcodeCheckModalClassNames` */
|
|
619
801
|
postcodeCheckModal?: PostcodeCheckModalClassNames;
|
|
802
|
+
/** CombiDeal modal class styling slots - see type `CombiDealModalClassNames` */
|
|
803
|
+
combiDealModal?: CombiDealModalClassNames;
|
|
620
804
|
/** Number preservation modal class styling slots - see type `NumberPreservationModalClassNames` */
|
|
621
805
|
numberPreservationModal?: NumberPreservationModalClassNames;
|
|
622
|
-
/**
|
|
806
|
+
/** Proposition results class styling slots - see type `ResultsClassNames` */
|
|
623
807
|
results?: ResultsClassNames;
|
|
808
|
+
/** Error alert class styling slots - see type `ErrorAlertClassNames` */
|
|
809
|
+
errorAlert?: ErrorAlertClassNames;
|
|
624
810
|
};
|
|
625
811
|
|
|
626
812
|
export declare type ProductResultsProps = {
|
|
@@ -632,12 +818,15 @@ export declare type ProductResultsProps = {
|
|
|
632
818
|
showTopPropositions?: boolean;
|
|
633
819
|
/** Customize texts */
|
|
634
820
|
texts?: {
|
|
821
|
+
/** Title above profile buttons
|
|
822
|
+
* @default "Personaliseer" */
|
|
823
|
+
profileTitle?: string;
|
|
635
824
|
/** Title above top propositions (only shown when `showTopPropositions` is set to `true`)
|
|
636
825
|
* @default "Beste providers voor jou" */
|
|
637
|
-
topPropositionsTitle
|
|
826
|
+
topPropositionsTitle?: string;
|
|
638
827
|
/** Title above all propositions (only shown when `showTopPropositions` is set to `true`)
|
|
639
828
|
* @default "Alle providers op een rijtje" */
|
|
640
|
-
allPropositionsTitle
|
|
829
|
+
allPropositionsTitle?: string;
|
|
641
830
|
};
|
|
642
831
|
/** Initial selected filters */
|
|
643
832
|
initialSelectedFilters?: FilterValue[];
|
|
@@ -649,27 +838,12 @@ export declare type ProductResultsProps = {
|
|
|
649
838
|
initialProfile?: Partial<Profile>;
|
|
650
839
|
/** Callback function to handle profile changes */
|
|
651
840
|
onProfileChange?: (profile: Partial<Profile>) => void;
|
|
841
|
+
/** Callback function to add search params for the click-out URL on the proposition cards */
|
|
842
|
+
addClickoutSearchParams?: (searchParams: URLSearchParams) => URLSearchParams;
|
|
652
843
|
/** Callback function called when an error occurs */
|
|
653
844
|
onError?: (error: Error) => void;
|
|
654
845
|
};
|
|
655
846
|
|
|
656
|
-
/**
|
|
657
|
-
* ClassNames for styling the `ProductSection` component within `PropositionCard`
|
|
658
|
-
*/
|
|
659
|
-
export declare type ProductSectionClassNames = {
|
|
660
|
-
/** Wrapper container for the entire product section */
|
|
661
|
-
base?: string;
|
|
662
|
-
/** Image wrapper, it handles alignment, placement, and general appearance for the product image */
|
|
663
|
-
imageWrapper?: string;
|
|
664
|
-
/** Product image element */
|
|
665
|
-
image?: string;
|
|
666
|
-
/** Delivery Text Icon " */
|
|
667
|
-
deliveryTextIcon?: string;
|
|
668
|
-
/** Delivery Text
|
|
669
|
-
* @example "Direct leverbaar" */
|
|
670
|
-
deliveryText?: string;
|
|
671
|
-
};
|
|
672
|
-
|
|
673
847
|
declare type Profile = z.infer<typeof profileSchema>;
|
|
674
848
|
|
|
675
849
|
declare const profileSchema: z_2.ZodObject<{
|
|
@@ -696,9 +870,9 @@ declare const profileSchema: z_2.ZodObject<{
|
|
|
696
870
|
}, z_2.core.$strip>;
|
|
697
871
|
|
|
698
872
|
/**
|
|
699
|
-
* ClassNames for styling the `
|
|
873
|
+
* ClassNames for styling the `PromotionList` component within `PropositionCard`
|
|
700
874
|
*/
|
|
701
|
-
|
|
875
|
+
declare type PromotionListClassNames = {
|
|
702
876
|
/** Wrapper container for the promotions list */
|
|
703
877
|
base?: string;
|
|
704
878
|
/** Individual promotion item
|
|
@@ -706,201 +880,144 @@ export declare type PromotionsListClassNames = {
|
|
|
706
880
|
item?: string;
|
|
707
881
|
/** Checkmark icon for each promotion item */
|
|
708
882
|
promotionIcon?: string;
|
|
709
|
-
/** Urgent text chip
|
|
710
|
-
urgentChip?: string;
|
|
711
|
-
};
|
|
712
|
-
|
|
713
|
-
export declare type PromotionsListProps = {
|
|
714
|
-
/** Promotions to display */
|
|
715
|
-
promotions: string[];
|
|
716
|
-
/** Urgent text to display as a chip above promotions
|
|
883
|
+
/** Urgent text chip (only visible when promotion is urgent)
|
|
717
884
|
* @example "Actie nog 6 dagen" */
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
885
|
+
urgentChip?: {
|
|
886
|
+
/** The base slot of the chip, it is the container of the chip */
|
|
887
|
+
base?: string;
|
|
888
|
+
/** The content slot of the chip, it is the container of the text */
|
|
889
|
+
content?: string;
|
|
890
|
+
};
|
|
721
891
|
};
|
|
722
892
|
|
|
723
|
-
export declare function PropositionCard({ horizontal, ...props }: PropositionCardProps): JSX.Element;
|
|
724
|
-
|
|
725
893
|
/**
|
|
726
894
|
* ClassNames for styling different parts of the `PropositionCard` component
|
|
727
895
|
*/
|
|
728
|
-
|
|
729
|
-
/**
|
|
896
|
+
declare type PropositionCardClassNames = {
|
|
897
|
+
/** Base wrapper container for the label and proposition card
|
|
898
|
+
*
|
|
899
|
+
* Only available when there is a label */
|
|
900
|
+
cardWrapper?: string;
|
|
901
|
+
/** Label class styling slots - see type `LabelClassNames`
|
|
902
|
+
*
|
|
903
|
+
* Only available when there is a label */
|
|
904
|
+
label?: LabelClassNames;
|
|
905
|
+
/** Card container for the proposition card */
|
|
730
906
|
card?: string;
|
|
731
|
-
/**
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
907
|
+
/** Specific section wrapper styles for horizontal card layout */
|
|
908
|
+
horizontalCard?: {
|
|
909
|
+
/** Card header wrapper around `mainImage` */
|
|
910
|
+
header?: string;
|
|
911
|
+
/** Vertical divider between `header` and `body` */
|
|
912
|
+
divider?: string;
|
|
913
|
+
/** Card body wrapper around `propositionHeader` and `promotionList` */
|
|
914
|
+
body?: string;
|
|
915
|
+
/** Card footer wrapper around `pricing` and `button` */
|
|
916
|
+
footer?: string;
|
|
917
|
+
};
|
|
918
|
+
/** Specific section wrapper styles for vertical card layout */
|
|
919
|
+
verticalCard?: {
|
|
920
|
+
/** Card header wrapper around `mainImage` */
|
|
921
|
+
header?: string;
|
|
922
|
+
/** Card body wrapper around `propositionHeader` and `promotionList` */
|
|
923
|
+
body?: string;
|
|
924
|
+
/** Horizontal divider between `body` and `footer` */
|
|
925
|
+
divider?: string;
|
|
926
|
+
/** Card footer wrapper around `pricing` and `button` */
|
|
927
|
+
footer?: string;
|
|
928
|
+
};
|
|
929
|
+
/** Main image class styling slots - see type `MainImageClassNames`
|
|
930
|
+
*
|
|
931
|
+
* Within the `header` section */
|
|
932
|
+
mainImage?: MainImageClassNames;
|
|
933
|
+
/** Proposition header class styling slots - see type `PropositionHeaderClassNames`
|
|
738
934
|
*
|
|
739
|
-
*
|
|
740
|
-
imageWrapper?: string;
|
|
741
|
-
/** Proposition provider image (only on Horizontal card) */
|
|
742
|
-
image?: string;
|
|
743
|
-
/** Product section (only visible for smartphone propositions) class styling slots - see type `ProductSectionClassNames` */
|
|
744
|
-
productSection?: ProductSectionClassNames;
|
|
745
|
-
/** Proposition header class styling slots - see type `PropositionHeaderClassNames` */
|
|
935
|
+
* Within the `body` section */
|
|
746
936
|
propositionHeader?: PropositionHeaderClassNames;
|
|
747
|
-
/**
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
/**
|
|
752
|
-
*
|
|
753
|
-
*
|
|
754
|
-
|
|
755
|
-
* - "66 (60 HD)"
|
|
756
|
-
* - "Via TV app" */
|
|
757
|
-
specifications?: string;
|
|
758
|
-
/** Urgent text chip (only visible when promotion is urgent)
|
|
759
|
-
* @example "Actie nog 6 dagen" */
|
|
760
|
-
urgentChip?: string;
|
|
937
|
+
/** Promotion list class styling slots - see type `PromotionListClassNames`
|
|
938
|
+
*
|
|
939
|
+
* Within the `body` section */
|
|
940
|
+
promotionList?: PromotionListClassNames;
|
|
941
|
+
/** Pricing section class styling slots - see type `PricingClassNames`
|
|
942
|
+
*
|
|
943
|
+
* Within the `footer` section */
|
|
944
|
+
pricing?: PricingClassNames;
|
|
761
945
|
/** Call To Action button
|
|
946
|
+
*
|
|
947
|
+
* Within the `footer` section
|
|
762
948
|
* @example "Bekijk" */
|
|
763
949
|
button?: string;
|
|
764
|
-
/** Card wrapper (container for the label and card) */
|
|
765
|
-
cardWrapper?: string;
|
|
766
|
-
/** Label class styling slots - see type `LabelClassNames` */
|
|
767
|
-
label?: LabelClassNames;
|
|
768
|
-
};
|
|
769
|
-
|
|
770
|
-
export declare type PropositionCardProps = {
|
|
771
|
-
/** Click handler on the card */
|
|
772
|
-
onClick: (e: {
|
|
773
|
-
target: Element;
|
|
774
|
-
}) => void;
|
|
775
|
-
/** Click handler to open the details modal */
|
|
776
|
-
onInfoClick: (tab: 'general' | 'conditions' | 'channels' | 'costs') => void;
|
|
777
|
-
/** Whether the proposition is disabled */
|
|
778
|
-
disabled?: boolean;
|
|
779
|
-
/** Product title - should include brand + phone name
|
|
780
|
-
* @example "Apple iPhone 17" */
|
|
781
|
-
productTitle?: string;
|
|
782
|
-
/** Product image URL */
|
|
783
|
-
productImageUrl?: string;
|
|
784
|
-
/** Product image alt text */
|
|
785
|
-
productImageAlt?: string;
|
|
786
|
-
/** Product stock status
|
|
787
|
-
* @example "in_stock" */
|
|
788
|
-
productStockStatus?: string;
|
|
789
|
-
/** Product price
|
|
790
|
-
* @example "100,-" */
|
|
791
|
-
productPrice?: string;
|
|
792
|
-
/** Proposition title
|
|
793
|
-
* @example "30 GB" */
|
|
794
|
-
propositionTitle: string;
|
|
795
|
-
/** Proposition subtitle
|
|
796
|
-
* @example "Onbp min / sms" */
|
|
797
|
-
propositionSubtitle: string;
|
|
798
|
-
/** Proposition image URL */
|
|
799
|
-
propositionImageUrl: string;
|
|
800
|
-
/** Proposition image alt text */
|
|
801
|
-
propositionImageAlt: string;
|
|
802
|
-
/** Proposition specifications */
|
|
803
|
-
propositionSpecifications?: {
|
|
804
|
-
slug: string;
|
|
805
|
-
title: string;
|
|
806
|
-
}[];
|
|
807
|
-
/** Monthly fee for subscription
|
|
808
|
-
* @example "10,-" */
|
|
809
|
-
monthlyFee: string;
|
|
810
|
-
/** Average total cost per month
|
|
811
|
-
* @example "10,-" */
|
|
812
|
-
tcoPerMonth: string;
|
|
813
|
-
/** Special promotions
|
|
814
|
-
* @example ["Geen aansluitingskosten"] */
|
|
815
|
-
specialPromotions: string[];
|
|
816
|
-
/** Modification promotions
|
|
817
|
-
* @example ["€ 4,50 korting per maand"] */
|
|
818
|
-
modificationPromotions: string[];
|
|
819
|
-
/** Monthly fee promotion text
|
|
820
|
-
* @example "12 mnd van 10,- voor:" */
|
|
821
|
-
monthlyFeePromotionText?: string;
|
|
822
|
-
/** Device discount
|
|
823
|
-
* @example "100,-" */
|
|
824
|
-
deviceDiscount?: string;
|
|
825
|
-
/** Urgent text for urgent special promotion
|
|
826
|
-
* @example "Actie nog 6 dagen" */
|
|
827
|
-
urgentText?: string;
|
|
828
|
-
/** Label properties to display above the card */
|
|
829
|
-
label?: Pick<PropositionLabel, 'displayName' | 'color'>;
|
|
830
|
-
/** Class slots for styling */
|
|
831
|
-
classNames?: PropositionCardClassNames;
|
|
832
|
-
horizontal?: boolean;
|
|
833
950
|
};
|
|
834
951
|
|
|
835
952
|
/**
|
|
836
953
|
* ClassNames for styling the `PropositionHeader` component within `PropositionCard`
|
|
837
954
|
*/
|
|
838
|
-
|
|
955
|
+
declare type PropositionHeaderClassNames = {
|
|
839
956
|
/** Wrapper container for the proposition header */
|
|
840
957
|
base?: string;
|
|
841
|
-
/**
|
|
842
|
-
|
|
843
|
-
/**
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
/**
|
|
859
|
-
*
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
958
|
+
/** Wrapper container for the title, subtitle and optional provider image */
|
|
959
|
+
titleWrapper?: string;
|
|
960
|
+
/** Phone class styling slots
|
|
961
|
+
*
|
|
962
|
+
* Only available for Smartphone Propositions when no phone is selected */
|
|
963
|
+
phone?: {
|
|
964
|
+
/** Phone title text
|
|
965
|
+
* @example "Apple iPhone 16" */
|
|
966
|
+
title?: string;
|
|
967
|
+
/** Phone subtitle text
|
|
968
|
+
* @example "20 GB • Onbp min / sms" */
|
|
969
|
+
subtitle?: string;
|
|
970
|
+
/** Wrapper container for the provider image */
|
|
971
|
+
providerImageWrapper?: string;
|
|
972
|
+
/** Provider image element */
|
|
973
|
+
providerImage?: string;
|
|
974
|
+
};
|
|
975
|
+
/** Proposition class styling slots
|
|
976
|
+
*
|
|
977
|
+
* Not available for Smartphone Propositions when no phone is selected */
|
|
978
|
+
proposition?: {
|
|
979
|
+
/** Wrapper container for the proposition title and subtitle */
|
|
980
|
+
wrapper?: string;
|
|
981
|
+
/** Proposition title text
|
|
982
|
+
* @example "30 GB"
|
|
983
|
+
* @example "100 Mb/s" */
|
|
984
|
+
title?: string;
|
|
985
|
+
/** Proposition subtitle text
|
|
986
|
+
* @example "Onbp min / sms"
|
|
987
|
+
* @example "Glasvezel" */
|
|
988
|
+
subtitle?: string;
|
|
989
|
+
/** Specifications class styling slots */
|
|
990
|
+
specifications?: {
|
|
991
|
+
/** Wrapper container for the specifications */
|
|
992
|
+
wrapper?: string;
|
|
993
|
+
/** Specification item text
|
|
994
|
+
* @example "2 jaar"
|
|
995
|
+
* @example "350 / 400 Mb/s"
|
|
996
|
+
* @example "66 (60 HD)" */
|
|
997
|
+
item?: string;
|
|
998
|
+
/** Specification icon */
|
|
999
|
+
icon?: string;
|
|
1000
|
+
};
|
|
1001
|
+
};
|
|
885
1002
|
};
|
|
886
1003
|
|
|
887
|
-
declare type
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
1004
|
+
declare type PropositionOverviewClassNames = {
|
|
1005
|
+
/** The base container of the proposition overview */
|
|
1006
|
+
base?: string;
|
|
1007
|
+
/** Average per month section class names */
|
|
1008
|
+
averageSection?: AverageSectionClassNames;
|
|
1009
|
+
/** Discount section class names (for smartphone products) */
|
|
1010
|
+
discountSection?: DiscountSectionClassNames;
|
|
1011
|
+
/** Credit info label text */
|
|
1012
|
+
creditInfoLabel?: string;
|
|
1013
|
+
/** Credit info component class styling slots - see type `CreditInfoClassNames` */
|
|
1014
|
+
creditInfo?: CreditInfoClassNames_2;
|
|
892
1015
|
};
|
|
893
1016
|
|
|
894
|
-
declare type PropositionLabelColor = 'primary' | 'secondary' | 'default';
|
|
895
|
-
|
|
896
|
-
declare type PropositionLabelType = 'isRetention' | 'isCheapestPhone' | 'isBudget' | 'isBudgetFiber' | 'isCombi' | 'isFastestInternet' | 'isBudgetOwnNetwork' | 'isBudgetNetwork';
|
|
897
|
-
|
|
898
|
-
export declare function RadioFilter({ id, options, value, onChange, classNames, }: RadioFilterProps): JSX.Element;
|
|
899
|
-
|
|
900
1017
|
/**
|
|
901
1018
|
* ClassNames for styling different parts of the `RadioFilter` component
|
|
902
1019
|
*/
|
|
903
|
-
|
|
1020
|
+
declare type RadioFilterClassNames = {
|
|
904
1021
|
/** Radio group */
|
|
905
1022
|
radioGroup?: {
|
|
906
1023
|
/** Radio group root wrapper, it wraps the label and the wrapper */
|
|
@@ -933,21 +1050,6 @@ export declare type RadioFilterClassNames = {
|
|
|
933
1050
|
};
|
|
934
1051
|
};
|
|
935
1052
|
|
|
936
|
-
export declare type RadioFilterProps = {
|
|
937
|
-
/** Unique identifier for this filter */
|
|
938
|
-
id: string;
|
|
939
|
-
/** Available options to display as radio options */
|
|
940
|
-
options: FilterOption['options'];
|
|
941
|
-
/** Currently selected value */
|
|
942
|
-
value?: string;
|
|
943
|
-
/** Callback when selection changes */
|
|
944
|
-
onChange: (value: string) => void;
|
|
945
|
-
/** Class slots for styling */
|
|
946
|
-
classNames?: RadioFilterClassNames;
|
|
947
|
-
};
|
|
948
|
-
|
|
949
|
-
export declare function RangeFilter({ min, max, step, value, options, maxOptionValue, marks, formatType, onChange, classNames, }: SliderFilterProps): JSX.Element;
|
|
950
|
-
|
|
951
1053
|
declare type ResultsClassNames = {
|
|
952
1054
|
/** Title above top propositions (only shown when `showTopPropositions` is set to `true`)
|
|
953
1055
|
* @example "Beste providers voor jou" */
|
|
@@ -959,6 +1061,8 @@ declare type ResultsClassNames = {
|
|
|
959
1061
|
topPropositionsGrid?: string;
|
|
960
1062
|
/** Grid wrapper of the all propositions */
|
|
961
1063
|
allPropositionsGrid?: string;
|
|
1064
|
+
/** Skeleton card shown in the loading state */
|
|
1065
|
+
skeletonCard?: string;
|
|
962
1066
|
/** Results not found component class styling slots - see type `ResultsNotFoundClassNames` */
|
|
963
1067
|
resultsNotFound?: ResultsNotFoundClassNames;
|
|
964
1068
|
/** Credit info component class styling slots - see type `CreditInfoClassNames` */
|
|
@@ -969,6 +1073,8 @@ declare type ResultsClassNames = {
|
|
|
969
1073
|
propositionCard?: PropositionCardClassNames;
|
|
970
1074
|
/** PostcodeCheck loading card class styling slots (only for fixed propositions) - see type `PostcodeCheckLoadingClassNames` */
|
|
971
1075
|
postcodeCheckLoading?: PostcodeCheckLoadingClassNames;
|
|
1076
|
+
/** Details modal class styling slots - see type `DetailsModalClassNames` */
|
|
1077
|
+
detailsModal?: DetailsModalClassNames;
|
|
972
1078
|
};
|
|
973
1079
|
|
|
974
1080
|
declare type ResultsNotFoundClassNames = {
|
|
@@ -998,44 +1104,19 @@ declare type ResultsNotFoundClassNames = {
|
|
|
998
1104
|
};
|
|
999
1105
|
};
|
|
1000
1106
|
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
input: string;
|
|
1009
|
-
output: string;
|
|
1010
|
-
};
|
|
1011
|
-
Boolean: {
|
|
1012
|
-
input: boolean;
|
|
1013
|
-
output: boolean;
|
|
1014
|
-
};
|
|
1015
|
-
Int: {
|
|
1016
|
-
input: number;
|
|
1017
|
-
output: number;
|
|
1018
|
-
};
|
|
1019
|
-
Float: {
|
|
1020
|
-
input: number;
|
|
1021
|
-
output: number;
|
|
1022
|
-
};
|
|
1023
|
-
Json: {
|
|
1024
|
-
input: any;
|
|
1025
|
-
output: any;
|
|
1026
|
-
};
|
|
1027
|
-
Value: {
|
|
1028
|
-
input: any;
|
|
1029
|
-
output: any;
|
|
1030
|
-
};
|
|
1107
|
+
declare type SectionClassNames = {
|
|
1108
|
+
/** Link text value */
|
|
1109
|
+
link?: string;
|
|
1110
|
+
/** The title of the table section, it is the title of the table section */
|
|
1111
|
+
title?: string;
|
|
1112
|
+
/** Table class names */
|
|
1113
|
+
table?: TableClassNames;
|
|
1031
1114
|
};
|
|
1032
1115
|
|
|
1033
|
-
export declare function SelectFilter({ id, options, values, onChange, classNames, }: SelectFilterProps): JSX.Element;
|
|
1034
|
-
|
|
1035
1116
|
/**
|
|
1036
1117
|
* ClassNames for styling different parts of the `SelectFilter` component
|
|
1037
1118
|
*/
|
|
1038
|
-
|
|
1119
|
+
declare type SelectFilterClassNames = {
|
|
1039
1120
|
/** Checkbox group */
|
|
1040
1121
|
checkboxGroup?: {
|
|
1041
1122
|
/** Checkbox group root wrapper, it wraps the label and the wrapper */
|
|
@@ -1062,77 +1143,17 @@ export declare type SelectFilterClassNames = {
|
|
|
1062
1143
|
/** The text associated with the checkbox */
|
|
1063
1144
|
label?: string;
|
|
1064
1145
|
};
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
/** Available options to display as checkboxes */
|
|
1071
|
-
options: FilterOption['options'];
|
|
1072
|
-
/** Currently selected values */
|
|
1073
|
-
values?: string[];
|
|
1074
|
-
/** Callback when selection changes */
|
|
1075
|
-
onChange: (values: string[]) => void;
|
|
1076
|
-
/** Class slots for styling */
|
|
1077
|
-
classNames?: SelectFilterClassNames;
|
|
1078
|
-
};
|
|
1079
|
-
|
|
1080
|
-
export declare function Selector({ classNames, onClick, disabled, title, description, imageUrl, imageAlt, Icon, avatarName, selected, }: SelectorProps): JSX.Element;
|
|
1081
|
-
|
|
1082
|
-
/**
|
|
1083
|
-
* ClassNames for styling different parts of the `Selector` component
|
|
1084
|
-
*/
|
|
1085
|
-
export declare type SelectorClassNames = {
|
|
1086
|
-
/** Title text styling */
|
|
1087
|
-
title?: string;
|
|
1088
|
-
/** Description text styling */
|
|
1089
|
-
description?: string;
|
|
1090
|
-
/** Main button wrapper */
|
|
1091
|
-
button?: string;
|
|
1092
|
-
/** Badge component (visible when not selected) */
|
|
1093
|
-
badge?: string;
|
|
1094
|
-
/** Avatar component displaying the image or icon */
|
|
1095
|
-
avatar?: {
|
|
1096
|
-
/** Base wrapper styling for the avatar container */
|
|
1097
|
-
base?: string;
|
|
1098
|
-
/** Image element styling */
|
|
1099
|
-
img?: string;
|
|
1100
|
-
/** Name text styling (when displaying initials) */
|
|
1101
|
-
name?: string;
|
|
1102
|
-
/** Icon wrapper styling */
|
|
1103
|
-
icon?: string;
|
|
1104
|
-
/** Fallback content styling (when no image is available) */
|
|
1105
|
-
fallback?: string;
|
|
1106
|
-
};
|
|
1107
|
-
};
|
|
1108
|
-
|
|
1109
|
-
export declare type SelectorProps = {
|
|
1110
|
-
/** Class slots for styling */
|
|
1111
|
-
classNames?: SelectorClassNames;
|
|
1112
|
-
/** Main title text */
|
|
1113
|
-
title: string;
|
|
1114
|
-
/** Optional description text below the title */
|
|
1115
|
-
description?: string;
|
|
1116
|
-
/** Whether the selector is in selected state */
|
|
1117
|
-
selected?: boolean;
|
|
1118
|
-
/** Click handler for the selector */
|
|
1119
|
-
onClick: () => void;
|
|
1120
|
-
/** Icon component to display as fallback when no image is provided */
|
|
1121
|
-
Icon?: React.ElementType;
|
|
1122
|
-
/** Name to display as initials in the avatar when no image is available */
|
|
1123
|
-
avatarName?: string;
|
|
1124
|
-
/** Image URL for the avatar */
|
|
1125
|
-
imageUrl?: string | null;
|
|
1126
|
-
/** Alt text for the image */
|
|
1127
|
-
imageAlt?: string | null;
|
|
1128
|
-
/** Whether the selector is disabled */
|
|
1129
|
-
disabled?: boolean;
|
|
1146
|
+
/** Link to collapse the options
|
|
1147
|
+
* @example "Bekijk meer (2)"
|
|
1148
|
+
* @example "Bekijk minder"
|
|
1149
|
+
*/
|
|
1150
|
+
collapseLink?: string;
|
|
1130
1151
|
};
|
|
1131
1152
|
|
|
1132
1153
|
/**
|
|
1133
1154
|
* ClassNames for styling different parts of the `RangeFilter`, `MinFilter` and `MaxFilter` component
|
|
1134
1155
|
*/
|
|
1135
|
-
|
|
1156
|
+
declare type SliderFilterClassNames = {
|
|
1136
1157
|
/** The foundational slot, encompassing all other slots and elements
|
|
1137
1158
|
*
|
|
1138
1159
|
* It serves as the primary container */
|
|
@@ -1162,42 +1183,6 @@ export declare type SliderFilterClassNames = {
|
|
|
1162
1183
|
thumb?: string;
|
|
1163
1184
|
};
|
|
1164
1185
|
|
|
1165
|
-
export declare type SliderFilterProps = {
|
|
1166
|
-
/** Unique identifier for this filter */
|
|
1167
|
-
id: string;
|
|
1168
|
-
/** Minimum value of the range */
|
|
1169
|
-
min: number;
|
|
1170
|
-
/** Maximum value of the range */
|
|
1171
|
-
max: number;
|
|
1172
|
-
/** Step increment for the slider
|
|
1173
|
-
* @example 5 */
|
|
1174
|
-
step: number;
|
|
1175
|
-
/** Available fixed values within the slider
|
|
1176
|
-
* @example "[0,100,150,200,400,UNLIMITED]" // from 0 to Unlimited */
|
|
1177
|
-
options: number[];
|
|
1178
|
-
/** The maximum value of the slider, calculated from the options and step */
|
|
1179
|
-
maxOptionValue: number;
|
|
1180
|
-
/** Currently selected value
|
|
1181
|
-
* @example "150-400" // Range: from 150 to 400
|
|
1182
|
-
* @example "150-" // Min: from 150
|
|
1183
|
-
* @example "-400" // Max: up to 400
|
|
1184
|
-
*/
|
|
1185
|
-
value?: string;
|
|
1186
|
-
/** The marks to display on the Slider's steps. */
|
|
1187
|
-
marks: {
|
|
1188
|
-
/** The value corresponding to the mark */
|
|
1189
|
-
value: number;
|
|
1190
|
-
/** The label text of the mark */
|
|
1191
|
-
label: string;
|
|
1192
|
-
}[];
|
|
1193
|
-
/** Format type for the filter value */
|
|
1194
|
-
formatType?: FilterOption['formatType'];
|
|
1195
|
-
/** Callback when value changes */
|
|
1196
|
-
onChange: (value: string) => void;
|
|
1197
|
-
/** Class slots for styling */
|
|
1198
|
-
classNames?: SliderFilterClassNames;
|
|
1199
|
-
};
|
|
1200
|
-
|
|
1201
1186
|
declare type SortSelectClassNames = {
|
|
1202
1187
|
description?: string;
|
|
1203
1188
|
errorMessage?: string;
|
|
@@ -1217,11 +1202,60 @@ declare type SortSelectClassNames = {
|
|
|
1217
1202
|
endWrapper?: string;
|
|
1218
1203
|
};
|
|
1219
1204
|
|
|
1220
|
-
declare type
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1205
|
+
declare type TableClassNames = {
|
|
1206
|
+
/** Defines a flexible column layout and relative positioning for the table component */
|
|
1207
|
+
base?: string;
|
|
1208
|
+
/** Applies to the outermost wrapper, providing padding, flexible layout, relative positioning, visual styles, and scrollable overflow handling */
|
|
1209
|
+
wrapper?: string;
|
|
1210
|
+
/** Sets the table to have a full minimum width and auto-adjusting height */
|
|
1211
|
+
table?: string;
|
|
1212
|
+
/** Specifies rounded corners for the first child row in the table header */
|
|
1213
|
+
thead?: string;
|
|
1214
|
+
/** No specific styles are applied to the body of the table */
|
|
1215
|
+
tbody?: string;
|
|
1216
|
+
/** Styles for table rows including group focus, outline properties, and a set of undefined focus-visible classes */
|
|
1217
|
+
tr?: string;
|
|
1218
|
+
/** Styles for table headers, including padding, text alignment, font properties, and special styles for sortable columns */
|
|
1219
|
+
th?: string;
|
|
1220
|
+
/** Applies to table cells, with properties for padding, alignment, and relative positioning, plus special styles for first child elements, selection indication, and disabled cells */
|
|
1221
|
+
td?: string;
|
|
1222
|
+
};
|
|
1223
|
+
|
|
1224
|
+
declare type TableClassNames_2 = {
|
|
1225
|
+
/** Defines a flexible column layout and relative positioning for the table component */
|
|
1226
|
+
base?: string;
|
|
1227
|
+
/** Applies to the outermost wrapper, providing padding, flexible layout, relative positioning, visual styles, and scrollable overflow handling */
|
|
1228
|
+
wrapper?: string;
|
|
1229
|
+
/** Sets the table to have a full minimum width and auto-adjusting height */
|
|
1230
|
+
table?: string;
|
|
1231
|
+
/** Specifies rounded corners for the first child row in the table header */
|
|
1232
|
+
thead?: string;
|
|
1233
|
+
/** No specific styles are applied to the body of the table */
|
|
1234
|
+
tbody?: string;
|
|
1235
|
+
/** Styles for table rows including group focus, outline properties, and a set of undefined focus-visible classes */
|
|
1236
|
+
tr?: string;
|
|
1237
|
+
/** Styles for table headers, including padding, text alignment, font properties, and special styles for sortable columns */
|
|
1238
|
+
th?: string;
|
|
1239
|
+
/** Applies to table cells, with properties for padding, alignment, and relative positioning, plus special styles for first child elements, selection indication, and disabled cells */
|
|
1240
|
+
td?: string;
|
|
1225
1241
|
};
|
|
1226
1242
|
|
|
1243
|
+
declare type TabsClassNames = {
|
|
1244
|
+
/** The base slot of the tabs component */
|
|
1245
|
+
base?: string;
|
|
1246
|
+
/** The tab list container */
|
|
1247
|
+
tabList?: string;
|
|
1248
|
+
/** Individual tab */
|
|
1249
|
+
tab?: string;
|
|
1250
|
+
/** Tab panel */
|
|
1251
|
+
panel?: string;
|
|
1252
|
+
/** Tab cursor (active indicator) */
|
|
1253
|
+
cursor?: string;
|
|
1254
|
+
};
|
|
1255
|
+
|
|
1256
|
+
declare type TermsClassNames = {
|
|
1257
|
+
/** The base slot of the terms section, it is the container of the terms section */
|
|
1258
|
+
base?: string;
|
|
1259
|
+
} & SectionClassNames;
|
|
1260
|
+
|
|
1227
1261
|
export { }
|