@loczer/storefront-sdk 0.187.0 → 0.189.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/models/{Product.shared-CTuk4fiR.js → Product.shared-IYOeC3N7.js} +12 -10
- package/dist/chunks/booking-engine/dist/schemas/{base-asset-B_Dm8_Vk.js → base-asset-zsUj5_3O.js} +1 -1
- package/dist/chunks/booking-engine/dist/schemas/{base-booking-DW8AEPKo.js → base-booking-TzCge_mR.js} +2 -2
- package/dist/chunks/booking-engine/dist/schemas/{base-product-1H8l2aUv.js → base-product-DvFFzAcg.js} +1 -1
- package/dist/chunks/booking-engine/dist/schemas/{booking-engine-configuration-D02MRF9U.js → booking-engine-configuration-LnrhShqm.js} +4 -1
- package/dist/chunks/booking-engine/dist/schemas/{cart-inputs-j1yWfJxO.js → cart-inputs-B0HpcFe5.js} +1 -1
- package/dist/chunks/booking-engine/dist/schemas/{public-booking-engine-configuration-BnJ_H-p1.js → public-booking-engine-configuration-CEM9mexX.js} +1 -1
- package/dist/chunks/booking-engine/dist/schemas-BNUzqsci.js +13 -0
- package/dist/chunks/ui/dist/Map/{MapContent-QPkuTBvK.js → MapContent-PK-ptOx6.js} +126 -94
- package/dist/chunks/ui/dist/Map/mapboxError-oRn0l3EE.js +25 -0
- package/dist/chunks/ui/dist/{Map-BXmRf5Ep.js → Map-BwXj49kV.js} +1 -1
- package/dist/components/BookingBikeVariantDialog/index.d.ts +2 -1
- package/dist/components/BookingBikeVariantDialog/index.d.ts.map +1 -1
- package/dist/components/BookingBikeVariantDialog/index.js +39 -38
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.js +32 -30
- package/dist/components/BookingPeriodSelector/components/BookingMobileDateDrawer.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingMobileDateDrawer.js +127 -122
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.js +32 -30
- package/dist/components/BookingPeriodSelector/components/BookingTimeSlotsStatus.d.ts +7 -0
- package/dist/components/BookingPeriodSelector/components/BookingTimeSlotsStatus.d.ts.map +1 -0
- package/dist/components/BookingPeriodSelector/components/BookingTimeSlotsStatus.js +29 -0
- package/dist/components/BookingPeriodSelector/index.d.ts +2 -1
- package/dist/components/BookingPeriodSelector/index.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/index.js +15 -14
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts +11 -0
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.js +280 -216
- package/dist/components/ContactSection/index.d.ts.map +1 -1
- package/dist/components/ContactSection/index.js +120 -116
- package/dist/components/Header/index.d.ts.map +1 -1
- package/dist/components/Header/index.js +35 -35
- package/dist/components/Map/index.js +1 -1
- package/dist/components/StorefrontCancellationPolicyNotice/index.d.ts.map +1 -1
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +51 -48
- package/dist/components/StorefrontInsuranceNotice/index.d.ts +9 -0
- package/dist/components/StorefrontInsuranceNotice/index.d.ts.map +1 -0
- package/dist/components/StorefrontInsuranceNotice/index.js +191 -0
- package/dist/i18n/en.d.ts +24 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +26 -2
- package/dist/i18n/fr.d.ts +24 -0
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +26 -2
- package/dist/index.d.ts +91 -0
- package/dist/index.js +69 -68
- package/dist/lib/booking.js +2 -2
- package/dist/lib/checkoutSubmit.js +3 -3
- package/dist/lib/fetchStorefrontTimeSlots.d.ts.map +1 -1
- package/dist/lib/fetchStorefrontTimeSlots.js +2 -1
- package/dist/lib/storefrontProducts.d.ts +16 -0
- package/dist/lib/storefrontProducts.d.ts.map +1 -1
- package/dist/lib/storefrontProducts.js +27 -22
- package/dist/pages/BookingPage.d.ts.map +1 -1
- package/dist/pages/BookingPage.js +109 -95
- package/dist/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/pages/CheckoutPage.js +229 -231
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/HomePage.js +339 -314
- package/dist/pages/ProductPage.d.ts.map +1 -1
- package/dist/pages/ProductPage.js +60 -52
- package/dist/storefront.css +1 -1
- package/dist/storefrontSchemas.js +2 -2
- package/package.json +1 -1
- package/dist/chunks/booking-engine/dist/schemas-DftrSnTE.js +0 -13
package/dist/pages/HomePage.js
CHANGED
|
@@ -1,40 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BOOKING_SEARCH_KEYS as e, applyBookingParamsToSearch as t, createBookingPeriodConfigFromStorefrontConfiguration as n, getBookingParamsFromSearch as r, getDefaultBookingParamsForStorefrontConfiguration as i, resolveBookingSearchParamsFromSessionStorage as a, writeBookingSearchParamsToSessionStorage as o } from "../lib/booking.js";
|
|
2
2
|
import { getAvailabilityVariant as ee } from "../lib/utils.js";
|
|
3
|
-
import { getLocalizedValue as
|
|
4
|
-
import { buildStorefrontImageUrl as
|
|
3
|
+
import { getLocalizedValue as s } from "../localization.js";
|
|
4
|
+
import { buildStorefrontImageUrl as c } from "../lib/storefrontImage.js";
|
|
5
5
|
import "../lib/storefrontMissingValues.js";
|
|
6
|
-
import { Badge as
|
|
7
|
-
import { Button as
|
|
8
|
-
import { usePlaygroundDevSettings as
|
|
9
|
-
import { BookingPeriodProvider as
|
|
10
|
-
import { BookingStartDateField as
|
|
11
|
-
import { BookingStartTimeField as
|
|
12
|
-
import { BookingEndDateField as
|
|
13
|
-
import { BookingEndTimeField as
|
|
6
|
+
import { Badge as l } from "../ui/badge.js";
|
|
7
|
+
import { Button as u } from "../ui/button.js";
|
|
8
|
+
import { usePlaygroundDevSettings as te } from "../lib/playgroundDevSettings.js";
|
|
9
|
+
import { BookingPeriodProvider as ne, useBookingPeriod as d } from "../components/BookingPeriodSelector/BookingPeriodContext.js";
|
|
10
|
+
import { BookingStartDateField as re } from "../components/BookingPeriodSelector/components/BookingStartDateField.js";
|
|
11
|
+
import { BookingStartTimeField as ie } from "../components/BookingPeriodSelector/components/BookingStartTimeField.js";
|
|
12
|
+
import { BookingEndDateField as ae } from "../components/BookingPeriodSelector/components/BookingEndDateField.js";
|
|
13
|
+
import { BookingEndTimeField as oe } from "../components/BookingPeriodSelector/components/BookingEndTimeField.js";
|
|
14
|
+
import { BookingTimeSlotsStatus as se } from "../components/BookingPeriodSelector/components/BookingTimeSlotsStatus.js";
|
|
14
15
|
import "../components/BookingPeriodSelector/index.js";
|
|
15
|
-
import { DeliveryAddressSelector as
|
|
16
|
-
import { useStorefront as
|
|
17
|
-
import { ContactSection as
|
|
18
|
-
import { TestimonialsSection as
|
|
19
|
-
import { AboutSection as
|
|
20
|
-
import { Card as
|
|
21
|
-
import { ProductWarningNotice as
|
|
22
|
-
import { ProductPriceBadge as
|
|
23
|
-
import
|
|
24
|
-
import { resolveProductImageContainerStyle as
|
|
25
|
-
import { BikeProductCard as
|
|
26
|
-
import { StorefrontCancellationPolicyNotice as
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
16
|
+
import { DeliveryAddressSelector as ce } from "../components/DeliveryAddressSelector/index.js";
|
|
17
|
+
import { useStorefront as le, useStorefrontProducts as ue } from "../StorefrontProvider.js";
|
|
18
|
+
import { ContactSection as de } from "../components/ContactSection/index.js";
|
|
19
|
+
import { TestimonialsSection as fe } from "../components/TestimonialsSection/index.js";
|
|
20
|
+
import { AboutSection as pe } from "../components/AboutSection/index.js";
|
|
21
|
+
import { Card as me } from "../ui/card.js";
|
|
22
|
+
import { ProductWarningNotice as he } from "../components/ProductWarningNotice/index.js";
|
|
23
|
+
import { ProductPriceBadge as ge } from "../components/ProductPriceBadge/index.js";
|
|
24
|
+
import f from "../chunks/assets/playground-hero-preview-kf4c9tSc.js";
|
|
25
|
+
import { resolveProductImageContainerStyle as _e } from "../lib/productImageStyles.js";
|
|
26
|
+
import { BikeProductCard as ve } from "../components/BikeProductCard/index.js";
|
|
27
|
+
import { StorefrontCancellationPolicyNotice as ye } from "../components/StorefrontCancellationPolicyNotice/index.js";
|
|
28
|
+
import { StorefrontInsuranceNotice as be } from "../components/StorefrontInsuranceNotice/index.js";
|
|
29
|
+
import { createStorefrontTimeSlotsFetcher as xe } from "../lib/fetchStorefrontTimeSlots.js";
|
|
30
|
+
import { FulfillmentSection as Se } from "../components/FulfillmentSection/index.js";
|
|
31
|
+
import { useEffect as Ce, useMemo as p, useRef as we, useState as m } from "react";
|
|
32
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
33
|
+
import { cn as v } from "@rpcbase/ui";
|
|
34
|
+
import { useMediaQuery as Te } from "@rpcbase/client";
|
|
35
|
+
import { Link as y, useLocation as Ee, useNavigate as De, useParams as Oe, useSearchParams as ke } from "@rpcbase/router";
|
|
36
|
+
import { useTranslation as Ae } from "react-i18next";
|
|
37
|
+
import { ArrowRight as b, Bike as je, Clock as Me, MapPin as Ne, ShieldCheck as Pe, Truck as Fe } from "lucide-react";
|
|
36
38
|
//#region src/pages/HomePage.tsx
|
|
37
|
-
var
|
|
39
|
+
var x = (e) => String(e).padStart(2, "0"), Ie = "text-2xs font-semibold uppercase tracking-wide text-slate-600", Le = "h-10", S = 6, C = 5, w = [
|
|
38
40
|
15,
|
|
39
41
|
25,
|
|
40
42
|
42,
|
|
@@ -50,14 +52,26 @@ var y = (e) => String(e).padStart(2, "0"), b = "text-2xs font-semibold uppercase
|
|
|
50
52
|
"4 / 3",
|
|
51
53
|
"9 / 16",
|
|
52
54
|
"6 / 7"
|
|
53
|
-
],
|
|
55
|
+
], Re = ({ buttonRef: e, className: t, label: n, onSubmit: r }) => {
|
|
56
|
+
let { canCommitTimeSlots: i, startTime: a, endTime: o } = d();
|
|
57
|
+
return /* @__PURE__ */ _(u, {
|
|
58
|
+
ref: e,
|
|
59
|
+
className: v("gap-2", t),
|
|
60
|
+
disabled: !i || !a || !o,
|
|
61
|
+
onClick: r,
|
|
62
|
+
children: [/* @__PURE__ */ g("span", { children: n }), /* @__PURE__ */ g(b, {
|
|
63
|
+
className: "h-4 w-4",
|
|
64
|
+
"aria-hidden": "true"
|
|
65
|
+
})]
|
|
66
|
+
});
|
|
67
|
+
}, E = (e) => `${e.getFullYear()}-${x(e.getMonth() + 1)}-${x(e.getDate())}`, D = (e) => {
|
|
54
68
|
if (!e) return;
|
|
55
69
|
let t = e.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
56
70
|
if (!t) return;
|
|
57
71
|
let n = Number(t[1]), r = Number(t[2]), i = Number(t[3]), a = new Date(n, r - 1, i);
|
|
58
72
|
if (!(Number.isNaN(a.getTime()) || a.getFullYear() !== n || a.getMonth() !== r - 1 || a.getDate() !== i)) return a;
|
|
59
|
-
},
|
|
60
|
-
let t = e.length > 0 ? e : [
|
|
73
|
+
}, ze = (e) => {
|
|
74
|
+
let t = e.length > 0 ? e : [f];
|
|
61
75
|
return Array.from({ length: S }, (e, n) => Array.from({ length: C }, (e, r) => {
|
|
62
76
|
let i = n * C + r;
|
|
63
77
|
return {
|
|
@@ -66,258 +80,269 @@ var y = (e) => String(e).padStart(2, "0"), b = "text-2xs font-semibold uppercase
|
|
|
66
80
|
};
|
|
67
81
|
}));
|
|
68
82
|
};
|
|
69
|
-
function
|
|
70
|
-
let { t: d, i18n:
|
|
71
|
-
let e =
|
|
72
|
-
return
|
|
73
|
-
}), [
|
|
83
|
+
function O() {
|
|
84
|
+
let { t: d, i18n: f } = Ae(), { storeSlug: x } = Oe(), S = Ee(), { storefrontConfiguration: C } = le(), T = C.shop.address?.trim() ?? "", O = C.workspace?.workspaceLanguage, { bikes: k, accessories: Be } = ue(), [A, Ve] = ke(), He = De(), j = p(() => a(A, x), [A, x]), Ue = p(() => n(C), [C]), M = p(() => i(C), [C]), N = p(() => D(M.start_date), [M.start_date]), We = p(() => D(M.end_date) ?? N, [M.end_date, N]), P = C.settings.fulfillmentModes.includes("delivery"), F = C.settings.deliveryDisabledReason.trim(), I = p(() => r(j, M), [M, j]), [L, Ge] = m(() => I.fulfillment === "delivery" && P ? "delivery" : "pickup"), [R, Ke] = m(() => D(j.get("start_date")) ?? N), [z, qe] = m(() => j.get("start_time") ?? M.start_time), [B, Je] = m(() => {
|
|
85
|
+
let e = D(j.get("start_date")) ?? N;
|
|
86
|
+
return D(j.get("end_date")) ?? e ?? We;
|
|
87
|
+
}), [V, Ye] = m(() => j.get("end_time") ?? M.end_time), [Xe, Ze] = m(void 0), [H, U] = m(() => I.start_address), [W, G] = m(() => I.end_address), K = we(null), Qe = p(() => k.slice(0, 4), [k]), { heroMode: $e } = te(), et = $e ?? C.content?.heroMode ?? "current_booking_hero", q = et === "vertical_marquee_hero", J = et === "booking_bar_overlay_hero" || q, tt = Te("(min-width: 1024px)"), nt = xe(x), rt = p(() => ({
|
|
74
88
|
startDate: d("booking_start_date"),
|
|
75
89
|
pickStartDate: d("booking_start_date"),
|
|
76
90
|
startTime: d("booking_start_time"),
|
|
77
91
|
endDate: d("booking_end_date"),
|
|
78
92
|
pickEndDate: d("booking_end_date"),
|
|
79
93
|
endTime: d("booking_end_time"),
|
|
80
|
-
selectedDaysTooltip: ({ count: e }) => d("booking_selected_days_tooltip", { count: e })
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
selectedDaysTooltip: ({ count: e }) => d("booking_selected_days_tooltip", { count: e }),
|
|
95
|
+
timeSlotsLoading: d("booking_time_slots_loading"),
|
|
96
|
+
timeSlotsUnavailable: d("booking_time_slots_unavailable"),
|
|
97
|
+
timeSlotsLoadError: d("booking_time_slots_load_error"),
|
|
98
|
+
retryTimeSlots: d("booking_time_slots_retry")
|
|
99
|
+
}), [f.language, d]), Y = p(() => {
|
|
100
|
+
let e = R ?? N ?? /* @__PURE__ */ new Date(), n = B ?? e;
|
|
101
|
+
return t(new URLSearchParams(), {
|
|
102
|
+
fulfillment: L === "delivery" && P ? "delivery" : "pickup",
|
|
103
|
+
start_date: E(e),
|
|
104
|
+
start_time: z,
|
|
105
|
+
end_date: E(n),
|
|
106
|
+
end_time: V,
|
|
107
|
+
start_address: H,
|
|
108
|
+
end_address: W
|
|
91
109
|
});
|
|
92
110
|
}, [
|
|
93
|
-
M.end_time,
|
|
94
|
-
M.start_time,
|
|
95
111
|
N,
|
|
96
112
|
P,
|
|
97
|
-
|
|
98
|
-
z,
|
|
113
|
+
W,
|
|
99
114
|
B,
|
|
100
|
-
I,
|
|
101
115
|
V,
|
|
102
116
|
L,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
H,
|
|
118
|
+
R,
|
|
119
|
+
z
|
|
120
|
+
]), it = Y.toString(), at = it ? `?${it}` : "";
|
|
121
|
+
Ce(() => {
|
|
122
|
+
o(x, Y);
|
|
123
|
+
}, [Y, x]), Ce(() => {
|
|
124
|
+
let t = new URLSearchParams(A);
|
|
125
|
+
for (let n of e) t.delete(n);
|
|
126
|
+
for (let [e, n] of Y.entries()) t.set(e, n);
|
|
127
|
+
t.toString() !== A.toString() && Ve(t, { replace: !0 });
|
|
128
|
+
}, [
|
|
129
|
+
Y,
|
|
130
|
+
A,
|
|
131
|
+
Ve
|
|
132
|
+
]);
|
|
133
|
+
let ot = `${R ? E(R) : ""}:${B ? E(B) : ""}`, st = Xe === ot && !!(z && V), ct = {
|
|
134
|
+
startDate: R,
|
|
135
|
+
onStartDateChange: Ke,
|
|
136
|
+
startTime: z,
|
|
137
|
+
onStartTimeChange: qe,
|
|
138
|
+
endDate: B,
|
|
139
|
+
onEndDateChange: Je,
|
|
140
|
+
endTime: V,
|
|
141
|
+
onEndTimeChange: Ye,
|
|
117
142
|
onEndTimeCommit: () => {
|
|
118
|
-
|
|
143
|
+
K.current?.focus({ preventScroll: !0 });
|
|
144
|
+
},
|
|
145
|
+
bookingPeriodConfig: Ue,
|
|
146
|
+
fetchTimeSlots: nt,
|
|
147
|
+
onTimeSlotsAvailabilityChange: (e) => {
|
|
148
|
+
Ze(e ? ot : void 0);
|
|
119
149
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}, Y = () => {
|
|
150
|
+
labels: rt,
|
|
151
|
+
localeCode: f.language
|
|
152
|
+
}, X = () => {
|
|
153
|
+
if (!st) return;
|
|
125
154
|
let e = new URLSearchParams(A);
|
|
126
|
-
for (let [t, n] of
|
|
127
|
-
|
|
128
|
-
},
|
|
129
|
-
/* @__PURE__ */
|
|
155
|
+
for (let [t, n] of Y.entries()) e.set(t, n);
|
|
156
|
+
He(`/${x ?? ""}/booking?${e.toString()}#booking-products`);
|
|
157
|
+
}, lt = (e) => `/${x ?? ""}/products/${e}`, Z = { backTo: `${S.pathname}${S.search}${S.hash}` }, ut = /* @__PURE__ */ _("div", { children: [
|
|
158
|
+
/* @__PURE__ */ _("div", {
|
|
130
159
|
className: "flex items-center gap-2",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
160
|
+
children: [/* @__PURE__ */ _(l, {
|
|
132
161
|
variant: "secondary",
|
|
133
|
-
children: [/* @__PURE__ */
|
|
162
|
+
children: [/* @__PURE__ */ g(Me, {
|
|
134
163
|
className: "h-3 w-3",
|
|
135
164
|
"aria-hidden": "true"
|
|
136
|
-
}), /* @__PURE__ */
|
|
137
|
-
}), /* @__PURE__ */
|
|
165
|
+
}), /* @__PURE__ */ g("span", { children: d("status_open") })]
|
|
166
|
+
}), /* @__PURE__ */ _(l, {
|
|
138
167
|
variant: "outline",
|
|
139
|
-
className:
|
|
140
|
-
children: [/* @__PURE__ */
|
|
168
|
+
className: v(!T && "border-destructive/40 text-destructive"),
|
|
169
|
+
children: [/* @__PURE__ */ g(Ne, {
|
|
141
170
|
className: "h-3 w-3",
|
|
142
171
|
"aria-hidden": "true"
|
|
143
|
-
}), /* @__PURE__ */
|
|
172
|
+
}), /* @__PURE__ */ g("span", { children: T || "[Missing shop address]" })]
|
|
144
173
|
})]
|
|
145
174
|
}),
|
|
146
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ g("h1", {
|
|
147
176
|
className: "mt-4 text-3xl font-semibold tracking-tight sm:text-4xl",
|
|
148
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ g("span", { children: d("hero_title") })
|
|
149
178
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
179
|
+
/* @__PURE__ */ g("p", {
|
|
151
180
|
className: "mt-3 text-sm text-slate-700 sm:text-base",
|
|
152
|
-
children: /* @__PURE__ */
|
|
181
|
+
children: /* @__PURE__ */ g("span", { children: d("hero_description") })
|
|
153
182
|
}),
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
-
className:
|
|
156
|
-
children: /* @__PURE__ */
|
|
157
|
-
className:
|
|
183
|
+
/* @__PURE__ */ g("div", {
|
|
184
|
+
className: v("mt-6", !J && "rounded-xl border bg-white/70 p-3"),
|
|
185
|
+
children: /* @__PURE__ */ _("ul", {
|
|
186
|
+
className: v("space-y-3", J && "space-y-2"),
|
|
187
|
+
"data-testid": "storefront-home-trust-features",
|
|
158
188
|
children: [
|
|
159
|
-
/* @__PURE__ */
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
children: [/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ _("li", {
|
|
190
|
+
className: "flex items-start gap-3",
|
|
191
|
+
"data-testid": "storefront-secure-payment-notice",
|
|
192
|
+
children: [/* @__PURE__ */ g(Pe, {
|
|
163
193
|
className: "mt-0.5 h-5 w-5 text-success",
|
|
164
194
|
"aria-hidden": "true"
|
|
165
|
-
}), /* @__PURE__ */
|
|
195
|
+
}), /* @__PURE__ */ _("div", {
|
|
166
196
|
className: "flex flex-col gap-0.5",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
197
|
+
children: [/* @__PURE__ */ g("p", {
|
|
168
198
|
className: "text-sm font-medium text-slate-950",
|
|
169
|
-
children: /* @__PURE__ */
|
|
170
|
-
}), /* @__PURE__ */
|
|
199
|
+
children: /* @__PURE__ */ g("span", { children: d("feature_secure_payment_title") })
|
|
200
|
+
}), /* @__PURE__ */ g("p", {
|
|
171
201
|
className: "text-xs text-slate-600",
|
|
172
|
-
children: /* @__PURE__ */
|
|
202
|
+
children: /* @__PURE__ */ g("span", { children: d("feature_secure_payment_description") })
|
|
173
203
|
})]
|
|
174
204
|
})]
|
|
175
205
|
}),
|
|
176
|
-
/* @__PURE__ */
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
className: "mt-0.5 h-5 w-5 text-success",
|
|
180
|
-
"aria-hidden": "true"
|
|
181
|
-
}), /* @__PURE__ */ h("div", {
|
|
182
|
-
className: "flex flex-col gap-0.5",
|
|
183
|
-
children: [/* @__PURE__ */ m("p", {
|
|
184
|
-
className: "text-sm font-medium text-slate-950",
|
|
185
|
-
children: /* @__PURE__ */ m("span", { children: d("feature_guarantee_insurance_title") })
|
|
186
|
-
}), /* @__PURE__ */ m("p", {
|
|
187
|
-
className: "text-xs text-slate-600",
|
|
188
|
-
children: /* @__PURE__ */ m("span", { children: d("feature_guarantee_insurance_description") })
|
|
189
|
-
})]
|
|
190
|
-
})]
|
|
206
|
+
/* @__PURE__ */ g(ye, {
|
|
207
|
+
policy: C.bookingEngine.cancellationPolicy,
|
|
208
|
+
className: v(!J && "border-t border-slate-200/70 pt-3")
|
|
191
209
|
}),
|
|
192
|
-
P ? /* @__PURE__ */
|
|
193
|
-
className:
|
|
194
|
-
|
|
210
|
+
P ? /* @__PURE__ */ _("li", {
|
|
211
|
+
className: v("flex items-start gap-3", !J && "border-t border-slate-200/70 pt-3"),
|
|
212
|
+
"data-testid": "storefront-delivery-notice",
|
|
213
|
+
children: [/* @__PURE__ */ g(Fe, {
|
|
195
214
|
className: "mt-0.5 h-5 w-5 text-slate-900",
|
|
196
215
|
"aria-hidden": "true"
|
|
197
|
-
}), /* @__PURE__ */
|
|
216
|
+
}), /* @__PURE__ */ _("div", {
|
|
198
217
|
className: "flex flex-col gap-0.5",
|
|
199
|
-
children: [/* @__PURE__ */
|
|
218
|
+
children: [/* @__PURE__ */ g("p", {
|
|
200
219
|
className: "text-sm font-medium text-slate-950",
|
|
201
|
-
children: /* @__PURE__ */
|
|
202
|
-
}), /* @__PURE__ */
|
|
220
|
+
children: /* @__PURE__ */ g("span", { children: d("feature_delivery_title") })
|
|
221
|
+
}), /* @__PURE__ */ g("p", {
|
|
203
222
|
className: "text-xs text-slate-600",
|
|
204
|
-
children: /* @__PURE__ */
|
|
223
|
+
children: /* @__PURE__ */ g("span", { children: d("feature_delivery_description") })
|
|
205
224
|
})]
|
|
206
225
|
})]
|
|
207
|
-
}) : null
|
|
226
|
+
}) : null,
|
|
227
|
+
/* @__PURE__ */ g(be, {
|
|
228
|
+
bikes: k,
|
|
229
|
+
currency: C.bookingEngine.currency,
|
|
230
|
+
className: v(!J && "border-t border-slate-200/70 pt-3")
|
|
231
|
+
})
|
|
208
232
|
]
|
|
209
233
|
})
|
|
210
234
|
})
|
|
211
|
-
] }),
|
|
212
|
-
...
|
|
213
|
-
labelClassName:
|
|
214
|
-
inputClassName:
|
|
215
|
-
children: /* @__PURE__ */ h("div", {
|
|
235
|
+
] }), dt = ({ className: e, showSubmitButton: t = !1, submitButtonClassName: n }) => /* @__PURE__ */ g(ne, {
|
|
236
|
+
...ct,
|
|
237
|
+
labelClassName: Ie,
|
|
238
|
+
inputClassName: Le,
|
|
239
|
+
children: /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ _("div", {
|
|
216
240
|
className: e,
|
|
217
241
|
children: [
|
|
218
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ g("div", {
|
|
219
243
|
className: "min-w-0",
|
|
220
|
-
children: /* @__PURE__ */
|
|
244
|
+
children: /* @__PURE__ */ g(re, {})
|
|
221
245
|
}),
|
|
222
|
-
/* @__PURE__ */
|
|
223
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ g(ie, {}),
|
|
247
|
+
/* @__PURE__ */ g("div", {
|
|
224
248
|
className: "min-w-0",
|
|
225
|
-
children: /* @__PURE__ */
|
|
249
|
+
children: /* @__PURE__ */ g(ae, {})
|
|
226
250
|
}),
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
t ? /* @__PURE__ */
|
|
229
|
-
|
|
230
|
-
className:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
className: "h-4 w-4",
|
|
234
|
-
"aria-hidden": "true"
|
|
235
|
-
})]
|
|
251
|
+
/* @__PURE__ */ g(oe, {}),
|
|
252
|
+
t ? /* @__PURE__ */ g(Re, {
|
|
253
|
+
buttonRef: K,
|
|
254
|
+
className: n,
|
|
255
|
+
label: d("booking_submit"),
|
|
256
|
+
onSubmit: X
|
|
236
257
|
}) : null
|
|
237
258
|
]
|
|
238
|
-
})
|
|
239
|
-
|
|
240
|
-
|
|
259
|
+
}), /* @__PURE__ */ g(se, {
|
|
260
|
+
className: "mt-2",
|
|
261
|
+
testId: "booking-home-time-slots-status"
|
|
262
|
+
})] })
|
|
263
|
+
}), Q = (e) => P ? /* @__PURE__ */ g(ce, {
|
|
264
|
+
open: L === "delivery",
|
|
241
265
|
className: "sm:min-h-[6.75rem]",
|
|
242
|
-
inputClassName: `${
|
|
243
|
-
labelClassName:
|
|
244
|
-
startAddress:
|
|
245
|
-
onStartAddressChange:
|
|
246
|
-
returnAddress:
|
|
247
|
-
onReturnAddressChange:
|
|
266
|
+
inputClassName: `${Le} bg-white`,
|
|
267
|
+
labelClassName: Ie,
|
|
268
|
+
startAddress: H,
|
|
269
|
+
onStartAddressChange: U,
|
|
270
|
+
returnAddress: W,
|
|
271
|
+
onReturnAddressChange: G,
|
|
248
272
|
testIdPrefix: e
|
|
249
|
-
}) : null,
|
|
273
|
+
}) : null, ft = Q("storefront-home-fulfillment-delivery-address"), pt = Q("storefront-home-compact-fulfillment-delivery-address"), mt = /* @__PURE__ */ _(me, {
|
|
250
274
|
className: "border-slate-200 bg-white/80 shadow-none",
|
|
251
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ _("div", {
|
|
252
276
|
className: "border-b border-slate-200 px-4 py-4",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
277
|
+
children: [/* @__PURE__ */ g("p", {
|
|
254
278
|
className: "text-sm font-semibold text-slate-950",
|
|
255
|
-
children: /* @__PURE__ */
|
|
256
|
-
}), /* @__PURE__ */
|
|
279
|
+
children: /* @__PURE__ */ g("span", { children: d("booking_title") })
|
|
280
|
+
}), /* @__PURE__ */ g("p", {
|
|
257
281
|
className: "mt-1 text-xs text-slate-600",
|
|
258
|
-
children: /* @__PURE__ */
|
|
282
|
+
children: /* @__PURE__ */ g("span", { children: d("booking_subtitle") })
|
|
259
283
|
})]
|
|
260
|
-
}), /* @__PURE__ */
|
|
284
|
+
}), /* @__PURE__ */ _("div", {
|
|
261
285
|
className: "grid gap-4 px-4 py-4",
|
|
262
286
|
children: [
|
|
263
|
-
/* @__PURE__ */
|
|
264
|
-
value:
|
|
265
|
-
onValueChange:
|
|
266
|
-
pickupAddress:
|
|
287
|
+
/* @__PURE__ */ g(Se, {
|
|
288
|
+
value: L,
|
|
289
|
+
onValueChange: Ge,
|
|
290
|
+
pickupAddress: T,
|
|
267
291
|
deliveryEnabled: P,
|
|
268
|
-
deliveryDisabledReason:
|
|
269
|
-
startAddress:
|
|
270
|
-
onStartAddressChange:
|
|
271
|
-
endAddress:
|
|
272
|
-
onEndAddressChange:
|
|
292
|
+
deliveryDisabledReason: F,
|
|
293
|
+
startAddress: H,
|
|
294
|
+
onStartAddressChange: U,
|
|
295
|
+
endAddress: W,
|
|
296
|
+
onEndAddressChange: G,
|
|
273
297
|
showDeliveryAddressSelector: !1,
|
|
274
298
|
testIdPrefix: "storefront-home-fulfillment"
|
|
275
299
|
}),
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
/* @__PURE__ */
|
|
300
|
+
dt({ className: "grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-[minmax(0,1fr)_150px_minmax(0,1fr)_150px] xl:items-start" }),
|
|
301
|
+
ft,
|
|
302
|
+
/* @__PURE__ */ g("p", {
|
|
279
303
|
className: "text-xs text-slate-600",
|
|
280
|
-
children: /* @__PURE__ */
|
|
304
|
+
children: /* @__PURE__ */ g("span", { children: d("booking_minimum_duration", { hours: 4 }) })
|
|
281
305
|
}),
|
|
282
|
-
/* @__PURE__ */
|
|
283
|
-
ref:
|
|
306
|
+
/* @__PURE__ */ _(u, {
|
|
307
|
+
ref: K,
|
|
284
308
|
className: "h-11 w-fit justify-self-start rounded-xl text-sm font-semibold gap-2",
|
|
285
|
-
|
|
286
|
-
|
|
309
|
+
disabled: !st,
|
|
310
|
+
onClick: X,
|
|
311
|
+
children: [/* @__PURE__ */ g("span", { children: d("booking_submit") }), /* @__PURE__ */ g(b, {
|
|
287
312
|
className: "h-4 w-4",
|
|
288
313
|
"aria-hidden": "true"
|
|
289
314
|
})]
|
|
290
315
|
})
|
|
291
316
|
]
|
|
292
317
|
})]
|
|
293
|
-
}),
|
|
318
|
+
}), ht = /* @__PURE__ */ g(me, {
|
|
294
319
|
className: "border-slate-200 bg-white/95 shadow-xl",
|
|
295
|
-
children: /* @__PURE__ */
|
|
320
|
+
children: /* @__PURE__ */ _("div", {
|
|
296
321
|
className: "grid gap-3 p-4",
|
|
297
322
|
children: [
|
|
298
|
-
/* @__PURE__ */
|
|
299
|
-
value:
|
|
300
|
-
onValueChange:
|
|
301
|
-
pickupAddress:
|
|
323
|
+
/* @__PURE__ */ g("div", { children: /* @__PURE__ */ g(Se, {
|
|
324
|
+
value: L,
|
|
325
|
+
onValueChange: Ge,
|
|
326
|
+
pickupAddress: T,
|
|
302
327
|
deliveryEnabled: P,
|
|
303
|
-
deliveryDisabledReason:
|
|
304
|
-
startAddress:
|
|
305
|
-
onStartAddressChange:
|
|
306
|
-
endAddress:
|
|
307
|
-
onEndAddressChange:
|
|
328
|
+
deliveryDisabledReason: F,
|
|
329
|
+
startAddress: H,
|
|
330
|
+
onStartAddressChange: U,
|
|
331
|
+
endAddress: W,
|
|
332
|
+
onEndAddressChange: G,
|
|
308
333
|
showDeliveryAddressSelector: !1,
|
|
309
334
|
testIdPrefix: "storefront-home-compact-fulfillment"
|
|
310
335
|
}) }),
|
|
311
|
-
|
|
336
|
+
dt({
|
|
312
337
|
className: "grid gap-3 md:grid-cols-2 xl:grid-cols-[minmax(0,1fr)_150px_minmax(0,1fr)_150px_auto] xl:items-end",
|
|
313
338
|
showSubmitButton: !0,
|
|
314
339
|
submitButtonClassName: "h-10 rounded-xl text-sm font-semibold xl:self-end"
|
|
315
340
|
}),
|
|
316
|
-
|
|
341
|
+
pt
|
|
317
342
|
]
|
|
318
343
|
})
|
|
319
|
-
}),
|
|
320
|
-
className:
|
|
344
|
+
}), $ = (C.content?.galleryImageIds ?? []).map((e) => c(e, x ?? C.storeSlug)).filter((e) => e.length > 0), gt = [...k, ...Be].flatMap((e) => Array.isArray(e.images) ? e.images : []).filter((e) => typeof e == "string" && e.trim().length > 0).map((e) => e.trim()).slice(0, 12), _t = ze($.length > 0 ? $ : gt), vt = $[0] ?? "data:image/svg+xml,%3csvg%20width='1600'%20height='1066'%20viewBox='0%200%201600%201066'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3clinearGradient%20id='bg'%20x1='0'%20y1='0'%20x2='1600'%20y2='1066'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%230F172A'/%3e%3cstop%20offset='1'%20stop-color='%23164E63'/%3e%3c/linearGradient%3e%3clinearGradient%20id='road'%20x1='0'%20y1='740'%20x2='1600'%20y2='1066'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23334155'/%3e%3cstop%20offset='1'%20stop-color='%230F172A'/%3e%3c/linearGradient%3e%3c/defs%3e%3crect%20width='1600'%20height='1066'%20fill='url(%23bg)'/%3e%3cpath%20d='M0%20675C233%20555%20420%20530%20590%20551C752%20571%20930%20635%201088%20632C1252%20629%201423%20559%201600%20498V1066H0V675Z'%20fill='%231E293B'%20opacity='0.7'/%3e%3cpath%20d='M0%20792C213%20710%20393%20686%20573%20697C760%20708%20945%20760%201123%20761C1286%20762%201437%20722%201600%20666V1066H0V792Z'%20fill='url(%23road)'/%3e%3ccircle%20cx='440'%20cy='620'%20r='92'%20stroke='%23F8FAFC'%20stroke-width='18'%20opacity='0.8'/%3e%3ccircle%20cx='740'%20cy='620'%20r='92'%20stroke='%23F8FAFC'%20stroke-width='18'%20opacity='0.8'/%3e%3cpath%20d='M440%20620L560%20520L650%20620H740M560%20520L610%20445M595%20470H665'%20stroke='%23F8FAFC'%20stroke-width='18'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3ccircle%20cx='980'%20cy='700'%20r='80'%20stroke='%23E2E8F0'%20stroke-width='14'%20opacity='0.7'/%3e%3ccircle%20cx='1240'%20cy='700'%20r='80'%20stroke='%23E2E8F0'%20stroke-width='14'%20opacity='0.7'/%3e%3cpath%20d='M980%20700L1078%20616L1156%20700H1240M1078%20616L1122%20556M1112%20574H1172'%20stroke='%23E2E8F0'%20stroke-width='14'%20stroke-linecap='round'%20stroke-linejoin='round'%20opacity='0.7'/%3e%3c/svg%3e", yt = q ? /* @__PURE__ */ g("style", { children: "\n @keyframes storefront-hero-marquee-up {\n 0% { transform: translateY(0); }\n 100% { transform: translateY(calc(-50% - (var(--storefront-hero-marquee-gap) / 2))); }\n }\n @keyframes storefront-hero-marquee-down {\n 0% { transform: translateY(calc(-50% - (var(--storefront-hero-marquee-gap) / 2))); }\n 100% { transform: translateY(0); }\n }\n .storefront-hero-marquee-track {\n animation: storefront-hero-marquee-up var(--storefront-hero-marquee-duration, 32s) linear infinite;\n will-change: transform;\n }\n .storefront-hero-marquee-track-reverse {\n animation-name: storefront-hero-marquee-down;\n }\n @media (prefers-reduced-motion: reduce) {\n .storefront-hero-marquee-track,\n .storefront-hero-marquee-track-reverse {\n animation: none !important;\n transform: none !important;\n }\n }\n " }) : null, bt = (e) => /* @__PURE__ */ g("div", {
|
|
345
|
+
className: v("relative h-full min-h-[340px] overflow-hidden", e),
|
|
321
346
|
style: {
|
|
322
347
|
WebkitMaskImage: "linear-gradient(to bottom, transparent 0%, black 5%, black 95%, transparent 100%)",
|
|
323
348
|
maskImage: "linear-gradient(to bottom, transparent 0%, black 5%, black 95%, transparent 100%)",
|
|
@@ -327,194 +352,194 @@ function D() {
|
|
|
327
352
|
maskSize: "100% 100%"
|
|
328
353
|
},
|
|
329
354
|
"aria-hidden": "true",
|
|
330
|
-
children: /* @__PURE__ */
|
|
355
|
+
children: /* @__PURE__ */ g("div", {
|
|
331
356
|
className: "absolute inset-0 grid grid-cols-2 gap-3 md:grid-cols-3 lg:grid-cols-6",
|
|
332
|
-
children:
|
|
357
|
+
children: _t.map((e, t) => {
|
|
333
358
|
let n = w[t % w.length] ?? 32, r = [...e, ...e];
|
|
334
|
-
return /* @__PURE__ */
|
|
335
|
-
className:
|
|
336
|
-
children: /* @__PURE__ */
|
|
337
|
-
className:
|
|
359
|
+
return /* @__PURE__ */ g("div", {
|
|
360
|
+
className: v("relative min-h-0 overflow-hidden", t === 2 && "hidden md:block", t >= 3 && "hidden lg:block"),
|
|
361
|
+
children: /* @__PURE__ */ g("div", {
|
|
362
|
+
className: v("storefront-hero-marquee-track flex flex-col gap-[var(--storefront-hero-marquee-gap)]", t % 2 == 1 && "storefront-hero-marquee-track-reverse"),
|
|
338
363
|
style: {
|
|
339
364
|
"--storefront-hero-marquee-duration": `${n}s`,
|
|
340
365
|
"--storefront-hero-marquee-gap": "0.75rem"
|
|
341
366
|
},
|
|
342
|
-
children: r.map((n, r) => /* @__PURE__ */
|
|
367
|
+
children: r.map((n, r) => /* @__PURE__ */ _("div", {
|
|
343
368
|
className: "group relative overflow-hidden rounded-[1.35rem] border border-white/40 bg-transparent",
|
|
344
369
|
style: { aspectRatio: n.aspectRatio },
|
|
345
370
|
children: [
|
|
346
|
-
/* @__PURE__ */
|
|
347
|
-
/* @__PURE__ */
|
|
371
|
+
/* @__PURE__ */ g("div", { className: "absolute inset-0 bg-linear-to-b from-white/22 via-transparent to-transparent" }),
|
|
372
|
+
/* @__PURE__ */ g("img", {
|
|
348
373
|
src: n.src,
|
|
349
374
|
alt: "",
|
|
350
375
|
className: "absolute inset-0 h-full w-full object-cover opacity-90 saturate-[1.05] transition-transform duration-700 group-hover:scale-[1.04]",
|
|
351
376
|
loading: r < e.length ? "eager" : "lazy"
|
|
352
377
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
378
|
+
/* @__PURE__ */ g("div", { className: "absolute inset-0 bg-linear-to-t from-slate-950/40 via-slate-950/10 to-white/10" })
|
|
354
379
|
]
|
|
355
380
|
}, `hero-marquee-tile-${t}-${r}`))
|
|
356
381
|
})
|
|
357
382
|
}, `hero-marquee-column-${t}`);
|
|
358
383
|
})
|
|
359
384
|
})
|
|
360
|
-
}),
|
|
385
|
+
}), xt = q ? /* @__PURE__ */ g("div", {
|
|
361
386
|
className: "pointer-events-none absolute inset-0 hidden lg:block",
|
|
362
387
|
"aria-hidden": "true",
|
|
363
|
-
children: /* @__PURE__ */
|
|
388
|
+
children: /* @__PURE__ */ _("div", {
|
|
364
389
|
className: "mx-auto grid h-full max-w-7xl grid-cols-12 gap-8 px-4 sm:px-6",
|
|
365
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ g("div", { className: "lg:col-span-5" }), /* @__PURE__ */ g("div", {
|
|
366
391
|
className: "lg:col-span-7",
|
|
367
|
-
children:
|
|
392
|
+
children: bt()
|
|
368
393
|
})]
|
|
369
394
|
})
|
|
370
|
-
}) : null,
|
|
395
|
+
}) : null, St = q ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g("div", {
|
|
371
396
|
className: "lg:hidden",
|
|
372
|
-
children:
|
|
373
|
-
}), /* @__PURE__ */
|
|
397
|
+
children: bt()
|
|
398
|
+
}), /* @__PURE__ */ g("div", {
|
|
374
399
|
className: "hidden min-h-[510px] lg:block",
|
|
375
400
|
"aria-hidden": "true"
|
|
376
|
-
})] }) : /* @__PURE__ */
|
|
401
|
+
})] }) : /* @__PURE__ */ _("div", {
|
|
377
402
|
className: "relative min-h-[340px] overflow-hidden rounded-3xl border border-slate-200 bg-slate-900 shadow-sm lg:min-h-[510px]",
|
|
378
|
-
children: [/* @__PURE__ */
|
|
379
|
-
src:
|
|
403
|
+
children: [/* @__PURE__ */ g("img", {
|
|
404
|
+
src: vt,
|
|
380
405
|
alt: "",
|
|
381
406
|
className: "absolute inset-0 h-full w-full object-cover",
|
|
382
407
|
"aria-hidden": "true"
|
|
383
|
-
}), /* @__PURE__ */
|
|
408
|
+
}), /* @__PURE__ */ g("div", {
|
|
384
409
|
className: "absolute inset-0 bg-linear-to-t from-slate-900/45 via-slate-900/15 to-transparent",
|
|
385
410
|
"aria-hidden": "true"
|
|
386
411
|
})]
|
|
387
412
|
});
|
|
388
|
-
return /* @__PURE__ */ h
|
|
389
|
-
/* @__PURE__ */
|
|
413
|
+
return /* @__PURE__ */ _(h, { children: [
|
|
414
|
+
/* @__PURE__ */ _("section", {
|
|
390
415
|
className: "relative overflow-hidden border-b border-slate-200",
|
|
391
416
|
children: [
|
|
392
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ g("div", {
|
|
393
418
|
className: "absolute inset-0 bg-linear-to-b from-slate-50 to-white",
|
|
394
419
|
"aria-hidden": "true"
|
|
395
420
|
}),
|
|
396
|
-
/* @__PURE__ */
|
|
421
|
+
/* @__PURE__ */ g("div", {
|
|
397
422
|
className: "absolute inset-0 opacity-[0.07]",
|
|
398
423
|
style: { backgroundImage: "radial-gradient(circle at 20% 20%, rgba(15, 23, 42, 0.9) 0px, transparent 55%), radial-gradient(circle at 80% 35%, rgba(14, 116, 144, 0.9) 0px, transparent 55%), radial-gradient(circle at 55% 85%, rgba(99, 102, 241, 0.9) 0px, transparent 55%)" },
|
|
399
424
|
"aria-hidden": "true"
|
|
400
425
|
}),
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
426
|
+
yt,
|
|
427
|
+
xt,
|
|
428
|
+
J ? /* @__PURE__ */ _("div", {
|
|
404
429
|
className: "relative mx-auto grid max-w-7xl gap-8 px-4 py-10 sm:px-6 lg:grid-cols-12 lg:py-14",
|
|
405
|
-
children: [/* @__PURE__ */
|
|
430
|
+
children: [/* @__PURE__ */ _("div", {
|
|
406
431
|
className: "lg:col-span-5",
|
|
407
|
-
children: [
|
|
432
|
+
children: [ut, tt ? /* @__PURE__ */ g("div", {
|
|
408
433
|
className: "mt-7",
|
|
409
|
-
children: /* @__PURE__ */
|
|
434
|
+
children: /* @__PURE__ */ g("div", {
|
|
410
435
|
className: "relative z-20 w-[calc(100%+24rem)] max-w-none",
|
|
411
|
-
children:
|
|
436
|
+
children: ht
|
|
412
437
|
})
|
|
413
438
|
}) : null]
|
|
414
|
-
}), /* @__PURE__ */
|
|
415
|
-
className:
|
|
416
|
-
children: [
|
|
439
|
+
}), /* @__PURE__ */ _("div", {
|
|
440
|
+
className: v("lg:col-span-7", !q && "lg:pt-4"),
|
|
441
|
+
children: [St, tt ? null : /* @__PURE__ */ g("div", {
|
|
417
442
|
className: "mt-4",
|
|
418
|
-
children:
|
|
443
|
+
children: ht
|
|
419
444
|
})]
|
|
420
445
|
})]
|
|
421
|
-
}) : /* @__PURE__ */
|
|
446
|
+
}) : /* @__PURE__ */ _("div", {
|
|
422
447
|
className: "relative mx-auto grid max-w-7xl gap-8 px-4 py-10 sm:px-6 lg:grid-cols-12 lg:items-center lg:py-14",
|
|
423
|
-
children: [/* @__PURE__ */
|
|
448
|
+
children: [/* @__PURE__ */ g("div", {
|
|
424
449
|
className: "lg:col-span-5",
|
|
425
|
-
children:
|
|
426
|
-
}), /* @__PURE__ */
|
|
450
|
+
children: ut
|
|
451
|
+
}), /* @__PURE__ */ g("div", {
|
|
427
452
|
className: "lg:col-span-7",
|
|
428
|
-
children:
|
|
453
|
+
children: mt
|
|
429
454
|
})]
|
|
430
455
|
})
|
|
431
456
|
]
|
|
432
457
|
}),
|
|
433
|
-
/* @__PURE__ */
|
|
458
|
+
/* @__PURE__ */ _("section", {
|
|
434
459
|
id: "featured",
|
|
435
460
|
className: "mx-auto max-w-7xl scroll-mt-16 px-4 py-10 sm:scroll-mt-20 sm:px-6",
|
|
436
|
-
children: [/* @__PURE__ */
|
|
461
|
+
children: [/* @__PURE__ */ _("div", {
|
|
437
462
|
className: "flex items-center justify-between gap-3",
|
|
438
|
-
children: [/* @__PURE__ */
|
|
463
|
+
children: [/* @__PURE__ */ _("div", {
|
|
439
464
|
className: "space-y-1",
|
|
440
|
-
children: [/* @__PURE__ */
|
|
465
|
+
children: [/* @__PURE__ */ g("h2", {
|
|
441
466
|
className: "text-xl font-semibold tracking-tight",
|
|
442
|
-
children: /* @__PURE__ */
|
|
443
|
-
}), /* @__PURE__ */
|
|
467
|
+
children: /* @__PURE__ */ g("span", { children: d("featured_title") })
|
|
468
|
+
}), /* @__PURE__ */ g("p", {
|
|
444
469
|
className: "text-sm text-slate-600",
|
|
445
|
-
children: /* @__PURE__ */
|
|
470
|
+
children: /* @__PURE__ */ g("span", { children: d("featured_description") })
|
|
446
471
|
})]
|
|
447
|
-
}), /* @__PURE__ */
|
|
472
|
+
}), /* @__PURE__ */ _(y, {
|
|
448
473
|
className: "hidden items-center gap-2 text-sm font-medium text-slate-700 hover:text-slate-950 sm:inline-flex",
|
|
449
|
-
to: `/${
|
|
450
|
-
children: [/* @__PURE__ */
|
|
474
|
+
to: `/${x ?? ""}/booking${at}`,
|
|
475
|
+
children: [/* @__PURE__ */ g("span", { children: d("featured_view_all") }), /* @__PURE__ */ g(b, {
|
|
451
476
|
className: "h-4 w-4",
|
|
452
477
|
"aria-hidden": "true"
|
|
453
478
|
})]
|
|
454
479
|
})]
|
|
455
|
-
}), /* @__PURE__ */
|
|
480
|
+
}), /* @__PURE__ */ g("div", {
|
|
456
481
|
className: "mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
457
|
-
children:
|
|
458
|
-
let t = e.id, n = e.slug, r =
|
|
459
|
-
return /* @__PURE__ */
|
|
482
|
+
children: Qe.map((e) => {
|
|
483
|
+
let t = e.id, n = e.slug, r = s(e.name, f.language, O), i = s(e.description, f.language, O), a = typeof e.images?.[0] == "string" ? e.images[0].trim() : "", o = _e(e.primaryImageStyle), c = ee(e.availabilityStatus), u = lt(n);
|
|
484
|
+
return /* @__PURE__ */ _("div", {
|
|
460
485
|
className: "group flex h-full flex-col gap-2 rounded-xl border border-slate-200 bg-white p-3 text-left shadow-sm transition hover:border-slate-400",
|
|
461
486
|
children: [
|
|
462
|
-
/* @__PURE__ */
|
|
487
|
+
/* @__PURE__ */ g(y, {
|
|
463
488
|
to: u,
|
|
464
|
-
state:
|
|
489
|
+
state: Z,
|
|
465
490
|
className: "block",
|
|
466
|
-
children: /* @__PURE__ */
|
|
467
|
-
className:
|
|
468
|
-
style:
|
|
469
|
-
children: a ? /* @__PURE__ */
|
|
491
|
+
children: /* @__PURE__ */ g("span", {
|
|
492
|
+
className: v("relative block aspect-[1618/1000] overflow-hidden rounded-xl", o.className),
|
|
493
|
+
style: o.style,
|
|
494
|
+
children: a ? /* @__PURE__ */ g("img", {
|
|
470
495
|
src: a,
|
|
471
496
|
alt: r,
|
|
472
497
|
className: "absolute inset-0 h-full w-full object-contain p-1",
|
|
473
498
|
loading: "lazy"
|
|
474
|
-
}) : /* @__PURE__ */
|
|
499
|
+
}) : /* @__PURE__ */ g("span", {
|
|
475
500
|
className: "absolute inset-0 flex items-center justify-center text-slate-400",
|
|
476
|
-
children: /* @__PURE__ */
|
|
501
|
+
children: /* @__PURE__ */ g(je, {
|
|
477
502
|
className: "h-8 w-8",
|
|
478
503
|
"aria-hidden": "true"
|
|
479
504
|
})
|
|
480
505
|
})
|
|
481
506
|
})
|
|
482
507
|
}),
|
|
483
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ _("span", {
|
|
484
509
|
className: "flex flex-1 flex-col gap-1",
|
|
485
510
|
children: [
|
|
486
|
-
/* @__PURE__ */
|
|
511
|
+
/* @__PURE__ */ g(y, {
|
|
487
512
|
to: u,
|
|
488
|
-
state:
|
|
513
|
+
state: Z,
|
|
489
514
|
className: "text-sm font-semibold text-slate-950 hover:text-slate-700",
|
|
490
|
-
children: /* @__PURE__ */
|
|
515
|
+
children: /* @__PURE__ */ g("span", { children: r })
|
|
491
516
|
}),
|
|
492
|
-
/* @__PURE__ */
|
|
517
|
+
/* @__PURE__ */ g(ge, {
|
|
493
518
|
prices: e.prices,
|
|
494
519
|
className: "self-start"
|
|
495
520
|
}),
|
|
496
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ g("span", {
|
|
497
522
|
className: "line-clamp-2 text-xs text-slate-600",
|
|
498
523
|
children: i
|
|
499
524
|
})
|
|
500
525
|
]
|
|
501
526
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
527
|
+
/* @__PURE__ */ _("span", {
|
|
503
528
|
className: "flex flex-wrap items-center gap-x-2 gap-y-1",
|
|
504
529
|
children: [
|
|
505
|
-
/* @__PURE__ */
|
|
506
|
-
variant:
|
|
507
|
-
children: /* @__PURE__ */
|
|
530
|
+
/* @__PURE__ */ g(l, {
|
|
531
|
+
variant: c.variant,
|
|
532
|
+
children: /* @__PURE__ */ g("span", { children: d(c.labelKey) })
|
|
508
533
|
}),
|
|
509
|
-
/* @__PURE__ */
|
|
534
|
+
/* @__PURE__ */ g("span", {
|
|
510
535
|
className: "text-slate-400",
|
|
511
536
|
children: "·"
|
|
512
537
|
}),
|
|
513
|
-
/* @__PURE__ */
|
|
538
|
+
/* @__PURE__ */ g(y, {
|
|
514
539
|
to: u,
|
|
515
|
-
state:
|
|
540
|
+
state: Z,
|
|
516
541
|
className: "text-xs font-medium text-slate-700 hover:text-slate-950",
|
|
517
|
-
children: /* @__PURE__ */
|
|
542
|
+
children: /* @__PURE__ */ g("span", { children: d("product_details_link") })
|
|
518
543
|
})
|
|
519
544
|
]
|
|
520
545
|
})
|
|
@@ -523,102 +548,102 @@ function D() {
|
|
|
523
548
|
})
|
|
524
549
|
})]
|
|
525
550
|
}),
|
|
526
|
-
/* @__PURE__ */
|
|
551
|
+
/* @__PURE__ */ g("section", {
|
|
527
552
|
id: "products",
|
|
528
553
|
className: "border-t bg-slate-50/60 scroll-mt-16 sm:scroll-mt-20",
|
|
529
|
-
children: /* @__PURE__ */
|
|
554
|
+
children: /* @__PURE__ */ _("div", {
|
|
530
555
|
className: "mx-auto max-w-7xl px-4 py-10 sm:px-6",
|
|
531
|
-
children: [/* @__PURE__ */
|
|
556
|
+
children: [/* @__PURE__ */ g("div", {
|
|
532
557
|
className: "flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",
|
|
533
|
-
children: /* @__PURE__ */
|
|
558
|
+
children: /* @__PURE__ */ _("div", {
|
|
534
559
|
className: "space-y-1",
|
|
535
|
-
children: [/* @__PURE__ */
|
|
560
|
+
children: [/* @__PURE__ */ g("h2", {
|
|
536
561
|
className: "text-xl font-semibold tracking-tight",
|
|
537
|
-
children: /* @__PURE__ */
|
|
538
|
-
}), /* @__PURE__ */
|
|
562
|
+
children: /* @__PURE__ */ g("span", { children: d("products_title") })
|
|
563
|
+
}), /* @__PURE__ */ g("p", {
|
|
539
564
|
className: "text-sm text-slate-600",
|
|
540
|
-
children: /* @__PURE__ */
|
|
565
|
+
children: /* @__PURE__ */ g("span", { children: d("products_description") })
|
|
541
566
|
})]
|
|
542
567
|
})
|
|
543
|
-
}), /* @__PURE__ */
|
|
568
|
+
}), /* @__PURE__ */ g("div", {
|
|
544
569
|
className: "mt-6 grid gap-4 md:grid-cols-2",
|
|
545
|
-
children: k.map((e) => /* @__PURE__ */
|
|
570
|
+
children: k.map((e) => /* @__PURE__ */ g(ve, {
|
|
546
571
|
bike: e,
|
|
547
|
-
detailsPath:
|
|
548
|
-
productDetailsLinkState:
|
|
572
|
+
detailsPath: lt(e.slug),
|
|
573
|
+
productDetailsLinkState: Z,
|
|
549
574
|
fallbackLanguage: O,
|
|
550
|
-
onAction:
|
|
575
|
+
onAction: X
|
|
551
576
|
}, e.id))
|
|
552
577
|
})]
|
|
553
578
|
})
|
|
554
579
|
}),
|
|
555
|
-
/* @__PURE__ */
|
|
580
|
+
/* @__PURE__ */ _("section", {
|
|
556
581
|
className: "mx-auto max-w-7xl px-4 py-10 sm:px-6",
|
|
557
|
-
children: [/* @__PURE__ */
|
|
582
|
+
children: [/* @__PURE__ */ g("div", {
|
|
558
583
|
className: "flex flex-col gap-2 sm:flex-row sm:items-end sm:justify-between",
|
|
559
|
-
children: /* @__PURE__ */
|
|
584
|
+
children: /* @__PURE__ */ _("div", {
|
|
560
585
|
className: "space-y-1",
|
|
561
|
-
children: [/* @__PURE__ */
|
|
586
|
+
children: [/* @__PURE__ */ g("h2", {
|
|
562
587
|
className: "text-xl font-semibold tracking-tight",
|
|
563
|
-
children: /* @__PURE__ */
|
|
564
|
-
}), /* @__PURE__ */
|
|
588
|
+
children: /* @__PURE__ */ g("span", { children: d("accessories_title") })
|
|
589
|
+
}), /* @__PURE__ */ g("p", {
|
|
565
590
|
className: "text-sm text-slate-600",
|
|
566
|
-
children: /* @__PURE__ */
|
|
591
|
+
children: /* @__PURE__ */ g("span", { children: d("accessories_description") })
|
|
567
592
|
})]
|
|
568
593
|
})
|
|
569
|
-
}), /* @__PURE__ */
|
|
594
|
+
}), /* @__PURE__ */ g("div", {
|
|
570
595
|
className: "mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
571
|
-
children:
|
|
572
|
-
let t =
|
|
573
|
-
return /* @__PURE__ */
|
|
596
|
+
children: Be.slice(0, 4).map((e) => {
|
|
597
|
+
let t = s(e.name, f.language, O), n = s(e.description, f.language, O), r = s(e.warning, f.language, O), i = typeof e.images?.[0] == "string" ? e.images[0].trim() : "", a = _e(e.primaryImageStyle);
|
|
598
|
+
return /* @__PURE__ */ _("div", {
|
|
574
599
|
className: "flex h-full flex-col gap-2 rounded-xl border border-slate-200 bg-white p-3 shadow-sm",
|
|
575
600
|
children: [
|
|
576
|
-
/* @__PURE__ */
|
|
577
|
-
className:
|
|
601
|
+
/* @__PURE__ */ g("div", {
|
|
602
|
+
className: v("relative aspect-[1618/1000] overflow-hidden rounded-xl", a.className),
|
|
578
603
|
style: a.style,
|
|
579
|
-
children: i ? /* @__PURE__ */
|
|
604
|
+
children: i ? /* @__PURE__ */ g("img", {
|
|
580
605
|
src: i,
|
|
581
606
|
alt: t,
|
|
582
607
|
className: "absolute inset-0 h-full w-full object-contain p-1",
|
|
583
608
|
loading: "lazy"
|
|
584
|
-
}) : /* @__PURE__ */
|
|
609
|
+
}) : /* @__PURE__ */ g("div", {
|
|
585
610
|
className: "absolute inset-0 flex items-center justify-center text-slate-400",
|
|
586
|
-
children: /* @__PURE__ */
|
|
611
|
+
children: /* @__PURE__ */ g(je, {
|
|
587
612
|
className: "h-8 w-8",
|
|
588
613
|
"aria-hidden": "true"
|
|
589
614
|
})
|
|
590
615
|
})
|
|
591
616
|
}),
|
|
592
|
-
/* @__PURE__ */
|
|
617
|
+
/* @__PURE__ */ _("div", {
|
|
593
618
|
className: "flex flex-1 flex-col gap-1",
|
|
594
619
|
children: [
|
|
595
|
-
/* @__PURE__ */
|
|
620
|
+
/* @__PURE__ */ g("p", {
|
|
596
621
|
className: "text-sm font-semibold text-slate-950",
|
|
597
|
-
children: /* @__PURE__ */
|
|
622
|
+
children: /* @__PURE__ */ g("span", { children: t })
|
|
598
623
|
}),
|
|
599
|
-
/* @__PURE__ */
|
|
624
|
+
/* @__PURE__ */ g("p", {
|
|
600
625
|
className: "line-clamp-2 text-xs text-slate-600",
|
|
601
|
-
children: /* @__PURE__ */
|
|
626
|
+
children: /* @__PURE__ */ g("span", { children: n })
|
|
602
627
|
}),
|
|
603
|
-
/* @__PURE__ */
|
|
628
|
+
/* @__PURE__ */ g(he, {
|
|
604
629
|
warning: r,
|
|
605
630
|
className: "mt-1"
|
|
606
631
|
})
|
|
607
632
|
]
|
|
608
633
|
}),
|
|
609
|
-
/* @__PURE__ */
|
|
634
|
+
/* @__PURE__ */ g("div", {
|
|
610
635
|
className: "flex items-center justify-between gap-2",
|
|
611
|
-
children: /* @__PURE__ */
|
|
636
|
+
children: /* @__PURE__ */ g(ge, { prices: e.prices })
|
|
612
637
|
})
|
|
613
638
|
]
|
|
614
639
|
}, e.id);
|
|
615
640
|
})
|
|
616
641
|
})]
|
|
617
642
|
}),
|
|
618
|
-
/* @__PURE__ */
|
|
619
|
-
/* @__PURE__ */
|
|
620
|
-
/* @__PURE__ */
|
|
643
|
+
/* @__PURE__ */ g(pe, {}),
|
|
644
|
+
/* @__PURE__ */ g(fe, {}),
|
|
645
|
+
/* @__PURE__ */ g(de, { storeSlug: x ?? "" })
|
|
621
646
|
] });
|
|
622
647
|
}
|
|
623
648
|
//#endregion
|
|
624
|
-
export {
|
|
649
|
+
export { O as default };
|