@loczer/storefront-sdk 0.236.0 → 0.238.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 (41) hide show
  1. package/dist/components/FaqSection/index.d.ts +2 -0
  2. package/dist/components/FaqSection/index.d.ts.map +1 -0
  3. package/dist/components/FaqSection/index.js +76 -0
  4. package/dist/components/Layout/index.d.ts.map +1 -1
  5. package/dist/components/Layout/index.js +38 -26
  6. package/dist/components/StorefrontCartPanel/index.d.ts +3 -1
  7. package/dist/components/StorefrontCartPanel/index.d.ts.map +1 -1
  8. package/dist/components/StorefrontCartPanel/index.js +45 -41
  9. package/dist/components/StorefrontInsuranceNotice/index.d.ts.map +1 -1
  10. package/dist/components/StorefrontInsuranceNotice/index.js +3 -12
  11. package/dist/components/WhatsAppFloatingButton/WhatsAppFloatingButton.d.ts +4 -2
  12. package/dist/components/WhatsAppFloatingButton/WhatsAppFloatingButton.d.ts.map +1 -1
  13. package/dist/components/WhatsAppFloatingButton/WhatsAppFloatingButton.js +8 -8
  14. package/dist/i18n/en.d.ts +6 -2
  15. package/dist/i18n/en.d.ts.map +1 -1
  16. package/dist/i18n/en.js +6 -2
  17. package/dist/i18n/fr.d.ts +6 -2
  18. package/dist/i18n/fr.d.ts.map +1 -1
  19. package/dist/i18n/fr.js +6 -2
  20. package/dist/index.d.ts +25 -7
  21. package/dist/index.js +27 -26
  22. package/dist/lib/storefrontProducts.d.ts +4 -0
  23. package/dist/lib/storefrontProducts.d.ts.map +1 -1
  24. package/dist/lib/storefrontProducts.js +2 -0
  25. package/dist/pages/CheckoutPage.d.ts.map +1 -1
  26. package/dist/pages/CheckoutPage.js +198 -177
  27. package/dist/pages/HomePage.d.ts.map +1 -1
  28. package/dist/pages/HomePage.js +397 -388
  29. package/dist/pages/checkout/components/CheckoutBookingPeriodSummary.d.ts +9 -0
  30. package/dist/pages/checkout/components/CheckoutBookingPeriodSummary.d.ts.map +1 -0
  31. package/dist/pages/checkout/components/CheckoutBookingPeriodSummary.js +83 -0
  32. package/dist/pages/checkout/components/CheckoutLoadingSkeleton.d.ts.map +1 -1
  33. package/dist/pages/checkout/components/CheckoutLoadingSkeleton.js +10 -6
  34. package/dist/pages/checkout/components/CheckoutMobileSummaryDrawer.d.ts +13 -0
  35. package/dist/pages/checkout/components/CheckoutMobileSummaryDrawer.d.ts.map +1 -0
  36. package/dist/pages/checkout/components/CheckoutMobileSummaryDrawer.js +95 -0
  37. package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts +6 -1
  38. package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts.map +1 -1
  39. package/dist/pages/checkout/components/CheckoutSummaryColumn.js +38 -34
  40. package/dist/storefront.css +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export declare function FaqSection(): import("react/jsx-runtime").JSX.Element | null;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FaqSection/index.tsx"],"names":[],"mappings":"AAuDA,wBAAgB,UAAU,mDAuCzB"}
