@mobielnl/elements 0.4.0 → 0.6.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/README.md +138 -128
- package/dist/elements.css +1 -1
- package/dist/elements.js +15 -11
- package/dist/elements.umd.cjs +447 -95
- package/dist/{index-CJzOpHdk.js → index-DAyzaGWL.js} +30370 -24251
- package/dist/{index-BD8t3ZMS.js → index-DkHYB7u1.js} +1 -1
- package/dist/index.d.ts +354 -140
- package/package.json +10 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { r as pt, t as Z, i as Re, a as q, n as De, p as mt, b as fn, c as Ve, d as pn, v as mn, e as gn, f as x, g as le, s as vn, h as yn, j as Ie, k as H, l as gt, m as Y, o as bn, q as Tn, u as te, w as ue, x as I, y as ne, z as Vn, A as An, B as vt, C as Ne, D as Sn, E as wn, F as Pn, G as D, H as yt, I as bt, J as Tt, K as je, L as Vt, M as xn, N as Cn, O as Mn, P as ze, Q as Fn, R as On, S as Rn, T as Dn, U as In, V as Nn, W as Kn, X as En, Y as Bn, Z as Ln, _ as kn } from "./index-
|
|
2
|
+
import { r as pt, t as Z, i as Re, a as q, n as De, p as mt, b as fn, c as Ve, d as pn, v as mn, e as gn, f as x, g as le, s as vn, h as yn, j as Ie, k as H, l as gt, m as Y, o as bn, q as Tn, u as te, w as ue, x as I, y as ne, z as Vn, A as An, B as vt, C as Ne, D as Sn, E as wn, F as Pn, G as D, H as yt, I as bt, J as Tt, K as je, L as Vt, M as xn, N as Cn, O as Mn, P as ze, Q as Fn, R as On, S as Rn, T as Dn, U as In, V as Nn, W as Kn, X as En, Y as Bn, Z as Ln, _ as kn } from "./index-DAyzaGWL.js";
|
|
3
3
|
import { Fragment as _n } from "react";
|
|
4
4
|
var ae = typeof globalThis < "u" && globalThis.process ? globalThis.process : { env: { NODE_ENV: "production" } };
|
|
5
5
|
function At(t, e) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
import { ErrorInfo } from 'react';
|
|
1
3
|
import { JSX } from 'react/jsx-runtime';
|
|
4
|
+
import { JSXElementConstructor } from 'react';
|
|
5
|
+
import { ReactElement } from 'react';
|
|
2
6
|
import { ReactNode } from 'react';
|
|
7
|
+
import { ReactPortal } from 'react';
|
|
3
8
|
import { z } from 'zod';
|
|
4
9
|
import * as z_2 from 'zod';
|
|
5
10
|
|
|
@@ -55,6 +60,16 @@ declare type CreditInfoClassNames = {
|
|
|
55
60
|
descriptionLink?: string;
|
|
56
61
|
};
|
|
57
62
|
|
|
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']>;
|
|
71
|
+
};
|
|
72
|
+
|
|
58
73
|
/**
|
|
59
74
|
* ClassNames for styling the `ElementsRoot` component
|
|
60
75
|
*/
|
|
@@ -86,6 +101,57 @@ export declare type ElementsRootProps = {
|
|
|
86
101
|
};
|
|
87
102
|
};
|
|
88
103
|
|
|
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 = {
|
|
127
|
+
/** Main wrapper container for the error component */
|
|
128
|
+
base?: string;
|
|
129
|
+
/** Alert component class styling slots */
|
|
130
|
+
alert?: {
|
|
131
|
+
/** Alert container */
|
|
132
|
+
base?: string;
|
|
133
|
+
/** Alert title text */
|
|
134
|
+
title?: string;
|
|
135
|
+
/** Alert description text */
|
|
136
|
+
description?: string;
|
|
137
|
+
/** Alert main content wrapper */
|
|
138
|
+
mainWrapper?: string;
|
|
139
|
+
/** Alert close button */
|
|
140
|
+
closeButton?: string;
|
|
141
|
+
/** Alert icon wrapper */
|
|
142
|
+
iconWrapper?: string;
|
|
143
|
+
/** Alert icon */
|
|
144
|
+
alertIcon?: string;
|
|
145
|
+
};
|
|
146
|
+
/** Refresh page button */
|
|
147
|
+
button?: string;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export declare type ErrorComponentProps = {
|
|
151
|
+
/** Class slots for styling */
|
|
152
|
+
classNames?: ErrorComponentClassNames;
|
|
153
|
+
};
|
|
154
|
+
|
|
89
155
|
export declare function FilterChip({ filter, filterOption, onRemove, classNames, }: FilterChipProps): JSX.Element | null;
|
|
90
156
|
|
|
91
157
|
declare type FilterChipClassNames = {
|
|
@@ -185,35 +251,6 @@ declare type FilterValue = {
|
|
|
185
251
|
value: string | string[];
|
|
186
252
|
};
|
|
187
253
|
|
|
188
|
-
/**
|
|
189
|
-
* ClassNames for styling the `FooterInfo` component within `PropositionCard`
|
|
190
|
-
*/
|
|
191
|
-
export declare type FooterInfoClassNames = {
|
|
192
|
-
/** Wrapper container for the footer info section */
|
|
193
|
-
base?: string;
|
|
194
|
-
/** tcoPerMonth/average price text
|
|
195
|
-
* @example "gem. 10,- /mnd" */
|
|
196
|
-
averagePrice?: string;
|
|
197
|
-
/** Device discount text
|
|
198
|
-
* @example "100,- toestelkorting" */
|
|
199
|
-
deviceDiscount?: string;
|
|
200
|
-
};
|
|
201
|
-
|
|
202
|
-
export declare type FooterInfoProps = {
|
|
203
|
-
/** Device discount text
|
|
204
|
-
* @example "100,- toestelkorting" */
|
|
205
|
-
deviceDiscount?: string;
|
|
206
|
-
/** Average total cost per month text
|
|
207
|
-
* @example "gem. 10,- /mnd" */
|
|
208
|
-
tcoPerMonth?: string;
|
|
209
|
-
/** Class slots for styling */
|
|
210
|
-
classNames?: FooterInfoClassNames;
|
|
211
|
-
/** Whether the PropositionCard is horizontal */
|
|
212
|
-
horizontal?: boolean;
|
|
213
|
-
/** Whether the footer info is for a proposition with a product */
|
|
214
|
-
hasProduct?: boolean;
|
|
215
|
-
};
|
|
216
|
-
|
|
217
254
|
declare type GetPageByPathQuery = {
|
|
218
255
|
__typename?: 'RootQueryType';
|
|
219
256
|
page?: {
|
|
@@ -261,6 +298,8 @@ declare type ListBoxClassNames = {
|
|
|
261
298
|
selectedIcon?: string;
|
|
262
299
|
};
|
|
263
300
|
|
|
301
|
+
declare type Maybe<T> = T | null;
|
|
302
|
+
|
|
264
303
|
declare type ModalClassNames = {
|
|
265
304
|
/** The backdrop slot, it is displayed behind the modal */
|
|
266
305
|
backdrop?: string;
|
|
@@ -282,6 +321,59 @@ declare type ModalClassNames = {
|
|
|
282
321
|
primaryButton?: string;
|
|
283
322
|
};
|
|
284
323
|
|
|
324
|
+
declare type ModalClassNames_2 = {
|
|
325
|
+
/** The backdrop slot, it is displayed behind the modal */
|
|
326
|
+
backdrop?: string;
|
|
327
|
+
/** The wrapper slot of the modal. It wraps the base and the backdrop slots */
|
|
328
|
+
wrapper?: string;
|
|
329
|
+
/** The main slot of the modal content */
|
|
330
|
+
base?: string;
|
|
331
|
+
/** The header of the modal, it is displayed at the top of the modal */
|
|
332
|
+
header?: string;
|
|
333
|
+
/** The body of the modal, it is displayed in the middle of the modal */
|
|
334
|
+
body?: string;
|
|
335
|
+
/** The footer of the modal, it is displayed at the bottom of the modal */
|
|
336
|
+
footer?: string;
|
|
337
|
+
/** The close button (X) of the modal in top-right corner */
|
|
338
|
+
closeButton?: string;
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
declare type PhoneListContainerClassNames = {
|
|
342
|
+
base?: string;
|
|
343
|
+
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;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
export declare function PhoneSelector({ onChange, classNames, disabled, productSlug: initialProductSlug, selectedDistinctProperties: initialSelectedDistinctProperties, }: PhoneSelectorProps): JSX.Element;
|
|
356
|
+
|
|
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;
|
|
366
|
+
};
|
|
367
|
+
|
|
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[];
|
|
375
|
+
};
|
|
376
|
+
|
|
285
377
|
declare type PopoverContentClassNames = {
|
|
286
378
|
base?: string;
|
|
287
379
|
trigger?: string;
|
|
@@ -304,6 +396,80 @@ declare type PostcodeCheckLoadingClassNames = {
|
|
|
304
396
|
addressText?: string;
|
|
305
397
|
};
|
|
306
398
|
|
|
399
|
+
export declare type PostcodeCheckModalClassNames = {
|
|
400
|
+
/** Modal dialog class styling slots - see type `ModalClassNames` */
|
|
401
|
+
modal?: ModalClassNames_2;
|
|
402
|
+
/** Header section containing icon and title */
|
|
403
|
+
header?: {
|
|
404
|
+
/** Container wrapping the header content */
|
|
405
|
+
container?: string;
|
|
406
|
+
/** Icon wrapper with background */
|
|
407
|
+
iconWrapper?: string;
|
|
408
|
+
/** Home location icon */
|
|
409
|
+
icon?: string;
|
|
410
|
+
/** Main title text */
|
|
411
|
+
title?: string;
|
|
412
|
+
/** Description text below title */
|
|
413
|
+
description?: string;
|
|
414
|
+
};
|
|
415
|
+
/** Form section for address input */
|
|
416
|
+
form?: {
|
|
417
|
+
/** Form element container */
|
|
418
|
+
container?: string;
|
|
419
|
+
/** Address section label */
|
|
420
|
+
addressLabel?: string;
|
|
421
|
+
/** Container for postcode, number, and numberAddon inputs */
|
|
422
|
+
inputsContainer?: string;
|
|
423
|
+
/** Input field styling slots */
|
|
424
|
+
input?: {
|
|
425
|
+
/** Input wrapper styling */
|
|
426
|
+
inputWrapper?: string;
|
|
427
|
+
/** Input element styling */
|
|
428
|
+
input?: string;
|
|
429
|
+
/** Input label styling */
|
|
430
|
+
label?: string;
|
|
431
|
+
};
|
|
432
|
+
/** Error message container */
|
|
433
|
+
error?: {
|
|
434
|
+
/** Error container wrapper */
|
|
435
|
+
container?: string;
|
|
436
|
+
/** Error text styling */
|
|
437
|
+
text?: string;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
/** Provider selection section */
|
|
441
|
+
provider?: {
|
|
442
|
+
/** Provider section label */
|
|
443
|
+
label?: string;
|
|
444
|
+
/** Select component styling */
|
|
445
|
+
select?: {
|
|
446
|
+
/** Select label styling */
|
|
447
|
+
label?: string;
|
|
448
|
+
/** Select trigger button styling */
|
|
449
|
+
trigger?: string;
|
|
450
|
+
/** Provider item container in select */
|
|
451
|
+
itemContainer?: string;
|
|
452
|
+
/** Provider icon styling */
|
|
453
|
+
icon?: string;
|
|
454
|
+
};
|
|
455
|
+
};
|
|
456
|
+
/** Submit button styling */
|
|
457
|
+
submitButton?: string;
|
|
458
|
+
};
|
|
459
|
+
|
|
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;
|
|
471
|
+
};
|
|
472
|
+
|
|
307
473
|
/**
|
|
308
474
|
* ClassNames for styling the `PricingSection` component within `PropositionCard`
|
|
309
475
|
*/
|
|
@@ -324,25 +490,18 @@ export declare type PricingSectionClassNames = {
|
|
|
324
490
|
/** Promotion text for monthly fee
|
|
325
491
|
* @example "12 mnd van 10,- voor:" */
|
|
326
492
|
promotionText?: string;
|
|
493
|
+
/** Average price container (TCO per month) */
|
|
494
|
+
averagePrice?: string;
|
|
327
495
|
};
|
|
328
496
|
|
|
329
|
-
export declare type PricingSectionProps = {
|
|
330
|
-
/** Promotion text for monthly fee
|
|
331
|
-
* @example "12 mnd van 10,- voor:" */
|
|
332
|
-
monthlyFeePromotionText?: string;
|
|
333
|
-
/** Monthly fee text
|
|
334
|
-
* @example "10,-" */
|
|
335
|
-
monthlyFee: string;
|
|
336
|
-
/** Product price text (one-time payment - only visible for phone propositions)
|
|
337
|
-
* @example "+ 100,- eenmalig" */
|
|
338
|
-
productPrice?: string;
|
|
497
|
+
export declare type PricingSectionProps = Pick<PropositionCardProps, 'onInfoClick' | 'productPrice' | 'monthlyFee' | 'tcoPerMonth' | 'monthlyFeePromotionText'> & {
|
|
339
498
|
/** Class slots for styling */
|
|
340
499
|
classNames?: PricingSectionClassNames;
|
|
341
500
|
};
|
|
342
501
|
|
|
343
|
-
declare type ProductCategory = 'sim-only-proposition' | '
|
|
502
|
+
declare type ProductCategory = 'sim-only-proposition' | 'fixed-proposition' | 'smartphone-proposition' | 'smartphone-proposition-extended';
|
|
344
503
|
|
|
345
|
-
export declare function ProductResults({ productCategory, initialSelectedFilters, limit,
|
|
504
|
+
export declare function ProductResults({ productCategory, initialSelectedFilters, limit, classNames, initialProfile, onProfileChange, onError, }: ProductResultsProps): JSX.Element;
|
|
346
505
|
|
|
347
506
|
/**
|
|
348
507
|
* ClassNames for styling different parts of the `ProductResults` component
|
|
@@ -372,23 +531,25 @@ export declare type ProductResultsClassNames = {
|
|
|
372
531
|
propositionCard?: PropositionCardClassNames;
|
|
373
532
|
/** PostcodeCheck loading card class styling slots (only for fixed propositions) - see type `PostcodeCheckLoadingClassNames` */
|
|
374
533
|
postcodeCheckLoading?: PostcodeCheckLoadingClassNames;
|
|
534
|
+
/** Postcode check modal class styling slots - see type `PostcodeCheckModalClassNames` */
|
|
535
|
+
postcodeCheckModal?: PostcodeCheckModalClassNames;
|
|
375
536
|
};
|
|
376
537
|
|
|
377
538
|
export declare type ProductResultsProps = {
|
|
378
539
|
/** Product type of the results */
|
|
379
|
-
productCategory: ProductCategory
|
|
540
|
+
productCategory: Exclude<ProductCategory, 'smartphone-proposition-extended'>;
|
|
380
541
|
/** Initial selected filters */
|
|
381
542
|
initialSelectedFilters?: FilterValue[];
|
|
382
543
|
/** Limit the number of propositions to display */
|
|
383
544
|
limit?: number;
|
|
384
|
-
/** Layout of the proposition cards */
|
|
385
|
-
propositionCardLayout?: 'vertical' | 'horizontal';
|
|
386
545
|
/** Class slots for styling */
|
|
387
546
|
classNames?: ProductResultsClassNames;
|
|
388
|
-
/**
|
|
389
|
-
|
|
547
|
+
/** Initial user profile */
|
|
548
|
+
initialProfile?: Partial<Profile>;
|
|
390
549
|
/** Callback function to handle profile changes */
|
|
391
550
|
onProfileChange?: (profile: Partial<Profile>) => void;
|
|
551
|
+
/** Callback function called when an error occurs */
|
|
552
|
+
onError?: (error: Error) => void;
|
|
392
553
|
};
|
|
393
554
|
|
|
394
555
|
/**
|
|
@@ -401,59 +562,18 @@ export declare type ProductSectionClassNames = {
|
|
|
401
562
|
imageWrapper?: string;
|
|
402
563
|
/** Product image element */
|
|
403
564
|
image?: string;
|
|
404
|
-
/**
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
subtitle?: string;
|
|
410
|
-
/** Stock status badge
|
|
411
|
-
* @example "Op voorraad" */
|
|
412
|
-
stockStatus?: string;
|
|
413
|
-
/** Average review score text
|
|
414
|
-
* @example "9.5" */
|
|
415
|
-
reviewScore?: string;
|
|
416
|
-
/** Amount of reviews text
|
|
417
|
-
* @example "(100)" */
|
|
418
|
-
reviewCount?: string;
|
|
419
|
-
/** Product specifications list container
|
|
420
|
-
* @example "6.3 inch • 256GB opslag • 5 kleuren" */
|
|
421
|
-
specifications?: string;
|
|
422
|
-
};
|
|
423
|
-
|
|
424
|
-
export declare type ProductSectionProps = {
|
|
425
|
-
/** Product title text
|
|
426
|
-
* @example "iPhone 17" */
|
|
427
|
-
title: string;
|
|
428
|
-
/** Product subtitle/brand text
|
|
429
|
-
* @example "Apple" */
|
|
430
|
-
subtitle: string;
|
|
431
|
-
/** Product image URL */
|
|
432
|
-
imageUrl: string;
|
|
433
|
-
/** Product image alt text */
|
|
434
|
-
imageAlt: string;
|
|
435
|
-
/** Product specifications */
|
|
436
|
-
specifications?: {
|
|
437
|
-
title: string;
|
|
438
|
-
}[];
|
|
439
|
-
/** Stock status
|
|
440
|
-
* @example "Op voorraad" */
|
|
441
|
-
stockStatus?: string;
|
|
442
|
-
/** Amount of reviews
|
|
443
|
-
* @example 100 */
|
|
444
|
-
reviewCount?: number;
|
|
445
|
-
/** Average review score
|
|
446
|
-
* @example 9.5 */
|
|
447
|
-
reviewScore?: number;
|
|
448
|
-
/** Class slots for styling */
|
|
449
|
-
classNames?: ProductSectionClassNames;
|
|
450
|
-
horizontal?: boolean;
|
|
565
|
+
/** Delivery Text Icon " */
|
|
566
|
+
deliveryTextIcon?: string;
|
|
567
|
+
/** Delivery Text
|
|
568
|
+
* @example "Direct leverbaar" */
|
|
569
|
+
deliveryText?: string;
|
|
451
570
|
};
|
|
452
571
|
|
|
453
572
|
declare type Profile = z.infer<typeof profileSchema>;
|
|
454
573
|
|
|
455
574
|
declare const profileSchema: z_2.ZodObject<{
|
|
456
575
|
keepCurrentMsisdn: z_2.ZodOptional<z_2.ZodBoolean>;
|
|
576
|
+
currentMsisdn: z_2.ZodOptional<z_2.ZodString>;
|
|
457
577
|
currentSubscriptionType: z_2.ZodOptional<z_2.ZodEnum<{
|
|
458
578
|
subscription: "subscription";
|
|
459
579
|
prepaid: "prepaid";
|
|
@@ -480,20 +600,21 @@ declare const profileSchema: z_2.ZodObject<{
|
|
|
480
600
|
export declare type PromotionsListClassNames = {
|
|
481
601
|
/** Wrapper container for the promotions list */
|
|
482
602
|
base?: string;
|
|
483
|
-
/** Individual
|
|
603
|
+
/** Individual promotion item
|
|
484
604
|
* @example "€4,50 korting per maand" */
|
|
485
605
|
item?: string;
|
|
486
|
-
/** Checkmark icon for each
|
|
487
|
-
|
|
488
|
-
/**
|
|
489
|
-
|
|
606
|
+
/** Checkmark icon for each promotion item */
|
|
607
|
+
promotionIcon?: string;
|
|
608
|
+
/** Urgent text chip */
|
|
609
|
+
urgentChip?: string;
|
|
490
610
|
};
|
|
491
611
|
|
|
492
612
|
export declare type PromotionsListProps = {
|
|
493
|
-
/**
|
|
494
|
-
|
|
495
|
-
/**
|
|
496
|
-
|
|
613
|
+
/** Promotions to display */
|
|
614
|
+
promotions: string[];
|
|
615
|
+
/** Urgent text to display as a chip above promotions
|
|
616
|
+
* @example "Actie nog 6 dagen" */
|
|
617
|
+
urgentText?: string;
|
|
497
618
|
/** Class slots for styling */
|
|
498
619
|
classNames?: PromotionsListClassNames;
|
|
499
620
|
};
|
|
@@ -510,15 +631,15 @@ export declare type PropositionCardClassNames = {
|
|
|
510
631
|
header?: string;
|
|
511
632
|
/** Card body wrapper around `specifications`, `urgentChip` and `promotionsList` */
|
|
512
633
|
body?: string;
|
|
513
|
-
/** Card footer wrapper around `
|
|
634
|
+
/** Card footer wrapper around `pricingSection` and `button` */
|
|
514
635
|
footer?: string;
|
|
515
|
-
/** Image wrapper for
|
|
636
|
+
/** Image wrapper for proposition provider image (only on Horizontal card)
|
|
516
637
|
*
|
|
517
|
-
* It handles alignment, placement, and general appearance for the
|
|
638
|
+
* It handles alignment, placement, and general appearance for the proposition provider image */
|
|
518
639
|
imageWrapper?: string;
|
|
519
|
-
/**
|
|
640
|
+
/** Proposition provider image (only on Horizontal card) */
|
|
520
641
|
image?: string;
|
|
521
|
-
/** Product section (only visible for
|
|
642
|
+
/** Product section (only visible for smartphone propositions) class styling slots - see type `ProductSectionClassNames` */
|
|
522
643
|
productSection?: ProductSectionClassNames;
|
|
523
644
|
/** Proposition header class styling slots - see type `PropositionHeaderClassNames` */
|
|
524
645
|
propositionHeader?: PropositionHeaderClassNames;
|
|
@@ -526,8 +647,6 @@ export declare type PropositionCardClassNames = {
|
|
|
526
647
|
pricingSection?: PricingSectionClassNames;
|
|
527
648
|
/** Promotions list class styling slots - see type `PromotionsListClassNames` */
|
|
528
649
|
promotionsList?: PromotionsListClassNames;
|
|
529
|
-
/** Footer info (tcoPerMonth/average price and device discount) class styling slots - see type `FooterInfoClassNames` */
|
|
530
|
-
footerInfo?: FooterInfoClassNames;
|
|
531
650
|
/** Specifications grid (only visible for sim only and fixed propositions)
|
|
532
651
|
* @example
|
|
533
652
|
* - "2 jaar"
|
|
@@ -538,42 +657,34 @@ export declare type PropositionCardClassNames = {
|
|
|
538
657
|
/** Urgent text chip (only visible when promotion is urgent)
|
|
539
658
|
* @example "Actie nog 6 dagen" */
|
|
540
659
|
urgentChip?: string;
|
|
541
|
-
/** Delivery promise text
|
|
542
|
-
* @example "Voor 23:59 besteld, morgen in huis" */
|
|
543
|
-
deliveryText?: string;
|
|
544
660
|
/** Call To Action button
|
|
545
661
|
* @example "Bekijk" */
|
|
546
662
|
button?: string;
|
|
663
|
+
/** Card wrapper (container for the label and card) */
|
|
664
|
+
cardWrapper?: string;
|
|
665
|
+
/** Label text styling */
|
|
666
|
+
label?: string;
|
|
547
667
|
};
|
|
548
668
|
|
|
549
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;
|
|
550
676
|
/** Whether the proposition is disabled */
|
|
551
677
|
disabled?: boolean;
|
|
552
|
-
/**
|
|
553
|
-
|
|
554
|
-
/** Product title
|
|
555
|
-
* @example "iPhone 17" */
|
|
678
|
+
/** Product title - should include brand + phone name
|
|
679
|
+
* @example "Apple iPhone 17" */
|
|
556
680
|
productTitle?: string;
|
|
557
|
-
/** Product subtitle (brand)
|
|
558
|
-
* @example "Apple" */
|
|
559
|
-
productSubtitle?: string;
|
|
560
681
|
/** Product image URL */
|
|
561
682
|
productImageUrl?: string;
|
|
562
683
|
/** Product image alt text */
|
|
563
684
|
productImageAlt?: string;
|
|
564
|
-
/** Product specifications */
|
|
565
|
-
productSpecifications?: {
|
|
566
|
-
title: string;
|
|
567
|
-
}[];
|
|
568
685
|
/** Product stock status
|
|
569
686
|
* @example "in_stock" */
|
|
570
687
|
productStockStatus?: string;
|
|
571
|
-
/** Product review count
|
|
572
|
-
* @example 100 */
|
|
573
|
-
productReviewCount?: number;
|
|
574
|
-
/** Product review score
|
|
575
|
-
* @example 9.5 */
|
|
576
|
-
productReviewScore?: number;
|
|
577
688
|
/** Product price
|
|
578
689
|
* @example "100,-" */
|
|
579
690
|
productPrice?: string;
|
|
@@ -610,12 +721,12 @@ export declare type PropositionCardProps = {
|
|
|
610
721
|
/** Device discount
|
|
611
722
|
* @example "100,-" */
|
|
612
723
|
deviceDiscount?: string;
|
|
613
|
-
/** Delivery text
|
|
614
|
-
* @example "Voor 23:59 besteld, morgen in huis" */
|
|
615
|
-
deliveryText?: string | null;
|
|
616
724
|
/** Urgent text for urgent special promotion
|
|
617
725
|
* @example "Actie nog 6 dagen" */
|
|
618
726
|
urgentText?: string;
|
|
727
|
+
/** Label text to display above the card
|
|
728
|
+
* @example "Meest gekozen" */
|
|
729
|
+
label?: string;
|
|
619
730
|
/** Class slots for styling */
|
|
620
731
|
classNames?: PropositionCardClassNames;
|
|
621
732
|
horizontal?: boolean;
|
|
@@ -627,9 +738,9 @@ export declare type PropositionCardProps = {
|
|
|
627
738
|
export declare type PropositionHeaderClassNames = {
|
|
628
739
|
/** Wrapper container for the proposition header */
|
|
629
740
|
base?: string;
|
|
630
|
-
/** Image wrapper, it handles alignment, placement, and general appearance for the proposition provider image */
|
|
741
|
+
/** Image wrapper, it handles alignment, placement, and general appearance for the proposition provider image (only on Vertical card) */
|
|
631
742
|
imageWrapper?: string;
|
|
632
|
-
/** Proposition provider image element*/
|
|
743
|
+
/** Proposition provider image element (only on Vertical card) */
|
|
633
744
|
image?: string;
|
|
634
745
|
/** Proposition title text
|
|
635
746
|
* @example "30 GB"
|
|
@@ -639,23 +750,35 @@ export declare type PropositionHeaderClassNames = {
|
|
|
639
750
|
* @example "Onbp min / sms"
|
|
640
751
|
* @example "Glasvezel" */
|
|
641
752
|
subtitle?: string;
|
|
753
|
+
/** Specifications container */
|
|
754
|
+
specifications?: string;
|
|
642
755
|
};
|
|
643
756
|
|
|
644
757
|
export declare type PropositionHeaderProps = {
|
|
758
|
+
/** Product title (for smartphone propositions) - should include brand + phone name
|
|
759
|
+
* @example "Apple iPhone 17" */
|
|
760
|
+
productTitle?: string;
|
|
645
761
|
/** Proposition title text
|
|
646
762
|
* @example "30 GB"
|
|
647
763
|
* @example "100 Mb/s" */
|
|
648
|
-
|
|
764
|
+
propositionTitle: string;
|
|
649
765
|
/** Proposition subtitle text
|
|
650
766
|
* @example "Onbp min / sms"
|
|
651
767
|
* @example "Glasvezel" */
|
|
652
|
-
|
|
653
|
-
/** Proposition image URL */
|
|
654
|
-
imageUrl
|
|
655
|
-
/** Proposition image alt text */
|
|
656
|
-
imageAlt
|
|
768
|
+
propositionSubtitle: string;
|
|
769
|
+
/** Proposition provider image URL */
|
|
770
|
+
imageUrl?: string;
|
|
771
|
+
/** Proposition provider image alt text */
|
|
772
|
+
imageAlt?: string;
|
|
657
773
|
/** Whether the proposition has a product/phone */
|
|
658
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;
|
|
659
782
|
/** Class slots for styling */
|
|
660
783
|
classNames?: PropositionHeaderClassNames;
|
|
661
784
|
horizontal?: boolean;
|
|
@@ -741,6 +864,38 @@ declare type ResultsNotFoundClassNames = {
|
|
|
741
864
|
};
|
|
742
865
|
};
|
|
743
866
|
|
|
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
|
+
};
|
|
897
|
+
};
|
|
898
|
+
|
|
744
899
|
export declare function SelectFilter({ id, options, values, onChange, classNames, }: SelectFilterProps): JSX.Element;
|
|
745
900
|
|
|
746
901
|
/**
|
|
@@ -788,6 +943,58 @@ export declare type SelectFilterProps = {
|
|
|
788
943
|
classNames?: SelectFilterClassNames;
|
|
789
944
|
};
|
|
790
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;
|
|
996
|
+
};
|
|
997
|
+
|
|
791
998
|
/**
|
|
792
999
|
* ClassNames for styling different parts of the `RangeFilter`, `MinFilter` and `MaxFilter` component
|
|
793
1000
|
*/
|
|
@@ -876,4 +1083,11 @@ declare type SortSelectClassNames = {
|
|
|
876
1083
|
endWrapper?: string;
|
|
877
1084
|
};
|
|
878
1085
|
|
|
1086
|
+
declare type VersionDistinctProperty = {
|
|
1087
|
+
__typename?: 'VersionDistinctProperty';
|
|
1088
|
+
key: Scalars['String']['output'];
|
|
1089
|
+
label: Scalars['String']['output'];
|
|
1090
|
+
option: DistinctPropertyOption;
|
|
1091
|
+
};
|
|
1092
|
+
|
|
879
1093
|
export { }
|