@loczer/storefront-sdk 0.198.0 → 0.199.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/StorefrontContext.d.ts +483 -0
- package/dist/StorefrontContext.d.ts.map +1 -0
- package/dist/StorefrontContext.js +39 -0
- package/dist/StorefrontProvider.d.ts +6 -486
- package/dist/StorefrontProvider.d.ts.map +1 -1
- package/dist/StorefrontProvider.js +34 -67
- package/dist/components/AboutSection/index.js +5 -5
- package/dist/components/BikeProductCard/index.d.ts.map +1 -1
- package/dist/components/BikeProductCard/index.js +27 -27
- package/dist/components/BookingBikeVariantDialog/index.js +14 -8
- package/dist/components/ContactSection/index.js +107 -107
- package/dist/components/ContractSaleDocument/Invoice.d.ts.map +1 -1
- package/dist/components/ContractSaleDocument/Invoice.js +117 -111
- package/dist/components/Header/index.js +4 -4
- package/dist/components/Layout/index.d.ts.map +1 -1
- package/dist/components/Layout/index.js +47 -40
- package/dist/components/ProductPriceBadge/index.d.ts +2 -1
- package/dist/components/ProductPriceBadge/index.d.ts.map +1 -1
- package/dist/components/ProductPriceBadge/index.js +72 -70
- package/dist/components/TestimonialsSection/index.js +1 -1
- package/dist/i18n/en.d.ts +1 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +1 -0
- package/dist/i18n/fr.d.ts +1 -0
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +1 -0
- package/dist/index.d.ts +15 -2
- package/dist/index.js +59 -58
- package/dist/lib/cartSummary.js +7 -7
- package/dist/lib/products.d.ts +6 -0
- package/dist/lib/products.d.ts.map +1 -1
- package/dist/lib/products.js +36 -32
- package/dist/lib/toast.d.ts +9 -0
- package/dist/lib/toast.d.ts.map +1 -0
- package/dist/lib/toast.js +13 -0
- package/dist/pages/BookingPage.d.ts.map +1 -1
- package/dist/pages/BookingPage.js +143 -138
- package/dist/pages/CheckoutPage.js +217 -217
- package/dist/pages/CheckoutPaymentPage.js +124 -124
- package/dist/pages/ContractSaleDocumentPage.d.ts.map +1 -1
- package/dist/pages/ContractSaleDocumentPage.js +83 -83
- package/dist/pages/HomePage.js +6 -3
- package/dist/pages/ProductPage.d.ts.map +1 -1
- package/dist/pages/ProductPage.js +177 -165
- package/package.json +2 -1
|
@@ -1,102 +1,104 @@
|
|
|
1
1
|
import { buildDailyPriceRows as e, buildPriceTierLabels as t, formatStorefrontPriceMinor as n } from "../../lib/pricing.js";
|
|
2
2
|
import { Badge as r, badgeVariants as i } from "../../ui/badge.js";
|
|
3
|
-
import { useOptionalStorefront as a } from "../../
|
|
3
|
+
import { useOptionalStorefront as a } from "../../StorefrontContext.js";
|
|
4
4
|
import { useEffect as o, useId as ee, useRef as s, useState as c } from "react";
|
|
5
5
|
import { Fragment as te, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
6
|
import { useMediaQuery as d } from "@rpcbase/client";
|
|
7
|
-
import { useTranslation as
|
|
8
|
-
import { cn as
|
|
9
|
-
import { Info as
|
|
7
|
+
import { useTranslation as ne } from "react-i18next";
|
|
8
|
+
import { cn as f } from "@rpcbase/ui";
|
|
9
|
+
import { Info as re, Mail as p, Phone as m, TrendingDown as h } from "lucide-react";
|
|
10
10
|
import { Drawer as g } from "@base-ui/react/drawer";
|
|
11
11
|
import { Popover as _ } from "@base-ui/react/popover";
|
|
12
12
|
//#region src/components/ProductPriceBadge/index.tsx
|
|
13
13
|
var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-popover-open", y = (e) => typeof Node < "u" && e instanceof Node, b = (e) => {
|
|
14
14
|
typeof window > "u" || window.dispatchEvent(new CustomEvent(v, { detail: { id: e } }));
|
|
15
|
-
}, x = ({ prices: x, minPriceMinor: S, className: C }) => {
|
|
16
|
-
let { t:
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
}, W = () => {
|
|
21
|
-
H(), A(null);
|
|
15
|
+
}, x = ({ prices: x, minPriceMinor: S, className: C, openOnHover: w = !0 }) => {
|
|
16
|
+
let { t: T, i18n: E } = ne(), D = ee(), O = a(), oe = d(ae), se = d("(hover: none), (pointer: coarse)"), k = !!(oe || se), [A, j] = c(null), [M, N] = c(!1), P = s(null), F = s(null), I = s(null), L = s(null), R = A !== null, z = t(x, E.language, T), B = e(x, E.language), V = z[0], H = z[1], U = () => {
|
|
17
|
+
P.current &&= (clearTimeout(P.current), null);
|
|
18
|
+
}, W = (e) => {
|
|
19
|
+
k || (U(), j((t) => t === "click" ? t : e), b(D));
|
|
22
20
|
}, G = () => {
|
|
23
|
-
|
|
21
|
+
U(), j(null);
|
|
24
22
|
}, ce = () => {
|
|
25
|
-
|
|
23
|
+
U(), N(!0), b(D);
|
|
26
24
|
}, le = () => {
|
|
27
|
-
|
|
28
|
-
}, ue = (
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
N(!1);
|
|
26
|
+
}, ue = () => {
|
|
27
|
+
!w || R || W("hover");
|
|
28
|
+
}, de = (e) => y(e) ? !!(F.current?.contains(e) || L.current?.contains(e)) : !1, K = (e) => y(e) ? !!(I.current?.contains(e) || L.current?.contains(e)) : !1, q = (e) => {
|
|
29
|
+
A !== "hover" || K(e) || (U(), P.current = setTimeout(() => {
|
|
30
|
+
j((e) => e === "hover" ? null : e), P.current = null;
|
|
31
31
|
}, ie));
|
|
32
32
|
}, J = (e) => {
|
|
33
33
|
q(e?.relatedTarget);
|
|
34
|
-
},
|
|
34
|
+
}, fe = (e) => {
|
|
35
35
|
let t = e.relatedTarget ?? document.activeElement;
|
|
36
|
-
|
|
36
|
+
de(t) || G();
|
|
37
37
|
};
|
|
38
38
|
if (o(() => {
|
|
39
39
|
if (typeof window > "u") return () => {
|
|
40
|
-
|
|
40
|
+
U();
|
|
41
41
|
};
|
|
42
42
|
let e = (e) => {
|
|
43
|
-
e.detail?.id !==
|
|
43
|
+
e.detail?.id !== D && (U(), j(null), N(!1));
|
|
44
44
|
};
|
|
45
45
|
return window.addEventListener(v, e), () => {
|
|
46
|
-
window.removeEventListener(v, e),
|
|
46
|
+
window.removeEventListener(v, e), U();
|
|
47
47
|
};
|
|
48
|
-
}, [
|
|
49
|
-
if (
|
|
48
|
+
}, [D]), o(() => {
|
|
49
|
+
if (A !== "hover" || typeof window > "u") return;
|
|
50
50
|
let e = (e) => {
|
|
51
51
|
if (K(e.target)) {
|
|
52
|
-
|
|
52
|
+
U();
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
P.current || q(e.target);
|
|
56
56
|
};
|
|
57
57
|
return window.addEventListener("pointermove", e, { passive: !0 }), window.addEventListener("mousemove", e, { passive: !0 }), () => {
|
|
58
58
|
window.removeEventListener("pointermove", e), window.removeEventListener("mousemove", e);
|
|
59
59
|
};
|
|
60
|
-
}, [
|
|
61
|
-
if (
|
|
62
|
-
|
|
60
|
+
}, [A]), o(() => {
|
|
61
|
+
if (k) {
|
|
62
|
+
U(), j(null);
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
}, [
|
|
65
|
+
N(!1);
|
|
66
|
+
}, [k]), !V) return typeof S == "number" ? /* @__PURE__ */ l(r, {
|
|
67
67
|
variant: "outline",
|
|
68
|
-
className:
|
|
69
|
-
children: /* @__PURE__ */ l("span", { children:
|
|
68
|
+
className: f("border-slate-200 bg-white text-slate-700", C),
|
|
69
|
+
children: /* @__PURE__ */ l("span", { children: T("price_from", { price: n(S, E.language) }) })
|
|
70
70
|
}) : null;
|
|
71
|
-
let Y =
|
|
71
|
+
let Y = f(i({ variant: "outline" }), "gap-1.5 border-slate-200 bg-white text-slate-700 outline-none transition hover:border-slate-300 hover:text-slate-950 focus:border-slate-200 focus:outline-none focus:ring-0 focus:ring-transparent focus:ring-offset-0 focus-visible:border-slate-200 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0", B.length > 0 && "cursor-pointer", C), X = O?.storefrontConfiguration.shop.emailAddress?.trim(), Z = O?.storefrontConfiguration.shop.contactPhone1?.trim(), pe = !!(X || Z), Q = () => /* @__PURE__ */ u(te, { children: [
|
|
72
72
|
/* @__PURE__ */ l("span", {
|
|
73
73
|
className: "font-semibold",
|
|
74
|
-
children:
|
|
74
|
+
children: V
|
|
75
75
|
}),
|
|
76
|
-
|
|
76
|
+
H ? /* @__PURE__ */ u("span", {
|
|
77
77
|
className: "inline-flex items-center gap-1 text-slate-500",
|
|
78
78
|
children: [/* @__PURE__ */ l(h, {
|
|
79
79
|
className: "h-3 w-3",
|
|
80
80
|
strokeWidth: 2.4,
|
|
81
81
|
"aria-hidden": "true"
|
|
82
|
-
}), /* @__PURE__ */ l("span", { children:
|
|
82
|
+
}), /* @__PURE__ */ l("span", { children: T("price_then", { price: H }) })]
|
|
83
83
|
}) : null,
|
|
84
|
-
|
|
85
|
-
ref:
|
|
84
|
+
B.length > 0 ? /* @__PURE__ */ l("span", {
|
|
85
|
+
ref: I,
|
|
86
86
|
className: "inline-flex shrink-0 items-center text-slate-500",
|
|
87
|
-
onMouseEnter: () =>
|
|
88
|
-
|
|
87
|
+
onMouseEnter: () => {
|
|
88
|
+
w && W("hover");
|
|
89
|
+
},
|
|
90
|
+
onMouseMove: ue,
|
|
89
91
|
onMouseLeave: J,
|
|
90
|
-
children: /* @__PURE__ */ l(
|
|
92
|
+
children: /* @__PURE__ */ l(re, {
|
|
91
93
|
className: "h-3 w-3",
|
|
92
94
|
"aria-hidden": "true"
|
|
93
95
|
})
|
|
94
96
|
}) : null
|
|
95
|
-
] }),
|
|
97
|
+
] }), me = () => pe ? /* @__PURE__ */ u("div", {
|
|
96
98
|
className: "border-t border-slate-200 pt-2 text-slate-600",
|
|
97
99
|
children: [/* @__PURE__ */ l("p", {
|
|
98
100
|
className: "leading-snug",
|
|
99
|
-
children: /* @__PURE__ */ l("span", { children:
|
|
101
|
+
children: /* @__PURE__ */ l("span", { children: T("price_table_contact_prompt") })
|
|
100
102
|
}), /* @__PURE__ */ u("div", {
|
|
101
103
|
className: "mt-2 flex flex-wrap gap-x-3 gap-y-1",
|
|
102
104
|
children: [Z ? /* @__PURE__ */ u("a", {
|
|
@@ -112,7 +114,7 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
112
114
|
}) : null, X ? /* @__PURE__ */ u("a", {
|
|
113
115
|
className: "inline-flex min-w-0 items-center gap-1 font-medium text-slate-800 underline-offset-4 hover:underline",
|
|
114
116
|
href: `mailto:${X}`,
|
|
115
|
-
children: [/* @__PURE__ */ l(
|
|
117
|
+
children: [/* @__PURE__ */ l(p, {
|
|
116
118
|
className: "h-3 w-3 shrink-0",
|
|
117
119
|
"aria-hidden": "true"
|
|
118
120
|
}), /* @__PURE__ */ l("span", {
|
|
@@ -122,16 +124,16 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
122
124
|
}) : null]
|
|
123
125
|
})]
|
|
124
126
|
}) : null, $ = (e, t) => /* @__PURE__ */ u("div", {
|
|
125
|
-
className:
|
|
127
|
+
className: f("grid gap-2", t === "popover" ? "text-xs" : "text-base"),
|
|
126
128
|
children: [
|
|
127
129
|
e ? /* @__PURE__ */ l("p", {
|
|
128
130
|
className: "font-semibold uppercase tracking-[0.12em] text-slate-500",
|
|
129
|
-
children: /* @__PURE__ */ l("span", { children:
|
|
131
|
+
children: /* @__PURE__ */ l("span", { children: T("price_table_title") })
|
|
130
132
|
}) : null,
|
|
131
133
|
/* @__PURE__ */ l("ul", {
|
|
132
|
-
className:
|
|
133
|
-
children:
|
|
134
|
-
let i =
|
|
134
|
+
className: f("grid gap-1 text-slate-600", t === "drawer" && "gap-1.5"),
|
|
135
|
+
children: B.map(({ dayCount: e, totalPriceLabel: n, perDayPriceLabel: r }) => {
|
|
136
|
+
let i = T("price_table_day", { count: e }), a = T("price_table_per_day", { price: r });
|
|
135
137
|
return /* @__PURE__ */ l("li", { children: /* @__PURE__ */ u("div", {
|
|
136
138
|
className: "flex items-baseline gap-2",
|
|
137
139
|
children: [
|
|
@@ -146,7 +148,7 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
146
148
|
/* @__PURE__ */ u("span", {
|
|
147
149
|
className: "shrink-0 font-medium leading-tight text-slate-950",
|
|
148
150
|
children: [n, /* @__PURE__ */ u("span", {
|
|
149
|
-
className:
|
|
151
|
+
className: f("ml-1 font-medium text-slate-500", t === "popover" ? "text-xs" : "text-sm"),
|
|
150
152
|
children: [
|
|
151
153
|
/* @__PURE__ */ l("span", { children: "(" }),
|
|
152
154
|
/* @__PURE__ */ l("span", { children: a }),
|
|
@@ -158,21 +160,21 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
158
160
|
}) }, e);
|
|
159
161
|
})
|
|
160
162
|
}),
|
|
161
|
-
|
|
163
|
+
me()
|
|
162
164
|
]
|
|
163
165
|
});
|
|
164
|
-
return
|
|
165
|
-
open:
|
|
166
|
+
return k ? /* @__PURE__ */ u(g.Root, {
|
|
167
|
+
open: M,
|
|
166
168
|
onOpenChange: (e) => {
|
|
167
|
-
e ?
|
|
169
|
+
e ? ce() : le();
|
|
168
170
|
},
|
|
169
171
|
swipeDirection: "down",
|
|
170
172
|
children: [/* @__PURE__ */ l(g.Trigger, {
|
|
171
|
-
ref:
|
|
173
|
+
ref: F,
|
|
172
174
|
type: "button",
|
|
173
175
|
className: Y,
|
|
174
|
-
"aria-label":
|
|
175
|
-
"aria-expanded":
|
|
176
|
+
"aria-label": T("price_details_aria_label", { price: V }),
|
|
177
|
+
"aria-expanded": M,
|
|
176
178
|
onClick: (e) => {
|
|
177
179
|
e.stopPropagation();
|
|
178
180
|
},
|
|
@@ -193,7 +195,7 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
193
195
|
className: "border-b border-slate-200 px-4 py-4 text-left",
|
|
194
196
|
children: /* @__PURE__ */ l(g.Title, {
|
|
195
197
|
className: "text-left text-lg font-semibold text-slate-950",
|
|
196
|
-
children: /* @__PURE__ */ l("span", { children:
|
|
198
|
+
children: /* @__PURE__ */ l("span", { children: T("price_table_title") })
|
|
197
199
|
})
|
|
198
200
|
}), /* @__PURE__ */ l("div", {
|
|
199
201
|
className: "flex-1 overflow-y-auto px-4 pb-6 pt-3",
|
|
@@ -203,41 +205,41 @@ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-po
|
|
|
203
205
|
})
|
|
204
206
|
})] })]
|
|
205
207
|
}) : /* @__PURE__ */ u(_.Root, {
|
|
206
|
-
open:
|
|
208
|
+
open: R,
|
|
207
209
|
onOpenChange: (e) => {
|
|
208
|
-
e ?
|
|
210
|
+
e ? W("click") : G();
|
|
209
211
|
},
|
|
210
212
|
children: [/* @__PURE__ */ l(_.Trigger, {
|
|
211
|
-
ref:
|
|
213
|
+
ref: F,
|
|
212
214
|
type: "button",
|
|
213
215
|
className: Y,
|
|
214
|
-
"aria-label":
|
|
215
|
-
"aria-expanded":
|
|
216
|
-
onBlur:
|
|
216
|
+
"aria-label": T("price_details_aria_label", { price: V }),
|
|
217
|
+
"aria-expanded": R,
|
|
218
|
+
onBlur: fe,
|
|
217
219
|
onClick: (e) => {
|
|
218
|
-
e.preventDefault(), e.stopPropagation(),
|
|
220
|
+
e.preventDefault(), e.stopPropagation(), A === "click" ? G() : W("click");
|
|
219
221
|
},
|
|
220
222
|
onPointerDown: (e) => {
|
|
221
223
|
e.stopPropagation();
|
|
222
224
|
},
|
|
223
225
|
children: Q()
|
|
224
|
-
}),
|
|
226
|
+
}), B.length > 0 ? /* @__PURE__ */ l(_.Portal, { children: /* @__PURE__ */ l(_.Positioner, {
|
|
225
227
|
side: "top",
|
|
226
228
|
align: "end",
|
|
227
229
|
sideOffset: 8,
|
|
228
230
|
collisionPadding: 12,
|
|
229
231
|
className: "pointer-events-auto z-[70] outline-none",
|
|
230
232
|
children: /* @__PURE__ */ l(_.Popup, {
|
|
231
|
-
ref:
|
|
233
|
+
ref: L,
|
|
232
234
|
initialFocus: !1,
|
|
233
235
|
className: "w-64 rounded-xl border border-slate-200 bg-white p-3 text-slate-950 shadow-xl outline-none data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95 data-[open]:animate-in data-[open]:fade-in-0 data-[open]:zoom-in-95",
|
|
234
236
|
onPointerDown: (e) => {
|
|
235
|
-
e.stopPropagation(),
|
|
237
|
+
e.stopPropagation(), U();
|
|
236
238
|
},
|
|
237
239
|
onClick: (e) => {
|
|
238
240
|
e.stopPropagation();
|
|
239
241
|
},
|
|
240
|
-
onMouseEnter:
|
|
242
|
+
onMouseEnter: U,
|
|
241
243
|
onMouseLeave: J,
|
|
242
244
|
children: $(!0, "popover")
|
|
243
245
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cn as e } from "../../lib/utils.js";
|
|
2
|
-
import { useStorefront as t } from "../../
|
|
2
|
+
import { useStorefront as t } from "../../StorefrontContext.js";
|
|
3
3
|
import { ROUTE as n, responseSchema as r } from "../../lib/storefrontReviews.js";
|
|
4
4
|
import { formatInitialsWithPeriods as i, getNameInitials as a } from "../../lib/nameInitials.js";
|
|
5
5
|
import o from "react";
|
package/dist/i18n/en.d.ts
CHANGED
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ctB,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -123,6 +123,7 @@ var e = {
|
|
|
123
123
|
product_cta: "Reserve",
|
|
124
124
|
add_to_cart: "Add to cart",
|
|
125
125
|
add_short: "Add",
|
|
126
|
+
product_added_to_cart_successfully: "{{quantity}} × “{{productName}}” added to your cart.",
|
|
126
127
|
cart_title: "Cart",
|
|
127
128
|
cart_items_count_one: "{{count}} item",
|
|
128
129
|
cart_items_count_other: "{{count}} items",
|
package/dist/i18n/fr.d.ts
CHANGED
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ctB,CAAA"}
|
package/dist/i18n/fr.js
CHANGED
|
@@ -123,6 +123,7 @@ var e = {
|
|
|
123
123
|
product_cta: "Réserver",
|
|
124
124
|
add_to_cart: "Ajouter au panier",
|
|
125
125
|
add_short: "Ajouter",
|
|
126
|
+
product_added_to_cart_successfully: "{{quantity}} × « {{productName}} » dans votre panier.",
|
|
126
127
|
cart_title: "Panier",
|
|
127
128
|
cart_items_count_zero: "{{count}} articles",
|
|
128
129
|
cart_items_count_one: "{{count}} article",
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ClassProp } from 'class-variance-authority/types';
|
|
2
2
|
import { ClassValue } from 'clsx';
|
|
3
3
|
import { ComponentPropsWithoutRef } from 'react';
|
|
4
|
+
import { Context } from 'react';
|
|
4
5
|
import { ControllerProps } from '@rpcbase/form';
|
|
5
6
|
import { FieldError } from 'react-hook-form';
|
|
6
7
|
import { FieldPath } from '@rpcbase/form';
|
|
@@ -1997,6 +1998,13 @@ export declare function getStorefrontBaseDailyRateMinor(prices: StorefrontPublic
|
|
|
1997
1998
|
|
|
1998
1999
|
export declare const getStorefrontCheckoutProductId: (product: Pick<StorefrontProduct, "id" | "checkoutProductId">) => string;
|
|
1999
2000
|
|
|
2001
|
+
export declare const getStorefrontProductSelectionDisplayName: ({ product, productVariantId, language, fallbackLanguage, }: {
|
|
2002
|
+
product: StorefrontProduct;
|
|
2003
|
+
productVariantId?: string;
|
|
2004
|
+
language: string;
|
|
2005
|
+
fallbackLanguage?: string;
|
|
2006
|
+
}) => string;
|
|
2007
|
+
|
|
2000
2008
|
export declare const getStorefrontRepresentedVariantId: (product: Pick<StorefrontProduct, "representedVariantId">) => string | undefined;
|
|
2001
2009
|
|
|
2002
2010
|
export declare function Header({ storefrontConfiguration, whatsappHref, whatsappPhoneDisplay }: HeaderProps): JSX.Element;
|
|
@@ -2415,12 +2423,13 @@ export declare const productKindSchema: z.ZodEnum<{
|
|
|
2415
2423
|
"e-bike": "e-bike";
|
|
2416
2424
|
}>;
|
|
2417
2425
|
|
|
2418
|
-
export declare const ProductPriceBadge: ({ prices, minPriceMinor, className }: ProductPriceBadgeProps) => JSX.Element | null;
|
|
2426
|
+
export declare const ProductPriceBadge: ({ prices, minPriceMinor, className, openOnHover, }: ProductPriceBadgeProps) => JSX.Element | null;
|
|
2419
2427
|
|
|
2420
2428
|
declare type ProductPriceBadgeProps = {
|
|
2421
2429
|
prices?: StorefrontPublicProductPrice[];
|
|
2422
2430
|
minPriceMinor?: number;
|
|
2423
2431
|
className?: string;
|
|
2432
|
+
openOnHover?: boolean;
|
|
2424
2433
|
};
|
|
2425
2434
|
|
|
2426
2435
|
export declare const productSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -3766,7 +3775,9 @@ export declare const storefrontContentSchema: z.ZodObject<{
|
|
|
3766
3775
|
}, z.core.$strip>>;
|
|
3767
3776
|
}, z.core.$strip>;
|
|
3768
3777
|
|
|
3769
|
-
declare
|
|
3778
|
+
export declare const StorefrontContext: Context<StorefrontContextValue | undefined>;
|
|
3779
|
+
|
|
3780
|
+
export declare type StorefrontContextValue = {
|
|
3770
3781
|
storeSlug: string;
|
|
3771
3782
|
storefrontConfiguration: StorefrontConfiguration;
|
|
3772
3783
|
bikes: BikeProduct[];
|
|
@@ -3901,6 +3912,7 @@ export declare const storefrontEn: {
|
|
|
3901
3912
|
product_cta: string;
|
|
3902
3913
|
add_to_cart: string;
|
|
3903
3914
|
add_short: string;
|
|
3915
|
+
product_added_to_cart_successfully: string;
|
|
3904
3916
|
cart_title: string;
|
|
3905
3917
|
cart_items_count_one: string;
|
|
3906
3918
|
cart_items_count_other: string;
|
|
@@ -4392,6 +4404,7 @@ export declare const storefrontFr: {
|
|
|
4392
4404
|
product_cta: string;
|
|
4393
4405
|
add_to_cart: string;
|
|
4394
4406
|
add_short: string;
|
|
4407
|
+
product_added_to_cart_successfully: string;
|
|
4395
4408
|
cart_title: string;
|
|
4396
4409
|
cart_items_count_zero: string;
|
|
4397
4410
|
cart_items_count_one: string;
|
package/dist/index.js
CHANGED
|
@@ -14,69 +14,70 @@ import { baseBookingItemSchema as fe, baseBookingSchema as pe, baseBookingStateS
|
|
|
14
14
|
import "./chunks/pkg/booking-engine/dist/schemas-BfXM1Dgb.js";
|
|
15
15
|
import { STOREFRONT_HERO_MODES as he, storefrontCheckoutModeSchema as ge, storefrontConfigurationSchema as _e, storefrontContentSchema as ve, storefrontFaqItemSchema as ye, storefrontFaqSchema as be, storefrontFulfillmentModeSchema as xe, storefrontHeroModeSchema as Se, storefrontLocalizedRichTextSchema as Ce, storefrontModalMessageSchema as we, storefrontModulesSchema as Te, storefrontReviewsModuleSchema as Ee, storefrontRichTextSchema as De, storefrontSettingsSchema as Oe, storefrontShopSchema as ke, storefrontStatusSchema as Ae, storefrontWorkspaceSchema as je } from "./storefrontSchemas.js";
|
|
16
16
|
import { BOOKING_SEARCH_KEYS as Me, TIME_OPTIONS as Ne, applyBookingParamsToSearch as Pe, createBookingPeriodConfigFromBookingEngineConfiguration as Fe, createBookingPeriodConfigFromShopConfiguration as Ie, createBookingPeriodConfigFromStorefrontConfiguration as Le, getBookingDurationLabel as Re, getBookingDurationMinutes as ze, getBookingParamsFromSearch as Be, getBookingSessionStorageKey as Ve, getDefaultBookingParams as He, getDefaultBookingParamsForStorefrontConfiguration as Ue, pickBookingSearchParams as We, readBookingSearchParamsFromSessionStorage as Ge, readBookingSearchParamsFromStorage as Ke, resolveBookingSearchParams as qe, resolveBookingSearchParamsFromSessionStorage as Je, writeBookingSearchParamsToSessionStorage as Ye, writeBookingSearchParamsToStorage as Xe } from "./lib/booking.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import { buildStorefrontCartSummary as
|
|
23
|
-
import { ROUTE as
|
|
24
|
-
import { formatStorefrontPhoneDisplay as
|
|
25
|
-
import { buildWhatsAppHref as
|
|
26
|
-
import { ROUTE as
|
|
27
|
-
import { ROUTE as
|
|
28
|
-
import { ROUTE as
|
|
29
|
-
import { ROUTE as
|
|
30
|
-
import { ROUTE as
|
|
31
|
-
import { Footer as
|
|
32
|
-
import { Badge as
|
|
33
|
-
import { Button as
|
|
34
|
-
import { Header as
|
|
35
|
-
import { storefront as
|
|
36
|
-
import { storefront as
|
|
37
|
-
import { PoweredByLoczerBadge as
|
|
38
|
-
import { PlatformFooter as
|
|
39
|
-
import { useWhatsAppFloatingButton as
|
|
40
|
-
import { WhatsAppFloatingButton as
|
|
17
|
+
import { getLocalizedEntry as Ze, getLocalizedValue as Qe } from "./localization.js";
|
|
18
|
+
import { CATALOG_PRODUCT_BASE_RATE_UNSET as $e, buildStorefrontProductSlug as et, buildVariantStorefrontProductId as tt, compareCatalogProducts as nt, compareStorefrontAccessoryProducts as rt, compareStorefrontBikeProducts as it, findStorefrontProduct as at, findStorefrontProductBySlug as ot, getCatalogProductBaseRateMinor as st, getCatalogProductPaginationSort as ct, getCatalogProductSortFieldForPriceUnit as lt, getStorefrontBaseDailyRateMinor as ut, getStorefrontCheckoutProductId as dt, getStorefrontProductSelectionDisplayName as ft, getStorefrontRepresentedVariantId as pt, toStorefrontAccessoryProducts as mt, toStorefrontBikeProducts as ht, toStorefrontBookingProducts as gt, toStorefrontBookingProductsCollections as _t } from "./lib/products.js";
|
|
19
|
+
import { StorefrontCartProvider as vt, resolveStorefrontCartItemProduct as yt, useStorefrontCart as bt } from "./lib/cart.js";
|
|
20
|
+
import { cn as xt, formatPriceMinor as St, getAvailabilityVariant as Ct, getMinDayPriceMinor as wt } from "./lib/utils.js";
|
|
21
|
+
import { buildDailyPriceRows as Tt, buildPriceTierLabels as Et, calculateDailyPriceForQuantity as Dt, formatStorefrontPriceMinor as Ot } from "./lib/pricing.js";
|
|
22
|
+
import { buildStorefrontCartSummary as kt } from "./lib/cartSummary.js";
|
|
23
|
+
import { ROUTE as At, requestSchema as jt, responseSchema as Mt } from "./lib/contactForm.js";
|
|
24
|
+
import { formatStorefrontPhoneDisplay as Nt, resolveStorefrontMapsHref as Pt, resolveStorefrontPhoneContact as Ft } from "./lib/storefrontContact.js";
|
|
25
|
+
import { buildWhatsAppHref as It, resolveStorefrontWhatsAppContact as Lt, resolveStorefrontWhatsAppHref as Rt } from "./lib/whatsapp.js";
|
|
26
|
+
import { ROUTE as zt, requestBaseSchema as Bt, requestCheckoutItemSchema as Vt, requestDeliveryRefinement as Ht, requestSchema as Ut, responseSchema as Wt } from "./lib/checkoutSubmit.js";
|
|
27
|
+
import { ROUTE as Gt, requestSchema as Kt, responseSchema as qt, storefrontPublicAccessoryProductSchema as Jt, storefrontPublicBikeAvailabilityStatusSchema as Yt, storefrontPublicBikeProductSchema as Xt, storefrontPublicProductDisplayModeSchema as Zt, storefrontPublicProductPriceSchema as Qt, storefrontPublicProductVariantAttributeSchema as $t, storefrontPublicProductVariantIdentifierSchema as en, storefrontPublicProductVariantSchema as tn } from "./lib/storefrontProducts.js";
|
|
28
|
+
import { ROUTE as nn, buildStorefrontAvailabilityKey as rn, doesStorefrontAvailabilityDisplaySoldOut as an, getStorefrontAvailabilityIssue as on, getStorefrontAvailabilityStatus as sn, isStorefrontAvailabilityInsufficient as cn, publicAvailabilityDisplayModeSchema as ln, requestSchema as un, responseSchema as dn, shouldBlockStorefrontUnavailableItem as fn, storefrontAvailabilityProductSchema as pn, storefrontAvailabilityScheduleSchema as mn, storefrontPublicAvailabilityRecordSchema as hn } from "./lib/storefrontAvailability.js";
|
|
29
|
+
import { ROUTE as gn, buildStorefrontImageUrl as _n, requestSchema as vn } from "./lib/storefrontImage.js";
|
|
30
|
+
import { ROUTE as yn, requestSchema as bn, responseSchema as xn, storefrontTimeSlotSchema as Sn, timeSlotJourneySchema as Cn } from "./lib/storefrontTimeSlots.js";
|
|
31
|
+
import { Footer as wn } from "./components/Footer/index.js";
|
|
32
|
+
import { Badge as Tn, badgeVariants as En } from "./ui/badge.js";
|
|
33
|
+
import { Button as Dn, buttonVariants as On } from "./ui/button.js";
|
|
34
|
+
import { Header as kn } from "./components/Header/index.js";
|
|
35
|
+
import { storefront as An } from "./i18n/en.js";
|
|
36
|
+
import { storefront as jn } from "./i18n/fr.js";
|
|
37
|
+
import { PoweredByLoczerBadge as Mn } from "./components/PoweredByLoczerBadge/index.js";
|
|
38
|
+
import { PlatformFooter as Nn } from "./components/PlatformFooter/index.js";
|
|
39
|
+
import { useWhatsAppFloatingButton as Pn } from "./components/WhatsAppFloatingButton/useWhatsAppFloatingButton.js";
|
|
40
|
+
import { WhatsAppFloatingButton as Fn } from "./components/WhatsAppFloatingButton/WhatsAppFloatingButton.js";
|
|
41
41
|
import "./components/WhatsAppFloatingButton/index.js";
|
|
42
|
-
import { Layout as
|
|
43
|
-
import { DelayedPlaceholder as
|
|
44
|
-
import { BookingPeriodProvider as
|
|
45
|
-
import { Label as
|
|
46
|
-
import { BookingStartDateField as
|
|
47
|
-
import { BookingStartTimeField as
|
|
48
|
-
import { BookingEndDateField as
|
|
49
|
-
import { BookingEndTimeField as
|
|
50
|
-
import { BookingTimeSlotsStatus as
|
|
51
|
-
import { BookingMobileDateDrawer as
|
|
52
|
-
import { BookingPeriodSelector as
|
|
53
|
-
import { BookingFlowSteps as
|
|
54
|
-
import { Input as
|
|
55
|
-
import { DeliveryAddressSelector as
|
|
56
|
-
import {
|
|
57
|
-
import { Form as
|
|
58
|
-
import { Textarea as
|
|
59
|
-
import { ContactSection as
|
|
60
|
-
import { TestimonialsSection as
|
|
61
|
-
import { AboutSection as
|
|
62
|
-
import { StepSectionTitle as
|
|
63
|
-
import { Card as
|
|
64
|
-
import { ProductWarningNotice as
|
|
65
|
-
import { StorefrontCartPanel as
|
|
66
|
-
import { ProductPriceBadge as
|
|
67
|
-
import { ContractSaleDocument as
|
|
42
|
+
import { Layout as In } from "./components/Layout/index.js";
|
|
43
|
+
import { DelayedPlaceholder as Ln, DelayedReveal as Rn } from "./components/DelayedReveal/index.js";
|
|
44
|
+
import { BookingPeriodProvider as zn, useBookingPeriod as Bn } from "./components/BookingPeriodSelector/BookingPeriodContext.js";
|
|
45
|
+
import { Label as Vn } from "./ui/label.js";
|
|
46
|
+
import { BookingStartDateField as Hn } from "./components/BookingPeriodSelector/components/BookingStartDateField.js";
|
|
47
|
+
import { BookingStartTimeField as Un } from "./components/BookingPeriodSelector/components/BookingStartTimeField.js";
|
|
48
|
+
import { BookingEndDateField as Wn } from "./components/BookingPeriodSelector/components/BookingEndDateField.js";
|
|
49
|
+
import { BookingEndTimeField as Gn } from "./components/BookingPeriodSelector/components/BookingEndTimeField.js";
|
|
50
|
+
import { BookingTimeSlotsStatus as Kn } from "./components/BookingPeriodSelector/components/BookingTimeSlotsStatus.js";
|
|
51
|
+
import { BookingMobileDateDrawer as qn } from "./components/BookingPeriodSelector/components/BookingMobileDateDrawer.js";
|
|
52
|
+
import { BookingPeriodSelector as Jn } from "./components/BookingPeriodSelector/index.js";
|
|
53
|
+
import { BookingFlowSteps as Yn } from "./components/BookingFlowSteps/index.js";
|
|
54
|
+
import { Input as Xn } from "./ui/input.js";
|
|
55
|
+
import { DeliveryAddressSelector as Zn } from "./components/DeliveryAddressSelector/index.js";
|
|
56
|
+
import { StorefrontContext as Qn, useOptionalStorefront as $n, useStorefront as er, useStorefrontBookingProducts as tr, useStorefrontConfig as nr, useStorefrontProducts as rr, useStorefrontWorkspaceLanguage as ir } from "./StorefrontContext.js";
|
|
57
|
+
import { Form as ar, FormControl as or, FormDescription as sr, FormField as cr, FormItem as lr, FormLabel as ur, FormMessage as dr, useFormField as fr } from "./ui/form.js";
|
|
58
|
+
import { Textarea as pr } from "./ui/textarea.js";
|
|
59
|
+
import { ContactSection as mr } from "./components/ContactSection/index.js";
|
|
60
|
+
import { TestimonialsSection as hr } from "./components/TestimonialsSection/index.js";
|
|
61
|
+
import { AboutSection as gr } from "./components/AboutSection/index.js";
|
|
62
|
+
import { StepSectionTitle as _r } from "./components/StepSectionTitle/index.js";
|
|
63
|
+
import { Card as vr, CardAction as yr, CardContent as br, CardDescription as xr, CardFooter as Sr, CardHeader as Cr, CardTitle as wr } from "./ui/card.js";
|
|
64
|
+
import { ProductWarningNotice as Tr } from "./components/ProductWarningNotice/index.js";
|
|
65
|
+
import { StorefrontCartPanel as Er } from "./components/StorefrontCartPanel/index.js";
|
|
66
|
+
import { ProductPriceBadge as Dr } from "./components/ProductPriceBadge/index.js";
|
|
67
|
+
import { ContractSaleDocument as Or } from "./components/ContractSaleDocument/Invoice.js";
|
|
68
68
|
import "./components/ContractSaleDocument/index.js";
|
|
69
|
-
import { RadioGroup as
|
|
69
|
+
import { RadioGroup as kr, RadioGroupItem as Ar } from "./ui/radio-group.js";
|
|
70
70
|
import "./pages/HomePage.js";
|
|
71
71
|
import "./pages/BookingPage.js";
|
|
72
72
|
import "./pages/ProductPage.js";
|
|
73
73
|
import "./pages/CheckoutPage.js";
|
|
74
74
|
import "./pages/CheckoutSuccessPage.js";
|
|
75
75
|
import "./pages/NotFoundPage.js";
|
|
76
|
-
import { accessories as
|
|
77
|
-
import
|
|
78
|
-
import { contractSaleDocumentAcceptanceLevelSchema as
|
|
79
|
-
import { ACCEPT_CONTRACT_SALE_DOCUMENT_ROUTE as
|
|
80
|
-
import
|
|
81
|
-
import {
|
|
82
|
-
|
|
76
|
+
import { accessories as jr } from "./data/accessories.js";
|
|
77
|
+
import Mr from "./data/bikes.js";
|
|
78
|
+
import { contractSaleDocumentAcceptanceLevelSchema as Nr, contractSaleDocumentAcceptanceRecordSchema as Pr, contractSaleDocumentAcceptanceSchema as Fr, contractSaleDocumentAddressSchema as Ir, contractSaleDocumentAppendixKindSchema as Lr, contractSaleDocumentAppendixSchema as Rr, contractSaleDocumentContactSchema as zr, contractSaleDocumentKindSchema as Br, contractSaleDocumentLanguageCodeSchema as Vr, contractSaleDocumentLanguageSchema as Hr, contractSaleDocumentLineItemSchema as Ur, contractSaleDocumentRentalSchema as Wr, contractSaleDocumentSchema as Gr, contractSaleDocumentSignatureSchema as Kr } from "./lib/contractSaleDocument.js";
|
|
79
|
+
import { ACCEPT_CONTRACT_SALE_DOCUMENT_ROUTE as qr, DOWNLOAD_CONTRACT_SALE_DOCUMENT_PDF_ROUTE as Jr, GET_CONTRACT_SALE_DOCUMENT_ROUTE as Yr, acceptContractSaleDocumentRequestSchema as Xr, acceptContractSaleDocumentResponseSchema as Zr, contractSaleDocumentAcceptanceInputSchema as Qr, contractSaleDocumentAcceptanceRecordInputSchema as $r, contractSaleDocumentApiAcceptanceRecordSchema as ei, contractSaleDocumentApiAcceptanceSchema as ti, contractSaleDocumentApiSchema as ni, contractSaleDocumentApiSignatureSchema as ri, contractSaleDocumentReferenceSchema as ii, contractSaleDocumentReferenceTypeSchema as ai, contractSaleDocumentSignatureInputSchema as oi, downloadContractSaleDocumentPdfRequestSchema as si, getContractSaleDocumentRequestSchema as ci, getContractSaleDocumentResponseSchema as li } from "./lib/contractSaleDocumentApi.js";
|
|
80
|
+
import ui from "./routes.js";
|
|
81
|
+
import { loader as di } from "./StorefrontProvider.js";
|
|
82
|
+
import { Select as fi, SelectContent as pi, SelectGroup as mi, SelectIcon as hi, SelectItem as gi, SelectItemIndicator as _i, SelectItemText as vi, SelectLabel as yi, SelectScrollDownButton as bi, SelectScrollUpButton as xi, SelectSeparator as Si, SelectTrigger as Ci, SelectValue as wi } from "./ui/select.js";
|
|
83
|
+
export { qr as ACCEPT_CONTRACT_SALE_DOCUMENT_ROUTE, gr as AboutSection, Me as BOOKING_SEARCH_KEYS, Tn as Badge, Wn as BookingEndDateField, Gn as BookingEndTimeField, Yn as BookingFlowSteps, qn as BookingMobileDateDrawer, zn as BookingPeriodProvider, Jn as BookingPeriodSelector, Hn as BookingStartDateField, Un as BookingStartTimeField, Kn as BookingTimeSlotsStatus, Dn as Button, $e as CATALOG_PRODUCT_BASE_RATE_UNSET, vr as Card, yr as CardAction, br as CardContent, xr as CardDescription, Sr as CardFooter, Cr as CardHeader, wr as CardTitle, mr as ContactSection, Or as ContractSaleDocument, Y as DEFAULT_BOOKING_DELIVERY_OPTION, B as DEFAULT_CANCELLATION_POLICY, V as DEFAULT_PAYMENT_POLICIES, p as DEFAULT_PRODUCT_KIND, Jr as DOWNLOAD_CONTRACT_SALE_DOCUMENT_PDF_ROUTE, Ln as DelayedPlaceholder, Rn as DelayedReveal, Zn as DeliveryAddressSelector, wn as Footer, ar as Form, or as FormControl, sr as FormDescription, cr as FormField, lr as FormItem, ur as FormLabel, dr as FormMessage, Yr as GET_CONTRACT_SALE_DOCUMENT_ROUTE, kn as Header, Xn as Input, Vn as Label, In as Layout, m as PRODUCT_VARIANT_CODE_IDENTIFIER_KIND, h as PRODUCT_VARIANT_CODE_MAX_LENGTH, Nn as PlatformFooter, Mn as PoweredByLoczerBadge, Dr as ProductPriceBadge, Tr as ProductWarningNotice, At as ROUTE, kr as RadioGroup, Ar as RadioGroupItem, nn as STOREFRONT_AVAILABILITY_ROUTE, zt as STOREFRONT_CHECKOUT_SUBMIT_ROUTE, he as STOREFRONT_HERO_MODES, gn as STOREFRONT_IMAGE_ROUTE, Gt as STOREFRONT_PRODUCTS_ROUTE, yn as STOREFRONT_TIME_SLOTS_ROUTE, fi as Select, pi as SelectContent, mi as SelectGroup, hi as SelectIcon, gi as SelectItem, _i as SelectItemIndicator, vi as SelectItemText, yi as SelectLabel, bi as SelectScrollDownButton, xi as SelectScrollUpButton, Si as SelectSeparator, Ci as SelectTrigger, wi as SelectValue, _r as StepSectionTitle, Er as StorefrontCartPanel, vt as StorefrontCartProvider, Qn as StorefrontContext, Ne as TIME_OPTIONS, hr as TestimonialsSection, pr as Textarea, Fn as WhatsAppFloatingButton, Xr as acceptContractSaleDocumentRequestSchema, Zr as acceptContractSaleDocumentResponseSchema, jr as accessories, g as accessoryProductSchema, Pe as applyBookingParamsToSearch, En as badgeVariants, ue as baseAssetSchema, de as baseAssetStatusSchema, fe as baseBookingItemSchema, pe as baseBookingSchema, me as baseBookingStateSchema, _ as bikeProductSchema, Mr as bikes, X as bookingCustomerInputSchema, Z as bookingDeliveryOptionSchema, ie as bookingInsuranceConsentSourceSchema, ae as bookingInsuranceItemSnapshotSchema, oe as bookingInsuranceSnapshotSchema, Q as bookingScheduleInputSchema, se as buildBookingInsuranceSnapshot, Tt as buildDailyPriceRows, Et as buildPriceTierLabels, rn as buildStorefrontAvailabilityKey, kt as buildStorefrontCartSummary, _n as buildStorefrontImageUrl, et as buildStorefrontProductSlug, tt as buildVariantStorefrontProductId, It as buildWhatsAppHref, On as buttonVariants, Dt as calculateDailyPriceForQuantity, ce as calculateInsuranceCalendarDays, H as cancellationPolicySchema, U as cancellationPolicyTierSchema, $ as cartItemInputSchema, xt as cn, nt as compareCatalogProducts, rt as compareStorefrontAccessoryProducts, it as compareStorefrontBikeProducts, Qr as contractSaleDocumentAcceptanceInputSchema, Nr as contractSaleDocumentAcceptanceLevelSchema, $r as contractSaleDocumentAcceptanceRecordInputSchema, Pr as contractSaleDocumentAcceptanceRecordSchema, Fr as contractSaleDocumentAcceptanceSchema, Ir as contractSaleDocumentAddressSchema, ei as contractSaleDocumentApiAcceptanceRecordSchema, ti as contractSaleDocumentApiAcceptanceSchema, ni as contractSaleDocumentApiSchema, ri as contractSaleDocumentApiSignatureSchema, Lr as contractSaleDocumentAppendixKindSchema, Rr as contractSaleDocumentAppendixSchema, zr as contractSaleDocumentContactSchema, Br as contractSaleDocumentKindSchema, Vr as contractSaleDocumentLanguageCodeSchema, Hr as contractSaleDocumentLanguageSchema, Ur as contractSaleDocumentLineItemSchema, ii as contractSaleDocumentReferenceSchema, ai as contractSaleDocumentReferenceTypeSchema, Wr as contractSaleDocumentRentalSchema, Gr as contractSaleDocumentSchema, oi as contractSaleDocumentSignatureInputSchema, Kr as contractSaleDocumentSignatureSchema, ee as createBookingInputBaseSchema, te as createBookingInputSchema, Fe as createBookingPeriodConfigFromBookingEngineConfiguration, Ie as createBookingPeriodConfigFromShopConfiguration, Le as createBookingPeriodConfigFromStorefrontConfiguration, e as createLocalizedStringEntry, a as currencyCodeSchema, o as currencyMinorUnitDigits, an as doesStorefrontAvailabilityDisplaySoldOut, si as downloadContractSaleDocumentPdfRequestSchema, v as eBikeProductSchema, at as findStorefrontProduct, ot as findStorefrontProductBySlug, St as formatPriceMinor, Nt as formatStorefrontPhoneDisplay, Ot as formatStorefrontPriceMinor, G as fulfillmentModeSchema, Ct as getAvailabilityVariant, Re as getBookingDurationLabel, ze as getBookingDurationMinutes, Be as getBookingParamsFromSearch, Ve as getBookingSessionStorageKey, st as getCatalogProductBaseRateMinor, ct as getCatalogProductPaginationSort, lt as getCatalogProductSortFieldForPriceUnit, ci as getContractSaleDocumentRequestSchema, li as getContractSaleDocumentResponseSchema, He as getDefaultBookingParams, Ue as getDefaultBookingParamsForStorefrontConfiguration, Ze as getLocalizedEntry, t as getLocalizedStringValue, Qe as getLocalizedValue, wt as getMinDayPriceMinor, on as getStorefrontAvailabilityIssue, sn as getStorefrontAvailabilityStatus, ut as getStorefrontBaseDailyRateMinor, dt as getStorefrontCheckoutProductId, ft as getStorefrontProductSelectionDisplayName, pt as getStorefrontRepresentedVariantId, le as insuranceProviderSchema, y as isProductVariantCodeIdentifierKind, cn as isStorefrontAvailabilityInsufficient, j as isoDateSchema, di as loader, n as localizedStringArraySchema, r as localizedStringEntrySchema, i as localizedStringSchema, s as majorToMinor, c as minorToMajor, l as moneyMinorSchema, W as paymentPoliciesSchema, We as pickBookingSearchParams, d as priceSchema, f as priceUnitSchema, b as productInsuranceSchema, x as productKindSchema, S as productSchema, C as productStorefrontDisplayModeSchema, w as productVariantAttributeSchema, T as productVariantCodeSchema, E as productVariantIdentifierSchema, D as productVariantSchema, ln as publicAvailabilityDisplayModeSchema, K as publicBookingEngineConfigurationSchema, q as publicCheckoutConfigurationSchema, J as publicCheckoutDynamicOptionsSchema, Ge as readBookingSearchParamsFromSessionStorage, Ke as readBookingSearchParamsFromStorage, jt as requestSchema, ne as resolveBookingDeliveryOption, qe as resolveBookingSearchParams, Je as resolveBookingSearchParamsFromSessionStorage, yt as resolveStorefrontCartItemProduct, Pt as resolveStorefrontMapsHref, Ft as resolveStorefrontPhoneContact, Lt as resolveStorefrontWhatsAppContact, Rt as resolveStorefrontWhatsAppHref, Mt as responseSchema, O as richTextJsonDocSchema, k as richTextSchema, A as richTextVersionSchema, M as shopConfigurationSchema, N as shopExtraTimeSlotRuleSchema, P as shopOpeningDayIndexSchema, F as shopOpeningDaySchema, I as shopOpeningHoursOverrideSchema, L as shopOpeningHoursPeriodSchema, R as shopOpeningSlotSchema, fn as shouldBlockStorefrontUnavailableItem, u as signedMoneyMinorSchema, pn as storefrontAvailabilityProductSchema, un as storefrontAvailabilityRequestSchema, dn as storefrontAvailabilityResponseSchema, mn as storefrontAvailabilityScheduleSchema, ge as storefrontCheckoutModeSchema, Ht as storefrontCheckoutSubmitDeliveryRefinement, Vt as storefrontCheckoutSubmitItemSchema, Bt as storefrontCheckoutSubmitRequestBaseSchema, Ut as storefrontCheckoutSubmitRequestSchema, Wt as storefrontCheckoutSubmitResponseSchema, _e as storefrontConfigurationSchema, ve as storefrontContentSchema, An as storefrontEn, ye as storefrontFaqItemSchema, be as storefrontFaqSchema, jn as storefrontFr, xe as storefrontFulfillmentModeSchema, Se as storefrontHeroModeSchema, vn as storefrontImageRequestSchema, Ce as storefrontLocalizedRichTextSchema, we as storefrontModalMessageSchema, Te as storefrontModulesSchema, Kt as storefrontProductsRequestSchema, qt as storefrontProductsResponseSchema, Jt as storefrontPublicAccessoryProductSchema, hn as storefrontPublicAvailabilityRecordSchema, Yt as storefrontPublicBikeAvailabilityStatusSchema, Xt as storefrontPublicBikeProductSchema, Zt as storefrontPublicProductDisplayModeSchema, Qt as storefrontPublicProductPriceSchema, $t as storefrontPublicProductVariantAttributeSchema, en as storefrontPublicProductVariantIdentifierSchema, tn as storefrontPublicProductVariantSchema, Ee as storefrontReviewsModuleSchema, De as storefrontRichTextSchema, ui as storefrontRoutes, Oe as storefrontSettingsSchema, ke as storefrontShopSchema, Ae as storefrontStatusSchema, Cn as storefrontTimeSlotJourneySchema, Sn as storefrontTimeSlotSchema, bn as storefrontTimeSlotsRequestSchema, xn as storefrontTimeSlotsResponseSchema, je as storefrontWorkspaceSchema, z as timeOfDaySchema, mt as toStorefrontAccessoryProducts, ht as toStorefrontBikeProducts, gt as toStorefrontBookingProducts, _t as toStorefrontBookingProductsCollections, Bn as useBookingPeriod, fr as useFormField, $n as useOptionalStorefront, er as useStorefront, tr as useStorefrontBookingProducts, bt as useStorefrontCart, nr as useStorefrontConfig, rr as useStorefrontProducts, ir as useStorefrontWorkspaceLanguage, Pn as useWhatsAppFloatingButton, re as validateBookingDeliveryAddress, Ye as writeBookingSearchParamsToSessionStorage, Xe as writeBookingSearchParamsToStorage };
|