@loczer/storefront-sdk 0.194.0 → 0.196.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/pkg/ui/dist/{Button-CxG2fSpA.js → Button-Cr_u8vnh.js} +1 -1
- package/dist/chunks/pkg/ui/dist/{Dialog-4leTWiev.js → Dialog-CczmPDwY.js} +1 -1
- package/dist/chunks/pkg/ui/dist/Drawer/{index-DA5V7R_q.js → index-CSvSVP_J.js} +1 -1
- package/dist/chunks/pkg/ui/dist/Map/{MapContent-BmKjdWmq.js → MapContent-CDeWtwKa.js} +1 -1
- package/dist/chunks/pkg/ui/dist/{Map-CsOTdTtL.js → Map-Cs7wgtH9.js} +2 -2
- package/dist/chunks/pkg/ui/dist/{MorphingModalWizard-CfEqkJ0y.js → MorphingModalWizard-j1CgFGLe.js} +4 -3
- package/dist/chunks/pkg/ui/dist/{ResponsiveDialog-C6IWYoIg.js → ResponsiveDialog-BVwhTZQo.js} +3 -3
- package/dist/chunks/pkg/ui/dist/{ScrollArea-Bjwo84cv.js → ScrollArea-BqLd0xZj.js} +1 -1
- package/dist/chunks/pkg/ui/dist/Spinner/{index-DzMEU0iA.js → index-Cgi70z_E.js} +1 -1
- package/dist/chunks/pkg/ui/dist/lib/utils-DXB19bzk.js +8 -0
- package/dist/components/BikeProductCard/index.js +6 -6
- package/dist/components/BookingBikeVariantDialog/index.js +7 -7
- package/dist/components/BookingFlowSteps/index.js +11 -11
- package/dist/components/BookingPeriodSelector/components/BookingEndDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.js +16 -15
- package/dist/components/BookingPeriodSelector/components/BookingStartDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.js +16 -15
- package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.d.ts +1 -1
- package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.js +20 -23
- package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.d.ts +39 -0
- package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.d.ts.map +1 -0
- package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.js +830 -0
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts +1 -1
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts.map +1 -1
- package/dist/components/BookingPeriodSelector/useBookingPeriodController.js +52 -46
- package/dist/components/ContactSection/index.js +35 -35
- package/dist/components/ContractSaleDocument/DocumentAcceptanceSection.js +4 -4
- package/dist/components/ContractSaleDocument/ThumbnailSidebar.js +1 -1
- package/dist/components/DeliveryAddressSelector/index.js +5 -5
- package/dist/components/Footer/index.js +11 -11
- package/dist/components/FulfillmentSection/index.js +9 -9
- package/dist/components/Header/index.js +61 -61
- package/dist/components/Map/index.js +1 -1
- package/dist/components/PoweredByLoczerBadge/index.js +5 -5
- package/dist/components/ProductPriceBadge/index.js +73 -73
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +6 -6
- package/dist/components/StorefrontCartPanel/index.js +8 -8
- package/dist/components/StorefrontInsuranceNotice/index.js +6 -6
- package/dist/components/StorefrontPopupMessages/index.js +8 -8
- package/dist/components/payment/MollieCardFieldsForm.js +1 -1
- package/dist/components/payment/StripeCardFieldsForm.js +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/lib/utils.d.ts +3 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +9 -5
- package/dist/pages/BookingPage.js +8 -8
- package/dist/pages/CheckoutPaymentPage.js +1 -1
- package/dist/pages/ContractSaleDocumentPage.js +15 -15
- package/dist/pages/HomePage.js +19 -19
- package/dist/pages/PaymentLinkPage.js +1 -1
- package/dist/pages/PaymentLinkSuccessPage.js +1 -1
- package/dist/pages/ProductPage.js +143 -143
- package/dist/pages/checkout/components/CheckoutCouponCard.js +5 -5
- package/dist/pages/checkout/components/CheckoutPaymentSummaryCard.js +1 -1
- package/dist/storefront.css +1 -1
- package/package.json +5 -1
- package/dist/chunks/node_modules/clsx/dist/clsx-CdyIqUTr.js +0 -16
- package/dist/chunks/node_modules/tailwind-merge/dist/bundle-mjs-CF4QheV5.js +0 -1608
- package/dist/chunks/pkg/ui/dist/lib/utils-BN5KOMSm.js +0 -8
- package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts +0 -22
- package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts.map +0 -1
- package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.js +0 -342
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Locale } from 'date-fns';
|
|
2
|
-
import { HourPickerOption } from '
|
|
2
|
+
import { HourPickerOption } from './components/internal/StorefrontHourPickerField';
|
|
3
3
|
import { BookingPeriodConfig } from '../../lib/booking-period';
|
|
4
4
|
import { JourneyType, TimeSlot } from '../../lib/booking-period-time-slots';
|
|
5
5
|
export type BookingPeriodChangeMeta = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBookingPeriodController.d.ts","sourceRoot":"","sources":["../../../src/components/BookingPeriodSelector/useBookingPeriodController.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"useBookingPeriodController.d.ts","sourceRoot":"","sources":["../../../src/components/BookingPeriodSelector/useBookingPeriodController.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,9 +52,9 @@ var ie = (e) => e, ae = {
|
|
|
52
52
|
let { startDate: m, onStartDateChange: ne, startTime: h, onStartTimeChange: re, endDate: g, onEndDateChange: _, endTime: v, onEndTimeChange: fe, onEndDateCommit: pe, onEndTimeCommit: me, errors: he = {}, labels: ge, t: _e = ie, language: ve, labelClassName: ye, inputClassName: be, buttonClassName: xe, bookingPeriodConfig: y, fetchTimeSlots: b, onTimeSlotsAvailabilityChange: Se, onTimeSlotsConfirmationChange: Ce, selectionFlow: x = "chained-times", withMobileDateDrawer: we = !1, currencyCode: Te = "EUR", disableAutomaticTimeCorrection: S = !1, openDatePickerOnFocus: Ee = !0, startTimeOptions: C = [], endTimeOptions: De, locale: Oe, localeCode: ke } = te, w = ee("(max-width: 767px)"), T = ke ?? ve ?? "en-US", Ae = d(() => oe({
|
|
53
53
|
locale: Oe,
|
|
54
54
|
localeCode: T
|
|
55
|
-
}), [Oe, T]), E = d(() => y ? t(y) : null, [y]), D = d(() => y?.timing.slotIntervalMinutes ? y.timing.slotIntervalMinutes : se(C) ?? 30, [y?.timing.slotIntervalMinutes, C]), [je, O] = p(!1), [Me, Ne] = p(!1), [Pe, k] = p(!1), [Fe, Ie] = p(!1), [Le, Re] = p(void 0), [ze, Be] = p(!1), [Ve, He] = p(!1), [Ue,
|
|
56
|
-
|
|
57
|
-
let
|
|
55
|
+
}), [Oe, T]), E = d(() => y ? t(y) : null, [y]), D = d(() => y?.timing.slotIntervalMinutes ? y.timing.slotIntervalMinutes : se(C) ?? 30, [y?.timing.slotIntervalMinutes, C]), [je, O] = p(!1), [Me, Ne] = p(!1), [Pe, k] = p(!1), [Fe, Ie] = p(!1), [Le, Re] = p(void 0), [ze, Be] = p(!1), [Ve, He] = p(!1), [Ue, We] = p([]), [Ge, A] = p(void 0), [Ke, qe] = p(void 0), [Je, Ye] = p(0), [Xe, Ze] = p([]), [j, Qe] = p(void 0), [$e, et] = p(void 0), [tt, nt] = p(0), M = f(null), rt = f(0), it = f(0), at = f(0), ot = f(void 0), N = f(void 0), st = f(b);
|
|
56
|
+
st.current = b;
|
|
57
|
+
let P = !!b, ct = l(() => {
|
|
58
58
|
Re(void 0);
|
|
59
59
|
}, []), F = d(() => !m || !g ? !1 : c(g, m) === 0, [m, g]), I = d(() => o(h), [h]), L = l((e) => {
|
|
60
60
|
let t = (e instanceof Date ? e : e ? new Date(e) : void 0) ?? /* @__PURE__ */ new Date();
|
|
@@ -93,48 +93,54 @@ var ie = (e) => e, ae = {
|
|
|
93
93
|
return typeof i == "number" ? a(i) : E.defaultEndTime;
|
|
94
94
|
}, [E, L]);
|
|
95
95
|
u(() => {
|
|
96
|
-
let e =
|
|
96
|
+
let e = st.current;
|
|
97
97
|
if (!e) return;
|
|
98
98
|
if (!R) {
|
|
99
|
-
|
|
99
|
+
We([]), A(void 0), qe(void 0);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
let t = !0;
|
|
103
|
-
return
|
|
104
|
-
t && (
|
|
103
|
+
return We([]), A(void 0), qe(void 0), e(R, "start").then((e) => {
|
|
104
|
+
t && (We(e ?? []), A(R), qe(void 0));
|
|
105
105
|
}).catch((e) => {
|
|
106
|
-
console.warn("Failed to fetch availability time slots", e), t && (
|
|
106
|
+
console.warn("Failed to fetch availability time slots", e), t && (We([]), A(void 0), qe(R));
|
|
107
107
|
}), () => {
|
|
108
108
|
t = !1;
|
|
109
109
|
};
|
|
110
110
|
}, [
|
|
111
|
-
|
|
111
|
+
P,
|
|
112
112
|
R,
|
|
113
|
-
|
|
113
|
+
Je
|
|
114
114
|
]), u(() => {
|
|
115
|
-
if (!
|
|
116
|
-
let e =
|
|
117
|
-
|
|
118
|
-
}, [z,
|
|
119
|
-
let e =
|
|
115
|
+
if (!P) return;
|
|
116
|
+
let e = ot.current, t = e !== void 0 && e !== z;
|
|
117
|
+
ot.current = z, t && z && (N.current = z);
|
|
118
|
+
}, [z, P]), u(() => {
|
|
119
|
+
let e = st.current;
|
|
120
120
|
if (!e) return;
|
|
121
121
|
if (!z) {
|
|
122
|
-
|
|
122
|
+
Ze([]), Qe(void 0), et(void 0);
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
125
|
let t = !0;
|
|
126
|
-
return
|
|
127
|
-
t && (
|
|
126
|
+
return Ze([]), Qe(void 0), et(void 0), e(z, "end").then((e) => {
|
|
127
|
+
t && (Ze(e ?? []), Qe(z), et(void 0));
|
|
128
128
|
}).catch((e) => {
|
|
129
|
-
console.warn("Failed to fetch availability time slots", e), t && (
|
|
129
|
+
console.warn("Failed to fetch availability time slots", e), t && (Ze([]), Qe(void 0), et(z));
|
|
130
130
|
}), () => {
|
|
131
131
|
t = !1;
|
|
132
132
|
};
|
|
133
133
|
}, [
|
|
134
134
|
z,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
])
|
|
135
|
+
tt,
|
|
136
|
+
P
|
|
137
|
+
]), u(() => {
|
|
138
|
+
if (!P || typeof window > "u") return;
|
|
139
|
+
let e = (e) => {
|
|
140
|
+
e.persisted && (N.current = z, Ye((e) => e + 1), nt((e) => e + 1));
|
|
141
|
+
};
|
|
142
|
+
return window.addEventListener("pageshow", e), () => window.removeEventListener("pageshow", e);
|
|
143
|
+
}, [z, P]);
|
|
138
144
|
let pt = d(() => b || !y ? null : s(y, { date: R }).startTimeSlots, [
|
|
139
145
|
y,
|
|
140
146
|
b,
|
|
@@ -143,29 +149,29 @@ var ie = (e) => e, ae = {
|
|
|
143
149
|
y,
|
|
144
150
|
z,
|
|
145
151
|
b
|
|
146
|
-
]), K = d(() => b ?
|
|
152
|
+
]), K = d(() => b ? Ge === R ? Ue : [] : y ? pt ?? [] : ce(C, D), [
|
|
147
153
|
y,
|
|
148
154
|
pt,
|
|
149
155
|
b,
|
|
150
156
|
Ue,
|
|
151
|
-
|
|
157
|
+
Ge,
|
|
152
158
|
R,
|
|
153
159
|
D,
|
|
154
160
|
C
|
|
155
|
-
]), q = d(() => b ?
|
|
161
|
+
]), q = d(() => b ? j === z ? Xe : [] : y ? mt ?? [] : ce(De ?? C, D), [
|
|
156
162
|
y,
|
|
157
163
|
mt,
|
|
158
164
|
z,
|
|
159
165
|
De,
|
|
160
166
|
b,
|
|
161
|
-
|
|
162
|
-
|
|
167
|
+
Xe,
|
|
168
|
+
j,
|
|
163
169
|
D,
|
|
164
170
|
C
|
|
165
|
-
]), ht = K.some((e) => e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), gt = q.some((e) => e.isDisabled || U && G != null && e.startMinutes < G ? !1 : !F || I == null || e.startMinutes > I), _t = K.some((e) => e.value !== h || e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), vt = q.some((e) => !(e.value !== v || e.isDisabled || U && G != null && e.startMinutes < G || F && (I == null || e.startMinutes <= I))), J = b ?
|
|
166
|
-
|
|
171
|
+
]), ht = K.some((e) => e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), gt = q.some((e) => e.isDisabled || U && G != null && e.startMinutes < G ? !1 : !F || I == null || e.startMinutes > I), _t = K.some((e) => e.value !== h || e.isDisabled ? !1 : !H || G == null || e.startMinutes >= G), vt = q.some((e) => !(e.value !== v || e.isDisabled || U && G != null && e.startMinutes < G || F && (I == null || e.startMinutes <= I))), J = b ? Ke === R ? "error" : Ge === R ? "ready" : "loading" : "local", Y = b ? $e === z ? "error" : j === z ? "ready" : "loading" : "local", X = (J === "local" || J === "ready" && ht) && (Y === "local" || Y === "ready" && gt), yt = X && _t && vt, bt = X, xt = () => {
|
|
172
|
+
Ye((e) => e + 1);
|
|
167
173
|
}, St = () => {
|
|
168
|
-
|
|
174
|
+
N.current = z, nt((e) => e + 1);
|
|
169
175
|
};
|
|
170
176
|
u(() => {
|
|
171
177
|
Se?.(X);
|
|
@@ -233,8 +239,8 @@ var ie = (e) => e, ae = {
|
|
|
233
239
|
Z
|
|
234
240
|
]), u(() => {
|
|
235
241
|
if (S || !q.length) return;
|
|
236
|
-
if (b &&
|
|
237
|
-
|
|
242
|
+
if (b && N.current === z && j === z) {
|
|
243
|
+
N.current = void 0;
|
|
238
244
|
let e = ue(q);
|
|
239
245
|
if (e && e.value !== v) {
|
|
240
246
|
Q(e.value);
|
|
@@ -265,32 +271,32 @@ var ie = (e) => e, ae = {
|
|
|
265
271
|
z,
|
|
266
272
|
v,
|
|
267
273
|
b,
|
|
268
|
-
|
|
274
|
+
j,
|
|
269
275
|
U,
|
|
270
276
|
F,
|
|
271
277
|
D,
|
|
272
278
|
h,
|
|
273
279
|
Q
|
|
274
280
|
]), u(() => (Be(!0), () => {
|
|
275
|
-
|
|
281
|
+
M.current != null && clearTimeout(M.current);
|
|
276
282
|
}), []), u(() => {
|
|
277
283
|
Me && je && O(!1);
|
|
278
284
|
}, [je, Me]), u(() => {
|
|
279
285
|
Fe && Pe && k(!1);
|
|
280
286
|
}, [Pe, Fe]);
|
|
281
287
|
let Ct = l((e) => {
|
|
282
|
-
e &&
|
|
288
|
+
e && rt.current && Date.now() < rt.current || O(e);
|
|
283
289
|
}, []), wt = l((e) => {
|
|
284
|
-
e &&
|
|
290
|
+
e && it.current && Date.now() < it.current || k(e);
|
|
285
291
|
}, []), Tt = l((e) => {
|
|
286
|
-
e &&
|
|
292
|
+
e && at.current && Date.now() < at.current || Ie(e);
|
|
287
293
|
}, []), Et = l((e, { openTimePicker: t, openEndDatePicker: n, close: r = !0 } = {}) => {
|
|
288
294
|
let i = t ?? x === "chained-times", a = n ?? x === "dates-first";
|
|
289
295
|
if (!e) {
|
|
290
296
|
r && O(!1);
|
|
291
297
|
return;
|
|
292
298
|
}
|
|
293
|
-
ne(e), (r || a) && (
|
|
299
|
+
ne(e), (r || a) && (rt.current = Date.now() + 250, O(!1)), g && e > g && _(e), i && Ne(!0), a && (M.current != null && clearTimeout(M.current), w ? (k(!0), M.current = null) : M.current = setTimeout(() => {
|
|
294
300
|
k(!0);
|
|
295
301
|
}, 100));
|
|
296
302
|
}, [
|
|
@@ -300,9 +306,9 @@ var ie = (e) => e, ae = {
|
|
|
300
306
|
ne,
|
|
301
307
|
x
|
|
302
308
|
]), Dt = l((e) => {
|
|
303
|
-
Z(e, "user"), Ne(!1),
|
|
309
|
+
Z(e, "user"), Ne(!1), M.current != null && clearTimeout(M.current), x === "chained-times" && e && m ? M.current = setTimeout(() => {
|
|
304
310
|
k(!0);
|
|
305
|
-
}, 100) :
|
|
311
|
+
}, 100) : M.current = null;
|
|
306
312
|
}, [
|
|
307
313
|
x,
|
|
308
314
|
m,
|
|
@@ -313,8 +319,8 @@ var ie = (e) => e, ae = {
|
|
|
313
319
|
let i = t ?? x === "chained-times", a = v, o = !0;
|
|
314
320
|
if (e && x === "dates-first") if (b) {
|
|
315
321
|
let t = L(e);
|
|
316
|
-
t && (
|
|
317
|
-
let n =
|
|
322
|
+
t && (N.current = t);
|
|
323
|
+
let n = j === t ? Xe : [], r = [];
|
|
318
324
|
if (B ? t === B : c(e, /* @__PURE__ */ new Date()) === 0) if (V != null) r.push(V + W);
|
|
319
325
|
else {
|
|
320
326
|
let e = /* @__PURE__ */ new Date();
|
|
@@ -327,14 +333,14 @@ var ie = (e) => e, ae = {
|
|
|
327
333
|
let t = ft(e);
|
|
328
334
|
t && (a = t, Q(t));
|
|
329
335
|
}
|
|
330
|
-
_(e), Re(void 0), n && (!r || o) && (
|
|
336
|
+
_(e), Re(void 0), n && (!r || o) && (it.current = Date.now() + 250, k(!1)), e && i && Ie(!0), e && r && o && pe && (typeof window > "u" ? pe(e, a) : requestAnimationFrame(() => pe(e, a)));
|
|
331
337
|
}, [
|
|
332
338
|
v,
|
|
333
339
|
bt,
|
|
334
340
|
V,
|
|
335
341
|
b,
|
|
336
|
-
|
|
337
|
-
|
|
342
|
+
Xe,
|
|
343
|
+
j,
|
|
338
344
|
ft,
|
|
339
345
|
w,
|
|
340
346
|
W,
|
|
@@ -350,7 +356,7 @@ var ie = (e) => e, ae = {
|
|
|
350
356
|
]), At = l((e) => {
|
|
351
357
|
Q(e, "user");
|
|
352
358
|
}, [Q]), jt = l((e) => {
|
|
353
|
-
|
|
359
|
+
N.current = void 0, Q(e, "user"), at.current = Date.now() + 250, Ie(!1), me && (typeof window > "u" ? me() : requestAnimationFrame(() => {
|
|
354
360
|
requestAnimationFrame(me);
|
|
355
361
|
}));
|
|
356
362
|
}, [me, Q]);
|
|
@@ -5,23 +5,23 @@ import a from "../../chunks/assets/whatsapp-m5e0vjnZ.js";
|
|
|
5
5
|
import { MISSING_SHOP_ADDRESS as o, MISSING_SHOP_EMAIL as s, MISSING_SHOP_PHONE_NUMBER as c, UNCONFIGURED_SHOP_MAP_CENTER as l } from "../../lib/storefrontMissingValues.js";
|
|
6
6
|
import { Button as u } from "../../ui/button.js";
|
|
7
7
|
import { Input as d } from "../../ui/input.js";
|
|
8
|
-
import { useStorefront as
|
|
9
|
-
import { Form as
|
|
10
|
-
import { Textarea as
|
|
11
|
-
import { createMarkerElement as
|
|
8
|
+
import { useStorefront as f } from "../../StorefrontProvider.js";
|
|
9
|
+
import { Form as p, FormControl as m, FormField as h, FormItem as g, FormLabel as _, FormMessage as v } from "../../ui/form.js";
|
|
10
|
+
import { Textarea as y } from "../../ui/textarea.js";
|
|
11
|
+
import { createMarkerElement as ee } from "../Map/createMarkerElement.js";
|
|
12
12
|
import { Map as b } from "../Map/index.js";
|
|
13
13
|
import { z as x } from "zod";
|
|
14
14
|
import { useMemo as S } from "react";
|
|
15
15
|
import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { toast as T } from "@rpcbase/client";
|
|
17
|
+
import { useTranslation as E } from "react-i18next";
|
|
18
|
+
import { PhoneNumberInput as D, cn as O } from "@rpcbase/ui";
|
|
19
19
|
import { Mail as k, MapPin as A, Phone as j } from "lucide-react";
|
|
20
20
|
import { useForm as M, zodResolver as N } from "@rpcbase/form";
|
|
21
21
|
//#region src/components/ContactSection/index.tsx
|
|
22
22
|
var P = (e) => e.startsWith("fr") ? "FR" : "US", F = "text-sm font-normal text-current decoration-current underline-offset-4 group-hover:underline", I = "group flex items-start gap-3 text-slate-600 transition-colors hover:text-slate-800";
|
|
23
23
|
function L({ storeSlug: L }) {
|
|
24
|
-
let { t: R, i18n: z } =
|
|
24
|
+
let { t: R, i18n: z } = E(), { storefrontConfiguration: B, mapboxToken: V } = f(), { shop: H } = B, U = r(H), W = H.emailAddress?.trim() ?? "", G = H.address?.trim() ?? "", K = n(H), q = i({
|
|
25
25
|
storefrontConfiguration: B,
|
|
26
26
|
language: z.language
|
|
27
27
|
}), J = q?.href, Y = M({
|
|
@@ -40,7 +40,7 @@ function L({ storeSlug: L }) {
|
|
|
40
40
|
}), X = S(() => {
|
|
41
41
|
let e = H.gpsCoordinates;
|
|
42
42
|
return e ? [e[1], e[0]] : null;
|
|
43
|
-
}, [H.gpsCoordinates]), Z = X ?? l, Q = S(() =>
|
|
43
|
+
}, [H.gpsCoordinates]), Z = X ?? l, Q = S(() => ee(), []), $ = S(() => X ? {
|
|
44
44
|
coords: X,
|
|
45
45
|
element: Q || void 0,
|
|
46
46
|
offset: [0, -25.5],
|
|
@@ -61,13 +61,13 @@ function L({ storeSlug: L }) {
|
|
|
61
61
|
})
|
|
62
62
|
}), i = await r.json().then((e) => t.safeParse(e)).catch(() => ({ success: !1 }));
|
|
63
63
|
if (r.ok && "success" in i && i.success && i.data.success) {
|
|
64
|
-
|
|
64
|
+
T.success(R("contact_form_success_toast")), Y.reset();
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
let a = "success" in i && i.success && i.data.error ? i.data.error : R("contact_form_error_toast");
|
|
68
|
-
|
|
68
|
+
T.error(a);
|
|
69
69
|
} catch (e) {
|
|
70
|
-
console.warn("Storefront contact form request failed", e),
|
|
70
|
+
console.warn("Storefront contact form request failed", e), T.error(R("contact_form_error_toast"));
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
73
|
return /* @__PURE__ */ C("section", {
|
|
@@ -266,45 +266,45 @@ function L({ storeSlug: L }) {
|
|
|
266
266
|
}),
|
|
267
267
|
/* @__PURE__ */ C("div", {
|
|
268
268
|
className: "mt-6",
|
|
269
|
-
children: /* @__PURE__ */ C(
|
|
269
|
+
children: /* @__PURE__ */ C(p, {
|
|
270
270
|
...Y,
|
|
271
271
|
children: /* @__PURE__ */ w("form", {
|
|
272
272
|
onSubmit: ne,
|
|
273
273
|
className: "grid gap-4",
|
|
274
274
|
children: [
|
|
275
|
-
/* @__PURE__ */ C(
|
|
275
|
+
/* @__PURE__ */ C(h, {
|
|
276
276
|
control: Y.control,
|
|
277
277
|
name: "name",
|
|
278
|
-
render: ({ field: e }) => /* @__PURE__ */ w(
|
|
279
|
-
/* @__PURE__ */ C(
|
|
280
|
-
/* @__PURE__ */ C(
|
|
278
|
+
render: ({ field: e }) => /* @__PURE__ */ w(g, { children: [
|
|
279
|
+
/* @__PURE__ */ C(_, { children: R("contact_form_name_label") }),
|
|
280
|
+
/* @__PURE__ */ C(m, { children: /* @__PURE__ */ C(d, {
|
|
281
281
|
...e,
|
|
282
282
|
placeholder: R("contact_form_name_placeholder"),
|
|
283
283
|
className: "h-11"
|
|
284
284
|
}) }),
|
|
285
|
-
/* @__PURE__ */ C(
|
|
285
|
+
/* @__PURE__ */ C(v, {})
|
|
286
286
|
] })
|
|
287
287
|
}),
|
|
288
|
-
/* @__PURE__ */ C(
|
|
288
|
+
/* @__PURE__ */ C(h, {
|
|
289
289
|
control: Y.control,
|
|
290
290
|
name: "emailAddress",
|
|
291
|
-
render: ({ field: e }) => /* @__PURE__ */ w(
|
|
292
|
-
/* @__PURE__ */ C(
|
|
293
|
-
/* @__PURE__ */ C(
|
|
291
|
+
render: ({ field: e }) => /* @__PURE__ */ w(g, { children: [
|
|
292
|
+
/* @__PURE__ */ C(_, { children: R("contact_form_email_label") }),
|
|
293
|
+
/* @__PURE__ */ C(m, { children: /* @__PURE__ */ C(d, {
|
|
294
294
|
...e,
|
|
295
295
|
type: "email",
|
|
296
296
|
placeholder: R("contact_form_email_placeholder"),
|
|
297
297
|
className: "h-11"
|
|
298
298
|
}) }),
|
|
299
|
-
/* @__PURE__ */ C(
|
|
299
|
+
/* @__PURE__ */ C(v, {})
|
|
300
300
|
] })
|
|
301
301
|
}),
|
|
302
|
-
/* @__PURE__ */ C(
|
|
302
|
+
/* @__PURE__ */ C(h, {
|
|
303
303
|
control: Y.control,
|
|
304
304
|
name: "phoneNumber",
|
|
305
|
-
render: ({ field: e, fieldState: t }) => /* @__PURE__ */ w(
|
|
306
|
-
/* @__PURE__ */ C(
|
|
307
|
-
/* @__PURE__ */ C(
|
|
305
|
+
render: ({ field: e, fieldState: t }) => /* @__PURE__ */ w(g, { children: [
|
|
306
|
+
/* @__PURE__ */ C(_, { children: R("contact_form_phone_label") }),
|
|
307
|
+
/* @__PURE__ */ C(m, { children: /* @__PURE__ */ C(D, {
|
|
308
308
|
name: e.name,
|
|
309
309
|
value: e.value ?? "",
|
|
310
310
|
onBlur: e.onBlur,
|
|
@@ -316,27 +316,27 @@ function L({ storeSlug: L }) {
|
|
|
316
316
|
locale: z.language,
|
|
317
317
|
placeholder: R("contact_form_phone_placeholder"),
|
|
318
318
|
className: "relative",
|
|
319
|
-
inputClassName:
|
|
320
|
-
renderValidationMessage: ({ message: e }) => t.error?.message ? null : /* @__PURE__ */ C(
|
|
319
|
+
inputClassName: O("flex h-11 w-full rounded-md border border-input bg-background py-2 text-base ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", t.error && "border-destructive focus-visible:ring-destructive"),
|
|
320
|
+
renderValidationMessage: ({ message: e }) => t.error?.message ? null : /* @__PURE__ */ C(v, {
|
|
321
321
|
style: { top: "100%" },
|
|
322
322
|
children: /* @__PURE__ */ C("span", { children: e })
|
|
323
323
|
})
|
|
324
324
|
}) }),
|
|
325
|
-
t.error?.message ? /* @__PURE__ */ C(
|
|
325
|
+
t.error?.message ? /* @__PURE__ */ C(v, {}) : null
|
|
326
326
|
] })
|
|
327
327
|
}),
|
|
328
|
-
/* @__PURE__ */ C(
|
|
328
|
+
/* @__PURE__ */ C(h, {
|
|
329
329
|
control: Y.control,
|
|
330
330
|
name: "message",
|
|
331
|
-
render: ({ field: e }) => /* @__PURE__ */ w(
|
|
332
|
-
/* @__PURE__ */ C(
|
|
333
|
-
/* @__PURE__ */ C(
|
|
331
|
+
render: ({ field: e }) => /* @__PURE__ */ w(g, { children: [
|
|
332
|
+
/* @__PURE__ */ C(_, { children: R("contact_form_message_label") }),
|
|
333
|
+
/* @__PURE__ */ C(m, { children: /* @__PURE__ */ C(y, {
|
|
334
334
|
...e,
|
|
335
335
|
rows: 5,
|
|
336
336
|
placeholder: R("contact_form_message_placeholder"),
|
|
337
337
|
className: "min-h-[132px]"
|
|
338
338
|
}) }),
|
|
339
|
-
/* @__PURE__ */ C(
|
|
339
|
+
/* @__PURE__ */ C(v, {})
|
|
340
340
|
] })
|
|
341
341
|
}),
|
|
342
342
|
/* @__PURE__ */ w("div", {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { formatContractSaleDocumentLabel as e } from "./language.js";
|
|
2
2
|
import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useTranslation as i } from "react-i18next";
|
|
4
|
+
import { cn as a } from "@rpcbase/ui";
|
|
5
5
|
//#region src/components/ContractSaleDocument/DocumentAcceptanceSection.tsx
|
|
6
6
|
function o({ saleDocument: o, documentLanguage: s, formatDate: c, className: l }) {
|
|
7
|
-
let { t: u } =
|
|
7
|
+
let { t: u } = i(), d = (t, n = {}) => e(u, s, t, n), f = o.acceptance?.mode === "signature" ? o.acceptance : null, p = o.acceptance?.mode === "acceptance" ? o.acceptance : null, m = o.acceptanceLevel === "signature" || f !== null;
|
|
8
8
|
return o.acceptanceLevel === "none" && !o.acceptance ? null : /* @__PURE__ */ n("section", {
|
|
9
|
-
className:
|
|
9
|
+
className: a("mt-auto border-t border-border pt-8", l),
|
|
10
10
|
"data-testid": "contract-sale-document-acceptance-section",
|
|
11
11
|
children: m ? /* @__PURE__ */ r(t, { children: [/* @__PURE__ */ n("p", {
|
|
12
12
|
className: "mb-12 text-center text-sm text-muted-foreground",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ScrollArea as e } from "../../chunks/pkg/ui/dist/ScrollArea-
|
|
1
|
+
import { ScrollArea as e } from "../../chunks/pkg/ui/dist/ScrollArea-BqLd0xZj.js";
|
|
2
2
|
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
3
|
//#region src/components/ContractSaleDocument/ThumbnailSidebar.tsx
|
|
4
4
|
function r({ thumbnails: r, activePage: i, onThumbnailClick: a, totalPages: o, heightClassName: s = "h-dvh", contentClassName: c, isLoading: l = !1 }) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AddressAutocompleteInput as e } from "../AddressAutocompleteInput/index.js";
|
|
2
2
|
import { useEffect as t, useRef as n, useState as r } from "react";
|
|
3
3
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { useTranslation as o } from "react-i18next";
|
|
5
|
+
import { cn as s } from "@rpcbase/ui";
|
|
6
6
|
//#region src/components/DeliveryAddressSelector/index.tsx
|
|
7
7
|
function c({ startAddress: c = "", onStartAddressChange: l, returnAddress: u = "", onReturnAddressChange: d, startAddressLabel: f, startAddressPlaceholder: p, returnAddressLabel: m, returnAddressPlaceholder: h, returnAddressHelper: g, open: _ = !0, className: v, inputClassName: y, labelClassName: b, testIdPrefix: x = "storefront-delivery-address", googleMapsApiKey: S, locationRestriction: C, allowedTypes: w }) {
|
|
8
|
-
let { t: T } =
|
|
8
|
+
let { t: T } = o(), [E, D] = r(_), O = n(_);
|
|
9
9
|
t(() => {
|
|
10
10
|
O.current !== _ && (O.current = _, D(!1));
|
|
11
11
|
}, [_]);
|
|
@@ -25,12 +25,12 @@ function c({ startAddress: c = "", onStartAddressChange: l, returnAddress: u = "
|
|
|
25
25
|
labelClassName: b
|
|
26
26
|
};
|
|
27
27
|
return /* @__PURE__ */ i("div", {
|
|
28
|
-
className:
|
|
28
|
+
className: s("flow-root transition-[max-height] duration-300 ease-in-out", _ && E ? "overflow-visible" : "overflow-hidden", _ ? "max-h-[360px]" : "max-h-0"),
|
|
29
29
|
"aria-hidden": !_,
|
|
30
30
|
"data-testid": x,
|
|
31
31
|
onTransitionEnd: k,
|
|
32
32
|
children: /* @__PURE__ */ a("div", {
|
|
33
|
-
className:
|
|
33
|
+
className: s("flex flex-col gap-4 pt-1 sm:flex-row", v, !_ && "pointer-events-none"),
|
|
34
34
|
children: [/* @__PURE__ */ i("div", {
|
|
35
35
|
className: "min-w-0 flex-1",
|
|
36
36
|
children: /* @__PURE__ */ i(e, {
|
|
@@ -3,8 +3,8 @@ import n from "../../chunks/assets/whatsapp-m5e0vjnZ.js";
|
|
|
3
3
|
import { MISSING_SHOP_ADDRESS as r, MISSING_SHOP_EMAIL as i, MISSING_SHOP_PHONE_NUMBER as a } from "../../lib/storefrontMissingValues.js";
|
|
4
4
|
import { BusinessHours as o } from "./BusinessHours.js";
|
|
5
5
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { useTranslation as l } from "react-i18next";
|
|
7
|
+
import { cn as u } from "@rpcbase/ui";
|
|
8
8
|
import { Clock as d, Mail as f, MapPin as p, Phone as m } from "lucide-react";
|
|
9
9
|
//#region src/components/Footer/index.tsx
|
|
10
10
|
var h = "group inline-flex gap-2 text-sm font-normal text-slate-600 decoration-current underline-offset-4 transition-colors hover:text-slate-800 hover:underline", g = "mt-0.5 inline-flex h-4 w-4 flex-shrink-0 items-center justify-center text-current transition-colors", _ = (e) => (Math.trunc(e) % 7 + 7) % 7, v = (e) => Array.isArray(e) ? e.map((e) => ({
|
|
@@ -26,7 +26,7 @@ var h = "group inline-flex gap-2 text-sm font-normal text-slate-600 decoration-c
|
|
|
26
26
|
}))
|
|
27
27
|
})) : [];
|
|
28
28
|
function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S, openingHoursOverrides: C }) {
|
|
29
|
-
let { t: w } =
|
|
29
|
+
let { t: w } = l(), T = t(_), E = _?.emailAddress?.trim() ?? "", D = _?.address?.trim() ?? "", O = e(_), k = v(S), A = y(C), j = k.length > 0;
|
|
30
30
|
return /* @__PURE__ */ s("footer", {
|
|
31
31
|
className: "border-t bg-white",
|
|
32
32
|
children: /* @__PURE__ */ c("div", {
|
|
@@ -51,13 +51,13 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
51
51
|
className: "grid gap-2",
|
|
52
52
|
children: [
|
|
53
53
|
b ? /* @__PURE__ */ c("a", {
|
|
54
|
-
className:
|
|
54
|
+
className: u(h, "items-center"),
|
|
55
55
|
href: b,
|
|
56
56
|
target: "_blank",
|
|
57
57
|
rel: "noreferrer",
|
|
58
58
|
children: [
|
|
59
59
|
/* @__PURE__ */ s("span", {
|
|
60
|
-
className:
|
|
60
|
+
className: u(g, "h-5 w-5"),
|
|
61
61
|
children: /* @__PURE__ */ s("img", {
|
|
62
62
|
src: n,
|
|
63
63
|
className: "h-5 w-5 shrink-0",
|
|
@@ -73,7 +73,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
73
73
|
]
|
|
74
74
|
}) : null,
|
|
75
75
|
T ? /* @__PURE__ */ c("a", {
|
|
76
|
-
className:
|
|
76
|
+
className: u(h, "items-center"),
|
|
77
77
|
href: T.href,
|
|
78
78
|
"aria-label": T.phoneDisplay,
|
|
79
79
|
children: [/* @__PURE__ */ s("span", {
|
|
@@ -84,7 +84,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
84
84
|
})
|
|
85
85
|
}), /* @__PURE__ */ s("span", { children: T.phoneDisplay })]
|
|
86
86
|
}) : /* @__PURE__ */ c("div", {
|
|
87
|
-
className:
|
|
87
|
+
className: u(h, "items-center text-destructive hover:text-destructive hover:no-underline"),
|
|
88
88
|
children: [/* @__PURE__ */ s("span", {
|
|
89
89
|
className: g,
|
|
90
90
|
children: /* @__PURE__ */ s(m, {
|
|
@@ -94,7 +94,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
94
94
|
}), /* @__PURE__ */ s("span", { children: a })]
|
|
95
95
|
}),
|
|
96
96
|
E ? /* @__PURE__ */ c("a", {
|
|
97
|
-
className:
|
|
97
|
+
className: u(h, "items-center"),
|
|
98
98
|
href: `mailto:${E}`,
|
|
99
99
|
"aria-label": E,
|
|
100
100
|
children: [/* @__PURE__ */ s("span", {
|
|
@@ -105,7 +105,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
105
105
|
})
|
|
106
106
|
}), /* @__PURE__ */ s("span", { children: E })]
|
|
107
107
|
}) : /* @__PURE__ */ c("div", {
|
|
108
|
-
className:
|
|
108
|
+
className: u(h, "items-center text-destructive hover:text-destructive hover:no-underline"),
|
|
109
109
|
children: [/* @__PURE__ */ s("span", {
|
|
110
110
|
className: g,
|
|
111
111
|
children: /* @__PURE__ */ s(f, {
|
|
@@ -115,7 +115,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
115
115
|
}), /* @__PURE__ */ s("span", { children: i })]
|
|
116
116
|
}),
|
|
117
117
|
O && D ? /* @__PURE__ */ c("a", {
|
|
118
|
-
className:
|
|
118
|
+
className: u(h, "items-start"),
|
|
119
119
|
href: O,
|
|
120
120
|
target: "_blank",
|
|
121
121
|
rel: "noreferrer",
|
|
@@ -127,7 +127,7 @@ function b({ shop: _, whatsappHref: b, whatsappPhoneDisplay: x, openingHours: S,
|
|
|
127
127
|
})
|
|
128
128
|
}), /* @__PURE__ */ s("span", { children: D })]
|
|
129
129
|
}) : /* @__PURE__ */ c("div", {
|
|
130
|
-
className:
|
|
130
|
+
className: u(h, "items-start text-destructive hover:text-destructive hover:no-underline"),
|
|
131
131
|
children: [/* @__PURE__ */ s("span", {
|
|
132
132
|
className: g,
|
|
133
133
|
children: /* @__PURE__ */ s(p, {
|
|
@@ -2,14 +2,14 @@ import "../../lib/storefrontMissingValues.js";
|
|
|
2
2
|
import { DeliveryAddressSelector as e } from "../DeliveryAddressSelector/index.js";
|
|
3
3
|
import { RadioGroup as t, RadioGroupItem as n } from "../../ui/radio-group.js";
|
|
4
4
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { useTranslation as a } from "react-i18next";
|
|
6
|
+
import { cn as o } from "@rpcbase/ui";
|
|
7
7
|
import { MapPin as s, Store as c, Truck as l } from "lucide-react";
|
|
8
8
|
//#region src/components/FulfillmentSection/index.tsx
|
|
9
9
|
function u({ value: u, onValueChange: d, pickupAddress: f, deliveryEnabled: p, deliveryDisabledReason: m, startAddress: h, onStartAddressChange: g, endAddress: _, onEndAddressChange: v, className: y, showPickupAddressWhenPickupOnly: b = !0, testIdPrefix: x = "storefront-fulfillment", googleMapsApiKey: S, deliveryAddressLocationRestriction: C, deliveryAddressAllowedTypes: w, showDeliveryAddressSelector: T = !0 }) {
|
|
10
|
-
let { t: E } =
|
|
10
|
+
let { t: E } = a(), D = f?.trim() ?? "", O = D.length === 0, k = D || "[Missing shop address]", A = m?.trim() ?? "", j = p || A.length > 0, M = u === "delivery" && p ? "delivery" : "pickup";
|
|
11
11
|
return j ? /* @__PURE__ */ i("div", {
|
|
12
|
-
className:
|
|
12
|
+
className: o("grid gap-3", y),
|
|
13
13
|
"data-testid": x,
|
|
14
14
|
children: [/* @__PURE__ */ i(t, {
|
|
15
15
|
value: M,
|
|
@@ -18,7 +18,7 @@ function u({ value: u, onValueChange: d, pickupAddress: f, deliveryEnabled: p, d
|
|
|
18
18
|
},
|
|
19
19
|
className: "grid gap-2",
|
|
20
20
|
children: [/* @__PURE__ */ i("label", {
|
|
21
|
-
className:
|
|
21
|
+
className: o("flex items-start gap-3 rounded-xl border p-3 transition", M === "pickup" ? "border-slate-900 bg-slate-50" : "border-slate-200 bg-white"),
|
|
22
22
|
"data-testid": `${x}-pickup`,
|
|
23
23
|
children: [
|
|
24
24
|
/* @__PURE__ */ r(n, {
|
|
@@ -36,13 +36,13 @@ function u({ value: u, onValueChange: d, pickupAddress: f, deliveryEnabled: p, d
|
|
|
36
36
|
className: "text-sm font-medium text-slate-950",
|
|
37
37
|
children: E("booking_pickup_label")
|
|
38
38
|
}), /* @__PURE__ */ r("span", {
|
|
39
|
-
className:
|
|
39
|
+
className: o("text-xs text-slate-600", O && "text-destructive"),
|
|
40
40
|
children: k
|
|
41
41
|
})]
|
|
42
42
|
})
|
|
43
43
|
]
|
|
44
44
|
}), /* @__PURE__ */ i("label", {
|
|
45
|
-
className:
|
|
45
|
+
className: o("flex items-start gap-3 rounded-xl border p-3 transition", p ? M === "delivery" ? "border-slate-900 bg-slate-50" : "border-slate-200 bg-white" : "cursor-not-allowed border-slate-200 bg-white opacity-60"),
|
|
46
46
|
"aria-disabled": !p,
|
|
47
47
|
"data-testid": `${x}-delivery`,
|
|
48
48
|
children: [
|
|
@@ -82,10 +82,10 @@ function u({ value: u, onValueChange: d, pickupAddress: f, deliveryEnabled: p, d
|
|
|
82
82
|
allowedTypes: w
|
|
83
83
|
}) : null]
|
|
84
84
|
}) : b ? /* @__PURE__ */ i("div", {
|
|
85
|
-
className:
|
|
85
|
+
className: o("flex items-center gap-2 text-xs text-slate-600", O && "text-destructive", y),
|
|
86
86
|
"data-testid": `${x}-pickup-address`,
|
|
87
87
|
children: [/* @__PURE__ */ r(s, {
|
|
88
|
-
className:
|
|
88
|
+
className: o("h-4 w-4 shrink-0 text-slate-900", O && "text-destructive"),
|
|
89
89
|
"aria-hidden": "true"
|
|
90
90
|
}), /* @__PURE__ */ r("span", { children: k })]
|
|
91
91
|
}) : null;
|