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