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