@@ -0,0 +1,76 @@
1
+ import { getLocalizedValue as e } from "../../localization.js";
2
+ import { useStorefront as t } from "../../StorefrontContext.js";
3
+ import { useState as n } from "react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { useTranslation as a } from "react-i18next";
6
+ import { ChevronDown as o } from "lucide-react";
7
+ import { Accordion as s } from "@base-ui/react/accordion";
8
+ //#region src/components/FaqSection/index.tsx
9
+ var c = [
10
+ "general",
11
+ "deliveries",
12
+ "booking"
13
+ ];
14
+ function l({ items: e }) {
15
+ let [t, a] = n([]);
16
+ return /* @__PURE__ */ r(s.Root, {
17
+ className: "w-full",
18
+ value: t,
19
+ onValueChange: a,
20
+ keepMounted: !0,
21
+ "data-testid": "storefront-faq-column",
22
+ children: e.map((e) => /* @__PURE__ */ i(s.Item, {
23
+ value: e.id,
24
+ className: "border-b border-slate-200",
25
+ children: [/* @__PURE__ */ r(s.Header, {
26
+ className: "flex",
27
+ children: /* @__PURE__ */ i(s.Trigger, {
28
+ className: "flex w-full flex-1 items-center justify-between gap-4 py-4 text-left text-lg font-medium text-slate-700 transition-colors hover:text-slate-950 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[panel-open]:[&>svg]:rotate-180",
29
+ children: [/* @__PURE__ */ r("span", { children: e.question }), /* @__PURE__ */ r(o, {
30
+ className: "h-4 w-4 shrink-0 transition-transform duration-200",
31
+ "aria-hidden": "true"
32
+ })]
33
+ })
34
+ }), /* @__PURE__ */ r(s.Panel, {
35
+ keepMounted: !0,
36
+ className: "h-[var(--accordion-panel-height)] overflow-hidden transition-[height,opacity] duration-200 ease-out data-[ending-style]:h-0 data-[ending-style]:opacity-0 data-[starting-style]:h-0 data-[starting-style]:opacity-0",
37
+ children: /* @__PURE__ */ r("p", {
38
+ className: "whitespace-pre-line pb-4 text-base leading-7 text-slate-600",
39
+ children: /* @__PURE__ */ r("span", { children: e.answer })
40
+ })
41
+ })]
42
+ }, e.id))
43
+ });
44
+ }
45
+ function u() {
46
+ let { i18n: n, t: o } = a(), { storefrontConfiguration: s } = t(), u = s.workspace?.workspaceLanguage, d = s.content?.faq, f = c.flatMap((t) => (d?.[t] ?? []).flatMap((r) => {
47
+ let i = e(r.question, n.language, u).trim(), a = e(r.answer, n.language, u).trim();
48
+ return i && a ? [{
49
+ id: `${t}-${r.id}`,
50
+ question: i,
51
+ answer: a
52
+ }] : [];
53
+ }));
54
+ if (f.length === 0) return null;
55
+ let p = Math.ceil(f.length / 2);
56
+ return /* @__PURE__ */ r("section", {
57
+ id: "faq",
58
+ className: "border-t border-slate-200 bg-white py-12 scroll-mt-16 sm:scroll-mt-20 sm:py-16",
59
+ "data-testid": "storefront-faq",
60
+ children: /* @__PURE__ */ i("div", {
61
+ className: "mx-auto max-w-7xl px-4 sm:px-6",
62
+ children: [/* @__PURE__ */ r("div", {
63
+ className: "text-center",
64
+ children: /* @__PURE__ */ r("h2", {
65
+ className: "text-3xl font-semibold tracking-tight text-slate-950",
66
+ children: /* @__PURE__ */ r("span", { children: o("faq_section_title") })
67
+ })
68
+ }), /* @__PURE__ */ i("div", {
69
+ className: "mx-auto mt-8 grid max-w-6xl grid-cols-1 gap-x-8 gap-y-0 lg:grid-cols-2",
70
+ children: [/* @__PURE__ */ r(l, { items: f.slice(0, p) }), /* @__PURE__ */ r(l, { items: f.slice(p) })]
71
+ })]
72
+ })
73
+ });
74
+ }
75
+ //#endregion
76
+ export { u as FaqSection };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAIvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAItE,KAAK,WAAW,GAAG;IACjB,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,kBAAkB,EAAE,6BAA6B,CAAA;CAClD,CAAA;AAED,wBAAgB,MAAM,CAAC,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,EAAE,WAAW,2CA4Eb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAA;AAIvE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAUtE,KAAK,WAAW,GAAG;IACjB,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,kBAAkB,EAAE,6BAA6B,CAAA;CAClD,CAAA;AAED,wBAAgB,MAAM,CAAC,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,EAAE,WAAW,2CA+Fb"}
@@ -17,54 +17,66 @@ import { Outlet as _, useLocation as v, useParams as y } from "@rpcbase/router";
17
17
  import { useTranslation as b } from "react-i18next";
18
18
  import { Toaster as x } from "sonner";
19
19
  //#region src/components/Layout/index.tsx
