@loczer/storefront-sdk 0.193.0 → 0.195.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 (82) hide show
  1. package/dist/chunks/pkg/booking-engine/dist/models/{Product.shared-cjcvMCMa.js → Product.shared-iVSHRdn4.js} +21 -21
  2. package/dist/chunks/pkg/booking-engine/dist/schemas/{base-asset-CsOe0vXi.js → base-asset-BRQVuIes.js} +1 -1
  3. package/dist/chunks/pkg/booking-engine/dist/schemas/{base-booking-Sjsqh31e.js → base-booking-Bhy2Kww1.js} +2 -2
  4. package/dist/chunks/pkg/booking-engine/dist/schemas/{base-product-C_ATjuc6.js → base-product-BJHQLX8t.js} +1 -1
  5. package/dist/chunks/pkg/booking-engine/dist/schemas/{insurance-B01h642r.js → insurance-CPeHsTss.js} +1 -1
  6. package/dist/chunks/pkg/booking-engine/dist/schemas-BfXM1Dgb.js +14 -0
  7. package/dist/chunks/pkg/ui/dist/{Button-CxG2fSpA.js → Button-Cr_u8vnh.js} +1 -1
  8. package/dist/chunks/pkg/ui/dist/{Dialog-4leTWiev.js → Dialog-CczmPDwY.js} +1 -1
  9. package/dist/chunks/pkg/ui/dist/Drawer/{index-DA5V7R_q.js → index-CSvSVP_J.js} +1 -1
  10. package/dist/chunks/pkg/ui/dist/Map/{MapContent-BmKjdWmq.js → MapContent-CDeWtwKa.js} +1 -1
  11. package/dist/chunks/pkg/ui/dist/{Map-CsOTdTtL.js → Map-Cs7wgtH9.js} +2 -2
  12. package/dist/chunks/pkg/ui/dist/{MorphingModalWizard-CfEqkJ0y.js → MorphingModalWizard-j1CgFGLe.js} +4 -3
  13. package/dist/chunks/pkg/ui/dist/{ResponsiveDialog-C6IWYoIg.js → ResponsiveDialog-BVwhTZQo.js} +3 -3
  14. package/dist/chunks/pkg/ui/dist/{ScrollArea-Bjwo84cv.js → ScrollArea-BqLd0xZj.js} +1 -1
  15. package/dist/chunks/pkg/ui/dist/Spinner/{index-DzMEU0iA.js → index-Cgi70z_E.js} +1 -1
  16. package/dist/chunks/pkg/ui/dist/lib/utils-DXB19bzk.js +8 -0
  17. package/dist/components/BikeProductCard/index.js +6 -6
  18. package/dist/components/BookingBikeVariantDialog/index.js +7 -7
  19. package/dist/components/BookingFlowSteps/index.js +11 -11
  20. package/dist/components/BookingPeriodSelector/components/BookingEndDateField.js +1 -1
  21. package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.d.ts.map +1 -1
  22. package/dist/components/BookingPeriodSelector/components/BookingEndTimeField.js +36 -54
  23. package/dist/components/BookingPeriodSelector/components/BookingStartDateField.js +1 -1
  24. package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.d.ts.map +1 -1
  25. package/dist/components/BookingPeriodSelector/components/BookingStartTimeField.js +36 -54
  26. package/dist/components/BookingPeriodSelector/components/BookingTimeSlotsStatus.js +1 -1
  27. package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.d.ts +7 -0
  28. package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.d.ts.map +1 -0
  29. package/dist/components/BookingPeriodSelector/components/internal/BookingHourPickerField.js +27 -0
  30. package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.d.ts +36 -0
  31. package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.d.ts.map +1 -0
  32. package/dist/components/BookingPeriodSelector/components/internal/StorefrontHourPickerField.js +830 -0
  33. package/dist/components/BookingPeriodSelector/components/internal/useIsTouchDevice.d.ts +2 -0
  34. package/dist/components/BookingPeriodSelector/components/internal/useIsTouchDevice.d.ts.map +1 -0
  35. package/dist/components/BookingPeriodSelector/components/internal/useIsTouchDevice.js +21 -0
  36. package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts +4 -1
  37. package/dist/components/BookingPeriodSelector/useBookingPeriodController.d.ts.map +1 -1
  38. package/dist/components/BookingPeriodSelector/useBookingPeriodController.js +114 -110
  39. package/dist/components/ContactSection/index.js +35 -35
  40. package/dist/components/ContractSaleDocument/DocumentAcceptanceSection.js +4 -4
  41. package/dist/components/ContractSaleDocument/ThumbnailSidebar.js +1 -1
  42. package/dist/components/DeliveryAddressSelector/index.js +5 -5
  43. package/dist/components/Footer/index.js +11 -11
  44. package/dist/components/FulfillmentSection/index.js +9 -9
  45. package/dist/components/Header/index.js +61 -61
  46. package/dist/components/Map/index.js +1 -1
  47. package/dist/components/PoweredByLoczerBadge/index.js +5 -5
  48. package/dist/components/ProductPriceBadge/index.js +73 -73
  49. package/dist/components/StorefrontCancellationPolicyNotice/index.js +6 -6
  50. package/dist/components/StorefrontCartPanel/index.js +8 -8
  51. package/dist/components/StorefrontInsuranceNotice/index.js +6 -6
  52. package/dist/components/StorefrontPopupMessages/index.js +8 -8
  53. package/dist/components/payment/MollieCardFieldsForm.js +1 -1
  54. package/dist/components/payment/StripeCardFieldsForm.js +1 -1
  55. package/dist/index.d.ts +15 -3
  56. package/dist/index.js +70 -70
  57. package/dist/lib/booking.js +1 -1
  58. package/dist/lib/checkoutSubmit.js +2 -2
  59. package/dist/lib/utils.d.ts +3 -1
  60. package/dist/lib/utils.d.ts.map +1 -1
  61. package/dist/lib/utils.js +9 -5
  62. package/dist/pages/BookingPage.d.ts.map +1 -1
  63. package/dist/pages/BookingPage.js +187 -159
  64. package/dist/pages/CheckoutPaymentPage.js +1 -1
  65. package/dist/pages/ContractSaleDocumentPage.js +15 -15
  66. package/dist/pages/HomePage.d.ts.map +1 -1
  67. package/dist/pages/HomePage.js +263 -257
  68. package/dist/pages/PaymentLinkPage.js +1 -1
  69. package/dist/pages/PaymentLinkSuccessPage.js +1 -1
  70. package/dist/pages/ProductPage.js +143 -143
  71. package/dist/pages/checkout/components/CheckoutCouponCard.js +5 -5
  72. package/dist/pages/checkout/components/CheckoutPaymentSummaryCard.js +1 -1
  73. package/dist/storefront.css +1 -1
  74. package/dist/storefrontSchemas.js +1 -1
  75. package/package.json +5 -1
  76. package/dist/chunks/node_modules/clsx/dist/clsx-CdyIqUTr.js +0 -16
  77. package/dist/chunks/node_modules/tailwind-merge/dist/bundle-mjs-CF4QheV5.js +0 -1608
  78. package/dist/chunks/pkg/booking-engine/dist/schemas-D_yUBLa0.js +0 -14
  79. package/dist/chunks/pkg/ui/dist/lib/utils-BN5KOMSm.js +0 -8
  80. package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts +0 -22
  81. package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.d.ts.map +0 -1
  82. package/dist/components/BookingPeriodSelector/components/internal/ModalHourPickerField.js +0 -333
