kupos-ui-components-lib 9.6.10 → 9.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KuposUIComponent.d.ts +3 -0
- package/dist/components/ServiceItem/PeruServiceItemDesktop.d.ts +1 -1
- package/dist/components/ServiceItem/PeruServiceItemDesktop.js +133 -189
- package/dist/components/ServiceItem/ServiceItemDesktop.d.ts +1 -1
- package/dist/components/ServiceItem/ServiceItemDesktop.js +12 -3
- package/dist/components/ServiceItem/ServiceItemMobile.js +1 -1
- package/dist/components/ServiceItem/mobileTypes.d.ts +1 -0
- package/dist/components/ServiceItem/types.d.ts +12 -0
- package/dist/styles.css +165 -0
- package/dist/types.d.ts +1 -0
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.d.ts +2 -1
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.js +6 -4
- package/dist/ui/FeatureServiceUI/FeatureServiceUi.d.ts +7 -1
- package/dist/ui/FeatureServiceUI/FeatureServiceUi.js +55 -24
- package/dist/ui/mobileweb/ExpandedDropdownMobile.d.ts +2 -1
- package/dist/ui/mobileweb/ExpandedDropdownMobile.js +6 -3
- package/dist/utils/CommonService.js +11 -1
- package/package.json +1 -1
- package/src/KuposUIComponent.tsx +3 -0
- package/src/assets/images/anims/service_list/thunder_icon.json +1 -0
- package/src/components/ServiceItem/PeruServiceItemDesktop.tsx +255 -322
- package/src/components/ServiceItem/ServiceItemDesktop.tsx +38 -5
- package/src/components/ServiceItem/ServiceItemMobile.tsx +1 -0
- package/src/components/ServiceItem/mobileTypes.ts +1 -0
- package/src/components/ServiceItem/types.ts +13 -0
- package/src/types.ts +1 -0
- package/src/ui/ExpendedDropDown/ExpandedDropdown.tsx +12 -3
- package/src/ui/FeatureServiceUI/FeatureServiceUi.tsx +622 -0
- package/src/ui/mobileweb/ExpandedDropdownMobile.tsx +13 -2
- package/src/utils/CommonService.ts +13 -1
package/dist/styles.css
CHANGED
|
@@ -63,6 +63,9 @@
|
|
|
63
63
|
.right-\[0px\] {
|
|
64
64
|
right: 0px;
|
|
65
65
|
}
|
|
66
|
+
.right-\[18px\] {
|
|
67
|
+
right: 18px;
|
|
68
|
+
}
|
|
66
69
|
.-bottom-\[9\%\] {
|
|
67
70
|
bottom: calc(9% * -1);
|
|
68
71
|
}
|
|
@@ -75,6 +78,9 @@
|
|
|
75
78
|
.-bottom-\[36px\] {
|
|
76
79
|
bottom: calc(36px * -1);
|
|
77
80
|
}
|
|
81
|
+
.bottom-\[11px\] {
|
|
82
|
+
bottom: 11px;
|
|
83
|
+
}
|
|
78
84
|
.bottom-\[35px\] {
|
|
79
85
|
bottom: 35px;
|
|
80
86
|
}
|
|
@@ -171,6 +177,9 @@
|
|
|
171
177
|
.mx-auto {
|
|
172
178
|
margin-inline: auto;
|
|
173
179
|
}
|
|
180
|
+
.my-\[14px\] {
|
|
181
|
+
margin-block: 14px;
|
|
182
|
+
}
|
|
174
183
|
.-mt-\[15px\] {
|
|
175
184
|
margin-top: calc(15px * -1);
|
|
176
185
|
}
|
|
@@ -189,12 +198,21 @@
|
|
|
189
198
|
.mt-\[5px\] {
|
|
190
199
|
margin-top: 5px;
|
|
191
200
|
}
|
|
201
|
+
.mt-\[6px\] {
|
|
202
|
+
margin-top: 6px;
|
|
203
|
+
}
|
|
204
|
+
.mt-\[8px\] {
|
|
205
|
+
margin-top: 8px;
|
|
206
|
+
}
|
|
192
207
|
.mt-\[10px\] {
|
|
193
208
|
margin-top: 10px;
|
|
194
209
|
}
|
|
195
210
|
.mt-\[13px\] {
|
|
196
211
|
margin-top: 13px;
|
|
197
212
|
}
|
|
213
|
+
.mt-\[14px\] {
|
|
214
|
+
margin-top: 14px;
|
|
215
|
+
}
|
|
198
216
|
.mt-\[15px\] {
|
|
199
217
|
margin-top: 15px;
|
|
200
218
|
}
|
|
@@ -279,6 +297,9 @@
|
|
|
279
297
|
.ml-\[10px\] {
|
|
280
298
|
margin-left: 10px;
|
|
281
299
|
}
|
|
300
|
+
.ml-\[12px\] {
|
|
301
|
+
margin-left: 12px;
|
|
302
|
+
}
|
|
282
303
|
.ml-\[50px\] {
|
|
283
304
|
margin-left: 50px;
|
|
284
305
|
}
|
|
@@ -336,6 +357,9 @@
|
|
|
336
357
|
.h-\[30px\] {
|
|
337
358
|
height: 30px;
|
|
338
359
|
}
|
|
360
|
+
.h-\[34px\] {
|
|
361
|
+
height: 34px;
|
|
362
|
+
}
|
|
339
363
|
.h-\[100\%\] {
|
|
340
364
|
height: 100%;
|
|
341
365
|
}
|
|
@@ -372,6 +396,12 @@
|
|
|
372
396
|
.w-\[20px\] {
|
|
373
397
|
width: 20px;
|
|
374
398
|
}
|
|
399
|
+
.w-\[30px\] {
|
|
400
|
+
width: 30px;
|
|
401
|
+
}
|
|
402
|
+
.w-\[34px\] {
|
|
403
|
+
width: 34px;
|
|
404
|
+
}
|
|
375
405
|
.w-\[50\%\] {
|
|
376
406
|
width: 50%;
|
|
377
407
|
}
|
|
@@ -396,6 +426,12 @@
|
|
|
396
426
|
.w-\[115px\] {
|
|
397
427
|
width: 115px;
|
|
398
428
|
}
|
|
429
|
+
.w-\[120px\] {
|
|
430
|
+
width: 120px;
|
|
431
|
+
}
|
|
432
|
+
.w-\[130px\] {
|
|
433
|
+
width: 130px;
|
|
434
|
+
}
|
|
399
435
|
.w-\[150px\] {
|
|
400
436
|
width: 150px;
|
|
401
437
|
}
|
|
@@ -434,6 +470,12 @@
|
|
|
434
470
|
.max-w-\[165px\] {
|
|
435
471
|
max-width: 165px;
|
|
436
472
|
}
|
|
473
|
+
.max-w-\[220px\] {
|
|
474
|
+
max-width: 220px;
|
|
475
|
+
}
|
|
476
|
+
.max-w-full {
|
|
477
|
+
max-width: 100%;
|
|
478
|
+
}
|
|
437
479
|
.min-w-\[75px\] {
|
|
438
480
|
min-width: 75px;
|
|
439
481
|
}
|
|
@@ -464,6 +506,9 @@
|
|
|
464
506
|
.cursor-default {
|
|
465
507
|
cursor: default;
|
|
466
508
|
}
|
|
509
|
+
.cursor-not-allowed {
|
|
510
|
+
cursor: not-allowed;
|
|
511
|
+
}
|
|
467
512
|
.cursor-pointer {
|
|
468
513
|
cursor: pointer;
|
|
469
514
|
}
|
|
@@ -476,12 +521,21 @@
|
|
|
476
521
|
.grid-cols-2 {
|
|
477
522
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
478
523
|
}
|
|
524
|
+
.grid-cols-3 {
|
|
525
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
526
|
+
}
|
|
527
|
+
.grid-cols-4 {
|
|
528
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
529
|
+
}
|
|
479
530
|
.grid-cols-\[0\.8fr_auto_26\%_1fr\] {
|
|
480
531
|
grid-template-columns: 0.8fr auto 26% 1fr;
|
|
481
532
|
}
|
|
482
533
|
.grid-cols-\[1\.5fr_1fr_auto\] {
|
|
483
534
|
grid-template-columns: 1.5fr 1fr auto;
|
|
484
535
|
}
|
|
536
|
+
.grid-cols-\[23\%_50\%_27\%\] {
|
|
537
|
+
grid-template-columns: 23% 50% 27%;
|
|
538
|
+
}
|
|
485
539
|
.grid-cols-\[26px_auto_26\%_1fr\] {
|
|
486
540
|
grid-template-columns: 26px auto 26% 1fr;
|
|
487
541
|
}
|
|
@@ -509,6 +563,9 @@
|
|
|
509
563
|
.items-start {
|
|
510
564
|
align-items: flex-start;
|
|
511
565
|
}
|
|
566
|
+
.items-stretch {
|
|
567
|
+
align-items: stretch;
|
|
568
|
+
}
|
|
512
569
|
.justify-between {
|
|
513
570
|
justify-content: space-between;
|
|
514
571
|
}
|
|
@@ -551,6 +608,12 @@
|
|
|
551
608
|
.gap-\[14px\] {
|
|
552
609
|
gap: 14px;
|
|
553
610
|
}
|
|
611
|
+
.gap-\[16px\] {
|
|
612
|
+
gap: 16px;
|
|
613
|
+
}
|
|
614
|
+
.gap-\[20px\] {
|
|
615
|
+
gap: 20px;
|
|
616
|
+
}
|
|
554
617
|
.gap-x-\[2\%\] {
|
|
555
618
|
-moz-column-gap: 2%;
|
|
556
619
|
column-gap: 2%;
|
|
@@ -559,12 +622,20 @@
|
|
|
559
622
|
-moz-column-gap: 8px;
|
|
560
623
|
column-gap: 8px;
|
|
561
624
|
}
|
|
625
|
+
.truncate {
|
|
626
|
+
overflow: hidden;
|
|
627
|
+
text-overflow: ellipsis;
|
|
628
|
+
white-space: nowrap;
|
|
629
|
+
}
|
|
562
630
|
.overflow-hidden {
|
|
563
631
|
overflow: hidden;
|
|
564
632
|
}
|
|
565
633
|
.overflow-y-hidden {
|
|
566
634
|
overflow-y: hidden;
|
|
567
635
|
}
|
|
636
|
+
.rounded-\[4px\] {
|
|
637
|
+
border-radius: 4px;
|
|
638
|
+
}
|
|
568
639
|
.rounded-\[8px\] {
|
|
569
640
|
border-radius: 8px;
|
|
570
641
|
}
|
|
@@ -577,6 +648,9 @@
|
|
|
577
648
|
.rounded-\[15px\] {
|
|
578
649
|
border-radius: 15px;
|
|
579
650
|
}
|
|
651
|
+
.rounded-\[16px\] {
|
|
652
|
+
border-radius: 16px;
|
|
653
|
+
}
|
|
580
654
|
.rounded-\[18px\] {
|
|
581
655
|
border-radius: 18px;
|
|
582
656
|
}
|
|
@@ -620,6 +694,10 @@
|
|
|
620
694
|
border-top-style: var(--tw-border-style);
|
|
621
695
|
border-top-width: 8px;
|
|
622
696
|
}
|
|
697
|
+
.border-r {
|
|
698
|
+
border-right-style: var(--tw-border-style);
|
|
699
|
+
border-right-width: 1px;
|
|
700
|
+
}
|
|
623
701
|
.border-r-8 {
|
|
624
702
|
border-right-style: var(--tw-border-style);
|
|
625
703
|
border-right-width: 8px;
|
|
@@ -648,6 +726,10 @@
|
|
|
648
726
|
border-bottom-style: var(--tw-border-style);
|
|
649
727
|
border-bottom-width: 8px;
|
|
650
728
|
}
|
|
729
|
+
.border-l {
|
|
730
|
+
border-left-style: var(--tw-border-style);
|
|
731
|
+
border-left-width: 1px;
|
|
732
|
+
}
|
|
651
733
|
.border-l-8 {
|
|
652
734
|
border-left-style: var(--tw-border-style);
|
|
653
735
|
border-left-width: 8px;
|
|
@@ -664,6 +746,9 @@
|
|
|
664
746
|
--tw-border-style: none;
|
|
665
747
|
border-style: none;
|
|
666
748
|
}
|
|
749
|
+
.border-\[\#363c48\] {
|
|
750
|
+
border-color: #363c48;
|
|
751
|
+
}
|
|
667
752
|
.border-\[\#ccc\] {
|
|
668
753
|
border-color: #ccc;
|
|
669
754
|
}
|
|
@@ -682,9 +767,21 @@
|
|
|
682
767
|
.border-l-transparent {
|
|
683
768
|
border-left-color: transparent;
|
|
684
769
|
}
|
|
770
|
+
.bg-\[\#0C1421\] {
|
|
771
|
+
background-color: #0C1421;
|
|
772
|
+
}
|
|
773
|
+
.bg-\[\#2d374d\] {
|
|
774
|
+
background-color: #2d374d;
|
|
775
|
+
}
|
|
776
|
+
.bg-\[\#222b3d\] {
|
|
777
|
+
background-color: #222b3d;
|
|
778
|
+
}
|
|
685
779
|
.bg-\[\#E6E6E6\] {
|
|
686
780
|
background-color: #E6E6E6;
|
|
687
781
|
}
|
|
782
|
+
.bg-\[\#FF8F45\] {
|
|
783
|
+
background-color: #FF8F45;
|
|
784
|
+
}
|
|
688
785
|
.bg-\[\#FFF2F2\] {
|
|
689
786
|
background-color: #FFF2F2;
|
|
690
787
|
}
|
|
@@ -725,6 +822,9 @@
|
|
|
725
822
|
.p-\[10px_15px\] {
|
|
726
823
|
padding: 10px 15px;
|
|
727
824
|
}
|
|
825
|
+
.p-\[14px\] {
|
|
826
|
+
padding: 14px;
|
|
827
|
+
}
|
|
728
828
|
.p-\[15px\] {
|
|
729
829
|
padding: 15px;
|
|
730
830
|
}
|
|
@@ -758,9 +858,18 @@
|
|
|
758
858
|
.px-\[15px\] {
|
|
759
859
|
padding-inline: 15px;
|
|
760
860
|
}
|
|
861
|
+
.px-\[16px\] {
|
|
862
|
+
padding-inline: 16px;
|
|
863
|
+
}
|
|
761
864
|
.px-\[20px\] {
|
|
762
865
|
padding-inline: 20px;
|
|
763
866
|
}
|
|
867
|
+
.px-\[22px\] {
|
|
868
|
+
padding-inline: 22px;
|
|
869
|
+
}
|
|
870
|
+
.py-\[2px\] {
|
|
871
|
+
padding-block: 2px;
|
|
872
|
+
}
|
|
764
873
|
.py-\[4px\] {
|
|
765
874
|
padding-block: 4px;
|
|
766
875
|
}
|
|
@@ -785,6 +894,12 @@
|
|
|
785
894
|
.pt-\[6px\] {
|
|
786
895
|
padding-top: 6px;
|
|
787
896
|
}
|
|
897
|
+
.pt-\[10px\] {
|
|
898
|
+
padding-top: 10px;
|
|
899
|
+
}
|
|
900
|
+
.pt-\[14px\] {
|
|
901
|
+
padding-top: 14px;
|
|
902
|
+
}
|
|
788
903
|
.pt-\[20px\] {
|
|
789
904
|
padding-top: 20px;
|
|
790
905
|
}
|
|
@@ -800,6 +915,9 @@
|
|
|
800
915
|
.pt-\[50px\] {
|
|
801
916
|
padding-top: 50px;
|
|
802
917
|
}
|
|
918
|
+
.pr-\[10px\] {
|
|
919
|
+
padding-right: 10px;
|
|
920
|
+
}
|
|
803
921
|
.pr-\[15px\] {
|
|
804
922
|
padding-right: 15px;
|
|
805
923
|
}
|
|
@@ -809,6 +927,9 @@
|
|
|
809
927
|
.pr-\[22px\] {
|
|
810
928
|
padding-right: 22px;
|
|
811
929
|
}
|
|
930
|
+
.pb-\[6px\] {
|
|
931
|
+
padding-bottom: 6px;
|
|
932
|
+
}
|
|
812
933
|
.pb-\[7px\] {
|
|
813
934
|
padding-bottom: 7px;
|
|
814
935
|
}
|
|
@@ -827,6 +948,9 @@
|
|
|
827
948
|
.pl-\[6px\] {
|
|
828
949
|
padding-left: 6px;
|
|
829
950
|
}
|
|
951
|
+
.pl-\[22px\] {
|
|
952
|
+
padding-left: 22px;
|
|
953
|
+
}
|
|
830
954
|
.text-center {
|
|
831
955
|
text-align: center;
|
|
832
956
|
}
|
|
@@ -872,9 +996,21 @@
|
|
|
872
996
|
.text-\[18px\] {
|
|
873
997
|
font-size: 18px;
|
|
874
998
|
}
|
|
999
|
+
.text-\[20px\] {
|
|
1000
|
+
font-size: 20px;
|
|
1001
|
+
}
|
|
875
1002
|
.text-\[22px\] {
|
|
876
1003
|
font-size: 22px;
|
|
877
1004
|
}
|
|
1005
|
+
.text-\[25px\] {
|
|
1006
|
+
font-size: 25px;
|
|
1007
|
+
}
|
|
1008
|
+
.text-\[26px\] {
|
|
1009
|
+
font-size: 26px;
|
|
1010
|
+
}
|
|
1011
|
+
.text-\[28px\] {
|
|
1012
|
+
font-size: 28px;
|
|
1013
|
+
}
|
|
878
1014
|
.text-\[42px\] {
|
|
879
1015
|
font-size: 42px;
|
|
880
1016
|
}
|
|
@@ -882,6 +1018,10 @@
|
|
|
882
1018
|
--tw-leading: 1.3;
|
|
883
1019
|
line-height: 1.3;
|
|
884
1020
|
}
|
|
1021
|
+
.leading-\[14px\] {
|
|
1022
|
+
--tw-leading: 14px;
|
|
1023
|
+
line-height: 14px;
|
|
1024
|
+
}
|
|
885
1025
|
.leading-\[20px\] {
|
|
886
1026
|
--tw-leading: 20px;
|
|
887
1027
|
line-height: 20px;
|
|
@@ -902,6 +1042,10 @@
|
|
|
902
1042
|
--tw-leading: 1;
|
|
903
1043
|
line-height: 1;
|
|
904
1044
|
}
|
|
1045
|
+
.font-\[9px\] {
|
|
1046
|
+
--tw-font-weight: 9px;
|
|
1047
|
+
font-weight: 9px;
|
|
1048
|
+
}
|
|
905
1049
|
.font-\[14px\] {
|
|
906
1050
|
--tw-font-weight: 14px;
|
|
907
1051
|
font-weight: 14px;
|
|
@@ -923,12 +1067,27 @@
|
|
|
923
1067
|
.whitespace-nowrap {
|
|
924
1068
|
white-space: nowrap;
|
|
925
1069
|
}
|
|
1070
|
+
.text-\[\#4a4a4a\] {
|
|
1071
|
+
color: #4a4a4a;
|
|
1072
|
+
}
|
|
926
1073
|
.text-\[\#9f9f9f\] {
|
|
927
1074
|
color: #9f9f9f;
|
|
928
1075
|
}
|
|
1076
|
+
.text-\[\#666\] {
|
|
1077
|
+
color: #666;
|
|
1078
|
+
}
|
|
1079
|
+
.text-\[\#171717\] {
|
|
1080
|
+
color: #171717;
|
|
1081
|
+
}
|
|
1082
|
+
.text-\[\#272727\] {
|
|
1083
|
+
color: #272727;
|
|
1084
|
+
}
|
|
929
1085
|
.text-\[\#464647\] {
|
|
930
1086
|
color: #464647;
|
|
931
1087
|
}
|
|
1088
|
+
.text-\[\#FF8F45\] {
|
|
1089
|
+
color: #FF8F45;
|
|
1090
|
+
}
|
|
932
1091
|
.text-\[\#c0c0c0\] {
|
|
933
1092
|
color: #c0c0c0;
|
|
934
1093
|
}
|
|
@@ -944,6 +1103,9 @@
|
|
|
944
1103
|
.text-\[\#fff\] {
|
|
945
1104
|
color: #fff;
|
|
946
1105
|
}
|
|
1106
|
+
.text-\[red\] {
|
|
1107
|
+
color: red;
|
|
1108
|
+
}
|
|
947
1109
|
.capitalize {
|
|
948
1110
|
text-transform: capitalize;
|
|
949
1111
|
}
|
|
@@ -963,6 +1125,9 @@
|
|
|
963
1125
|
.opacity-0 {
|
|
964
1126
|
opacity: 0%;
|
|
965
1127
|
}
|
|
1128
|
+
.opacity-50 {
|
|
1129
|
+
opacity: 50%;
|
|
1130
|
+
}
|
|
966
1131
|
.opacity-100 {
|
|
967
1132
|
opacity: 100%;
|
|
968
1133
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export interface ServiceItemProps {
|
|
|
108
108
|
frazaIcon?: string;
|
|
109
109
|
specialDeparture?: string;
|
|
110
110
|
fireIcon?: string;
|
|
111
|
+
cancelTicketIcon?: string;
|
|
111
112
|
[key: string]: string | Record<string, string | undefined> | undefined;
|
|
112
113
|
};
|
|
113
114
|
useLottieFor?: string[];
|
|
@@ -13,6 +13,7 @@ interface ExpandedDropdownProps {
|
|
|
13
13
|
isSoldOut?: boolean;
|
|
14
14
|
ladiesBookedSeats?: string;
|
|
15
15
|
isDpEnabled?: boolean;
|
|
16
|
+
renderIcon?: any;
|
|
16
17
|
}
|
|
17
|
-
declare function ExpandedDropdown({ serviceItem, isPeru, translation, getAnimationIcon, isChangeTicket, isSoldOut, ladiesBookedSeats, isDpEnabled, }: ExpandedDropdownProps): React.ReactElement;
|
|
18
|
+
declare function ExpandedDropdown({ serviceItem, isPeru, translation, getAnimationIcon, isChangeTicket, isSoldOut, ladiesBookedSeats, isDpEnabled, renderIcon, }: ExpandedDropdownProps): React.ReactElement;
|
|
18
19
|
export default ExpandedDropdown;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import LottiePlayer from "../../assets/LottiePlayer";
|
|
3
|
-
function ExpandedDropdown({ serviceItem, isPeru = false, translation = {}, getAnimationIcon, isChangeTicket = false, isSoldOut, ladiesBookedSeats, isDpEnabled, }) {
|
|
3
|
+
function ExpandedDropdown({ serviceItem, isPeru = false, translation = {}, getAnimationIcon, isChangeTicket = false, isSoldOut, ladiesBookedSeats, isDpEnabled, renderIcon, }) {
|
|
4
4
|
const hasPetInfo = serviceItem.pet_seat_info &&
|
|
5
5
|
Object.keys(serviceItem.pet_seat_info).length > 0;
|
|
6
6
|
return (React.createElement("div", { className: "px-[15px] pt-[26px] pb-[14px] -mt-[16px] pt-[35px] relative -z-9", style: {
|
|
@@ -22,7 +22,9 @@ function ExpandedDropdown({ serviceItem, isPeru = false, translation = {}, getAn
|
|
|
22
22
|
" horas antes"),
|
|
23
23
|
" ",
|
|
24
24
|
"de la salida del bus. El monto ser\u00E1 reembolsado a tu billetera kupospay."))) : (React.createElement("div", { className: "flex gap-[8px] text-[13.33px]" },
|
|
25
|
-
React.createElement("span", { style: { marginTop: "2px" } },
|
|
25
|
+
React.createElement("span", { style: { marginTop: "2px" } },
|
|
26
|
+
" ",
|
|
27
|
+
React.createElement(LottiePlayer, { animationData: getAnimationIcon("flexibleIcon"), width: "20px", height: "20px" })),
|
|
26
28
|
React.createElement("span", null,
|
|
27
29
|
React.createElement("span", null,
|
|
28
30
|
React.createElement("span", { className: "bold-text" }, "Pasaje flexible:"),
|
|
@@ -33,7 +35,7 @@ function ExpandedDropdown({ serviceItem, isPeru = false, translation = {}, getAn
|
|
|
33
35
|
React.createElement("span", null, translation === null || translation === void 0 ? void 0 : translation.petFriendly)))),
|
|
34
36
|
ladiesBookedSeats &&
|
|
35
37
|
String(ladiesBookedSeats).trim() !== "" &&
|
|
36
|
-
isDpEnabled === true && (React.createElement("div", { className: "flex gap-[6px]" },
|
|
38
|
+
isDpEnabled === true && (React.createElement("div", { className: "flex gap-[6px] items-center" },
|
|
37
39
|
React.createElement("span", { style: { marginTop: "2px" } },
|
|
38
40
|
" ",
|
|
39
41
|
React.createElement(LottiePlayer, { animationData: getAnimationIcon("femaaleAnimation"), width: "20px", height: "20px" })),
|
|
@@ -41,7 +43,7 @@ function ExpandedDropdown({ serviceItem, isPeru = false, translation = {}, getAn
|
|
|
41
43
|
React.createElement("span", { className: "bold-text" }, "Asientos para damas:"),
|
|
42
44
|
" Esta empresa cuenta con asientos recomendados para mujeres."))),
|
|
43
45
|
React.createElement("div", { className: "flex gap-[8px] text-[13.33px]" },
|
|
44
|
-
React.createElement("span",
|
|
46
|
+
React.createElement("span", null, renderIcon("cancelTicketIcon", "14px")),
|
|
45
47
|
React.createElement("span", null,
|
|
46
48
|
React.createElement("span", { className: "bold-text" }, "Pol\u00EDticas de anulaci\u00F3n:"),
|
|
47
49
|
" Tu pasaje puede ser anulado de forma online",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
declare const FeatureServiceUi: ({ serviceItem, showTopLabel, colors, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, }: {
|
|
2
|
+
declare const FeatureServiceUi: ({ serviceItem, showTopLabel, colors, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, isFeatureDropDownExpand, onToggleExpand, ticketQuantity, onIncreaseTicketQuantity, onDecreaseTicketQuantity, onBookButtonPress, }: {
|
|
3
3
|
serviceItem: any;
|
|
4
4
|
showTopLabel: any;
|
|
5
5
|
colors: any;
|
|
@@ -9,5 +9,11 @@ declare const FeatureServiceUi: ({ serviceItem, showTopLabel, colors, isSoldOut,
|
|
|
9
9
|
cityDestination: any;
|
|
10
10
|
renderIcon: any;
|
|
11
11
|
viewersConfig: any;
|
|
12
|
+
isFeatureDropDownExpand: any;
|
|
13
|
+
onToggleExpand: any;
|
|
14
|
+
ticketQuantity?: number;
|
|
15
|
+
onIncreaseTicketQuantity: any;
|
|
16
|
+
onDecreaseTicketQuantity: any;
|
|
17
|
+
onBookButtonPress: any;
|
|
12
18
|
}) => React.JSX.Element;
|
|
13
19
|
export default FeatureServiceUi;
|
|
@@ -77,11 +77,14 @@ const AssuranceIcon = ({ type }) => {
|
|
|
77
77
|
React.createElement("path", { d: "M10 2.2 16.3 4v5c0 4-2.4 6.8-6.3 8.7C6.1 15.8 3.7 13 3.7 9V4L10 2.2Z", stroke: "currentColor", strokeWidth: "1.6", strokeLinejoin: "round" }),
|
|
78
78
|
React.createElement("path", { d: "m6.9 9.7 2.1 2.1 4.3-4.4", stroke: "currentColor", strokeWidth: "1.7", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
79
79
|
};
|
|
80
|
-
const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, }) => {
|
|
80
|
+
const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, isFeatureDropDownExpand, onToggleExpand, ticketQuantity = 1, onIncreaseTicketQuantity, onDecreaseTicketQuantity, onBookButtonPress, }) => {
|
|
81
81
|
var _a, _b, _c, _d, _e;
|
|
82
82
|
const operators = ((_a = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.operators) === null || _a === void 0 ? void 0 : _a.length) > 0
|
|
83
83
|
? serviceItem.operators
|
|
84
84
|
: HARDCODED_OPERATORS;
|
|
85
|
+
const isItemExpanded = serviceItem.id === isFeatureDropDownExpand ||
|
|
86
|
+
isFeatureDropDownExpand === true;
|
|
87
|
+
const canDecreaseTicketQuantity = ticketQuantity > 1;
|
|
85
88
|
return (React.createElement("div", {
|
|
86
89
|
// ${
|
|
87
90
|
// serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"
|
|
@@ -118,52 +121,51 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
118
121
|
fontVariantNumeric: "tabular-nums",
|
|
119
122
|
display: "inline-block",
|
|
120
123
|
color: "#FF5C60",
|
|
124
|
+
minWidth: "40px",
|
|
121
125
|
} })))),
|
|
122
126
|
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: "bg-[#0C1421] text-white mx-auto relative rounded-[14px] p-[14px] text-[13.33px]" },
|
|
123
|
-
React.createElement("div", { className: "grid grid-cols-[
|
|
124
|
-
React.createElement("div", { className: "flex flex-col justify-between gap-[20px]
|
|
127
|
+
React.createElement("div", { className: "grid grid-cols-[23%_50%_27%] items-stretch" },
|
|
128
|
+
React.createElement("div", { className: "flex flex-col justify-between gap-[20px] my-[14px] pr-[22px]" },
|
|
125
129
|
React.createElement("div", { className: "flex flex-col gap-[8px]" },
|
|
126
130
|
React.createElement("div", { className: "flex items-center gap-[8px]" },
|
|
127
131
|
React.createElement("img", { src: (_b = serviceItem.icons) === null || _b === void 0 ? void 0 : _b.whiteOrigin, alt: "origin", className: `w-[14px] h-[14px] shrink-0 ${isSoldOut ? "grayscale" : ""}` }),
|
|
128
132
|
React.createElement("span", { className: "text-[13px] bold-text" }, cityOrigin === null || cityOrigin === void 0 ? void 0 : cityOrigin.label.split(",")[0])),
|
|
129
133
|
React.createElement("div", { className: "flex items-center gap-[8px]" },
|
|
130
|
-
React.createElement("img", { src: (_c = serviceItem.icons) === null || _c === void 0 ? void 0 : _c.whiteDestination, alt: "destination", className: `w-[
|
|
134
|
+
React.createElement("img", { src: (_c = serviceItem.icons) === null || _c === void 0 ? void 0 : _c.whiteDestination, alt: "destination", className: `w-[14px] h-[14px] shrink-0 ${isSoldOut ? "grayscale" : ""}`, style: { opacity: isSoldOut ? 0.5 : 1 } }),
|
|
131
135
|
React.createElement("span", { className: "text-[13px] bold-text" }, cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.label.split(",")[0]))),
|
|
132
136
|
React.createElement("div", { className: "flex flex-col gap-[8px]" },
|
|
133
137
|
React.createElement("div", { className: "text-[12px] bold-text whitespace-nowrap" }, "Entre 07:00 AM y 10:00 AM"),
|
|
134
138
|
React.createElement("div", { className: "text-[11px] bold-text" }, "Viernes 23 de mayo")),
|
|
135
139
|
React.createElement("div", { className: "flex flex-col items-start gap-[10px] text-[12px] " },
|
|
136
|
-
React.createElement("div", { className: "flex items-
|
|
140
|
+
React.createElement("div", { className: "flex items-justify gap-[8px]" },
|
|
137
141
|
React.createElement(AssuranceIcon, { type: "pending" }),
|
|
138
142
|
React.createElement("span", { className: "text-[10px]", style: {
|
|
139
143
|
lineHeight: 1.3,
|
|
140
144
|
} }, "Empresa y hora a confirmar luego del pago.")),
|
|
141
|
-
React.createElement("div", { className: "flex items-
|
|
145
|
+
React.createElement("div", { className: "flex items-justify gap-[8px]" },
|
|
142
146
|
React.createElement(AssuranceIcon, { type: "secured" }),
|
|
143
147
|
React.createElement("span", { className: "text-[10px]", style: {
|
|
144
148
|
lineHeight: 1.3,
|
|
145
149
|
} }, "Tu compra est\u00E1 100% asegurada.")))),
|
|
146
|
-
React.createElement("div", { className: "px-[
|
|
150
|
+
React.createElement("div", { className: "min-w-0 px-[22px] flex flex-col items-center justify-between gap-[16px] py-[2px] border-r border-[#363c48] border-l border-[#363c48]" },
|
|
147
151
|
React.createElement("div", { className: "text-center" },
|
|
148
152
|
React.createElement("div", { className: "bold-text text-[14px]" }, "3 operadores compitiendo por tu compra")),
|
|
149
|
-
React.createElement("div", { className: "
|
|
150
|
-
width: "140px",
|
|
153
|
+
React.createElement("div", { className: "grid w-full grid-cols-3 items-stretch gap-[14px] mb-[12px]" }, operators.map((op, idx) => (React.createElement("div", { key: idx, className: "flex min-w-0 flex-col items-center justify-center gap-[8px] rounded-[8px]", style: {
|
|
151
154
|
// height: "80px",
|
|
152
155
|
border: "1px solid #363c48",
|
|
153
156
|
backgroundColor: "#1a202e",
|
|
154
|
-
padding: "14px",
|
|
157
|
+
padding: "14px 10px",
|
|
155
158
|
} },
|
|
156
|
-
React.createElement("img", { src: serviceItem.operator_details[0], alt: op.name, className: `h-[24px] w-
|
|
159
|
+
React.createElement("img", { src: serviceItem.operator_details[0], alt: op.name, className: `h-[24px] max-w-full object-contain ${isSoldOut ? "grayscale" : ""}` }),
|
|
157
160
|
React.createElement("span", { className: "text-[11px] truncate max-w-full text-center" }, serviceItem.operator_details[2]),
|
|
158
|
-
React.createElement("div", { className: "bg-[#FF8F45] text-white text-[12px] font-bold px-[
|
|
161
|
+
React.createElement("div", { className: "bg-[#FF8F45] text-white text-[12px] font-bold px-[10px] py-[4px] rounded-[4px] bold-text whitespace-nowrap" },
|
|
159
162
|
React.createElement("span", null, op === null || op === void 0 ? void 0 : op.time)),
|
|
160
163
|
React.createElement("span", { className: "text-[10px] mt-[6px]" }, op === null || op === void 0 ? void 0 : op.seatsAvailable))))),
|
|
161
|
-
React.createElement("div", { className: "flex items-center justify-center gap-[6px] text-[12px]", style: {
|
|
164
|
+
React.createElement("div", { className: "flex w-full items-center justify-center gap-[6px] text-[12px]", style: {
|
|
162
165
|
border: "1px solid #363c48",
|
|
163
166
|
backgroundColor: "#1a202e",
|
|
164
167
|
padding: "8px 14px",
|
|
165
168
|
borderRadius: "24px",
|
|
166
|
-
width: "430px",
|
|
167
169
|
} },
|
|
168
170
|
React.createElement("img", { src: (_d = serviceItem.icons) === null || _d === void 0 ? void 0 : _d.userIcon, alt: "eye", style: { width: "16px", height: "16px" } }),
|
|
169
171
|
React.createElement("span", null,
|
|
@@ -183,14 +185,38 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
183
185
|
React.createElement("span", { className: "bold-text", ref: (node) => commonService.startComprandoCount(node, 4, 16), style: { fontVariantNumeric: "tabular-nums" } }),
|
|
184
186
|
" ",
|
|
185
187
|
"han comprado"))),
|
|
186
|
-
React.createElement("div", { className: "flex flex-col
|
|
188
|
+
React.createElement("div", { className: "flex flex-col justify-center gap-[12px] py-[2px] pl-[22px] pr-[10px] relative mb-[16px]" },
|
|
187
189
|
React.createElement("div", { className: "flex flex-col gap-[6px] ", style: {
|
|
188
190
|
alignItems: "center",
|
|
189
191
|
} },
|
|
190
192
|
React.createElement("span", { className: "text-[#FF8F45] bold-text text-[26px] leading-tight" }, "60% OFF"),
|
|
191
|
-
React.createElement("span", { className: "text-[
|
|
193
|
+
React.createElement("span", { className: "text-[13.33px] font-normal leading-[20px] text-[#9f9f9f] relative", style: { position: "relative" } },
|
|
194
|
+
"$10.000",
|
|
195
|
+
React.createElement("span", { style: {
|
|
196
|
+
position: "absolute",
|
|
197
|
+
left: "-2px",
|
|
198
|
+
top: "50%",
|
|
199
|
+
width: "calc(100% + 4px)",
|
|
200
|
+
height: "1px",
|
|
201
|
+
backgroundColor: "#FF5C60",
|
|
202
|
+
transform: "rotate(-10deg)",
|
|
203
|
+
transformOrigin: "center",
|
|
204
|
+
} })),
|
|
192
205
|
React.createElement("span", { className: "text-white bold-text text-[28px] leading-none" }, "$4.000")),
|
|
193
|
-
React.createElement("
|
|
206
|
+
React.createElement("div", { className: "mt-[4px] flex flex-col items-center gap-[8px]" },
|
|
207
|
+
React.createElement("span", { className: "text-[12px] text-white" }, "\u00BFCu\u00E1ntos pasajes quieres?"),
|
|
208
|
+
React.createElement("div", { className: "flex w-full items-center justify-between", style: {
|
|
209
|
+
border: "1px solid #363c48",
|
|
210
|
+
backgroundColor: "#1a202e",
|
|
211
|
+
padding: "6px 14px",
|
|
212
|
+
borderRadius: "14px",
|
|
213
|
+
} },
|
|
214
|
+
React.createElement("button", { type: "button", "aria-label": "Disminuir pasajes", disabled: !canDecreaseTicketQuantity, onClick: () => onDecreaseTicketQuantity === null || onDecreaseTicketQuantity === void 0 ? void 0 : onDecreaseTicketQuantity(serviceItem), className: `flex h-[34px] w-[34px] items-center justify-center rounded-full border-none text-[25px] leading-none text-white ${canDecreaseTicketQuantity
|
|
215
|
+
? "cursor-pointer bg-[#2d374d]"
|
|
216
|
+
: "cursor-not-allowed bg-[#222b3d] opacity-50"}` }, "-"),
|
|
217
|
+
React.createElement("span", { className: "bold-text text-[20px] text-white" }, ticketQuantity),
|
|
218
|
+
React.createElement("button", { type: "button", "aria-label": "Aumentar pasajes", onClick: () => onIncreaseTicketQuantity === null || onIncreaseTicketQuantity === void 0 ? void 0 : onIncreaseTicketQuantity(serviceItem), className: "flex h-[34px] w-[34px] cursor-pointer items-center justify-center rounded-full border-none bg-[#2d374d] text-[25px] leading-none text-white" }, "+"))),
|
|
219
|
+
React.createElement("button", { type: "button", onClick: onBookButtonPress, className: "flex items-center gap-[6px] px-[20px] py-[10px] rounded-[16px] text-white bold-text text-[13px] mt-[4px] justify-center border-none cursor-pointer", style: {
|
|
194
220
|
backgroundColor: "#FF5C60",
|
|
195
221
|
} },
|
|
196
222
|
React.createElement(LottiePlayer
|
|
@@ -199,17 +225,22 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
199
225
|
// animationData={serviceItem.icons.flexibleAnim}
|
|
200
226
|
animationData: getAnimationIcon("thunderAnimation"), width: "18px", height: "18px" }),
|
|
201
227
|
React.createElement("span", { className: "whitespace-nowrap" }, "\u00A1Lo quiero!"))),
|
|
202
|
-
React.createElement("div", { className:
|
|
228
|
+
React.createElement("div", { className: `absolute bottom-[11px] right-[18px] cursor-pointer transition-transform duration-300 ease-in-out ${isItemExpanded ? "rotate-180" : ""}`, onClick: onToggleExpand },
|
|
203
229
|
React.createElement("img", { src: (_e = serviceItem.icons) === null || _e === void 0 ? void 0 : _e.downArrow, alt: "down arrow", style: {
|
|
204
230
|
width: "14px",
|
|
205
231
|
height: "8px",
|
|
206
232
|
filter: "brightness(0) invert(1)",
|
|
207
233
|
} })))),
|
|
208
|
-
React.createElement("div", { className: "
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
234
|
+
React.createElement("div", { className: "grid", style: {
|
|
235
|
+
gridTemplateRows: isItemExpanded ? "1fr" : "0fr",
|
|
236
|
+
opacity: isItemExpanded ? 1 : 0,
|
|
237
|
+
transition: "grid-template-rows 300ms ease-in-out, opacity 250ms ease-in-out",
|
|
238
|
+
} },
|
|
239
|
+
React.createElement("div", { className: `min-h-0 overflow-hidden px-[16px] text-[13.33px] ${isItemExpanded ? "pt-[14px] pb-[6px]" : "py-0"}`, style: { transition: "padding 300ms ease-in-out" } },
|
|
240
|
+
React.createElement("span", { className: "bold-text" }, "\u00BFC\u00F3mo funciona?"),
|
|
241
|
+
React.createElement("div", { className: "mt-[14px] grid grid-cols-4 gap-[20px] px-[16px] " }, HOW_IT_WORKS_STEPS.map((step) => (React.createElement("div", { key: step.name, className: "flex flex-col items-center text-center text-[#272727]" },
|
|
242
|
+
React.createElement(FeatureStepIcon, { icon: step.icon }),
|
|
243
|
+
React.createElement("span", { className: "bold-text mt-[10px] text-[12px] leading-[14px]" }, step.name),
|
|
244
|
+
React.createElement("span", { className: "mt-[2px] max-w-[220px] text-[12px] leading-[14px] text-[#4a4a4a]" }, step.text))))))))));
|
|
214
245
|
};
|
|
215
246
|
export default FeatureServiceUi;
|
|
@@ -15,6 +15,7 @@ interface ExpandedDropdownMobileProps {
|
|
|
15
15
|
isDpEnabled?: boolean;
|
|
16
16
|
femaleAnim?: any;
|
|
17
17
|
flexibleAnim?: any;
|
|
18
|
+
renderIcon?: any;
|
|
18
19
|
}
|
|
19
|
-
declare function ExpandedDropdownMobile({ serviceItem, isPeru, petSeatInfo, petFriendlyAnim, isSoldOut, isChangeTicket, ladiesBookedSeats, isDpEnabled, femaleAnim, flexibleAnim, }: ExpandedDropdownMobileProps): React.ReactElement;
|
|
20
|
+
declare function ExpandedDropdownMobile({ serviceItem, isPeru, petSeatInfo, petFriendlyAnim, isSoldOut, isChangeTicket, ladiesBookedSeats, isDpEnabled, femaleAnim, flexibleAnim, renderIcon, }: ExpandedDropdownMobileProps): React.ReactElement;
|
|
20
21
|
export default ExpandedDropdownMobile;
|