@loczer/storefront-sdk 0.216.0 → 0.217.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Footer/BusinessHours.d.ts +2 -9
- package/dist/components/Footer/BusinessHours.d.ts.map +1 -1
- package/dist/components/Footer/BusinessHours.js +48 -91
- package/dist/components/Footer/BusinessHoursOverviewDialog.d.ts +11 -0
- package/dist/components/Footer/BusinessHoursOverviewDialog.d.ts.map +1 -0
- package/dist/components/Footer/BusinessHoursOverviewDialog.js +161 -0
- package/dist/components/Footer/businessHoursUtils.d.ts +37 -1
- package/dist/components/Footer/businessHoursUtils.d.ts.map +1 -1
- package/dist/components/Footer/businessHoursUtils.js +112 -15
- package/dist/components/Footer/index.d.ts.map +1 -1
- package/dist/components/Footer/index.js +78 -94
- package/dist/i18n/en.d.ts +5 -0
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +5 -0
- package/dist/i18n/fr.d.ts +5 -0
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +5 -0
- package/dist/index.d.ts +10 -0
- package/dist/pages/HomePage.d.ts.map +1 -1
- package/dist/pages/HomePage.js +250 -205
- package/dist/storefront.css +1 -1
- package/package.json +1 -1
package/dist/pages/HomePage.js
CHANGED
|
@@ -1,51 +1,54 @@
|
|
|
1
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 { getLocalizedValue as s } from "../localization.js";
|
|
3
3
|
import { getAvailabilityVariant as ee } from "../lib/utils.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveStorefrontMapsHref as c } from "../lib/storefrontContact.js";
|
|
5
|
+
import { buildStorefrontImageUrl as l } from "../lib/storefrontImage.js";
|
|
5
6
|
import "../lib/storefrontMissingValues.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
7
|
+
import { buildBusinessHoursSeasonSummary as te, normalizeStorefrontOpeningHours as ne, normalizeStorefrontOpeningHoursOverrides as re } from "../components/Footer/businessHoursUtils.js";
|
|
8
|
+
import { Badge as u } from "../ui/badge.js";
|
|
9
|
+
import { Button as ie } from "../ui/button.js";
|
|
10
|
+
import { useStorefront as ae, useStorefrontProducts as oe } from "../StorefrontContext.js";
|
|
11
|
+
import { usePlaygroundDevSettings as se } from "../lib/playgroundDevSettings.js";
|
|
12
|
+
import { BookingPeriodProvider as ce, useBookingPeriod as d } from "../components/BookingPeriodSelector/BookingPeriodContext.js";
|
|
13
|
+
import { BookingStartDateField as le } from "../components/BookingPeriodSelector/components/BookingStartDateField.js";
|
|
14
|
+
import { BookingStartTimeField as ue } from "../components/BookingPeriodSelector/components/BookingStartTimeField.js";
|
|
15
|
+
import { BookingEndDateField as de } from "../components/BookingPeriodSelector/components/BookingEndDateField.js";
|
|
16
|
+
import { BookingEndTimeField as fe } from "../components/BookingPeriodSelector/components/BookingEndTimeField.js";
|
|
17
|
+
import { BookingTimeSlotsStatus as pe } from "../components/BookingPeriodSelector/components/BookingTimeSlotsStatus.js";
|
|
18
|
+
import { BookingMobileDateDrawer as me } from "../components/BookingPeriodSelector/components/BookingMobileDateDrawer.js";
|
|
17
19
|
import "../components/BookingPeriodSelector/index.js";
|
|
18
|
-
import { DeliveryAddressSelector as
|
|
19
|
-
import { ContactSection as
|
|
20
|
-
import { TestimonialsSection as
|
|
21
|
-
import { AboutSection as
|
|
22
|
-
import { ItinerariesSection as
|
|
20
|
+
import { DeliveryAddressSelector as he } from "../components/DeliveryAddressSelector/index.js";
|
|
21
|
+
import { ContactSection as ge } from "../components/ContactSection/index.js";
|
|
22
|
+
import { TestimonialsSection as _e } from "../components/TestimonialsSection/index.js";
|
|
23
|
+
import { AboutSection as ve } from "../components/AboutSection/index.js";
|
|
24
|
+
import { ItinerariesSection as ye } from "../components/Itineraries/ItinerariesSection.js";
|
|
23
25
|
import "../components/Itineraries/index.js";
|
|
24
|
-
import { Card as
|
|
25
|
-
import { ProductWarningNotice as
|
|
26
|
-
import { ProductPriceBadge as
|
|
27
|
-
import
|
|
28
|
-
import { resolveProductImageContainerStyle as
|
|
29
|
-
import { BikeProductCard as
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
26
|
+
import { Card as be } from "../ui/card.js";
|
|
27
|
+
import { ProductWarningNotice as xe } from "../components/ProductWarningNotice/index.js";
|
|
28
|
+
import { ProductPriceBadge as Se } from "../components/ProductPriceBadge/index.js";
|
|
29
|
+
import Ce from "../chunks/assets/playground-hero-preview-kf4c9tSc.js";
|
|
30
|
+
import { resolveProductImageContainerStyle as we } from "../lib/productImageStyles.js";
|
|
31
|
+
import { BikeProductCard as Te } from "../components/BikeProductCard/index.js";
|
|
32
|
+
import { BusinessHoursOverviewDialog as Ee } from "../components/Footer/BusinessHoursOverviewDialog.js";
|
|
33
|
+
import { StorefrontCancellationPolicyNotice as De } from "../components/StorefrontCancellationPolicyNotice/index.js";
|
|
34
|
+
import { StorefrontInsuranceNotice as Oe } from "../components/StorefrontInsuranceNotice/index.js";
|
|
35
|
+
import { createStorefrontTimeSlotsFetcher as ke } from "../lib/fetchStorefrontTimeSlots.js";
|
|
36
|
+
import { FulfillmentSection as Ae } from "../components/FulfillmentSection/index.js";
|
|
34
37
|
import { useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
|
|
35
38
|
import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
36
|
-
import { Link as y, useLocation as
|
|
37
|
-
import { useTranslation as
|
|
39
|
+
import { Link as y, useLocation as je, useNavigate as Me, useParams as Ne, useSearchParams as Pe } from "@rpcbase/router";
|
|
40
|
+
import { useTranslation as Fe } from "react-i18next";
|
|
38
41
|
import { cn as b } from "@rpcbase/ui";
|
|
39
|
-
import { ArrowRight as x, Bike as
|
|
42
|
+
import { ArrowRight as x, Bike as Ie, Clock as Le, MapPin as Re, ShieldCheck as ze, Truck as Be } from "lucide-react";
|
|
40
43
|
//#region src/pages/HomePage.tsx
|
|
41
|
-
var S = (e) => String(e).padStart(2, "0"),
|
|
44
|
+
var S = (e) => String(e).padStart(2, "0"), Ve = "text-2xs font-semibold uppercase tracking-wide text-slate-600", He = "h-10", C = "show_business_hours_modal", w = 6, T = 5, Ue = [
|
|
42
45
|
15,
|
|
43
46
|
25,
|
|
44
47
|
42,
|
|
45
48
|
66,
|
|
46
49
|
33,
|
|
47
50
|
54
|
|
48
|
-
],
|
|
51
|
+
], E = [
|
|
49
52
|
"4 / 5",
|
|
50
53
|
"1 / 1",
|
|
51
54
|
"3 / 4",
|
|
@@ -54,9 +57,9 @@ var S = (e) => String(e).padStart(2, "0"), Ie = "text-2xs font-semibold uppercas
|
|
|
54
57
|
"4 / 3",
|
|
55
58
|
"9 / 16",
|
|
56
59
|
"6 / 7"
|
|
57
|
-
],
|
|
60
|
+
], We = ({ buttonRef: e, className: t, label: n, onSubmit: r }) => {
|
|
58
61
|
let { hasConfirmedTimeSlots: i, startTime: a, endTime: o } = d();
|
|
59
|
-
return /* @__PURE__ */ v(
|
|
62
|
+
return /* @__PURE__ */ v(ie, {
|
|
60
63
|
ref: e,
|
|
61
64
|
className: b("gap-2", t),
|
|
62
65
|
disabled: !i || !a || !o,
|
|
@@ -66,34 +69,51 @@ var S = (e) => String(e).padStart(2, "0"), Ie = "text-2xs font-semibold uppercas
|
|
|
66
69
|
"aria-hidden": "true"
|
|
67
70
|
})]
|
|
68
71
|
});
|
|
69
|
-
},
|
|
72
|
+
}, D = (e) => `${e.getFullYear()}-${S(e.getMonth() + 1)}-${S(e.getDate())}`, O = (e) => {
|
|
70
73
|
if (!e) return;
|
|
71
74
|
let t = e.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
|
72
75
|
if (!t) return;
|
|
73
76
|
let n = Number(t[1]), r = Number(t[2]), i = Number(t[3]), a = new Date(n, r - 1, i);
|
|
74
77
|
if (!(Number.isNaN(a.getTime()) || a.getFullYear() !== n || a.getMonth() !== r - 1 || a.getDate() !== i)) return a;
|
|
75
|
-
},
|
|
76
|
-
let t = e.length > 0 ? e : [
|
|
77
|
-
return Array.from({ length:
|
|
78
|
-
let i = n *
|
|
78
|
+
}, Ge = (e) => {
|
|
79
|
+
let t = e.length > 0 ? e : [Ce];
|
|
80
|
+
return Array.from({ length: w }, (e, n) => Array.from({ length: T }, (e, r) => {
|
|
81
|
+
let i = n * T + r;
|
|
79
82
|
return {
|
|
80
|
-
aspectRatio:
|
|
83
|
+
aspectRatio: E[(i + n) % E.length] ?? E[0],
|
|
81
84
|
src: t[i % t.length] ?? "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"
|
|
82
85
|
};
|
|
83
86
|
}));
|
|
84
87
|
};
|
|
85
|
-
function
|
|
86
|
-
let { t: d, i18n: S } =
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
88
|
+
function k() {
|
|
89
|
+
let { t: d, i18n: S } = Fe(), { storeSlug: w } = Ne(), T = je(), { storefrontConfiguration: E } = ae(), k = E.shop.address?.trim() ?? "", A = E.workspace?.workspaceLanguage, { seasons: Ke, exceptions: qe } = te({
|
|
90
|
+
openingHours: ne(E.bookingEngine.shop.openingHours),
|
|
91
|
+
openingHoursOverrides: re(E.bookingEngine.shop.openingHoursOverrides),
|
|
92
|
+
language: S.language || A || "en",
|
|
93
|
+
closedLabel: d("footer_business_hours_closed"),
|
|
94
|
+
formatWeekdayRange: (e, t) => d("footer_business_hours_weekday_range", {
|
|
95
|
+
start: e,
|
|
96
|
+
end: t
|
|
97
|
+
}),
|
|
98
|
+
formatSeasonRange: (e, t) => d("footer_business_hours_season_range", {
|
|
99
|
+
start: e,
|
|
100
|
+
end: t
|
|
101
|
+
}),
|
|
102
|
+
includeReferenceDateOverrideInSeason: !1
|
|
103
|
+
}), Je = Ke.length > 0 || qe.length > 0, Ye = c(E.shop), { bikes: j, accessories: Xe } = oe(), [M, N] = Pe(), Ze = M.get(C) === "true", Qe = Me(), P = p(() => a(M, w), [M, w]), $e = p(() => n(E), [E]), F = p(() => i(E), [E]), I = p(() => O(F.start_date), [F.start_date]), et = p(() => O(F.end_date) ?? I, [F.end_date, I]), L = E.settings.fulfillmentModes.includes("delivery"), tt = E.settings.deliveryDisabledReason.trim(), R = p(() => r(P, F), [F, P]), [z, nt] = h(() => R.fulfillment === "delivery" && L ? "delivery" : "pickup"), [B, rt] = h(() => O(P.get("start_date")) ?? I), [V, it] = h(() => P.get("start_time") ?? F.start_time), [H, at] = h(() => {
|
|
104
|
+
let e = O(P.get("start_date")) ?? I;
|
|
105
|
+
return O(P.get("end_date")) ?? e ?? et;
|
|
106
|
+
}), [U, ot] = h(() => P.get("end_time") ?? F.end_time), [st, ct] = h(void 0), lt = m(void 0), [ut, dt] = h(!1), [W, G] = h(() => R.start_address), [K, q] = h(() => R.end_address), ft = m(null), pt = (e) => {
|
|
107
|
+
let t = new URLSearchParams(M);
|
|
108
|
+
e ? t.set(C, "true") : t.delete(C), N(t, { replace: !0 });
|
|
109
|
+
}, mt = [
|
|
110
|
+
B ? D(B) : "",
|
|
111
|
+
V,
|
|
112
|
+
H ? D(H) : "",
|
|
113
|
+
U
|
|
114
|
+
].join(":"), ht = m(mt);
|
|
115
|
+
ht.current = mt;
|
|
116
|
+
let J = st === mt, gt = p(() => j.slice(0, 4), [j]), { heroMode: _t } = se(), vt = _t ?? E.content?.heroMode ?? "current_booking_hero", Y = vt === "vertical_marquee_hero", X = vt === "booking_bar_overlay_hero" || Y, yt = ke(w), bt = p(() => ({
|
|
97
117
|
startDate: d("booking_start_date"),
|
|
98
118
|
pickStartDate: d("booking_start_date"),
|
|
99
119
|
startTime: d("booking_start_time"),
|
|
@@ -109,87 +129,105 @@ function O() {
|
|
|
109
129
|
timeSlotsLoadError: d("booking_time_slots_load_error"),
|
|
110
130
|
retryTimeSlots: d("booking_time_slots_retry")
|
|
111
131
|
}), [S.language, d]), Z = p(() => {
|
|
112
|
-
let e =
|
|
132
|
+
let e = B ?? I ?? /* @__PURE__ */ new Date(), n = H ?? e;
|
|
113
133
|
return t(new URLSearchParams(), {
|
|
114
|
-
fulfillment:
|
|
115
|
-
start_date:
|
|
116
|
-
start_time: J ?
|
|
117
|
-
end_date:
|
|
118
|
-
end_time: J ?
|
|
119
|
-
start_address:
|
|
120
|
-
end_address:
|
|
134
|
+
fulfillment: z === "delivery" && L ? "delivery" : "pickup",
|
|
135
|
+
start_date: D(e),
|
|
136
|
+
start_time: J ? V : "",
|
|
137
|
+
end_date: D(n),
|
|
138
|
+
end_time: J ? U : "",
|
|
139
|
+
start_address: W,
|
|
140
|
+
end_address: K
|
|
121
141
|
});
|
|
122
142
|
}, [
|
|
123
|
-
|
|
124
|
-
F,
|
|
125
|
-
W,
|
|
126
|
-
B,
|
|
127
|
-
V,
|
|
143
|
+
I,
|
|
128
144
|
L,
|
|
129
|
-
|
|
145
|
+
K,
|
|
130
146
|
H,
|
|
131
|
-
|
|
132
|
-
z
|
|
133
|
-
|
|
147
|
+
U,
|
|
148
|
+
z,
|
|
149
|
+
J,
|
|
150
|
+
W,
|
|
151
|
+
B,
|
|
152
|
+
V
|
|
153
|
+
]), xt = Z.toString(), St = xt ? `?${xt}` : "";
|
|
134
154
|
f(() => {
|
|
135
|
-
o(
|
|
136
|
-
}, [Z,
|
|
137
|
-
let t = new URLSearchParams(
|
|
155
|
+
o(w, Z);
|
|
156
|
+
}, [Z, w]), f(() => {
|
|
157
|
+
let t = new URLSearchParams(M);
|
|
138
158
|
for (let n of e) t.delete(n);
|
|
139
159
|
for (let [e, n] of Z.entries()) t.set(e, n);
|
|
140
|
-
t.toString() !==
|
|
160
|
+
t.toString() !== M.toString() && N(t, { replace: !0 });
|
|
141
161
|
}, [
|
|
142
162
|
Z,
|
|
143
|
-
|
|
144
|
-
|
|
163
|
+
M,
|
|
164
|
+
N
|
|
145
165
|
]), f(() => {
|
|
146
|
-
!
|
|
147
|
-
}, [J,
|
|
148
|
-
let
|
|
149
|
-
startDate:
|
|
150
|
-
onStartDateChange:
|
|
151
|
-
startTime:
|
|
152
|
-
onStartTimeChange:
|
|
153
|
-
endDate:
|
|
154
|
-
onEndDateChange:
|
|
155
|
-
endTime:
|
|
156
|
-
onEndTimeChange:
|
|
157
|
-
onEndTimeCommit: () =>
|
|
158
|
-
bookingPeriodConfig:
|
|
166
|
+
!ut || !J || (dt(!1), ft.current?.focus({ preventScroll: !0 }));
|
|
167
|
+
}, [J, ut]);
|
|
168
|
+
let Ct = J && !!(V && U), wt = {
|
|
169
|
+
startDate: B,
|
|
170
|
+
onStartDateChange: rt,
|
|
171
|
+
startTime: V,
|
|
172
|
+
onStartTimeChange: it,
|
|
173
|
+
endDate: H,
|
|
174
|
+
onEndDateChange: at,
|
|
175
|
+
endTime: U,
|
|
176
|
+
onEndTimeChange: ot,
|
|
177
|
+
onEndTimeCommit: () => dt(!0),
|
|
178
|
+
bookingPeriodConfig: $e,
|
|
159
179
|
withMobileDateDrawer: !0,
|
|
160
|
-
fetchTimeSlots:
|
|
180
|
+
fetchTimeSlots: yt,
|
|
161
181
|
onTimeSlotsConfirmationChange: (e) => {
|
|
162
|
-
let t = e ?
|
|
163
|
-
|
|
182
|
+
let t = e ? ht.current : void 0;
|
|
183
|
+
lt.current !== t && (lt.current = t, ct(t));
|
|
164
184
|
},
|
|
165
|
-
labels:
|
|
185
|
+
labels: bt,
|
|
166
186
|
localeCode: S.language
|
|
167
|
-
},
|
|
168
|
-
let e = new URLSearchParams(
|
|
187
|
+
}, Tt = () => {
|
|
188
|
+
let e = new URLSearchParams(M);
|
|
169
189
|
for (let [t, n] of Z.entries()) e.set(t, n);
|
|
170
|
-
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
},
|
|
190
|
+
Qe(`/${w ?? ""}/booking?${e.toString()}#booking-products`);
|
|
191
|
+
}, Et = () => {
|
|
192
|
+
Ct && Tt();
|
|
193
|
+
}, Dt = (e) => `/${w ?? ""}/products/${e}`, Q = { backTo: `${T.pathname}${T.search}${T.hash}` }, Ot = /* @__PURE__ */ v("div", {
|
|
174
194
|
className: "min-w-0",
|
|
175
195
|
children: [
|
|
176
196
|
/* @__PURE__ */ v("div", {
|
|
177
197
|
className: "flex min-w-0 flex-wrap items-center gap-2",
|
|
178
|
-
children: [/* @__PURE__ */
|
|
198
|
+
children: [Je ? /* @__PURE__ */ _(u, {
|
|
199
|
+
asChild: !0,
|
|
179
200
|
variant: "secondary",
|
|
180
|
-
|
|
201
|
+
className: "group cursor-pointer",
|
|
202
|
+
children: /* @__PURE__ */ v("button", {
|
|
203
|
+
type: "button",
|
|
204
|
+
"data-testid": "storefront-business-hours-trigger",
|
|
205
|
+
"aria-haspopup": "dialog",
|
|
206
|
+
"aria-expanded": Ze,
|
|
207
|
+
onClick: () => pt(!0),
|
|
208
|
+
children: [/* @__PURE__ */ _(Le, {
|
|
209
|
+
className: "h-3 w-3",
|
|
210
|
+
"aria-hidden": "true"
|
|
211
|
+
}), /* @__PURE__ */ _("span", {
|
|
212
|
+
className: "decoration-current underline-offset-2 group-hover:underline group-focus-visible:underline",
|
|
213
|
+
children: d("status_open")
|
|
214
|
+
})]
|
|
215
|
+
})
|
|
216
|
+
}) : /* @__PURE__ */ v(u, {
|
|
217
|
+
variant: "secondary",
|
|
218
|
+
children: [/* @__PURE__ */ _(Le, {
|
|
181
219
|
className: "h-3 w-3",
|
|
182
220
|
"aria-hidden": "true"
|
|
183
221
|
}), /* @__PURE__ */ _("span", { children: d("status_open") })]
|
|
184
|
-
}), /* @__PURE__ */ v(
|
|
222
|
+
}), /* @__PURE__ */ v(u, {
|
|
185
223
|
variant: "outline",
|
|
186
|
-
className: b("min-w-0 max-w-full", !
|
|
187
|
-
children: [/* @__PURE__ */ _(
|
|
224
|
+
className: b("min-w-0 max-w-full", !k && "border-destructive/40 text-destructive"),
|
|
225
|
+
children: [/* @__PURE__ */ _(Re, {
|
|
188
226
|
className: "h-3 w-3",
|
|
189
227
|
"aria-hidden": "true"
|
|
190
228
|
}), /* @__PURE__ */ _("span", {
|
|
191
229
|
className: "truncate",
|
|
192
|
-
children:
|
|
230
|
+
children: k || "[Missing shop address]"
|
|
193
231
|
})]
|
|
194
232
|
})]
|
|
195
233
|
}),
|
|
@@ -210,7 +248,7 @@ function O() {
|
|
|
210
248
|
/* @__PURE__ */ v("li", {
|
|
211
249
|
className: "flex items-start gap-3",
|
|
212
250
|
"data-testid": "storefront-secure-payment-notice",
|
|
213
|
-
children: [/* @__PURE__ */ _(
|
|
251
|
+
children: [/* @__PURE__ */ _(ze, {
|
|
214
252
|
className: "mt-0.5 h-5 w-5 text-success",
|
|
215
253
|
"aria-hidden": "true"
|
|
216
254
|
}), /* @__PURE__ */ v("div", {
|
|
@@ -224,14 +262,14 @@ function O() {
|
|
|
224
262
|
})]
|
|
225
263
|
})]
|
|
226
264
|
}),
|
|
227
|
-
/* @__PURE__ */ _(
|
|
228
|
-
policy:
|
|
265
|
+
/* @__PURE__ */ _(De, {
|
|
266
|
+
policy: E.bookingEngine.cancellationPolicy,
|
|
229
267
|
className: b(!X && "border-t border-slate-200/70 pt-3")
|
|
230
268
|
}),
|
|
231
|
-
|
|
269
|
+
L ? /* @__PURE__ */ v("li", {
|
|
232
270
|
className: b("flex items-start gap-3", !X && "border-t border-slate-200/70 pt-3"),
|
|
233
271
|
"data-testid": "storefront-delivery-notice",
|
|
234
|
-
children: [/* @__PURE__ */ _(
|
|
272
|
+
children: [/* @__PURE__ */ _(Be, {
|
|
235
273
|
className: "mt-0.5 h-5 w-5 text-slate-900",
|
|
236
274
|
"aria-hidden": "true"
|
|
237
275
|
}), /* @__PURE__ */ v("div", {
|
|
@@ -245,65 +283,65 @@ function O() {
|
|
|
245
283
|
})]
|
|
246
284
|
})]
|
|
247
285
|
}) : null,
|
|
248
|
-
/* @__PURE__ */ _(
|
|
249
|
-
bikes:
|
|
250
|
-
currency:
|
|
286
|
+
/* @__PURE__ */ _(Oe, {
|
|
287
|
+
bikes: j,
|
|
288
|
+
currency: E.bookingEngine.currency,
|
|
251
289
|
className: b(!X && "border-t border-slate-200/70 pt-3")
|
|
252
290
|
})
|
|
253
291
|
]
|
|
254
292
|
})
|
|
255
293
|
})
|
|
256
294
|
]
|
|
257
|
-
}),
|
|
258
|
-
...
|
|
295
|
+
}), kt = ({ className: e, showSubmitButton: t = !1, submitButtonClassName: n }) => /* @__PURE__ */ _(ce, {
|
|
296
|
+
...wt,
|
|
259
297
|
selectionFlow: "dates-first",
|
|
260
|
-
labelClassName:
|
|
261
|
-
inputClassName:
|
|
298
|
+
labelClassName: Ve,
|
|
299
|
+
inputClassName: He,
|
|
262
300
|
children: /* @__PURE__ */ v(g, { children: [
|
|
263
301
|
/* @__PURE__ */ v("div", {
|
|
264
302
|
className: e,
|
|
265
303
|
children: [
|
|
266
304
|
/* @__PURE__ */ _("div", {
|
|
267
305
|
className: "min-w-0",
|
|
268
|
-
children: /* @__PURE__ */ _(
|
|
306
|
+
children: /* @__PURE__ */ _(le, {})
|
|
269
307
|
}),
|
|
270
308
|
/* @__PURE__ */ _("div", {
|
|
271
309
|
className: "min-w-0",
|
|
272
|
-
children: /* @__PURE__ */ _(
|
|
310
|
+
children: /* @__PURE__ */ _(ue, {})
|
|
273
311
|
}),
|
|
274
312
|
/* @__PURE__ */ _("div", {
|
|
275
313
|
className: "min-w-0",
|
|
276
|
-
children: /* @__PURE__ */ _(
|
|
314
|
+
children: /* @__PURE__ */ _(de, {})
|
|
277
315
|
}),
|
|
278
316
|
/* @__PURE__ */ _("div", {
|
|
279
317
|
className: "min-w-0",
|
|
280
|
-
children: /* @__PURE__ */ _(
|
|
318
|
+
children: /* @__PURE__ */ _(fe, {})
|
|
281
319
|
}),
|
|
282
|
-
t ? /* @__PURE__ */ _(
|
|
283
|
-
buttonRef:
|
|
320
|
+
t ? /* @__PURE__ */ _(We, {
|
|
321
|
+
buttonRef: ft,
|
|
284
322
|
className: n,
|
|
285
323
|
label: d("booking_submit"),
|
|
286
|
-
onSubmit:
|
|
324
|
+
onSubmit: Et
|
|
287
325
|
}) : null
|
|
288
326
|
]
|
|
289
327
|
}),
|
|
290
|
-
/* @__PURE__ */ _(
|
|
291
|
-
/* @__PURE__ */ _(
|
|
328
|
+
/* @__PURE__ */ _(me, { onContinue: Tt }),
|
|
329
|
+
/* @__PURE__ */ _(pe, {
|
|
292
330
|
className: "mt-2",
|
|
293
331
|
testId: "booking-home-time-slots-status"
|
|
294
332
|
})
|
|
295
333
|
] })
|
|
296
|
-
}),
|
|
297
|
-
open:
|
|
334
|
+
}), At = (e) => L ? /* @__PURE__ */ _(he, {
|
|
335
|
+
open: z === "delivery",
|
|
298
336
|
className: "sm:min-h-[6.75rem]",
|
|
299
|
-
inputClassName: `${
|
|
300
|
-
labelClassName:
|
|
301
|
-
startAddress:
|
|
302
|
-
onStartAddressChange:
|
|
303
|
-
returnAddress:
|
|
304
|
-
onReturnAddressChange:
|
|
337
|
+
inputClassName: `${He} bg-white`,
|
|
338
|
+
labelClassName: Ve,
|
|
339
|
+
startAddress: W,
|
|
340
|
+
onStartAddressChange: G,
|
|
341
|
+
returnAddress: K,
|
|
342
|
+
onReturnAddressChange: q,
|
|
305
343
|
testIdPrefix: e
|
|
306
|
-
}) : null,
|
|
344
|
+
}) : null, jt = At("storefront-home-fulfillment-delivery-address"), Mt = At("storefront-home-compact-fulfillment-delivery-address"), Nt = /* @__PURE__ */ v(be, {
|
|
307
345
|
className: "border-slate-200 bg-white/80 shadow-none",
|
|
308
346
|
children: [/* @__PURE__ */ v("div", {
|
|
309
347
|
className: "border-b border-slate-200 px-4 py-4",
|
|
@@ -317,26 +355,26 @@ function O() {
|
|
|
317
355
|
}), /* @__PURE__ */ v("div", {
|
|
318
356
|
className: "grid gap-4 px-4 py-4",
|
|
319
357
|
children: [
|
|
320
|
-
/* @__PURE__ */ _(
|
|
321
|
-
value:
|
|
322
|
-
onValueChange:
|
|
323
|
-
pickupAddress:
|
|
324
|
-
deliveryEnabled:
|
|
325
|
-
deliveryDisabledReason:
|
|
326
|
-
startAddress:
|
|
327
|
-
onStartAddressChange:
|
|
328
|
-
endAddress:
|
|
329
|
-
onEndAddressChange:
|
|
358
|
+
/* @__PURE__ */ _(Ae, {
|
|
359
|
+
value: z,
|
|
360
|
+
onValueChange: nt,
|
|
361
|
+
pickupAddress: k,
|
|
362
|
+
deliveryEnabled: L,
|
|
363
|
+
deliveryDisabledReason: tt,
|
|
364
|
+
startAddress: W,
|
|
365
|
+
onStartAddressChange: G,
|
|
366
|
+
endAddress: K,
|
|
367
|
+
onEndAddressChange: q,
|
|
330
368
|
showDeliveryAddressSelector: !1,
|
|
331
369
|
testIdPrefix: "storefront-home-fulfillment"
|
|
332
370
|
}),
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
/* @__PURE__ */ v(
|
|
336
|
-
ref:
|
|
371
|
+
kt({ 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" }),
|
|
372
|
+
jt,
|
|
373
|
+
/* @__PURE__ */ v(ie, {
|
|
374
|
+
ref: ft,
|
|
337
375
|
className: "h-11 w-full justify-self-start gap-2 rounded-xl text-sm font-semibold sm:w-fit",
|
|
338
|
-
disabled: !
|
|
339
|
-
onClick:
|
|
376
|
+
disabled: !Ct,
|
|
377
|
+
onClick: Et,
|
|
340
378
|
children: [/* @__PURE__ */ _("span", { children: d("booking_submit") }), /* @__PURE__ */ _(x, {
|
|
341
379
|
className: "h-4 w-4",
|
|
342
380
|
"aria-hidden": "true"
|
|
@@ -344,33 +382,33 @@ function O() {
|
|
|
344
382
|
})
|
|
345
383
|
]
|
|
346
384
|
})]
|
|
347
|
-
}),
|
|
385
|
+
}), Pt = /* @__PURE__ */ _(be, {
|
|
348
386
|
className: "border-slate-200 bg-white/95 shadow-xl",
|
|
349
387
|
children: /* @__PURE__ */ v("div", {
|
|
350
388
|
className: "grid gap-3 p-4",
|
|
351
389
|
children: [
|
|
352
|
-
/* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(
|
|
353
|
-
value:
|
|
354
|
-
onValueChange:
|
|
355
|
-
pickupAddress:
|
|
356
|
-
deliveryEnabled:
|
|
357
|
-
deliveryDisabledReason:
|
|
358
|
-
startAddress:
|
|
359
|
-
onStartAddressChange:
|
|
360
|
-
endAddress:
|
|
361
|
-
onEndAddressChange:
|
|
390
|
+
/* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(Ae, {
|
|
391
|
+
value: z,
|
|
392
|
+
onValueChange: nt,
|
|
393
|
+
pickupAddress: k,
|
|
394
|
+
deliveryEnabled: L,
|
|
395
|
+
deliveryDisabledReason: tt,
|
|
396
|
+
startAddress: W,
|
|
397
|
+
onStartAddressChange: G,
|
|
398
|
+
endAddress: K,
|
|
399
|
+
onEndAddressChange: q,
|
|
362
400
|
showDeliveryAddressSelector: !1,
|
|
363
401
|
testIdPrefix: "storefront-home-compact-fulfillment"
|
|
364
402
|
}) }),
|
|
365
|
-
|
|
403
|
+
kt({
|
|
366
404
|
className: "grid gap-3 md:grid-cols-2 xl:grid-cols-[minmax(0,1fr)_150px_minmax(0,1fr)_150px_auto] xl:items-end",
|
|
367
405
|
showSubmitButton: !0,
|
|
368
406
|
submitButtonClassName: "h-10 w-full rounded-xl text-sm font-semibold md:w-fit xl:self-end"
|
|
369
407
|
}),
|
|
370
|
-
|
|
408
|
+
Mt
|
|
371
409
|
]
|
|
372
410
|
})
|
|
373
|
-
}),
|
|
411
|
+
}), $ = (E.content?.galleryImageIds ?? []).map((e) => e.trim()).filter((e) => e.length > 0), Ft = $.map((e) => l(e, w ?? E.storeSlug, 320)).filter((e) => e.length > 0), It = [...j, ...Xe].flatMap((e) => Array.isArray(e.images) ? e.images : []).filter((e) => typeof e == "string" && e.trim().length > 0).map((e) => e.trim()).slice(0, 12), Lt = Ge(Ft.length > 0 ? Ft : It), Rt = $[0] ? l($[0], w ?? E.storeSlug, 1600) : Ce, zt = Y ? /* @__PURE__ */ _("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__ */ _("div", {
|
|
374
412
|
className: b("relative h-full min-h-[340px] overflow-hidden", e),
|
|
375
413
|
style: {
|
|
376
414
|
WebkitMaskImage: "linear-gradient(to bottom, transparent 0%, black 5%, black 95%, transparent 100%)",
|
|
@@ -383,8 +421,8 @@ function O() {
|
|
|
383
421
|
"aria-hidden": "true",
|
|
384
422
|
children: /* @__PURE__ */ _("div", {
|
|
385
423
|
className: "absolute inset-0 grid grid-cols-2 gap-3 md:grid-cols-3 lg:grid-cols-6",
|
|
386
|
-
children:
|
|
387
|
-
let n =
|
|
424
|
+
children: Lt.map((e, t) => {
|
|
425
|
+
let n = Ue[t % Ue.length] ?? 32, r = [...e, ...e];
|
|
388
426
|
return /* @__PURE__ */ _("div", {
|
|
389
427
|
className: b("relative min-h-0 overflow-hidden", t === 2 && "hidden md:block", t >= 3 && "hidden lg:block"),
|
|
390
428
|
children: /* @__PURE__ */ _("div", {
|
|
@@ -411,26 +449,26 @@ function O() {
|
|
|
411
449
|
}, `hero-marquee-column-${t}`);
|
|
412
450
|
})
|
|
413
451
|
})
|
|
414
|
-
}),
|
|
452
|
+
}), Vt = Y ? /* @__PURE__ */ _("div", {
|
|
415
453
|
className: "pointer-events-none absolute inset-0 hidden lg:block",
|
|
416
454
|
"aria-hidden": "true",
|
|
417
455
|
children: /* @__PURE__ */ v("div", {
|
|
418
456
|
className: "mx-auto grid h-full max-w-7xl grid-cols-12 gap-8 px-4 sm:px-6",
|
|
419
457
|
children: [/* @__PURE__ */ _("div", { className: "lg:col-span-5" }), /* @__PURE__ */ _("div", {
|
|
420
458
|
className: "lg:col-span-7",
|
|
421
|
-
children:
|
|
459
|
+
children: Bt()
|
|
422
460
|
})]
|
|
423
461
|
})
|
|
424
|
-
}) : null,
|
|
462
|
+
}) : null, Ht = Y ? /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("div", {
|
|
425
463
|
className: "lg:hidden",
|
|
426
|
-
children:
|
|
464
|
+
children: Bt()
|
|
427
465
|
}), /* @__PURE__ */ _("div", {
|
|
428
466
|
className: "hidden min-h-[510px] lg:block",
|
|
429
467
|
"aria-hidden": "true"
|
|
430
468
|
})] }) : /* @__PURE__ */ v("div", {
|
|
431
469
|
className: "relative min-h-[340px] overflow-hidden rounded-3xl border border-slate-200 bg-slate-900 shadow-sm lg:min-h-[510px]",
|
|
432
470
|
children: [/* @__PURE__ */ _("img", {
|
|
433
|
-
src:
|
|
471
|
+
src: Rt,
|
|
434
472
|
alt: "",
|
|
435
473
|
className: "absolute inset-0 h-full w-full object-cover",
|
|
436
474
|
"aria-hidden": "true"
|
|
@@ -440,6 +478,13 @@ function O() {
|
|
|
440
478
|
})]
|
|
441
479
|
});
|
|
442
480
|
return /* @__PURE__ */ v(g, { children: [
|
|
481
|
+
/* @__PURE__ */ _(Ee, {
|
|
482
|
+
open: Ze,
|
|
483
|
+
seasons: Ke,
|
|
484
|
+
exceptions: qe,
|
|
485
|
+
mapsHref: Ye,
|
|
486
|
+
onOpenChange: pt
|
|
487
|
+
}),
|
|
443
488
|
/* @__PURE__ */ v("section", {
|
|
444
489
|
className: "relative overflow-hidden border-b border-slate-200",
|
|
445
490
|
children: [
|
|
@@ -452,25 +497,25 @@ function O() {
|
|
|
452
497
|
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%)" },
|
|
453
498
|
"aria-hidden": "true"
|
|
454
499
|
}),
|
|
455
|
-
|
|
456
|
-
|
|
500
|
+
zt,
|
|
501
|
+
Vt,
|
|
457
502
|
X ? /* @__PURE__ */ v("div", {
|
|
458
503
|
className: "relative mx-auto grid max-w-7xl gap-x-8 px-4 py-10 sm:px-6 lg:grid-cols-12 lg:py-14",
|
|
459
504
|
children: [
|
|
460
505
|
/* @__PURE__ */ _("div", {
|
|
461
506
|
className: "min-w-0 lg:col-span-5 lg:col-start-1 lg:row-start-1",
|
|
462
|
-
children:
|
|
507
|
+
children: Ot
|
|
463
508
|
}),
|
|
464
509
|
/* @__PURE__ */ _("div", {
|
|
465
510
|
className: b("mt-8 min-w-0 lg:col-span-7 lg:col-start-6 lg:row-span-2 lg:row-start-1 lg:mt-0", !Y && "lg:pt-4"),
|
|
466
|
-
children:
|
|
511
|
+
children: Ht
|
|
467
512
|
}),
|
|
468
513
|
/* @__PURE__ */ _("div", {
|
|
469
514
|
className: "relative z-20 mt-4 lg:col-span-5 lg:col-start-1 lg:row-start-2 lg:mt-7",
|
|
470
515
|
"data-testid": "storefront-home-booking-bar",
|
|
471
516
|
children: /* @__PURE__ */ _("div", {
|
|
472
517
|
className: "lg:w-[calc(100%+24rem)] lg:max-w-none",
|
|
473
|
-
children:
|
|
518
|
+
children: Pt
|
|
474
519
|
})
|
|
475
520
|
})
|
|
476
521
|
]
|
|
@@ -478,10 +523,10 @@ function O() {
|
|
|
478
523
|
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",
|
|
479
524
|
children: [/* @__PURE__ */ _("div", {
|
|
480
525
|
className: "min-w-0 lg:col-span-5",
|
|
481
|
-
children:
|
|
526
|
+
children: Ot
|
|
482
527
|
}), /* @__PURE__ */ _("div", {
|
|
483
528
|
className: "min-w-0 lg:col-span-7",
|
|
484
|
-
children:
|
|
529
|
+
children: Nt
|
|
485
530
|
})]
|
|
486
531
|
})
|
|
487
532
|
]
|
|
@@ -502,7 +547,7 @@ function O() {
|
|
|
502
547
|
})]
|
|
503
548
|
}), /* @__PURE__ */ v(y, {
|
|
504
549
|
className: "hidden items-center gap-2 text-sm font-medium text-slate-700 hover:text-slate-950 sm:inline-flex",
|
|
505
|
-
to: `/${
|
|
550
|
+
to: `/${w ?? ""}/booking${St}`,
|
|
506
551
|
children: [/* @__PURE__ */ _("span", { children: d("featured_view_all") }), /* @__PURE__ */ _(x, {
|
|
507
552
|
className: "h-4 w-4",
|
|
508
553
|
"aria-hidden": "true"
|
|
@@ -510,14 +555,14 @@ function O() {
|
|
|
510
555
|
})]
|
|
511
556
|
}), /* @__PURE__ */ _("div", {
|
|
512
557
|
className: "mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
513
|
-
children:
|
|
514
|
-
let t = e.id, n = e.slug, r = s(e.name, S.language,
|
|
558
|
+
children: gt.map((e) => {
|
|
559
|
+
let t = e.id, n = e.slug, r = s(e.name, S.language, A), i = s(e.description, S.language, A), a = typeof e.images?.[0] == "string" ? e.images[0].trim() : "", o = we(e.primaryImageStyle), c = ee(e.availabilityStatus), l = Dt(n);
|
|
515
560
|
return /* @__PURE__ */ v("div", {
|
|
516
561
|
className: "group flex h-full min-w-0 flex-col gap-2 rounded-xl border border-slate-200 bg-white p-3 text-left shadow-sm transition hover:border-slate-400",
|
|
517
562
|
children: [
|
|
518
563
|
/* @__PURE__ */ _(y, {
|
|
519
|
-
to:
|
|
520
|
-
state:
|
|
564
|
+
to: l,
|
|
565
|
+
state: Q,
|
|
521
566
|
className: "block",
|
|
522
567
|
children: /* @__PURE__ */ _("span", {
|
|
523
568
|
className: b("relative block aspect-[1618/1000] overflow-hidden rounded-xl", o.className),
|
|
@@ -529,7 +574,7 @@ function O() {
|
|
|
529
574
|
loading: "lazy"
|
|
530
575
|
}) : /* @__PURE__ */ _("span", {
|
|
531
576
|
className: "absolute inset-0 flex items-center justify-center text-slate-400",
|
|
532
|
-
children: /* @__PURE__ */ _(
|
|
577
|
+
children: /* @__PURE__ */ _(Ie, {
|
|
533
578
|
className: "h-8 w-8",
|
|
534
579
|
"aria-hidden": "true"
|
|
535
580
|
})
|
|
@@ -540,12 +585,12 @@ function O() {
|
|
|
540
585
|
className: "flex flex-1 flex-col gap-1",
|
|
541
586
|
children: [
|
|
542
587
|
/* @__PURE__ */ _(y, {
|
|
543
|
-
to:
|
|
544
|
-
state:
|
|
588
|
+
to: l,
|
|
589
|
+
state: Q,
|
|
545
590
|
className: "text-sm font-semibold text-slate-950 hover:text-slate-700",
|
|
546
591
|
children: /* @__PURE__ */ _("span", { children: r })
|
|
547
592
|
}),
|
|
548
|
-
/* @__PURE__ */ _(
|
|
593
|
+
/* @__PURE__ */ _(Se, {
|
|
549
594
|
prices: e.prices,
|
|
550
595
|
className: "self-start"
|
|
551
596
|
}),
|
|
@@ -558,7 +603,7 @@ function O() {
|
|
|
558
603
|
/* @__PURE__ */ v("span", {
|
|
559
604
|
className: "flex flex-wrap items-center gap-x-2 gap-y-1",
|
|
560
605
|
children: [
|
|
561
|
-
/* @__PURE__ */ _(
|
|
606
|
+
/* @__PURE__ */ _(u, {
|
|
562
607
|
variant: c.variant,
|
|
563
608
|
children: /* @__PURE__ */ _("span", { children: d(c.labelKey) })
|
|
564
609
|
}),
|
|
@@ -567,8 +612,8 @@ function O() {
|
|
|
567
612
|
children: "·"
|
|
568
613
|
}),
|
|
569
614
|
/* @__PURE__ */ _(y, {
|
|
570
|
-
to:
|
|
571
|
-
state:
|
|
615
|
+
to: l,
|
|
616
|
+
state: Q,
|
|
572
617
|
className: "text-xs font-medium text-slate-700 hover:text-slate-950",
|
|
573
618
|
children: /* @__PURE__ */ _("span", { children: d("product_details_link") })
|
|
574
619
|
})
|
|
@@ -598,12 +643,12 @@ function O() {
|
|
|
598
643
|
})
|
|
599
644
|
}), /* @__PURE__ */ _("div", {
|
|
600
645
|
className: "mt-6 grid gap-4 md:grid-cols-2",
|
|
601
|
-
children:
|
|
646
|
+
children: j.map((e) => /* @__PURE__ */ _(Te, {
|
|
602
647
|
bike: e,
|
|
603
|
-
detailsPath:
|
|
604
|
-
productDetailsLinkState:
|
|
605
|
-
fallbackLanguage:
|
|
606
|
-
onAction:
|
|
648
|
+
detailsPath: Dt(e.slug),
|
|
649
|
+
productDetailsLinkState: Q,
|
|
650
|
+
fallbackLanguage: A,
|
|
651
|
+
onAction: Et
|
|
607
652
|
}, e.id))
|
|
608
653
|
})]
|
|
609
654
|
})
|
|
@@ -624,8 +669,8 @@ function O() {
|
|
|
624
669
|
})
|
|
625
670
|
}), /* @__PURE__ */ _("div", {
|
|
626
671
|
className: "mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
627
|
-
children:
|
|
628
|
-
let t = s(e.name, S.language,
|
|
672
|
+
children: Xe.slice(0, 4).map((e) => {
|
|
673
|
+
let t = s(e.name, S.language, A), n = s(e.description, S.language, A), r = s(e.warning, S.language, A), i = typeof e.images?.[0] == "string" ? e.images[0].trim() : "", a = we(e.primaryImageStyle);
|
|
629
674
|
return /* @__PURE__ */ v("div", {
|
|
630
675
|
className: "flex h-full min-w-0 flex-col gap-2 rounded-xl border border-slate-200 bg-white p-3 shadow-sm",
|
|
631
676
|
children: [
|
|
@@ -639,7 +684,7 @@ function O() {
|
|
|
639
684
|
loading: "lazy"
|
|
640
685
|
}) : /* @__PURE__ */ _("div", {
|
|
641
686
|
className: "absolute inset-0 flex items-center justify-center text-slate-400",
|
|
642
|
-
children: /* @__PURE__ */ _(
|
|
687
|
+
children: /* @__PURE__ */ _(Ie, {
|
|
643
688
|
className: "h-8 w-8",
|
|
644
689
|
"aria-hidden": "true"
|
|
645
690
|
})
|
|
@@ -656,7 +701,7 @@ function O() {
|
|
|
656
701
|
className: "line-clamp-2 text-xs text-slate-600",
|
|
657
702
|
children: /* @__PURE__ */ _("span", { children: n })
|
|
658
703
|
}),
|
|
659
|
-
/* @__PURE__ */ _(
|
|
704
|
+
/* @__PURE__ */ _(xe, {
|
|
660
705
|
warning: r,
|
|
661
706
|
className: "mt-1"
|
|
662
707
|
})
|
|
@@ -664,7 +709,7 @@ function O() {
|
|
|
664
709
|
}),
|
|
665
710
|
/* @__PURE__ */ _("div", {
|
|
666
711
|
className: "flex items-center justify-between gap-2",
|
|
667
|
-
children: /* @__PURE__ */ _(
|
|
712
|
+
children: /* @__PURE__ */ _(Se, {
|
|
668
713
|
prices: e.prices,
|
|
669
714
|
openOnHover: !1
|
|
670
715
|
})
|
|
@@ -674,11 +719,11 @@ function O() {
|
|
|
674
719
|
})
|
|
675
720
|
})]
|
|
676
721
|
}),
|
|
677
|
-
/* @__PURE__ */ _(
|
|
678
|
-
/* @__PURE__ */ _(
|
|
679
|
-
/* @__PURE__ */ _(
|
|
680
|
-
/* @__PURE__ */ _(
|
|
722
|
+
/* @__PURE__ */ _(ve, {}),
|
|
723
|
+
/* @__PURE__ */ _(ye, {}),
|
|
724
|
+
/* @__PURE__ */ _(_e, {}),
|
|
725
|
+
/* @__PURE__ */ _(ge, { storeSlug: w ?? "" })
|
|
681
726
|
] });
|
|
682
727
|
}
|
|
683
728
|
//#endregion
|
|
684
|
-
export {
|
|
729
|
+
export { k as default };
|