@@ -1,8 +1,8 @@
1
1
  import { I18nProvider as e } from "../../i18n/I18nProvider.js";
2
2
  import { useId as t } from "react";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
- import { cn as i } from "@rpcbase/ui";
5
- import { useTranslation as a } from "react-i18next";
4
+ import { useTranslation as i } from "react-i18next";
5
+ import { cn as a } from "@rpcbase/ui";
6
6
  //#region src/components/PoweredByLoczerBadge/index.tsx
7
7
  var o = "https://loczer.com";
8
8
  function s({ className: e }) {
@@ -47,14 +47,14 @@ function c({ language: t, ...r }) {
47
47
  });
48
48
  }
49
49
  function l({ className: e, href: t = o, markClassName: c, rel: l = "noopener noreferrer", showTagline: u = !0, target: d = "_blank", ...f }) {
50
- let { t: p } = a();
50
+ let { t: p } = i();
51
51
  return /* @__PURE__ */ r("a", {
52
- className: i("group inline-flex w-fit items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-3 py-2 shadow-sm transition hover:border-white/20 hover:bg-white/10", e),
52
+ className: a("group inline-flex w-fit items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-3 py-2 shadow-sm transition hover:border-white/20 hover:bg-white/10", e),
53
53
  href: t,
54
54
  target: d,
55
55
  rel: l,
56
56
  ...f,
57
- children: [/* @__PURE__ */ n(s, { className: i("h-8 w-8 flex-shrink-0", c) }), /* @__PURE__ */ r("span", {
57
+ children: [/* @__PURE__ */ n(s, { className: a("h-8 w-8 flex-shrink-0", c) }), /* @__PURE__ */ r("span", {
58
58
  className: "flex flex-col items-start leading-tight text-left",
59
59
  children: [/* @__PURE__ */ n("span", {
60
60
  className: "font-medium text-white/90 group-hover:text-white",
@@ -1,34 +1,34 @@
1
1
  import { buildDailyPriceRows as e, buildPriceTierLabels as t, formatStorefrontPriceMinor as n } from "../../lib/pricing.js";
2
2
  import { Badge as r, badgeVariants as i } from "../../ui/badge.js";
3
3
  import { useOptionalStorefront as a } from "../../StorefrontProvider.js";
4
- import { useEffect as o, useId as s, useRef as c, useState as l } from "react";
5
- import { Fragment as ee, jsx as u, jsxs as d } from "react/jsx-runtime";
6
- import { cn as f } from "@rpcbase/ui";
7
- import { useMediaQuery as p } from "@rpcbase/client";
8
- import { useTranslation as te } from "react-i18next";
9
- import { Info as ne, Mail as re, Phone as ie, TrendingDown as m } from "lucide-react";
10
- import { Drawer as h } from "@base-ui/react/drawer";
11
- import { Popover as g } from "@base-ui/react/popover";
4
+ import { useEffect as o, useId as ee, useRef as s, useState as c } from "react";
5
+ import { Fragment as te, jsx as l, jsxs as u } from "react/jsx-runtime";
6
+ import { useMediaQuery as d } from "@rpcbase/client";
7
+ import { useTranslation as f } from "react-i18next";
8
+ import { cn as p } from "@rpcbase/ui";
9
+ import { Info as ne, Mail as re, Phone as m, TrendingDown as h } from "lucide-react";
10
+ import { Drawer as g } from "@base-ui/react/drawer";
11
+ import { Popover as _ } from "@base-ui/react/popover";
12
12
  //#region src/components/ProductPriceBadge/index.tsx
13
- var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-popover-open", v = (e) => typeof Node < "u" && e instanceof Node, y = (e) => {
14
- typeof window > "u" || window.dispatchEvent(new CustomEvent(_, { detail: { id: e } }));
15
- }, b = ({ prices: b, minPriceMinor: x, className: S }) => {
16
- let { t: C, i18n: w } = te(), T = s(), E = a(), se = p(oe), D = p("(hover: none), (pointer: coarse)"), O = !!(se || D), [k, A] = l(null), [j, M] = l(!1), N = c(null), P = c(null), F = c(null), I = c(null), L = k !== null, R = t(b, w.language, C), z = e(b, w.language), B = R[0], V = R[1], H = () => {
13
+ var ie = 180, ae = "(max-width: 767px)", v = "loczer:storefront:product-price-popover-open", y = (e) => typeof Node < "u" && e instanceof Node, b = (e) => {
14
+ typeof window > "u" || window.dispatchEvent(new CustomEvent(v, { detail: { id: e } }));
15
+ }, x = ({ prices: x, minPriceMinor: S, className: C }) => {
16
+ let { t: w, i18n: T } = f(), E = ee(), D = a(), oe = d(ae), se = d("(hover: none), (pointer: coarse)"), O = !!(oe || se), [k, A] = c(null), [j, M] = c(!1), N = s(null), P = s(null), F = s(null), I = s(null), L = k !== null, R = t(x, T.language, w), z = e(x, T.language), B = R[0], V = R[1], H = () => {
17
17
  N.current &&= (clearTimeout(N.current), null);
18
18
  }, U = (e) => {
19
- O || (H(), A((t) => t === "click" ? t : e), y(T));
19
+ O || (H(), A((t) => t === "click" ? t : e), b(E));
20
20
  }, W = () => {
21
21
  H(), A(null);
22
22
  }, G = () => {
23
- H(), M(!0), y(T);
23
+ H(), M(!0), b(E);
24
24
  }, ce = () => {
25
25
  M(!1);
26
26
  }, le = () => {
27
27
  L || U("hover");
28
- }, ue = (e) => v(e) ? !!(P.current?.contains(e) || I.current?.contains(e)) : !1, K = (e) => v(e) ? !!(F.current?.contains(e) || I.current?.contains(e)) : !1, q = (e) => {
28
+ }, ue = (e) => y(e) ? !!(P.current?.contains(e) || I.current?.contains(e)) : !1, K = (e) => y(e) ? !!(F.current?.contains(e) || I.current?.contains(e)) : !1, q = (e) => {
29
29
  k !== "hover" || K(e) || (H(), N.current = setTimeout(() => {
30
30
  A((e) => e === "hover" ? null : e), N.current = null;
31
- }, ae));
31
+ }, ie));
32
32
  }, J = (e) => {
33
33
  q(e?.relatedTarget);
34
34
  }, de = (e) => {
@@ -40,12 +40,12 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
40
40
  H();
41
41
  };
42
42
  let e = (e) => {
43
- e.detail?.id !== T && (H(), A(null), M(!1));
43
+ e.detail?.id !== E && (H(), A(null), M(!1));
44
44
  };
45
- return window.addEventListener(_, e), () => {
46
- window.removeEventListener(_, e), H();
45
+ return window.addEventListener(v, e), () => {
46
+ window.removeEventListener(v, e), H();
47
47
  };
48
- }, [T]), o(() => {
48
+ }, [E]), o(() => {
49
49
  if (k !== "hover" || typeof window > "u") return;
50
50
  let e = (e) => {
51
51
  if (K(e.target)) {
@@ -63,94 +63,94 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
63
63
  return;
64
64
  }
65
65
  M(!1);
66
- }, [O]), !B) return typeof x == "number" ? /* @__PURE__ */ u(r, {
66
+ }, [O]), !B) return typeof S == "number" ? /* @__PURE__ */ l(r, {
67
67
  variant: "outline",
68
- className: f("border-slate-200 bg-white text-slate-700", S),
69
- children: /* @__PURE__ */ u("span", { children: C("price_from", { price: n(x, w.language) }) })
68
+ className: p("border-slate-200 bg-white text-slate-700", C),
69
+ children: /* @__PURE__ */ l("span", { children: w("price_from", { price: n(S, T.language) }) })
70
70
  }) : null;
71
- let Y = f(i({ variant: "outline" }), "gap-1.5 border-slate-200 bg-white text-slate-700 outline-none transition hover:border-slate-300 hover:text-slate-950 focus:border-slate-200 focus:outline-none focus:ring-0 focus:ring-transparent focus:ring-offset-0 focus-visible:border-slate-200 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0", z.length > 0 && "cursor-pointer", S), X = E?.storefrontConfiguration.shop.emailAddress?.trim(), Z = E?.storefrontConfiguration.shop.contactPhone1?.trim(), fe = !!(X || Z), Q = () => /* @__PURE__ */ d(ee, { children: [
72
- /* @__PURE__ */ u("span", {
71
+ let Y = p(i({ variant: "outline" }), "gap-1.5 border-slate-200 bg-white text-slate-700 outline-none transition hover:border-slate-300 hover:text-slate-950 focus:border-slate-200 focus:outline-none focus:ring-0 focus:ring-transparent focus:ring-offset-0 focus-visible:border-slate-200 focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0", z.length > 0 && "cursor-pointer", C), X = D?.storefrontConfiguration.shop.emailAddress?.trim(), Z = D?.storefrontConfiguration.shop.contactPhone1?.trim(), fe = !!(X || Z), Q = () => /* @__PURE__ */ u(te, { children: [
72
+ /* @__PURE__ */ l("span", {
73
73
  className: "font-semibold",
74
74
  children: B
75
75
  }),
76
- V ? /* @__PURE__ */ d("span", {
76
+ V ? /* @__PURE__ */ u("span", {
77
77
  className: "inline-flex items-center gap-1 text-slate-500",
78
- children: [/* @__PURE__ */ u(m, {
78
+ children: [/* @__PURE__ */ l(h, {
79
79
  className: "h-3 w-3",
80
80
  strokeWidth: 2.4,
81
81
  "aria-hidden": "true"
82
- }), /* @__PURE__ */ u("span", { children: C("price_then", { price: V }) })]
82
+ }), /* @__PURE__ */ l("span", { children: w("price_then", { price: V }) })]
83
83
  }) : null,
84
- z.length > 0 ? /* @__PURE__ */ u("span", {
84
+ z.length > 0 ? /* @__PURE__ */ l("span", {
85
85
  ref: F,
86
86
  className: "inline-flex shrink-0 items-center text-slate-500",
87
87
  onMouseEnter: () => U("hover"),
88
88
  onMouseMove: le,
89
89
  onMouseLeave: J,
90
- children: /* @__PURE__ */ u(ne, {
90
+ children: /* @__PURE__ */ l(ne, {
91
91
  className: "h-3 w-3",
92
92
  "aria-hidden": "true"
93
93
  })
94
94
  }) : null
95
- ] }), pe = () => fe ? /* @__PURE__ */ d("div", {
95
+ ] }), pe = () => fe ? /* @__PURE__ */ u("div", {
96
96
  className: "border-t border-slate-200 pt-2 text-slate-600",
97
- children: [/* @__PURE__ */ u("p", {
97
+ children: [/* @__PURE__ */ l("p", {
98
98
  className: "leading-snug",
99
- children: /* @__PURE__ */ u("span", { children: C("price_table_contact_prompt") })
100
- }), /* @__PURE__ */ d("div", {
99
+ children: /* @__PURE__ */ l("span", { children: w("price_table_contact_prompt") })
100
+ }), /* @__PURE__ */ u("div", {
101
101
  className: "mt-2 flex flex-wrap gap-x-3 gap-y-1",
102
- children: [Z ? /* @__PURE__ */ d("a", {
102
+ children: [Z ? /* @__PURE__ */ u("a", {
103
103
  className: "inline-flex min-w-0 items-center gap-1 font-medium text-slate-800 underline-offset-4 hover:underline",
104
104
  href: `tel:${Z}`,
105
- children: [/* @__PURE__ */ u(ie, {
105
+ children: [/* @__PURE__ */ l(m, {
106
106
  className: "h-3 w-3 shrink-0",
107
107
  "aria-hidden": "true"
108
- }), /* @__PURE__ */ u("span", {
108
+ }), /* @__PURE__ */ l("span", {
109
109
  className: "whitespace-nowrap",
110
110
  children: Z
111
111
  })]
112
- }) : null, X ? /* @__PURE__ */ d("a", {
112
+ }) : null, X ? /* @__PURE__ */ u("a", {
113
113
  className: "inline-flex min-w-0 items-center gap-1 font-medium text-slate-800 underline-offset-4 hover:underline",
114
114
  href: `mailto:${X}`,
115
- children: [/* @__PURE__ */ u(re, {
115
+ children: [/* @__PURE__ */ l(re, {
116
116
  className: "h-3 w-3 shrink-0",
117
117
  "aria-hidden": "true"
118
- }), /* @__PURE__ */ u("span", {
118
+ }), /* @__PURE__ */ l("span", {
119
119
  className: "break-all",
120
120
  children: X
121
121
  })]
122
122
  }) : null]
123
123
  })]
124
- }) : null, $ = (e, t) => /* @__PURE__ */ d("div", {
125
- className: f("grid gap-2", t === "popover" ? "text-xs" : "text-base"),
124
+ }) : null, $ = (e, t) => /* @__PURE__ */ u("div", {
125
+ className: p("grid gap-2", t === "popover" ? "text-xs" : "text-base"),
126
126
  children: [
127
- e ? /* @__PURE__ */ u("p", {
127
+ e ? /* @__PURE__ */ l("p", {
128
128
  className: "font-semibold uppercase tracking-[0.12em] text-slate-500",
129
- children: /* @__PURE__ */ u("span", { children: C("price_table_title") })
129
+ children: /* @__PURE__ */ l("span", { children: w("price_table_title") })
130
130
  }) : null,
131
- /* @__PURE__ */ u("ul", {
132
- className: f("grid gap-1 text-slate-600", t === "drawer" && "gap-1.5"),
131
+ /* @__PURE__ */ l("ul", {
132
+ className: p("grid gap-1 text-slate-600", t === "drawer" && "gap-1.5"),
133
133
  children: z.map(({ dayCount: e, totalPriceLabel: n, perDayPriceLabel: r }) => {
134
- let i = C("price_table_day", { count: e }), a = C("price_table_per_day", { price: r });
135
- return /* @__PURE__ */ u("li", { children: /* @__PURE__ */ d("div", {
134
+ let i = w("price_table_day", { count: e }), a = w("price_table_per_day", { price: r });
135
+ return /* @__PURE__ */ l("li", { children: /* @__PURE__ */ u("div", {
136
136
  className: "flex items-baseline gap-2",
137
137
  children: [
138
- /* @__PURE__ */ u("span", {
138
+ /* @__PURE__ */ l("span", {
139
139
  className: "shrink-0 leading-tight",
140
140
  children: i
141
141
  }),
142
- /* @__PURE__ */ u("span", {
142
+ /* @__PURE__ */ l("span", {
143
143
  className: "mx-1 flex-1 border-b border-dotted border-slate-300",
144
144
  "aria-hidden": "true"
145
145
  }),
146
- /* @__PURE__ */ d("span", {
146
+ /* @__PURE__ */ u("span", {
147
147
  className: "shrink-0 font-medium leading-tight text-slate-950",
148
- children: [n, /* @__PURE__ */ d("span", {
149
- className: f("ml-1 font-medium text-slate-500", t === "popover" ? "text-xs" : "text-sm"),
148
+ children: [n, /* @__PURE__ */ u("span", {
149
+ className: p("ml-1 font-medium text-slate-500", t === "popover" ? "text-xs" : "text-sm"),
150
150
  children: [
151
- /* @__PURE__ */ u("span", { children: "(" }),
152
- /* @__PURE__ */ u("span", { children: a }),
153
- /* @__PURE__ */ u("span", { children: ")" })
151
+ /* @__PURE__ */ l("span", { children: "(" }),
152
+ /* @__PURE__ */ l("span", { children: a }),
153
+ /* @__PURE__ */ l("span", { children: ")" })
154
154
  ]
155
155
  })]
156
156
  })
@@ -161,17 +161,17 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
161
161
  pe()
162
162
  ]
163
163
  });
164
- return O ? /* @__PURE__ */ d(h.Root, {
164
+ return O ? /* @__PURE__ */ u(g.Root, {
165
165
  open: j,
166
166
  onOpenChange: (e) => {
167
167
  e ? G() : ce();
168
168
  },
169
169
  swipeDirection: "down",
170
- children: [/* @__PURE__ */ u(h.Trigger, {
170
+ children: [/* @__PURE__ */ l(g.Trigger, {
171
171
  ref: P,
172
172
  type: "button",
173
173
  className: Y,
174
- "aria-label": C("price_details_aria_label", { price: B }),
174
+ "aria-label": w("price_details_aria_label", { price: B }),
175
175
  "aria-expanded": j,
176
176
  onClick: (e) => {
177
177
  e.stopPropagation();
@@ -180,38 +180,38 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
180
180
  e.stopPropagation();
181
181
  },
182
182
  children: Q()
183
- }), /* @__PURE__ */ d(h.Portal, { children: [/* @__PURE__ */ u(h.Backdrop, { className: "pointer-events-auto fixed inset-0 z-50 bg-black/50 outline-none data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:animate-in data-[open]:fade-in-0" }), /* @__PURE__ */ u(h.Viewport, {
183
+ }), /* @__PURE__ */ u(g.Portal, { children: [/* @__PURE__ */ l(g.Backdrop, { className: "pointer-events-auto fixed inset-0 z-50 bg-black/50 outline-none data-[closed]:animate-out data-[closed]:fade-out-0 data-[open]:animate-in data-[open]:fade-in-0" }), /* @__PURE__ */ l(g.Viewport, {
184
184
  className: "pointer-events-none fixed inset-0 z-50",
185
- children: /* @__PURE__ */ d(h.Popup, {
185
+ children: /* @__PURE__ */ u(g.Popup, {
186
186
  className: "pointer-events-auto fixed inset-x-0 bottom-0 z-50 flex max-h-[90dvh] flex-col rounded-t-2xl border-t border-slate-200 bg-white text-slate-950 shadow-xl outline-none data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:slide-out-to-bottom data-[open]:animate-in data-[open]:fade-in-0 data-[open]:slide-in-from-bottom",
187
- children: [/* @__PURE__ */ u("div", {
187
+ children: [/* @__PURE__ */ l("div", {
188
188
  className: "mx-auto mt-4 h-2 w-[100px] shrink-0 rounded-full bg-slate-200",
189
189
  "aria-hidden": "true"
190
- }), /* @__PURE__ */ u(h.Content, { children: /* @__PURE__ */ d("div", {
190
+ }), /* @__PURE__ */ l(g.Content, { children: /* @__PURE__ */ u("div", {
191
191
  className: "flex max-h-[calc(90dvh-1rem)] flex-col",
192
- children: [/* @__PURE__ */ u("div", {
192
+ children: [/* @__PURE__ */ l("div", {
193
193
  className: "border-b border-slate-200 px-4 py-4 text-left",
194
- children: /* @__PURE__ */ u(h.Title, {
194
+ children: /* @__PURE__ */ l(g.Title, {
195
195
  className: "text-left text-lg font-semibold text-slate-950",
196
- children: /* @__PURE__ */ u("span", { children: C("price_table_title") })
196
+ children: /* @__PURE__ */ l("span", { children: w("price_table_title") })
197
197
  })
198
- }), /* @__PURE__ */ u("div", {
198
+ }), /* @__PURE__ */ l("div", {
199
199
  className: "flex-1 overflow-y-auto px-4 pb-6 pt-3",
200
200
  children: $(!1, "drawer")
201
201
  })]
202
202
  }) })]
203
203
  })
204
204
  })] })]
205
- }) : /* @__PURE__ */ d(g.Root, {
205
+ }) : /* @__PURE__ */ u(_.Root, {
206
206
  open: L,
207
207
  onOpenChange: (e) => {
208
208
  e ? U("click") : W();
209
209
  },
210
- children: [/* @__PURE__ */ u(g.Trigger, {
210
+ children: [/* @__PURE__ */ l(_.Trigger, {
211
211
  ref: P,
212
212
  type: "button",
213
213
  className: Y,
214
- "aria-label": C("price_details_aria_label", { price: B }),
214
+ "aria-label": w("price_details_aria_label", { price: B }),
215
215
  "aria-expanded": L,
216
216
  onBlur: de,
217
217
  onClick: (e) => {
@@ -221,13 +221,13 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
221
221
  e.stopPropagation();
222
222
  },
223
223
  children: Q()
224
- }), z.length > 0 ? /* @__PURE__ */ u(g.Portal, { children: /* @__PURE__ */ u(g.Positioner, {
224
+ }), z.length > 0 ? /* @__PURE__ */ l(_.Portal, { children: /* @__PURE__ */ l(_.Positioner, {
225
225
  side: "top",
226
226
  align: "end",
227
227
  sideOffset: 8,
228
228
  collisionPadding: 12,
229
229
  className: "pointer-events-auto z-[70] outline-none",
230
- children: /* @__PURE__ */ u(g.Popup, {
230
+ children: /* @__PURE__ */ l(_.Popup, {
231
231
  ref: I,
232
232
  initialFocus: !1,
233
233
  className: "w-64 rounded-xl border border-slate-200 bg-white p-3 text-slate-950 shadow-xl outline-none data-[closed]:animate-out data-[closed]:fade-out-0 data-[closed]:zoom-out-95 data-[open]:animate-in data-[open]:fade-in-0 data-[open]:zoom-in-95",
@@ -245,4 +245,4 @@ var ae = 180, oe = "(max-width: 767px)", _ = "loczer:storefront:product-price-po
245
245
  });
246
246
  };
247
247
  //#endregion
248
- export { b as ProductPriceBadge };
248
+ export { x as ProductPriceBadge };
@@ -1,9 +1,9 @@
1
1
  import { Button as e } from "../../ui/button.js";
2
- import { ResponsiveDialog as t, ResponsiveDialogContent as n, ResponsiveDialogDescription as r, ResponsiveDialogFooter as i, ResponsiveDialogHeader as a, ResponsiveDialogTitle as o } from "../../chunks/pkg/ui/dist/ResponsiveDialog-C6IWYoIg.js";
2
+ import { ResponsiveDialog as t, ResponsiveDialogContent as n, ResponsiveDialogDescription as r, ResponsiveDialogFooter as i, ResponsiveDialogHeader as a, ResponsiveDialogTitle as o } from "../../chunks/pkg/ui/dist/ResponsiveDialog-BVwhTZQo.js";
3
3
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
4
- import { cn as l } from "@rpcbase/ui";
5
- import { useSearchParams as u } from "@rpcbase/router";
6
- import { useTranslation as d } from "react-i18next";
4
+ import { useSearchParams as l } from "@rpcbase/router";
5
+ import { useTranslation as u } from "react-i18next";
6
+ import { cn as d } from "@rpcbase/ui";
7
7
  import { CheckCircle2 as f, Info as p } from "lucide-react";
8
8
  //#region src/components/StorefrontCancellationPolicyNotice/index.tsx
9
9
  var m = .95, h = "show_cancellation_policy_modal", g = (e) => e.tiers.length === 0 ? [] : [...e.tiers].sort((e, t) => e.upToHours - t.upToHours), _ = (e) => g(e).find((e) => e.refundPercentage >= m) ?? null, v = (e, t) => {
@@ -17,7 +17,7 @@ var m = .95, h = "show_cancellation_policy_modal", g = (e) => e.tiers.length ===
17
17
  }
18
18
  };
19
19
  function y({ policy: m, className: y }) {
20
- let { t: b, i18n: x } = d(), [S, C] = u(), w = S.get(h) === "true", T = g(m), E = _(m), D = (e) => {
20
+ let { t: b, i18n: x } = u(), [S, C] = l(), w = S.get(h) === "true", T = g(m), E = _(m), D = (e) => {
21
21
  let t = new URLSearchParams(S);
22
22
  e ? t.set(h, "true") : t.delete(h), C(t, { replace: !0 });
23
23
  };
@@ -27,7 +27,7 @@ function y({ policy: m, className: y }) {
27
27
  return t >= 72 && t % 24 == 0 ? b("cancellation_policy_duration_days", { count: t / 24 }) : b("cancellation_policy_duration_hours", { count: t });
28
28
  };
29
29
  return /* @__PURE__ */ c("li", {
30
- className: l("flex items-start gap-3", y),
30
+ className: d("flex items-start gap-3", y),
31
31
  "data-testid": "storefront-cancellation-policy-notice",
32
32
  children: [
33
33
  /* @__PURE__ */ s(f, {
@@ -5,15 +5,15 @@ import { Input as r } from "../../ui/input.js";
5
5
  import { Card as i } from "../../ui/card.js";
6
6
  import { ProductWarningNotice as a } from "../ProductWarningNotice/index.js";
7
7
  import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
8
- import { cn as l } from "@rpcbase/ui";
9
- import { Link as u } from "@rpcbase/router";
10
- import { useTranslation as d } from "react-i18next";
8
+ import { Link as l } from "@rpcbase/router";
9
+ import { useTranslation as u } from "react-i18next";
10
+ import { cn as d } from "@rpcbase/ui";
11
11
  import { ArrowRight as f, Trash2 as p } from "lucide-react";
12
12
  //#region src/components/StorefrontCartPanel/index.tsx
13
13
  function m({ lines: m, itemCount: h, totalPerDayMinor: g, estimatedDays: _, estimatedTotalMinor: v, discountedEstimatedTotalMinor: y, discountAmountMinor: b, lateReturnSurchargeMinor: x, couponCode: S, durationLabel: C, title: w, description: T, checkoutPath: E, showCheckoutAction: D = !1, showClearAction: O = !1, editable: k = !0, summaryAddon: A, stickyTopClassName: j = "top-24", onQuantityChange: M, onRemove: N, onClear: P }) {
14
- let { t: F, i18n: I } = d();
14
+ let { t: F, i18n: I } = u();
15
15
  return /* @__PURE__ */ c(i, {
16
- className: l("sticky border-slate-200 bg-white shadow-sm", j),
16
+ className: d("sticky border-slate-200 bg-white shadow-sm", j),
17
17
  children: [/* @__PURE__ */ c("div", {
18
18
  className: "border-b border-slate-200 px-4 py-4",
19
19
  children: [/* @__PURE__ */ c("div", {
@@ -158,9 +158,9 @@ function m({ lines: m, itemCount: h, totalPerDayMinor: g, estimatedDays: _, esti
158
158
  ] }) : null,
159
159
  /* @__PURE__ */ c("div", {
160
160
  className: "grid gap-2",
161
- children: [D && E ? /* @__PURE__ */ s(u, {
161
+ children: [D && E ? /* @__PURE__ */ s(l, {
162
162
  to: E,
163
- className: l(m.length > 0 ? "block" : "hidden"),
163
+ className: d(m.length > 0 ? "block" : "hidden"),
164
164
  children: /* @__PURE__ */ c(n, {
165
165
  className: "w-full gap-2",
166
166
  children: [/* @__PURE__ */ s("span", { children: F("checkout_button") }), /* @__PURE__ */ s(f, {
@@ -171,7 +171,7 @@ function m({ lines: m, itemCount: h, totalPerDayMinor: g, estimatedDays: _, esti
171
171
  }) : null, O && P ? /* @__PURE__ */ s(n, {
172
172
  type: "button",
173
173
  variant: "outline",
174
- className: l(m.length > 0 ? "w-full gap-2" : "hidden"),
174
+ className: d(m.length > 0 ? "w-full gap-2" : "hidden"),
175
175
  onClick: P,
176
176
  children: /* @__PURE__ */ s("span", { children: F("cart_clear") })
177
177
  }) : null]
@@ -1,10 +1,10 @@
1
1
  import { formatStorefrontPriceMinor as e } from "../../lib/pricing.js";
2
2
  import { Button as t } from "../../ui/button.js";
3
- import { ResponsiveDialog as n, ResponsiveDialogContent as r, ResponsiveDialogDescription as i, ResponsiveDialogFooter as a, ResponsiveDialogHeader as o, ResponsiveDialogTitle as s } from "../../chunks/pkg/ui/dist/ResponsiveDialog-C6IWYoIg.js";
3
+ import { ResponsiveDialog as n, ResponsiveDialogContent as r, ResponsiveDialogDescription as i, ResponsiveDialogFooter as a, ResponsiveDialogHeader as o, ResponsiveDialogTitle as s } from "../../chunks/pkg/ui/dist/ResponsiveDialog-BVwhTZQo.js";
4
4
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
- import { cn as u } from "@rpcbase/ui";
6
- import { useSearchParams as d } from "@rpcbase/router";
7
- import { useTranslation as f } from "react-i18next";
5
+ import { useSearchParams as u } from "@rpcbase/router";
6
+ import { useTranslation as d } from "react-i18next";
7
+ import { cn as f } from "@rpcbase/ui";
8
8
  import { CheckCircle2 as p, Info as m, Umbrella as h } from "lucide-react";
9
9
  //#region src/components/StorefrontInsuranceNotice/index.tsx
10
10
  var g = "show_insurance_modal", _ = (e, t) => {
@@ -12,7 +12,7 @@ var g = "show_insurance_modal", _ = (e, t) => {
12
12
  return [...new Set(n)].sort((e, t) => e - t);
13
13
  };
14
14
  function v({ bikes: v, currency: y, className: b }) {
15
- let { t: x, i18n: S } = f(), [C, w] = d(), T = C.get(g) === "true", E = (e) => {
15
+ let { t: x, i18n: S } = d(), [C, w] = u(), T = C.get(g) === "true", E = (e) => {
16
16
  let t = new URLSearchParams(C);
17
17
  e ? t.set(g, "true") : t.delete(g), w(t, { replace: !0 });
18
18
  }, D = (t) => {
@@ -33,7 +33,7 @@ function v({ bikes: v, currency: y, className: b }) {
33
33
  price: D("e-bike")
34
34
  }];
35
35
  return /* @__PURE__ */ l("li", {
36
- className: u("flex items-start gap-3", b),
36
+ className: f("flex items-start gap-3", b),
37
37
  "data-testid": "storefront-insurance-notice",
38
38
  children: [
39
39
  /* @__PURE__ */ c(h, {
@@ -2,12 +2,12 @@ import { getLocalizedEntry as e, getLocalizedValue as t } from "../../localizati
2
2
  import { buildStorefrontImageUrl as n } from "../../lib/storefrontImage.js";
3
3
  import { Button as r } from "../../ui/button.js";
4
4
  import { isAutomationRuntime as i } from "../../lib/isAutomationRuntime.js";
5
- import { ResponsiveDialog as a, ResponsiveDialogContent as o, ResponsiveDialogDescription as s, ResponsiveDialogFooter as c, ResponsiveDialogHeader as l, ResponsiveDialogTitle as u } from "../../chunks/pkg/ui/dist/ResponsiveDialog-C6IWYoIg.js";
5
+ import { ResponsiveDialog as a, ResponsiveDialogContent as o, ResponsiveDialogDescription as s, ResponsiveDialogFooter as c, ResponsiveDialogHeader as l, ResponsiveDialogTitle as u } from "../../chunks/pkg/ui/dist/ResponsiveDialog-BVwhTZQo.js";
6
6
  import { useEffect as d, useState as f } from "react";
7
7
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
8
- import { cn as h } from "@rpcbase/ui";
9
- import { useLocation as g, useParams as _ } from "@rpcbase/router";
10
- import { useTranslation as v } from "react-i18next";
8
+ import { useLocation as h, useParams as g } from "@rpcbase/router";
9
+ import { useTranslation as _ } from "react-i18next";
10
+ import { cn as v } from "@rpcbase/ui";
11
11
  import { Info as y, X as b } from "lucide-react";
12
12
  //#region src/components/StorefrontPopupMessages/index.tsx
13
13
  var x = "loczer-storefront-popup-message-dismissed", S = (e, t) => `${x}:${e || "storefront"}:${t}`, C = (e) => {
@@ -58,7 +58,7 @@ var x = "loczer-storefront-popup-message-dismissed", S = (e, t) => `${x}:${e ||
58
58
  };
59
59
  }, A = "absolute right-5 top-5 z-10 flex h-9 w-9 items-center justify-center rounded-full bg-white/12 text-white/75 ring-1 ring-white/75 backdrop-blur-lg transition hover:bg-white/18 hover:text-white/85 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/85";
60
60
  function j({ storefrontConfiguration: e }) {
61
- let { t, i18n: n } = v(), { storeSlug: x } = _(), S = g(), [C, E] = f(null), [j, M] = f(() => /* @__PURE__ */ new Set()), N = x?.trim() || e?.storeSlug || "", P = new URLSearchParams(S.search).get("popup_e2e") === "1", F = i() && !P ? [] : e?.content?.modalMessages ?? [];
61
+ let { t, i18n: n } = _(), { storeSlug: x } = g(), S = h(), [C, E] = f(null), [j, M] = f(() => /* @__PURE__ */ new Set()), N = x?.trim() || e?.storeSlug || "", P = new URLSearchParams(S.search).get("popup_e2e") === "1", F = i() && !P ? [] : e?.content?.modalMessages ?? [];
62
62
  d(() => {
63
63
  let t = () => {
64
64
  E(D(e?.shop.timeZone));
@@ -126,7 +126,7 @@ function j({ storefrontConfiguration: e }) {
126
126
  className: "max-w-[28rem] text-left text-3xl font-semibold leading-tight text-white",
127
127
  children: /* @__PURE__ */ p("span", { children: I.title })
128
128
  }), /* @__PURE__ */ p(s, {
129
- className: h("mt-2 max-w-[30rem] text-left text-sm leading-6 text-white/85", !I.subtitle && "sr-only"),
129
+ className: v("mt-2 max-w-[30rem] text-left text-sm leading-6 text-white/85", !I.subtitle && "sr-only"),
130
130
  children: /* @__PURE__ */ p("span", { children: V })
131
131
  })]
132
132
  })
@@ -148,7 +148,7 @@ function j({ storefrontConfiguration: e }) {
148
148
  className: "text-left text-lg font-semibold leading-6 text-slate-950",
149
149
  children: /* @__PURE__ */ p("span", { children: I.title })
150
150
  }), /* @__PURE__ */ p(s, {
151
- className: h("text-left text-sm text-slate-600", !I.subtitle && "sr-only"),
151
+ className: v("text-left text-sm text-slate-600", !I.subtitle && "sr-only"),
152
152
  children: /* @__PURE__ */ p("span", { children: V })
153
153
  })]
154
154
  })]
@@ -170,7 +170,7 @@ function j({ storefrontConfiguration: e }) {
170
170
  })
171
171
  }, e))
172
172
  }) : null, I.messageHtml ? /* @__PURE__ */ p("div", {
173
- className: h("text-sm leading-6 text-slate-700 [&_a]:text-slate-950 [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-slate-300 [&_blockquote]:pl-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h2]:text-xl [&_h2]:font-semibold [&_h3]:text-lg [&_h3]:font-semibold [&_li]:my-1 [&_ol]:list-decimal [&_ol]:pl-6 [&_p]:my-2 [&_ul]:list-disc [&_ul]:pl-6", !I.subtitle && "text-base leading-7"),
173
+ className: v("text-sm leading-6 text-slate-700 [&_a]:text-slate-950 [&_a]:underline [&_blockquote]:border-l-2 [&_blockquote]:border-slate-300 [&_blockquote]:pl-4 [&_h1]:text-2xl [&_h1]:font-semibold [&_h2]:text-xl [&_h2]:font-semibold [&_h3]:text-lg [&_h3]:font-semibold [&_li]:my-1 [&_ol]:list-decimal [&_ol]:pl-6 [&_p]:my-2 [&_ul]:list-disc [&_ul]:pl-6", !I.subtitle && "text-base leading-7"),
174
174
  dangerouslySetInnerHTML: { __html: I.messageHtml }
175
175
  }) : null]
176
176
  })
@@ -1,6 +1,6 @@
1
1
  import { Button as e } from "../../ui/button.js";
2
2
  import { Label as t } from "../../ui/label.js";
3
- import { Spinner as n } from "../../chunks/pkg/ui/dist/Spinner/index-DzMEU0iA.js";
3
+ import { Spinner as n } from "../../chunks/pkg/ui/dist/Spinner/index-Cgi70z_E.js";
4
4
  import { getMollieCardStyles as r } from "../../lib/mollieComponentStyles.js";
5
5
  import { useEffect as i, useRef as a, useState as o } from "react";
6
6
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  import { Button as e } from "../../ui/button.js";
2
2
  import { Label as t } from "../../ui/label.js";
3
3
  import { Input as n } from "../../ui/input.js";
4
- import { Spinner as r } from "../../chunks/pkg/ui/dist/Spinner/index-DzMEU0iA.js";
4
+ import { Spinner as r } from "../../chunks/pkg/ui/dist/Spinner/index-Cgi70z_E.js";
5
5
  import { useState as i } from "react";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  import { useTranslation as s } from "react-i18next";
package/dist/index.d.ts CHANGED
@@ -1,12 +1,11 @@
1
1
  import { ClassProp } from 'class-variance-authority/types';
2
- import { cn } from '@rpcbase/ui';
2
+ import { ClassValue } from 'clsx';
3
3
  import { ComponentPropsWithoutRef } from 'react';
4
4
  import { ControllerProps } from '@rpcbase/form';
5
5
  import { FieldError } from 'react-hook-form';
6
6
  import { FieldPath } from '@rpcbase/form';
7
7
  import { FieldValues } from '@rpcbase/form';
8
8
  import { FormProviderProps } from 'react-hook-form';
9
- import { HourPickerOption } from '@rpcbase/ui';
10
9
  import { JSX } from 'react/jsx-runtime';
11
10
  import { LoaderArgs } from '@rpcbase/client';
12
11
  import { Locale } from 'date-fns';
@@ -740,6 +739,7 @@ export declare interface BookingPeriodControllerOptions {
740
739
  bookingPeriodConfig?: BookingPeriodConfig;
741
740
  fetchTimeSlots?: BookingPeriodTimeSlotsFetcher;
742
741
  onTimeSlotsAvailabilityChange?: (isAvailable: boolean) => void;
742
+ onTimeSlotsConfirmationChange?: (isConfirmed: boolean) => void;
743
743
  selectionFlow?: BookingPeriodSelectionFlow;
744
744
  withMobileDateDrawer?: boolean;
745
745
  currencyCode?: string;
@@ -790,6 +790,8 @@ export declare interface BookingPeriodControllerValue {
790
790
  endTimeSlotsStatus: BookingPeriodTimeSlotsStatus;
791
791
  retryStartTimeSlots: () => void;
792
792
  retryEndTimeSlots: () => void;
793
+ hasAvailableTimeSlots: boolean;
794
+ hasConfirmedTimeSlots: boolean;
793
795
  canCommitTimeSlots: boolean;
794
796
  isStartToday: boolean;
795
797
  isEndToday: boolean;
@@ -1000,7 +1002,7 @@ export declare type CatalogProductSortOptions = {
1000
1002
 
1001
1003
  export declare type CatalogProductSortPriceUnit = StorefrontPublicProductPrice["unit"];
1002
1004
 
1003
- export { cn }
1005
+ export declare function cn(...inputs: ClassValue[]): string;
1004
1006
 
1005
1007
  export declare function compareCatalogProducts<T extends SortableCatalogProduct>(left: T, right: T, options?: CatalogProductSortOptions): number;
1006
1008
 
@@ -1627,6 +1629,8 @@ export declare const DEFAULT_CANCELLATION_POLICY: CancellationPolicy;
1627
1629
 
1628
1630
  export declare const DEFAULT_PAYMENT_POLICIES: PaymentPolicies;
1629
1631
 
1632
+ export declare const DEFAULT_PRODUCT_KIND: "bike";
1633
+
1630
1634
  export declare const DelayedPlaceholder: ({ value, className, reserveWidth, }: {
1631
1635
  value: string;
1632
1636
  className?: string;
@@ -2003,6 +2007,14 @@ declare type HeaderProps = {
2003
2007
  whatsappPhoneDisplay?: string;
2004
2008
  };
2005
2009
 
2010
+ declare type HourPickerOption = {
2011
+ value: string;
2012
+ label: string;
2013
+ selectedLabel?: React_2.ReactNode;
2014
+ disabled?: boolean;
2015
+ description?: React_2.ReactNode;
2016
+ };
2017
+
2006
2018
  export declare const Input: React_2.ForwardRefExoticComponent<Omit<React_2.DetailedHTMLProps<React_2.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React_2.RefAttributes<HTMLInputElement>>;
2007
2019
 
2008
2020
  export declare type InsuranceProvider = z.infer<typeof insuranceProviderSchema>;