20
- function S({ storefrontConfiguration: S, storefrontProducts: C }) {
21
- let { storeSlug: w, referenceId: T } = y(), E = v(), { i18n: D } = b(), [O, k] = f(!1);
20
+ var S = {
21
+ "--toast-close-button-start": "unset",
22
+ "--toast-close-button-end": "0",
23
+ "--toast-close-button-transform": "translate(35%, -35%)"
24
+ };
25
+ function C({ storefrontConfiguration: C, storefrontProducts: w }) {
26
+ let { storeSlug: T, referenceId: E } = y(), D = v(), { i18n: O } = b(), [k, A] = f(!1);
22
27
  d(() => {
23
- k(!0), document.documentElement.setAttribute("data-hydrated", "true");
28
+ A(!0), document.documentElement.setAttribute("data-hydrated", "true");
24
29
  }, []);
25
- let A = t({
26
- storefrontConfiguration: S,
27
- language: D.language
28
- }), j = A?.href, M = typeof T == "string" && T.trim().length > 0, N = M && new URLSearchParams(E.search).get("pdf") === "1";
30
+ let j = t({
31
+ storefrontConfiguration: C,
32
+ language: O.language
33
+ }), M = j?.href, N = typeof E == "string" && E.trim().length > 0, P = N && new URLSearchParams(D.search).get("pdf") === "1", F = /\/checkout\/?$/.test(D.pathname), I = !!(M && C?.content?.showWhatsappFloatingButton !== !1), L = F ? { bottom: I ? "calc(10rem + env(safe-area-inset-bottom))" : "calc(5.5rem + env(safe-area-inset-bottom))" } : void 0;
29
34
  return /* @__PURE__ */ h(g, { children: [/* @__PURE__ */ m(x, {
30
35
  id: l,
31
36
  closeButton: !0,
37
+ className: F ? "lg:!bottom-6" : void 0,
38
+ mobileOffset: L,
39
+ offset: L,
32
40
  position: "bottom-center",
41
+ style: S,
33
42
  theme: "dark"
34
43
  }), /* @__PURE__ */ m(u, { children: /* @__PURE__ */ m(e, {
35
- storeSlug: w ?? "",
36
- products: C,
44
+ storeSlug: T ?? "",
45
+ products: w,
37
46
  children: /* @__PURE__ */ m("div", {
38
- className: `loczer-storefront flex w-full min-w-0 flex-col overflow-x-clip bg-background text-foreground ${M && !N ? "h-dvh overflow-hidden" : "min-h-screen"}`,
39
- children: M ? /* @__PURE__ */ m("main", {
40
- className: `flex-1 ${N ? "bg-white" : "overflow-hidden"}`,
47
+ className: `loczer-storefront flex w-full min-w-0 flex-col overflow-x-clip bg-background text-foreground ${N && !P ? "h-dvh overflow-hidden" : "min-h-screen"}`,
48
+ children: N ? /* @__PURE__ */ m("main", {
49
+ className: `flex-1 ${P ? "bg-white" : "overflow-hidden"}`,
41
50
  children: /* @__PURE__ */ m(_, {})
42
51
  }) : /* @__PURE__ */ h(p, { children: [
43
52
  /* @__PURE__ */ m(r, {
44
- storefrontConfiguration: S,
45
- whatsappHref: j,
46
- whatsappPhoneDisplay: A?.phoneDisplay
53
+ storefrontConfiguration: C,
54
+ whatsappHref: M,
55
+ whatsappPhoneDisplay: j?.phoneDisplay
47
56
  }),
48
57
  /* @__PURE__ */ m("main", {
49
58
  className: "min-w-0 flex-1",
50
59
  children: /* @__PURE__ */ m(_, {})
51
60
  }),
52
61
  /* @__PURE__ */ m(n, {
53
- storeSlug: w,
54
- shop: S?.shop,
55
- whatsappHref: j,
56
- whatsappPhoneDisplay: A?.phoneDisplay,
57
- openingHours: S?.bookingEngine.shop.openingHours,
58
- openingHoursOverrides: S?.bookingEngine.shop.openingHoursOverrides,
59
- timeZone: S?.bookingEngine.shop.timeZone,
60
- showInsuranceTerms: c(S?.information?.insuranceTerms)
62
+ storeSlug: T,
63
+ shop: C?.shop,
64
+ whatsappHref: M,
65
+ whatsappPhoneDisplay: j?.phoneDisplay,
66
+ openingHours: C?.bookingEngine.shop.openingHours,
67
+ openingHoursOverrides: C?.bookingEngine.shop.openingHoursOverrides,
68
+ timeZone: C?.bookingEngine.shop.timeZone,
69
+ showInsuranceTerms: c(C?.information?.insuranceTerms)
61
70
  }),
62
71
  /* @__PURE__ */ m(i, {}),
63
- O ? /* @__PURE__ */ h(p, { children: [j && S?.content?.showWhatsappFloatingButton !== !1 ? /* @__PURE__ */ m(s, { href: j }) : null, /* @__PURE__ */ m(a, {})] }) : null,
64
- /* @__PURE__ */ m(o, { storefrontConfiguration: S })
72
+ k ? /* @__PURE__ */ h(p, { children: [I ? /* @__PURE__ */ m(s, {
73
+ href: M,
74
+ avoidMobileBottomBar: F
75
+ }, F ? "checkout" : "default") : null, /* @__PURE__ */ m(a, {})] }) : null,
76
+ /* @__PURE__ */ m(o, { storefrontConfiguration: C })
65
77
  ] })
66
78
  })
67
79
  }) })] });
68
80
  }
69
81
  //#endregion
70
- export { S as Layout };
82
+ export { C as Layout };
@@ -7,17 +7,19 @@ type StorefrontCartPanelProps = {
7
7
  totalMinor?: number;
8
8
  title?: string;
9
9
  description?: string;
10
+ headerAddon?: ReactNode;
10
11
  checkoutPath?: string;
11
12
  showCheckoutAction?: boolean;
12
13
  showClearAction?: boolean;
13
14
  editable?: boolean;
14
15
  summaryAddon?: ReactNode;
15
16
  pricingSummary?: ReactNode;
17
+ presentation?: "card" | "flat";
16
18
  stickyTopClassName?: string;
17
19
  onQuantityChange?: (key: string, quantity: number) => void;
18
20
  onRemove?: (key: string) => void;
19
21
  onClear?: () => void;
20
22
  };
21
- export declare function StorefrontCartPanel({ lines, itemCount, baseUnitLabel, totalMinor, title, description, checkoutPath, showCheckoutAction, showClearAction, editable, summaryAddon, pricingSummary, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function StorefrontCartPanel({ lines, itemCount, baseUnitLabel, totalMinor, title, description, headerAddon, checkoutPath, showCheckoutAction, showClearAction, editable, summaryAddon, pricingSummary, presentation, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): import("react/jsx-runtime").JSX.Element;
22
24
  export {};
23
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCartPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAQtE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,yBAAyB,EAAE,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAA0B,EAC1B,eAAuB,EACvB,QAAe,EACf,YAAY,EACZ,cAAc,EACd,kBAA6B,EAC7B,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,EAAE,wBAAwB,2CAsJ1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCartPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAQtE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,yBAAyB,EAAE,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAA0B,EAC1B,eAAuB,EACvB,QAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAqB,EACrB,kBAA6B,EAC7B,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,EAAE,wBAAwB,2CAoK1B"}
@@ -10,36 +10,40 @@ import { useTranslation as l } from "react-i18next";
10
10
  import { cn as u } from "@rpcbase/ui";
11
11
  import { ArrowRight as d, Trash2 as f } from "lucide-react";
12
12
  //#region src/components/StorefrontCartPanel/index.tsx
13
- function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _, description: v, checkoutPath: y, showCheckoutAction: b = !1, showClearAction: x = !1, editable: S = !0, summaryAddon: C, pricingSummary: w, stickyTopClassName: T = "top-24", onQuantityChange: E, onRemove: D, onClear: O }) {
14
- let { t: k, i18n: A } = l();
15
- return /* @__PURE__ */ s(i, {
16
- className: u("sticky border-slate-200 bg-white shadow-sm", T),
13
+ function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _, description: v, headerAddon: y, checkoutPath: b, showCheckoutAction: x = !1, showClearAction: S = !1, editable: C = !0, summaryAddon: w, pricingSummary: T, presentation: E = "card", stickyTopClassName: D = "top-24", onQuantityChange: O, onRemove: k, onClear: A }) {
14
+ let { t: j, i18n: M } = l();
15
+ return /* @__PURE__ */ s(E === "flat" ? "div" : i, {
16
+ className: u(E === "flat" ? "flex flex-col bg-transparent" : "sticky border-slate-200 bg-white shadow-sm", E === "card" ? D : void 0),
17
17
  children: [/* @__PURE__ */ s("div", {
18
- className: "border-b border-slate-200 px-4 py-4",
19
- children: [/* @__PURE__ */ s("div", {
20
- className: "flex items-center justify-between gap-3",
21
- children: [/* @__PURE__ */ o("p", {
22
- className: "text-sm font-semibold text-slate-950",
23
- children: /* @__PURE__ */ o("span", { children: _ ?? k("cart_title") })
24
- }), /* @__PURE__ */ o(t, {
25
- variant: "outline",
26
- className: "border-slate-200 bg-white text-slate-700",
27
- children: /* @__PURE__ */ o("span", { children: k("cart_items_count", { count: m }) })
28
- })]
29
- }), v ? /* @__PURE__ */ o("p", {
30
- className: "mt-1 text-xs text-slate-600",
31
- children: /* @__PURE__ */ o("span", { children: v })
32
- }) : null]
18
+ className: u("border-b border-slate-200", E === "flat" ? "pb-4" : "px-4 py-4"),
19
+ children: [
20
+ /* @__PURE__ */ s("div", {
21
+ className: "flex items-center justify-between gap-3",
22
+ children: [/* @__PURE__ */ o("p", {
23
+ className: "text-sm font-semibold text-slate-950",
24
+ children: /* @__PURE__ */ o("span", { children: _ ?? j("cart_title") })
25
+ }), /* @__PURE__ */ o(t, {
26
+ variant: "outline",
27
+ className: "border-slate-200 bg-white text-slate-700",
28
+ children: /* @__PURE__ */ o("span", { children: j("cart_items_count", { count: m }) })
29
+ })]
30
+ }),
31
+ v ? /* @__PURE__ */ o("p", {
32
+ className: "mt-1 text-xs text-slate-600",
33
+ children: /* @__PURE__ */ o("span", { children: v })
34
+ }) : null,
35
+ y
36
+ ]
33
37
  }), /* @__PURE__ */ s("div", {
34
- className: "grid gap-3 p-4",
38
+ className: u("grid gap-3", E === "flat" ? "pt-4" : "p-4"),
35
39
  children: [
36
40
  p.length === 0 ? /* @__PURE__ */ o("p", {
37
41
  className: "text-sm text-slate-600",
38
- children: /* @__PURE__ */ o("span", { children: k("cart_empty") })
42
+ children: /* @__PURE__ */ o("span", { children: j("cart_empty") })
39
43
  }) : /* @__PURE__ */ o("ul", {
40
44
  className: "divide-y divide-slate-200",
41
45
  children: p.map((i) => {
42
- let c = e(i.unitPriceMinor, A.language), l = i.insufficientCapacity === !0, u = i.availabilityIssue === "quantityUnavailable" ? k("availability_quantity_unavailable") : k("availability_out_of_stock");
46
+ let c = e(i.unitPriceMinor, M.language), l = i.insufficientCapacity === !0, u = i.availabilityIssue === "quantityUnavailable" ? j("availability_quantity_unavailable") : j("availability_out_of_stock");
43
47
  return /* @__PURE__ */ s("li", {
44
48
  className: "flex items-start justify-between gap-3 py-4 first:pt-0 last:pb-0",
45
49
  children: [/* @__PURE__ */ s("div", {
@@ -51,7 +55,7 @@ function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _,
51
55
  }),
52
56
  i.productVariantLabel ? /* @__PURE__ */ o("p", {
53
57
  className: "text-xs text-slate-600",
54
- children: /* @__PURE__ */ o("span", { children: `${k(i.productVariantIsSize ? "product_size_label" : "product_variant_label")}: ${i.productVariantLabel}` })
58
+ children: /* @__PURE__ */ o("span", { children: `${j(i.productVariantIsSize ? "product_size_label" : "product_variant_label")}: ${i.productVariantLabel}` })
55
59
  }) : null,
56
60
  i.productVariantDescription ? /* @__PURE__ */ o("p", {
57
61
  className: "text-xs text-slate-500",
@@ -60,7 +64,7 @@ function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _,
60
64
  /* @__PURE__ */ o(a, { warning: i.productWarning }),
61
65
  /* @__PURE__ */ o("p", {
62
66
  className: "text-xs text-slate-600",
63
- children: /* @__PURE__ */ o("span", { children: k("cart_line_meta", {
67
+ children: /* @__PURE__ */ o("span", { children: j("cart_line_meta", {
64
68
  quantity: i.quantity,
65
69
  price: c,
66
70
  unit: h
@@ -74,26 +78,26 @@ function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _,
74
78
  })
75
79
  }) : null
76
80
  ]
77
- }), S ? /* @__PURE__ */ s("div", {
81
+ }), C ? /* @__PURE__ */ s("div", {
78
82
  className: "flex items-center gap-2",
79
- children: [E ? /* @__PURE__ */ o(r, {
83
+ children: [O ? /* @__PURE__ */ o(r, {
80
84
  type: "number",
81
85
  min: 1,
82
86
  max: 99,
83
87
  value: i.quantity,
84
88
  onChange: (e) => {
85
89
  let t = Number(e.target.value);
86
- E(i.key, Number.isFinite(t) ? t : 0);
90
+ O(i.key, Number.isFinite(t) ? t : 0);
87
91
  },
88
92
  className: "h-9 w-16",
89
- "aria-label": k("quantity_label")
90
- }) : null, D ? /* @__PURE__ */ o(n, {
93
+ "aria-label": j("quantity_label")
94
+ }) : null, k ? /* @__PURE__ */ o(n, {
91
95
  type: "button",
92
96
  variant: "ghost",
93
97
  size: "icon",
94
98
  className: "h-8 w-8 text-slate-500 hover:bg-slate-50 hover:text-slate-700",
95
- onClick: () => D(i.key),
96
- "aria-label": k("remove_from_cart"),
99
+ onClick: () => k(i.key),
100
+ "aria-label": j("remove_from_cart"),
97
101
  children: /* @__PURE__ */ o(f, {
98
102
  className: "h-4 w-4",
99
103
  "aria-hidden": "true"
@@ -103,35 +107,35 @@ function p({ lines: p, itemCount: m, baseUnitLabel: h, totalMinor: g, title: _,
103
107
  }, i.key);
104
108
  })
105
109
  }),
106
- C,
107
- w ?? (typeof g == "number" ? /* @__PURE__ */ s("div", {
110
+ w,
111
+ T ?? (typeof g == "number" ? /* @__PURE__ */ s("div", {
108
112
  className: "flex items-center justify-between gap-3 border-t border-slate-200 pt-3 text-sm",
109
113
  children: [/* @__PURE__ */ o("p", {
110
114
  className: "text-slate-700",
111
- children: /* @__PURE__ */ o("span", { children: k("cart_total") })
115
+ children: /* @__PURE__ */ o("span", { children: j("cart_total") })
112
116
  }), /* @__PURE__ */ o("p", {
113
117
  className: "font-semibold text-slate-950",
114
- children: /* @__PURE__ */ o("span", { children: e(g, A.language) })
118
+ children: /* @__PURE__ */ o("span", { children: e(g, M.language) })
115
119
  })]
116
120
  }) : null),
117
121
  /* @__PURE__ */ s("div", {
118
122
  className: "grid gap-2",
119
- children: [b && y ? /* @__PURE__ */ o(c, {
120
- to: y,
123
+ children: [x && b ? /* @__PURE__ */ o(c, {
124
+ to: b,
121
125
  className: u(p.length > 0 ? "block" : "hidden"),
122
126
  children: /* @__PURE__ */ s(n, {
123
127
  className: "w-full gap-2",
124
- children: [/* @__PURE__ */ o("span", { children: k("checkout_button") }), /* @__PURE__ */ o(d, {
128
+ children: [/* @__PURE__ */ o("span", { children: j("checkout_button") }), /* @__PURE__ */ o(d, {
125
129
  className: "h-4 w-4",
126
130
  "aria-hidden": "true"
127
131
  })]
128
132
  })
129
- }) : null, x && O ? /* @__PURE__ */ o(n, {
133
+ }) : null, S && A ? /* @__PURE__ */ o(n, {
130
134
  type: "button",
131
135
  variant: "outline",
132
136
  className: u(p.length > 0 ? "w-full gap-2" : "hidden"),
133
- onClick: O,
134
- children: /* @__PURE__ */ o("span", { children: k("cart_clear") })
137
+ onClick: A,
138
+ children: /* @__PURE__ */ o("span", { children: j("cart_clear") })
135
139
  }) : null]
136
140
  })
137
141
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontInsuranceNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOzF,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE,8BAA8B,2CA2KhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontInsuranceNotice/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOzF,KAAK,8BAA8B,GAAG;IACpC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE,8BAA8B,2CAmKhC"}
@@ -86,19 +86,10 @@ function v({ bikes: v, currency: y, fallbackLanguage: b, className: x }) {
86
86
  /* @__PURE__ */ d("div", {
87
87
  className: "overflow-y-auto",
88
88
  children: [
89
- /* @__PURE__ */ d("section", {
89
+ /* @__PURE__ */ u("section", {
90
90
  className: "border-b border-slate-200 bg-slate-50",
91
91
  "data-testid": "storefront-insurance-pricing-section",
92
- children: [/* @__PURE__ */ d("div", {
93
- className: "px-5 py-4 sm:px-6",
94
- children: [/* @__PURE__ */ u("h3", {
95
- className: "text-base font-semibold text-slate-950",
96
- children: /* @__PURE__ */ u("span", { children: S("insurance_modal_pricing_title") })
97
- }), /* @__PURE__ */ u("p", {
98
- className: "mt-1 text-sm text-slate-600",
99
- children: /* @__PURE__ */ u("span", { children: S("insurance_modal_pricing_description") })
100
- })]
101
- }), /* @__PURE__ */ u("dl", {
92
+ children: /* @__PURE__ */ u("dl", {
102
93
  className: "grid divide-y divide-slate-200 border-t border-slate-200 sm:grid-cols-2 sm:divide-x sm:divide-y-0",
103
94
  children: k.map((e) => /* @__PURE__ */ d("div", {
104
95
  className: "px-5 py-4 sm:px-6",
@@ -111,7 +102,7 @@ function v({ bikes: v, currency: y, fallbackLanguage: b, className: x }) {
111
102
  children: /* @__PURE__ */ u("span", { children: e.price })
112
103
  })]
113
104
  }, e.kind))
114
- })]
105
+ })
115
106
  }),
116
107
  /* @__PURE__ */ d("section", {
117
108
  className: "border-b border-slate-200 px-5 py-5 sm:px-6",
@@ -1,5 +1,7 @@
1
1
  import { WhatsAppFloatingButtonOptions } from './useWhatsAppFloatingButton';
2
- type WhatsAppFloatingButtonProps = WhatsAppFloatingButtonOptions;
3
- export declare const WhatsAppFloatingButton: (props: WhatsAppFloatingButtonProps) => import("react/jsx-runtime").JSX.Element | null;
2
+ type WhatsAppFloatingButtonProps = WhatsAppFloatingButtonOptions & {
3
+ avoidMobileBottomBar?: boolean;
4
+ };
5
+ export declare const WhatsAppFloatingButton: ({ avoidMobileBottomBar, ...options }: WhatsAppFloatingButtonProps) => import("react/jsx-runtime").JSX.Element | null;
4
6
  export {};
5
7
  //# sourceMappingURL=WhatsAppFloatingButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhatsAppFloatingButton.d.ts","sourceRoot":"","sources":["../../../src/components/WhatsAppFloatingButton/WhatsAppFloatingButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,6BAA6B,CAAA;AAGpC,KAAK,2BAA2B,GAAG,6BAA6B,CAAA;AAwBhE,eAAO,MAAM,sBAAsB,GAAI,OAAO,2BAA2B,mDA4BxE,CAAA"}
1
+ {"version":3,"file":"WhatsAppFloatingButton.d.ts","sourceRoot":"","sources":["../../../src/components/WhatsAppFloatingButton/WhatsAppFloatingButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,6BAA6B,CAAA;AAGpC,KAAK,2BAA2B,GAAG,6BAA6B,GAAG;IACjE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAwBD,eAAO,MAAM,sBAAsB,GAAI,sCAGpC,2BAA2B,mDAiC7B,CAAA"}
@@ -36,22 +36,22 @@ function r({ className: e }) {
36
36
  ]
37
37
  });
38
38
  }
39
- var i = (i) => {
40
- let { href: a, containerRef: o, bubbleRef: s, onLinkClick: c } = e(i);
41
- return typeof window > "u" || !a ? null : /* @__PURE__ */ t("div", {
42
- ref: o,
43
- className: "fixed bottom-4 right-4 z-50 pointer-events-none select-none",
39
+ var i = ({ avoidMobileBottomBar: i = !1, ...a }) => {
40
+ let { href: o, containerRef: s, bubbleRef: c, onLinkClick: l } = e(a);
41
+ return typeof window > "u" || !o ? null : /* @__PURE__ */ t("div", {
42
+ ref: s,
43
+ className: i ? "pointer-events-none fixed bottom-24 right-4 z-50 select-none lg:bottom-4" : "pointer-events-none fixed bottom-4 right-4 z-50 select-none",
44
44
  children: /* @__PURE__ */ t("div", {
45
- ref: s,
45
+ ref: c,
46
46
  className: "pointer-events-auto",
47
47
  style: { touchAction: "none" },
48
48
  children: /* @__PURE__ */ n("a", {
49
- href: a,
49
+ href: o,
50
50
  target: "_blank",
51
51
  rel: "nofollow noopener noreferrer",
52
52
  className: "group inline-flex h-14 w-14 md:h-12 md:w-12 items-center justify-center rounded-full bg-[#25D366] hover:bg-[#1DA851] shadow-lg ring-1 ring-[#1DA851] transition-colors p-1",
53
53
  "aria-label": "WhatsApp",
54
- onClick: c,
54
+ onClick: l,
55
55
  children: [/* @__PURE__ */ t(r, { className: "h-9 w-9 md:h-8 md:w-8" }), /* @__PURE__ */ t("span", {
56
56
  className: "sr-only",
57
57
  children: "WhatsApp"
package/dist/i18n/en.d.ts CHANGED
@@ -41,8 +41,6 @@ export declare const storefront: {
41
41
  insurance_info_aria_label: string;
42
42
  insurance_modal_title: string;
43
43
  insurance_modal_description: string;
44
- insurance_modal_pricing_title: string;
45
- insurance_modal_pricing_description: string;
46
44
  insurance_modal_muscular_bike: string;
47
45
  insurance_modal_electric_bike: string;
48
46
  insurance_modal_price_per_day: string;
@@ -132,6 +130,7 @@ export declare const storefront: {
132
130
  about_section_title: string;
133
131
  about_section_heading: string;
134
132
  about_section_fallback: string;
133
+ faq_section_title: string;
135
134
  testimonials: {
136
135
  title: string;
137
136
  reviews_label: string;
@@ -205,8 +204,12 @@ export declare const storefront: {
205
204
  go_to_checkout: string;
206
205
  checkout_title: string;
207
206
  checkout_subtitle: string;
207
+ checkout_booking_period_edit: string;
208
208
  checkout_summary_title: string;
209
209
  checkout_summary_description: string;
210
+ checkout_mobile_summary_button: string;
211
+ checkout_mobile_submit: string;
212
+ checkout_mobile_continue_to_payment: string;
210
213
  checkout_booking_subtotal: string;
211
214
  checkout_estimated_duration: string;
212
215
  checkout_estimated_total: string;
@@ -355,6 +358,7 @@ export declare const storefront: {
355
358
  docs_contract_sale_acceptance_section_required_description: string;
356
359
  accessories_title: string;
357
360
  accessories_description: string;
361
+ accessories_view_all: string;
358
362
  accessories_badge: string;
359
363
  contact_section_title: string;
360
364
  contact_section_subtitle: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4gBtB,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAihBtB,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -42,8 +42,6 @@ var e = {
42
42
  insurance_info_aria_label: "Show theft and accidental damage guarantee terms",
43
43
  insurance_modal_title: "Theft and accidental damage guarantee",
44
44
  insurance_modal_description: "Optional protection that limits your costs after covered accidental damage or theft.",
45
- insurance_modal_pricing_title: "Price by category",
46
- insurance_modal_pricing_description: "The exact amount depends on the bike selected.",
47
45
  insurance_modal_muscular_bike: "Regular bike",
48
46
  insurance_modal_electric_bike: "Electric bike",
49
47
  insurance_modal_price_per_day: "{{price}} per bike per day",
@@ -133,6 +131,7 @@ var e = {
133
131
  about_section_title: "About",
134
132
  about_section_heading: "About the storefront",
135
133
  about_section_fallback: "This shop hasn’t added a description yet.",
134
+ faq_section_title: "Frequently asked questions",
136
135
  testimonials: {
137
136
  title: "Our customers love our bikes and our service",
138
137
  reviews_label: "reviews",
@@ -206,8 +205,12 @@ var e = {
206
205
  go_to_checkout: "Go to checkout",
207
206
  checkout_title: "Confirm your details and payment",
208
207
  checkout_subtitle: "Confirm your details and payment · {{duration}}",
208
+ checkout_booking_period_edit: "Edit",
209
209
  checkout_summary_title: "Summary",
210
210
  checkout_summary_description: "Cart and pricing recap.",
211
+ checkout_mobile_summary_button: "View summary ({{count}})",
212
+ checkout_mobile_submit: "Send request",
213
+ checkout_mobile_continue_to_payment: "Continue to payment",
211
214
  checkout_booking_subtotal: "Subtotal",
212
215
  checkout_estimated_duration: "Estimated duration",
213
216
  checkout_estimated_total: "Total",
@@ -356,6 +359,7 @@ var e = {
356
359
  docs_contract_sale_acceptance_section_required_description: "The customer must scroll through the document and accept it before completion.",
357
360
  accessories_title: "Popular accessories",
358
361
  accessories_description: "Add accessories during checkout.",
362
+ accessories_view_all: "See all accessories",
359
363
  accessories_badge: "Accessory",
360
364
  contact_section_title: "Contact us",
361
365
  contact_section_subtitle: "Need help or have a specific question? Send us a message and we’ll reply simply.",
package/dist/i18n/fr.d.ts CHANGED
@@ -41,8 +41,6 @@ export declare const storefront: {
41
41
  insurance_info_aria_label: string;
42
42
  insurance_modal_title: string;
43
43
  insurance_modal_description: string;
44
- insurance_modal_pricing_title: string;
45
- insurance_modal_pricing_description: string;
46
44
  insurance_modal_muscular_bike: string;
47
45
  insurance_modal_electric_bike: string;
48
46
  insurance_modal_price_per_day: string;
@@ -132,6 +130,7 @@ export declare const storefront: {
132
130
  about_section_title: string;
133
131
  about_section_heading: string;
134
132
  about_section_fallback: string;
133
+ faq_section_title: string;
135
134
  testimonials: {
136
135
  title: string;
137
136
  reviews_label: string;
@@ -206,8 +205,12 @@ export declare const storefront: {
206
205
  go_to_checkout: string;
207
206
  checkout_title: string;
208
207
  checkout_subtitle: string;
208
+ checkout_booking_period_edit: string;
209
209
  checkout_summary_title: string;
210
210
  checkout_summary_description: string;
211
+ checkout_mobile_summary_button: string;
212
+ checkout_mobile_submit: string;
213
+ checkout_mobile_continue_to_payment: string;
211
214
  checkout_booking_subtotal: string;
212
215
  checkout_estimated_duration: string;
213
216
  checkout_estimated_total: string;
@@ -356,6 +359,7 @@ export declare const storefront: {
356
359
  docs_contract_sale_acceptance_section_required_description: string;
357
360
  accessories_title: string;
358
361
  accessories_description: string;
362
+ accessories_view_all: string;
359
363
  accessories_badge: string;
360
364
  contact_section_title: string;
361
365
  contact_section_subtitle: string;
@@ -1 +1 @@
1
- {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6gBtB,CAAA"}
1
+ {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkhBtB,CAAA"}
package/dist/i18n/fr.js CHANGED
@@ -42,8 +42,6 @@ var e = {
42
42
  insurance_info_aria_label: "Afficher les conditions de la garantie casse et vol",
43
43
  insurance_modal_title: "Garantie casse et vol",
44
44
  insurance_modal_description: "Une protection facultative pour limiter les frais en cas de dommage accidentel ou de vol couvert.",
45
- insurance_modal_pricing_title: "Tarif par catégorie",
46
- insurance_modal_pricing_description: "Le montant exact dépend du vélo choisi.",
47
45
  insurance_modal_muscular_bike: "Vélo musculaire",
48
46
  insurance_modal_electric_bike: "Vélo électrique",
49
47
  insurance_modal_price_per_day: "{{price}} par vélo et par jour",
@@ -133,6 +131,7 @@ var e = {
133
131
  about_section_title: "Présentation",
134
132
  about_section_heading: "Présentation de la boutique",
135
133
  about_section_fallback: "Cette boutique n’a pas encore ajouté de présentation.",
134
+ faq_section_title: "Questions fréquentes",
136
135
  testimonials: {
137
136
  title: "Nos clients adorent nos vélos et notre service",
138
137
  reviews_label: "avis",
@@ -207,8 +206,12 @@ var e = {
207
206
  go_to_checkout: "Aller au paiement",
208
207
  checkout_title: "Confirmez vos informations et le paiement",
209
208
  checkout_subtitle: "Confirmez vos informations et le paiement · {{duration}}",
209
+ checkout_booking_period_edit: "Modifier",
210
210
  checkout_summary_title: "Récapitulatif",
211
211
  checkout_summary_description: "Panier et récap des montants.",
212
+ checkout_mobile_summary_button: "Voir le récapitulatif ({{count}})",
213
+ checkout_mobile_submit: "Envoyer la demande",
214
+ checkout_mobile_continue_to_payment: "Continuer au paiement",
212
215
  checkout_booking_subtotal: "Sous-total",
213
216
  checkout_estimated_duration: "Durée estimée",
214
217
  checkout_estimated_total: "Total",
@@ -357,6 +360,7 @@ var e = {
357
360
  docs_contract_sale_acceptance_section_required_description: "Le client doit faire défiler le document et l'accepter avant la finalisation.",
358
361
  accessories_title: "Accessoires populaires",
359
362
  accessories_description: "Ajoutez des accessoires pendant le paiement.",
363
+ accessories_view_all: "Voir tous les accessoires",
360
364
  accessories_badge: "Accessoire",
361
365
  contact_section_title: "Contact",
362
366
  contact_section_subtitle: "Une question ou un besoin précis ? Écrivez-nous, on vous répond simplement.",