@loczer/storefront-sdk 0.167.0 → 0.168.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/booking-engine/dist/schemas/base-booking-Dlgnuu6k.js +74 -0
- package/dist/chunks/ui/dist/{Dialog-COr6fnKd.js → Dialog-CR_9vgBQ.js} +1 -1
- package/dist/chunks/ui/dist/{MorphingModalWizard-BuRND-yE.js → MorphingModalWizard-CPLr3dh2.js} +3 -3
- package/dist/chunks/ui/dist/{ResponsiveDialog-D8YzB_3J.js → ResponsiveDialog-DhFgsW_0.js} +2 -2
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/Icon-OkokCq-b.js +37 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/context-C4oH64Wf.js +5 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/createLucideIcon-BI4k0Tt0.js +23 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/icons/{arrow-left-asE1l_Qw.js → arrow-left-DMMNgJEB.js} +1 -1
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/icons/{x-Cdi8GS7U.js → x-BDxS-rYd.js} +1 -1
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp-Lff9pF65.js +9 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses-HV-Vu34x.js +4 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase-BZAgYi2F.js +7 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase-DsnfsuSi.js +4 -0
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase-DZxyG2X3.js +8 -0
- package/dist/components/BookingBikeVariantDialog/index.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartDateField.js +1 -1
- package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.js +1 -1
- package/dist/components/Header/index.js +19 -19
- package/dist/components/StorefrontCancellationPolicyNotice/index.js +1 -1
- package/dist/components/StorefrontPopupMessages/index.js +1 -1
- package/dist/i18n/en.d.ts +0 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +2 -3
- package/dist/i18n/fr.d.ts +0 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +5 -6
- package/dist/index.d.ts +0 -10
- package/dist/index.js +2 -2
- package/dist/lib/checkoutSubmit.js +1 -1
- package/dist/storefront.css +1 -1
- package/dist/storefrontSchemas.js +1 -1
- package/package.json +2 -2
- package/dist/chunks/booking-engine/dist/schemas/base-booking-BMAjsw9r.js +0 -78
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/Icon-BNiQfVqr.js +0 -35
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/createLucideIcon-5_J8fxOF.js +0 -21
- package/dist/chunks/ui/dist/node_modules/lucide-react/dist/esm/shared/src/utils-nzQUBs6v.js +0 -18
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z as o } from "zod";
|
|
2
|
+
import { identifierSchema as i, isoDateTimeSchema as n, ulidStringSchema as p, objectIdStringSchema as c } from "../models/types-DLcvzW5b.js";
|
|
3
|
+
import { productKindSchema as s } from "../models/Product.shared-BiDGmurZ.js";
|
|
4
|
+
import { moneyMinorSchema as r } from "./money-Dy4b9loa.js";
|
|
5
|
+
import { richTextSchema as m } from "./rich-text-CqXhNDN3.js";
|
|
6
|
+
import { cancellationPolicySchema as a } from "./booking-engine-configuration-DTJD2G9w.js";
|
|
7
|
+
const l = o.enum([
|
|
8
|
+
"pending_approval",
|
|
9
|
+
"pending_payment",
|
|
10
|
+
"confirmed",
|
|
11
|
+
"active",
|
|
12
|
+
"completed",
|
|
13
|
+
"canceled",
|
|
14
|
+
"expired"
|
|
15
|
+
]), d = o.object({
|
|
16
|
+
_id: i,
|
|
17
|
+
productId: i,
|
|
18
|
+
kind: s,
|
|
19
|
+
qty: o.number().int().positive(),
|
|
20
|
+
productVariantId: i.optional()
|
|
21
|
+
}), u = o.object({
|
|
22
|
+
name: o.preprocess(
|
|
23
|
+
(e) => {
|
|
24
|
+
if (typeof e != "string") return;
|
|
25
|
+
const t = e.trim();
|
|
26
|
+
return t.length > 0 ? t : void 0;
|
|
27
|
+
},
|
|
28
|
+
o.string().min(1).optional()
|
|
29
|
+
),
|
|
30
|
+
email: o.preprocess(
|
|
31
|
+
(e) => {
|
|
32
|
+
if (typeof e != "string") return;
|
|
33
|
+
const t = e.trim();
|
|
34
|
+
return t.length > 0 ? t : void 0;
|
|
35
|
+
},
|
|
36
|
+
o.string().email().optional()
|
|
37
|
+
),
|
|
38
|
+
phone: o.preprocess(
|
|
39
|
+
(e) => {
|
|
40
|
+
if (typeof e != "string") return;
|
|
41
|
+
const t = e.trim();
|
|
42
|
+
return t.length > 0 ? t : void 0;
|
|
43
|
+
},
|
|
44
|
+
o.string().min(1).optional()
|
|
45
|
+
),
|
|
46
|
+
message: m.optional()
|
|
47
|
+
}), v = o.object({
|
|
48
|
+
_id: c,
|
|
49
|
+
externalId: p,
|
|
50
|
+
state: l,
|
|
51
|
+
shopId: i,
|
|
52
|
+
customer: u,
|
|
53
|
+
deliveryOption: o.enum(["delivery", "pickup"]),
|
|
54
|
+
start: n,
|
|
55
|
+
end: n,
|
|
56
|
+
startAddress: o.string().optional(),
|
|
57
|
+
endAddress: o.string().optional(),
|
|
58
|
+
items: o.array(d),
|
|
59
|
+
couponCode: o.string().min(1).optional(),
|
|
60
|
+
couponDiscountRate: o.number().min(0).max(1).optional(),
|
|
61
|
+
couponDiscountAmountUnits: r.optional(),
|
|
62
|
+
couponAutoApplied: o.boolean().optional(),
|
|
63
|
+
couponPriceRuleId: i.optional(),
|
|
64
|
+
totalPriceUnits: r.optional(),
|
|
65
|
+
cancellationPolicySnapshot: a.optional(),
|
|
66
|
+
cancellationPolicyOverride: a.optional(),
|
|
67
|
+
createdAt: n,
|
|
68
|
+
updatedAt: n
|
|
69
|
+
});
|
|
70
|
+
export {
|
|
71
|
+
d as baseBookingItemSchema,
|
|
72
|
+
v as baseBookingSchema,
|
|
73
|
+
l as baseBookingStateSchema
|
|
74
|
+
};
|
|
@@ -4,7 +4,7 @@ import { cn as m } from "./lib/utils-B6zhukbw.js";
|
|
|
4
4
|
import { useBodyPointerEventsLock as S } from "./lib/body-pointer-events-CyPsDvc9.js";
|
|
5
5
|
import { createAutoFocusHandler as C, composeRefs as w } from "./lib/slot-CklkPb7k.js";
|
|
6
6
|
import { SsrHydratablePortal as H } from "./SsrHydratablePortal/index-Ue09qUAi.js";
|
|
7
|
-
import O from "./node_modules/lucide-react/dist/esm/icons/x-
|
|
7
|
+
import O from "./node_modules/lucide-react/dist/esm/icons/x-BDxS-rYd.js";
|
|
8
8
|
import { DialogBackdrop as z } from "./node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop-dfhPbhun.js";
|
|
9
9
|
import { DialogPortal as I } from "./node_modules/@base-ui/react/esm/dialog/portal/DialogPortal-DCoXyUCa.js";
|
|
10
10
|
import { DialogPopup as T } from "./node_modules/@base-ui/react/esm/dialog/popup/DialogPopup-Ce1MaHNd.js";
|
package/dist/chunks/ui/dist/{MorphingModalWizard-BuRND-yE.js → MorphingModalWizard-CPLr3dh2.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
2
|
import { createContext as o, useContext as r } from "react";
|
|
3
3
|
import "./Button-CEl4MEmL.js";
|
|
4
|
-
import "./Dialog-
|
|
4
|
+
import "./Dialog-CR_9vgBQ.js";
|
|
5
5
|
import "./node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRoot-Cw_gyhhI.js";
|
|
6
6
|
import "./node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewport-CadjBxEp.js";
|
|
7
7
|
import "./node_modules/@base-ui/react/esm/scroll-area/corner/ScrollAreaCorner-z0cNScNF.js";
|
|
@@ -22,8 +22,8 @@ import "./node_modules/framer-motion/dist/es/render/dom/utils/filter-props-DZcjZ
|
|
|
22
22
|
import "./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext-BWutRI4l.js";
|
|
23
23
|
import "./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id-CNQuVmXa.js";
|
|
24
24
|
import "./node_modules/motion-dom/dist/es/projection/node/create-projection-node-DL2q-YuA.js";
|
|
25
|
-
import "./node_modules/lucide-react/dist/esm/icons/arrow-left-
|
|
26
|
-
import "./node_modules/lucide-react/dist/esm/icons/x-
|
|
25
|
+
import "./node_modules/lucide-react/dist/esm/icons/arrow-left-DMMNgJEB.js";
|
|
26
|
+
import "./node_modules/lucide-react/dist/esm/icons/x-BDxS-rYd.js";
|
|
27
27
|
const t = o(null), k = () => r(t);
|
|
28
28
|
export {
|
|
29
29
|
k as useMorphingModalWizardOverlayLayer
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as o, jsxs as R } from "react/jsx-runtime";
|
|
2
2
|
import * as i from "react";
|
|
3
|
-
import { DialogTrigger as h, DialogClose as w, DialogContent as b, DialogTitle as y, DialogDescription as M, Dialog as E, DialogHeader as O, DialogFooter as T } from "./Dialog-
|
|
3
|
+
import { DialogTrigger as h, DialogClose as w, DialogContent as b, DialogTitle as y, DialogDescription as M, Dialog as E, DialogHeader as O, DialogFooter as T } from "./Dialog-CR_9vgBQ.js";
|
|
4
4
|
import { DrawerTrigger as I, DrawerClose as N, DrawerContent as _, DrawerTitle as x, DrawerDescription as $, Drawer as H, DrawerHeader as P, DrawerFooter as k } from "./Drawer/index-BxM7gmh_.js";
|
|
5
5
|
import { useMediaQuery as B } from "./lib/useMediaQuery-DhKGnWgn.js";
|
|
6
6
|
import { cn as m } from "./lib/utils-B6zhukbw.js";
|
|
7
|
-
import L from "./node_modules/lucide-react/dist/esm/icons/x-
|
|
7
|
+
import L from "./node_modules/lucide-react/dist/esm/icons/x-BDxS-rYd.js";
|
|
8
8
|
const S = 639, j = `(max-width: ${S}px)`, C = i.createContext(null);
|
|
9
9
|
function n(e) {
|
|
10
10
|
const s = i.useContext(C);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { forwardRef as b, createElement as m } from "react";
|
|
2
|
+
import t from "./defaultAttributes-C1BTxN61.js";
|
|
3
|
+
import { hasA11yProp as g } from "./shared/src/utils/hasA11yProp-Lff9pF65.js";
|
|
4
|
+
import { mergeClasses as w } from "./shared/src/utils/mergeClasses-HV-Vu34x.js";
|
|
5
|
+
import { useLucideContext as x } from "./context-C4oH64Wf.js";
|
|
6
|
+
const S = b(
|
|
7
|
+
({ color: d, size: e, strokeWidth: s, absoluteStrokeWidth: h, className: c = "", children: r, iconNode: l, ...i }, f) => {
|
|
8
|
+
const {
|
|
9
|
+
size: o = 24,
|
|
10
|
+
strokeWidth: a = 2,
|
|
11
|
+
absoluteStrokeWidth: u = !1,
|
|
12
|
+
color: n = "currentColor",
|
|
13
|
+
className: p = ""
|
|
14
|
+
} = x() ?? {}, k = h ?? u ? Number(s ?? a) * 24 / Number(e ?? o) : s ?? a;
|
|
15
|
+
return m(
|
|
16
|
+
"svg",
|
|
17
|
+
{
|
|
18
|
+
ref: f,
|
|
19
|
+
...t,
|
|
20
|
+
width: e ?? o ?? t.width,
|
|
21
|
+
height: e ?? o ?? t.height,
|
|
22
|
+
stroke: d ?? n,
|
|
23
|
+
strokeWidth: k,
|
|
24
|
+
className: w("lucide", p, c),
|
|
25
|
+
...!r && !g(i) && { "aria-hidden": "true" },
|
|
26
|
+
...i
|
|
27
|
+
},
|
|
28
|
+
[
|
|
29
|
+
...l.map(([N, W]) => m(N, W)),
|
|
30
|
+
...Array.isArray(r) ? r : [r]
|
|
31
|
+
]
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
export {
|
|
36
|
+
S as default
|
|
37
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { forwardRef as c, createElement as f } from "react";
|
|
2
|
+
import { mergeClasses as i } from "./shared/src/utils/mergeClasses-HV-Vu34x.js";
|
|
3
|
+
import { toKebabCase as l } from "./shared/src/utils/toKebabCase-DsnfsuSi.js";
|
|
4
|
+
import { toPascalCase as o } from "./shared/src/utils/toPascalCase-DZxyG2X3.js";
|
|
5
|
+
import p from "./Icon-OkokCq-b.js";
|
|
6
|
+
const b = (a, r) => {
|
|
7
|
+
const e = c(
|
|
8
|
+
({ className: s, ...m }, t) => f(p, {
|
|
9
|
+
ref: t,
|
|
10
|
+
iconNode: r,
|
|
11
|
+
className: i(
|
|
12
|
+
`lucide-${l(o(a))}`,
|
|
13
|
+
`lucide-${a}`,
|
|
14
|
+
s
|
|
15
|
+
),
|
|
16
|
+
...m
|
|
17
|
+
})
|
|
18
|
+
);
|
|
19
|
+
return e.displayName = o(a), e;
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
b as default
|
|
23
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as i } from "react/jsx-runtime";
|
|
2
2
|
import { useState as O, useEffect as q } from "react";
|
|
3
3
|
import { useMediaQuery as K } from "@rpcbase/client";
|
|
4
|
-
import { RESPONSIVE_DIALOG_MOBILE_MEDIA_QUERY as T, ResponsiveDialog as G, ResponsiveDialogContent as W, ResponsiveDialogHeader as F, ResponsiveDialogTitle as H, ResponsiveDialogDescription as U, ResponsiveDialogFooter as X } from "../../chunks/ui/dist/ResponsiveDialog-
|
|
4
|
+
import { RESPONSIVE_DIALOG_MOBILE_MEDIA_QUERY as T, ResponsiveDialog as G, ResponsiveDialogContent as W, ResponsiveDialogHeader as F, ResponsiveDialogTitle as H, ResponsiveDialogDescription as U, ResponsiveDialogFooter as X } from "../../chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
5
5
|
import { cn as S } from "@rpcbase/ui";
|
|
6
6
|
import { Bike as Y, CheckCircle2 as I, Plus as V } from "lucide-react";
|
|
7
7
|
import { useTranslation as Z } from "react-i18next";
|
|
@@ -2,7 +2,7 @@ import { jsxs as ne, jsx as s } from "react/jsx-runtime";
|
|
|
2
2
|
import { differenceInCalendarDays as me } from "date-fns";
|
|
3
3
|
import { createContext as pe, useRef as F, useState as X, useEffect as v, useContext as ye } from "react";
|
|
4
4
|
import { cn as k, DayPickerField as De } from "@rpcbase/ui";
|
|
5
|
-
import { useMorphingModalWizardOverlayLayer as Ee } from "../../../chunks/ui/dist/MorphingModalWizard-
|
|
5
|
+
import { useMorphingModalWizardOverlayLayer as Ee } from "../../../chunks/ui/dist/MorphingModalWizard-CPLr3dh2.js";
|
|
6
6
|
import { DayPicker as he } from "../../../ui/day-picker.js";
|
|
7
7
|
import { Label as ve } from "../../../ui/label.js";
|
|
8
8
|
import { Provider as be, Root as ge, TooltipTrigger as Me, Content as ke } from "../../../ui/tooltip.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as M, Fragment as w, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as P, useEffect as N } from "react";
|
|
3
3
|
import { cn as T, HourPickerField as V } from "@rpcbase/ui";
|
|
4
|
-
import { useMorphingModalWizardOverlayLayer as H } from "../../../chunks/ui/dist/MorphingModalWizard-
|
|
4
|
+
import { useMorphingModalWizardOverlayLayer as H } from "../../../chunks/ui/dist/MorphingModalWizard-CPLr3dh2.js";
|
|
5
5
|
import { Label as U } from "../../../ui/label.js";
|
|
6
6
|
import { useBookingPeriod as A } from "../BookingPeriodContext.js";
|
|
7
7
|
import { BookingPeriodFieldErrorMessage as j } from "./BookingPeriodFieldErrorMessage.js";
|
|
@@ -2,7 +2,7 @@ import { jsxs as I, jsx as u } from "react/jsx-runtime";
|
|
|
2
2
|
import { useRef as L, useState as A, useEffect as H } from "react";
|
|
3
3
|
import { DayButton as U } from "react-day-picker";
|
|
4
4
|
import { cn as f, DayPickerField as K } from "@rpcbase/ui";
|
|
5
|
-
import { useMorphingModalWizardOverlayLayer as R } from "../../../chunks/ui/dist/MorphingModalWizard-
|
|
5
|
+
import { useMorphingModalWizardOverlayLayer as R } from "../../../chunks/ui/dist/MorphingModalWizard-CPLr3dh2.js";
|
|
6
6
|
import { DayPicker as v } from "../../../ui/day-picker.js";
|
|
7
7
|
import { Label as _ } from "../../../ui/label.js";
|
|
8
8
|
import { useBookingPeriod as $ } from "../BookingPeriodContext.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as E, Fragment as B, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as O, useEffect as S } from "react";
|
|
3
3
|
import { cn as T, HourPickerField as R } from "@rpcbase/ui";
|
|
4
|
-
import { useMorphingModalWizardOverlayLayer as w } from "../../../chunks/ui/dist/MorphingModalWizard-
|
|
4
|
+
import { useMorphingModalWizardOverlayLayer as w } from "../../../chunks/ui/dist/MorphingModalWizard-CPLr3dh2.js";
|
|
5
5
|
import { Label as P } from "../../../ui/label.js";
|
|
6
6
|
import { useBookingPeriod as H } from "../BookingPeriodContext.js";
|
|
7
7
|
import { BookingPeriodFieldErrorMessage as U } from "./BookingPeriodFieldErrorMessage.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { useMediaQuery as
|
|
3
|
-
import { useParams as
|
|
4
|
-
import { useScrollHideOnDown as E, cn as
|
|
2
|
+
import { useMediaQuery as A, useThrottledMeasure as H } from "@rpcbase/client";
|
|
3
|
+
import { useParams as W, useLocation as q, Link as s } from "@rpcbase/router";
|
|
4
|
+
import { useScrollHideOnDown as E, cn as $ } from "@rpcbase/ui";
|
|
5
5
|
import { Bike as F, ShoppingCart as O, ArrowRight as Y } from "lucide-react";
|
|
6
6
|
import { useTranslation as C } from "react-i18next";
|
|
7
7
|
import G from "../../chunks/assets/whatsapp.svg-grlzka-t.js";
|
|
@@ -10,13 +10,13 @@ import { resolveBookingSearchParamsFromSessionStorage as V } from "../../lib/boo
|
|
|
10
10
|
import { Badge as D } from "../../ui/badge.js";
|
|
11
11
|
import { Button as g } from "../../ui/button.js";
|
|
12
12
|
import { buildStorefrontImageUrl as J } from "../../lib/storefrontImage.js";
|
|
13
|
-
import { getLocalizedValue as
|
|
14
|
-
const K = 36,
|
|
13
|
+
import { getLocalizedValue as L } from "../../localization.js";
|
|
14
|
+
const K = 36, _ = (r, a) => {
|
|
15
15
|
const l = r?.trim() ?? "";
|
|
16
|
-
return l ? J(l,
|
|
16
|
+
return l ? J(l, a ?? "") : "";
|
|
17
17
|
};
|
|
18
|
-
function de({ preset: r, storefrontConfiguration:
|
|
19
|
-
const { t:
|
|
18
|
+
function de({ preset: r, storefrontConfiguration: a, whatsappHref: l, whatsappPhoneDisplay: c }) {
|
|
19
|
+
const { t: n, i18n: m } = C(), { storeSlug: d } = W(), y = q(), { itemCount: u } = Q(), p = A("(max-width: 640px)"), [B, j] = H(), x = j?.height ?? K, I = E({
|
|
20
20
|
enabled: p,
|
|
21
21
|
thresholdPx: x
|
|
22
22
|
}), f = p && I ? `translateY(-${x}px)` : "translateY(0)", z = () => {
|
|
@@ -25,7 +25,7 @@ function de({ preset: r, storefrontConfiguration: n, whatsappHref: l, whatsappPh
|
|
|
25
25
|
}, i = `/${d ?? ""}`, b = V(
|
|
26
26
|
new URLSearchParams(y.search),
|
|
27
27
|
d
|
|
28
|
-
).toString(), o = b ? `?${b}` : "", w = `${i}/booking${o}`, U = `${i}/checkout${o}`, N =
|
|
28
|
+
).toString(), o = b ? `?${b}` : "", w = `${i}/booking${o}`, U = `${i}/checkout${o}`, N = a?.shop.name?.trim() || r.name, v = a?.workspace?.workspaceLanguage, M = L(a?.content?.tagline, m.language, v).trim() || r.tagline, P = L(a?.content?.topBannerMessage, m.language, v).trim() || n("top_bar_message"), k = _(a?.content?.logoWideImageId, d), S = _(a?.content?.logoSquareImageId, d), h = k.length > 0, R = S.length > 0;
|
|
29
29
|
return /* @__PURE__ */ t("div", { className: "sticky top-0 z-30", children: [
|
|
30
30
|
/* @__PURE__ */ e("div", { className: "transition-transform duration-300", style: { transform: f }, children: /* @__PURE__ */ e("div", { ref: B, className: "bg-slate-950 text-white", children: /* @__PURE__ */ t("div", { className: "mx-auto flex max-w-7xl items-center justify-between gap-3 px-4 py-2 text-xs sm:px-6", children: [
|
|
31
31
|
/* @__PURE__ */ e("p", { className: "flex items-center gap-2", children: /* @__PURE__ */ e("span", { children: P }) }),
|
|
@@ -46,7 +46,7 @@ function de({ preset: r, storefrontConfiguration: n, whatsappHref: l, whatsappPh
|
|
|
46
46
|
href: l,
|
|
47
47
|
target: "_blank",
|
|
48
48
|
rel: "noreferrer",
|
|
49
|
-
"aria-label":
|
|
49
|
+
"aria-label": `WhatsApp${c ? ` ${c}` : ""}`,
|
|
50
50
|
children: [
|
|
51
51
|
/* @__PURE__ */ e("img", { src: G, className: "h-5 w-5 shrink-0", alt: "", "aria-hidden": "true" }),
|
|
52
52
|
c ? /* @__PURE__ */ e("span", { children: c }) : null
|
|
@@ -62,7 +62,7 @@ function de({ preset: r, storefrontConfiguration: n, whatsappHref: l, whatsappPh
|
|
|
62
62
|
style: { transform: f },
|
|
63
63
|
children: /* @__PURE__ */ t("div", { className: "mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3 sm:px-6", children: [
|
|
64
64
|
/* @__PURE__ */ t(s, { to: i, className: "flex min-w-0 items-center gap-3", children: [
|
|
65
|
-
R && !h ? /* @__PURE__ */ e("span", { className: "inline-flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-slate-200 bg-white", children: /* @__PURE__ */ e("img", { src:
|
|
65
|
+
R && !h ? /* @__PURE__ */ e("span", { className: "inline-flex h-9 w-9 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-slate-200 bg-white", children: /* @__PURE__ */ e("img", { src: S, alt: "", className: "h-full w-full object-contain", "aria-hidden": "true" }) }) : /* @__PURE__ */ e("span", { className: $("inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-slate-950 text-white", h && "hidden"), children: /* @__PURE__ */ e(F, { className: "h-5 w-5", "aria-hidden": "true" }) }),
|
|
66
66
|
/* @__PURE__ */ t("span", { className: "flex min-w-0 flex-col leading-tight", children: [
|
|
67
67
|
h ? /* @__PURE__ */ e(
|
|
68
68
|
"img",
|
|
@@ -76,29 +76,29 @@ function de({ preset: r, storefrontConfiguration: n, whatsappHref: l, whatsappPh
|
|
|
76
76
|
] })
|
|
77
77
|
] }),
|
|
78
78
|
/* @__PURE__ */ t("nav", { className: "hidden items-center gap-6 text-sm font-medium text-slate-700 md:flex", children: [
|
|
79
|
-
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#categories`, children: /* @__PURE__ */ e("span", { children:
|
|
80
|
-
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#featured`, children: /* @__PURE__ */ e("span", { children:
|
|
81
|
-
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: w, children: /* @__PURE__ */ e("span", { children:
|
|
82
|
-
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#contact`, children: /* @__PURE__ */ e("span", { children:
|
|
79
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#categories`, children: /* @__PURE__ */ e("span", { children: n("nav_categories") }) }),
|
|
80
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#featured`, children: /* @__PURE__ */ e("span", { children: n("nav_featured") }) }),
|
|
81
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: w, children: /* @__PURE__ */ e("span", { children: n("nav_products") }) }),
|
|
82
|
+
/* @__PURE__ */ e(s, { className: "hover:text-slate-950", to: `${i}${o}#contact`, children: /* @__PURE__ */ e("span", { children: n("nav_contact") }) })
|
|
83
83
|
] }),
|
|
84
84
|
/* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
|
|
85
|
-
/* @__PURE__ */ e(g, { variant: "outline", size: "sm", className: "hidden sm:inline-flex", onClick: z, children: /* @__PURE__ */ e("span", { children:
|
|
85
|
+
/* @__PURE__ */ e(g, { variant: "outline", size: "sm", className: "hidden sm:inline-flex", onClick: z, children: /* @__PURE__ */ e("span", { children: n("language_toggle") }) }),
|
|
86
86
|
/* @__PURE__ */ e(
|
|
87
87
|
g,
|
|
88
88
|
{
|
|
89
89
|
asChild: !0,
|
|
90
90
|
variant: "outline",
|
|
91
91
|
size: "sm",
|
|
92
|
-
className:
|
|
92
|
+
className: $("relative gap-2", u > 0 ? "inline-flex" : "hidden"),
|
|
93
93
|
children: /* @__PURE__ */ t(s, { to: U, children: [
|
|
94
94
|
/* @__PURE__ */ e(O, { className: "h-4 w-4", "aria-hidden": "true" }),
|
|
95
|
-
/* @__PURE__ */ e("span", { children:
|
|
95
|
+
/* @__PURE__ */ e("span", { children: n("cart_button") }),
|
|
96
96
|
/* @__PURE__ */ e(D, { className: "absolute -right-2 -top-2 h-5 min-w-5 rounded-full px-1.5 text-xs", children: /* @__PURE__ */ e("span", { children: u }) })
|
|
97
97
|
] })
|
|
98
98
|
}
|
|
99
99
|
),
|
|
100
100
|
/* @__PURE__ */ e(g, { asChild: !0, size: "sm", className: "gap-2", children: /* @__PURE__ */ t(s, { to: w, children: [
|
|
101
|
-
/* @__PURE__ */ e("span", { children:
|
|
101
|
+
/* @__PURE__ */ e("span", { children: n("cta_book_now") }),
|
|
102
102
|
/* @__PURE__ */ e(Y, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
103
103
|
] }) })
|
|
104
104
|
] })
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { useState as f } from "react";
|
|
3
|
-
import { ResponsiveDialog as x, ResponsiveDialogContent as g, ResponsiveDialogHeader as _, ResponsiveDialogTitle as N, ResponsiveDialogDescription as b, ResponsiveDialogFooter as y } from "../../chunks/ui/dist/ResponsiveDialog-
|
|
3
|
+
import { ResponsiveDialog as x, ResponsiveDialogContent as g, ResponsiveDialogHeader as _, ResponsiveDialogTitle as N, ResponsiveDialogDescription as b, ResponsiveDialogFooter as y } from "../../chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
4
4
|
import { cn as v } from "@rpcbase/ui";
|
|
5
5
|
import { CheckCircle2 as w, Info as d } from "lucide-react";
|
|
6
6
|
import { useTranslation as T } from "react-i18next";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import { useState as S, useEffect as $ } from "react";
|
|
3
|
-
import { ResponsiveDialog as R, ResponsiveDialogContent as E, ResponsiveDialogHeader as D, ResponsiveDialogTitle as I, ResponsiveDialogDescription as P, ResponsiveDialogFooter as O } from "../../chunks/ui/dist/ResponsiveDialog-
|
|
3
|
+
import { ResponsiveDialog as R, ResponsiveDialogContent as E, ResponsiveDialogHeader as D, ResponsiveDialogTitle as I, ResponsiveDialogDescription as P, ResponsiveDialogFooter as O } from "../../chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
4
4
|
import { useParams as j, useLocation as z } from "@rpcbase/router";
|
|
5
5
|
import { cn as x } from "@rpcbase/ui";
|
|
6
6
|
import { X as H, Info as L } from "lucide-react";
|
package/dist/i18n/en.d.ts
CHANGED
package/dist/i18n/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqZtB,CAAA"}
|
package/dist/i18n/en.js
CHANGED
|
@@ -4,7 +4,6 @@ const e = {
|
|
|
4
4
|
slug_label: "Store path",
|
|
5
5
|
info: "Each store URL currently renders the same storefront experience.",
|
|
6
6
|
top_bar_message: "Questions? Contact us to book your bikes in advance.",
|
|
7
|
-
top_bar_whatsapp: "WhatsApp",
|
|
8
7
|
nav_categories: "Categories",
|
|
9
8
|
nav_featured: "Featured",
|
|
10
9
|
nav_products: "Bikes",
|
|
@@ -34,7 +33,7 @@ const e = {
|
|
|
34
33
|
cancellation_policy_duration_hours_other: "{{count}} hours",
|
|
35
34
|
cancellation_policy_duration_days_one: "{{count}} day",
|
|
36
35
|
cancellation_policy_duration_days_other: "{{count}} days",
|
|
37
|
-
booking_title: "
|
|
36
|
+
booking_title: "Choose your rental dates",
|
|
38
37
|
booking_subtitle: "Choose dates and times, then browse available bikes.",
|
|
39
38
|
booking_pickup_label: "Store pickup",
|
|
40
39
|
booking_delivery_label: "Delivery",
|
|
@@ -289,7 +288,7 @@ const e = {
|
|
|
289
288
|
footer_brand_title: "Need help choosing?",
|
|
290
289
|
footer_brand_description: "Contact us and we’ll help you pick the right bikes and accessories.",
|
|
291
290
|
footer_contact_title: "Contact",
|
|
292
|
-
footer_whatsapp_link: "
|
|
291
|
+
footer_whatsapp_link: "WhatsApp",
|
|
293
292
|
footer_hours_title: "Opening hours",
|
|
294
293
|
footer_business_hours_closed: "Closed",
|
|
295
294
|
footer_business_hours_weekday_range: "{{start}} - {{end}}",
|
package/dist/i18n/fr.d.ts
CHANGED
package/dist/i18n/fr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqZtB,CAAA"}
|
package/dist/i18n/fr.js
CHANGED
|
@@ -3,8 +3,7 @@ const e = {
|
|
|
3
3
|
subtitle: "Pages vitrines partagées pour chaque URL de magasin.",
|
|
4
4
|
slug_label: "Chemin du magasin",
|
|
5
5
|
info: "Chaque URL de magasin affiche pour l'instant la même expérience vitrine.",
|
|
6
|
-
top_bar_message: "
|
|
7
|
-
top_bar_whatsapp: "WhatsApp",
|
|
6
|
+
top_bar_message: "Contactez-nous pour réserver vos vélos à l’avance.",
|
|
8
7
|
nav_categories: "Catégories",
|
|
9
8
|
nav_featured: "Sélection",
|
|
10
9
|
nav_products: "Vélos",
|
|
@@ -22,9 +21,9 @@ const e = {
|
|
|
22
21
|
feature_delivery_title: "Livraison disponible",
|
|
23
22
|
feature_delivery_description: "Demandez les options de livraison à votre adresse.",
|
|
24
23
|
feature_guarantee_insurance_title: "Garantie et Assurance",
|
|
25
|
-
feature_guarantee_insurance_description: "Vous pouvez souscrire à une assurance pour protéger le matériel
|
|
24
|
+
feature_guarantee_insurance_description: "Vous pouvez souscrire à une assurance pour protéger le matériel loué",
|
|
26
25
|
cancellation_policy_teaser: "Annulation et remboursement* jusqu'à {{duration}} à l'avance",
|
|
27
|
-
cancellation_policy_teaser_description: "Vous pouvez annuler ou modifier votre réservation jusqu'à {{duration}} avant son début
|
|
26
|
+
cancellation_policy_teaser_description: "Vous pouvez annuler ou modifier votre réservation jusqu'à {{duration}} avant son début",
|
|
28
27
|
cancellation_policy_info_aria_label: "Afficher les conditions d'annulation",
|
|
29
28
|
cancellation_policy_modal_title: "Conditions d'annulation",
|
|
30
29
|
cancellation_policy_modal_description: "Le remboursement dépend du délai entre l'annulation et le début de la réservation.",
|
|
@@ -34,7 +33,7 @@ const e = {
|
|
|
34
33
|
cancellation_policy_duration_hours_other: "{{count}} heures",
|
|
35
34
|
cancellation_policy_duration_days_one: "{{count}} jour",
|
|
36
35
|
cancellation_policy_duration_days_other: "{{count}} jours",
|
|
37
|
-
booking_title: "
|
|
36
|
+
booking_title: "Choisissez vos dates de location",
|
|
38
37
|
booking_subtitle: "Choisissez les dates et horaires, puis parcourez les vélos disponibles.",
|
|
39
38
|
booking_pickup_label: "Retrait en boutique",
|
|
40
39
|
booking_delivery_label: "Livraison",
|
|
@@ -289,7 +288,7 @@ const e = {
|
|
|
289
288
|
footer_brand_title: "Besoin de conseils ?",
|
|
290
289
|
footer_brand_description: "Contactez-nous, on vous aide à choisir les bons vélos et accessoires.",
|
|
291
290
|
footer_contact_title: "Contact",
|
|
292
|
-
footer_whatsapp_link: "
|
|
291
|
+
footer_whatsapp_link: "WhatsApp",
|
|
293
292
|
footer_hours_title: "Horaires d’ouverture",
|
|
294
293
|
footer_business_hours_closed: "Fermé",
|
|
295
294
|
footer_business_hours_weekday_range: "{{start}} - {{end}}",
|
package/dist/index.d.ts
CHANGED
|
@@ -298,10 +298,6 @@ export declare const baseBookingItemSchema: z.ZodObject<{
|
|
|
298
298
|
}>;
|
|
299
299
|
qty: z.ZodNumber;
|
|
300
300
|
productVariantId: z.ZodOptional<z.ZodString>;
|
|
301
|
-
productShortCode: z.ZodOptional<z.ZodString>;
|
|
302
|
-
productName: z.ZodOptional<z.ZodString>;
|
|
303
|
-
productVariantName: z.ZodOptional<z.ZodString>;
|
|
304
|
-
productVariantCode: z.ZodOptional<z.ZodString>;
|
|
305
301
|
}, z.core.$strip>;
|
|
306
302
|
|
|
307
303
|
export declare const baseBookingSchema: z.ZodObject<{
|
|
@@ -346,10 +342,6 @@ export declare const baseBookingSchema: z.ZodObject<{
|
|
|
346
342
|
}>;
|
|
347
343
|
qty: z.ZodNumber;
|
|
348
344
|
productVariantId: z.ZodOptional<z.ZodString>;
|
|
349
|
-
productShortCode: z.ZodOptional<z.ZodString>;
|
|
350
|
-
productName: z.ZodOptional<z.ZodString>;
|
|
351
|
-
productVariantName: z.ZodOptional<z.ZodString>;
|
|
352
|
-
productVariantCode: z.ZodOptional<z.ZodString>;
|
|
353
345
|
}, z.core.$strip>>;
|
|
354
346
|
couponCode: z.ZodOptional<z.ZodString>;
|
|
355
347
|
couponDiscountRate: z.ZodOptional<z.ZodNumber>;
|
|
@@ -3455,7 +3447,6 @@ export declare const storefrontEn: {
|
|
|
3455
3447
|
slug_label: string;
|
|
3456
3448
|
info: string;
|
|
3457
3449
|
top_bar_message: string;
|
|
3458
|
-
top_bar_whatsapp: string;
|
|
3459
3450
|
nav_categories: string;
|
|
3460
3451
|
nav_featured: string;
|
|
3461
3452
|
nav_products: string;
|
|
@@ -3894,7 +3885,6 @@ export declare const storefrontFr: {
|
|
|
3894
3885
|
slug_label: string;
|
|
3895
3886
|
info: string;
|
|
3896
3887
|
top_bar_message: string;
|
|
3897
|
-
top_bar_whatsapp: string;
|
|
3898
3888
|
nav_categories: string;
|
|
3899
3889
|
nav_featured: string;
|
|
3900
3890
|
nav_products: string;
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ import "react-i18next";
|
|
|
43
43
|
import { getLocalizedEntry as gt, getLocalizedValue as Pt } from "./localization.js";
|
|
44
44
|
import { Badge as xt, badgeVariants as Ct } from "./ui/badge.js";
|
|
45
45
|
import { Button as Dt, buttonVariants as At } from "./ui/button.js";
|
|
46
|
-
import "./chunks/ui/dist/ResponsiveDialog-
|
|
46
|
+
import "./chunks/ui/dist/ResponsiveDialog-DhFgsW_0.js";
|
|
47
47
|
import { Card as Et, CardAction as bt, CardContent as Bt, CardDescription as kt, CardFooter as yt, CardHeader as It, CardTitle as _t } from "./ui/card.js";
|
|
48
48
|
import { loader as Mt, useOptionalStorefront as Lt, useStorefront as Ut, useStorefrontBookingProducts as vt, useStorefrontConfig as Nt, useStorefrontProducts as qt, useStorefrontWorkspaceLanguage as Vt } from "./StorefrontProvider.js";
|
|
49
49
|
import { RadioGroup as zt, RadioGroupItem as Ht } from "./ui/radio-group.js";
|
|
@@ -68,7 +68,7 @@ import { PRODUCT_VARIANT_CODE_IDENTIFIER_KIND as pa, PRODUCT_VARIANT_CODE_MAX_LE
|
|
|
68
68
|
import { createLocalizedStringEntry as Ba, getLocalizedStringValue as ka, localizedStringArraySchema as ya, localizedStringEntrySchema as Ia, localizedStringSchema as _a } from "./chunks/booking-engine/dist/models/LocalizedString--6q77SPQ.js";
|
|
69
69
|
import { priceSchema as Ma, priceUnitSchema as La } from "./chunks/booking-engine/dist/models/Price-BlFRDHXV.js";
|
|
70
70
|
import { baseAssetSchema as va, baseAssetStatusSchema as Na } from "./chunks/booking-engine/dist/schemas/base-asset-GJ9eIvIL.js";
|
|
71
|
-
import { baseBookingItemSchema as Va, baseBookingSchema as wa, baseBookingStateSchema as za } from "./chunks/booking-engine/dist/schemas/base-booking-
|
|
71
|
+
import { baseBookingItemSchema as Va, baseBookingSchema as wa, baseBookingStateSchema as za } from "./chunks/booking-engine/dist/schemas/base-booking-Dlgnuu6k.js";
|
|
72
72
|
import { richTextJsonDocSchema as Ka, richTextSchema as Wa, richTextVersionSchema as Ga } from "./chunks/booking-engine/dist/schemas/rich-text-CqXhNDN3.js";
|
|
73
73
|
import { currencyCodeSchema as Ja, currencyMinorUnitDigits as ja, majorToMinor as Qa, minorToMajor as Xa, moneyMinorSchema as Za, signedMoneyMinorSchema as $a } from "./chunks/booking-engine/dist/schemas/money-Dy4b9loa.js";
|
|
74
74
|
import { isoDateSchema as oc, shopConfigurationSchema as tc, shopExtraTimeSlotRuleSchema as rc, shopOpeningDayIndexSchema as ac, shopOpeningDaySchema as cc, shopOpeningHoursOverrideSchema as nc, shopOpeningHoursPeriodSchema as ic, shopOpeningSlotSchema as mc, timeOfDaySchema as Sc } from "./chunks/booking-engine/dist/schemas/shop-opening-hours-DqNWstqT.js";
|
|
@@ -4,7 +4,7 @@ import { productKindSchema as o } from "../chunks/booking-engine/dist/models/Pro
|
|
|
4
4
|
import "../chunks/booking-engine/dist/models/LocalizedString--6q77SPQ.js";
|
|
5
5
|
import "../chunks/booking-engine/dist/models/Price-BlFRDHXV.js";
|
|
6
6
|
import "../chunks/booking-engine/dist/schemas/base-asset-GJ9eIvIL.js";
|
|
7
|
-
import "../chunks/booking-engine/dist/schemas/base-booking-
|
|
7
|
+
import "../chunks/booking-engine/dist/schemas/base-booking-Dlgnuu6k.js";
|
|
8
8
|
import "../chunks/booking-engine/dist/schemas/rich-text-CqXhNDN3.js";
|
|
9
9
|
import "../chunks/booking-engine/dist/schemas/money-Dy4b9loa.js";
|
|
10
10
|
import "../chunks/booking-engine/dist/schemas/shop-opening-hours-DqNWstqT.js";
|