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