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