@nok-integration/storefront-react 0.17.1 → 0.18.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 +2353 -255
- package/dist/index.mjs +2038 -1060
- package/dist/standalone/storefront.mjs +2038 -1060
- package/dist/standalone/styles.css +1973 -603
- package/dist/styles.css +1973 -603
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -114,6 +114,33 @@ declare const CartItem: z.ZodObject<{
|
|
|
114
114
|
amount: number;
|
|
115
115
|
currency: string;
|
|
116
116
|
}>;
|
|
117
|
+
/**
|
|
118
|
+
* The undiscounted per-unit price, from the catalogue. Display only.
|
|
119
|
+
*
|
|
120
|
+
* Drawn as a struck-through figure under what the line costs now, with a `-NN%` badge
|
|
121
|
+
* over the thumbnail — Figma's cart draws every discounted line that way and, until
|
|
122
|
+
* this field existed, a consumer had no way to. The saving was simply invisible in the
|
|
123
|
+
* basket and appeared for the first time at checkout.
|
|
124
|
+
*
|
|
125
|
+
* Absent means the line is at full price, which is the ordinary case. Present only when
|
|
126
|
+
* it is strictly greater than `unit_price`: a compare-at equal to or below the live
|
|
127
|
+
* price is not a sale, and drawing one would be an invented discount.
|
|
128
|
+
*
|
|
129
|
+
* **The catalogue's figure, not an order's.** `OrderItem.compare_at_unit_price` is the
|
|
130
|
+
* one DAZN sent at intake and is frozen there, because a receipt whose struck price
|
|
131
|
+
* moves next week is not a receipt. A cart is live, so this one moves with
|
|
132
|
+
* merchandising — that is correct here and wrong there.
|
|
133
|
+
*/
|
|
134
|
+
compare_at_unit_price: z.ZodOptional<z.ZodObject<{
|
|
135
|
+
amount: z.ZodNumber;
|
|
136
|
+
currency: z.ZodString;
|
|
137
|
+
}, "strict", z.ZodTypeAny, {
|
|
138
|
+
amount: number;
|
|
139
|
+
currency: string;
|
|
140
|
+
}, {
|
|
141
|
+
amount: number;
|
|
142
|
+
currency: string;
|
|
143
|
+
}>>;
|
|
117
144
|
/**
|
|
118
145
|
* Product title for this line, e.g. "Signature Hoodie".
|
|
119
146
|
*
|
|
@@ -168,6 +195,10 @@ declare const CartItem: z.ZodObject<{
|
|
|
168
195
|
amount: number;
|
|
169
196
|
currency: string;
|
|
170
197
|
};
|
|
198
|
+
compare_at_unit_price?: {
|
|
199
|
+
amount: number;
|
|
200
|
+
currency: string;
|
|
201
|
+
} | undefined;
|
|
171
202
|
title?: string | undefined;
|
|
172
203
|
image?: string | undefined;
|
|
173
204
|
attributes?: Record<string, string> | undefined;
|
|
@@ -183,6 +214,10 @@ declare const CartItem: z.ZodObject<{
|
|
|
183
214
|
amount: number;
|
|
184
215
|
currency: string;
|
|
185
216
|
};
|
|
217
|
+
compare_at_unit_price?: {
|
|
218
|
+
amount: number;
|
|
219
|
+
currency: string;
|
|
220
|
+
} | undefined;
|
|
186
221
|
title?: string | undefined;
|
|
187
222
|
image?: string | undefined;
|
|
188
223
|
attributes?: Record<string, string> | undefined;
|
|
@@ -222,6 +257,10 @@ export declare interface CartLineItemProps {
|
|
|
222
257
|
* above, for a host with its own catalogue data.
|
|
223
258
|
*/
|
|
224
259
|
compareAt?: Money;
|
|
260
|
+
/**
|
|
261
|
+
* Overrides the percentage on the badge. Normally omitted: given a `compareAt`, the
|
|
262
|
+
* badge is derived from it and the two figures cannot then disagree.
|
|
263
|
+
*/
|
|
225
264
|
discountPct?: number;
|
|
226
265
|
maxQty?: number;
|
|
227
266
|
onQtyChange: (qty: number) => void;
|
|
@@ -297,10 +336,7 @@ export declare interface CartViewProps {
|
|
|
297
336
|
* Label for the primary CTA. Default `Proceed to checkout`.
|
|
298
337
|
*
|
|
299
338
|
* DAZN's checkout is the next step and DAZN name it; a host whose own wording is
|
|
300
|
-
* "Continue" or "Go to checkout" should not have to accept ours.
|
|
301
|
-
* is deliberately NOT configurable — it takes the fan back to a checkout that already
|
|
302
|
-
* exists, which is a different action from starting one, and a host renaming it could
|
|
303
|
-
* imply a second checkout is being created.
|
|
339
|
+
* "Continue" or "Go to checkout" should not have to accept ours.
|
|
304
340
|
*/
|
|
305
341
|
checkoutLabel?: string;
|
|
306
342
|
}
|
|
@@ -444,18 +480,48 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
444
480
|
}>>;
|
|
445
481
|
size_guide: z.ZodOptional<z.ZodObject<{
|
|
446
482
|
title: z.ZodString;
|
|
483
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
447
484
|
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
448
485
|
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
486
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
487
|
+
note: z.ZodOptional<z.ZodString>;
|
|
488
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
489
|
+
label: z.ZodString;
|
|
490
|
+
description: z.ZodString;
|
|
491
|
+
}, "strip", z.ZodTypeAny, {
|
|
492
|
+
label: string;
|
|
493
|
+
description: string;
|
|
494
|
+
}, {
|
|
495
|
+
label: string;
|
|
496
|
+
description: string;
|
|
497
|
+
}>, "many">>;
|
|
498
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
449
499
|
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
450
500
|
}, "strip", z.ZodTypeAny, {
|
|
451
501
|
title: string;
|
|
502
|
+
subtitle?: string | undefined;
|
|
452
503
|
columns?: string[] | undefined;
|
|
453
504
|
rows?: string[][] | undefined;
|
|
505
|
+
unit?: "cm" | "in" | undefined;
|
|
506
|
+
note?: string | undefined;
|
|
507
|
+
measurements?: {
|
|
508
|
+
label: string;
|
|
509
|
+
description: string;
|
|
510
|
+
}[] | undefined;
|
|
511
|
+
fabric?: string | undefined;
|
|
454
512
|
notes?: string[] | undefined;
|
|
455
513
|
}, {
|
|
456
514
|
title: string;
|
|
515
|
+
subtitle?: string | undefined;
|
|
457
516
|
columns?: string[] | undefined;
|
|
458
517
|
rows?: string[][] | undefined;
|
|
518
|
+
unit?: "cm" | "in" | undefined;
|
|
519
|
+
note?: string | undefined;
|
|
520
|
+
measurements?: {
|
|
521
|
+
label: string;
|
|
522
|
+
description: string;
|
|
523
|
+
}[] | undefined;
|
|
524
|
+
fabric?: string | undefined;
|
|
459
525
|
notes?: string[] | undefined;
|
|
460
526
|
}>>;
|
|
461
527
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -474,11 +540,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
474
540
|
image?: string | undefined;
|
|
475
541
|
available?: number | undefined;
|
|
476
542
|
}[];
|
|
543
|
+
description?: string | undefined;
|
|
477
544
|
compare_at?: {
|
|
478
545
|
amount: number;
|
|
479
546
|
currency: string;
|
|
480
547
|
} | undefined;
|
|
481
|
-
description?: string | undefined;
|
|
482
548
|
badges?: string[] | undefined;
|
|
483
549
|
promo?: {
|
|
484
550
|
message: string;
|
|
@@ -486,8 +552,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
486
552
|
} | undefined;
|
|
487
553
|
size_guide?: {
|
|
488
554
|
title: string;
|
|
555
|
+
subtitle?: string | undefined;
|
|
489
556
|
columns?: string[] | undefined;
|
|
490
557
|
rows?: string[][] | undefined;
|
|
558
|
+
unit?: "cm" | "in" | undefined;
|
|
559
|
+
note?: string | undefined;
|
|
560
|
+
measurements?: {
|
|
561
|
+
label: string;
|
|
562
|
+
description: string;
|
|
563
|
+
}[] | undefined;
|
|
564
|
+
fabric?: string | undefined;
|
|
491
565
|
notes?: string[] | undefined;
|
|
492
566
|
} | undefined;
|
|
493
567
|
}, {
|
|
@@ -506,11 +580,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
506
580
|
image?: string | undefined;
|
|
507
581
|
available?: number | undefined;
|
|
508
582
|
}[];
|
|
583
|
+
description?: string | undefined;
|
|
509
584
|
compare_at?: {
|
|
510
585
|
amount: number;
|
|
511
586
|
currency: string;
|
|
512
587
|
} | undefined;
|
|
513
|
-
description?: string | undefined;
|
|
514
588
|
badges?: string[] | undefined;
|
|
515
589
|
promo?: {
|
|
516
590
|
message: string;
|
|
@@ -518,8 +592,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
518
592
|
} | undefined;
|
|
519
593
|
size_guide?: {
|
|
520
594
|
title: string;
|
|
595
|
+
subtitle?: string | undefined;
|
|
521
596
|
columns?: string[] | undefined;
|
|
522
597
|
rows?: string[][] | undefined;
|
|
598
|
+
unit?: "cm" | "in" | undefined;
|
|
599
|
+
note?: string | undefined;
|
|
600
|
+
measurements?: {
|
|
601
|
+
label: string;
|
|
602
|
+
description: string;
|
|
603
|
+
}[] | undefined;
|
|
604
|
+
fabric?: string | undefined;
|
|
523
605
|
notes?: string[] | undefined;
|
|
524
606
|
} | undefined;
|
|
525
607
|
}>, "many">;
|
|
@@ -542,11 +624,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
542
624
|
image?: string | undefined;
|
|
543
625
|
available?: number | undefined;
|
|
544
626
|
}[];
|
|
627
|
+
description?: string | undefined;
|
|
545
628
|
compare_at?: {
|
|
546
629
|
amount: number;
|
|
547
630
|
currency: string;
|
|
548
631
|
} | undefined;
|
|
549
|
-
description?: string | undefined;
|
|
550
632
|
badges?: string[] | undefined;
|
|
551
633
|
promo?: {
|
|
552
634
|
message: string;
|
|
@@ -554,8 +636,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
554
636
|
} | undefined;
|
|
555
637
|
size_guide?: {
|
|
556
638
|
title: string;
|
|
639
|
+
subtitle?: string | undefined;
|
|
557
640
|
columns?: string[] | undefined;
|
|
558
641
|
rows?: string[][] | undefined;
|
|
642
|
+
unit?: "cm" | "in" | undefined;
|
|
643
|
+
note?: string | undefined;
|
|
644
|
+
measurements?: {
|
|
645
|
+
label: string;
|
|
646
|
+
description: string;
|
|
647
|
+
}[] | undefined;
|
|
648
|
+
fabric?: string | undefined;
|
|
559
649
|
notes?: string[] | undefined;
|
|
560
650
|
} | undefined;
|
|
561
651
|
}[];
|
|
@@ -578,11 +668,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
578
668
|
image?: string | undefined;
|
|
579
669
|
available?: number | undefined;
|
|
580
670
|
}[];
|
|
671
|
+
description?: string | undefined;
|
|
581
672
|
compare_at?: {
|
|
582
673
|
amount: number;
|
|
583
674
|
currency: string;
|
|
584
675
|
} | undefined;
|
|
585
|
-
description?: string | undefined;
|
|
586
676
|
badges?: string[] | undefined;
|
|
587
677
|
promo?: {
|
|
588
678
|
message: string;
|
|
@@ -590,8 +680,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
590
680
|
} | undefined;
|
|
591
681
|
size_guide?: {
|
|
592
682
|
title: string;
|
|
683
|
+
subtitle?: string | undefined;
|
|
593
684
|
columns?: string[] | undefined;
|
|
594
685
|
rows?: string[][] | undefined;
|
|
686
|
+
unit?: "cm" | "in" | undefined;
|
|
687
|
+
note?: string | undefined;
|
|
688
|
+
measurements?: {
|
|
689
|
+
label: string;
|
|
690
|
+
description: string;
|
|
691
|
+
}[] | undefined;
|
|
692
|
+
fabric?: string | undefined;
|
|
595
693
|
notes?: string[] | undefined;
|
|
596
694
|
} | undefined;
|
|
597
695
|
}[];
|
|
@@ -668,18 +766,48 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
668
766
|
}>>;
|
|
669
767
|
size_guide: z.ZodOptional<z.ZodObject<{
|
|
670
768
|
title: z.ZodString;
|
|
769
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
671
770
|
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
672
771
|
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
772
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
773
|
+
note: z.ZodOptional<z.ZodString>;
|
|
774
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
775
|
+
label: z.ZodString;
|
|
776
|
+
description: z.ZodString;
|
|
777
|
+
}, "strip", z.ZodTypeAny, {
|
|
778
|
+
label: string;
|
|
779
|
+
description: string;
|
|
780
|
+
}, {
|
|
781
|
+
label: string;
|
|
782
|
+
description: string;
|
|
783
|
+
}>, "many">>;
|
|
784
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
673
785
|
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
674
786
|
}, "strip", z.ZodTypeAny, {
|
|
675
787
|
title: string;
|
|
788
|
+
subtitle?: string | undefined;
|
|
676
789
|
columns?: string[] | undefined;
|
|
677
790
|
rows?: string[][] | undefined;
|
|
791
|
+
unit?: "cm" | "in" | undefined;
|
|
792
|
+
note?: string | undefined;
|
|
793
|
+
measurements?: {
|
|
794
|
+
label: string;
|
|
795
|
+
description: string;
|
|
796
|
+
}[] | undefined;
|
|
797
|
+
fabric?: string | undefined;
|
|
678
798
|
notes?: string[] | undefined;
|
|
679
799
|
}, {
|
|
680
800
|
title: string;
|
|
801
|
+
subtitle?: string | undefined;
|
|
681
802
|
columns?: string[] | undefined;
|
|
682
803
|
rows?: string[][] | undefined;
|
|
804
|
+
unit?: "cm" | "in" | undefined;
|
|
805
|
+
note?: string | undefined;
|
|
806
|
+
measurements?: {
|
|
807
|
+
label: string;
|
|
808
|
+
description: string;
|
|
809
|
+
}[] | undefined;
|
|
810
|
+
fabric?: string | undefined;
|
|
683
811
|
notes?: string[] | undefined;
|
|
684
812
|
}>>;
|
|
685
813
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -698,11 +826,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
698
826
|
image?: string | undefined;
|
|
699
827
|
available?: number | undefined;
|
|
700
828
|
}[];
|
|
829
|
+
description?: string | undefined;
|
|
701
830
|
compare_at?: {
|
|
702
831
|
amount: number;
|
|
703
832
|
currency: string;
|
|
704
833
|
} | undefined;
|
|
705
|
-
description?: string | undefined;
|
|
706
834
|
badges?: string[] | undefined;
|
|
707
835
|
promo?: {
|
|
708
836
|
message: string;
|
|
@@ -710,8 +838,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
710
838
|
} | undefined;
|
|
711
839
|
size_guide?: {
|
|
712
840
|
title: string;
|
|
841
|
+
subtitle?: string | undefined;
|
|
713
842
|
columns?: string[] | undefined;
|
|
714
843
|
rows?: string[][] | undefined;
|
|
844
|
+
unit?: "cm" | "in" | undefined;
|
|
845
|
+
note?: string | undefined;
|
|
846
|
+
measurements?: {
|
|
847
|
+
label: string;
|
|
848
|
+
description: string;
|
|
849
|
+
}[] | undefined;
|
|
850
|
+
fabric?: string | undefined;
|
|
715
851
|
notes?: string[] | undefined;
|
|
716
852
|
} | undefined;
|
|
717
853
|
}, {
|
|
@@ -730,11 +866,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
730
866
|
image?: string | undefined;
|
|
731
867
|
available?: number | undefined;
|
|
732
868
|
}[];
|
|
869
|
+
description?: string | undefined;
|
|
733
870
|
compare_at?: {
|
|
734
871
|
amount: number;
|
|
735
872
|
currency: string;
|
|
736
873
|
} | undefined;
|
|
737
|
-
description?: string | undefined;
|
|
738
874
|
badges?: string[] | undefined;
|
|
739
875
|
promo?: {
|
|
740
876
|
message: string;
|
|
@@ -742,8 +878,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
742
878
|
} | undefined;
|
|
743
879
|
size_guide?: {
|
|
744
880
|
title: string;
|
|
881
|
+
subtitle?: string | undefined;
|
|
745
882
|
columns?: string[] | undefined;
|
|
746
883
|
rows?: string[][] | undefined;
|
|
884
|
+
unit?: "cm" | "in" | undefined;
|
|
885
|
+
note?: string | undefined;
|
|
886
|
+
measurements?: {
|
|
887
|
+
label: string;
|
|
888
|
+
description: string;
|
|
889
|
+
}[] | undefined;
|
|
890
|
+
fabric?: string | undefined;
|
|
747
891
|
notes?: string[] | undefined;
|
|
748
892
|
} | undefined;
|
|
749
893
|
}>;
|
|
@@ -765,11 +909,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
765
909
|
image?: string | undefined;
|
|
766
910
|
available?: number | undefined;
|
|
767
911
|
}[];
|
|
912
|
+
description?: string | undefined;
|
|
768
913
|
compare_at?: {
|
|
769
914
|
amount: number;
|
|
770
915
|
currency: string;
|
|
771
916
|
} | undefined;
|
|
772
|
-
description?: string | undefined;
|
|
773
917
|
badges?: string[] | undefined;
|
|
774
918
|
promo?: {
|
|
775
919
|
message: string;
|
|
@@ -777,8 +921,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
777
921
|
} | undefined;
|
|
778
922
|
size_guide?: {
|
|
779
923
|
title: string;
|
|
924
|
+
subtitle?: string | undefined;
|
|
780
925
|
columns?: string[] | undefined;
|
|
781
926
|
rows?: string[][] | undefined;
|
|
927
|
+
unit?: "cm" | "in" | undefined;
|
|
928
|
+
note?: string | undefined;
|
|
929
|
+
measurements?: {
|
|
930
|
+
label: string;
|
|
931
|
+
description: string;
|
|
932
|
+
}[] | undefined;
|
|
933
|
+
fabric?: string | undefined;
|
|
782
934
|
notes?: string[] | undefined;
|
|
783
935
|
} | undefined;
|
|
784
936
|
};
|
|
@@ -801,11 +953,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
801
953
|
image?: string | undefined;
|
|
802
954
|
available?: number | undefined;
|
|
803
955
|
}[];
|
|
956
|
+
description?: string | undefined;
|
|
804
957
|
compare_at?: {
|
|
805
958
|
amount: number;
|
|
806
959
|
currency: string;
|
|
807
960
|
} | undefined;
|
|
808
|
-
description?: string | undefined;
|
|
809
961
|
badges?: string[] | undefined;
|
|
810
962
|
promo?: {
|
|
811
963
|
message: string;
|
|
@@ -813,25 +965,24 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
813
965
|
} | undefined;
|
|
814
966
|
size_guide?: {
|
|
815
967
|
title: string;
|
|
968
|
+
subtitle?: string | undefined;
|
|
816
969
|
columns?: string[] | undefined;
|
|
817
970
|
rows?: string[][] | undefined;
|
|
971
|
+
unit?: "cm" | "in" | undefined;
|
|
972
|
+
note?: string | undefined;
|
|
973
|
+
measurements?: {
|
|
974
|
+
label: string;
|
|
975
|
+
description: string;
|
|
976
|
+
}[] | undefined;
|
|
977
|
+
fabric?: string | undefined;
|
|
818
978
|
notes?: string[] | undefined;
|
|
819
979
|
} | undefined;
|
|
820
980
|
};
|
|
821
981
|
title?: string | undefined;
|
|
822
982
|
}>, z.ZodObject<{
|
|
823
|
-
kind: z.ZodLiteral<"
|
|
824
|
-
images: z.ZodArray<z.ZodString, "many">;
|
|
825
|
-
}, "strip", z.ZodTypeAny, {
|
|
826
|
-
kind: "lifestyle_image";
|
|
827
|
-
images: string[];
|
|
828
|
-
}, {
|
|
829
|
-
kind: "lifestyle_image";
|
|
830
|
-
images: string[];
|
|
831
|
-
}>, z.ZodObject<{
|
|
832
|
-
kind: z.ZodLiteral<"grid">;
|
|
983
|
+
kind: z.ZodLiteral<"product_gallery">;
|
|
833
984
|
title: z.ZodString;
|
|
834
|
-
|
|
985
|
+
product: z.ZodObject<{
|
|
835
986
|
sku: z.ZodString;
|
|
836
987
|
title: z.ZodString;
|
|
837
988
|
category: z.ZodString;
|
|
@@ -889,18 +1040,48 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
889
1040
|
}>>;
|
|
890
1041
|
size_guide: z.ZodOptional<z.ZodObject<{
|
|
891
1042
|
title: z.ZodString;
|
|
1043
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
892
1044
|
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
893
1045
|
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
1046
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
1047
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1048
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1049
|
+
label: z.ZodString;
|
|
1050
|
+
description: z.ZodString;
|
|
1051
|
+
}, "strip", z.ZodTypeAny, {
|
|
1052
|
+
label: string;
|
|
1053
|
+
description: string;
|
|
1054
|
+
}, {
|
|
1055
|
+
label: string;
|
|
1056
|
+
description: string;
|
|
1057
|
+
}>, "many">>;
|
|
1058
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
894
1059
|
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
895
1060
|
}, "strip", z.ZodTypeAny, {
|
|
896
1061
|
title: string;
|
|
1062
|
+
subtitle?: string | undefined;
|
|
897
1063
|
columns?: string[] | undefined;
|
|
898
1064
|
rows?: string[][] | undefined;
|
|
1065
|
+
unit?: "cm" | "in" | undefined;
|
|
1066
|
+
note?: string | undefined;
|
|
1067
|
+
measurements?: {
|
|
1068
|
+
label: string;
|
|
1069
|
+
description: string;
|
|
1070
|
+
}[] | undefined;
|
|
1071
|
+
fabric?: string | undefined;
|
|
899
1072
|
notes?: string[] | undefined;
|
|
900
1073
|
}, {
|
|
901
1074
|
title: string;
|
|
1075
|
+
subtitle?: string | undefined;
|
|
902
1076
|
columns?: string[] | undefined;
|
|
903
1077
|
rows?: string[][] | undefined;
|
|
1078
|
+
unit?: "cm" | "in" | undefined;
|
|
1079
|
+
note?: string | undefined;
|
|
1080
|
+
measurements?: {
|
|
1081
|
+
label: string;
|
|
1082
|
+
description: string;
|
|
1083
|
+
}[] | undefined;
|
|
1084
|
+
fabric?: string | undefined;
|
|
904
1085
|
notes?: string[] | undefined;
|
|
905
1086
|
}>>;
|
|
906
1087
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -919,11 +1100,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
919
1100
|
image?: string | undefined;
|
|
920
1101
|
available?: number | undefined;
|
|
921
1102
|
}[];
|
|
1103
|
+
description?: string | undefined;
|
|
922
1104
|
compare_at?: {
|
|
923
1105
|
amount: number;
|
|
924
1106
|
currency: string;
|
|
925
1107
|
} | undefined;
|
|
926
|
-
description?: string | undefined;
|
|
927
1108
|
badges?: string[] | undefined;
|
|
928
1109
|
promo?: {
|
|
929
1110
|
message: string;
|
|
@@ -931,8 +1112,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
931
1112
|
} | undefined;
|
|
932
1113
|
size_guide?: {
|
|
933
1114
|
title: string;
|
|
1115
|
+
subtitle?: string | undefined;
|
|
934
1116
|
columns?: string[] | undefined;
|
|
935
1117
|
rows?: string[][] | undefined;
|
|
1118
|
+
unit?: "cm" | "in" | undefined;
|
|
1119
|
+
note?: string | undefined;
|
|
1120
|
+
measurements?: {
|
|
1121
|
+
label: string;
|
|
1122
|
+
description: string;
|
|
1123
|
+
}[] | undefined;
|
|
1124
|
+
fabric?: string | undefined;
|
|
936
1125
|
notes?: string[] | undefined;
|
|
937
1126
|
} | undefined;
|
|
938
1127
|
}, {
|
|
@@ -951,11 +1140,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
951
1140
|
image?: string | undefined;
|
|
952
1141
|
available?: number | undefined;
|
|
953
1142
|
}[];
|
|
1143
|
+
description?: string | undefined;
|
|
954
1144
|
compare_at?: {
|
|
955
1145
|
amount: number;
|
|
956
1146
|
currency: string;
|
|
957
1147
|
} | undefined;
|
|
958
|
-
description?: string | undefined;
|
|
959
1148
|
badges?: string[] | undefined;
|
|
960
1149
|
promo?: {
|
|
961
1150
|
message: string;
|
|
@@ -963,15 +1152,23 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
963
1152
|
} | undefined;
|
|
964
1153
|
size_guide?: {
|
|
965
1154
|
title: string;
|
|
1155
|
+
subtitle?: string | undefined;
|
|
966
1156
|
columns?: string[] | undefined;
|
|
967
1157
|
rows?: string[][] | undefined;
|
|
1158
|
+
unit?: "cm" | "in" | undefined;
|
|
1159
|
+
note?: string | undefined;
|
|
1160
|
+
measurements?: {
|
|
1161
|
+
label: string;
|
|
1162
|
+
description: string;
|
|
1163
|
+
}[] | undefined;
|
|
1164
|
+
fabric?: string | undefined;
|
|
968
1165
|
notes?: string[] | undefined;
|
|
969
1166
|
} | undefined;
|
|
970
|
-
}
|
|
1167
|
+
}>;
|
|
971
1168
|
}, "strip", z.ZodTypeAny, {
|
|
972
1169
|
title: string;
|
|
973
|
-
kind: "
|
|
974
|
-
|
|
1170
|
+
kind: "product_gallery";
|
|
1171
|
+
product: {
|
|
975
1172
|
sku: string;
|
|
976
1173
|
title: string;
|
|
977
1174
|
price: {
|
|
@@ -987,11 +1184,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
987
1184
|
image?: string | undefined;
|
|
988
1185
|
available?: number | undefined;
|
|
989
1186
|
}[];
|
|
1187
|
+
description?: string | undefined;
|
|
990
1188
|
compare_at?: {
|
|
991
1189
|
amount: number;
|
|
992
1190
|
currency: string;
|
|
993
1191
|
} | undefined;
|
|
994
|
-
description?: string | undefined;
|
|
995
1192
|
badges?: string[] | undefined;
|
|
996
1193
|
promo?: {
|
|
997
1194
|
message: string;
|
|
@@ -999,15 +1196,23 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
999
1196
|
} | undefined;
|
|
1000
1197
|
size_guide?: {
|
|
1001
1198
|
title: string;
|
|
1199
|
+
subtitle?: string | undefined;
|
|
1002
1200
|
columns?: string[] | undefined;
|
|
1003
1201
|
rows?: string[][] | undefined;
|
|
1202
|
+
unit?: "cm" | "in" | undefined;
|
|
1203
|
+
note?: string | undefined;
|
|
1204
|
+
measurements?: {
|
|
1205
|
+
label: string;
|
|
1206
|
+
description: string;
|
|
1207
|
+
}[] | undefined;
|
|
1208
|
+
fabric?: string | undefined;
|
|
1004
1209
|
notes?: string[] | undefined;
|
|
1005
1210
|
} | undefined;
|
|
1006
|
-
}
|
|
1211
|
+
};
|
|
1007
1212
|
}, {
|
|
1008
1213
|
title: string;
|
|
1009
|
-
kind: "
|
|
1010
|
-
|
|
1214
|
+
kind: "product_gallery";
|
|
1215
|
+
product: {
|
|
1011
1216
|
sku: string;
|
|
1012
1217
|
title: string;
|
|
1013
1218
|
price: {
|
|
@@ -1023,11 +1228,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1023
1228
|
image?: string | undefined;
|
|
1024
1229
|
available?: number | undefined;
|
|
1025
1230
|
}[];
|
|
1231
|
+
description?: string | undefined;
|
|
1026
1232
|
compare_at?: {
|
|
1027
1233
|
amount: number;
|
|
1028
1234
|
currency: string;
|
|
1029
1235
|
} | undefined;
|
|
1030
|
-
description?: string | undefined;
|
|
1031
1236
|
badges?: string[] | undefined;
|
|
1032
1237
|
promo?: {
|
|
1033
1238
|
message: string;
|
|
@@ -1035,135 +1240,434 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1035
1240
|
} | undefined;
|
|
1036
1241
|
size_guide?: {
|
|
1037
1242
|
title: string;
|
|
1243
|
+
subtitle?: string | undefined;
|
|
1038
1244
|
columns?: string[] | undefined;
|
|
1039
1245
|
rows?: string[][] | undefined;
|
|
1246
|
+
unit?: "cm" | "in" | undefined;
|
|
1247
|
+
note?: string | undefined;
|
|
1248
|
+
measurements?: {
|
|
1249
|
+
label: string;
|
|
1250
|
+
description: string;
|
|
1251
|
+
}[] | undefined;
|
|
1252
|
+
fabric?: string | undefined;
|
|
1040
1253
|
notes?: string[] | undefined;
|
|
1041
1254
|
} | undefined;
|
|
1042
|
-
}
|
|
1255
|
+
};
|
|
1043
1256
|
}>, z.ZodObject<{
|
|
1044
|
-
kind: z.ZodLiteral<"
|
|
1045
|
-
|
|
1046
|
-
quote: z.ZodString;
|
|
1047
|
-
author: z.ZodString;
|
|
1048
|
-
}, "strip", z.ZodTypeAny, {
|
|
1049
|
-
quote: string;
|
|
1050
|
-
author: string;
|
|
1051
|
-
}, {
|
|
1052
|
-
quote: string;
|
|
1053
|
-
author: string;
|
|
1054
|
-
}>, "many">;
|
|
1055
|
-
disclaimer: z.ZodOptional<z.ZodString>;
|
|
1257
|
+
kind: z.ZodLiteral<"lifestyle_image">;
|
|
1258
|
+
images: z.ZodArray<z.ZodString, "many">;
|
|
1056
1259
|
}, "strip", z.ZodTypeAny, {
|
|
1057
|
-
kind: "
|
|
1058
|
-
|
|
1059
|
-
quote: string;
|
|
1060
|
-
author: string;
|
|
1061
|
-
}[];
|
|
1062
|
-
disclaimer?: string | undefined;
|
|
1260
|
+
kind: "lifestyle_image";
|
|
1261
|
+
images: string[];
|
|
1063
1262
|
}, {
|
|
1064
|
-
kind: "
|
|
1065
|
-
|
|
1066
|
-
quote: string;
|
|
1067
|
-
author: string;
|
|
1068
|
-
}[];
|
|
1069
|
-
disclaimer?: string | undefined;
|
|
1263
|
+
kind: "lifestyle_image";
|
|
1264
|
+
images: string[];
|
|
1070
1265
|
}>, z.ZodObject<{
|
|
1071
|
-
kind: z.ZodLiteral<"
|
|
1072
|
-
|
|
1073
|
-
|
|
1266
|
+
kind: z.ZodLiteral<"grid">;
|
|
1267
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1268
|
+
products: z.ZodArray<z.ZodObject<{
|
|
1269
|
+
sku: z.ZodString;
|
|
1074
1270
|
title: z.ZodString;
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
}, {
|
|
1081
|
-
title: string;
|
|
1082
|
-
body: string;
|
|
1083
|
-
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1084
|
-
}>, "many">;
|
|
1085
|
-
}, "strip", z.ZodTypeAny, {
|
|
1086
|
-
items: {
|
|
1087
|
-
title: string;
|
|
1088
|
-
body: string;
|
|
1089
|
-
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1090
|
-
}[];
|
|
1091
|
-
kind: "why_us";
|
|
1092
|
-
}, {
|
|
1093
|
-
items: {
|
|
1094
|
-
title: string;
|
|
1095
|
-
body: string;
|
|
1096
|
-
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1097
|
-
}[];
|
|
1098
|
-
kind: "why_us";
|
|
1099
|
-
}>, z.ZodObject<{
|
|
1100
|
-
kind: z.ZodLiteral<"explore">;
|
|
1101
|
-
title: z.ZodString;
|
|
1102
|
-
links: z.ZodArray<z.ZodObject<{
|
|
1103
|
-
label: z.ZodString;
|
|
1104
|
-
code: z.ZodString;
|
|
1105
|
-
}, "strip", z.ZodTypeAny, {
|
|
1106
|
-
code: string;
|
|
1107
|
-
label: string;
|
|
1108
|
-
}, {
|
|
1109
|
-
code: string;
|
|
1110
|
-
label: string;
|
|
1111
|
-
}>, "many">;
|
|
1112
|
-
}, "strip", z.ZodTypeAny, {
|
|
1113
|
-
title: string;
|
|
1114
|
-
kind: "explore";
|
|
1115
|
-
links: {
|
|
1116
|
-
code: string;
|
|
1117
|
-
label: string;
|
|
1118
|
-
}[];
|
|
1119
|
-
}, {
|
|
1120
|
-
title: string;
|
|
1121
|
-
kind: "explore";
|
|
1122
|
-
links: {
|
|
1123
|
-
code: string;
|
|
1124
|
-
label: string;
|
|
1125
|
-
}[];
|
|
1126
|
-
}>]>, "many">;
|
|
1127
|
-
}, "strip", z.ZodTypeAny, {
|
|
1128
|
-
code: string;
|
|
1129
|
-
hero: {
|
|
1130
|
-
title: string;
|
|
1131
|
-
image?: string | undefined;
|
|
1132
|
-
subtitle?: string | undefined;
|
|
1133
|
-
};
|
|
1134
|
-
blocks: ({
|
|
1135
|
-
title: string;
|
|
1136
|
-
kind: "rail";
|
|
1137
|
-
products: {
|
|
1138
|
-
sku: string;
|
|
1139
|
-
title: string;
|
|
1140
|
-
price: {
|
|
1271
|
+
category: z.ZodString;
|
|
1272
|
+
price: z.ZodObject<{
|
|
1273
|
+
amount: z.ZodNumber;
|
|
1274
|
+
currency: z.ZodString;
|
|
1275
|
+
}, "strict", z.ZodTypeAny, {
|
|
1141
1276
|
amount: number;
|
|
1142
1277
|
currency: string;
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1278
|
+
}, {
|
|
1279
|
+
amount: number;
|
|
1280
|
+
currency: string;
|
|
1281
|
+
}>;
|
|
1282
|
+
compare_at: z.ZodOptional<z.ZodObject<{
|
|
1283
|
+
amount: z.ZodNumber;
|
|
1284
|
+
currency: z.ZodString;
|
|
1285
|
+
}, "strict", z.ZodTypeAny, {
|
|
1286
|
+
amount: number;
|
|
1287
|
+
currency: string;
|
|
1288
|
+
}, {
|
|
1289
|
+
amount: number;
|
|
1290
|
+
currency: string;
|
|
1291
|
+
}>>;
|
|
1292
|
+
media: z.ZodArray<z.ZodString, "many">;
|
|
1293
|
+
variants: z.ZodArray<z.ZodObject<{
|
|
1294
|
+
sku: z.ZodString;
|
|
1295
|
+
attributes: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
1296
|
+
in_stock: z.ZodBoolean;
|
|
1297
|
+
image: z.ZodOptional<z.ZodString>;
|
|
1298
|
+
available: z.ZodOptional<z.ZodNumber>;
|
|
1299
|
+
}, "strip", z.ZodTypeAny, {
|
|
1147
1300
|
sku: string;
|
|
1148
1301
|
attributes: Record<string, string>;
|
|
1149
1302
|
in_stock: boolean;
|
|
1150
1303
|
image?: string | undefined;
|
|
1151
1304
|
available?: number | undefined;
|
|
1152
|
-
}
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1305
|
+
}, {
|
|
1306
|
+
sku: string;
|
|
1307
|
+
attributes: Record<string, string>;
|
|
1308
|
+
in_stock: boolean;
|
|
1309
|
+
image?: string | undefined;
|
|
1310
|
+
available?: number | undefined;
|
|
1311
|
+
}>, "many">;
|
|
1312
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1313
|
+
badges: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1314
|
+
promo: z.ZodOptional<z.ZodObject<{
|
|
1315
|
+
message: z.ZodString;
|
|
1316
|
+
ends_at: z.ZodOptional<z.ZodString>;
|
|
1317
|
+
}, "strip", z.ZodTypeAny, {
|
|
1318
|
+
message: string;
|
|
1319
|
+
ends_at?: string | undefined;
|
|
1320
|
+
}, {
|
|
1321
|
+
message: string;
|
|
1322
|
+
ends_at?: string | undefined;
|
|
1323
|
+
}>>;
|
|
1324
|
+
size_guide: z.ZodOptional<z.ZodObject<{
|
|
1325
|
+
title: z.ZodString;
|
|
1326
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
1327
|
+
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1328
|
+
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
1329
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
1330
|
+
note: z.ZodOptional<z.ZodString>;
|
|
1331
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1332
|
+
label: z.ZodString;
|
|
1333
|
+
description: z.ZodString;
|
|
1334
|
+
}, "strip", z.ZodTypeAny, {
|
|
1335
|
+
label: string;
|
|
1336
|
+
description: string;
|
|
1337
|
+
}, {
|
|
1338
|
+
label: string;
|
|
1339
|
+
description: string;
|
|
1340
|
+
}>, "many">>;
|
|
1341
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
1342
|
+
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1343
|
+
}, "strip", z.ZodTypeAny, {
|
|
1344
|
+
title: string;
|
|
1345
|
+
subtitle?: string | undefined;
|
|
1346
|
+
columns?: string[] | undefined;
|
|
1347
|
+
rows?: string[][] | undefined;
|
|
1348
|
+
unit?: "cm" | "in" | undefined;
|
|
1349
|
+
note?: string | undefined;
|
|
1350
|
+
measurements?: {
|
|
1351
|
+
label: string;
|
|
1352
|
+
description: string;
|
|
1353
|
+
}[] | undefined;
|
|
1354
|
+
fabric?: string | undefined;
|
|
1355
|
+
notes?: string[] | undefined;
|
|
1356
|
+
}, {
|
|
1357
|
+
title: string;
|
|
1358
|
+
subtitle?: string | undefined;
|
|
1359
|
+
columns?: string[] | undefined;
|
|
1360
|
+
rows?: string[][] | undefined;
|
|
1361
|
+
unit?: "cm" | "in" | undefined;
|
|
1362
|
+
note?: string | undefined;
|
|
1363
|
+
measurements?: {
|
|
1364
|
+
label: string;
|
|
1365
|
+
description: string;
|
|
1366
|
+
}[] | undefined;
|
|
1367
|
+
fabric?: string | undefined;
|
|
1368
|
+
notes?: string[] | undefined;
|
|
1369
|
+
}>>;
|
|
1370
|
+
}, "strip", z.ZodTypeAny, {
|
|
1371
|
+
sku: string;
|
|
1372
|
+
title: string;
|
|
1373
|
+
price: {
|
|
1374
|
+
amount: number;
|
|
1375
|
+
currency: string;
|
|
1376
|
+
};
|
|
1377
|
+
category: string;
|
|
1378
|
+
media: string[];
|
|
1379
|
+
variants: {
|
|
1380
|
+
sku: string;
|
|
1381
|
+
attributes: Record<string, string>;
|
|
1382
|
+
in_stock: boolean;
|
|
1383
|
+
image?: string | undefined;
|
|
1384
|
+
available?: number | undefined;
|
|
1385
|
+
}[];
|
|
1386
|
+
description?: string | undefined;
|
|
1387
|
+
compare_at?: {
|
|
1388
|
+
amount: number;
|
|
1389
|
+
currency: string;
|
|
1390
|
+
} | undefined;
|
|
1391
|
+
badges?: string[] | undefined;
|
|
1392
|
+
promo?: {
|
|
1393
|
+
message: string;
|
|
1394
|
+
ends_at?: string | undefined;
|
|
1162
1395
|
} | undefined;
|
|
1163
1396
|
size_guide?: {
|
|
1164
1397
|
title: string;
|
|
1398
|
+
subtitle?: string | undefined;
|
|
1165
1399
|
columns?: string[] | undefined;
|
|
1166
1400
|
rows?: string[][] | undefined;
|
|
1401
|
+
unit?: "cm" | "in" | undefined;
|
|
1402
|
+
note?: string | undefined;
|
|
1403
|
+
measurements?: {
|
|
1404
|
+
label: string;
|
|
1405
|
+
description: string;
|
|
1406
|
+
}[] | undefined;
|
|
1407
|
+
fabric?: string | undefined;
|
|
1408
|
+
notes?: string[] | undefined;
|
|
1409
|
+
} | undefined;
|
|
1410
|
+
}, {
|
|
1411
|
+
sku: string;
|
|
1412
|
+
title: string;
|
|
1413
|
+
price: {
|
|
1414
|
+
amount: number;
|
|
1415
|
+
currency: string;
|
|
1416
|
+
};
|
|
1417
|
+
category: string;
|
|
1418
|
+
media: string[];
|
|
1419
|
+
variants: {
|
|
1420
|
+
sku: string;
|
|
1421
|
+
attributes: Record<string, string>;
|
|
1422
|
+
in_stock: boolean;
|
|
1423
|
+
image?: string | undefined;
|
|
1424
|
+
available?: number | undefined;
|
|
1425
|
+
}[];
|
|
1426
|
+
description?: string | undefined;
|
|
1427
|
+
compare_at?: {
|
|
1428
|
+
amount: number;
|
|
1429
|
+
currency: string;
|
|
1430
|
+
} | undefined;
|
|
1431
|
+
badges?: string[] | undefined;
|
|
1432
|
+
promo?: {
|
|
1433
|
+
message: string;
|
|
1434
|
+
ends_at?: string | undefined;
|
|
1435
|
+
} | undefined;
|
|
1436
|
+
size_guide?: {
|
|
1437
|
+
title: string;
|
|
1438
|
+
subtitle?: string | undefined;
|
|
1439
|
+
columns?: string[] | undefined;
|
|
1440
|
+
rows?: string[][] | undefined;
|
|
1441
|
+
unit?: "cm" | "in" | undefined;
|
|
1442
|
+
note?: string | undefined;
|
|
1443
|
+
measurements?: {
|
|
1444
|
+
label: string;
|
|
1445
|
+
description: string;
|
|
1446
|
+
}[] | undefined;
|
|
1447
|
+
fabric?: string | undefined;
|
|
1448
|
+
notes?: string[] | undefined;
|
|
1449
|
+
} | undefined;
|
|
1450
|
+
}>, "many">;
|
|
1451
|
+
}, "strip", z.ZodTypeAny, {
|
|
1452
|
+
kind: "grid";
|
|
1453
|
+
products: {
|
|
1454
|
+
sku: string;
|
|
1455
|
+
title: string;
|
|
1456
|
+
price: {
|
|
1457
|
+
amount: number;
|
|
1458
|
+
currency: string;
|
|
1459
|
+
};
|
|
1460
|
+
category: string;
|
|
1461
|
+
media: string[];
|
|
1462
|
+
variants: {
|
|
1463
|
+
sku: string;
|
|
1464
|
+
attributes: Record<string, string>;
|
|
1465
|
+
in_stock: boolean;
|
|
1466
|
+
image?: string | undefined;
|
|
1467
|
+
available?: number | undefined;
|
|
1468
|
+
}[];
|
|
1469
|
+
description?: string | undefined;
|
|
1470
|
+
compare_at?: {
|
|
1471
|
+
amount: number;
|
|
1472
|
+
currency: string;
|
|
1473
|
+
} | undefined;
|
|
1474
|
+
badges?: string[] | undefined;
|
|
1475
|
+
promo?: {
|
|
1476
|
+
message: string;
|
|
1477
|
+
ends_at?: string | undefined;
|
|
1478
|
+
} | undefined;
|
|
1479
|
+
size_guide?: {
|
|
1480
|
+
title: string;
|
|
1481
|
+
subtitle?: string | undefined;
|
|
1482
|
+
columns?: string[] | undefined;
|
|
1483
|
+
rows?: string[][] | undefined;
|
|
1484
|
+
unit?: "cm" | "in" | undefined;
|
|
1485
|
+
note?: string | undefined;
|
|
1486
|
+
measurements?: {
|
|
1487
|
+
label: string;
|
|
1488
|
+
description: string;
|
|
1489
|
+
}[] | undefined;
|
|
1490
|
+
fabric?: string | undefined;
|
|
1491
|
+
notes?: string[] | undefined;
|
|
1492
|
+
} | undefined;
|
|
1493
|
+
}[];
|
|
1494
|
+
title?: string | undefined;
|
|
1495
|
+
}, {
|
|
1496
|
+
kind: "grid";
|
|
1497
|
+
products: {
|
|
1498
|
+
sku: string;
|
|
1499
|
+
title: string;
|
|
1500
|
+
price: {
|
|
1501
|
+
amount: number;
|
|
1502
|
+
currency: string;
|
|
1503
|
+
};
|
|
1504
|
+
category: string;
|
|
1505
|
+
media: string[];
|
|
1506
|
+
variants: {
|
|
1507
|
+
sku: string;
|
|
1508
|
+
attributes: Record<string, string>;
|
|
1509
|
+
in_stock: boolean;
|
|
1510
|
+
image?: string | undefined;
|
|
1511
|
+
available?: number | undefined;
|
|
1512
|
+
}[];
|
|
1513
|
+
description?: string | undefined;
|
|
1514
|
+
compare_at?: {
|
|
1515
|
+
amount: number;
|
|
1516
|
+
currency: string;
|
|
1517
|
+
} | undefined;
|
|
1518
|
+
badges?: string[] | undefined;
|
|
1519
|
+
promo?: {
|
|
1520
|
+
message: string;
|
|
1521
|
+
ends_at?: string | undefined;
|
|
1522
|
+
} | undefined;
|
|
1523
|
+
size_guide?: {
|
|
1524
|
+
title: string;
|
|
1525
|
+
subtitle?: string | undefined;
|
|
1526
|
+
columns?: string[] | undefined;
|
|
1527
|
+
rows?: string[][] | undefined;
|
|
1528
|
+
unit?: "cm" | "in" | undefined;
|
|
1529
|
+
note?: string | undefined;
|
|
1530
|
+
measurements?: {
|
|
1531
|
+
label: string;
|
|
1532
|
+
description: string;
|
|
1533
|
+
}[] | undefined;
|
|
1534
|
+
fabric?: string | undefined;
|
|
1535
|
+
notes?: string[] | undefined;
|
|
1536
|
+
} | undefined;
|
|
1537
|
+
}[];
|
|
1538
|
+
title?: string | undefined;
|
|
1539
|
+
}>, z.ZodObject<{
|
|
1540
|
+
kind: z.ZodLiteral<"review">;
|
|
1541
|
+
quotes: z.ZodArray<z.ZodObject<{
|
|
1542
|
+
quote: z.ZodString;
|
|
1543
|
+
author: z.ZodString;
|
|
1544
|
+
}, "strip", z.ZodTypeAny, {
|
|
1545
|
+
quote: string;
|
|
1546
|
+
author: string;
|
|
1547
|
+
}, {
|
|
1548
|
+
quote: string;
|
|
1549
|
+
author: string;
|
|
1550
|
+
}>, "many">;
|
|
1551
|
+
disclaimer: z.ZodOptional<z.ZodString>;
|
|
1552
|
+
}, "strip", z.ZodTypeAny, {
|
|
1553
|
+
kind: "review";
|
|
1554
|
+
quotes: {
|
|
1555
|
+
quote: string;
|
|
1556
|
+
author: string;
|
|
1557
|
+
}[];
|
|
1558
|
+
disclaimer?: string | undefined;
|
|
1559
|
+
}, {
|
|
1560
|
+
kind: "review";
|
|
1561
|
+
quotes: {
|
|
1562
|
+
quote: string;
|
|
1563
|
+
author: string;
|
|
1564
|
+
}[];
|
|
1565
|
+
disclaimer?: string | undefined;
|
|
1566
|
+
}>, z.ZodObject<{
|
|
1567
|
+
kind: z.ZodLiteral<"why_us">;
|
|
1568
|
+
items: z.ZodArray<z.ZodObject<{
|
|
1569
|
+
icon: z.ZodOptional<z.ZodEnum<["payment", "delivery", "returns"]>>;
|
|
1570
|
+
title: z.ZodString;
|
|
1571
|
+
body: z.ZodString;
|
|
1572
|
+
}, "strip", z.ZodTypeAny, {
|
|
1573
|
+
title: string;
|
|
1574
|
+
body: string;
|
|
1575
|
+
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1576
|
+
}, {
|
|
1577
|
+
title: string;
|
|
1578
|
+
body: string;
|
|
1579
|
+
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1580
|
+
}>, "many">;
|
|
1581
|
+
}, "strip", z.ZodTypeAny, {
|
|
1582
|
+
items: {
|
|
1583
|
+
title: string;
|
|
1584
|
+
body: string;
|
|
1585
|
+
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1586
|
+
}[];
|
|
1587
|
+
kind: "why_us";
|
|
1588
|
+
}, {
|
|
1589
|
+
items: {
|
|
1590
|
+
title: string;
|
|
1591
|
+
body: string;
|
|
1592
|
+
icon?: "payment" | "delivery" | "returns" | undefined;
|
|
1593
|
+
}[];
|
|
1594
|
+
kind: "why_us";
|
|
1595
|
+
}>, z.ZodObject<{
|
|
1596
|
+
kind: z.ZodLiteral<"explore">;
|
|
1597
|
+
title: z.ZodString;
|
|
1598
|
+
links: z.ZodArray<z.ZodObject<{
|
|
1599
|
+
label: z.ZodString;
|
|
1600
|
+
code: z.ZodString;
|
|
1601
|
+
}, "strip", z.ZodTypeAny, {
|
|
1602
|
+
code: string;
|
|
1603
|
+
label: string;
|
|
1604
|
+
}, {
|
|
1605
|
+
code: string;
|
|
1606
|
+
label: string;
|
|
1607
|
+
}>, "many">;
|
|
1608
|
+
}, "strip", z.ZodTypeAny, {
|
|
1609
|
+
title: string;
|
|
1610
|
+
kind: "explore";
|
|
1611
|
+
links: {
|
|
1612
|
+
code: string;
|
|
1613
|
+
label: string;
|
|
1614
|
+
}[];
|
|
1615
|
+
}, {
|
|
1616
|
+
title: string;
|
|
1617
|
+
kind: "explore";
|
|
1618
|
+
links: {
|
|
1619
|
+
code: string;
|
|
1620
|
+
label: string;
|
|
1621
|
+
}[];
|
|
1622
|
+
}>]>, "many">;
|
|
1623
|
+
}, "strip", z.ZodTypeAny, {
|
|
1624
|
+
code: string;
|
|
1625
|
+
hero: {
|
|
1626
|
+
title: string;
|
|
1627
|
+
image?: string | undefined;
|
|
1628
|
+
subtitle?: string | undefined;
|
|
1629
|
+
};
|
|
1630
|
+
blocks: ({
|
|
1631
|
+
title: string;
|
|
1632
|
+
kind: "rail";
|
|
1633
|
+
products: {
|
|
1634
|
+
sku: string;
|
|
1635
|
+
title: string;
|
|
1636
|
+
price: {
|
|
1637
|
+
amount: number;
|
|
1638
|
+
currency: string;
|
|
1639
|
+
};
|
|
1640
|
+
category: string;
|
|
1641
|
+
media: string[];
|
|
1642
|
+
variants: {
|
|
1643
|
+
sku: string;
|
|
1644
|
+
attributes: Record<string, string>;
|
|
1645
|
+
in_stock: boolean;
|
|
1646
|
+
image?: string | undefined;
|
|
1647
|
+
available?: number | undefined;
|
|
1648
|
+
}[];
|
|
1649
|
+
description?: string | undefined;
|
|
1650
|
+
compare_at?: {
|
|
1651
|
+
amount: number;
|
|
1652
|
+
currency: string;
|
|
1653
|
+
} | undefined;
|
|
1654
|
+
badges?: string[] | undefined;
|
|
1655
|
+
promo?: {
|
|
1656
|
+
message: string;
|
|
1657
|
+
ends_at?: string | undefined;
|
|
1658
|
+
} | undefined;
|
|
1659
|
+
size_guide?: {
|
|
1660
|
+
title: string;
|
|
1661
|
+
subtitle?: string | undefined;
|
|
1662
|
+
columns?: string[] | undefined;
|
|
1663
|
+
rows?: string[][] | undefined;
|
|
1664
|
+
unit?: "cm" | "in" | undefined;
|
|
1665
|
+
note?: string | undefined;
|
|
1666
|
+
measurements?: {
|
|
1667
|
+
label: string;
|
|
1668
|
+
description: string;
|
|
1669
|
+
}[] | undefined;
|
|
1670
|
+
fabric?: string | undefined;
|
|
1167
1671
|
notes?: string[] | undefined;
|
|
1168
1672
|
} | undefined;
|
|
1169
1673
|
}[];
|
|
@@ -1189,11 +1693,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1189
1693
|
image?: string | undefined;
|
|
1190
1694
|
available?: number | undefined;
|
|
1191
1695
|
}[];
|
|
1696
|
+
description?: string | undefined;
|
|
1192
1697
|
compare_at?: {
|
|
1193
1698
|
amount: number;
|
|
1194
1699
|
currency: string;
|
|
1195
1700
|
} | undefined;
|
|
1196
|
-
description?: string | undefined;
|
|
1197
1701
|
badges?: string[] | undefined;
|
|
1198
1702
|
promo?: {
|
|
1199
1703
|
message: string;
|
|
@@ -1201,8 +1705,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1201
1705
|
} | undefined;
|
|
1202
1706
|
size_guide?: {
|
|
1203
1707
|
title: string;
|
|
1708
|
+
subtitle?: string | undefined;
|
|
1204
1709
|
columns?: string[] | undefined;
|
|
1205
1710
|
rows?: string[][] | undefined;
|
|
1711
|
+
unit?: "cm" | "in" | undefined;
|
|
1712
|
+
note?: string | undefined;
|
|
1713
|
+
measurements?: {
|
|
1714
|
+
label: string;
|
|
1715
|
+
description: string;
|
|
1716
|
+
}[] | undefined;
|
|
1717
|
+
fabric?: string | undefined;
|
|
1206
1718
|
notes?: string[] | undefined;
|
|
1207
1719
|
} | undefined;
|
|
1208
1720
|
};
|
|
@@ -1211,7 +1723,6 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1211
1723
|
kind: "lifestyle_image";
|
|
1212
1724
|
images: string[];
|
|
1213
1725
|
} | {
|
|
1214
|
-
title: string;
|
|
1215
1726
|
kind: "grid";
|
|
1216
1727
|
products: {
|
|
1217
1728
|
sku: string;
|
|
@@ -1229,11 +1740,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1229
1740
|
image?: string | undefined;
|
|
1230
1741
|
available?: number | undefined;
|
|
1231
1742
|
}[];
|
|
1743
|
+
description?: string | undefined;
|
|
1232
1744
|
compare_at?: {
|
|
1233
1745
|
amount: number;
|
|
1234
1746
|
currency: string;
|
|
1235
1747
|
} | undefined;
|
|
1236
|
-
description?: string | undefined;
|
|
1237
1748
|
badges?: string[] | undefined;
|
|
1238
1749
|
promo?: {
|
|
1239
1750
|
message: string;
|
|
@@ -1241,11 +1752,20 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1241
1752
|
} | undefined;
|
|
1242
1753
|
size_guide?: {
|
|
1243
1754
|
title: string;
|
|
1755
|
+
subtitle?: string | undefined;
|
|
1244
1756
|
columns?: string[] | undefined;
|
|
1245
1757
|
rows?: string[][] | undefined;
|
|
1758
|
+
unit?: "cm" | "in" | undefined;
|
|
1759
|
+
note?: string | undefined;
|
|
1760
|
+
measurements?: {
|
|
1761
|
+
label: string;
|
|
1762
|
+
description: string;
|
|
1763
|
+
}[] | undefined;
|
|
1764
|
+
fabric?: string | undefined;
|
|
1246
1765
|
notes?: string[] | undefined;
|
|
1247
1766
|
} | undefined;
|
|
1248
1767
|
}[];
|
|
1768
|
+
title?: string | undefined;
|
|
1249
1769
|
} | {
|
|
1250
1770
|
kind: "review";
|
|
1251
1771
|
quotes: {
|
|
@@ -1267,6 +1787,50 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1267
1787
|
code: string;
|
|
1268
1788
|
label: string;
|
|
1269
1789
|
}[];
|
|
1790
|
+
} | {
|
|
1791
|
+
title: string;
|
|
1792
|
+
kind: "product_gallery";
|
|
1793
|
+
product: {
|
|
1794
|
+
sku: string;
|
|
1795
|
+
title: string;
|
|
1796
|
+
price: {
|
|
1797
|
+
amount: number;
|
|
1798
|
+
currency: string;
|
|
1799
|
+
};
|
|
1800
|
+
category: string;
|
|
1801
|
+
media: string[];
|
|
1802
|
+
variants: {
|
|
1803
|
+
sku: string;
|
|
1804
|
+
attributes: Record<string, string>;
|
|
1805
|
+
in_stock: boolean;
|
|
1806
|
+
image?: string | undefined;
|
|
1807
|
+
available?: number | undefined;
|
|
1808
|
+
}[];
|
|
1809
|
+
description?: string | undefined;
|
|
1810
|
+
compare_at?: {
|
|
1811
|
+
amount: number;
|
|
1812
|
+
currency: string;
|
|
1813
|
+
} | undefined;
|
|
1814
|
+
badges?: string[] | undefined;
|
|
1815
|
+
promo?: {
|
|
1816
|
+
message: string;
|
|
1817
|
+
ends_at?: string | undefined;
|
|
1818
|
+
} | undefined;
|
|
1819
|
+
size_guide?: {
|
|
1820
|
+
title: string;
|
|
1821
|
+
subtitle?: string | undefined;
|
|
1822
|
+
columns?: string[] | undefined;
|
|
1823
|
+
rows?: string[][] | undefined;
|
|
1824
|
+
unit?: "cm" | "in" | undefined;
|
|
1825
|
+
note?: string | undefined;
|
|
1826
|
+
measurements?: {
|
|
1827
|
+
label: string;
|
|
1828
|
+
description: string;
|
|
1829
|
+
}[] | undefined;
|
|
1830
|
+
fabric?: string | undefined;
|
|
1831
|
+
notes?: string[] | undefined;
|
|
1832
|
+
} | undefined;
|
|
1833
|
+
};
|
|
1270
1834
|
})[];
|
|
1271
1835
|
}, {
|
|
1272
1836
|
code: string;
|
|
@@ -1294,11 +1858,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1294
1858
|
image?: string | undefined;
|
|
1295
1859
|
available?: number | undefined;
|
|
1296
1860
|
}[];
|
|
1861
|
+
description?: string | undefined;
|
|
1297
1862
|
compare_at?: {
|
|
1298
1863
|
amount: number;
|
|
1299
1864
|
currency: string;
|
|
1300
1865
|
} | undefined;
|
|
1301
|
-
description?: string | undefined;
|
|
1302
1866
|
badges?: string[] | undefined;
|
|
1303
1867
|
promo?: {
|
|
1304
1868
|
message: string;
|
|
@@ -1306,8 +1870,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1306
1870
|
} | undefined;
|
|
1307
1871
|
size_guide?: {
|
|
1308
1872
|
title: string;
|
|
1873
|
+
subtitle?: string | undefined;
|
|
1309
1874
|
columns?: string[] | undefined;
|
|
1310
1875
|
rows?: string[][] | undefined;
|
|
1876
|
+
unit?: "cm" | "in" | undefined;
|
|
1877
|
+
note?: string | undefined;
|
|
1878
|
+
measurements?: {
|
|
1879
|
+
label: string;
|
|
1880
|
+
description: string;
|
|
1881
|
+
}[] | undefined;
|
|
1882
|
+
fabric?: string | undefined;
|
|
1311
1883
|
notes?: string[] | undefined;
|
|
1312
1884
|
} | undefined;
|
|
1313
1885
|
}[];
|
|
@@ -1333,11 +1905,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1333
1905
|
image?: string | undefined;
|
|
1334
1906
|
available?: number | undefined;
|
|
1335
1907
|
}[];
|
|
1908
|
+
description?: string | undefined;
|
|
1336
1909
|
compare_at?: {
|
|
1337
1910
|
amount: number;
|
|
1338
1911
|
currency: string;
|
|
1339
1912
|
} | undefined;
|
|
1340
|
-
description?: string | undefined;
|
|
1341
1913
|
badges?: string[] | undefined;
|
|
1342
1914
|
promo?: {
|
|
1343
1915
|
message: string;
|
|
@@ -1345,8 +1917,16 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1345
1917
|
} | undefined;
|
|
1346
1918
|
size_guide?: {
|
|
1347
1919
|
title: string;
|
|
1920
|
+
subtitle?: string | undefined;
|
|
1348
1921
|
columns?: string[] | undefined;
|
|
1349
1922
|
rows?: string[][] | undefined;
|
|
1923
|
+
unit?: "cm" | "in" | undefined;
|
|
1924
|
+
note?: string | undefined;
|
|
1925
|
+
measurements?: {
|
|
1926
|
+
label: string;
|
|
1927
|
+
description: string;
|
|
1928
|
+
}[] | undefined;
|
|
1929
|
+
fabric?: string | undefined;
|
|
1350
1930
|
notes?: string[] | undefined;
|
|
1351
1931
|
} | undefined;
|
|
1352
1932
|
};
|
|
@@ -1355,7 +1935,6 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1355
1935
|
kind: "lifestyle_image";
|
|
1356
1936
|
images: string[];
|
|
1357
1937
|
} | {
|
|
1358
|
-
title: string;
|
|
1359
1938
|
kind: "grid";
|
|
1360
1939
|
products: {
|
|
1361
1940
|
sku: string;
|
|
@@ -1373,11 +1952,11 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1373
1952
|
image?: string | undefined;
|
|
1374
1953
|
available?: number | undefined;
|
|
1375
1954
|
}[];
|
|
1955
|
+
description?: string | undefined;
|
|
1376
1956
|
compare_at?: {
|
|
1377
1957
|
amount: number;
|
|
1378
1958
|
currency: string;
|
|
1379
1959
|
} | undefined;
|
|
1380
|
-
description?: string | undefined;
|
|
1381
1960
|
badges?: string[] | undefined;
|
|
1382
1961
|
promo?: {
|
|
1383
1962
|
message: string;
|
|
@@ -1385,11 +1964,20 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1385
1964
|
} | undefined;
|
|
1386
1965
|
size_guide?: {
|
|
1387
1966
|
title: string;
|
|
1967
|
+
subtitle?: string | undefined;
|
|
1388
1968
|
columns?: string[] | undefined;
|
|
1389
1969
|
rows?: string[][] | undefined;
|
|
1970
|
+
unit?: "cm" | "in" | undefined;
|
|
1971
|
+
note?: string | undefined;
|
|
1972
|
+
measurements?: {
|
|
1973
|
+
label: string;
|
|
1974
|
+
description: string;
|
|
1975
|
+
}[] | undefined;
|
|
1976
|
+
fabric?: string | undefined;
|
|
1390
1977
|
notes?: string[] | undefined;
|
|
1391
1978
|
} | undefined;
|
|
1392
1979
|
}[];
|
|
1980
|
+
title?: string | undefined;
|
|
1393
1981
|
} | {
|
|
1394
1982
|
kind: "review";
|
|
1395
1983
|
quotes: {
|
|
@@ -1411,6 +1999,50 @@ declare const CategoryPage: z.ZodObject<{
|
|
|
1411
1999
|
code: string;
|
|
1412
2000
|
label: string;
|
|
1413
2001
|
}[];
|
|
2002
|
+
} | {
|
|
2003
|
+
title: string;
|
|
2004
|
+
kind: "product_gallery";
|
|
2005
|
+
product: {
|
|
2006
|
+
sku: string;
|
|
2007
|
+
title: string;
|
|
2008
|
+
price: {
|
|
2009
|
+
amount: number;
|
|
2010
|
+
currency: string;
|
|
2011
|
+
};
|
|
2012
|
+
category: string;
|
|
2013
|
+
media: string[];
|
|
2014
|
+
variants: {
|
|
2015
|
+
sku: string;
|
|
2016
|
+
attributes: Record<string, string>;
|
|
2017
|
+
in_stock: boolean;
|
|
2018
|
+
image?: string | undefined;
|
|
2019
|
+
available?: number | undefined;
|
|
2020
|
+
}[];
|
|
2021
|
+
description?: string | undefined;
|
|
2022
|
+
compare_at?: {
|
|
2023
|
+
amount: number;
|
|
2024
|
+
currency: string;
|
|
2025
|
+
} | undefined;
|
|
2026
|
+
badges?: string[] | undefined;
|
|
2027
|
+
promo?: {
|
|
2028
|
+
message: string;
|
|
2029
|
+
ends_at?: string | undefined;
|
|
2030
|
+
} | undefined;
|
|
2031
|
+
size_guide?: {
|
|
2032
|
+
title: string;
|
|
2033
|
+
subtitle?: string | undefined;
|
|
2034
|
+
columns?: string[] | undefined;
|
|
2035
|
+
rows?: string[][] | undefined;
|
|
2036
|
+
unit?: "cm" | "in" | undefined;
|
|
2037
|
+
note?: string | undefined;
|
|
2038
|
+
measurements?: {
|
|
2039
|
+
label: string;
|
|
2040
|
+
description: string;
|
|
2041
|
+
}[] | undefined;
|
|
2042
|
+
fabric?: string | undefined;
|
|
2043
|
+
notes?: string[] | undefined;
|
|
2044
|
+
} | undefined;
|
|
2045
|
+
};
|
|
1414
2046
|
})[];
|
|
1415
2047
|
}>;
|
|
1416
2048
|
|
|
@@ -1524,11 +2156,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1524
2156
|
image?: string | undefined;
|
|
1525
2157
|
available?: number | undefined;
|
|
1526
2158
|
}[];
|
|
2159
|
+
description?: string | undefined;
|
|
1527
2160
|
compare_at?: {
|
|
1528
2161
|
amount: number;
|
|
1529
2162
|
currency: string;
|
|
1530
2163
|
} | undefined;
|
|
1531
|
-
description?: string | undefined;
|
|
1532
2164
|
badges?: string[] | undefined;
|
|
1533
2165
|
promo?: {
|
|
1534
2166
|
message: string;
|
|
@@ -1536,8 +2168,16 @@ declare function createClient(options: ClientOptions): {
|
|
|
1536
2168
|
} | undefined;
|
|
1537
2169
|
size_guide?: {
|
|
1538
2170
|
title: string;
|
|
2171
|
+
subtitle?: string | undefined;
|
|
1539
2172
|
columns?: string[] | undefined;
|
|
1540
2173
|
rows?: string[][] | undefined;
|
|
2174
|
+
unit?: "cm" | "in" | undefined;
|
|
2175
|
+
note?: string | undefined;
|
|
2176
|
+
measurements?: {
|
|
2177
|
+
label: string;
|
|
2178
|
+
description: string;
|
|
2179
|
+
}[] | undefined;
|
|
2180
|
+
fabric?: string | undefined;
|
|
1541
2181
|
notes?: string[] | undefined;
|
|
1542
2182
|
} | undefined;
|
|
1543
2183
|
}[];
|
|
@@ -1562,11 +2202,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1562
2202
|
image?: string | undefined;
|
|
1563
2203
|
available?: number | undefined;
|
|
1564
2204
|
}[];
|
|
2205
|
+
description?: string | undefined;
|
|
1565
2206
|
compare_at?: {
|
|
1566
2207
|
amount: number;
|
|
1567
2208
|
currency: string;
|
|
1568
2209
|
} | undefined;
|
|
1569
|
-
description?: string | undefined;
|
|
1570
2210
|
badges?: string[] | undefined;
|
|
1571
2211
|
promo?: {
|
|
1572
2212
|
message: string;
|
|
@@ -1574,8 +2214,16 @@ declare function createClient(options: ClientOptions): {
|
|
|
1574
2214
|
} | undefined;
|
|
1575
2215
|
size_guide?: {
|
|
1576
2216
|
title: string;
|
|
2217
|
+
subtitle?: string | undefined;
|
|
1577
2218
|
columns?: string[] | undefined;
|
|
1578
2219
|
rows?: string[][] | undefined;
|
|
2220
|
+
unit?: "cm" | "in" | undefined;
|
|
2221
|
+
note?: string | undefined;
|
|
2222
|
+
measurements?: {
|
|
2223
|
+
label: string;
|
|
2224
|
+
description: string;
|
|
2225
|
+
}[] | undefined;
|
|
2226
|
+
fabric?: string | undefined;
|
|
1579
2227
|
notes?: string[] | undefined;
|
|
1580
2228
|
} | undefined;
|
|
1581
2229
|
}>;
|
|
@@ -1596,11 +2244,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1596
2244
|
image?: string | undefined;
|
|
1597
2245
|
available?: number | undefined;
|
|
1598
2246
|
}[];
|
|
2247
|
+
description?: string | undefined;
|
|
1599
2248
|
compare_at?: {
|
|
1600
2249
|
amount: number;
|
|
1601
2250
|
currency: string;
|
|
1602
2251
|
} | undefined;
|
|
1603
|
-
description?: string | undefined;
|
|
1604
2252
|
badges?: string[] | undefined;
|
|
1605
2253
|
promo?: {
|
|
1606
2254
|
message: string;
|
|
@@ -1608,8 +2256,16 @@ declare function createClient(options: ClientOptions): {
|
|
|
1608
2256
|
} | undefined;
|
|
1609
2257
|
size_guide?: {
|
|
1610
2258
|
title: string;
|
|
2259
|
+
subtitle?: string | undefined;
|
|
1611
2260
|
columns?: string[] | undefined;
|
|
1612
2261
|
rows?: string[][] | undefined;
|
|
2262
|
+
unit?: "cm" | "in" | undefined;
|
|
2263
|
+
note?: string | undefined;
|
|
2264
|
+
measurements?: {
|
|
2265
|
+
label: string;
|
|
2266
|
+
description: string;
|
|
2267
|
+
}[] | undefined;
|
|
2268
|
+
fabric?: string | undefined;
|
|
1613
2269
|
notes?: string[] | undefined;
|
|
1614
2270
|
} | undefined;
|
|
1615
2271
|
}[];
|
|
@@ -1652,11 +2308,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1652
2308
|
image?: string | undefined;
|
|
1653
2309
|
available?: number | undefined;
|
|
1654
2310
|
}[];
|
|
2311
|
+
description?: string | undefined;
|
|
1655
2312
|
compare_at?: {
|
|
1656
2313
|
amount: number;
|
|
1657
2314
|
currency: string;
|
|
1658
2315
|
} | undefined;
|
|
1659
|
-
description?: string | undefined;
|
|
1660
2316
|
badges?: string[] | undefined;
|
|
1661
2317
|
promo?: {
|
|
1662
2318
|
message: string;
|
|
@@ -1664,8 +2320,16 @@ declare function createClient(options: ClientOptions): {
|
|
|
1664
2320
|
} | undefined;
|
|
1665
2321
|
size_guide?: {
|
|
1666
2322
|
title: string;
|
|
2323
|
+
subtitle?: string | undefined;
|
|
1667
2324
|
columns?: string[] | undefined;
|
|
1668
2325
|
rows?: string[][] | undefined;
|
|
2326
|
+
unit?: "cm" | "in" | undefined;
|
|
2327
|
+
note?: string | undefined;
|
|
2328
|
+
measurements?: {
|
|
2329
|
+
label: string;
|
|
2330
|
+
description: string;
|
|
2331
|
+
}[] | undefined;
|
|
2332
|
+
fabric?: string | undefined;
|
|
1669
2333
|
notes?: string[] | undefined;
|
|
1670
2334
|
} | undefined;
|
|
1671
2335
|
}[];
|
|
@@ -1691,11 +2355,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1691
2355
|
image?: string | undefined;
|
|
1692
2356
|
available?: number | undefined;
|
|
1693
2357
|
}[];
|
|
2358
|
+
description?: string | undefined;
|
|
1694
2359
|
compare_at?: {
|
|
1695
2360
|
amount: number;
|
|
1696
2361
|
currency: string;
|
|
1697
2362
|
} | undefined;
|
|
1698
|
-
description?: string | undefined;
|
|
1699
2363
|
badges?: string[] | undefined;
|
|
1700
2364
|
promo?: {
|
|
1701
2365
|
message: string;
|
|
@@ -1703,8 +2367,16 @@ declare function createClient(options: ClientOptions): {
|
|
|
1703
2367
|
} | undefined;
|
|
1704
2368
|
size_guide?: {
|
|
1705
2369
|
title: string;
|
|
2370
|
+
subtitle?: string | undefined;
|
|
1706
2371
|
columns?: string[] | undefined;
|
|
1707
2372
|
rows?: string[][] | undefined;
|
|
2373
|
+
unit?: "cm" | "in" | undefined;
|
|
2374
|
+
note?: string | undefined;
|
|
2375
|
+
measurements?: {
|
|
2376
|
+
label: string;
|
|
2377
|
+
description: string;
|
|
2378
|
+
}[] | undefined;
|
|
2379
|
+
fabric?: string | undefined;
|
|
1708
2380
|
notes?: string[] | undefined;
|
|
1709
2381
|
} | undefined;
|
|
1710
2382
|
};
|
|
@@ -1713,7 +2385,6 @@ declare function createClient(options: ClientOptions): {
|
|
|
1713
2385
|
kind: "lifestyle_image";
|
|
1714
2386
|
images: string[];
|
|
1715
2387
|
} | {
|
|
1716
|
-
title: string;
|
|
1717
2388
|
kind: "grid";
|
|
1718
2389
|
products: {
|
|
1719
2390
|
sku: string;
|
|
@@ -1731,11 +2402,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
1731
2402
|
image?: string | undefined;
|
|
1732
2403
|
available?: number | undefined;
|
|
1733
2404
|
}[];
|
|
2405
|
+
description?: string | undefined;
|
|
1734
2406
|
compare_at?: {
|
|
1735
2407
|
amount: number;
|
|
1736
2408
|
currency: string;
|
|
1737
2409
|
} | undefined;
|
|
1738
|
-
description?: string | undefined;
|
|
1739
2410
|
badges?: string[] | undefined;
|
|
1740
2411
|
promo?: {
|
|
1741
2412
|
message: string;
|
|
@@ -1743,11 +2414,20 @@ declare function createClient(options: ClientOptions): {
|
|
|
1743
2414
|
} | undefined;
|
|
1744
2415
|
size_guide?: {
|
|
1745
2416
|
title: string;
|
|
2417
|
+
subtitle?: string | undefined;
|
|
1746
2418
|
columns?: string[] | undefined;
|
|
1747
2419
|
rows?: string[][] | undefined;
|
|
2420
|
+
unit?: "cm" | "in" | undefined;
|
|
2421
|
+
note?: string | undefined;
|
|
2422
|
+
measurements?: {
|
|
2423
|
+
label: string;
|
|
2424
|
+
description: string;
|
|
2425
|
+
}[] | undefined;
|
|
2426
|
+
fabric?: string | undefined;
|
|
1748
2427
|
notes?: string[] | undefined;
|
|
1749
2428
|
} | undefined;
|
|
1750
2429
|
}[];
|
|
2430
|
+
title?: string | undefined;
|
|
1751
2431
|
} | {
|
|
1752
2432
|
kind: "review";
|
|
1753
2433
|
quotes: {
|
|
@@ -1769,6 +2449,50 @@ declare function createClient(options: ClientOptions): {
|
|
|
1769
2449
|
code: string;
|
|
1770
2450
|
label: string;
|
|
1771
2451
|
}[];
|
|
2452
|
+
} | {
|
|
2453
|
+
title: string;
|
|
2454
|
+
kind: "product_gallery";
|
|
2455
|
+
product: {
|
|
2456
|
+
sku: string;
|
|
2457
|
+
title: string;
|
|
2458
|
+
category: string;
|
|
2459
|
+
price: {
|
|
2460
|
+
amount: number;
|
|
2461
|
+
currency: string;
|
|
2462
|
+
};
|
|
2463
|
+
media: string[];
|
|
2464
|
+
variants: {
|
|
2465
|
+
sku: string;
|
|
2466
|
+
attributes: Record<string, string>;
|
|
2467
|
+
in_stock: boolean;
|
|
2468
|
+
image?: string | undefined;
|
|
2469
|
+
available?: number | undefined;
|
|
2470
|
+
}[];
|
|
2471
|
+
description?: string | undefined;
|
|
2472
|
+
compare_at?: {
|
|
2473
|
+
amount: number;
|
|
2474
|
+
currency: string;
|
|
2475
|
+
} | undefined;
|
|
2476
|
+
badges?: string[] | undefined;
|
|
2477
|
+
promo?: {
|
|
2478
|
+
message: string;
|
|
2479
|
+
ends_at?: string | undefined;
|
|
2480
|
+
} | undefined;
|
|
2481
|
+
size_guide?: {
|
|
2482
|
+
title: string;
|
|
2483
|
+
subtitle?: string | undefined;
|
|
2484
|
+
columns?: string[] | undefined;
|
|
2485
|
+
rows?: string[][] | undefined;
|
|
2486
|
+
unit?: "cm" | "in" | undefined;
|
|
2487
|
+
note?: string | undefined;
|
|
2488
|
+
measurements?: {
|
|
2489
|
+
label: string;
|
|
2490
|
+
description: string;
|
|
2491
|
+
}[] | undefined;
|
|
2492
|
+
fabric?: string | undefined;
|
|
2493
|
+
notes?: string[] | undefined;
|
|
2494
|
+
} | undefined;
|
|
2495
|
+
};
|
|
1772
2496
|
})[];
|
|
1773
2497
|
}>;
|
|
1774
2498
|
};
|
|
@@ -1810,6 +2534,10 @@ declare function createClient(options: ClientOptions): {
|
|
|
1810
2534
|
image?: string | undefined;
|
|
1811
2535
|
available?: number | undefined;
|
|
1812
2536
|
title?: string | undefined;
|
|
2537
|
+
compare_at_unit_price?: {
|
|
2538
|
+
amount: number;
|
|
2539
|
+
currency: string;
|
|
2540
|
+
} | undefined;
|
|
1813
2541
|
}[];
|
|
1814
2542
|
cart_id: string;
|
|
1815
2543
|
totals: {
|
|
@@ -1829,12 +2557,20 @@ declare function createClient(options: ClientOptions): {
|
|
|
1829
2557
|
amount: number;
|
|
1830
2558
|
currency: string;
|
|
1831
2559
|
};
|
|
2560
|
+
discount?: {
|
|
2561
|
+
amount: number;
|
|
2562
|
+
currency: string;
|
|
2563
|
+
} | undefined;
|
|
1832
2564
|
};
|
|
1833
2565
|
locked?: {
|
|
1834
2566
|
since: string;
|
|
1835
2567
|
reason: "checkout_handoff";
|
|
1836
2568
|
expires_at?: string | undefined;
|
|
1837
2569
|
} | undefined;
|
|
2570
|
+
hold?: {
|
|
2571
|
+
expires_at: string;
|
|
2572
|
+
taken_at: string;
|
|
2573
|
+
} | undefined;
|
|
1838
2574
|
hidden_lines?: ("shipping" | "tax")[] | undefined;
|
|
1839
2575
|
}>;
|
|
1840
2576
|
get: () => Promise<{
|
|
@@ -1854,6 +2590,10 @@ declare function createClient(options: ClientOptions): {
|
|
|
1854
2590
|
image?: string | undefined;
|
|
1855
2591
|
available?: number | undefined;
|
|
1856
2592
|
title?: string | undefined;
|
|
2593
|
+
compare_at_unit_price?: {
|
|
2594
|
+
amount: number;
|
|
2595
|
+
currency: string;
|
|
2596
|
+
} | undefined;
|
|
1857
2597
|
}[];
|
|
1858
2598
|
cart_id: string;
|
|
1859
2599
|
totals: {
|
|
@@ -1873,12 +2613,20 @@ declare function createClient(options: ClientOptions): {
|
|
|
1873
2613
|
amount: number;
|
|
1874
2614
|
currency: string;
|
|
1875
2615
|
};
|
|
2616
|
+
discount?: {
|
|
2617
|
+
amount: number;
|
|
2618
|
+
currency: string;
|
|
2619
|
+
} | undefined;
|
|
1876
2620
|
};
|
|
1877
2621
|
locked?: {
|
|
1878
2622
|
since: string;
|
|
1879
2623
|
reason: "checkout_handoff";
|
|
1880
2624
|
expires_at?: string | undefined;
|
|
1881
2625
|
} | undefined;
|
|
2626
|
+
hold?: {
|
|
2627
|
+
expires_at: string;
|
|
2628
|
+
taken_at: string;
|
|
2629
|
+
} | undefined;
|
|
1882
2630
|
hidden_lines?: ("shipping" | "tax")[] | undefined;
|
|
1883
2631
|
}>;
|
|
1884
2632
|
addItem: (body: AddCartItemRequest) => Promise<{
|
|
@@ -1898,6 +2646,10 @@ declare function createClient(options: ClientOptions): {
|
|
|
1898
2646
|
image?: string | undefined;
|
|
1899
2647
|
available?: number | undefined;
|
|
1900
2648
|
title?: string | undefined;
|
|
2649
|
+
compare_at_unit_price?: {
|
|
2650
|
+
amount: number;
|
|
2651
|
+
currency: string;
|
|
2652
|
+
} | undefined;
|
|
1901
2653
|
}[];
|
|
1902
2654
|
cart_id: string;
|
|
1903
2655
|
totals: {
|
|
@@ -1917,12 +2669,20 @@ declare function createClient(options: ClientOptions): {
|
|
|
1917
2669
|
amount: number;
|
|
1918
2670
|
currency: string;
|
|
1919
2671
|
};
|
|
2672
|
+
discount?: {
|
|
2673
|
+
amount: number;
|
|
2674
|
+
currency: string;
|
|
2675
|
+
} | undefined;
|
|
1920
2676
|
};
|
|
1921
2677
|
locked?: {
|
|
1922
2678
|
since: string;
|
|
1923
2679
|
reason: "checkout_handoff";
|
|
1924
2680
|
expires_at?: string | undefined;
|
|
1925
2681
|
} | undefined;
|
|
2682
|
+
hold?: {
|
|
2683
|
+
expires_at: string;
|
|
2684
|
+
taken_at: string;
|
|
2685
|
+
} | undefined;
|
|
1926
2686
|
hidden_lines?: ("shipping" | "tax")[] | undefined;
|
|
1927
2687
|
}>;
|
|
1928
2688
|
updateItem: (sku: string, body: UpdateCartItemRequest) => Promise<{
|
|
@@ -1942,6 +2702,10 @@ declare function createClient(options: ClientOptions): {
|
|
|
1942
2702
|
image?: string | undefined;
|
|
1943
2703
|
available?: number | undefined;
|
|
1944
2704
|
title?: string | undefined;
|
|
2705
|
+
compare_at_unit_price?: {
|
|
2706
|
+
amount: number;
|
|
2707
|
+
currency: string;
|
|
2708
|
+
} | undefined;
|
|
1945
2709
|
}[];
|
|
1946
2710
|
cart_id: string;
|
|
1947
2711
|
totals: {
|
|
@@ -1961,12 +2725,20 @@ declare function createClient(options: ClientOptions): {
|
|
|
1961
2725
|
amount: number;
|
|
1962
2726
|
currency: string;
|
|
1963
2727
|
};
|
|
2728
|
+
discount?: {
|
|
2729
|
+
amount: number;
|
|
2730
|
+
currency: string;
|
|
2731
|
+
} | undefined;
|
|
1964
2732
|
};
|
|
1965
2733
|
locked?: {
|
|
1966
2734
|
since: string;
|
|
1967
2735
|
reason: "checkout_handoff";
|
|
1968
2736
|
expires_at?: string | undefined;
|
|
1969
2737
|
} | undefined;
|
|
2738
|
+
hold?: {
|
|
2739
|
+
expires_at: string;
|
|
2740
|
+
taken_at: string;
|
|
2741
|
+
} | undefined;
|
|
1970
2742
|
hidden_lines?: ("shipping" | "tax")[] | undefined;
|
|
1971
2743
|
}>;
|
|
1972
2744
|
removeItem: (sku: string) => Promise<{
|
|
@@ -1986,6 +2758,10 @@ declare function createClient(options: ClientOptions): {
|
|
|
1986
2758
|
image?: string | undefined;
|
|
1987
2759
|
available?: number | undefined;
|
|
1988
2760
|
title?: string | undefined;
|
|
2761
|
+
compare_at_unit_price?: {
|
|
2762
|
+
amount: number;
|
|
2763
|
+
currency: string;
|
|
2764
|
+
} | undefined;
|
|
1989
2765
|
}[];
|
|
1990
2766
|
cart_id: string;
|
|
1991
2767
|
totals: {
|
|
@@ -2005,54 +2781,155 @@ declare function createClient(options: ClientOptions): {
|
|
|
2005
2781
|
amount: number;
|
|
2006
2782
|
currency: string;
|
|
2007
2783
|
};
|
|
2784
|
+
discount?: {
|
|
2785
|
+
amount: number;
|
|
2786
|
+
currency: string;
|
|
2787
|
+
} | undefined;
|
|
2008
2788
|
};
|
|
2009
2789
|
locked?: {
|
|
2010
2790
|
since: string;
|
|
2011
2791
|
reason: "checkout_handoff";
|
|
2012
2792
|
expires_at?: string | undefined;
|
|
2013
2793
|
} | undefined;
|
|
2014
|
-
|
|
2794
|
+
hold?: {
|
|
2795
|
+
expires_at: string;
|
|
2796
|
+
taken_at: string;
|
|
2797
|
+
} | undefined;
|
|
2798
|
+
hidden_lines?: ("shipping" | "tax")[] | undefined;
|
|
2799
|
+
}>;
|
|
2800
|
+
/**
|
|
2801
|
+
* Hand the cart to DAZN checkout and get the URL to send the fan to.
|
|
2802
|
+
*
|
|
2803
|
+
* The URL is opaque — redirect to it, never parse it. This is the last call in our
|
|
2804
|
+
* journey; payment, order and confirmation all happen on DAZN.
|
|
2805
|
+
*/
|
|
2806
|
+
handoff: () => Promise<{
|
|
2807
|
+
checkout_url: string;
|
|
2808
|
+
}>;
|
|
2809
|
+
};
|
|
2810
|
+
/**
|
|
2811
|
+
* The fan's own orders (ADR-0015). Session-scoped: there is no way to ask for
|
|
2812
|
+
* someone else's, because there is no parameter that names a customer.
|
|
2813
|
+
*/
|
|
2814
|
+
stockAlerts: {
|
|
2815
|
+
/** "Remind me when available" — idempotent per SKU for the session's principal. */
|
|
2816
|
+
create: (body: StockAlertRequest) => Promise<{
|
|
2817
|
+
sku: string;
|
|
2818
|
+
created_at: string;
|
|
2819
|
+
notified_at?: string | undefined;
|
|
2820
|
+
}>;
|
|
2821
|
+
};
|
|
2822
|
+
orders: {
|
|
2823
|
+
list: () => Promise<{
|
|
2824
|
+
orders: {
|
|
2825
|
+
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2826
|
+
currency: string;
|
|
2827
|
+
total: {
|
|
2828
|
+
amount: number;
|
|
2829
|
+
currency: string;
|
|
2830
|
+
};
|
|
2831
|
+
order_ref: string;
|
|
2832
|
+
placed_at: string;
|
|
2833
|
+
headline: string;
|
|
2834
|
+
item_count: number;
|
|
2835
|
+
image?: string | undefined;
|
|
2836
|
+
images?: string[] | undefined;
|
|
2837
|
+
}[];
|
|
2838
|
+
}>;
|
|
2839
|
+
get: (orderRef: string) => Promise<{
|
|
2840
|
+
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2841
|
+
currency: string;
|
|
2842
|
+
items: {
|
|
2843
|
+
sku: string;
|
|
2844
|
+
qty: number;
|
|
2845
|
+
unit_price: {
|
|
2846
|
+
amount: number;
|
|
2847
|
+
currency: string;
|
|
2848
|
+
};
|
|
2849
|
+
line_total: {
|
|
2850
|
+
amount: number;
|
|
2851
|
+
currency: string;
|
|
2852
|
+
};
|
|
2853
|
+
line_ref: string;
|
|
2854
|
+
cancelled_qty: number;
|
|
2855
|
+
refunded_qty: number;
|
|
2856
|
+
attributes?: Record<string, string> | undefined;
|
|
2857
|
+
image?: string | undefined;
|
|
2858
|
+
title?: string | undefined;
|
|
2859
|
+
compare_at_unit_price?: {
|
|
2860
|
+
amount: number;
|
|
2861
|
+
currency: string;
|
|
2862
|
+
} | undefined;
|
|
2863
|
+
}[];
|
|
2864
|
+
totals: {
|
|
2865
|
+
shipping: {
|
|
2866
|
+
amount: number;
|
|
2867
|
+
currency: string;
|
|
2868
|
+
};
|
|
2869
|
+
tax: {
|
|
2870
|
+
amount: number;
|
|
2871
|
+
currency: string;
|
|
2872
|
+
};
|
|
2873
|
+
items: {
|
|
2874
|
+
amount: number;
|
|
2875
|
+
currency: string;
|
|
2876
|
+
};
|
|
2877
|
+
grand_total: {
|
|
2878
|
+
amount: number;
|
|
2879
|
+
currency: string;
|
|
2880
|
+
};
|
|
2881
|
+
discount?: {
|
|
2882
|
+
amount: number;
|
|
2883
|
+
currency: string;
|
|
2884
|
+
} | undefined;
|
|
2885
|
+
};
|
|
2886
|
+
order_ref: string;
|
|
2887
|
+
placed_at: string;
|
|
2888
|
+
ship_to: {
|
|
2889
|
+
country: string;
|
|
2890
|
+
name: string;
|
|
2891
|
+
line1: string;
|
|
2892
|
+
city: string;
|
|
2893
|
+
postcode: string;
|
|
2894
|
+
line2?: string | undefined;
|
|
2895
|
+
region?: string | undefined;
|
|
2896
|
+
};
|
|
2897
|
+
headline: string;
|
|
2898
|
+
progress: {
|
|
2899
|
+
label: string;
|
|
2900
|
+
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2901
|
+
current: boolean;
|
|
2902
|
+
at?: string | undefined;
|
|
2903
|
+
}[];
|
|
2904
|
+
email?: string | undefined;
|
|
2905
|
+
payment?: {
|
|
2906
|
+
brand: string;
|
|
2907
|
+
last4?: string | undefined;
|
|
2908
|
+
} | undefined;
|
|
2909
|
+
returns?: {
|
|
2910
|
+
status: "reported" | "package_received" | "completed";
|
|
2911
|
+
return_ref: string;
|
|
2912
|
+
reported_at: string;
|
|
2913
|
+
}[] | undefined;
|
|
2914
|
+
estimated_delivery?: {
|
|
2915
|
+
from: string;
|
|
2916
|
+
to: string;
|
|
2917
|
+
} | undefined;
|
|
2918
|
+
tracking?: {
|
|
2919
|
+
carrier: string;
|
|
2920
|
+
url?: string | undefined;
|
|
2921
|
+
reference?: string | undefined;
|
|
2922
|
+
} | undefined;
|
|
2923
|
+
can_cancel?: boolean | undefined;
|
|
2924
|
+
can_return?: boolean | undefined;
|
|
2015
2925
|
}>;
|
|
2016
2926
|
/**
|
|
2017
|
-
*
|
|
2927
|
+
* Ask for the order to be cancelled (ADR-0024). Returns the order as it now stands.
|
|
2018
2928
|
*
|
|
2019
|
-
*
|
|
2020
|
-
*
|
|
2929
|
+
* A request, not a refund: DAZN are merchant of record and the money is theirs to
|
|
2930
|
+
* move. This records the fan's ask and hands it on.
|
|
2021
2931
|
*/
|
|
2022
|
-
|
|
2023
|
-
checkout_url: string;
|
|
2024
|
-
}>;
|
|
2025
|
-
};
|
|
2026
|
-
/**
|
|
2027
|
-
* The fan's own orders (ADR-0015). Session-scoped: there is no way to ask for
|
|
2028
|
-
* someone else's, because there is no parameter that names a customer.
|
|
2029
|
-
*/
|
|
2030
|
-
stockAlerts: {
|
|
2031
|
-
/** "Remind me when available" — idempotent per SKU for the session's principal. */
|
|
2032
|
-
create: (body: StockAlertRequest) => Promise<{
|
|
2033
|
-
sku: string;
|
|
2034
|
-
created_at: string;
|
|
2035
|
-
notified_at?: string | undefined;
|
|
2036
|
-
}>;
|
|
2037
|
-
};
|
|
2038
|
-
orders: {
|
|
2039
|
-
list: () => Promise<{
|
|
2040
|
-
orders: {
|
|
2041
|
-
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2042
|
-
currency: string;
|
|
2043
|
-
total: {
|
|
2044
|
-
amount: number;
|
|
2045
|
-
currency: string;
|
|
2046
|
-
};
|
|
2047
|
-
order_ref: string;
|
|
2048
|
-
placed_at: string;
|
|
2049
|
-
headline: string;
|
|
2050
|
-
item_count: number;
|
|
2051
|
-
image?: string | undefined;
|
|
2052
|
-
images?: string[] | undefined;
|
|
2053
|
-
}[];
|
|
2054
|
-
}>;
|
|
2055
|
-
get: (orderRef: string) => Promise<{
|
|
2932
|
+
requestCancellation: (orderRef: string, body: RequestCancellationRequest) => Promise<{
|
|
2056
2933
|
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2057
2934
|
currency: string;
|
|
2058
2935
|
items: {
|
|
@@ -2122,6 +2999,11 @@ declare function createClient(options: ClientOptions): {
|
|
|
2122
2999
|
brand: string;
|
|
2123
3000
|
last4?: string | undefined;
|
|
2124
3001
|
} | undefined;
|
|
3002
|
+
returns?: {
|
|
3003
|
+
status: "reported" | "package_received" | "completed";
|
|
3004
|
+
return_ref: string;
|
|
3005
|
+
reported_at: string;
|
|
3006
|
+
}[] | undefined;
|
|
2125
3007
|
estimated_delivery?: {
|
|
2126
3008
|
from: string;
|
|
2127
3009
|
to: string;
|
|
@@ -2131,6 +3013,73 @@ declare function createClient(options: ClientOptions): {
|
|
|
2131
3013
|
url?: string | undefined;
|
|
2132
3014
|
reference?: string | undefined;
|
|
2133
3015
|
} | undefined;
|
|
3016
|
+
can_cancel?: boolean | undefined;
|
|
3017
|
+
can_return?: boolean | undefined;
|
|
3018
|
+
}>;
|
|
3019
|
+
/** Report items coming back, and get the return — including its label when ready. */
|
|
3020
|
+
createReturn: (orderRef: string, body: CreateReturnRequest) => Promise<{
|
|
3021
|
+
status: "reported" | "package_received" | "completed";
|
|
3022
|
+
items: {
|
|
3023
|
+
sku: string;
|
|
3024
|
+
qty: number;
|
|
3025
|
+
unit_price: {
|
|
3026
|
+
amount: number;
|
|
3027
|
+
currency: string;
|
|
3028
|
+
};
|
|
3029
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3030
|
+
line_ref: string;
|
|
3031
|
+
attributes?: Record<string, string> | undefined;
|
|
3032
|
+
image?: string | undefined;
|
|
3033
|
+
title?: string | undefined;
|
|
3034
|
+
compare_at_unit_price?: {
|
|
3035
|
+
amount: number;
|
|
3036
|
+
currency: string;
|
|
3037
|
+
} | undefined;
|
|
3038
|
+
}[];
|
|
3039
|
+
order_ref: string;
|
|
3040
|
+
return_ref: string;
|
|
3041
|
+
reported_at: string;
|
|
3042
|
+
progress: {
|
|
3043
|
+
label: string;
|
|
3044
|
+
step: "reported" | "package_received" | "completed";
|
|
3045
|
+
current: boolean;
|
|
3046
|
+
at?: string | undefined;
|
|
3047
|
+
}[];
|
|
3048
|
+
label_url?: string | undefined;
|
|
3049
|
+
label_email?: string | undefined;
|
|
3050
|
+
}>;
|
|
3051
|
+
};
|
|
3052
|
+
returns: {
|
|
3053
|
+
get: (returnRef: string) => Promise<{
|
|
3054
|
+
status: "reported" | "package_received" | "completed";
|
|
3055
|
+
items: {
|
|
3056
|
+
sku: string;
|
|
3057
|
+
qty: number;
|
|
3058
|
+
unit_price: {
|
|
3059
|
+
amount: number;
|
|
3060
|
+
currency: string;
|
|
3061
|
+
};
|
|
3062
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3063
|
+
line_ref: string;
|
|
3064
|
+
attributes?: Record<string, string> | undefined;
|
|
3065
|
+
image?: string | undefined;
|
|
3066
|
+
title?: string | undefined;
|
|
3067
|
+
compare_at_unit_price?: {
|
|
3068
|
+
amount: number;
|
|
3069
|
+
currency: string;
|
|
3070
|
+
} | undefined;
|
|
3071
|
+
}[];
|
|
3072
|
+
order_ref: string;
|
|
3073
|
+
return_ref: string;
|
|
3074
|
+
reported_at: string;
|
|
3075
|
+
progress: {
|
|
3076
|
+
label: string;
|
|
3077
|
+
step: "reported" | "package_received" | "completed";
|
|
3078
|
+
current: boolean;
|
|
3079
|
+
at?: string | undefined;
|
|
3080
|
+
}[];
|
|
3081
|
+
label_url?: string | undefined;
|
|
3082
|
+
label_email?: string | undefined;
|
|
2134
3083
|
}>;
|
|
2135
3084
|
};
|
|
2136
3085
|
/**
|
|
@@ -2180,6 +3129,37 @@ declare function createClient(options: ClientOptions): {
|
|
|
2180
3129
|
};
|
|
2181
3130
|
};
|
|
2182
3131
|
|
|
3132
|
+
/** `POST /v1/orders/{order_ref}/returns` */
|
|
3133
|
+
declare const CreateReturnRequest: z.ZodObject<{
|
|
3134
|
+
items: z.ZodArray<z.ZodObject<{
|
|
3135
|
+
line_ref: z.ZodString;
|
|
3136
|
+
qty: z.ZodNumber;
|
|
3137
|
+
reason: z.ZodEnum<["too_large", "too_small", "arrived_too_late", "item_damaged", "not_as_described", "changed_my_mind"]>;
|
|
3138
|
+
}, "strip", z.ZodTypeAny, {
|
|
3139
|
+
qty: number;
|
|
3140
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3141
|
+
line_ref: string;
|
|
3142
|
+
}, {
|
|
3143
|
+
qty: number;
|
|
3144
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3145
|
+
line_ref: string;
|
|
3146
|
+
}>, "many">;
|
|
3147
|
+
}, "strict", z.ZodTypeAny, {
|
|
3148
|
+
items: {
|
|
3149
|
+
qty: number;
|
|
3150
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3151
|
+
line_ref: string;
|
|
3152
|
+
}[];
|
|
3153
|
+
}, {
|
|
3154
|
+
items: {
|
|
3155
|
+
qty: number;
|
|
3156
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
3157
|
+
line_ref: string;
|
|
3158
|
+
}[];
|
|
3159
|
+
}>;
|
|
3160
|
+
|
|
3161
|
+
declare type CreateReturnRequest = z.infer<typeof CreateReturnRequest>;
|
|
3162
|
+
|
|
2183
3163
|
/**
|
|
2184
3164
|
* The session seam, implemented once at the transport level.
|
|
2185
3165
|
*
|
|
@@ -2312,7 +3292,7 @@ export declare interface EmptyStateProps {
|
|
|
2312
3292
|
* | invalid_request | 400 | malformed body or missing field |
|
|
2313
3293
|
* | unauthorized | 401 | missing/invalid session or credentials |
|
|
2314
3294
|
* | out_of_stock | 409 | requested qty exceeds available stock |
|
|
2315
|
-
* | cart_locked | 409 |
|
|
3295
|
+
* | cart_locked | 409 | RETIRED (ADR-0025); defined, never raised |
|
|
2316
3296
|
* | sku_not_found | 404 | a referenced SKU/product does not exist |
|
|
2317
3297
|
* | category_not_found | 404 | a referenced category code does not exist |
|
|
2318
3298
|
* | amount_mismatch | 422 | totals do not match the authorised amount |
|
|
@@ -2335,7 +3315,7 @@ declare type ErrorCode = z.infer<typeof ErrorCode>;
|
|
|
2335
3315
|
* | invalid_request | 400 | malformed body or missing field |
|
|
2336
3316
|
* | unauthorized | 401 | missing/invalid session or credentials |
|
|
2337
3317
|
* | out_of_stock | 409 | requested qty exceeds available stock |
|
|
2338
|
-
* | cart_locked | 409 |
|
|
3318
|
+
* | cart_locked | 409 | RETIRED (ADR-0025); defined, never raised |
|
|
2339
3319
|
* | sku_not_found | 404 | a referenced SKU/product does not exist |
|
|
2340
3320
|
* | category_not_found | 404 | a referenced category code does not exist |
|
|
2341
3321
|
* | amount_mismatch | 422 | totals do not match the authorised amount |
|
|
@@ -2391,6 +3371,11 @@ export declare function ExploreList({ title, links }: {
|
|
|
2391
3371
|
links: ExploreLink[];
|
|
2392
3372
|
}): JSX.Element;
|
|
2393
3373
|
|
|
3374
|
+
/** Why an item is coming back, from Figma's `Reason for return` sheet. */
|
|
3375
|
+
declare const FanReturnReason: z.ZodEnum<["too_large", "too_small", "arrived_too_late", "item_damaged", "not_as_described", "changed_my_mind"]>;
|
|
3376
|
+
|
|
3377
|
+
declare type FanReturnReason = z.infer<typeof FanReturnReason>;
|
|
3378
|
+
|
|
2394
3379
|
/** Horizontal chip filter bar for the PLP. Chips are toggle buttons. */
|
|
2395
3380
|
export declare function FilterBar({ options, active, onToggle, onClear }: FilterBarProps): JSX.Element;
|
|
2396
3381
|
|
|
@@ -2579,6 +3564,9 @@ export declare type OnEvent = (event: ShopEvent) => void;
|
|
|
2579
3564
|
* anyone who opens the email an hour later. So the two screens are two routes, and the one
|
|
2580
3565
|
* that navigates here is the one that knows — the checkout that has just finished.
|
|
2581
3566
|
*
|
|
3567
|
+
* Below the widget the two are the same three blocks, and they are the same components:
|
|
3568
|
+
* see `OrderReceipt`.
|
|
3569
|
+
*
|
|
2582
3570
|
* Read-only, like tracking. The frame's footer is "Done" rather than "Cancel order"
|
|
2583
3571
|
* precisely because cancellation is DAZN's under ADR-0008 and ADR-0017.
|
|
2584
3572
|
*/
|
|
@@ -2599,6 +3587,500 @@ export declare interface OrderConfirmationViewProps {
|
|
|
2599
3587
|
onDone?: () => void;
|
|
2600
3588
|
}
|
|
2601
3589
|
|
|
3590
|
+
/**
|
|
3591
|
+
* `GET /v1/orders/{order_ref}` — one order in full.
|
|
3592
|
+
*
|
|
3593
|
+
* **`estimated_delivery` is a window, not a date, and it is advisory.** It comes from the
|
|
3594
|
+
* fulfilment side rather than from DAZN, so it reflects when the warehouse expects to have
|
|
3595
|
+
* it delivered. Absent when nothing can be estimated — which is honest, and better than a
|
|
3596
|
+
* date the fan will hold us to.
|
|
3597
|
+
*/
|
|
3598
|
+
declare const OrderDetail: z.ZodObject<{
|
|
3599
|
+
order_ref: z.ZodBranded<z.ZodString, "OrderRef">;
|
|
3600
|
+
placed_at: z.ZodString;
|
|
3601
|
+
currency: z.ZodString;
|
|
3602
|
+
/**
|
|
3603
|
+
* Where the order confirmation went, for the confirmation screen's "We've sent a
|
|
3604
|
+
* confirmation to ..." line. The address DAZN gave us at intake, echoed back.
|
|
3605
|
+
*
|
|
3606
|
+
* Returned only on the detail read, which is already scoped to the order's own owner,
|
|
3607
|
+
* and never on the list. It is PII: render it, and keep it out of logs and analytics
|
|
3608
|
+
* like every other address in this package.
|
|
3609
|
+
*
|
|
3610
|
+
* Optional because intake's is: a market whose carrier takes no email places orders
|
|
3611
|
+
* without one. Absent means the line is not drawn, never that a placeholder is.
|
|
3612
|
+
*/
|
|
3613
|
+
email: z.ZodOptional<z.ZodString>;
|
|
3614
|
+
status: z.ZodEnum<["packing", "on_its_way", "out_for_delivery", "delivered", "cancelled"]>;
|
|
3615
|
+
headline: z.ZodString;
|
|
3616
|
+
estimated_delivery: z.ZodOptional<z.ZodObject<{
|
|
3617
|
+
from: z.ZodString;
|
|
3618
|
+
to: z.ZodString;
|
|
3619
|
+
}, "strip", z.ZodTypeAny, {
|
|
3620
|
+
from: string;
|
|
3621
|
+
to: string;
|
|
3622
|
+
}, {
|
|
3623
|
+
from: string;
|
|
3624
|
+
to: string;
|
|
3625
|
+
}>>;
|
|
3626
|
+
progress: z.ZodArray<z.ZodObject<{
|
|
3627
|
+
step: z.ZodEnum<["packing", "on_its_way", "out_for_delivery", "delivered", "cancelled"]>;
|
|
3628
|
+
/** Ready-to-render label for the step, localised with the rest of the response. */
|
|
3629
|
+
label: z.ZodString;
|
|
3630
|
+
/** When the step completed. Absent = not reached yet. */
|
|
3631
|
+
at: z.ZodOptional<z.ZodString>;
|
|
3632
|
+
/** Exactly one entry is `current`; every earlier one is complete. */
|
|
3633
|
+
current: z.ZodBoolean;
|
|
3634
|
+
}, "strip", z.ZodTypeAny, {
|
|
3635
|
+
label: string;
|
|
3636
|
+
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
3637
|
+
current: boolean;
|
|
3638
|
+
at?: string | undefined;
|
|
3639
|
+
}, {
|
|
3640
|
+
label: string;
|
|
3641
|
+
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
3642
|
+
current: boolean;
|
|
3643
|
+
at?: string | undefined;
|
|
3644
|
+
}>, "many">;
|
|
3645
|
+
tracking: z.ZodOptional<z.ZodObject<{
|
|
3646
|
+
carrier: z.ZodString;
|
|
3647
|
+
reference: z.ZodOptional<z.ZodString>;
|
|
3648
|
+
url: z.ZodOptional<z.ZodString>;
|
|
3649
|
+
}, "strip", z.ZodTypeAny, {
|
|
3650
|
+
carrier: string;
|
|
3651
|
+
url?: string | undefined;
|
|
3652
|
+
reference?: string | undefined;
|
|
3653
|
+
}, {
|
|
3654
|
+
carrier: string;
|
|
3655
|
+
url?: string | undefined;
|
|
3656
|
+
reference?: string | undefined;
|
|
3657
|
+
}>>;
|
|
3658
|
+
items: z.ZodArray<z.ZodObject<{
|
|
3659
|
+
line_ref: z.ZodString;
|
|
3660
|
+
sku: z.ZodString;
|
|
3661
|
+
qty: z.ZodNumber;
|
|
3662
|
+
unit_price: z.ZodObject<{
|
|
3663
|
+
amount: z.ZodNumber;
|
|
3664
|
+
currency: z.ZodString;
|
|
3665
|
+
}, "strict", z.ZodTypeAny, {
|
|
3666
|
+
amount: number;
|
|
3667
|
+
currency: string;
|
|
3668
|
+
}, {
|
|
3669
|
+
amount: number;
|
|
3670
|
+
currency: string;
|
|
3671
|
+
}>;
|
|
3672
|
+
line_total: z.ZodObject<{
|
|
3673
|
+
amount: z.ZodNumber;
|
|
3674
|
+
currency: z.ZodString;
|
|
3675
|
+
}, "strict", z.ZodTypeAny, {
|
|
3676
|
+
amount: number;
|
|
3677
|
+
currency: string;
|
|
3678
|
+
}, {
|
|
3679
|
+
amount: number;
|
|
3680
|
+
currency: string;
|
|
3681
|
+
}>;
|
|
3682
|
+
/**
|
|
3683
|
+
* The undiscounted per-unit price, echoed from intake. Display only.
|
|
3684
|
+
*
|
|
3685
|
+
* Drawn as a struck-through price with a saving badge beside what was paid. Absent
|
|
3686
|
+
* means the line was sold at full price, which is the ordinary case; see `OrderLine`
|
|
3687
|
+
* for why this is DAZN's figure and not our catalogue's.
|
|
3688
|
+
*/
|
|
3689
|
+
compare_at_unit_price: z.ZodOptional<z.ZodObject<{
|
|
3690
|
+
amount: z.ZodNumber;
|
|
3691
|
+
currency: z.ZodString;
|
|
3692
|
+
}, "strict", z.ZodTypeAny, {
|
|
3693
|
+
amount: number;
|
|
3694
|
+
currency: string;
|
|
3695
|
+
}, {
|
|
3696
|
+
amount: number;
|
|
3697
|
+
currency: string;
|
|
3698
|
+
}>>;
|
|
3699
|
+
title: z.ZodOptional<z.ZodString>;
|
|
3700
|
+
image: z.ZodOptional<z.ZodString>;
|
|
3701
|
+
/** Variant attributes, e.g. `{ size: 'M' }`. Same shape as everywhere else. */
|
|
3702
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
3703
|
+
/**
|
|
3704
|
+
* Units of this line cancelled or refunded so far. Present so a partially cancelled
|
|
3705
|
+
* order reads honestly instead of showing the original quantity as though nothing
|
|
3706
|
+
* happened. Zero is the normal case and is sent rather than omitted.
|
|
3707
|
+
*/
|
|
3708
|
+
cancelled_qty: z.ZodNumber;
|
|
3709
|
+
refunded_qty: z.ZodNumber;
|
|
3710
|
+
}, "strip", z.ZodTypeAny, {
|
|
3711
|
+
sku: string;
|
|
3712
|
+
qty: number;
|
|
3713
|
+
unit_price: {
|
|
3714
|
+
amount: number;
|
|
3715
|
+
currency: string;
|
|
3716
|
+
};
|
|
3717
|
+
line_total: {
|
|
3718
|
+
amount: number;
|
|
3719
|
+
currency: string;
|
|
3720
|
+
};
|
|
3721
|
+
line_ref: string;
|
|
3722
|
+
cancelled_qty: number;
|
|
3723
|
+
refunded_qty: number;
|
|
3724
|
+
compare_at_unit_price?: {
|
|
3725
|
+
amount: number;
|
|
3726
|
+
currency: string;
|
|
3727
|
+
} | undefined;
|
|
3728
|
+
title?: string | undefined;
|
|
3729
|
+
image?: string | undefined;
|
|
3730
|
+
attributes?: Record<string, string> | undefined;
|
|
3731
|
+
}, {
|
|
3732
|
+
sku: string;
|
|
3733
|
+
qty: number;
|
|
3734
|
+
unit_price: {
|
|
3735
|
+
amount: number;
|
|
3736
|
+
currency: string;
|
|
3737
|
+
};
|
|
3738
|
+
line_total: {
|
|
3739
|
+
amount: number;
|
|
3740
|
+
currency: string;
|
|
3741
|
+
};
|
|
3742
|
+
line_ref: string;
|
|
3743
|
+
cancelled_qty: number;
|
|
3744
|
+
refunded_qty: number;
|
|
3745
|
+
compare_at_unit_price?: {
|
|
3746
|
+
amount: number;
|
|
3747
|
+
currency: string;
|
|
3748
|
+
} | undefined;
|
|
3749
|
+
title?: string | undefined;
|
|
3750
|
+
image?: string | undefined;
|
|
3751
|
+
attributes?: Record<string, string> | undefined;
|
|
3752
|
+
}>, "many">;
|
|
3753
|
+
ship_to: z.ZodObject<{
|
|
3754
|
+
name: z.ZodString;
|
|
3755
|
+
line1: z.ZodString;
|
|
3756
|
+
line2: z.ZodOptional<z.ZodString>;
|
|
3757
|
+
city: z.ZodString;
|
|
3758
|
+
region: z.ZodOptional<z.ZodString>;
|
|
3759
|
+
postcode: z.ZodString;
|
|
3760
|
+
country: z.ZodString;
|
|
3761
|
+
}, "strip", z.ZodTypeAny, {
|
|
3762
|
+
country: string;
|
|
3763
|
+
name: string;
|
|
3764
|
+
line1: string;
|
|
3765
|
+
city: string;
|
|
3766
|
+
postcode: string;
|
|
3767
|
+
line2?: string | undefined;
|
|
3768
|
+
region?: string | undefined;
|
|
3769
|
+
}, {
|
|
3770
|
+
country: string;
|
|
3771
|
+
name: string;
|
|
3772
|
+
line1: string;
|
|
3773
|
+
city: string;
|
|
3774
|
+
postcode: string;
|
|
3775
|
+
line2?: string | undefined;
|
|
3776
|
+
region?: string | undefined;
|
|
3777
|
+
}>;
|
|
3778
|
+
payment: z.ZodOptional<z.ZodObject<{
|
|
3779
|
+
brand: z.ZodString;
|
|
3780
|
+
last4: z.ZodOptional<z.ZodString>;
|
|
3781
|
+
}, "strip", z.ZodTypeAny, {
|
|
3782
|
+
brand: string;
|
|
3783
|
+
last4?: string | undefined;
|
|
3784
|
+
}, {
|
|
3785
|
+
brand: string;
|
|
3786
|
+
last4?: string | undefined;
|
|
3787
|
+
}>>;
|
|
3788
|
+
/** Exactly what DAZN charged, echoed. Never recomputed here. */
|
|
3789
|
+
totals: z.ZodObject<{
|
|
3790
|
+
items: z.ZodObject<{
|
|
3791
|
+
amount: z.ZodNumber;
|
|
3792
|
+
currency: z.ZodString;
|
|
3793
|
+
}, "strict", z.ZodTypeAny, {
|
|
3794
|
+
amount: number;
|
|
3795
|
+
currency: string;
|
|
3796
|
+
}, {
|
|
3797
|
+
amount: number;
|
|
3798
|
+
currency: string;
|
|
3799
|
+
}>;
|
|
3800
|
+
shipping: z.ZodObject<{
|
|
3801
|
+
amount: z.ZodNumber;
|
|
3802
|
+
currency: z.ZodString;
|
|
3803
|
+
}, "strict", z.ZodTypeAny, {
|
|
3804
|
+
amount: number;
|
|
3805
|
+
currency: string;
|
|
3806
|
+
}, {
|
|
3807
|
+
amount: number;
|
|
3808
|
+
currency: string;
|
|
3809
|
+
}>;
|
|
3810
|
+
tax: z.ZodObject<{
|
|
3811
|
+
amount: z.ZodNumber;
|
|
3812
|
+
currency: z.ZodString;
|
|
3813
|
+
}, "strict", z.ZodTypeAny, {
|
|
3814
|
+
amount: number;
|
|
3815
|
+
currency: string;
|
|
3816
|
+
}, {
|
|
3817
|
+
amount: number;
|
|
3818
|
+
currency: string;
|
|
3819
|
+
}>;
|
|
3820
|
+
discount: z.ZodOptional<z.ZodObject<{
|
|
3821
|
+
amount: z.ZodNumber;
|
|
3822
|
+
currency: z.ZodString;
|
|
3823
|
+
}, "strict", z.ZodTypeAny, {
|
|
3824
|
+
amount: number;
|
|
3825
|
+
currency: string;
|
|
3826
|
+
}, {
|
|
3827
|
+
amount: number;
|
|
3828
|
+
currency: string;
|
|
3829
|
+
}>>;
|
|
3830
|
+
grand_total: z.ZodObject<{
|
|
3831
|
+
amount: z.ZodNumber;
|
|
3832
|
+
currency: z.ZodString;
|
|
3833
|
+
}, "strict", z.ZodTypeAny, {
|
|
3834
|
+
amount: number;
|
|
3835
|
+
currency: string;
|
|
3836
|
+
}, {
|
|
3837
|
+
amount: number;
|
|
3838
|
+
currency: string;
|
|
3839
|
+
}>;
|
|
3840
|
+
}, "strip", z.ZodTypeAny, {
|
|
3841
|
+
shipping: {
|
|
3842
|
+
amount: number;
|
|
3843
|
+
currency: string;
|
|
3844
|
+
};
|
|
3845
|
+
tax: {
|
|
3846
|
+
amount: number;
|
|
3847
|
+
currency: string;
|
|
3848
|
+
};
|
|
3849
|
+
items: {
|
|
3850
|
+
amount: number;
|
|
3851
|
+
currency: string;
|
|
3852
|
+
};
|
|
3853
|
+
grand_total: {
|
|
3854
|
+
amount: number;
|
|
3855
|
+
currency: string;
|
|
3856
|
+
};
|
|
3857
|
+
discount?: {
|
|
3858
|
+
amount: number;
|
|
3859
|
+
currency: string;
|
|
3860
|
+
} | undefined;
|
|
3861
|
+
}, {
|
|
3862
|
+
shipping: {
|
|
3863
|
+
amount: number;
|
|
3864
|
+
currency: string;
|
|
3865
|
+
};
|
|
3866
|
+
tax: {
|
|
3867
|
+
amount: number;
|
|
3868
|
+
currency: string;
|
|
3869
|
+
};
|
|
3870
|
+
items: {
|
|
3871
|
+
amount: number;
|
|
3872
|
+
currency: string;
|
|
3873
|
+
};
|
|
3874
|
+
grand_total: {
|
|
3875
|
+
amount: number;
|
|
3876
|
+
currency: string;
|
|
3877
|
+
};
|
|
3878
|
+
discount?: {
|
|
3879
|
+
amount: number;
|
|
3880
|
+
currency: string;
|
|
3881
|
+
} | undefined;
|
|
3882
|
+
}>;
|
|
3883
|
+
/**
|
|
3884
|
+
* Whether this order can still be cancelled, and whether it can be returned.
|
|
3885
|
+
*
|
|
3886
|
+
* **Decided by the engine and sent, not derived by the consumer from `status`.** The
|
|
3887
|
+
* rule involves a dispatch cut-off and a returns window that a screen has no way of
|
|
3888
|
+
* knowing, and two consumers deriving it independently would disagree the day either
|
|
3889
|
+
* moves. Absent means no — an older engine that has never heard of either draws
|
|
3890
|
+
* neither button, which is the safe way round for an action that cannot be undone.
|
|
3891
|
+
*/
|
|
3892
|
+
can_cancel: z.ZodOptional<z.ZodBoolean>;
|
|
3893
|
+
can_return: z.ZodOptional<z.ZodBoolean>;
|
|
3894
|
+
/** Returns already reported against this order. Absent/empty = none. */
|
|
3895
|
+
returns: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3896
|
+
return_ref: z.ZodString;
|
|
3897
|
+
status: z.ZodEnum<["reported", "package_received", "completed"]>;
|
|
3898
|
+
reported_at: z.ZodString;
|
|
3899
|
+
}, "strip", z.ZodTypeAny, {
|
|
3900
|
+
status: "reported" | "package_received" | "completed";
|
|
3901
|
+
return_ref: string;
|
|
3902
|
+
reported_at: string;
|
|
3903
|
+
}, {
|
|
3904
|
+
status: "reported" | "package_received" | "completed";
|
|
3905
|
+
return_ref: string;
|
|
3906
|
+
reported_at: string;
|
|
3907
|
+
}>, "many">>;
|
|
3908
|
+
}, "strip", z.ZodTypeAny, {
|
|
3909
|
+
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
3910
|
+
currency: string;
|
|
3911
|
+
items: {
|
|
3912
|
+
sku: string;
|
|
3913
|
+
qty: number;
|
|
3914
|
+
unit_price: {
|
|
3915
|
+
amount: number;
|
|
3916
|
+
currency: string;
|
|
3917
|
+
};
|
|
3918
|
+
line_total: {
|
|
3919
|
+
amount: number;
|
|
3920
|
+
currency: string;
|
|
3921
|
+
};
|
|
3922
|
+
line_ref: string;
|
|
3923
|
+
cancelled_qty: number;
|
|
3924
|
+
refunded_qty: number;
|
|
3925
|
+
compare_at_unit_price?: {
|
|
3926
|
+
amount: number;
|
|
3927
|
+
currency: string;
|
|
3928
|
+
} | undefined;
|
|
3929
|
+
title?: string | undefined;
|
|
3930
|
+
image?: string | undefined;
|
|
3931
|
+
attributes?: Record<string, string> | undefined;
|
|
3932
|
+
}[];
|
|
3933
|
+
totals: {
|
|
3934
|
+
shipping: {
|
|
3935
|
+
amount: number;
|
|
3936
|
+
currency: string;
|
|
3937
|
+
};
|
|
3938
|
+
tax: {
|
|
3939
|
+
amount: number;
|
|
3940
|
+
currency: string;
|
|
3941
|
+
};
|
|
3942
|
+
items: {
|
|
3943
|
+
amount: number;
|
|
3944
|
+
currency: string;
|
|
3945
|
+
};
|
|
3946
|
+
grand_total: {
|
|
3947
|
+
amount: number;
|
|
3948
|
+
currency: string;
|
|
3949
|
+
};
|
|
3950
|
+
discount?: {
|
|
3951
|
+
amount: number;
|
|
3952
|
+
currency: string;
|
|
3953
|
+
} | undefined;
|
|
3954
|
+
};
|
|
3955
|
+
order_ref: string & z.BRAND<"OrderRef">;
|
|
3956
|
+
placed_at: string;
|
|
3957
|
+
ship_to: {
|
|
3958
|
+
country: string;
|
|
3959
|
+
name: string;
|
|
3960
|
+
line1: string;
|
|
3961
|
+
city: string;
|
|
3962
|
+
postcode: string;
|
|
3963
|
+
line2?: string | undefined;
|
|
3964
|
+
region?: string | undefined;
|
|
3965
|
+
};
|
|
3966
|
+
headline: string;
|
|
3967
|
+
progress: {
|
|
3968
|
+
label: string;
|
|
3969
|
+
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
3970
|
+
current: boolean;
|
|
3971
|
+
at?: string | undefined;
|
|
3972
|
+
}[];
|
|
3973
|
+
email?: string | undefined;
|
|
3974
|
+
payment?: {
|
|
3975
|
+
brand: string;
|
|
3976
|
+
last4?: string | undefined;
|
|
3977
|
+
} | undefined;
|
|
3978
|
+
returns?: {
|
|
3979
|
+
status: "reported" | "package_received" | "completed";
|
|
3980
|
+
return_ref: string;
|
|
3981
|
+
reported_at: string;
|
|
3982
|
+
}[] | undefined;
|
|
3983
|
+
estimated_delivery?: {
|
|
3984
|
+
from: string;
|
|
3985
|
+
to: string;
|
|
3986
|
+
} | undefined;
|
|
3987
|
+
tracking?: {
|
|
3988
|
+
carrier: string;
|
|
3989
|
+
url?: string | undefined;
|
|
3990
|
+
reference?: string | undefined;
|
|
3991
|
+
} | undefined;
|
|
3992
|
+
can_cancel?: boolean | undefined;
|
|
3993
|
+
can_return?: boolean | undefined;
|
|
3994
|
+
}, {
|
|
3995
|
+
status: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
3996
|
+
currency: string;
|
|
3997
|
+
items: {
|
|
3998
|
+
sku: string;
|
|
3999
|
+
qty: number;
|
|
4000
|
+
unit_price: {
|
|
4001
|
+
amount: number;
|
|
4002
|
+
currency: string;
|
|
4003
|
+
};
|
|
4004
|
+
line_total: {
|
|
4005
|
+
amount: number;
|
|
4006
|
+
currency: string;
|
|
4007
|
+
};
|
|
4008
|
+
line_ref: string;
|
|
4009
|
+
cancelled_qty: number;
|
|
4010
|
+
refunded_qty: number;
|
|
4011
|
+
compare_at_unit_price?: {
|
|
4012
|
+
amount: number;
|
|
4013
|
+
currency: string;
|
|
4014
|
+
} | undefined;
|
|
4015
|
+
title?: string | undefined;
|
|
4016
|
+
image?: string | undefined;
|
|
4017
|
+
attributes?: Record<string, string> | undefined;
|
|
4018
|
+
}[];
|
|
4019
|
+
totals: {
|
|
4020
|
+
shipping: {
|
|
4021
|
+
amount: number;
|
|
4022
|
+
currency: string;
|
|
4023
|
+
};
|
|
4024
|
+
tax: {
|
|
4025
|
+
amount: number;
|
|
4026
|
+
currency: string;
|
|
4027
|
+
};
|
|
4028
|
+
items: {
|
|
4029
|
+
amount: number;
|
|
4030
|
+
currency: string;
|
|
4031
|
+
};
|
|
4032
|
+
grand_total: {
|
|
4033
|
+
amount: number;
|
|
4034
|
+
currency: string;
|
|
4035
|
+
};
|
|
4036
|
+
discount?: {
|
|
4037
|
+
amount: number;
|
|
4038
|
+
currency: string;
|
|
4039
|
+
} | undefined;
|
|
4040
|
+
};
|
|
4041
|
+
order_ref: string;
|
|
4042
|
+
placed_at: string;
|
|
4043
|
+
ship_to: {
|
|
4044
|
+
country: string;
|
|
4045
|
+
name: string;
|
|
4046
|
+
line1: string;
|
|
4047
|
+
city: string;
|
|
4048
|
+
postcode: string;
|
|
4049
|
+
line2?: string | undefined;
|
|
4050
|
+
region?: string | undefined;
|
|
4051
|
+
};
|
|
4052
|
+
headline: string;
|
|
4053
|
+
progress: {
|
|
4054
|
+
label: string;
|
|
4055
|
+
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
4056
|
+
current: boolean;
|
|
4057
|
+
at?: string | undefined;
|
|
4058
|
+
}[];
|
|
4059
|
+
email?: string | undefined;
|
|
4060
|
+
payment?: {
|
|
4061
|
+
brand: string;
|
|
4062
|
+
last4?: string | undefined;
|
|
4063
|
+
} | undefined;
|
|
4064
|
+
returns?: {
|
|
4065
|
+
status: "reported" | "package_received" | "completed";
|
|
4066
|
+
return_ref: string;
|
|
4067
|
+
reported_at: string;
|
|
4068
|
+
}[] | undefined;
|
|
4069
|
+
estimated_delivery?: {
|
|
4070
|
+
from: string;
|
|
4071
|
+
to: string;
|
|
4072
|
+
} | undefined;
|
|
4073
|
+
tracking?: {
|
|
4074
|
+
carrier: string;
|
|
4075
|
+
url?: string | undefined;
|
|
4076
|
+
reference?: string | undefined;
|
|
4077
|
+
} | undefined;
|
|
4078
|
+
can_cancel?: boolean | undefined;
|
|
4079
|
+
can_return?: boolean | undefined;
|
|
4080
|
+
}>;
|
|
4081
|
+
|
|
4082
|
+
declare type OrderDetail = z.infer<typeof OrderDetail>;
|
|
4083
|
+
|
|
2602
4084
|
/**
|
|
2603
4085
|
* The fan's orders (Figma `mobile/order/list`, ADR-0015).
|
|
2604
4086
|
*
|
|
@@ -2614,42 +4096,12 @@ export declare function OrderListView(props: OrderListViewProps): JSX.Element;
|
|
|
2614
4096
|
export declare interface OrderListViewProps {
|
|
2615
4097
|
/** Opens one order. Without it the rows render as static cards rather than dead links. */
|
|
2616
4098
|
onOpenOrder?: (orderRef: string) => void;
|
|
2617
|
-
/** The empty state's call to action — the design's "
|
|
4099
|
+
/** The empty state's call to action — the design's "Continue shopping" button. */
|
|
2618
4100
|
onStartShopping?: () => void;
|
|
2619
4101
|
/** Overrides the provider's locale for dates. */
|
|
2620
4102
|
locale?: string;
|
|
2621
4103
|
}
|
|
2622
4104
|
|
|
2623
|
-
/**
|
|
2624
|
-
* One row of the timeline.
|
|
2625
|
-
*
|
|
2626
|
-
* **`at` is present only for a step that has actually happened.** A future step has no
|
|
2627
|
-
* date, rather than a projected one: a predicted date rendered in the same place as a
|
|
2628
|
-
* recorded one is indistinguishable from a promise, and this timeline is the fan's
|
|
2629
|
-
* evidence of what occurred.
|
|
2630
|
-
*/
|
|
2631
|
-
declare const OrderProgressEntry: z.ZodObject<{
|
|
2632
|
-
step: z.ZodEnum<["packing", "on_its_way", "out_for_delivery", "delivered", "cancelled"]>;
|
|
2633
|
-
/** Ready-to-render label for the step, localised with the rest of the response. */
|
|
2634
|
-
label: z.ZodString;
|
|
2635
|
-
/** When the step completed. Absent = not reached yet. */
|
|
2636
|
-
at: z.ZodOptional<z.ZodString>;
|
|
2637
|
-
/** Exactly one entry is `current`; every earlier one is complete. */
|
|
2638
|
-
current: z.ZodBoolean;
|
|
2639
|
-
}, "strip", z.ZodTypeAny, {
|
|
2640
|
-
label: string;
|
|
2641
|
-
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2642
|
-
current: boolean;
|
|
2643
|
-
at?: string | undefined;
|
|
2644
|
-
}, {
|
|
2645
|
-
label: string;
|
|
2646
|
-
step: "packing" | "on_its_way" | "out_for_delivery" | "delivered" | "cancelled";
|
|
2647
|
-
current: boolean;
|
|
2648
|
-
at?: string | undefined;
|
|
2649
|
-
}>;
|
|
2650
|
-
|
|
2651
|
-
declare type OrderProgressEntry = z.infer<typeof OrderProgressEntry>;
|
|
2652
|
-
|
|
2653
4105
|
/**
|
|
2654
4106
|
* A step in the fan-facing progress timeline.
|
|
2655
4107
|
*
|
|
@@ -2706,8 +4158,17 @@ export declare interface OrderSummaryProps {
|
|
|
2706
4158
|
* changes at checkout. DAZN owns checkout and therefore owns delivery and tax
|
|
2707
4159
|
* (ADR-0008), so in the cart both are genuinely unknown rather than genuinely free.
|
|
2708
4160
|
*
|
|
2709
|
-
*
|
|
2710
|
-
*
|
|
4161
|
+
* **The grand total is still drawn.** It used to be withheld whenever anything here was
|
|
4162
|
+
* deferred, on the reasoning that a total omitting delivery is not a total. DAZN
|
|
4163
|
+
* reviewed that on 21 Aug 2026 against the frame — which draws a Total row — and chose
|
|
4164
|
+
* the frame. So the row is drawn, carrying `pricing.total`, and on a cart that means the
|
|
4165
|
+
* items total: delivery and tax are added at DAZN's checkout and can move it by the
|
|
4166
|
+
* spread the design's own shipping note quotes (standard $5-16, express $15-23).
|
|
4167
|
+
*
|
|
4168
|
+
* Deferring a row therefore now changes only that row. If the withholding is ever
|
|
4169
|
+
* wanted back, it belongs behind an explicit prop rather than as a side effect of
|
|
4170
|
+
* `deferred` — a prop that silently removes a different row is the kind of surprise this
|
|
4171
|
+
* comment exists to prevent.
|
|
2711
4172
|
*/
|
|
2712
4173
|
deferred?: DeferredLine[];
|
|
2713
4174
|
/**
|
|
@@ -2742,21 +4203,48 @@ export declare interface OrderSummaryProps {
|
|
|
2742
4203
|
* An ordered list, because it is one: the rows have a sequence and a screen reader should
|
|
2743
4204
|
* announce it as such.
|
|
2744
4205
|
*/
|
|
2745
|
-
export declare function OrderTimeline({ progress, locale: localeProp }: OrderTimelineProps): JSX.Element;
|
|
4206
|
+
export declare function OrderTimeline({ progress, estimatedDelivery, locale: localeProp, }: OrderTimelineProps): JSX.Element;
|
|
2746
4207
|
|
|
2747
4208
|
export declare interface OrderTimelineProps {
|
|
2748
|
-
progress:
|
|
4209
|
+
progress: readonly TimelineEntry[];
|
|
4210
|
+
/**
|
|
4211
|
+
* The delivery window, drawn under the last step while that step is still to come.
|
|
4212
|
+
*
|
|
4213
|
+
* Both frames put it there — "Sunday 27-30 Aug" under `Estimated delivery` — and it is
|
|
4214
|
+
* the only place either screen states it now that neither draws `order.headline`. A
|
|
4215
|
+
* window rather than a date, and advisory: it comes from the warehouse, and the design
|
|
4216
|
+
* writes it as a range precisely so it does not read as a promise of one day.
|
|
4217
|
+
*/
|
|
4218
|
+
estimatedDelivery?: {
|
|
4219
|
+
from: string;
|
|
4220
|
+
to: string;
|
|
4221
|
+
};
|
|
2749
4222
|
/** Overrides the provider's locale for the step dates. */
|
|
2750
4223
|
locale?: string;
|
|
2751
4224
|
}
|
|
2752
4225
|
|
|
2753
4226
|
/**
|
|
2754
|
-
* Order tracking (Figma `
|
|
4227
|
+
* Order tracking (Figma `order stats`, 5479:132209).
|
|
4228
|
+
*
|
|
4229
|
+
* One screen with three states, and the engine's `progress` is what draws them: the widget
|
|
4230
|
+
* says where the parcel is, and everything under it is the same for all three.
|
|
4231
|
+
*
|
|
4232
|
+
* The frame's first state carries a "Cancel order" button and its last offers a return,
|
|
4233
|
+
* and **both are ours since 21 Aug** (ADR-0024). Cancelling happens in place, through the
|
|
4234
|
+
* reason sheet at the foot of this file; a return is three screens, so "Return items"
|
|
4235
|
+
* navigates to them. Neither moves money: DAZN remain merchant of record, and what the
|
|
4236
|
+
* engine records is a request handed on.
|
|
4237
|
+
*
|
|
4238
|
+
* Both are drawn on the ENGINE's say-so — `can_cancel` is its dispatch cut-off,
|
|
4239
|
+
* `can_return` its returns window. Neither is a status this screen can infer, and it does
|
|
4240
|
+
* not try.
|
|
4241
|
+
*
|
|
4242
|
+
* "Contact support" is different again: the form behind it is DAZN's, but the row has
|
|
4243
|
+
* somewhere to go without them wiring anything, because pressing it raises
|
|
4244
|
+
* `support_requested`.
|
|
2755
4245
|
*
|
|
2756
|
-
*
|
|
2757
|
-
*
|
|
2758
|
-
* that cannot complete is worse than an absent one, and both need a contract from DAZN
|
|
2759
|
-
* before they can do anything.
|
|
4246
|
+
* Below the widget this is the confirmation screen: the same rows, the same two cards, the
|
|
4247
|
+
* same components (`OrderReceipt`).
|
|
2760
4248
|
*/
|
|
2761
4249
|
export declare function OrderTrackingView(props: OrderTrackingViewProps): JSX.Element;
|
|
2762
4250
|
|
|
@@ -2765,6 +4253,45 @@ export declare interface OrderTrackingViewProps {
|
|
|
2765
4253
|
orderRef: string;
|
|
2766
4254
|
/** Overrides the provider's locale for dates. */
|
|
2767
4255
|
locale?: string;
|
|
4256
|
+
/**
|
|
4257
|
+
* Open the return flow.
|
|
4258
|
+
*
|
|
4259
|
+
* **Optional now, and it was once required.** Returns were DAZN's under ADR-0008, so
|
|
4260
|
+
* this used to be the only way the row could appear: a control that cannot complete is
|
|
4261
|
+
* worse than an absent one. ADR-0024 gave us the flow — `POST /v1/orders/{ref}/returns`
|
|
4262
|
+
* and the three screens behind it — so the default is no longer "nothing happens".
|
|
4263
|
+
*
|
|
4264
|
+
* It is still the seam, because the flow is three SCREENS and only the host knows where
|
|
4265
|
+
* its routes are — the same reason `OrderListView` takes `onOpenOrder` rather than
|
|
4266
|
+
* navigating itself. What changed is what the handler leads to: mount `ReturnFlowView`
|
|
4267
|
+
* with this order's reference and the whole flow is there.
|
|
4268
|
+
*
|
|
4269
|
+
* Without it the control is not drawn. The SDK will not offer a button whose destination
|
|
4270
|
+
* does not exist, and that has not changed either.
|
|
4271
|
+
*/
|
|
4272
|
+
onStartReturn?: () => void;
|
|
4273
|
+
/**
|
|
4274
|
+
* Called once the fan has confirmed a cancellation and the engine has accepted it,
|
|
4275
|
+
* with the order as it now stands. The screen redraws itself either way; this is for a
|
|
4276
|
+
* host that wants to react — refresh a list, close a sheet, send an analytics event.
|
|
4277
|
+
*/
|
|
4278
|
+
onCancelled?: (order: OrderDetail) => void;
|
|
4279
|
+
/**
|
|
4280
|
+
* The cancelled screen's "Reorder". Omit it and no button renders.
|
|
4281
|
+
*
|
|
4282
|
+
* The host's, because it means "put these items back in a cart and go somewhere", and
|
|
4283
|
+
* only they know where that is. We raise `reorder_requested` regardless.
|
|
4284
|
+
*/
|
|
4285
|
+
onReorder?: () => void;
|
|
4286
|
+
/**
|
|
4287
|
+
* The block's second row, which is always drawn under a delivered order.
|
|
4288
|
+
*
|
|
4289
|
+
* **The Contact Support form is DAZN's**, so the row hands off rather than opening
|
|
4290
|
+
* anything of ours: it raises `support_requested` with the reference, and calls this
|
|
4291
|
+
* handler as well when there is one. Same terms as the checkout CTA, which is likewise
|
|
4292
|
+
* always drawn and likewise ends in an event.
|
|
4293
|
+
*/
|
|
4294
|
+
onContactSupport?: () => void;
|
|
2768
4295
|
}
|
|
2769
4296
|
|
|
2770
4297
|
/** PCP hero — category title and tagline read over a full-screen lifestyle image. */
|
|
@@ -2976,21 +4503,69 @@ declare const Product: z.ZodObject<{
|
|
|
2976
4503
|
*/
|
|
2977
4504
|
size_guide: z.ZodOptional<z.ZodObject<{
|
|
2978
4505
|
title: z.ZodString;
|
|
2979
|
-
/**
|
|
4506
|
+
/** The fit this chart is for, e.g. "Oversized hoodies and zip-ups · Unisex". */
|
|
4507
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
4508
|
+
/**
|
|
4509
|
+
* Column headings for `rows`, e.g. `['Size', 'Chest', 'Length']`.
|
|
4510
|
+
*
|
|
4511
|
+
* Bare nouns, with no unit in the heading: the unit belongs to the whole chart and is
|
|
4512
|
+
* named by `unit`, so that a consumer converting to the other unit does not leave
|
|
4513
|
+
* "Chest (cm)" written above a column of inches.
|
|
4514
|
+
*/
|
|
2980
4515
|
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2981
4516
|
/** One row per size; each row's length matches `columns`. */
|
|
2982
4517
|
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
4518
|
+
/**
|
|
4519
|
+
* The unit `rows` are written in.
|
|
4520
|
+
*
|
|
4521
|
+
* Absent means the numbers carry no declared unit — a consumer must then show them as
|
|
4522
|
+
* they are and offer no conversion, because it has nothing to convert from.
|
|
4523
|
+
*/
|
|
4524
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
4525
|
+
/** The line under the table, e.g. "All measurements are taken from the garment laid flat, not from the body." */
|
|
4526
|
+
note: z.ZodOptional<z.ZodString>;
|
|
4527
|
+
/** The "How to measure" list. Absent/empty = the section is not drawn. */
|
|
4528
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
4529
|
+
/** e.g. "Chest width". */
|
|
4530
|
+
label: z.ZodString;
|
|
4531
|
+
/** e.g. "Measured 2.5 cm below the armhole, garment flat." */
|
|
4532
|
+
description: z.ZodString;
|
|
4533
|
+
}, "strip", z.ZodTypeAny, {
|
|
4534
|
+
label: string;
|
|
4535
|
+
description: string;
|
|
4536
|
+
}, {
|
|
4537
|
+
label: string;
|
|
4538
|
+
description: string;
|
|
4539
|
+
}>, "many">>;
|
|
4540
|
+
/** The fabric line, e.g. "100% cotton · 220–240 GSM · Oversized fit · Sizes XS–XL". */
|
|
4541
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
2983
4542
|
/** Free-text fit guidance, e.g. "Relaxed, slightly oversized fit". */
|
|
2984
4543
|
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2985
4544
|
}, "strip", z.ZodTypeAny, {
|
|
2986
4545
|
title: string;
|
|
4546
|
+
subtitle?: string | undefined;
|
|
2987
4547
|
columns?: string[] | undefined;
|
|
2988
4548
|
rows?: string[][] | undefined;
|
|
4549
|
+
unit?: "cm" | "in" | undefined;
|
|
4550
|
+
note?: string | undefined;
|
|
4551
|
+
measurements?: {
|
|
4552
|
+
label: string;
|
|
4553
|
+
description: string;
|
|
4554
|
+
}[] | undefined;
|
|
4555
|
+
fabric?: string | undefined;
|
|
2989
4556
|
notes?: string[] | undefined;
|
|
2990
4557
|
}, {
|
|
2991
4558
|
title: string;
|
|
4559
|
+
subtitle?: string | undefined;
|
|
2992
4560
|
columns?: string[] | undefined;
|
|
2993
4561
|
rows?: string[][] | undefined;
|
|
4562
|
+
unit?: "cm" | "in" | undefined;
|
|
4563
|
+
note?: string | undefined;
|
|
4564
|
+
measurements?: {
|
|
4565
|
+
label: string;
|
|
4566
|
+
description: string;
|
|
4567
|
+
}[] | undefined;
|
|
4568
|
+
fabric?: string | undefined;
|
|
2994
4569
|
notes?: string[] | undefined;
|
|
2995
4570
|
}>>;
|
|
2996
4571
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -3009,11 +4584,11 @@ declare const Product: z.ZodObject<{
|
|
|
3009
4584
|
image?: string | undefined;
|
|
3010
4585
|
available?: number | undefined;
|
|
3011
4586
|
}[];
|
|
4587
|
+
description?: string | undefined;
|
|
3012
4588
|
compare_at?: {
|
|
3013
4589
|
amount: number;
|
|
3014
4590
|
currency: string;
|
|
3015
4591
|
} | undefined;
|
|
3016
|
-
description?: string | undefined;
|
|
3017
4592
|
badges?: string[] | undefined;
|
|
3018
4593
|
promo?: {
|
|
3019
4594
|
message: string;
|
|
@@ -3021,8 +4596,16 @@ declare const Product: z.ZodObject<{
|
|
|
3021
4596
|
} | undefined;
|
|
3022
4597
|
size_guide?: {
|
|
3023
4598
|
title: string;
|
|
4599
|
+
subtitle?: string | undefined;
|
|
3024
4600
|
columns?: string[] | undefined;
|
|
3025
4601
|
rows?: string[][] | undefined;
|
|
4602
|
+
unit?: "cm" | "in" | undefined;
|
|
4603
|
+
note?: string | undefined;
|
|
4604
|
+
measurements?: {
|
|
4605
|
+
label: string;
|
|
4606
|
+
description: string;
|
|
4607
|
+
}[] | undefined;
|
|
4608
|
+
fabric?: string | undefined;
|
|
3026
4609
|
notes?: string[] | undefined;
|
|
3027
4610
|
} | undefined;
|
|
3028
4611
|
}, {
|
|
@@ -3041,11 +4624,11 @@ declare const Product: z.ZodObject<{
|
|
|
3041
4624
|
image?: string | undefined;
|
|
3042
4625
|
available?: number | undefined;
|
|
3043
4626
|
}[];
|
|
4627
|
+
description?: string | undefined;
|
|
3044
4628
|
compare_at?: {
|
|
3045
4629
|
amount: number;
|
|
3046
4630
|
currency: string;
|
|
3047
4631
|
} | undefined;
|
|
3048
|
-
description?: string | undefined;
|
|
3049
4632
|
badges?: string[] | undefined;
|
|
3050
4633
|
promo?: {
|
|
3051
4634
|
message: string;
|
|
@@ -3053,8 +4636,16 @@ declare const Product: z.ZodObject<{
|
|
|
3053
4636
|
} | undefined;
|
|
3054
4637
|
size_guide?: {
|
|
3055
4638
|
title: string;
|
|
4639
|
+
subtitle?: string | undefined;
|
|
3056
4640
|
columns?: string[] | undefined;
|
|
3057
4641
|
rows?: string[][] | undefined;
|
|
4642
|
+
unit?: "cm" | "in" | undefined;
|
|
4643
|
+
note?: string | undefined;
|
|
4644
|
+
measurements?: {
|
|
4645
|
+
label: string;
|
|
4646
|
+
description: string;
|
|
4647
|
+
}[] | undefined;
|
|
4648
|
+
fabric?: string | undefined;
|
|
3058
4649
|
notes?: string[] | undefined;
|
|
3059
4650
|
} | undefined;
|
|
3060
4651
|
}>;
|
|
@@ -3083,6 +4674,11 @@ export declare interface ProductDetailProps {
|
|
|
3083
4674
|
* PDP "Product details" accordion (mobile/pdp/details). Collapsed clamps the body to
|
|
3084
4675
|
* three lines with a more/less toggle. Only renders when the catalogue provides a
|
|
3085
4676
|
* description — no placeholder copy is invented.
|
|
4677
|
+
*
|
|
4678
|
+
* The toggle appears only when the clamp is actually hiding something. It used to render
|
|
4679
|
+
* for every description, so a two-line one offered a "more" that expanded to the same two
|
|
4680
|
+
* lines and a "Less" that collapsed to them again — reported from staging, where most
|
|
4681
|
+
* products have a short description.
|
|
3086
4682
|
*/
|
|
3087
4683
|
export declare function ProductDetails({ description }: ProductDetailsProps): JSX.Element | null;
|
|
3088
4684
|
|
|
@@ -3091,6 +4687,29 @@ export declare interface ProductDetailsProps {
|
|
|
3091
4687
|
description: string;
|
|
3092
4688
|
}
|
|
3093
4689
|
|
|
4690
|
+
/**
|
|
4691
|
+
* One product as its own gallery (Figma `mobile/limited edition`, 5304:77067).
|
|
4692
|
+
*
|
|
4693
|
+
* **The third shape a product takes on a category page**, and the reason it is its own
|
|
4694
|
+
* component rather than a variant of the other two: `featured` is one product as one large
|
|
4695
|
+
* card, a rail is many products each with their own name and price, and this is one
|
|
4696
|
+
* product whose *pictures* fill the row — so there is a single name and price under it,
|
|
4697
|
+
* not one per card.
|
|
4698
|
+
*
|
|
4699
|
+
* The images are the product's own `media`. There is no second list to keep in step with
|
|
4700
|
+
* the PDP, and a garment reshot in one place is reshot everywhere.
|
|
4701
|
+
*
|
|
4702
|
+
* Figma instances it under two different headings — "Limited edition" on Jackets, "Summer
|
|
4703
|
+
* sets" on Seasonal — so the heading is content and never a constant here.
|
|
4704
|
+
*/
|
|
4705
|
+
export declare function ProductGallery({ title, product }: ProductGalleryProps): JSX.Element;
|
|
4706
|
+
|
|
4707
|
+
export declare interface ProductGalleryProps {
|
|
4708
|
+
/** The heading above the row — "Limited edition", "Summer sets". */
|
|
4709
|
+
title: string;
|
|
4710
|
+
product: Product;
|
|
4711
|
+
}
|
|
4712
|
+
|
|
3094
4713
|
/**
|
|
3095
4714
|
* PLP grid with cursor-based infinite scroll and a chip FilterBar.
|
|
3096
4715
|
*
|
|
@@ -3233,9 +4852,10 @@ export declare function PromoBanner({ promo }: {
|
|
|
3233
4852
|
*
|
|
3234
4853
|
* When the cap is reached the reason is stated inline rather than the control simply
|
|
3235
4854
|
* going dead — a disabled `+` with no explanation reads as a bug, and the fan cannot
|
|
3236
|
-
* tell "we have no more" from "this is broken".
|
|
4855
|
+
* tell "we have no more" from "this is broken". A caller that already says it passes
|
|
4856
|
+
* {@link QtyStepperProps.capDescribedBy} and gets the wiring without the second copy.
|
|
3237
4857
|
*/
|
|
3238
|
-
export declare function QtyStepper({ qty, max, onChange, onRemove, disabled }: QtyStepperProps): JSX.Element;
|
|
4858
|
+
export declare function QtyStepper({ qty, max, onChange, onRemove, disabled, capDescribedBy, }: QtyStepperProps): JSX.Element;
|
|
3239
4859
|
|
|
3240
4860
|
export declare interface QtyStepperProps {
|
|
3241
4861
|
qty: number;
|
|
@@ -3245,6 +4865,18 @@ export declare interface QtyStepperProps {
|
|
|
3245
4865
|
/** Called when decrementing from 1 (the decrement becomes a delete). */
|
|
3246
4866
|
onRemove?: () => void;
|
|
3247
4867
|
disabled?: boolean;
|
|
4868
|
+
/**
|
|
4869
|
+
* Id of an element that already explains the cap, drawn by the caller.
|
|
4870
|
+
*
|
|
4871
|
+
* Pass this when the surrounding screen states the stock itself — the cart line draws
|
|
4872
|
+
* Figma's `Only N left` label under the whole line, and its out-of-stock line scrims the
|
|
4873
|
+
* thumbnail. Given one, the stepper points `aria-describedby` at it and renders no
|
|
4874
|
+
* message of its own, so the two can never say the same thing twice or disagree.
|
|
4875
|
+
*
|
|
4876
|
+
* Without it the stepper explains its own dead `+`, which is the standalone behaviour
|
|
4877
|
+
* and the reason the message exists at all.
|
|
4878
|
+
*/
|
|
4879
|
+
capDescribedBy?: string;
|
|
3248
4880
|
}
|
|
3249
4881
|
|
|
3250
4882
|
/**
|
|
@@ -3272,6 +4904,64 @@ export declare interface RailCarouselProps {
|
|
|
3272
4904
|
inset?: boolean;
|
|
3273
4905
|
}
|
|
3274
4906
|
|
|
4907
|
+
export declare interface ReasonOption<T extends string> {
|
|
4908
|
+
value: T;
|
|
4909
|
+
label: string;
|
|
4910
|
+
}
|
|
4911
|
+
|
|
4912
|
+
/**
|
|
4913
|
+
* "Pick one reason, then confirm" — Figma `Reason for cancelling` (4632:17129) and
|
|
4914
|
+
* `Reason for return`.
|
|
4915
|
+
*
|
|
4916
|
+
* One component for both, because they are one component in the file: the same sheet, the
|
|
4917
|
+
* same rows, the same footer, differing only in their title, their options and the word on
|
|
4918
|
+
* the button. Building two would be two things to keep in step.
|
|
4919
|
+
*
|
|
4920
|
+
* **The confirm button starts disabled and the sheet does not preselect anything.** A
|
|
4921
|
+
* reason is the fan's statement about their own order, and a default would put words in
|
|
4922
|
+
* their mouth that the first tap then submits.
|
|
4923
|
+
*/
|
|
4924
|
+
export declare function ReasonSheet<T extends string>({ title, options, ctaLabel, selected, onConfirm, onClose, closeLabel, busy, error, }: ReasonSheetProps<T>): JSX.Element;
|
|
4925
|
+
|
|
4926
|
+
export declare interface ReasonSheetProps<T extends string> {
|
|
4927
|
+
title: string;
|
|
4928
|
+
options: readonly ReasonOption<T>[];
|
|
4929
|
+
/** The confirm button's label — "Cancel order" on one sheet, "Select" on the other. */
|
|
4930
|
+
ctaLabel: string;
|
|
4931
|
+
/** Pre-selected value, for a sheet reopened on a line that already has a reason. */
|
|
4932
|
+
selected?: T;
|
|
4933
|
+
onConfirm: (value: T) => void;
|
|
4934
|
+
onClose: () => void;
|
|
4935
|
+
/** What the close control is called to assistive technology. */
|
|
4936
|
+
closeLabel: string;
|
|
4937
|
+
/** Marks the confirm button busy while the request is in flight. */
|
|
4938
|
+
busy?: boolean;
|
|
4939
|
+
/**
|
|
4940
|
+
* A failure from the action this sheet confirms, shown above the button.
|
|
4941
|
+
*
|
|
4942
|
+
* On the sheet rather than replacing the screen behind it: the order is still fine, it
|
|
4943
|
+
* is the request that failed, and the fan's next move is to press the same button again.
|
|
4944
|
+
*/
|
|
4945
|
+
error?: string;
|
|
4946
|
+
}
|
|
4947
|
+
|
|
4948
|
+
/**
|
|
4949
|
+
* `POST /v1/orders/{order_ref}/cancellation`
|
|
4950
|
+
*
|
|
4951
|
+
* The whole order. Figma offers no per-line cancel and neither does this: the sheet has
|
|
4952
|
+
* one reason and one button, and a partial cancellation the fan cannot express is not a
|
|
4953
|
+
* shape worth carrying.
|
|
4954
|
+
*/
|
|
4955
|
+
declare const RequestCancellationRequest: z.ZodObject<{
|
|
4956
|
+
reason: z.ZodEnum<["changed_my_mind", "ordered_by_mistake", "delivery_too_long"]>;
|
|
4957
|
+
}, "strict", z.ZodTypeAny, {
|
|
4958
|
+
reason: "changed_my_mind" | "ordered_by_mistake" | "delivery_too_long";
|
|
4959
|
+
}, {
|
|
4960
|
+
reason: "changed_my_mind" | "ordered_by_mistake" | "delivery_too_long";
|
|
4961
|
+
}>;
|
|
4962
|
+
|
|
4963
|
+
declare type RequestCancellationRequest = z.infer<typeof RequestCancellationRequest>;
|
|
4964
|
+
|
|
3275
4965
|
/**
|
|
3276
4966
|
* Resolve an asset path against the host-configured asset base.
|
|
3277
4967
|
*
|
|
@@ -3297,6 +4987,283 @@ export declare function resolveAssetUrl(src: string, base?: string): string;
|
|
|
3297
4987
|
*/
|
|
3298
4988
|
export declare function resolveSku(variants: ProductVariant[], size: string | null, colour: string | null): string | null;
|
|
3299
4989
|
|
|
4990
|
+
/**
|
|
4991
|
+
* The reasons the frame offers, in the frame's order.
|
|
4992
|
+
*
|
|
4993
|
+
* Ordered by how often a fan picks them rather than alphabetically, which is the design's
|
|
4994
|
+
* choice and not ours to re-sort: the two sizing reasons lead because sizing is what most
|
|
4995
|
+
* clothing returns are about.
|
|
4996
|
+
*/
|
|
4997
|
+
export declare const RETURN_REASONS: readonly ReasonOption<FanReturnReason>[];
|
|
4998
|
+
|
|
4999
|
+
/**
|
|
5000
|
+
* `GET /v1/returns/{return_ref}` — one return in full.
|
|
5001
|
+
*
|
|
5002
|
+
* `label_url` is **opaque and short-lived**, like carrier tracking: render it as a
|
|
5003
|
+
* download, never rebuild it. Absent means the label is not ready, and the screen says so
|
|
5004
|
+
* rather than offering a button that 404s — the frame's own copy promises the PDF by email
|
|
5005
|
+
* as well, which is the path that does not depend on this link still working.
|
|
5006
|
+
*/
|
|
5007
|
+
declare const ReturnDetail: z.ZodObject<{
|
|
5008
|
+
return_ref: z.ZodString;
|
|
5009
|
+
order_ref: z.ZodBranded<z.ZodString, "OrderRef">;
|
|
5010
|
+
status: z.ZodEnum<["reported", "package_received", "completed"]>;
|
|
5011
|
+
reported_at: z.ZodString;
|
|
5012
|
+
progress: z.ZodArray<z.ZodObject<{
|
|
5013
|
+
step: z.ZodEnum<["reported", "package_received", "completed"]>;
|
|
5014
|
+
label: z.ZodString;
|
|
5015
|
+
/** When the step completed. Absent = not reached yet, never a projected date. */
|
|
5016
|
+
at: z.ZodOptional<z.ZodString>;
|
|
5017
|
+
current: z.ZodBoolean;
|
|
5018
|
+
}, "strip", z.ZodTypeAny, {
|
|
5019
|
+
label: string;
|
|
5020
|
+
step: "reported" | "package_received" | "completed";
|
|
5021
|
+
current: boolean;
|
|
5022
|
+
at?: string | undefined;
|
|
5023
|
+
}, {
|
|
5024
|
+
label: string;
|
|
5025
|
+
step: "reported" | "package_received" | "completed";
|
|
5026
|
+
current: boolean;
|
|
5027
|
+
at?: string | undefined;
|
|
5028
|
+
}>, "many">;
|
|
5029
|
+
items: z.ZodArray<z.ZodObject<{
|
|
5030
|
+
line_ref: z.ZodString;
|
|
5031
|
+
sku: z.ZodString;
|
|
5032
|
+
qty: z.ZodNumber;
|
|
5033
|
+
reason: z.ZodEnum<["too_large", "too_small", "arrived_too_late", "item_damaged", "not_as_described", "changed_my_mind"]>;
|
|
5034
|
+
unit_price: z.ZodObject<{
|
|
5035
|
+
amount: z.ZodNumber;
|
|
5036
|
+
currency: z.ZodString;
|
|
5037
|
+
}, "strict", z.ZodTypeAny, {
|
|
5038
|
+
amount: number;
|
|
5039
|
+
currency: string;
|
|
5040
|
+
}, {
|
|
5041
|
+
amount: number;
|
|
5042
|
+
currency: string;
|
|
5043
|
+
}>;
|
|
5044
|
+
compare_at_unit_price: z.ZodOptional<z.ZodObject<{
|
|
5045
|
+
amount: z.ZodNumber;
|
|
5046
|
+
currency: z.ZodString;
|
|
5047
|
+
}, "strict", z.ZodTypeAny, {
|
|
5048
|
+
amount: number;
|
|
5049
|
+
currency: string;
|
|
5050
|
+
}, {
|
|
5051
|
+
amount: number;
|
|
5052
|
+
currency: string;
|
|
5053
|
+
}>>;
|
|
5054
|
+
title: z.ZodOptional<z.ZodString>;
|
|
5055
|
+
image: z.ZodOptional<z.ZodString>;
|
|
5056
|
+
attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
5057
|
+
}, "strip", z.ZodTypeAny, {
|
|
5058
|
+
sku: string;
|
|
5059
|
+
qty: number;
|
|
5060
|
+
unit_price: {
|
|
5061
|
+
amount: number;
|
|
5062
|
+
currency: string;
|
|
5063
|
+
};
|
|
5064
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5065
|
+
line_ref: string;
|
|
5066
|
+
compare_at_unit_price?: {
|
|
5067
|
+
amount: number;
|
|
5068
|
+
currency: string;
|
|
5069
|
+
} | undefined;
|
|
5070
|
+
title?: string | undefined;
|
|
5071
|
+
image?: string | undefined;
|
|
5072
|
+
attributes?: Record<string, string> | undefined;
|
|
5073
|
+
}, {
|
|
5074
|
+
sku: string;
|
|
5075
|
+
qty: number;
|
|
5076
|
+
unit_price: {
|
|
5077
|
+
amount: number;
|
|
5078
|
+
currency: string;
|
|
5079
|
+
};
|
|
5080
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5081
|
+
line_ref: string;
|
|
5082
|
+
compare_at_unit_price?: {
|
|
5083
|
+
amount: number;
|
|
5084
|
+
currency: string;
|
|
5085
|
+
} | undefined;
|
|
5086
|
+
title?: string | undefined;
|
|
5087
|
+
image?: string | undefined;
|
|
5088
|
+
attributes?: Record<string, string> | undefined;
|
|
5089
|
+
}>, "many">;
|
|
5090
|
+
label_url: z.ZodOptional<z.ZodString>;
|
|
5091
|
+
/**
|
|
5092
|
+
* Where the label PDF was sent, for the frame's "You'll receive a shipping label PDF to
|
|
5093
|
+
* your email as well" line. PII, like `OrderDetail.email`: render it, never log it.
|
|
5094
|
+
*/
|
|
5095
|
+
label_email: z.ZodOptional<z.ZodString>;
|
|
5096
|
+
}, "strip", z.ZodTypeAny, {
|
|
5097
|
+
status: "reported" | "package_received" | "completed";
|
|
5098
|
+
items: {
|
|
5099
|
+
sku: string;
|
|
5100
|
+
qty: number;
|
|
5101
|
+
unit_price: {
|
|
5102
|
+
amount: number;
|
|
5103
|
+
currency: string;
|
|
5104
|
+
};
|
|
5105
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5106
|
+
line_ref: string;
|
|
5107
|
+
compare_at_unit_price?: {
|
|
5108
|
+
amount: number;
|
|
5109
|
+
currency: string;
|
|
5110
|
+
} | undefined;
|
|
5111
|
+
title?: string | undefined;
|
|
5112
|
+
image?: string | undefined;
|
|
5113
|
+
attributes?: Record<string, string> | undefined;
|
|
5114
|
+
}[];
|
|
5115
|
+
order_ref: string & z.BRAND<"OrderRef">;
|
|
5116
|
+
return_ref: string;
|
|
5117
|
+
reported_at: string;
|
|
5118
|
+
progress: {
|
|
5119
|
+
label: string;
|
|
5120
|
+
step: "reported" | "package_received" | "completed";
|
|
5121
|
+
current: boolean;
|
|
5122
|
+
at?: string | undefined;
|
|
5123
|
+
}[];
|
|
5124
|
+
label_url?: string | undefined;
|
|
5125
|
+
label_email?: string | undefined;
|
|
5126
|
+
}, {
|
|
5127
|
+
status: "reported" | "package_received" | "completed";
|
|
5128
|
+
items: {
|
|
5129
|
+
sku: string;
|
|
5130
|
+
qty: number;
|
|
5131
|
+
unit_price: {
|
|
5132
|
+
amount: number;
|
|
5133
|
+
currency: string;
|
|
5134
|
+
};
|
|
5135
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5136
|
+
line_ref: string;
|
|
5137
|
+
compare_at_unit_price?: {
|
|
5138
|
+
amount: number;
|
|
5139
|
+
currency: string;
|
|
5140
|
+
} | undefined;
|
|
5141
|
+
title?: string | undefined;
|
|
5142
|
+
image?: string | undefined;
|
|
5143
|
+
attributes?: Record<string, string> | undefined;
|
|
5144
|
+
}[];
|
|
5145
|
+
order_ref: string;
|
|
5146
|
+
return_ref: string;
|
|
5147
|
+
reported_at: string;
|
|
5148
|
+
progress: {
|
|
5149
|
+
label: string;
|
|
5150
|
+
step: "reported" | "package_received" | "completed";
|
|
5151
|
+
current: boolean;
|
|
5152
|
+
at?: string | undefined;
|
|
5153
|
+
}[];
|
|
5154
|
+
label_url?: string | undefined;
|
|
5155
|
+
label_email?: string | undefined;
|
|
5156
|
+
}>;
|
|
5157
|
+
|
|
5158
|
+
declare type ReturnDetail = z.infer<typeof ReturnDetail>;
|
|
5159
|
+
|
|
5160
|
+
/**
|
|
5161
|
+
* The return flow, end to end — Figma `Return flow` (4551:32294).
|
|
5162
|
+
*
|
|
5163
|
+
* **This is the piece that was missing.** `ReturnItemsView`, `ReturnLabelView` and
|
|
5164
|
+
* `ReturnTrackingView` are presentational: they take an order or a return and draw it.
|
|
5165
|
+
* Something has to load the order, post what the fan chose, and move between the three,
|
|
5166
|
+
* and until now nothing did — the screens were exported and nothing in this package or in
|
|
5167
|
+
* the app mounted them, so a flow that was built could not be reached.
|
|
5168
|
+
*
|
|
5169
|
+
* The shape follows `OrderTrackingView`: a container that owns the fetch and the state,
|
|
5170
|
+
* around views that own the drawing. Same reason as there — a screen that loads itself is
|
|
5171
|
+
* one a host can mount from a route with nothing but a reference.
|
|
5172
|
+
*
|
|
5173
|
+
* **It settles no money and it is not a refund** (ADR-0024). It records goods coming back
|
|
5174
|
+
* so the warehouse can expect them; DAZN remain merchant of record and tell us about the
|
|
5175
|
+
* refund afterwards through the inbound event.
|
|
5176
|
+
*/
|
|
5177
|
+
export declare function ReturnFlowView(props: ReturnFlowViewProps): JSX.Element;
|
|
5178
|
+
|
|
5179
|
+
export declare interface ReturnFlowViewProps {
|
|
5180
|
+
/** DAZN's order reference. Required to START a return. */
|
|
5181
|
+
orderRef?: string;
|
|
5182
|
+
/**
|
|
5183
|
+
* An existing return, e.g. `ord_GB26081021-R1`. Given one, the flow opens on its
|
|
5184
|
+
* progress instead of on the item picker — which is what the "Return in progress" row
|
|
5185
|
+
* on the order screen leads to.
|
|
5186
|
+
*/
|
|
5187
|
+
returnRef?: string;
|
|
5188
|
+
/** The label screen's "Done". Where it goes is the host's. */
|
|
5189
|
+
onDone?: () => void;
|
|
5190
|
+
/** Overrides the provider's locale for dates. */
|
|
5191
|
+
locale?: string;
|
|
5192
|
+
}
|
|
5193
|
+
|
|
5194
|
+
/**
|
|
5195
|
+
* "What do you want to return?" — Figma `Return flow` (4551:32294), screens 2 to 4.
|
|
5196
|
+
*
|
|
5197
|
+
* **A line is returnable only once it has a reason**, which is why the reason lives inside
|
|
5198
|
+
* the card rather than being asked once for the whole return: the frame puts a `Select
|
|
5199
|
+
* reason` control in every row, and a fan sending back two garments for two different
|
|
5200
|
+
* reasons is the ordinary case rather than an edge one.
|
|
5201
|
+
*
|
|
5202
|
+
* Quantity is not asked for. The frame offers no stepper, so a selected line returns in
|
|
5203
|
+
* full — and inventing a control the design does not draw would be the wrong way to
|
|
5204
|
+
* discover we needed one.
|
|
5205
|
+
*/
|
|
5206
|
+
export declare function ReturnItemsView({ order, onSubmit, busy }: ReturnItemsViewProps): JSX.Element;
|
|
5207
|
+
|
|
5208
|
+
export declare interface ReturnItemsViewProps {
|
|
5209
|
+
order: OrderDetail;
|
|
5210
|
+
/** Called with the lines the fan chose. The caller posts them and shows the label. */
|
|
5211
|
+
onSubmit: (items: ReturnRequestItem[]) => void;
|
|
5212
|
+
/** Set while the request is in flight. */
|
|
5213
|
+
busy?: boolean;
|
|
5214
|
+
}
|
|
5215
|
+
|
|
5216
|
+
/**
|
|
5217
|
+
* "We've generated your return label" — Figma `Return flow` (4551:32294), screen 5.
|
|
5218
|
+
*
|
|
5219
|
+
* Two numbered steps and a download. The label is offered as a link rather than a
|
|
5220
|
+
* scripted download because the sheet a fan sees this in may be a webview, and a
|
|
5221
|
+
* script-driven save is exactly what a webview blocks.
|
|
5222
|
+
*
|
|
5223
|
+
* **The button is only drawn when there is a label.** The frame promises the PDF by email
|
|
5224
|
+
* as well, and that promise is the one that survives a link this screen cannot produce —
|
|
5225
|
+
* so when `label_url` is absent the email line still tells the fan where to look, and no
|
|
5226
|
+
* button is offered that would 404.
|
|
5227
|
+
*/
|
|
5228
|
+
export declare function ReturnLabelView({ ret, onDone }: ReturnLabelViewProps): JSX.Element;
|
|
5229
|
+
|
|
5230
|
+
export declare interface ReturnLabelViewProps {
|
|
5231
|
+
ret: ReturnDetail;
|
|
5232
|
+
/** The frame's "Done". Where it goes is the host's — see `OrderConfirmationView`. */
|
|
5233
|
+
onDone?: () => void;
|
|
5234
|
+
}
|
|
5235
|
+
|
|
5236
|
+
/**
|
|
5237
|
+
* One line the fan is sending back.
|
|
5238
|
+
*
|
|
5239
|
+
* `qty` rather than a flag, because a line of three can have one returned, and `reason`
|
|
5240
|
+
* per line rather than per return, because the screen asks for it per line — the frame
|
|
5241
|
+
* puts a "Select reason" row inside each item card.
|
|
5242
|
+
*/
|
|
5243
|
+
declare const ReturnRequestItem: z.ZodObject<{
|
|
5244
|
+
line_ref: z.ZodString;
|
|
5245
|
+
qty: z.ZodNumber;
|
|
5246
|
+
reason: z.ZodEnum<["too_large", "too_small", "arrived_too_late", "item_damaged", "not_as_described", "changed_my_mind"]>;
|
|
5247
|
+
}, "strip", z.ZodTypeAny, {
|
|
5248
|
+
qty: number;
|
|
5249
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5250
|
+
line_ref: string;
|
|
5251
|
+
}, {
|
|
5252
|
+
qty: number;
|
|
5253
|
+
reason: "too_small" | "changed_my_mind" | "too_large" | "arrived_too_late" | "item_damaged" | "not_as_described";
|
|
5254
|
+
line_ref: string;
|
|
5255
|
+
}>;
|
|
5256
|
+
|
|
5257
|
+
declare type ReturnRequestItem = z.infer<typeof ReturnRequestItem>;
|
|
5258
|
+
|
|
5259
|
+
export declare function ReturnTrackingView({ ret, locale: localeProp }: ReturnTrackingViewProps): JSX.Element;
|
|
5260
|
+
|
|
5261
|
+
export declare interface ReturnTrackingViewProps {
|
|
5262
|
+
ret: ReturnDetail;
|
|
5263
|
+
/** Overrides the provider's locale for the reported date. */
|
|
5264
|
+
locale?: string;
|
|
5265
|
+
}
|
|
5266
|
+
|
|
3300
5267
|
declare interface Review {
|
|
3301
5268
|
quote: string;
|
|
3302
5269
|
author: string;
|
|
@@ -3363,6 +5330,23 @@ declare const SessionExchangeRequest: z.ZodObject<{
|
|
|
3363
5330
|
|
|
3364
5331
|
declare type SessionExchangeRequest = z.infer<typeof SessionExchangeRequest>;
|
|
3365
5332
|
|
|
5333
|
+
/**
|
|
5334
|
+
* The design's `.sheet-header` (404:5379): an empty 48 slot, the drag handle, and a close
|
|
5335
|
+
* disc — 48 tall.
|
|
5336
|
+
*
|
|
5337
|
+
* Three slots rather than two, so the handle is centred on the SHEET rather than on what
|
|
5338
|
+
* is left of it once the close control has taken its corner. Drawn once here because the
|
|
5339
|
+
* size guide and both reason sheets instance the same component, and a second hand-built
|
|
5340
|
+
* copy is a second one to drift.
|
|
5341
|
+
*/
|
|
5342
|
+
export declare function SheetHeader({ onClose, closeLabel }: SheetHeaderProps): JSX.Element;
|
|
5343
|
+
|
|
5344
|
+
export declare interface SheetHeaderProps {
|
|
5345
|
+
onClose: () => void;
|
|
5346
|
+
/** What the close control is called to assistive technology, e.g. "Close size guide". */
|
|
5347
|
+
closeLabel: string;
|
|
5348
|
+
}
|
|
5349
|
+
|
|
3366
5350
|
/**
|
|
3367
5351
|
* PDP shipping & returns block (mobile/pdp/shipping-info). Static informational copy —
|
|
3368
5352
|
* no free-shipping threshold (per design). The shopper picks the delivery tier at
|
|
@@ -3435,6 +5419,48 @@ export declare type ShopEvent = {
|
|
|
3435
5419
|
| {
|
|
3436
5420
|
type: 'stock_alert_requested';
|
|
3437
5421
|
sku: string;
|
|
5422
|
+
}
|
|
5423
|
+
/**
|
|
5424
|
+
* A fan asked for help with a delivered order (0.17.2).
|
|
5425
|
+
*
|
|
5426
|
+
* **The Contact Support form is DAZN's**, so this is a hand-off rather than a step in a
|
|
5427
|
+
* flow we own: the fan pressed the row on the order screen, and where they go next is
|
|
5428
|
+
* the host's to decide. Same shape as `checkout_handoff` — we know the moment and the
|
|
5429
|
+
* order, and nothing after it.
|
|
5430
|
+
*/
|
|
5431
|
+
| {
|
|
5432
|
+
type: 'support_requested';
|
|
5433
|
+
orderRef: string;
|
|
5434
|
+
}
|
|
5435
|
+
/**
|
|
5436
|
+
* The fan confirmed a cancellation and the engine accepted it (ADR-0024).
|
|
5437
|
+
*
|
|
5438
|
+
* Raised after the write succeeds, never on the tap: this is a statement that an order
|
|
5439
|
+
* has been cancelled, and a host acting on it — refreshing a list, telling analytics —
|
|
5440
|
+
* must not act on one that then failed.
|
|
5441
|
+
*/
|
|
5442
|
+
| {
|
|
5443
|
+
type: 'order_cancellation_requested';
|
|
5444
|
+
orderRef: string;
|
|
5445
|
+
reason: string;
|
|
5446
|
+
}
|
|
5447
|
+
/** "Reorder" on a cancelled order. The host owns where that goes; we only announce it. */
|
|
5448
|
+
| {
|
|
5449
|
+
type: 'reorder_requested';
|
|
5450
|
+
orderRef: string;
|
|
5451
|
+
}
|
|
5452
|
+
/**
|
|
5453
|
+
* A return has been RECORDED — the engine accepted it and minted the reference.
|
|
5454
|
+
*
|
|
5455
|
+
* Raised after the write, like the cancellation above, and for the same reason: a host
|
|
5456
|
+
* counting returns must not count one the engine refused. It is not a refund and must
|
|
5457
|
+
* not be treated as one; DAZN remain merchant of record and say what is paid back
|
|
5458
|
+
* (ADR-0024).
|
|
5459
|
+
*/
|
|
5460
|
+
| {
|
|
5461
|
+
type: 'return_requested';
|
|
5462
|
+
orderRef: string;
|
|
5463
|
+
returnRef: string;
|
|
3438
5464
|
} | {
|
|
3439
5465
|
type: 'checkout_handoff';
|
|
3440
5466
|
cartId: string;
|
|
@@ -3736,13 +5762,18 @@ export declare interface ShopSurfaceProps extends Omit<ComponentPropsWithoutRef<
|
|
|
3736
5762
|
export declare type ShopTone = 'dark' | 'light';
|
|
3737
5763
|
|
|
3738
5764
|
/**
|
|
3739
|
-
*
|
|
5765
|
+
* Sizing help, shown in the PDP "Size guide" overlay (Figma `size-guide`, 4882:58365).
|
|
5766
|
+
*
|
|
5767
|
+
* **A guide belongs to a fit, not to a category.** The design's three variants are
|
|
5768
|
+
* "Oversized hoodies and zip-ups", "Oversized t-shirts" and "Slim fit t-shirts" — two of
|
|
5769
|
+
* which are the same category cut two ways, so a chart keyed by category cannot express
|
|
5770
|
+
* them. `subtitle` is the fit's own name and is what a fan reads to check they are
|
|
5771
|
+
* looking at the right chart.
|
|
3740
5772
|
*
|
|
3741
5773
|
* `rows` is a measurement table (one row per size). It is **optional and may be empty**:
|
|
3742
|
-
*
|
|
3743
|
-
*
|
|
3744
|
-
*
|
|
3745
|
-
* alone; a consumer must not synthesise the missing numbers.
|
|
5774
|
+
* garment measurements are the kind of value that must never be guessed — a fabricated
|
|
5775
|
+
* chest measurement sends a fan the wrong size. A guide with notes but no `rows` is valid
|
|
5776
|
+
* and renders as fit guidance alone; a consumer must not synthesise the missing numbers.
|
|
3746
5777
|
*
|
|
3747
5778
|
* The array fields are `.optional()` rather than `.default([])` deliberately. A zod
|
|
3748
5779
|
* default makes the schema's input and output types diverge, and this package ships two
|
|
@@ -3752,35 +5783,86 @@ export declare type ShopTone = 'dark' | 'light';
|
|
|
3752
5783
|
*/
|
|
3753
5784
|
declare const SizeGuide: z.ZodObject<{
|
|
3754
5785
|
title: z.ZodString;
|
|
3755
|
-
/**
|
|
5786
|
+
/** The fit this chart is for, e.g. "Oversized hoodies and zip-ups · Unisex". */
|
|
5787
|
+
subtitle: z.ZodOptional<z.ZodString>;
|
|
5788
|
+
/**
|
|
5789
|
+
* Column headings for `rows`, e.g. `['Size', 'Chest', 'Length']`.
|
|
5790
|
+
*
|
|
5791
|
+
* Bare nouns, with no unit in the heading: the unit belongs to the whole chart and is
|
|
5792
|
+
* named by `unit`, so that a consumer converting to the other unit does not leave
|
|
5793
|
+
* "Chest (cm)" written above a column of inches.
|
|
5794
|
+
*/
|
|
3756
5795
|
columns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
3757
5796
|
/** One row per size; each row's length matches `columns`. */
|
|
3758
5797
|
rows: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
5798
|
+
/**
|
|
5799
|
+
* The unit `rows` are written in.
|
|
5800
|
+
*
|
|
5801
|
+
* Absent means the numbers carry no declared unit — a consumer must then show them as
|
|
5802
|
+
* they are and offer no conversion, because it has nothing to convert from.
|
|
5803
|
+
*/
|
|
5804
|
+
unit: z.ZodOptional<z.ZodEnum<["cm", "in"]>>;
|
|
5805
|
+
/** The line under the table, e.g. "All measurements are taken from the garment laid flat, not from the body." */
|
|
5806
|
+
note: z.ZodOptional<z.ZodString>;
|
|
5807
|
+
/** The "How to measure" list. Absent/empty = the section is not drawn. */
|
|
5808
|
+
measurements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5809
|
+
/** e.g. "Chest width". */
|
|
5810
|
+
label: z.ZodString;
|
|
5811
|
+
/** e.g. "Measured 2.5 cm below the armhole, garment flat." */
|
|
5812
|
+
description: z.ZodString;
|
|
5813
|
+
}, "strip", z.ZodTypeAny, {
|
|
5814
|
+
label: string;
|
|
5815
|
+
description: string;
|
|
5816
|
+
}, {
|
|
5817
|
+
label: string;
|
|
5818
|
+
description: string;
|
|
5819
|
+
}>, "many">>;
|
|
5820
|
+
/** The fabric line, e.g. "100% cotton · 220–240 GSM · Oversized fit · Sizes XS–XL". */
|
|
5821
|
+
fabric: z.ZodOptional<z.ZodString>;
|
|
3759
5822
|
/** Free-text fit guidance, e.g. "Relaxed, slightly oversized fit". */
|
|
3760
5823
|
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
3761
5824
|
}, "strip", z.ZodTypeAny, {
|
|
3762
5825
|
title: string;
|
|
5826
|
+
subtitle?: string | undefined;
|
|
3763
5827
|
columns?: string[] | undefined;
|
|
3764
5828
|
rows?: string[][] | undefined;
|
|
5829
|
+
unit?: "cm" | "in" | undefined;
|
|
5830
|
+
note?: string | undefined;
|
|
5831
|
+
measurements?: {
|
|
5832
|
+
label: string;
|
|
5833
|
+
description: string;
|
|
5834
|
+
}[] | undefined;
|
|
5835
|
+
fabric?: string | undefined;
|
|
3765
5836
|
notes?: string[] | undefined;
|
|
3766
5837
|
}, {
|
|
3767
5838
|
title: string;
|
|
5839
|
+
subtitle?: string | undefined;
|
|
3768
5840
|
columns?: string[] | undefined;
|
|
3769
5841
|
rows?: string[][] | undefined;
|
|
5842
|
+
unit?: "cm" | "in" | undefined;
|
|
5843
|
+
note?: string | undefined;
|
|
5844
|
+
measurements?: {
|
|
5845
|
+
label: string;
|
|
5846
|
+
description: string;
|
|
5847
|
+
}[] | undefined;
|
|
5848
|
+
fabric?: string | undefined;
|
|
3770
5849
|
notes?: string[] | undefined;
|
|
3771
5850
|
}>;
|
|
3772
5851
|
|
|
3773
5852
|
declare type SizeGuide = z.infer<typeof SizeGuide>;
|
|
3774
5853
|
|
|
3775
5854
|
/**
|
|
3776
|
-
* The
|
|
3777
|
-
*
|
|
5855
|
+
* The PDP size guide (Figma `size-guide`, 4882:58365) — a bottom sheet over the product,
|
|
5856
|
+
* opened from the "Size guide" row under the size chips.
|
|
3778
5857
|
*
|
|
3779
|
-
*
|
|
3780
|
-
*
|
|
3781
|
-
*
|
|
3782
|
-
*
|
|
3783
|
-
*
|
|
5858
|
+
* **It renders whatever the guide actually carries, and draws nothing it has not been
|
|
5859
|
+
* given.** No chart, no table; no `measurements`, no "How to measure"; no `fabric`, no
|
|
5860
|
+
* fabric line. A size guide is one of the few screens where filling a gap with something
|
|
5861
|
+
* plausible has a cost measured in returns, so every block here is conditional and none
|
|
5862
|
+
* of them has a fallback.
|
|
5863
|
+
*
|
|
5864
|
+
* The cm/inches control is the one place the sheet computes rather than renders, and it
|
|
5865
|
+
* only appears when the guide declares the unit its numbers are in — see `convert`.
|
|
3784
5866
|
*/
|
|
3785
5867
|
export declare function SizeGuideSheet({ guide, onClose }: {
|
|
3786
5868
|
guide: SizeGuide;
|
|
@@ -3912,13 +5994,13 @@ declare const SupportTicketRequest: z.ZodObject<{
|
|
|
3912
5994
|
image_url: z.ZodOptional<z.ZodString>;
|
|
3913
5995
|
}, "strict", z.ZodTypeAny, {
|
|
3914
5996
|
email: string;
|
|
3915
|
-
category: string;
|
|
3916
5997
|
description: string;
|
|
5998
|
+
category: string;
|
|
3917
5999
|
image_url?: string | undefined;
|
|
3918
6000
|
}, {
|
|
3919
6001
|
email: string;
|
|
3920
|
-
category: string;
|
|
3921
6002
|
description: string;
|
|
6003
|
+
category: string;
|
|
3922
6004
|
image_url?: string | undefined;
|
|
3923
6005
|
}>;
|
|
3924
6006
|
|
|
@@ -3926,6 +6008,22 @@ declare type SupportTicketRequest = z.infer<typeof SupportTicketRequest>;
|
|
|
3926
6008
|
|
|
3927
6009
|
export declare function swatchColour(name: string): string;
|
|
3928
6010
|
|
|
6011
|
+
/**
|
|
6012
|
+
* One row, structurally.
|
|
6013
|
+
*
|
|
6014
|
+
* Deliberately not `OrderProgressEntry` itself. The return timeline (ADR-0024) is drawn
|
|
6015
|
+
* by the same Figma component with a different set of steps — reported, received,
|
|
6016
|
+
* completed — so its entries carry a different `step` enum and would not assign. Nothing
|
|
6017
|
+
* here interprets `step` beyond keying on it, so the widened type costs nothing and saves
|
|
6018
|
+
* a second copy of the timeline that would drift from this one.
|
|
6019
|
+
*/
|
|
6020
|
+
declare interface TimelineEntry {
|
|
6021
|
+
step: string;
|
|
6022
|
+
label: string;
|
|
6023
|
+
at?: string;
|
|
6024
|
+
current: boolean;
|
|
6025
|
+
}
|
|
6026
|
+
|
|
3929
6027
|
/** An optional inline action, e.g. the undo offered after removing a cart line. */
|
|
3930
6028
|
export declare interface ToastAction {
|
|
3931
6029
|
label: string;
|