kupos-ui-components-lib 9.7.1 → 9.7.2
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/assets/images/anims/service_list/users_anim.json +1 -0
- package/dist/components/ServiceItem/ServiceItemDesktop.js +5 -1
- package/dist/components/ServiceItem/ServiceItemMobile.d.ts +1 -1
- package/dist/components/ServiceItem/ServiceItemMobile.js +16 -7
- package/dist/components/ServiceItem/mobileTypes.d.ts +27 -0
- package/dist/components/ServiceItem/types.d.ts +5 -0
- package/dist/styles.css +18 -6
- package/dist/ui/FeaturServiceUiMobile/FeatureServiceUiMobile.d.ts +18 -0
- package/dist/ui/FeaturServiceUiMobile/FeatureServiceUiMobile.js +233 -0
- package/dist/ui/FeatureServiceUI/FeatureServiceUi.d.ts +1 -2
- package/dist/ui/FeatureServiceUI/FeatureServiceUi.js +55 -69
- package/dist/ui/SeatSection/SeatSection.js +1 -1
- package/package.json +1 -1
- package/src/assets/images/anims/service_list/users_anim.json +1 -0
- package/src/components/ServiceItem/ServiceItemDesktop.tsx +4 -1
- package/src/components/ServiceItem/ServiceItemMobile.tsx +331 -286
- package/src/components/ServiceItem/mobileTypes.ts +22 -0
- package/src/components/ServiceItem/types.ts +6 -1
- package/src/ui/FeaturServiceUiMobile/FeatureServiceUiMobile.tsx +790 -0
- package/src/ui/FeatureServiceUI/FeatureServiceUi.tsx +56 -201
- package/src/ui/SeatSection/SeatSection.tsx +1 -1
|
@@ -21,70 +21,48 @@ const HARDCODED_OPERATORS = [
|
|
|
21
21
|
seatsAvailable: "3 disponibles",
|
|
22
22
|
},
|
|
23
23
|
];
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
icon: "flexible",
|
|
28
|
-
name: "1. Salida flexible",
|
|
29
|
-
text: "Viajas en un horario entre las 07:00 y las 10:00 AM del día elegido.",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
icon: "bus",
|
|
33
|
-
name: "2. Empresa asignada",
|
|
34
|
-
text: "Una de las empresas disponibles confirma tu viaje una vez pagado.",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
icon: "price",
|
|
38
|
-
name: "3. Precio garantizado",
|
|
39
|
-
text: "Al seleccionar este servicio aseguras el precio reducido.",
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
icon: "ticket",
|
|
43
|
-
name: "4. ¡Listo!",
|
|
44
|
-
text: "Recibe todos los detalles de tu viaje al instante tras la compra.",
|
|
45
|
-
},
|
|
46
|
-
];
|
|
47
|
-
const FeatureStepIcon = ({ icon }) => {
|
|
48
|
-
const iconClassName = "h-[30px] w-[30px] text-[#171717]";
|
|
49
|
-
switch (icon) {
|
|
50
|
-
case "flexible":
|
|
51
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 40 40", fill: "none", "aria-hidden": "true" },
|
|
52
|
-
React.createElement("path", { d: "M31.5 13.4A13 13 0 0 0 8 12.3", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round" }),
|
|
53
|
-
React.createElement("path", { d: "m7.4 7.7.2 5.2 5.1-1.2M8.5 26.6A13 13 0 0 0 32 27.7", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" }),
|
|
54
|
-
React.createElement("path", { d: "m32.6 32.3-.2-5.2-5.1 1.2", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
55
|
-
case "bus":
|
|
56
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 40 40", fill: "none", "aria-hidden": "true" },
|
|
57
|
-
React.createElement("rect", { x: "8", y: "4.5", width: "24", height: "27", rx: "2.5", stroke: "currentColor", strokeWidth: "2.2" }),
|
|
58
|
-
React.createElement("path", { d: "M8 18.5h24M12 9h16M12 26h4m8 0h4M11 31.5v3h5v-3m8 0v3h5v-3M5.5 10v7m29-7v7", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round" })));
|
|
59
|
-
case "price":
|
|
60
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 40 40", fill: "none", "aria-hidden": "true" },
|
|
61
|
-
React.createElement("circle", { cx: "20", cy: "20", r: "14", stroke: "currentColor", strokeWidth: "2.2" }),
|
|
62
|
-
React.createElement("path", { d: "M23.7 15.4c-1-.7-2.2-1-3.6-1-2.2 0-3.8 1.1-3.8 2.8 0 4.2 7.4 1.8 7.4 5.8 0 1.8-1.6 2.8-4 2.8-1.5 0-2.9-.4-4-1.2M20 11.7v2.5m0 11.8v2.4", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round" })));
|
|
63
|
-
default:
|
|
64
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 40 40", fill: "none", "aria-hidden": "true" },
|
|
65
|
-
React.createElement("path", { d: "M7 11h26v6a3.5 3.5 0 0 0 0 7v6H7v-6a3.5 3.5 0 0 0 0-7v-6Z", stroke: "currentColor", strokeWidth: "2.2", strokeLinejoin: "round" }),
|
|
66
|
-
React.createElement("path", { d: "M22 12.5v3m0 3v3m0 3v4", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round" })));
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const AssuranceIcon = ({ type }) => {
|
|
70
|
-
const iconClassName = "h-[18px] w-[18px] shrink-0 text-white";
|
|
71
|
-
if (type === "pending") {
|
|
72
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true" },
|
|
73
|
-
React.createElement("path", { d: "M4.2 8.2a6.2 6.2 0 1 1 .5 5.1", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" }),
|
|
74
|
-
React.createElement("path", { d: "M4.2 4.8v3.4h3.4", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
75
|
-
}
|
|
76
|
-
return (React.createElement("svg", { className: iconClassName, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true" },
|
|
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
|
-
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
|
-
};
|
|
80
|
-
const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, isFeatureDropDownExpand, onToggleExpand, ticketQuantity = 1, onIncreaseTicketQuantity, onDecreaseTicketQuantity, onBookButtonPress, }) => {
|
|
81
|
-
var _a, _b, _c, _d, _e;
|
|
24
|
+
const FeatureServiceUi = ({ serviceItem, showTopLabel, isSoldOut, getAnimationIcon, cityOrigin, cityDestination, renderIcon, viewersConfig, isFeatureDropDownExpand, onToggleExpand, ticketQuantity = 1, onIncreaseTicketQuantity, onDecreaseTicketQuantity, onBookButtonPress, }) => {
|
|
25
|
+
var _a, _b, _c, _d;
|
|
82
26
|
const operators = ((_a = serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.operators) === null || _a === void 0 ? void 0 : _a.length) > 0
|
|
83
27
|
? serviceItem.operators
|
|
84
28
|
: HARDCODED_OPERATORS;
|
|
85
29
|
const isItemExpanded = serviceItem.id === isFeatureDropDownExpand ||
|
|
86
30
|
isFeatureDropDownExpand === true;
|
|
87
31
|
const canDecreaseTicketQuantity = ticketQuantity > 1;
|
|
32
|
+
const HOW_IT_WORKS_STEPS = [
|
|
33
|
+
{
|
|
34
|
+
icon: "flexible",
|
|
35
|
+
name: "1. Salida flexible",
|
|
36
|
+
text: "Viajas en un horario entre las 07:00 y las 10:00 AM del día elegido.",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
icon: "bus",
|
|
40
|
+
name: "2. Empresa asignada",
|
|
41
|
+
text: "Una de las empresas disponibles confirma tu viaje una vez pagado.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
icon: "price",
|
|
45
|
+
name: "3. Precio garantizado",
|
|
46
|
+
text: "Al seleccionar este servicio aseguras el precio reducido.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
icon: "ticket",
|
|
50
|
+
name: "4. ¡Listo!",
|
|
51
|
+
text: "Recibe todos los detalles de tu viaje al instante tras la compra.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
const FeatureStepIcon = ({ icon }) => {
|
|
55
|
+
switch (icon) {
|
|
56
|
+
case "flexible":
|
|
57
|
+
return renderIcon("flexibleIcon", "24px");
|
|
58
|
+
case "bus":
|
|
59
|
+
return renderIcon("empressaIcon", "24px");
|
|
60
|
+
case "price":
|
|
61
|
+
return renderIcon("precioIcon", "24px");
|
|
62
|
+
default:
|
|
63
|
+
return renderIcon("listoIcon", "24px");
|
|
64
|
+
}
|
|
65
|
+
};
|
|
88
66
|
return (React.createElement("div", {
|
|
89
67
|
// ${
|
|
90
68
|
// serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"
|
|
@@ -108,6 +86,8 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
108
86
|
padding: "1px 8px",
|
|
109
87
|
borderRadius: "4px",
|
|
110
88
|
color: "#fff",
|
|
89
|
+
animation: "pulse-zoom 2s ease-in-out infinite",
|
|
90
|
+
whiteSpace: "nowrap",
|
|
111
91
|
} },
|
|
112
92
|
React.createElement("span", null, "AHORRAS 60%"))),
|
|
113
93
|
React.createElement("div", null,
|
|
@@ -138,12 +118,12 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
138
118
|
React.createElement("div", { className: "text-[11px] bold-text" }, "Viernes 23 de mayo")),
|
|
139
119
|
React.createElement("div", { className: "flex flex-col items-start gap-[10px] text-[12px] " },
|
|
140
120
|
React.createElement("div", { className: "flex items-justify gap-[8px]" },
|
|
141
|
-
|
|
121
|
+
renderIcon("sheildIcon", "16px"),
|
|
142
122
|
React.createElement("span", { className: "text-[10px]", style: {
|
|
143
123
|
lineHeight: 1.3,
|
|
144
124
|
} }, "Empresa y hora a confirmar luego del pago.")),
|
|
145
125
|
React.createElement("div", { className: "flex items-justify gap-[8px]" },
|
|
146
|
-
|
|
126
|
+
renderIcon("confirmarIcon", "16px"),
|
|
147
127
|
React.createElement("span", { className: "text-[10px]", style: {
|
|
148
128
|
lineHeight: 1.3,
|
|
149
129
|
} }, "Tu compra est\u00E1 100% asegurada.")))),
|
|
@@ -167,7 +147,11 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
167
147
|
padding: "8px 14px",
|
|
168
148
|
borderRadius: "24px",
|
|
169
149
|
} },
|
|
170
|
-
React.createElement(
|
|
150
|
+
React.createElement(LottiePlayer
|
|
151
|
+
// animationData={serviceItem.icons.flexibleAnim}
|
|
152
|
+
, {
|
|
153
|
+
// animationData={serviceItem.icons.flexibleAnim}
|
|
154
|
+
animationData: getAnimationIcon("usersAnimation"), width: "18px", height: "18px" }),
|
|
171
155
|
React.createElement("span", null,
|
|
172
156
|
React.createElement("span", { className: "bold-text text-white" },
|
|
173
157
|
" ",
|
|
@@ -175,12 +159,9 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
175
159
|
fontVariantNumeric: "tabular-nums",
|
|
176
160
|
color: "#FF5C60",
|
|
177
161
|
} }),
|
|
178
|
-
" ",
|
|
179
|
-
React.createElement("span", { style: {
|
|
180
|
-
color: "#FF5C60",
|
|
181
|
-
} }, "personas")),
|
|
162
|
+
" "),
|
|
182
163
|
" ",
|
|
183
|
-
"viendo
|
|
164
|
+
"viendo |",
|
|
184
165
|
" ",
|
|
185
166
|
React.createElement("span", { className: "bold-text", ref: (node) => commonService.startComprandoCount(node, 4, 16), style: { fontVariantNumeric: "tabular-nums" } }),
|
|
186
167
|
" ",
|
|
@@ -189,7 +170,10 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
189
170
|
React.createElement("div", { className: "flex flex-col gap-[6px] ", style: {
|
|
190
171
|
alignItems: "center",
|
|
191
172
|
} },
|
|
192
|
-
React.createElement("span", { className: "text-[#FF8F45] bold-text text-[26px] leading-tight"
|
|
173
|
+
React.createElement("span", { className: "text-[#FF8F45] bold-text text-[26px] leading-tight", style: {
|
|
174
|
+
animation: "pulse-zoom 2s ease-in-out infinite",
|
|
175
|
+
whiteSpace: "nowrap",
|
|
176
|
+
} }, "60% OFF"),
|
|
193
177
|
React.createElement("span", { className: "text-[13.33px] font-normal leading-[20px] text-[#9f9f9f] relative", style: { position: "relative" } },
|
|
194
178
|
"$10.000",
|
|
195
179
|
React.createElement("span", { style: {
|
|
@@ -202,7 +186,7 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
202
186
|
transform: "rotate(-10deg)",
|
|
203
187
|
transformOrigin: "center",
|
|
204
188
|
} })),
|
|
205
|
-
React.createElement("span", { className: "text-white bold-text text-[28px] leading-none" },
|
|
189
|
+
React.createElement("span", { className: "text-white bold-text text-[28px] leading-none" }, `$${(4000 * ticketQuantity).toLocaleString()}`)),
|
|
206
190
|
React.createElement("div", { className: "mt-[4px] flex flex-col items-center gap-[8px]" },
|
|
207
191
|
React.createElement("span", { className: "text-[12px] text-white" }, "\u00BFCu\u00E1ntos pasajes quieres?"),
|
|
208
192
|
React.createElement("div", { className: "flex w-full items-center justify-between", style: {
|
|
@@ -218,6 +202,8 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
218
202
|
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
203
|
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: {
|
|
220
204
|
backgroundColor: "#FF5C60",
|
|
205
|
+
animation: "pulse-zoom 2s ease-in-out infinite",
|
|
206
|
+
whiteSpace: "nowrap",
|
|
221
207
|
} },
|
|
222
208
|
React.createElement(LottiePlayer
|
|
223
209
|
// animationData={serviceItem.icons.flexibleAnim}
|
|
@@ -226,7 +212,7 @@ const FeatureServiceUi = ({ serviceItem, showTopLabel, colors, isSoldOut, getAni
|
|
|
226
212
|
animationData: getAnimationIcon("thunderAnimation"), width: "18px", height: "18px" }),
|
|
227
213
|
React.createElement("span", { className: "whitespace-nowrap" }, "\u00A1Lo quiero!"))),
|
|
228
214
|
React.createElement("div", { className: `absolute bottom-[11px] right-[18px] cursor-pointer transition-transform duration-300 ease-in-out ${isItemExpanded ? "rotate-180" : ""}`, onClick: onToggleExpand },
|
|
229
|
-
React.createElement("img", { src: (
|
|
215
|
+
React.createElement("img", { src: (_d = serviceItem.icons) === null || _d === void 0 ? void 0 : _d.downArrow, alt: "down arrow", style: {
|
|
230
216
|
width: "14px",
|
|
231
217
|
height: "8px",
|
|
232
218
|
filter: "brightness(0) invert(1)",
|
|
@@ -240,7 +240,7 @@ function SeatSection({ seatTypes, availableSeats, isSoldOut, priceColor, currenc
|
|
|
240
240
|
React.createElement("span", { className: "flex items-center gap-[6px] text-[22px] bold-text leading-[30px]", style: { color: isSoldOut ? "#c0c0c0" : discountSeatPriceColor } },
|
|
241
241
|
React.createElement("div", { className: "absolute", style: {
|
|
242
242
|
left: isPeru ? "-1px" : "-18px",
|
|
243
|
-
bottom: "1px"
|
|
243
|
+
bottom: "1px",
|
|
244
244
|
} }, renderIcon("fireIcon", "16px")),
|
|
245
245
|
availableSeats <= 0
|
|
246
246
|
? CommonService.currency(0, currencySign)
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"nm":"Main Scene","ddd":0,"h":512,"w":512,"meta":{"g":"@lottiefiles/creator@1.90.1"},"layers":[{"ty":2,"nm":"111","sr":1,"st":0,"op":150,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[54.49996512276783,38.99999128069197]},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[436.62,436.62],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[300,300],"t":58},{"s":[436.62,436.62],"t":112}]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[255.99996512276783,255.99999128069197]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[100],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[70],"t":58},{"s":[100],"t":112}]}},"refId":"111_b9bb56d2-8f3c-4772-b1ac-9caf81e5c707","ind":1}],"v":"5.7.0","fr":30,"op":114,"ip":0,"assets":[{"id":"111_b9bb56d2-8f3c-4772-b1ac-9caf81e5c707","e":1,"w":109,"h":78,"p":"data:image/png;base64,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","u":""}]}
|
|
@@ -27,6 +27,7 @@ import bombAnimation from "../../assets/images/anims/service_list/bomb.json";
|
|
|
27
27
|
import dotAnimation from "../../assets/images/anims/service_list/dot_animation.json";
|
|
28
28
|
import starAnimation from "../../assets/images/anims/service_list/star_anim.json";
|
|
29
29
|
import femaleAnimation from "../../assets/images/anims/service_list/female_anim.json";
|
|
30
|
+
import usersAnimation from "../../assets/images/anims/service_list/users_anim.json";
|
|
30
31
|
|
|
31
32
|
import RatingBlock from "../../ui/RatingBlock";
|
|
32
33
|
import DurationBlock from "../../ui/DurationBlock";
|
|
@@ -86,6 +87,9 @@ const ANIMATION_MAP: Record<string, Record<string, any>> = {
|
|
|
86
87
|
femaaleAnimation: {
|
|
87
88
|
kupos: femaleAnimation,
|
|
88
89
|
},
|
|
90
|
+
usersAnimation: {
|
|
91
|
+
kupos: usersAnimation,
|
|
92
|
+
},
|
|
89
93
|
};
|
|
90
94
|
|
|
91
95
|
function ServiceItemPB({
|
|
@@ -431,7 +435,6 @@ function ServiceItemPB({
|
|
|
431
435
|
<FeatureServiceUi
|
|
432
436
|
serviceItem={serviceItem}
|
|
433
437
|
showTopLabel={showTopLabel}
|
|
434
|
-
colors={colors}
|
|
435
438
|
isSoldOut={isSoldOut}
|
|
436
439
|
getAnimationIcon={getAnimationIcon}
|
|
437
440
|
cityOrigin={cityOrigin}
|