@loczer/storefront-sdk 0.166.0 → 0.168.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/chunks/booking-engine/dist/schemas/base-booking-Dlgnuu6k.js +74 -0
- package/dist/chunks/ui/dist/{Dialog-COr6fnKd.js → Dialog-CR_9vgBQ.js} +1 -1
- package/dist/chunks/ui/dist/{MorphingModalWizard-BuRND-yE.js → MorphingModalWizard-CPLr3dh2.js} +3 -3
- package/dist/chunks/ui/dist/{ResponsiveDialog-D8YzB_3J.js → ResponsiveDialog-DhFgsW_0.js} +2 -2
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/Icon-OkokCq-b.js +37 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/context-C4oH64Wf.js +5 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/createLucideIcon-BI4k0Tt0.js +23 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/icons/{arrow-left-asE1l_Qw.js → arrow-left-DMMNgJEB.js} +1 -1
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/icons/{x-Cdi8GS7U.js → x-BDxS-rYd.js} +1 -1
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp-Lff9pF65.js +9 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses-HV-Vu34x.js +4 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase-BZAgYi2F.js +7 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase-DsnfsuSi.js +4 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase-DZxyG2X3.js +8 -0
- package/dist/components/BikeProductCard/index.d.ts.map +1 -1
- package/dist/components/BikeProductCard/index.js +40 -45
- package/dist/components/BookingBikeVariantDialog/index.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.js +1 -1
- 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 +55 -62
- package/dist/components/Layout/index.d.ts.map +1 -1
- package/dist/components/Layout/index.js +35 -26
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +3 -3
- package/dist/components/StorefrontPopupMessages/index.js +1 -1
- package/dist/i18n/en.d.ts +2 -5
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +7 -10
- package/dist/i18n/fr.d.ts +2 -5
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +8 -11
- package/dist/index.d.ts +8 -20
- package/dist/index.js +2 -2
- package/dist/lib/checkoutSubmit.js +1 -1
- 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 +185 -173
- package/dist/storefront.css +1 -1
- package/dist/storefrontSchemas.js +1 -1
- package/package.json +2 -2
- package/dist/chunks/booking-engine/dist/schemas/base-booking-BMAjsw9r.js +0 -78
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/Icon-BNiQfVqr.js +0 -35
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/createLucideIcon-5_J8fxOF.js +0 -21
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils-nzQUBs6v.js +0 -18
|
@@ -1,62 +1,55 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useMediaQuery as
|
|
3
|
-
import { useParams as W, useLocation as q, Link 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 A, useThrottledMeasure as H } from "@rpcbase/client";
|
|
3
|
+
import { useParams as W, useLocation as q, Link as s } from "@rpcbase/router";
|
|
4
|
+
import { useScrollHideOnDown as E, cn as $ } 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
13
|
import { getLocalizedValue as L } from "../../localization.js";
|
|
14
|
-
const K = 36,
|
|
15
|
-
const l =
|
|
16
|
-
return l ? J(l,
|
|
14
|
+
const K = 36, _ = (r, a) => {
|
|
15
|
+
const l = r?.trim() ?? "";
|
|
16
|
+
return l ? J(l, a ?? "") : "";
|
|
17
17
|
};
|
|
18
|
-
function de({ preset:
|
|
19
|
-
const { t, i18n:
|
|
20
|
-
enabled:
|
|
18
|
+
function de({ preset: r, storefrontConfiguration: a, whatsappHref: l, whatsappPhoneDisplay: c }) {
|
|
19
|
+
const { t: n, i18n: m } = C(), { storeSlug: d } = W(), y = q(), { itemCount: u } = Q(), p = A("(max-width: 640px)"), [B, j] = H(), 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 = a?.shop.name?.trim() || r.name, v = a?.workspace?.workspaceLanguage, M = L(a?.content?.tagline, m.language, v).trim() || r.tagline, P = L(a?.content?.topBannerMessage, m.language, v).trim() || n("top_bar_message"), k = _(a?.content?.logoWideImageId, d), S = _(a?.content?.logoSquareImageId, d), h = k.length > 0, R = S.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": `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: S, alt: "", className: "h-full w-full object-contain", "aria-hidden": "true" }) }) : /* @__PURE__ */ e("span", { className: $("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: n("nav_categories") }) }),
|
|
80
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#featured`, children: /* @__PURE__ */ e("span", { children: n("nav_featured") }) }),
|
|
81
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: w, children: /* @__PURE__ */ e("span", { children: n("nav_products") }) }),
|
|
82
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#contact`, children: /* @__PURE__ */ e("span", { children: n("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: n("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: $("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: n("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: n("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
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { useState as f } from "react";
|
|
3
|
-
import { ResponsiveDialog as x, ResponsiveDialogContent as g, ResponsiveDialogHeader as _, ResponsiveDialogTitle as N, ResponsiveDialogDescription as b, ResponsiveDialogFooter as y } from "../../chunks/ui/dist/ResponsiveDialog-
|
|
3
|
+
import { ResponsiveDialog as x, ResponsiveDialogContent as g, ResponsiveDialogHeader as _, ResponsiveDialogTitle as N, ResponsiveDialogDescription as b, ResponsiveDialogFooter as y } from "../../chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
4
4
|
import { cn as v } from "@rpcbase/ui";
|
|
5
5
|
import { CheckCircle2 as w, Info as d } from "lucide-react";
|
|
6
6
|
import { useTranslation as T } from "react-i18next";
|
|
@@ -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,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import { useState as S, useEffect as $ } from "react";
|
|
3
|
-
import { ResponsiveDialog as R, ResponsiveDialogContent as E, ResponsiveDialogHeader as D, ResponsiveDialogTitle as I, ResponsiveDialogDescription as P, ResponsiveDialogFooter as O } from "../../chunks/ui/dist/ResponsiveDialog-
|
|
3
|
+
import { ResponsiveDialog as R, ResponsiveDialogContent as E, ResponsiveDialogHeader as D, ResponsiveDialogTitle as I, ResponsiveDialogDescription as P, ResponsiveDialogFooter as O } from "../../chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
4
4
|
import { useParams as j, useLocation as z } from "@rpcbase/router";
|
|
5
5
|
import { cn as x } from "@rpcbase/ui";
|
|
6
6
|
import { X as H, Info as L } from "lucide-react";
|
package/dist/i18n/en.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export declare const storefront: {
|
|
|
4
4
|
slug_label: string;
|
|
5
5
|
info: string;
|
|
6
6
|
top_bar_message: string;
|
|
7
|
-
top_bar_whatsapp: string;
|
|
8
7
|
nav_categories: string;
|
|
9
8
|
nav_featured: string;
|
|
10
9
|
nav_products: string;
|
|
@@ -21,8 +20,8 @@ export declare const storefront: {
|
|
|
21
20
|
feature_secure_payment_description: string;
|
|
22
21
|
feature_delivery_title: string;
|
|
23
22
|
feature_delivery_description: string;
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
feature_guarantee_insurance_title: string;
|
|
24
|
+
feature_guarantee_insurance_description: string;
|
|
26
25
|
cancellation_policy_teaser: string;
|
|
27
26
|
cancellation_policy_teaser_description: string;
|
|
28
27
|
cancellation_policy_info_aria_label: string;
|
|
@@ -176,7 +175,6 @@ export declare const storefront: {
|
|
|
176
175
|
checkout_payment_due_now_helper_deposit_refundable_until: string;
|
|
177
176
|
checkout_payment_due_now_helper_deposit: string;
|
|
178
177
|
checkout_payment_due_now_helper_none: string;
|
|
179
|
-
checkout_payment_cancellation_policy_helper: string;
|
|
180
178
|
checkout_payment_provider: string;
|
|
181
179
|
checkout_payment_loading: string;
|
|
182
180
|
checkout_payment_error: string;
|
|
@@ -190,7 +188,6 @@ export declare const storefront: {
|
|
|
190
188
|
checkout_payment_return_loading: string;
|
|
191
189
|
checkout_payment_return_missing_session: string;
|
|
192
190
|
checkout_payment_return_status_error: string;
|
|
193
|
-
checkout_payment_return_refresh_status: string;
|
|
194
191
|
checkout_payment_return_back_to_checkout: string;
|
|
195
192
|
checkout_payment_return_retry_checkout: string;
|
|
196
193
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqZtB,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -4,7 +4,6 @@ const e = {
|
|
|
4
4
|
slug_label: "Store path",
|
|
5
5
|
info: "Each store URL currently renders the same storefront experience.",
|
|
6
6
|
top_bar_message: "Questions? Contact us to book your bikes in advance.",
|
|
7
|
-
top_bar_whatsapp: "WhatsApp",
|
|
8
7
|
nav_categories: "Categories",
|
|
9
8
|
nav_featured: "Featured",
|
|
10
9
|
nav_products: "Bikes",
|
|
@@ -18,13 +17,13 @@ const e = {
|
|
|
18
17
|
hero_title: "Book your bike in minutes",
|
|
19
18
|
hero_description: "Pick your dates, then choose the right bike for your trip.",
|
|
20
19
|
feature_secure_payment_title: "Secure payment",
|
|
21
|
-
feature_secure_payment_description: "Pay online with a secure checkout
|
|
20
|
+
feature_secure_payment_description: "Pay online with a secure checkout",
|
|
22
21
|
feature_delivery_title: "Delivery available",
|
|
23
22
|
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
|
|
23
|
+
feature_guarantee_insurance_title: "Guarantee and Insurance",
|
|
24
|
+
feature_guarantee_insurance_description: "Rental covered according to the shop's terms",
|
|
25
|
+
cancellation_policy_teaser: "Refund* until {{duration}} in advance",
|
|
26
|
+
cancellation_policy_teaser_description: "See cancellation conditions before booking",
|
|
28
27
|
cancellation_policy_info_aria_label: "Show cancellation policy",
|
|
29
28
|
cancellation_policy_modal_title: "Cancellation policy",
|
|
30
29
|
cancellation_policy_modal_description: "Refunds depend on how far in advance you cancel.",
|
|
@@ -34,7 +33,7 @@ const e = {
|
|
|
34
33
|
cancellation_policy_duration_hours_other: "{{count}} hours",
|
|
35
34
|
cancellation_policy_duration_days_one: "{{count}} day",
|
|
36
35
|
cancellation_policy_duration_days_other: "{{count}} days",
|
|
37
|
-
booking_title: "
|
|
36
|
+
booking_title: "Choose your rental dates",
|
|
38
37
|
booking_subtitle: "Choose dates and times, then browse available bikes.",
|
|
39
38
|
booking_pickup_label: "Store pickup",
|
|
40
39
|
booking_delivery_label: "Delivery",
|
|
@@ -176,7 +175,6 @@ const e = {
|
|
|
176
175
|
checkout_payment_due_now_helper_deposit_refundable_until: "{{percent}} deposit due now. Refundable until {{date}}.",
|
|
177
176
|
checkout_payment_due_now_helper_deposit: "{{percent}} deposit due now.",
|
|
178
177
|
checkout_payment_due_now_helper_none: "No payment required now.",
|
|
179
|
-
checkout_payment_cancellation_policy_helper: "Cancellation refund estimate: {{percent}} up to {{amount}}.",
|
|
180
178
|
checkout_payment_provider: "Provider",
|
|
181
179
|
checkout_payment_loading: "Checking payment options…",
|
|
182
180
|
checkout_payment_error: "Unable to check payment options.",
|
|
@@ -190,7 +188,6 @@ const e = {
|
|
|
190
188
|
checkout_payment_return_loading: "Checking payment status…",
|
|
191
189
|
checkout_payment_return_missing_session: "Checkout payment session is missing. Please restart checkout.",
|
|
192
190
|
checkout_payment_return_status_error: "Unable to verify checkout payment status.",
|
|
193
|
-
checkout_payment_return_refresh_status: "Refresh status",
|
|
194
191
|
checkout_payment_return_back_to_checkout: "Back to checkout",
|
|
195
192
|
checkout_payment_return_retry_checkout: "Try checkout again",
|
|
196
193
|
checkout_payment_return_go_to_success: "Continue",
|
|
@@ -291,7 +288,7 @@ const e = {
|
|
|
291
288
|
footer_brand_title: "Need help choosing?",
|
|
292
289
|
footer_brand_description: "Contact us and we’ll help you pick the right bikes and accessories.",
|
|
293
290
|
footer_contact_title: "Contact",
|
|
294
|
-
footer_whatsapp_link: "
|
|
291
|
+
footer_whatsapp_link: "WhatsApp",
|
|
295
292
|
footer_hours_title: "Opening hours",
|
|
296
293
|
footer_business_hours_closed: "Closed",
|
|
297
294
|
footer_business_hours_weekday_range: "{{start}} - {{end}}",
|
package/dist/i18n/fr.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export declare const storefront: {
|
|
|
4
4
|
slug_label: string;
|
|
5
5
|
info: string;
|
|
6
6
|
top_bar_message: string;
|
|
7
|
-
top_bar_whatsapp: string;
|
|
8
7
|
nav_categories: string;
|
|
9
8
|
nav_featured: string;
|
|
10
9
|
nav_products: string;
|
|
@@ -21,8 +20,8 @@ export declare const storefront: {
|
|
|
21
20
|
feature_secure_payment_description: string;
|
|
22
21
|
feature_delivery_title: string;
|
|
23
22
|
feature_delivery_description: string;
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
feature_guarantee_insurance_title: string;
|
|
24
|
+
feature_guarantee_insurance_description: string;
|
|
26
25
|
cancellation_policy_teaser: string;
|
|
27
26
|
cancellation_policy_teaser_description: string;
|
|
28
27
|
cancellation_policy_info_aria_label: string;
|
|
@@ -176,7 +175,6 @@ export declare const storefront: {
|
|
|
176
175
|
checkout_payment_due_now_helper_deposit_refundable_until: string;
|
|
177
176
|
checkout_payment_due_now_helper_deposit: string;
|
|
178
177
|
checkout_payment_due_now_helper_none: string;
|
|
179
|
-
checkout_payment_cancellation_policy_helper: string;
|
|
180
178
|
checkout_payment_provider: string;
|
|
181
179
|
checkout_payment_loading: string;
|
|
182
180
|
checkout_payment_error: string;
|
|
@@ -190,7 +188,6 @@ export declare const storefront: {
|
|
|
190
188
|
checkout_payment_return_loading: string;
|
|
191
189
|
checkout_payment_return_missing_session: string;
|
|
192
190
|
checkout_payment_return_status_error: string;
|
|
193
|
-
checkout_payment_return_refresh_status: string;
|
|
194
191
|
checkout_payment_return_back_to_checkout: string;
|
|
195
192
|
checkout_payment_return_retry_checkout: string;
|
|
196
193
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqZtB,CAAA"}
|
package/dist/i18n/fr.js
CHANGED
|
@@ -3,8 +3,7 @@ const e = {
|
|
|
3
3
|
subtitle: "Pages vitrines partagées pour chaque URL de magasin.",
|
|
4
4
|
slug_label: "Chemin du magasin",
|
|
5
5
|
info: "Chaque URL de magasin affiche pour l'instant la même expérience vitrine.",
|
|
6
|
-
top_bar_message: "
|
|
7
|
-
top_bar_whatsapp: "WhatsApp",
|
|
6
|
+
top_bar_message: "Contactez-nous pour réserver vos vélos à l’avance.",
|
|
8
7
|
nav_categories: "Catégories",
|
|
9
8
|
nav_featured: "Sélection",
|
|
10
9
|
nav_products: "Vélos",
|
|
@@ -18,13 +17,13 @@ const e = {
|
|
|
18
17
|
hero_title: "Réservez votre vélo en quelques minutes",
|
|
19
18
|
hero_description: "Choisissez vos dates, puis sélectionnez le vélo adapté à votre sortie.",
|
|
20
19
|
feature_secure_payment_title: "Paiement sécurisé",
|
|
21
|
-
feature_secure_payment_description: "Payez en ligne via un paiement
|
|
20
|
+
feature_secure_payment_description: "Payez en ligne via un paiement sécurisé",
|
|
22
21
|
feature_delivery_title: "Livraison disponible",
|
|
23
22
|
feature_delivery_description: "Demandez les options de livraison à votre adresse.",
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
cancellation_policy_teaser: "
|
|
27
|
-
cancellation_policy_teaser_description: "
|
|
23
|
+
feature_guarantee_insurance_title: "Garantie et Assurance",
|
|
24
|
+
feature_guarantee_insurance_description: "Vous pouvez souscrire à une assurance pour protéger le matériel loué",
|
|
25
|
+
cancellation_policy_teaser: "Annulation et remboursement* jusqu'à {{duration}} à l'avance",
|
|
26
|
+
cancellation_policy_teaser_description: "Vous pouvez annuler ou modifier votre réservation jusqu'à {{duration}} avant son début",
|
|
28
27
|
cancellation_policy_info_aria_label: "Afficher les conditions d'annulation",
|
|
29
28
|
cancellation_policy_modal_title: "Conditions d'annulation",
|
|
30
29
|
cancellation_policy_modal_description: "Le remboursement dépend du délai entre l'annulation et le début de la réservation.",
|
|
@@ -34,7 +33,7 @@ const e = {
|
|
|
34
33
|
cancellation_policy_duration_hours_other: "{{count}} heures",
|
|
35
34
|
cancellation_policy_duration_days_one: "{{count}} jour",
|
|
36
35
|
cancellation_policy_duration_days_other: "{{count}} jours",
|
|
37
|
-
booking_title: "
|
|
36
|
+
booking_title: "Choisissez vos dates de location",
|
|
38
37
|
booking_subtitle: "Choisissez les dates et horaires, puis parcourez les vélos disponibles.",
|
|
39
38
|
booking_pickup_label: "Retrait en boutique",
|
|
40
39
|
booking_delivery_label: "Livraison",
|
|
@@ -176,7 +175,6 @@ const e = {
|
|
|
176
175
|
checkout_payment_due_now_helper_deposit_refundable_until: "Acompte de {{percent}} à payer maintenant. Remboursable jusqu’au {{date}}.",
|
|
177
176
|
checkout_payment_due_now_helper_deposit: "Acompte de {{percent}} à payer maintenant.",
|
|
178
177
|
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
178
|
checkout_payment_provider: "Prestataire",
|
|
181
179
|
checkout_payment_loading: "Vérification des options de paiement…",
|
|
182
180
|
checkout_payment_error: "Impossible de vérifier les options de paiement.",
|
|
@@ -190,7 +188,6 @@ const e = {
|
|
|
190
188
|
checkout_payment_return_loading: "Vérification du statut du paiement…",
|
|
191
189
|
checkout_payment_return_missing_session: "La session de paiement checkout est manquante. Veuillez recommencer le checkout.",
|
|
192
190
|
checkout_payment_return_status_error: "Impossible de vérifier le statut du paiement checkout.",
|
|
193
|
-
checkout_payment_return_refresh_status: "Actualiser le statut",
|
|
194
191
|
checkout_payment_return_back_to_checkout: "Retour au checkout",
|
|
195
192
|
checkout_payment_return_retry_checkout: "Réessayer le checkout",
|
|
196
193
|
checkout_payment_return_go_to_success: "Continuer",
|
|
@@ -291,7 +288,7 @@ const e = {
|
|
|
291
288
|
footer_brand_title: "Besoin de conseils ?",
|
|
292
289
|
footer_brand_description: "Contactez-nous, on vous aide à choisir les bons vélos et accessoires.",
|
|
293
290
|
footer_contact_title: "Contact",
|
|
294
|
-
footer_whatsapp_link: "
|
|
291
|
+
footer_whatsapp_link: "WhatsApp",
|
|
295
292
|
footer_hours_title: "Horaires d’ouverture",
|
|
296
293
|
footer_business_hours_closed: "Fermé",
|
|
297
294
|
footer_business_hours_weekday_range: "{{start}} - {{end}}",
|