@mobielnl/elements 0.6.1 → 0.8.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/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 ActiveFilterChipsProps = {
21
- /** Currently active filter values */
22
- activeFilters: FilterValue[];
23
- /** Available filter options to display */
24
- filterOptions: FilterOption[];
25
- /** Callback when a filter value is removed */
26
- onFilterRemove: (filter: FilterValue) => void;
27
- /** Class slots for styling */
28
- classNames?: ActiveFilterChipsClassNames;
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 DistinctPropertyOption = {
64
- hex?: Maybe<Scalars['String']['output']>;
65
- indexable: Scalars['Boolean']['output'];
66
- key: Scalars['String']['output'];
67
- label: Scalars['String']['output'];
68
- name?: Maybe<Scalars['String']['output']>;
69
- slug: Scalars['String']['output'];
70
- value?: Maybe<Scalars['Value']['output']>;
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
- * ClassNames for styling the `ElementsRoot` component
75
- */
76
- export declare type ElementsClassNames = {
77
- /** The only slot */
78
- base?: string;
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
- /** Class slots for styling */
87
- classNames?: ElementsClassNames;
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
- export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
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
- export declare type FiltersClassNames = {
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,43 +395,20 @@ declare type FilterValue = {
251
395
  value: string | string[];
252
396
  };
253
397
 
254
- declare type GetPageByPathQuery = {
255
- __typename?: 'RootQueryType';
256
- page?: {
257
- __typename?: 'Page';
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;
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;
402
+
403
+ /**
404
+ * ClassNames for styling the `Label` component within `PropositionCard`
405
+ */
406
+ declare type LabelClassNames = {
407
+ /** Base wrapper container for the label */
408
+ wrapper?: string;
409
+ /** Text for the label
410
+ * @example "Meest voordelig" */
411
+ text?: string;
291
412
  };
292
413
 
293
414
  declare type ListBoxClassNames = {
@@ -298,9 +419,62 @@ declare type ListBoxClassNames = {
298
419
  selectedIcon?: string;
299
420
  };
300
421
 
301
- declare type Maybe<T> = T | null;
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
+ };
302
459
 
303
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 = {
304
478
  /** The backdrop slot, it is displayed behind the modal */
305
479
  backdrop?: string;
306
480
  /** The wrapper slot of the modal. It wraps the base and the backdrop slots */
@@ -321,7 +495,7 @@ declare type ModalClassNames = {
321
495
  primaryButton?: string;
322
496
  };
323
497
 
324
- declare type ModalClassNames_2 = {
498
+ declare type ModalClassNames_3 = {
325
499
  /** The backdrop slot, it is displayed behind the modal */
326
500
  backdrop?: string;
327
501
  /** The wrapper slot of the modal. It wraps the base and the backdrop slots */
@@ -338,40 +512,132 @@ declare type ModalClassNames_2 = {
338
512
  closeButton?: string;
339
513
  };
340
514
 
341
- declare type PhoneListContainerClassNames = {
515
+ declare type ModalClassNames_4 = {
516
+ /** The backdrop slot, it is displayed behind the modal */
517
+ backdrop?: string;
518
+ /** The wrapper slot of the modal. It wraps the base and the backdrop slots */
519
+ wrapper?: string;
520
+ /** The main slot of the modal content */
342
521
  base?: string;
522
+ /** The header of the modal, it is displayed at the top of the modal */
523
+ header?: string;
524
+ /** The body of the modal, it is displayed in the middle of the modal */
525
+ body?: string;
526
+ /** The footer of the modal, it is displayed at the bottom of the modal */
527
+ footer?: string;
528
+ /** The close button (X) of the modal in top-right corner */
529
+ closeButton?: string;
530
+ };
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 */
343
536
  wrapper?: string;
344
- title?: string;
345
- description?: string;
346
- selectedIcon?: string;
347
- item?: string;
348
- itemWrapper?: string;
349
- itemContent?: string;
350
- itemLabel?: string;
351
- itemDescription?: string;
352
- emptyContent?: 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;
353
547
  };
354
548
 
355
- export declare function PhoneSelector({ onChange, classNames, disabled, productSlug: initialProductSlug, selectedDistinctProperties: initialSelectedDistinctProperties, }: PhoneSelectorProps): JSX.Element;
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
+ };
356
557
 
357
- declare type PhoneSelectorClassNames = {
358
- base?: string;
359
- button?: string;
360
- /** Filter modal class styling slots - see type `ModalClassNames` */
361
- modal?: ModalClassNames;
362
- brandTabs?: string;
363
- phoneList?: PhoneListContainerClassNames;
364
- variantList?: string;
365
- confirmButton?: string;
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;
366
567
  };
367
568
 
368
- declare type PhoneSelectorProps = {
369
- onChange?: (productSlug: string, distinctProperties: VersionDistinctProperty[]) => void;
370
- classNames?: PhoneSelectorClassNames;
371
- disabled?: boolean;
372
- placeholder?: string;
373
- productSlug?: string;
374
- selectedDistinctProperties?: VersionDistinctProperty[];
569
+ declare type NumberPreservationModalClassNames = {
570
+ /** Modal dialog class styling slots - see type `ModalClassNames` */
571
+ modal?: ModalClassNames_4;
572
+ /** Header section containing icon and title */
573
+ header?: {
574
+ /** Container wrapping the header content */
575
+ container?: string;
576
+ /** Icon wrapper with background (contains "06" text) */
577
+ iconWrapper?: string;
578
+ /** Main title text */
579
+ title?: string;
580
+ /** Description text below title */
581
+ description?: string;
582
+ };
583
+ /** Form section for number input */
584
+ form?: {
585
+ /** Form element container */
586
+ container?: string;
587
+ /** Input field styling slots */
588
+ input?: {
589
+ /** Input wrapper styling */
590
+ inputWrapper?: string;
591
+ /** Input element styling */
592
+ input?: string;
593
+ };
594
+ };
595
+ /** Provider selection section */
596
+ provider?: {
597
+ /** Select component styling */
598
+ select?: {
599
+ /** Select label styling */
600
+ label?: string;
601
+ /** Select trigger button styling */
602
+ trigger?: string;
603
+ /** Provider item container in select */
604
+ itemContainer?: string;
605
+ /** Provider icon styling */
606
+ icon?: string;
607
+ };
608
+ };
609
+ /** Options section (Ja/Nee buttons) */
610
+ options?: {
611
+ /** Container for the option buttons */
612
+ container?: string;
613
+ /** Option button styling */
614
+ button?: string;
615
+ /** Button content wrapper */
616
+ buttonContent?: string;
617
+ /** Button label text */
618
+ buttonLabel?: string;
619
+ /** Button description text */
620
+ buttonDescription?: string;
621
+ /** Button icon styling */
622
+ buttonIcon?: string;
623
+ };
624
+ /** Radio group for subscription type selection */
625
+ radioGroup?: {
626
+ /** Radio group base styling */
627
+ base?: string;
628
+ /** Radio group wrapper styling */
629
+ wrapper?: string;
630
+ /** Radio group label styling */
631
+ label?: string;
632
+ /** Radio group description styling */
633
+ description?: string;
634
+ /** Radio group error message styling */
635
+ errorMessage?: string;
636
+ /** Radio styling */
637
+ radio?: string;
638
+ };
639
+ /** Submit button styling */
640
+ submitButton?: string;
375
641
  };
376
642
 
377
643
  declare type PopoverContentClassNames = {
@@ -398,7 +664,7 @@ declare type PostcodeCheckLoadingClassNames = {
398
664
 
399
665
  export declare type PostcodeCheckModalClassNames = {
400
666
  /** Modal dialog class styling slots - see type `ModalClassNames` */
401
- modal?: ModalClassNames_2;
667
+ modal?: ModalClassNames;
402
668
  /** Header section containing icon and title */
403
669
  header?: {
404
670
  /** Container wrapping the header content */
@@ -429,12 +695,22 @@ export declare type PostcodeCheckModalClassNames = {
429
695
  /** Input label styling */
430
696
  label?: string;
431
697
  };
432
- /** Error message container */
433
- error?: {
434
- /** Error container wrapper */
435
- container?: string;
436
- /** Error text styling */
437
- text?: string;
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;
438
714
  };
439
715
  };
440
716
  /** Provider selection section */
@@ -457,51 +733,53 @@ export declare type PostcodeCheckModalClassNames = {
457
733
  submitButton?: string;
458
734
  };
459
735
 
460
- export declare type PostcodeCheckModalProps = {
461
- /** Whether the modal is open */
462
- open: boolean;
463
- /** Callback function to handle modal open state changes */
464
- onOpenChange: (open: boolean) => void;
465
- /** Class slots for styling */
466
- classNames?: PostcodeCheckModalClassNames;
467
- /** Callback function to handle profile changes */
468
- onProfileChange?: (profile: Partial<Profile>) => void;
469
- /** User profile */
470
- profile: Profile;
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;
471
747
  };
472
748
 
473
749
  /**
474
- * ClassNames for styling the `PricingSection` component within `PropositionCard`
750
+ * ClassNames for styling the `Pricing` component within `PropositionCard`
475
751
  */
476
- export declare type PricingSectionClassNames = {
752
+ declare type PricingClassNames = {
477
753
  /** Wrapper container for the pricing section */
478
- base?: string;
479
- /** Product price text (one-time payment - only visible for phone propositions)
480
- * @example "+ 100,- eenmalig" */
481
- productPrice?: string;
482
- /** Monthly fee container */
483
- monthlyFee?: string;
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;
484
760
  /** Monthly fee value text (price per month)
485
761
  * @example "10,-" */
486
762
  monthlyFeeValue?: string;
487
763
  /** Monthly fee label text
488
- * @example "/mnd" */
764
+ /* @example "/ maand" */
489
765
  monthlyFeeLabel?: string;
490
- /** Promotion text for monthly fee
491
- * @example "12 mnd van 10,- voor:" */
492
- promotionText?: string;
493
- /** Average price container (TCO per month) */
494
- averagePrice?: string;
495
- };
496
-
497
- export declare type PricingSectionProps = Pick<PropositionCardProps, 'onInfoClick' | 'productPrice' | 'monthlyFee' | 'tcoPerMonth' | 'monthlyFeePromotionText'> & {
498
- /** Class slots for styling */
499
- classNames?: PricingSectionClassNames;
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;
500
778
  };
501
779
 
502
- 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';
503
781
 
504
- export declare function ProductResults({ productCategory, initialSelectedFilters, limit, classNames, initialProfile, onProfileChange, onError, }: ProductResultsProps): JSX.Element;
782
+ export declare function ProductResults({ classNames, initialSelectedFilters, initialProfile, onProfileChange, onError, ...props }: ProductResultsProps): JSX.Element;
505
783
 
506
784
  /**
507
785
  * ClassNames for styling different parts of the `ProductResults` component
@@ -518,26 +796,38 @@ export declare type ProductResultsClassNames = {
518
796
  /** Filter button (only on mobile & tablet screens) */
519
797
  filterButton?: string;
520
798
  /** Filter modal class styling slots - see type `ModalClassNames` */
521
- modal?: ModalClassNames;
522
- /** Grid wrapper of the results */
523
- resultsGrid?: string;
524
- /** Credit info component class styling slots - see type `CreditInfoClassNames` */
525
- creditInfo?: CreditInfoClassNames;
526
- /** Load more button */
527
- loadMoreButton?: string;
528
- /** Results not found component class styling slots - see type `ResultsNotFoundClassNames` */
529
- resultsNotFound?: ResultsNotFoundClassNames;
530
- /** Proposition card class styling slots - see type `PropositionCardClassNames` */
531
- propositionCard?: PropositionCardClassNames;
532
- /** PostcodeCheck loading card class styling slots (only for fixed propositions) - see type `PostcodeCheckLoadingClassNames` */
533
- postcodeCheckLoading?: PostcodeCheckLoadingClassNames;
799
+ filterModal?: ModalClassNames_2;
534
800
  /** Postcode check modal class styling slots - see type `PostcodeCheckModalClassNames` */
535
801
  postcodeCheckModal?: PostcodeCheckModalClassNames;
802
+ /** CombiDeal modal class styling slots - see type `CombiDealModalClassNames` */
803
+ combiDealModal?: CombiDealModalClassNames;
804
+ /** Number preservation modal class styling slots - see type `NumberPreservationModalClassNames` */
805
+ numberPreservationModal?: NumberPreservationModalClassNames;
806
+ /** Proposition results class styling slots - see type `ResultsClassNames` */
807
+ results?: ResultsClassNames;
808
+ /** Error alert class styling slots - see type `ErrorAlertClassNames` */
809
+ errorAlert?: ErrorAlertClassNames;
536
810
  };
537
811
 
538
812
  export declare type ProductResultsProps = {
539
813
  /** Product type of the results */
540
814
  productCategory: Exclude<ProductCategory, 'smartphone-proposition-extended'>;
815
+ /** Whether to show the dynamic top 3 propositions based on the user's profile
816
+ *
817
+ * Not available for smartphone propositions when no phone is selected */
818
+ showTopPropositions?: boolean;
819
+ /** Customize texts */
820
+ texts?: {
821
+ /** Title above profile buttons
822
+ * @default "Personaliseer" */
823
+ profileTitle?: string;
824
+ /** Title above top propositions (only shown when `showTopPropositions` is set to `true`)
825
+ * @default "Beste providers voor jou" */
826
+ topPropositionsTitle?: string;
827
+ /** Title above all propositions (only shown when `showTopPropositions` is set to `true`)
828
+ * @default "Alle providers op een rijtje" */
829
+ allPropositionsTitle?: string;
830
+ };
541
831
  /** Initial selected filters */
542
832
  initialSelectedFilters?: FilterValue[];
543
833
  /** Limit the number of propositions to display */
@@ -552,23 +842,6 @@ export declare type ProductResultsProps = {
552
842
  onError?: (error: Error) => void;
553
843
  };
554
844
 
555
- /**
556
- * ClassNames for styling the `ProductSection` component within `PropositionCard`
557
- */
558
- export declare type ProductSectionClassNames = {
559
- /** Wrapper container for the entire product section */
560
- base?: string;
561
- /** Image wrapper, it handles alignment, placement, and general appearance for the product image */
562
- imageWrapper?: string;
563
- /** Product image element */
564
- image?: string;
565
- /** Delivery Text Icon " */
566
- deliveryTextIcon?: string;
567
- /** Delivery Text
568
- * @example "Direct leverbaar" */
569
- deliveryText?: string;
570
- };
571
-
572
845
  declare type Profile = z.infer<typeof profileSchema>;
573
846
 
574
847
  declare const profileSchema: z_2.ZodObject<{
@@ -595,9 +868,9 @@ declare const profileSchema: z_2.ZodObject<{
595
868
  }, z_2.core.$strip>;
596
869
 
597
870
  /**
598
- * ClassNames for styling the `PromotionsList` component within `PropositionCard`
871
+ * ClassNames for styling the `PromotionList` component within `PropositionCard`
599
872
  */
600
- export declare type PromotionsListClassNames = {
873
+ declare type PromotionListClassNames = {
601
874
  /** Wrapper container for the promotions list */
602
875
  base?: string;
603
876
  /** Individual promotion item
@@ -605,191 +878,144 @@ export declare type PromotionsListClassNames = {
605
878
  item?: string;
606
879
  /** Checkmark icon for each promotion item */
607
880
  promotionIcon?: string;
608
- /** Urgent text chip */
609
- urgentChip?: string;
610
- };
611
-
612
- export declare type PromotionsListProps = {
613
- /** Promotions to display */
614
- promotions: string[];
615
- /** Urgent text to display as a chip above promotions
881
+ /** Urgent text chip (only visible when promotion is urgent)
616
882
  * @example "Actie nog 6 dagen" */
617
- urgentText?: string;
618
- /** Class slots for styling */
619
- classNames?: PromotionsListClassNames;
883
+ urgentChip?: {
884
+ /** The base slot of the chip, it is the container of the chip */
885
+ base?: string;
886
+ /** The content slot of the chip, it is the container of the text */
887
+ content?: string;
888
+ };
620
889
  };
621
890
 
622
- export declare function PropositionCard({ horizontal, ...props }: PropositionCardProps): JSX.Element;
623
-
624
891
  /**
625
892
  * ClassNames for styling different parts of the `PropositionCard` component
626
893
  */
627
- export declare type PropositionCardClassNames = {
628
- /** Main card wrapper */
894
+ declare type PropositionCardClassNames = {
895
+ /** Base wrapper container for the label and proposition card
896
+ *
897
+ * Only available when there is a label */
898
+ cardWrapper?: string;
899
+ /** Label class styling slots - see type `LabelClassNames`
900
+ *
901
+ * Only available when there is a label */
902
+ label?: LabelClassNames;
903
+ /** Card container for the proposition card */
629
904
  card?: string;
630
- /** Card header wrapper around `productSection` and `propositionHeader` */
631
- header?: string;
632
- /** Card body wrapper around `specifications`, `urgentChip` and `promotionsList` */
633
- body?: string;
634
- /** Card footer wrapper around `pricingSection` and `button` */
635
- footer?: string;
636
- /** Image wrapper for proposition provider image (only on Horizontal card)
905
+ /** Specific section wrapper styles for horizontal card layout */
906
+ horizontalCard?: {
907
+ /** Card header wrapper around `mainImage` */
908
+ header?: string;
909
+ /** Vertical divider between `header` and `body` */
910
+ divider?: string;
911
+ /** Card body wrapper around `propositionHeader` and `promotionList` */
912
+ body?: string;
913
+ /** Card footer wrapper around `pricing` and `button` */
914
+ footer?: string;
915
+ };
916
+ /** Specific section wrapper styles for vertical card layout */
917
+ verticalCard?: {
918
+ /** Card header wrapper around `mainImage` */
919
+ header?: string;
920
+ /** Card body wrapper around `propositionHeader` and `promotionList` */
921
+ body?: string;
922
+ /** Horizontal divider between `body` and `footer` */
923
+ divider?: string;
924
+ /** Card footer wrapper around `pricing` and `button` */
925
+ footer?: string;
926
+ };
927
+ /** Main image class styling slots - see type `MainImageClassNames`
637
928
  *
638
- * It handles alignment, placement, and general appearance for the proposition provider image */
639
- imageWrapper?: string;
640
- /** Proposition provider image (only on Horizontal card) */
641
- image?: string;
642
- /** Product section (only visible for smartphone propositions) class styling slots - see type `ProductSectionClassNames` */
643
- productSection?: ProductSectionClassNames;
644
- /** Proposition header class styling slots - see type `PropositionHeaderClassNames` */
929
+ * Within the `header` section */
930
+ mainImage?: MainImageClassNames;
931
+ /** Proposition header class styling slots - see type `PropositionHeaderClassNames`
932
+ *
933
+ * Within the `body` section */
645
934
  propositionHeader?: PropositionHeaderClassNames;
646
- /** Pricing section class styling slots - see type `PricingSectionClassNames` */
647
- pricingSection?: PricingSectionClassNames;
648
- /** Promotions list class styling slots - see type `PromotionsListClassNames` */
649
- promotionsList?: PromotionsListClassNames;
650
- /** Specifications grid (only visible for sim only and fixed propositions)
651
- * @example
652
- * - "2 jaar"
653
- * - "350 / 400 Mb/s"
654
- * - "66 (60 HD)"
655
- * - "Via TV app" */
656
- specifications?: string;
657
- /** Urgent text chip (only visible when promotion is urgent)
658
- * @example "Actie nog 6 dagen" */
659
- urgentChip?: string;
935
+ /** Promotion list class styling slots - see type `PromotionListClassNames`
936
+ *
937
+ * Within the `body` section */
938
+ promotionList?: PromotionListClassNames;
939
+ /** Pricing section class styling slots - see type `PricingClassNames`
940
+ *
941
+ * Within the `footer` section */
942
+ pricing?: PricingClassNames;
660
943
  /** Call To Action button
944
+ *
945
+ * Within the `footer` section
661
946
  * @example "Bekijk" */
662
947
  button?: string;
663
- /** Card wrapper (container for the label and card) */
664
- cardWrapper?: string;
665
- /** Label text styling */
666
- label?: string;
667
- };
668
-
669
- export declare type PropositionCardProps = {
670
- /** Click handler on the card */
671
- onClick: (e: {
672
- target: Element;
673
- }) => void;
674
- /** Click handler to open the details modal */
675
- onInfoClick: (tab: 'general' | 'conditions' | 'channels' | 'costs') => void;
676
- /** Whether the proposition is disabled */
677
- disabled?: boolean;
678
- /** Product title - should include brand + phone name
679
- * @example "Apple iPhone 17" */
680
- productTitle?: string;
681
- /** Product image URL */
682
- productImageUrl?: string;
683
- /** Product image alt text */
684
- productImageAlt?: string;
685
- /** Product stock status
686
- * @example "in_stock" */
687
- productStockStatus?: string;
688
- /** Product price
689
- * @example "100,-" */
690
- productPrice?: string;
691
- /** Proposition title
692
- * @example "30 GB" */
693
- propositionTitle: string;
694
- /** Proposition subtitle
695
- * @example "Onbp min / sms" */
696
- propositionSubtitle: string;
697
- /** Proposition image URL */
698
- propositionImageUrl: string;
699
- /** Proposition image alt text */
700
- propositionImageAlt: string;
701
- /** Proposition specifications */
702
- propositionSpecifications?: {
703
- slug: string;
704
- title: string;
705
- }[];
706
- /** Monthly fee for subscription
707
- * @example "10,-" */
708
- monthlyFee: string;
709
- /** Average total cost per month
710
- * @example "10,-" */
711
- tcoPerMonth: string;
712
- /** Special promotions
713
- * @example ["Geen aansluitingskosten"] */
714
- specialPromotions: string[];
715
- /** Modification promotions
716
- * @example ["€ 4,50 korting per maand"] */
717
- modificationPromotions: string[];
718
- /** Monthly fee promotion text
719
- * @example "12 mnd van 10,- voor:" */
720
- monthlyFeePromotionText?: string;
721
- /** Device discount
722
- * @example "100,-" */
723
- deviceDiscount?: string;
724
- /** Urgent text for urgent special promotion
725
- * @example "Actie nog 6 dagen" */
726
- urgentText?: string;
727
- /** Label text to display above the card
728
- * @example "Meest gekozen" */
729
- label?: string;
730
- /** Class slots for styling */
731
- classNames?: PropositionCardClassNames;
732
- horizontal?: boolean;
733
948
  };
734
949
 
735
950
  /**
736
951
  * ClassNames for styling the `PropositionHeader` component within `PropositionCard`
737
952
  */
738
- export declare type PropositionHeaderClassNames = {
953
+ declare type PropositionHeaderClassNames = {
739
954
  /** Wrapper container for the proposition header */
740
955
  base?: string;
741
- /** Image wrapper, it handles alignment, placement, and general appearance for the proposition provider image (only on Vertical card) */
742
- imageWrapper?: string;
743
- /** Proposition provider image element (only on Vertical card) */
744
- image?: string;
745
- /** Proposition title text
746
- * @example "30 GB"
747
- * @example "100 Mb/s" */
748
- title?: string;
749
- /** Proposition subtitle text
750
- * @example "Onbp min / sms"
751
- * @example "Glasvezel" */
752
- subtitle?: string;
753
- /** Specifications container */
754
- specifications?: string;
956
+ /** Wrapper container for the title, subtitle and optional provider image */
957
+ titleWrapper?: string;
958
+ /** Phone class styling slots
959
+ *
960
+ * Only available for Smartphone Propositions when no phone is selected */
961
+ phone?: {
962
+ /** Phone title text
963
+ * @example "Apple iPhone 16" */
964
+ title?: string;
965
+ /** Phone subtitle text
966
+ * @example "20 GB • Onbp min / sms" */
967
+ subtitle?: string;
968
+ /** Wrapper container for the provider image */
969
+ providerImageWrapper?: string;
970
+ /** Provider image element */
971
+ providerImage?: string;
972
+ };
973
+ /** Proposition class styling slots
974
+ *
975
+ * Not available for Smartphone Propositions when no phone is selected */
976
+ proposition?: {
977
+ /** Wrapper container for the proposition title and subtitle */
978
+ wrapper?: string;
979
+ /** Proposition title text
980
+ * @example "30 GB"
981
+ * @example "100 Mb/s" */
982
+ title?: string;
983
+ /** Proposition subtitle text
984
+ * @example "Onbp min / sms"
985
+ * @example "Glasvezel" */
986
+ subtitle?: string;
987
+ /** Specifications class styling slots */
988
+ specifications?: {
989
+ /** Wrapper container for the specifications */
990
+ wrapper?: string;
991
+ /** Specification item text
992
+ * @example "2 jaar"
993
+ * @example "350 / 400 Mb/s"
994
+ * @example "66 (60 HD)" */
995
+ item?: string;
996
+ /** Specification icon */
997
+ icon?: string;
998
+ };
999
+ };
755
1000
  };
756
1001
 
757
- export declare type PropositionHeaderProps = {
758
- /** Product title (for smartphone propositions) - should include brand + phone name
759
- * @example "Apple iPhone 17" */
760
- productTitle?: string;
761
- /** Proposition title text
762
- * @example "30 GB"
763
- * @example "100 Mb/s" */
764
- propositionTitle: string;
765
- /** Proposition subtitle text
766
- * @example "Onbp min / sms"
767
- * @example "Glasvezel" */
768
- propositionSubtitle: string;
769
- /** Proposition provider image URL */
770
- imageUrl?: string;
771
- /** Proposition provider image alt text */
772
- imageAlt?: string;
773
- /** Whether the proposition has a product/phone */
774
- hasProduct: boolean;
775
- /** Proposition specifications */
776
- propositionSpecifications?: {
777
- slug: string;
778
- title: string;
779
- }[];
780
- /** Click handler to open the details modal */
781
- onInfoClick?: (tab: 'general' | 'conditions' | 'channels' | 'costs') => void;
782
- /** Class slots for styling */
783
- classNames?: PropositionHeaderClassNames;
784
- horizontal?: boolean;
1002
+ declare type PropositionOverviewClassNames = {
1003
+ /** The base container of the proposition overview */
1004
+ base?: string;
1005
+ /** Average per month section class names */
1006
+ averageSection?: AverageSectionClassNames;
1007
+ /** Discount section class names (for smartphone products) */
1008
+ discountSection?: DiscountSectionClassNames;
1009
+ /** Credit info label text */
1010
+ creditInfoLabel?: string;
1011
+ /** Credit info component class styling slots - see type `CreditInfoClassNames` */
1012
+ creditInfo?: CreditInfoClassNames_2;
785
1013
  };
786
1014
 
787
- export declare function RadioFilter({ id, options, value, onChange, classNames, }: RadioFilterProps): JSX.Element;
788
-
789
1015
  /**
790
1016
  * ClassNames for styling different parts of the `RadioFilter` component
791
1017
  */
792
- export declare type RadioFilterClassNames = {
1018
+ declare type RadioFilterClassNames = {
793
1019
  /** Radio group */
794
1020
  radioGroup?: {
795
1021
  /** Radio group root wrapper, it wraps the label and the wrapper */
@@ -822,21 +1048,33 @@ export declare type RadioFilterClassNames = {
822
1048
  };
823
1049
  };
824
1050
 
825
- export declare type RadioFilterProps = {
826
- /** Unique identifier for this filter */
827
- id: string;
828
- /** Available options to display as radio options */
829
- options: FilterOption['options'];
830
- /** Currently selected value */
831
- value?: string;
832
- /** Callback when selection changes */
833
- onChange: (value: string) => void;
834
- /** Class slots for styling */
835
- classNames?: RadioFilterClassNames;
1051
+ declare type ResultsClassNames = {
1052
+ /** Title above top propositions (only shown when `showTopPropositions` is set to `true`)
1053
+ * @example "Beste providers voor jou" */
1054
+ topPropositionsTitle?: string;
1055
+ /** Title above all propositions (only shown when `showTopPropositions` is set to `true`)
1056
+ * @example "Alle providers op een rijtje" */
1057
+ allPropositionsTitle?: string;
1058
+ /** Grid wrapper of the top propositions */
1059
+ topPropositionsGrid?: string;
1060
+ /** Grid wrapper of the all propositions */
1061
+ allPropositionsGrid?: string;
1062
+ /** Skeleton card shown in the loading state */
1063
+ skeletonCard?: string;
1064
+ /** Results not found component class styling slots - see type `ResultsNotFoundClassNames` */
1065
+ resultsNotFound?: ResultsNotFoundClassNames;
1066
+ /** Credit info component class styling slots - see type `CreditInfoClassNames` */
1067
+ creditInfo?: CreditInfoClassNames;
1068
+ /** Load more button */
1069
+ loadMoreButton?: string;
1070
+ /** Proposition card class styling slots - see type `PropositionCardClassNames` */
1071
+ propositionCard?: PropositionCardClassNames;
1072
+ /** PostcodeCheck loading card class styling slots (only for fixed propositions) - see type `PostcodeCheckLoadingClassNames` */
1073
+ postcodeCheckLoading?: PostcodeCheckLoadingClassNames;
1074
+ /** Details modal class styling slots - see type `DetailsModalClassNames` */
1075
+ detailsModal?: DetailsModalClassNames;
836
1076
  };
837
1077
 
838
- export declare function RangeFilter({ min, max, step, value, options, maxOptionValue, marks, formatType, onChange, classNames, }: SliderFilterProps): JSX.Element;
839
-
840
1078
  declare type ResultsNotFoundClassNames = {
841
1079
  filterChips?: ActiveFilterChipsClassNames & {
842
1080
  /** The title element above the filter chips
@@ -864,44 +1102,19 @@ declare type ResultsNotFoundClassNames = {
864
1102
  };
865
1103
  };
866
1104
 
867
- /** All built-in and custom scalars, mapped to their actual values */
868
- declare type Scalars = {
869
- ID: {
870
- input: string;
871
- output: string;
872
- };
873
- String: {
874
- input: string;
875
- output: string;
876
- };
877
- Boolean: {
878
- input: boolean;
879
- output: boolean;
880
- };
881
- Int: {
882
- input: number;
883
- output: number;
884
- };
885
- Float: {
886
- input: number;
887
- output: number;
888
- };
889
- Json: {
890
- input: any;
891
- output: any;
892
- };
893
- Value: {
894
- input: any;
895
- output: any;
896
- };
1105
+ declare type SectionClassNames = {
1106
+ /** Link text value */
1107
+ link?: string;
1108
+ /** The title of the table section, it is the title of the table section */
1109
+ title?: string;
1110
+ /** Table class names */
1111
+ table?: TableClassNames;
897
1112
  };
898
1113
 
899
- export declare function SelectFilter({ id, options, values, onChange, classNames, }: SelectFilterProps): JSX.Element;
900
-
901
1114
  /**
902
1115
  * ClassNames for styling different parts of the `SelectFilter` component
903
1116
  */
904
- export declare type SelectFilterClassNames = {
1117
+ declare type SelectFilterClassNames = {
905
1118
  /** Checkbox group */
906
1119
  checkboxGroup?: {
907
1120
  /** Checkbox group root wrapper, it wraps the label and the wrapper */
@@ -928,77 +1141,17 @@ export declare type SelectFilterClassNames = {
928
1141
  /** The text associated with the checkbox */
929
1142
  label?: string;
930
1143
  };
931
- };
932
-
933
- export declare type SelectFilterProps = {
934
- /** Unique identifier for this filter */
935
- id: string;
936
- /** Available options to display as checkboxes */
937
- options: FilterOption['options'];
938
- /** Currently selected values */
939
- values?: string[];
940
- /** Callback when selection changes */
941
- onChange: (values: string[]) => void;
942
- /** Class slots for styling */
943
- classNames?: SelectFilterClassNames;
944
- };
945
-
946
- export declare function Selector({ classNames, onClick, disabled, title, description, imageUrl, imageAlt, Icon, avatarName, selected, }: SelectorProps): JSX.Element;
947
-
948
- /**
949
- * ClassNames for styling different parts of the `Selector` component
950
- */
951
- export declare type SelectorClassNames = {
952
- /** Title text styling */
953
- title?: string;
954
- /** Description text styling */
955
- description?: string;
956
- /** Main button wrapper */
957
- button?: string;
958
- /** Badge component (visible when not selected) */
959
- badge?: string;
960
- /** Avatar component displaying the image or icon */
961
- avatar?: {
962
- /** Base wrapper styling for the avatar container */
963
- base?: string;
964
- /** Image element styling */
965
- img?: string;
966
- /** Name text styling (when displaying initials) */
967
- name?: string;
968
- /** Icon wrapper styling */
969
- icon?: string;
970
- /** Fallback content styling (when no image is available) */
971
- fallback?: string;
972
- };
973
- };
974
-
975
- export declare type SelectorProps = {
976
- /** Class slots for styling */
977
- classNames?: SelectorClassNames;
978
- /** Main title text */
979
- title: string;
980
- /** Optional description text below the title */
981
- description?: string;
982
- /** Whether the selector is in selected state */
983
- selected?: boolean;
984
- /** Click handler for the selector */
985
- onClick: () => void;
986
- /** Icon component to display as fallback when no image is provided */
987
- Icon?: React.ElementType;
988
- /** Name to display as initials in the avatar when no image is available */
989
- avatarName?: string;
990
- /** Image URL for the avatar */
991
- imageUrl?: string | null;
992
- /** Alt text for the image */
993
- imageAlt?: string | null;
994
- /** Whether the selector is disabled */
995
- disabled?: boolean;
1144
+ /** Link to collapse the options
1145
+ * @example "Bekijk meer (2)"
1146
+ * @example "Bekijk minder"
1147
+ */
1148
+ collapseLink?: string;
996
1149
  };
997
1150
 
998
1151
  /**
999
1152
  * ClassNames for styling different parts of the `RangeFilter`, `MinFilter` and `MaxFilter` component
1000
1153
  */
1001
- export declare type SliderFilterClassNames = {
1154
+ declare type SliderFilterClassNames = {
1002
1155
  /** The foundational slot, encompassing all other slots and elements
1003
1156
  *
1004
1157
  * It serves as the primary container */
@@ -1028,42 +1181,6 @@ export declare type SliderFilterClassNames = {
1028
1181
  thumb?: string;
1029
1182
  };
1030
1183
 
1031
- export declare type SliderFilterProps = {
1032
- /** Unique identifier for this filter */
1033
- id: string;
1034
- /** Minimum value of the range */
1035
- min: number;
1036
- /** Maximum value of the range */
1037
- max: number;
1038
- /** Step increment for the slider
1039
- * @example 5 */
1040
- step: number;
1041
- /** Available fixed values within the slider
1042
- * @example "[0,100,150,200,400,UNLIMITED]" // from 0 to Unlimited */
1043
- options: number[];
1044
- /** The maximum value of the slider, calculated from the options and step */
1045
- maxOptionValue: number;
1046
- /** Currently selected value
1047
- * @example "150-400" // Range: from 150 to 400
1048
- * @example "150-" // Min: from 150
1049
- * @example "-400" // Max: up to 400
1050
- */
1051
- value?: string;
1052
- /** The marks to display on the Slider's steps. */
1053
- marks: {
1054
- /** The value corresponding to the mark */
1055
- value: number;
1056
- /** The label text of the mark */
1057
- label: string;
1058
- }[];
1059
- /** Format type for the filter value */
1060
- formatType?: FilterOption['formatType'];
1061
- /** Callback when value changes */
1062
- onChange: (value: string) => void;
1063
- /** Class slots for styling */
1064
- classNames?: SliderFilterClassNames;
1065
- };
1066
-
1067
1184
  declare type SortSelectClassNames = {
1068
1185
  description?: string;
1069
1186
  errorMessage?: string;
@@ -1083,11 +1200,60 @@ declare type SortSelectClassNames = {
1083
1200
  endWrapper?: string;
1084
1201
  };
1085
1202
 
1086
- declare type VersionDistinctProperty = {
1087
- __typename?: 'VersionDistinctProperty';
1088
- key: Scalars['String']['output'];
1089
- label: Scalars['String']['output'];
1090
- option: DistinctPropertyOption;
1203
+ declare type TableClassNames = {
1204
+ /** Defines a flexible column layout and relative positioning for the table component */
1205
+ base?: string;
1206
+ /** Applies to the outermost wrapper, providing padding, flexible layout, relative positioning, visual styles, and scrollable overflow handling */
1207
+ wrapper?: string;
1208
+ /** Sets the table to have a full minimum width and auto-adjusting height */
1209
+ table?: string;
1210
+ /** Specifies rounded corners for the first child row in the table header */
1211
+ thead?: string;
1212
+ /** No specific styles are applied to the body of the table */
1213
+ tbody?: string;
1214
+ /** Styles for table rows including group focus, outline properties, and a set of undefined focus-visible classes */
1215
+ tr?: string;
1216
+ /** Styles for table headers, including padding, text alignment, font properties, and special styles for sortable columns */
1217
+ th?: string;
1218
+ /** Applies to table cells, with properties for padding, alignment, and relative positioning, plus special styles for first child elements, selection indication, and disabled cells */
1219
+ td?: string;
1220
+ };
1221
+
1222
+ declare type TableClassNames_2 = {
1223
+ /** Defines a flexible column layout and relative positioning for the table component */
1224
+ base?: string;
1225
+ /** Applies to the outermost wrapper, providing padding, flexible layout, relative positioning, visual styles, and scrollable overflow handling */
1226
+ wrapper?: string;
1227
+ /** Sets the table to have a full minimum width and auto-adjusting height */
1228
+ table?: string;
1229
+ /** Specifies rounded corners for the first child row in the table header */
1230
+ thead?: string;
1231
+ /** No specific styles are applied to the body of the table */
1232
+ tbody?: string;
1233
+ /** Styles for table rows including group focus, outline properties, and a set of undefined focus-visible classes */
1234
+ tr?: string;
1235
+ /** Styles for table headers, including padding, text alignment, font properties, and special styles for sortable columns */
1236
+ th?: string;
1237
+ /** Applies to table cells, with properties for padding, alignment, and relative positioning, plus special styles for first child elements, selection indication, and disabled cells */
1238
+ td?: string;
1239
+ };
1240
+
1241
+ declare type TabsClassNames = {
1242
+ /** The base slot of the tabs component */
1243
+ base?: string;
1244
+ /** The tab list container */
1245
+ tabList?: string;
1246
+ /** Individual tab */
1247
+ tab?: string;
1248
+ /** Tab panel */
1249
+ panel?: string;
1250
+ /** Tab cursor (active indicator) */
1251
+ cursor?: string;
1091
1252
  };
1092
1253
 
1254
+ declare type TermsClassNames = {
1255
+ /** The base slot of the terms section, it is the container of the terms section */
1256
+ base?: string;
1257
+ } & SectionClassNames;
1258
+
1093
1259
  export { }