@loczer/storefront-sdk 0.165.0 → 0.167.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/components/BikeProductCard/index.d.ts.map +1 -1
- package/dist/components/BikeProductCard/index.js +40 -45
- package/dist/components/ContactSection/index.d.ts.map +1 -1
- package/dist/components/ContactSection/index.js +73 -98
- package/dist/components/DelayedReveal/index.js +1 -1
- package/dist/components/Footer/index.d.ts +2 -1
- package/dist/components/Footer/index.d.ts.map +1 -1
- package/dist/components/Footer/index.js +38 -48
- package/dist/components/Header/index.d.ts +2 -1
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +56 -63
- package/dist/components/Layout/index.d.ts.map +1 -1
- package/dist/components/Layout/index.js +35 -26
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +2 -2
- package/dist/i18n/en.d.ts +2 -4
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +5 -7
- package/dist/i18n/fr.d.ts +2 -4
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +5 -7
- package/dist/index.d.ts +8 -10
- package/dist/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/pages/CheckoutPage.js +171 -179
- package/dist/pages/CheckoutPaymentPage.d.ts.map +1 -1
- package/dist/pages/CheckoutPaymentPage.js +124 -145
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/HomePage.js +186 -174
- package/dist/storefront.css +1 -1
- package/package.json +1 -1
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
-
import { cn as
|
|
3
|
-
import { Phone as
|
|
4
|
-
import { useTranslation as
|
|
2
|
+
import { cn as i } from "@rpcbase/ui";
|
|
3
|
+
import { Phone as x, Mail as g, MapPin as N, Clock as m } from "lucide-react";
|
|
4
|
+
import { useTranslation as _ } from "react-i18next";
|
|
5
5
|
import w from "../../chunks/assets/whatsapp.svg-grlzka-t.js";
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
const o = "group inline-flex gap-2 text-sm font-normal text-slate-600 decoration-current underline-offset-4 transition-colors hover:text-slate-800 hover:underline", c = "mt-0.5 inline-flex h-4 w-4 flex-shrink-0 items-center justify-center text-current transition-colors", k = (a) => (Math.trunc(a) % 7 + 7) % 7, H = (a) => Array.isArray(a) ? a.map((n) => ({
|
|
6
|
+
import { BusinessHours as y } from "./BusinessHours.js";
|
|
7
|
+
const o = "group inline-flex gap-2 text-sm font-normal text-slate-600 decoration-current underline-offset-4 transition-colors hover:text-slate-800 hover:underline", c = "mt-0.5 inline-flex h-4 w-4 flex-shrink-0 items-center justify-center text-current transition-colors", b = (a) => (Math.trunc(a) % 7 + 7) % 7, k = (a) => Array.isArray(a) ? a.map((n) => ({
|
|
9
8
|
name: n.name,
|
|
10
9
|
startDate: n.startDate,
|
|
11
10
|
endDate: n.endDate,
|
|
12
11
|
openingHours: n.openingHours.map((s) => ({
|
|
13
|
-
day:
|
|
14
|
-
openingSlots: s.openingSlots.map((
|
|
15
|
-
start:
|
|
16
|
-
end:
|
|
12
|
+
day: b(s.day),
|
|
13
|
+
openingSlots: s.openingSlots.map((l) => ({
|
|
14
|
+
start: l.start,
|
|
15
|
+
end: l.end
|
|
17
16
|
}))
|
|
18
17
|
}))
|
|
19
|
-
})) : [],
|
|
18
|
+
})) : [], v = (a) => Array.isArray(a) ? a.map((n) => ({
|
|
20
19
|
date: n.date,
|
|
21
20
|
openingSlots: n.openingSlots.map((s) => ({
|
|
22
21
|
start: s.start,
|
|
23
22
|
end: s.end
|
|
24
23
|
}))
|
|
25
24
|
})) : [];
|
|
26
|
-
function
|
|
27
|
-
|
|
25
|
+
function S({
|
|
26
|
+
preset: a,
|
|
27
|
+
whatsappHref: n,
|
|
28
|
+
whatsappPhoneDisplay: s,
|
|
29
|
+
openingHours: l,
|
|
30
|
+
openingHoursOverrides: h
|
|
31
|
+
}) {
|
|
32
|
+
const { t } = _(), p = `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(a.address)}`, d = k(l), f = v(h), u = d.length > 0;
|
|
28
33
|
return /* @__PURE__ */ e("footer", { className: "border-t bg-white", children: /* @__PURE__ */ r("div", { className: "mx-auto grid max-w-7xl gap-8 px-4 py-10 sm:px-6 md:grid-cols-3", children: [
|
|
29
34
|
/* @__PURE__ */ r("div", { className: "space-y-2", children: [
|
|
30
35
|
/* @__PURE__ */ e("p", { className: "text-sm font-semibold text-slate-950", children: /* @__PURE__ */ e("span", { children: t("footer_brand_title") }) }),
|
|
@@ -36,65 +41,50 @@ function P({ preset: a, whatsappHref: n, openingHours: s, openingHoursOverrides:
|
|
|
36
41
|
n ? /* @__PURE__ */ r(
|
|
37
42
|
"a",
|
|
38
43
|
{
|
|
39
|
-
className:
|
|
44
|
+
className: i(o, "items-center"),
|
|
40
45
|
href: n,
|
|
41
46
|
target: "_blank",
|
|
42
47
|
rel: "noreferrer",
|
|
43
48
|
children: [
|
|
44
|
-
/* @__PURE__ */ e("span", { className:
|
|
45
|
-
/* @__PURE__ */ e("span", { children: t("footer_whatsapp_link") })
|
|
49
|
+
/* @__PURE__ */ e("span", { className: i(c, "h-5 w-5"), children: /* @__PURE__ */ e("img", { src: w, className: "h-5 w-5 shrink-0", alt: "", "aria-hidden": "true" }) }),
|
|
50
|
+
/* @__PURE__ */ e("span", { children: t("footer_whatsapp_link") }),
|
|
51
|
+
s ? /* @__PURE__ */ e("span", { className: "text-slate-500", children: s }) : null
|
|
46
52
|
]
|
|
47
53
|
}
|
|
48
54
|
) : null,
|
|
49
55
|
/* @__PURE__ */ r(
|
|
50
56
|
"a",
|
|
51
57
|
{
|
|
52
|
-
className:
|
|
58
|
+
className: i(o, "items-center"),
|
|
53
59
|
href: a.phone_href,
|
|
54
60
|
"aria-label": a.phone_display,
|
|
55
61
|
children: [
|
|
56
|
-
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(
|
|
57
|
-
/* @__PURE__ */ e(
|
|
58
|
-
p,
|
|
59
|
-
{
|
|
60
|
-
value: a.phone_display,
|
|
61
|
-
reserveWidth: "11.5rem",
|
|
62
|
-
fallback: /* @__PURE__ */ e(f, { value: a.phone_display, className: "bg-slate-200" }),
|
|
63
|
-
children: (d) => /* @__PURE__ */ e("span", { children: d })
|
|
64
|
-
}
|
|
65
|
-
)
|
|
62
|
+
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(x, { className: "h-4 w-4", "aria-hidden": "true" }) }),
|
|
63
|
+
/* @__PURE__ */ e("span", { children: a.phone_display })
|
|
66
64
|
]
|
|
67
65
|
}
|
|
68
66
|
),
|
|
69
67
|
/* @__PURE__ */ r(
|
|
70
68
|
"a",
|
|
71
69
|
{
|
|
72
|
-
className:
|
|
70
|
+
className: i(o, "items-center"),
|
|
73
71
|
href: `mailto:${a.email}`,
|
|
74
72
|
"aria-label": a.email,
|
|
75
73
|
children: [
|
|
76
|
-
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(
|
|
77
|
-
/* @__PURE__ */ e(
|
|
78
|
-
p,
|
|
79
|
-
{
|
|
80
|
-
value: a.email,
|
|
81
|
-
reserveWidth: "11.5rem",
|
|
82
|
-
fallback: /* @__PURE__ */ e(f, { value: a.email, className: "bg-slate-200" }),
|
|
83
|
-
children: (d) => /* @__PURE__ */ e("span", { children: d })
|
|
84
|
-
}
|
|
85
|
-
)
|
|
74
|
+
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(g, { className: "h-4 w-4", "aria-hidden": "true" }) }),
|
|
75
|
+
/* @__PURE__ */ e("span", { children: a.email })
|
|
86
76
|
]
|
|
87
77
|
}
|
|
88
78
|
),
|
|
89
79
|
/* @__PURE__ */ r(
|
|
90
80
|
"a",
|
|
91
81
|
{
|
|
92
|
-
className:
|
|
93
|
-
href:
|
|
82
|
+
className: i(o, "items-start"),
|
|
83
|
+
href: p,
|
|
94
84
|
target: "_blank",
|
|
95
85
|
rel: "noreferrer",
|
|
96
86
|
children: [
|
|
97
|
-
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(
|
|
87
|
+
/* @__PURE__ */ e("span", { className: c, children: /* @__PURE__ */ e(N, { className: "h-4 w-4", "aria-hidden": "true" }) }),
|
|
98
88
|
/* @__PURE__ */ e("span", { children: a.address })
|
|
99
89
|
]
|
|
100
90
|
}
|
|
@@ -103,19 +93,19 @@ function P({ preset: a, whatsappHref: n, openingHours: s, openingHoursOverrides:
|
|
|
103
93
|
] }),
|
|
104
94
|
/* @__PURE__ */ r("div", { className: "space-y-2", children: [
|
|
105
95
|
/* @__PURE__ */ e("p", { className: "text-sm font-semibold text-slate-950", children: /* @__PURE__ */ e("span", { children: t("footer_hours_title") }) }),
|
|
106
|
-
|
|
107
|
-
|
|
96
|
+
u ? /* @__PURE__ */ e(
|
|
97
|
+
y,
|
|
108
98
|
{
|
|
109
|
-
openingHours:
|
|
110
|
-
openingHoursOverrides:
|
|
99
|
+
openingHours: d,
|
|
100
|
+
openingHoursOverrides: f
|
|
111
101
|
}
|
|
112
102
|
) : /* @__PURE__ */ r("div", { className: "grid gap-1 text-sm text-slate-700", children: [
|
|
113
103
|
/* @__PURE__ */ r("p", { className: "inline-flex items-center gap-2", children: [
|
|
114
|
-
/* @__PURE__ */ e(
|
|
104
|
+
/* @__PURE__ */ e(m, { className: "h-4 w-4 text-slate-400", "aria-hidden": "true" }),
|
|
115
105
|
/* @__PURE__ */ e("span", { children: t("footer_hours_week") })
|
|
116
106
|
] }),
|
|
117
107
|
/* @__PURE__ */ r("p", { className: "inline-flex items-center gap-2", children: [
|
|
118
|
-
/* @__PURE__ */ e(
|
|
108
|
+
/* @__PURE__ */ e(m, { className: "h-4 w-4 text-slate-400", "aria-hidden": "true" }),
|
|
119
109
|
/* @__PURE__ */ e("span", { children: t("footer_hours_weekend") })
|
|
120
110
|
] })
|
|
121
111
|
] })
|
|
@@ -123,5 +113,5 @@ function P({ preset: a, whatsappHref: n, openingHours: s, openingHoursOverrides:
|
|
|
123
113
|
] }) });
|
|
124
114
|
}
|
|
125
115
|
export {
|
|
126
|
-
|
|
116
|
+
S as Footer
|
|
127
117
|
};
|
|
@@ -4,7 +4,8 @@ type HeaderProps = {
|
|
|
4
4
|
preset: StorefrontPreset;
|
|
5
5
|
storefrontConfiguration?: StorefrontConfiguration;
|
|
6
6
|
whatsappHref?: string;
|
|
7
|
+
whatsappPhoneDisplay?: string;
|
|
7
8
|
};
|
|
8
|
-
export declare function Header({ preset, storefrontConfiguration, whatsappHref }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function Header({ preset, storefrontConfiguration, whatsappHref, whatsappPhoneDisplay }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Header/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Header/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAOzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAKtE,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,gBAAgB,CAAA;IACxB,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAQD,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,YAAY,EAAE,oBAAoB,EAAE,EAAE,WAAW,2CAsJ1G"}
|
|
@@ -1,62 +1,55 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useMediaQuery as
|
|
3
|
-
import { useParams as
|
|
4
|
-
import { useScrollHideOnDown as
|
|
5
|
-
import {
|
|
6
|
-
import { useTranslation as
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
1
|
+
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useMediaQuery as H, useThrottledMeasure as q } from "@rpcbase/client";
|
|
3
|
+
import { useParams as A, useLocation as W, Link as s } from "@rpcbase/router";
|
|
4
|
+
import { useScrollHideOnDown as E, cn as S } from "@rpcbase/ui";
|
|
5
|
+
import { Bike as F, ShoppingCart as O, ArrowRight as Y } from "lucide-react";
|
|
6
|
+
import { useTranslation as C } from "react-i18next";
|
|
7
|
+
import G from "../../chunks/assets/whatsapp.svg-grlzka-t.js";
|
|
8
|
+
import { useStorefrontCart as Q } from "../../lib/cart.js";
|
|
9
|
+
import { resolveBookingSearchParamsFromSessionStorage as V } from "../../lib/booking.js";
|
|
10
|
+
import { Badge as D } from "../../ui/badge.js";
|
|
10
11
|
import { Button as g } from "../../ui/button.js";
|
|
11
|
-
import { DelayedReveal as Q, DelayedPlaceholder as V } from "../DelayedReveal/index.js";
|
|
12
12
|
import { buildStorefrontImageUrl as J } from "../../lib/storefrontImage.js";
|
|
13
|
-
import { getLocalizedValue as
|
|
14
|
-
const K = 36,
|
|
15
|
-
const l =
|
|
16
|
-
return l ? J(l,
|
|
13
|
+
import { getLocalizedValue as _ } from "../../localization.js";
|
|
14
|
+
const K = 36, L = (r, n) => {
|
|
15
|
+
const l = r?.trim() ?? "";
|
|
16
|
+
return l ? J(l, n ?? "") : "";
|
|
17
17
|
};
|
|
18
|
-
function de({ preset:
|
|
19
|
-
const { t, i18n:
|
|
20
|
-
enabled:
|
|
18
|
+
function de({ preset: r, storefrontConfiguration: n, whatsappHref: l, whatsappPhoneDisplay: c }) {
|
|
19
|
+
const { t: a, i18n: m } = C(), { storeSlug: d } = A(), y = W(), { itemCount: u } = Q(), p = H("(max-width: 640px)"), [B, j] = q(), x = j?.height ?? K, I = E({
|
|
20
|
+
enabled: p,
|
|
21
21
|
thresholdPx: x
|
|
22
|
-
}), f =
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
}, i = `/${
|
|
26
|
-
new URLSearchParams(
|
|
27
|
-
|
|
28
|
-
).toString(), o =
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */ e("div", { className: "transition-transform duration-300", style: { transform: f }, children: /* @__PURE__ */ e("div", { ref:
|
|
31
|
-
/* @__PURE__ */ e("p", { className: "flex items-center gap-2", children: /* @__PURE__ */ e("span", { children:
|
|
32
|
-
/* @__PURE__ */
|
|
22
|
+
}), f = p && I ? `translateY(-${x}px)` : "translateY(0)", z = () => {
|
|
23
|
+
const T = m.language.startsWith("fr") ? "en" : "fr";
|
|
24
|
+
m.changeLanguage(T);
|
|
25
|
+
}, i = `/${d ?? ""}`, b = V(
|
|
26
|
+
new URLSearchParams(y.search),
|
|
27
|
+
d
|
|
28
|
+
).toString(), o = b ? `?${b}` : "", w = `${i}/booking${o}`, U = `${i}/checkout${o}`, N = n?.shop.name?.trim() || r.name, v = n?.workspace?.workspaceLanguage, M = _(n?.content?.tagline, m.language, v).trim() || r.tagline, P = _(n?.content?.topBannerMessage, m.language, v).trim() || a("top_bar_message"), k = L(n?.content?.logoWideImageId, d), $ = L(n?.content?.logoSquareImageId, d), h = k.length > 0, R = $.length > 0;
|
|
29
|
+
return /* @__PURE__ */ t("div", { className: "sticky top-0 z-30", children: [
|
|
30
|
+
/* @__PURE__ */ e("div", { className: "transition-transform duration-300", style: { transform: f }, children: /* @__PURE__ */ e("div", { ref: B, className: "bg-slate-950 text-white", children: /* @__PURE__ */ t("div", { className: "mx-auto flex max-w-7xl items-center justify-between gap-3 px-4 py-2 text-xs sm:px-6", children: [
|
|
31
|
+
/* @__PURE__ */ e("p", { className: "flex items-center gap-2", children: /* @__PURE__ */ e("span", { children: P }) }),
|
|
32
|
+
/* @__PURE__ */ t("div", { className: "hidden items-center gap-4 sm:flex", children: [
|
|
33
33
|
/* @__PURE__ */ e(
|
|
34
34
|
"a",
|
|
35
35
|
{
|
|
36
36
|
className: "inline-flex items-center gap-2 rounded-md px-2 py-1 text-white/90 hover:bg-white/10 hover:text-white",
|
|
37
|
-
href: `mailto:${
|
|
38
|
-
"aria-label":
|
|
39
|
-
children: /* @__PURE__ */ e(
|
|
40
|
-
Q,
|
|
41
|
-
{
|
|
42
|
-
value: n.email,
|
|
43
|
-
reserveWidth: "11.5rem",
|
|
44
|
-
fallback: /* @__PURE__ */ e(V, { value: n.email, className: "bg-white/30" }),
|
|
45
|
-
children: (h) => /* @__PURE__ */ e("span", { children: h })
|
|
46
|
-
}
|
|
47
|
-
)
|
|
37
|
+
href: `mailto:${r.email}`,
|
|
38
|
+
"aria-label": r.email,
|
|
39
|
+
children: /* @__PURE__ */ e("span", { children: r.email })
|
|
48
40
|
}
|
|
49
41
|
),
|
|
50
|
-
l ? /* @__PURE__ */
|
|
42
|
+
l ? /* @__PURE__ */ t(
|
|
51
43
|
"a",
|
|
52
44
|
{
|
|
53
45
|
className: "inline-flex items-center gap-2 rounded-md px-2 py-1 text-white/90 hover:bg-white/10 hover:text-white",
|
|
54
46
|
href: l,
|
|
55
47
|
target: "_blank",
|
|
56
48
|
rel: "noreferrer",
|
|
49
|
+
"aria-label": `${a("top_bar_whatsapp")}${c ? ` ${c}` : ""}`,
|
|
57
50
|
children: [
|
|
58
|
-
/* @__PURE__ */ e("
|
|
59
|
-
/* @__PURE__ */ e(
|
|
51
|
+
/* @__PURE__ */ e("img", { src: G, className: "h-5 w-5 shrink-0", alt: "", "aria-hidden": "true" }),
|
|
52
|
+
c ? /* @__PURE__ */ e("span", { children: c }) : null
|
|
60
53
|
]
|
|
61
54
|
}
|
|
62
55
|
) : null
|
|
@@ -67,11 +60,11 @@ function de({ preset: n, storefrontConfiguration: s, whatsappHref: l }) {
|
|
|
67
60
|
{
|
|
68
61
|
className: "sticky top-0 z-30 border-b bg-white/90 backdrop-blur transition-transform duration-300",
|
|
69
62
|
style: { transform: f },
|
|
70
|
-
children: /* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
|
|
63
|
+
children: /* @__PURE__ */ t("div", { className: "mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3 sm:px-6", children: [
|
|
64
|
+
/* @__PURE__ */ t(s, { to: i, className: "flex min-w-0 items-center gap-3", children: [
|
|
65
|
+
R && !h ? /* @__PURE__ */ e("span", { className: "inline-flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-slate-200 bg-white", children: /* @__PURE__ */ e("img", { src: $, alt: "", className: "h-full w-full object-contain", "aria-hidden": "true" }) }) : /* @__PURE__ */ e("span", { className: S("inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-slate-950 text-white", h && "hidden"), children: /* @__PURE__ */ e(F, { className: "h-5 w-5", "aria-hidden": "true" }) }),
|
|
66
|
+
/* @__PURE__ */ t("span", { className: "flex min-w-0 flex-col leading-tight", children: [
|
|
67
|
+
h ? /* @__PURE__ */ e(
|
|
75
68
|
"img",
|
|
76
69
|
{
|
|
77
70
|
src: k,
|
|
@@ -79,34 +72,34 @@ function de({ preset: n, storefrontConfiguration: s, whatsappHref: l }) {
|
|
|
79
72
|
className: "h-8 max-w-[10rem] object-contain object-left sm:max-w-[14rem]"
|
|
80
73
|
}
|
|
81
74
|
) : /* @__PURE__ */ e("span", { className: "truncate text-sm font-semibold", children: N }),
|
|
82
|
-
/* @__PURE__ */ e("span", { className: "truncate text-xs text-slate-600", children:
|
|
75
|
+
/* @__PURE__ */ e("span", { className: "truncate text-xs text-slate-600", children: M })
|
|
83
76
|
] })
|
|
84
77
|
] }),
|
|
85
|
-
/* @__PURE__ */
|
|
86
|
-
/* @__PURE__ */ e(
|
|
87
|
-
/* @__PURE__ */ e(
|
|
88
|
-
/* @__PURE__ */ e(
|
|
89
|
-
/* @__PURE__ */ e(
|
|
78
|
+
/* @__PURE__ */ t("nav", { className: "hidden items-center gap-6 text-sm font-medium text-slate-700 md:flex", children: [
|
|
79
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#categories`, children: /* @__PURE__ */ e("span", { children: a("nav_categories") }) }),
|
|
80
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#featured`, children: /* @__PURE__ */ e("span", { children: a("nav_featured") }) }),
|
|
81
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: w, children: /* @__PURE__ */ e("span", { children: a("nav_products") }) }),
|
|
82
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#contact`, children: /* @__PURE__ */ e("span", { children: a("nav_contact") }) })
|
|
90
83
|
] }),
|
|
91
|
-
/* @__PURE__ */
|
|
92
|
-
/* @__PURE__ */ e(g, { variant: "outline", size: "sm", className: "hidden sm:inline-flex", onClick: z, children: /* @__PURE__ */ e("span", { children:
|
|
84
|
+
/* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
|
|
85
|
+
/* @__PURE__ */ e(g, { variant: "outline", size: "sm", className: "hidden sm:inline-flex", onClick: z, children: /* @__PURE__ */ e("span", { children: a("language_toggle") }) }),
|
|
93
86
|
/* @__PURE__ */ e(
|
|
94
87
|
g,
|
|
95
88
|
{
|
|
96
89
|
asChild: !0,
|
|
97
90
|
variant: "outline",
|
|
98
91
|
size: "sm",
|
|
99
|
-
className:
|
|
100
|
-
children: /* @__PURE__ */
|
|
101
|
-
/* @__PURE__ */ e(
|
|
102
|
-
/* @__PURE__ */ e("span", { children:
|
|
103
|
-
/* @__PURE__ */ e(
|
|
92
|
+
className: S("relative gap-2", u > 0 ? "inline-flex" : "hidden"),
|
|
93
|
+
children: /* @__PURE__ */ t(s, { to: U, children: [
|
|
94
|
+
/* @__PURE__ */ e(O, { className: "h-4 w-4", "aria-hidden": "true" }),
|
|
95
|
+
/* @__PURE__ */ e("span", { children: a("cart_button") }),
|
|
96
|
+
/* @__PURE__ */ e(D, { className: "absolute -right-2 -top-2 h-5 min-w-5 rounded-full px-1.5 text-xs", children: /* @__PURE__ */ e("span", { children: u }) })
|
|
104
97
|
] })
|
|
105
98
|
}
|
|
106
99
|
),
|
|
107
|
-
/* @__PURE__ */ e(g, { asChild: !0, size: "sm", className: "gap-2", children: /* @__PURE__ */
|
|
108
|
-
/* @__PURE__ */ e("span", { children:
|
|
109
|
-
/* @__PURE__ */ e(
|
|
100
|
+
/* @__PURE__ */ e(g, { asChild: !0, size: "sm", className: "gap-2", children: /* @__PURE__ */ t(s, { to: w, children: [
|
|
101
|
+
/* @__PURE__ */ e("span", { children: a("cta_book_now") }),
|
|
102
|
+
/* @__PURE__ */ e(Y, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
110
103
|
] }) })
|
|
111
104
|
] })
|
|
112
105
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/index.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAItE,KAAK,WAAW,GAAG;IACjB,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD,CAAA;AAED,wBAAgB,MAAM,CAAC,EAAE,uBAAuB,EAAE,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/index.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAItE,KAAK,WAAW,GAAG;IACjB,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;CAClD,CAAA;AAED,wBAAgB,MAAM,CAAC,EAAE,uBAAuB,EAAE,EAAE,WAAW,2CA2D9D"}
|
|
@@ -1,47 +1,56 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as o, jsxs as h, Fragment as d } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect as f } from "react";
|
|
3
|
-
import { RootProvider as
|
|
4
|
-
import { useParams as
|
|
3
|
+
import { RootProvider as u } from "@rpcbase/client";
|
|
4
|
+
import { useParams as g, useLocation as P, Outlet as m } from "@rpcbase/router";
|
|
5
5
|
import { useTranslation as v } from "react-i18next";
|
|
6
|
-
import { Footer as
|
|
6
|
+
import { Footer as w } from "../Footer/index.js";
|
|
7
7
|
import { Header as x } from "../Header/index.js";
|
|
8
|
-
import { PlatformFooter as
|
|
8
|
+
import { PlatformFooter as y } from "../PlatformFooter/index.js";
|
|
9
9
|
import { PlaygroundDevFloatingButton as S } from "../PlaygroundDevFloatingButton/index.js";
|
|
10
10
|
import { StorefrontPopupMessages as b } from "../StorefrontPopupMessages/index.js";
|
|
11
|
-
import { WhatsAppFloatingButton as
|
|
11
|
+
import { WhatsAppFloatingButton as D } from "../WhatsAppFloatingButton/WhatsAppFloatingButton.js";
|
|
12
12
|
import "interactjs";
|
|
13
13
|
import { getStorefrontPreset as F } from "../../data/config.js";
|
|
14
|
-
import { StorefrontCartProvider as
|
|
15
|
-
import {
|
|
14
|
+
import { StorefrontCartProvider as H } from "../../lib/cart.js";
|
|
15
|
+
import { resolveStorefrontWhatsAppContact as E } from "../../lib/whatsapp.js";
|
|
16
16
|
import { Provider as k } from "../../ui/tooltip.js";
|
|
17
|
-
function
|
|
18
|
-
const { storeSlug: i, referenceId:
|
|
17
|
+
function J({ storefrontConfiguration: e }) {
|
|
18
|
+
const { storeSlug: i, referenceId: a } = g(), l = P(), { i18n: c } = v();
|
|
19
19
|
f(() => {
|
|
20
20
|
document.documentElement.setAttribute("data-hydrated", "true");
|
|
21
21
|
}, []);
|
|
22
|
-
const t = F(i),
|
|
22
|
+
const t = F(i), n = E({
|
|
23
23
|
preset: t,
|
|
24
|
-
storefrontConfiguration:
|
|
25
|
-
language:
|
|
26
|
-
}), n = typeof
|
|
27
|
-
return /* @__PURE__ */
|
|
28
|
-
/* @__PURE__ */
|
|
29
|
-
|
|
30
|
-
/* @__PURE__ */ e(
|
|
31
|
-
P,
|
|
24
|
+
storefrontConfiguration: e,
|
|
25
|
+
language: c.language
|
|
26
|
+
}), r = n?.href, s = typeof a == "string" && a.trim().length > 0, p = s && new URLSearchParams(l.search).get("pdf") === "1";
|
|
27
|
+
return /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(k, { children: /* @__PURE__ */ o(H, { storeSlug: i ?? "", children: /* @__PURE__ */ o("div", { className: `loczer-storefront flex flex-col bg-background text-foreground ${s && !p ? "h-dvh overflow-hidden" : "min-h-screen"}`, children: s ? /* @__PURE__ */ o("main", { className: `flex-1 ${p ? "bg-white" : "overflow-hidden"}`, children: /* @__PURE__ */ o(m, {}) }) : /* @__PURE__ */ h(d, { children: [
|
|
28
|
+
/* @__PURE__ */ o(
|
|
29
|
+
x,
|
|
32
30
|
{
|
|
33
31
|
preset: t,
|
|
32
|
+
storefrontConfiguration: e,
|
|
34
33
|
whatsappHref: r,
|
|
35
|
-
|
|
36
|
-
openingHoursOverrides: o?.bookingEngine.shop.openingHoursOverrides
|
|
34
|
+
whatsappPhoneDisplay: n?.phoneDisplay
|
|
37
35
|
}
|
|
38
36
|
),
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
/* @__PURE__ */ o("main", { className: "flex-1", children: /* @__PURE__ */ o(m, {}) }),
|
|
38
|
+
/* @__PURE__ */ o(
|
|
39
|
+
w,
|
|
40
|
+
{
|
|
41
|
+
preset: t,
|
|
42
|
+
whatsappHref: r,
|
|
43
|
+
whatsappPhoneDisplay: n?.phoneDisplay,
|
|
44
|
+
openingHours: e?.bookingEngine.shop.openingHours,
|
|
45
|
+
openingHoursOverrides: e?.bookingEngine.shop.openingHoursOverrides
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ o(y, {}),
|
|
49
|
+
r && e?.content?.showWhatsappFloatingButton !== !1 ? /* @__PURE__ */ o(D, { href: r }) : null,
|
|
50
|
+
/* @__PURE__ */ o(S, {}),
|
|
51
|
+
/* @__PURE__ */ o(b, { storefrontConfiguration: e })
|
|
43
52
|
] }) }) }) }) });
|
|
44
53
|
}
|
|
45
54
|
export {
|
|
46
|
-
|
|
55
|
+
J as Layout
|
|
47
56
|
};
|
|
@@ -27,7 +27,7 @@ function O({
|
|
|
27
27
|
return i >= 72 && i % 24 === 0 ? t("cancellation_policy_duration_days", { count: i / 24 }) : t("cancellation_policy_duration_hours", { count: i });
|
|
28
28
|
};
|
|
29
29
|
return /* @__PURE__ */ n("li", { className: v("flex items-start gap-3", l), "data-testid": "storefront-cancellation-policy-notice", children: [
|
|
30
|
-
/* @__PURE__ */ e(w, { className: "mt-0.5 h-5 w-5 shrink-0 text-
|
|
30
|
+
/* @__PURE__ */ e(w, { className: "mt-0.5 h-5 w-5 shrink-0 text-emerald-600", "aria-hidden": "true" }),
|
|
31
31
|
/* @__PURE__ */ n("div", { className: "min-w-0 flex-1", children: [
|
|
32
32
|
/* @__PURE__ */ n("div", { className: "flex min-w-0 items-start gap-1.5", children: [
|
|
33
33
|
/* @__PURE__ */ e("p", { className: "min-w-0 text-sm font-medium text-slate-950", children: /* @__PURE__ */ e("span", { children: t("cancellation_policy_teaser", { duration: c(o.upToHours) }) }) }),
|
|
@@ -42,7 +42,7 @@ function O({
|
|
|
42
42
|
}
|
|
43
43
|
)
|
|
44
44
|
] }),
|
|
45
|
-
/* @__PURE__ */ e("p", { className: "text-xs text-slate-600", children: /* @__PURE__ */ e("span", { children: t("cancellation_policy_teaser_description") }) })
|
|
45
|
+
/* @__PURE__ */ e("p", { className: "text-xs text-slate-600", children: /* @__PURE__ */ e("span", { children: t("cancellation_policy_teaser_description", { duration: c(o.upToHours) }) }) })
|
|
46
46
|
] }),
|
|
47
47
|
/* @__PURE__ */ e(x, { open: u, onOpenChange: r, children: /* @__PURE__ */ e(
|
|
48
48
|
g,
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -21,8 +21,8 @@ export declare const storefront: {
|
|
|
21
21
|
feature_secure_payment_description: string;
|
|
22
22
|
feature_delivery_title: string;
|
|
23
23
|
feature_delivery_description: string;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
feature_guarantee_insurance_title: string;
|
|
25
|
+
feature_guarantee_insurance_description: string;
|
|
26
26
|
cancellation_policy_teaser: string;
|
|
27
27
|
cancellation_policy_teaser_description: string;
|
|
28
28
|
cancellation_policy_info_aria_label: string;
|
|
@@ -176,7 +176,6 @@ export declare const storefront: {
|
|
|
176
176
|
checkout_payment_due_now_helper_deposit_refundable_until: string;
|
|
177
177
|
checkout_payment_due_now_helper_deposit: string;
|
|
178
178
|
checkout_payment_due_now_helper_none: string;
|
|
179
|
-
checkout_payment_cancellation_policy_helper: string;
|
|
180
179
|
checkout_payment_provider: string;
|
|
181
180
|
checkout_payment_loading: string;
|
|
182
181
|
checkout_payment_error: string;
|
|
@@ -190,7 +189,6 @@ export declare const storefront: {
|
|
|
190
189
|
checkout_payment_return_loading: string;
|
|
191
190
|
checkout_payment_return_missing_session: string;
|
|
192
191
|
checkout_payment_return_status_error: string;
|
|
193
|
-
checkout_payment_return_refresh_status: string;
|
|
194
192
|
checkout_payment_return_back_to_checkout: string;
|
|
195
193
|
checkout_payment_return_retry_checkout: string;
|
|
196
194
|
checkout_payment_return_go_to_success: string;
|
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsZtB,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -18,13 +18,13 @@ const e = {
|
|
|
18
18
|
hero_title: "Book your bike in minutes",
|
|
19
19
|
hero_description: "Pick your dates, then choose the right bike for your trip.",
|
|
20
20
|
feature_secure_payment_title: "Secure payment",
|
|
21
|
-
feature_secure_payment_description: "Pay online with a secure checkout
|
|
21
|
+
feature_secure_payment_description: "Pay online with a secure checkout",
|
|
22
22
|
feature_delivery_title: "Delivery available",
|
|
23
23
|
feature_delivery_description: "Ask about delivery options for your address.",
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
cancellation_policy_teaser: "Refund until {{duration}} in advance",
|
|
27
|
-
cancellation_policy_teaser_description: "See cancellation conditions before booking
|
|
24
|
+
feature_guarantee_insurance_title: "Guarantee and Insurance",
|
|
25
|
+
feature_guarantee_insurance_description: "Rental covered according to the shop's terms",
|
|
26
|
+
cancellation_policy_teaser: "Refund* until {{duration}} in advance",
|
|
27
|
+
cancellation_policy_teaser_description: "See cancellation conditions before booking",
|
|
28
28
|
cancellation_policy_info_aria_label: "Show cancellation policy",
|
|
29
29
|
cancellation_policy_modal_title: "Cancellation policy",
|
|
30
30
|
cancellation_policy_modal_description: "Refunds depend on how far in advance you cancel.",
|
|
@@ -176,7 +176,6 @@ const e = {
|
|
|
176
176
|
checkout_payment_due_now_helper_deposit_refundable_until: "{{percent}} deposit due now. Refundable until {{date}}.",
|
|
177
177
|
checkout_payment_due_now_helper_deposit: "{{percent}} deposit due now.",
|
|
178
178
|
checkout_payment_due_now_helper_none: "No payment required now.",
|
|
179
|
-
checkout_payment_cancellation_policy_helper: "Cancellation refund estimate: {{percent}} up to {{amount}}.",
|
|
180
179
|
checkout_payment_provider: "Provider",
|
|
181
180
|
checkout_payment_loading: "Checking payment options…",
|
|
182
181
|
checkout_payment_error: "Unable to check payment options.",
|
|
@@ -190,7 +189,6 @@ const e = {
|
|
|
190
189
|
checkout_payment_return_loading: "Checking payment status…",
|
|
191
190
|
checkout_payment_return_missing_session: "Checkout payment session is missing. Please restart checkout.",
|
|
192
191
|
checkout_payment_return_status_error: "Unable to verify checkout payment status.",
|
|
193
|
-
checkout_payment_return_refresh_status: "Refresh status",
|
|
194
192
|
checkout_payment_return_back_to_checkout: "Back to checkout",
|
|
195
193
|
checkout_payment_return_retry_checkout: "Try checkout again",
|
|
196
194
|
checkout_payment_return_go_to_success: "Continue",
|
package/dist/i18n/fr.d.ts
CHANGED
|
@@ -21,8 +21,8 @@ export declare const storefront: {
|
|
|
21
21
|
feature_secure_payment_description: string;
|
|
22
22
|
feature_delivery_title: string;
|
|
23
23
|
feature_delivery_description: string;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
feature_guarantee_insurance_title: string;
|
|
25
|
+
feature_guarantee_insurance_description: string;
|
|
26
26
|
cancellation_policy_teaser: string;
|
|
27
27
|
cancellation_policy_teaser_description: string;
|
|
28
28
|
cancellation_policy_info_aria_label: string;
|
|
@@ -176,7 +176,6 @@ export declare const storefront: {
|
|
|
176
176
|
checkout_payment_due_now_helper_deposit_refundable_until: string;
|
|
177
177
|
checkout_payment_due_now_helper_deposit: string;
|
|
178
178
|
checkout_payment_due_now_helper_none: string;
|
|
179
|
-
checkout_payment_cancellation_policy_helper: string;
|
|
180
179
|
checkout_payment_provider: string;
|
|
181
180
|
checkout_payment_loading: string;
|
|
182
181
|
checkout_payment_error: string;
|
|
@@ -190,7 +189,6 @@ export declare const storefront: {
|
|
|
190
189
|
checkout_payment_return_loading: string;
|
|
191
190
|
checkout_payment_return_missing_session: string;
|
|
192
191
|
checkout_payment_return_status_error: string;
|
|
193
|
-
checkout_payment_return_refresh_status: string;
|
|
194
192
|
checkout_payment_return_back_to_checkout: string;
|
|
195
193
|
checkout_payment_return_retry_checkout: string;
|
|
196
194
|
checkout_payment_return_go_to_success: string;
|
package/dist/i18n/fr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsZtB,CAAA"}
|
package/dist/i18n/fr.js
CHANGED
|
@@ -18,13 +18,13 @@ const e = {
|
|
|
18
18
|
hero_title: "Réservez votre vélo en quelques minutes",
|
|
19
19
|
hero_description: "Choisissez vos dates, puis sélectionnez le vélo adapté à votre sortie.",
|
|
20
20
|
feature_secure_payment_title: "Paiement sécurisé",
|
|
21
|
-
feature_secure_payment_description: "Payez en ligne via un paiement
|
|
21
|
+
feature_secure_payment_description: "Payez en ligne via un paiement sécurisé",
|
|
22
22
|
feature_delivery_title: "Livraison disponible",
|
|
23
23
|
feature_delivery_description: "Demandez les options de livraison à votre adresse.",
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
cancellation_policy_teaser: "
|
|
27
|
-
cancellation_policy_teaser_description: "
|
|
24
|
+
feature_guarantee_insurance_title: "Garantie et Assurance",
|
|
25
|
+
feature_guarantee_insurance_description: "Vous pouvez souscrire à une assurance pour protéger le matériel loué.",
|
|
26
|
+
cancellation_policy_teaser: "Annulation et remboursement* jusqu'à {{duration}} à l'avance",
|
|
27
|
+
cancellation_policy_teaser_description: "Vous pouvez annuler ou modifier votre réservation jusqu'à {{duration}} avant son début.",
|
|
28
28
|
cancellation_policy_info_aria_label: "Afficher les conditions d'annulation",
|
|
29
29
|
cancellation_policy_modal_title: "Conditions d'annulation",
|
|
30
30
|
cancellation_policy_modal_description: "Le remboursement dépend du délai entre l'annulation et le début de la réservation.",
|
|
@@ -176,7 +176,6 @@ const e = {
|
|
|
176
176
|
checkout_payment_due_now_helper_deposit_refundable_until: "Acompte de {{percent}} à payer maintenant. Remboursable jusqu’au {{date}}.",
|
|
177
177
|
checkout_payment_due_now_helper_deposit: "Acompte de {{percent}} à payer maintenant.",
|
|
178
178
|
checkout_payment_due_now_helper_none: "Aucun paiement n’est requis maintenant.",
|
|
179
|
-
checkout_payment_cancellation_policy_helper: "Estimation d'annulation : {{percent}} jusqu'à {{amount}}.",
|
|
180
179
|
checkout_payment_provider: "Prestataire",
|
|
181
180
|
checkout_payment_loading: "Vérification des options de paiement…",
|
|
182
181
|
checkout_payment_error: "Impossible de vérifier les options de paiement.",
|
|
@@ -190,7 +189,6 @@ const e = {
|
|
|
190
189
|
checkout_payment_return_loading: "Vérification du statut du paiement…",
|
|
191
190
|
checkout_payment_return_missing_session: "La session de paiement checkout est manquante. Veuillez recommencer le checkout.",
|
|
192
191
|
checkout_payment_return_status_error: "Impossible de vérifier le statut du paiement checkout.",
|
|
193
|
-
checkout_payment_return_refresh_status: "Actualiser le statut",
|
|
194
192
|
checkout_payment_return_back_to_checkout: "Retour au checkout",
|
|
195
193
|
checkout_payment_return_retry_checkout: "Réessayer le checkout",
|
|
196
194
|
checkout_payment_return_go_to_success: "Continuer",
|