@prijsvrijtechsupport/ui 0.0.48 → 0.0.49
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/components/priceBox/styles.css +3 -0
- package/dist/components/priceCheck/styles.css +6 -1
- package/dist/components/slider/styles.css +3 -0
- package/dist/dist/index.css +24 -1
- package/dist/dist/index.css.map +1 -1
- package/dist/index.cjs +186 -110
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +186 -111
- package/dist/index.js.map +1 -1
- package/dist/src/components/hero/Hero.stories.d.ts +2 -0
- package/dist/src/components/hero/index.d.ts +3 -1
- package/dist/src/components/priceBox/index.d.ts +4 -1
- package/dist/src/components/slider/Slider.stories.d.ts +42 -18
- package/dist/src/components/slider/index.d.ts +5 -2
- package/dist/src/components/toggle/Toggle.stories.d.ts +5 -0
- package/dist/src/components/weather/Weather.stories.d.ts +3 -8
- package/dist/src/icons/IconImage.d.ts +2 -0
- package/dist/src/icons/index.d.ts +1 -0
- package/dist/styles/utilities.css +2 -0
- package/dist/styles/variables.css +11 -1
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -31,6 +31,7 @@ const tailwind_merge = __toESM(require("tailwind-merge"));
|
|
|
31
31
|
const react_intersection_observer = __toESM(require("react-intersection-observer"));
|
|
32
32
|
const moment = __toESM(require("moment"));
|
|
33
33
|
const embla_carousel_react = __toESM(require("embla-carousel-react"));
|
|
34
|
+
const embla_carousel_auto_height = __toESM(require("embla-carousel-auto-height"));
|
|
34
35
|
const date_fns = __toESM(require("date-fns"));
|
|
35
36
|
const date_fns_locale = __toESM(require("date-fns/locale"));
|
|
36
37
|
|
|
@@ -49,118 +50,126 @@ var variables_default = {};
|
|
|
49
50
|
|
|
50
51
|
//#endregion
|
|
51
52
|
//#region src/components/topMenu/styles.css
|
|
52
|
-
var styles_default$
|
|
53
|
+
var styles_default$30 = {};
|
|
53
54
|
|
|
54
55
|
//#endregion
|
|
55
56
|
//#region src/components/button/styles.css
|
|
56
|
-
var styles_default$
|
|
57
|
+
var styles_default$29 = {};
|
|
57
58
|
|
|
58
59
|
//#endregion
|
|
59
60
|
//#region src/components/priceCheck/styles.css
|
|
60
|
-
var styles_default$
|
|
61
|
+
var styles_default$28 = {};
|
|
61
62
|
|
|
62
63
|
//#endregion
|
|
63
64
|
//#region src/components/toggle/styles.css
|
|
64
|
-
var styles_default$
|
|
65
|
+
var styles_default$27 = {};
|
|
65
66
|
|
|
66
67
|
//#endregion
|
|
67
68
|
//#region src/components/topHeaderMenu/styles.css
|
|
68
|
-
var styles_default$
|
|
69
|
+
var styles_default$26 = {};
|
|
69
70
|
|
|
70
71
|
//#endregion
|
|
71
72
|
//#region src/components/filterButton/styles.css
|
|
72
|
-
var styles_default$
|
|
73
|
+
var styles_default$25 = {};
|
|
73
74
|
|
|
74
75
|
//#endregion
|
|
75
76
|
//#region src/components/searchBox/styles.css
|
|
76
|
-
var styles_default$
|
|
77
|
+
var styles_default$24 = {};
|
|
77
78
|
|
|
78
79
|
//#endregion
|
|
79
80
|
//#region src/components/dropdown/styles.css
|
|
80
|
-
var styles_default$
|
|
81
|
+
var styles_default$23 = {};
|
|
81
82
|
|
|
82
83
|
//#endregion
|
|
83
84
|
//#region src/components/counterIcon/styles.css
|
|
84
|
-
var styles_default$
|
|
85
|
+
var styles_default$22 = {};
|
|
85
86
|
|
|
86
87
|
//#endregion
|
|
87
88
|
//#region src/components/usp/styles.css
|
|
88
|
-
var styles_default$
|
|
89
|
+
var styles_default$21 = {};
|
|
89
90
|
|
|
90
91
|
//#endregion
|
|
91
92
|
//#region src/components/middleNavigation/styles.css
|
|
92
|
-
var styles_default$
|
|
93
|
+
var styles_default$20 = {};
|
|
93
94
|
|
|
94
95
|
//#endregion
|
|
95
96
|
//#region src/components/menu/styles.css
|
|
96
|
-
var styles_default$
|
|
97
|
+
var styles_default$19 = {};
|
|
97
98
|
|
|
98
99
|
//#endregion
|
|
99
100
|
//#region src/components/footer/styles.css
|
|
100
|
-
var styles_default$
|
|
101
|
+
var styles_default$18 = {};
|
|
101
102
|
|
|
102
103
|
//#endregion
|
|
103
104
|
//#region src/components/blogWidget/styles.css
|
|
104
|
-
var styles_default$
|
|
105
|
+
var styles_default$17 = {};
|
|
105
106
|
|
|
106
107
|
//#endregion
|
|
107
108
|
//#region src/components/searchBlock/styles.css
|
|
108
|
-
var styles_default$
|
|
109
|
+
var styles_default$16 = {};
|
|
109
110
|
|
|
110
111
|
//#endregion
|
|
111
112
|
//#region src/components/categoryFilter/styles.css
|
|
112
|
-
var styles_default$
|
|
113
|
+
var styles_default$15 = {};
|
|
113
114
|
|
|
114
115
|
//#endregion
|
|
115
116
|
//#region src/components/collection/styles.css
|
|
116
|
-
var styles_default$
|
|
117
|
+
var styles_default$14 = {};
|
|
117
118
|
|
|
118
119
|
//#endregion
|
|
119
120
|
//#region src/components/review/styles.css
|
|
120
|
-
var styles_default$
|
|
121
|
+
var styles_default$13 = {};
|
|
121
122
|
|
|
122
123
|
//#endregion
|
|
123
124
|
//#region src/components/hotelAccomodationResults/styles.css
|
|
124
|
-
var styles_default$
|
|
125
|
+
var styles_default$12 = {};
|
|
125
126
|
|
|
126
127
|
//#endregion
|
|
127
128
|
//#region src/components/coupon/styles.css
|
|
128
|
-
var styles_default$
|
|
129
|
+
var styles_default$11 = {};
|
|
129
130
|
|
|
130
131
|
//#endregion
|
|
131
132
|
//#region src/components/giftCard/styles.css
|
|
132
|
-
var styles_default$
|
|
133
|
+
var styles_default$10 = {};
|
|
133
134
|
|
|
134
135
|
//#endregion
|
|
135
136
|
//#region src/components/pvPopup/styles.css
|
|
136
|
-
var styles_default$
|
|
137
|
+
var styles_default$9 = {};
|
|
137
138
|
|
|
138
139
|
//#endregion
|
|
139
140
|
//#region src/components/photoCardsRotated/styles.css
|
|
140
|
-
var styles_default$
|
|
141
|
+
var styles_default$8 = {};
|
|
141
142
|
|
|
142
143
|
//#endregion
|
|
143
144
|
//#region src/components/spotlights/styles.css
|
|
144
|
-
var styles_default$
|
|
145
|
+
var styles_default$7 = {};
|
|
145
146
|
|
|
146
147
|
//#endregion
|
|
147
148
|
//#region src/components/viewedAccomodations/styles.css
|
|
148
|
-
var styles_default$
|
|
149
|
+
var styles_default$6 = {};
|
|
149
150
|
|
|
150
151
|
//#endregion
|
|
151
152
|
//#region src/components/quantityButtons/styles.css
|
|
152
|
-
var styles_default$
|
|
153
|
+
var styles_default$5 = {};
|
|
153
154
|
|
|
154
155
|
//#endregion
|
|
155
156
|
//#region src/components/matrixTable/styles.css
|
|
156
|
-
var styles_default$
|
|
157
|
+
var styles_default$4 = {};
|
|
157
158
|
|
|
158
159
|
//#endregion
|
|
159
160
|
//#region src/components/pageNavigation/styles.css
|
|
160
|
-
var styles_default$
|
|
161
|
+
var styles_default$3 = {};
|
|
161
162
|
|
|
162
163
|
//#endregion
|
|
163
164
|
//#region src/components/calendar/styles.css
|
|
165
|
+
var styles_default$2 = {};
|
|
166
|
+
|
|
167
|
+
//#endregion
|
|
168
|
+
//#region src/components/slider/styles.css
|
|
169
|
+
var styles_default$1 = {};
|
|
170
|
+
|
|
171
|
+
//#endregion
|
|
172
|
+
//#region src/components/priceBox/styles.css
|
|
164
173
|
var styles_default = {};
|
|
165
174
|
|
|
166
175
|
//#endregion
|
|
@@ -1773,6 +1782,27 @@ const IconCocktail = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_r
|
|
|
1773
1782
|
})
|
|
1774
1783
|
});
|
|
1775
1784
|
|
|
1785
|
+
//#endregion
|
|
1786
|
+
//#region src/icons/IconImage.tsx
|
|
1787
|
+
const IconImage = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
|
|
1788
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1789
|
+
className,
|
|
1790
|
+
width: "24",
|
|
1791
|
+
height: "24",
|
|
1792
|
+
viewBox: "0 0 24 24",
|
|
1793
|
+
fill: "none",
|
|
1794
|
+
...props,
|
|
1795
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1796
|
+
d: "M18 10C19.1046 10 20 9.10457 20 8C20 6.89543 19.1046 6 18 6C16.8954 6 16 6.89543 16 8C16 9.10457 16.8954 10 18 10Z",
|
|
1797
|
+
fill: "currentColor"
|
|
1798
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
1799
|
+
"fill-rule": "evenodd",
|
|
1800
|
+
"clip-rule": "evenodd",
|
|
1801
|
+
d: "M3 3H21C22.6569 3 24 4.34315 24 6V18C24 19.6569 22.6569 21 21 21H3C1.34315 21 0 19.6569 0 18V6C0 4.34315 1.34314 3 3 3ZM3 5C2.44772 5 2 5.44772 2 6V14.1922L7.48523 8.70694C7.87585 8.31644 8.50891 8.31644 8.89954 8.70694L15.1924 14.9999L17.4852 12.7069C17.8759 12.3164 18.5089 12.3164 18.8995 12.7069L22 15.8075V6C22 5.44772 21.5523 5 21 5H3Z",
|
|
1802
|
+
fill: "currentColor"
|
|
1803
|
+
})]
|
|
1804
|
+
});
|
|
1805
|
+
|
|
1776
1806
|
//#endregion
|
|
1777
1807
|
//#region src/theme/variables.ts
|
|
1778
1808
|
const CSS_VARIABLE_KEYS = [
|
|
@@ -4217,7 +4247,7 @@ const PriceCheck = ({ className, price, text, disabled = false, "data-testid": t
|
|
|
4217
4247
|
children: text
|
|
4218
4248
|
}),
|
|
4219
4249
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
4220
|
-
className: `price-check-price-padding${price && price > 999 ? "-large" : ""} text-start price-check-color-price price-check-fontFamily-price font-bold
|
|
4250
|
+
className: `price-check-price-padding${price && price > 999 ? "-large" : ""} text-start price-check-color-price price-check-fontFamily-price font-bold price-check-font-size-price whitespace-nowrap price-check-price-margin-top`,
|
|
4221
4251
|
children: [
|
|
4222
4252
|
price,
|
|
4223
4253
|
",",
|
|
@@ -5157,11 +5187,12 @@ const QuantityButtons = ({ className, value, setValue, minValue = 0, maxValue =
|
|
|
5157
5187
|
//#endregion
|
|
5158
5188
|
//#region src/components/slider/index.tsx
|
|
5159
5189
|
const LAZY_LOAD_PLACEHOLDER_SRC = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";
|
|
5160
|
-
function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true, showDots = true, dotsPlacement = "outside", overlay, overlayClassName, className, viewportClassName, containerClassName, slideClassName,...props }) {
|
|
5190
|
+
function Slider({ slides = [], options, plugins, lazyLoad = false, showArrows = true, showDots = true, roundedFull = false, showLike = true, dotsPlacement = "outside", overlay, overlayClassName, className, viewportClassName, containerClassName, slideClassName, square = true,...props }) {
|
|
5161
5191
|
const [emblaRef, emblaApi] = (0, embla_carousel_react.default)(options, plugins);
|
|
5162
5192
|
const [selectedIndex, setSelectedIndex] = (0, react.useState)(0);
|
|
5163
5193
|
const [scrollSnaps, setScrollSnaps] = (0, react.useState)([]);
|
|
5164
5194
|
const [slidesInView, setSlidesInView] = (0, react.useState)([]);
|
|
5195
|
+
const [loadedImages, setLoadedImages] = (0, react.useState)(new Set());
|
|
5165
5196
|
const canScrollPrev = (0, react.useMemo)(() => emblaApi?.canScrollPrev() ?? false, [emblaApi, selectedIndex]);
|
|
5166
5197
|
const canScrollNext = (0, react.useMemo)(() => emblaApi?.canScrollNext() ?? false, [emblaApi, selectedIndex]);
|
|
5167
5198
|
const scrollPrev = (0, react.useCallback)(() => {
|
|
@@ -5216,6 +5247,17 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
|
|
|
5216
5247
|
lazyLoad,
|
|
5217
5248
|
updateSlidesInView
|
|
5218
5249
|
]);
|
|
5250
|
+
(0, react.useEffect)(() => {
|
|
5251
|
+
if (!emblaApi) return;
|
|
5252
|
+
const imageSlides = slides.filter((slide) => (0, react.isValidElement)(slide) && slide.type === "img");
|
|
5253
|
+
if (imageSlides.length > 0 && loadedImages.size === imageSlides.length) {
|
|
5254
|
+
emblaApi.reInit();
|
|
5255
|
+
}
|
|
5256
|
+
}, [
|
|
5257
|
+
emblaApi,
|
|
5258
|
+
loadedImages,
|
|
5259
|
+
slides
|
|
5260
|
+
]);
|
|
5219
5261
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5220
5262
|
"data-component": "slider",
|
|
5221
5263
|
className: cn("relative", className),
|
|
@@ -5225,9 +5267,9 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
|
|
|
5225
5267
|
ref: emblaRef,
|
|
5226
5268
|
className: cn("overflow-hidden", viewportClassName),
|
|
5227
5269
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5228
|
-
className: cn("flex touch-pan-y", containerClassName),
|
|
5270
|
+
className: cn("flex touch-pan-y items-start", containerClassName),
|
|
5229
5271
|
children: slides.map((slide, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5230
|
-
className: cn("min-w-0 shrink-0 grow-0 basis-full", slideClassName),
|
|
5272
|
+
className: cn("min-w-0 shrink-0 grow-0 basis-full h-auto", square && "aspect-square", slideClassName),
|
|
5231
5273
|
children: lazyLoad && (0, react.isValidElement)(slide) && slide.type === "img" ? (() => {
|
|
5232
5274
|
const hasBeenInView = slidesInView.includes(index);
|
|
5233
5275
|
const originalSrc = slide.props.src;
|
|
@@ -5235,16 +5277,20 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
|
|
|
5235
5277
|
return (0, react.cloneElement)(slide, {
|
|
5236
5278
|
src,
|
|
5237
5279
|
"data-src": originalSrc,
|
|
5238
|
-
className: cn(slide.props.className, "h-auto")
|
|
5280
|
+
className: cn(slide.props.className, "h-auto"),
|
|
5281
|
+
onLoad: () => setLoadedImages((prev) => new Set(prev).add(index))
|
|
5239
5282
|
});
|
|
5240
|
-
})() : (0, react.isValidElement)(slide) ? (0, react.cloneElement)(slide, {
|
|
5283
|
+
})() : (0, react.isValidElement)(slide) && slide.type === "img" ? (0, react.cloneElement)(slide, {
|
|
5284
|
+
className: cn(slide.props.className, "h-auto"),
|
|
5285
|
+
onLoad: () => setLoadedImages((prev) => new Set(prev).add(index))
|
|
5286
|
+
}) : (0, react.isValidElement)(slide) ? (0, react.cloneElement)(slide, { className: cn(slide.props.className, "h-auto") }) : slide
|
|
5241
5287
|
}, index))
|
|
5242
5288
|
}), showDots && dotsPlacement === "inside" && scrollSnaps.length > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5243
5289
|
className: "pointer-events-none absolute inset-x-0 bottom-3 z-20 flex items-center justify-center gap-2 rounded-2xl bg-black/40 w-fit mx-auto p-1.5",
|
|
5244
5290
|
children: scrollSnaps.map((_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
5245
5291
|
type: "button",
|
|
5246
5292
|
"aria-label": `Go to slide ${index + 1}`,
|
|
5247
|
-
className: cn("pointer-events-auto cursor-pointer h-2 w-2 rounded-full
|
|
5293
|
+
className: cn("pointer-events-auto cursor-pointer h-2 w-2 bg-transparent rounded-full border-2 border-white", index === selectedIndex && "selectedIndexBg"),
|
|
5248
5294
|
onClick: () => scrollTo(index)
|
|
5249
5295
|
}, index))
|
|
5250
5296
|
})]
|
|
@@ -5256,12 +5302,25 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
|
|
|
5256
5302
|
children: overlay
|
|
5257
5303
|
})
|
|
5258
5304
|
}),
|
|
5305
|
+
showLike && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5306
|
+
className: "pointer-events-none absolute top-4 right-4 z-20",
|
|
5307
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
5308
|
+
type: "button",
|
|
5309
|
+
"aria-label": "Like",
|
|
5310
|
+
onClick: () => console.log("Like clicked"),
|
|
5311
|
+
className: cn("pointer-events-auto cursor-pointer inline-flex size-5 items-center justify-center"),
|
|
5312
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5313
|
+
"aria-hidden": "true",
|
|
5314
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconHeart, { className: "size-6 text-white hover:text-red-500" })
|
|
5315
|
+
})
|
|
5316
|
+
})
|
|
5317
|
+
}),
|
|
5259
5318
|
showArrows && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
5260
5319
|
className: "pointer-events-none absolute inset-y-0 left-0 right-0 z-20 flex items-center justify-between",
|
|
5261
5320
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
5262
5321
|
type: "button",
|
|
5263
5322
|
"aria-label": "Previous slide",
|
|
5264
|
-
className: cn("pointer-events-auto cursor-pointer ml-2 inline-flex size-9 items-center justify-center
|
|
5323
|
+
className: cn("pointer-events-auto cursor-pointer ml-2 inline-flex size-9 items-center justify-center bg-primary-dark-50/50 text-white shadow", roundedFull === true ? "rounded-full" : "rounded-sm", !canScrollPrev && "opacity-50"),
|
|
5265
5324
|
onClick: scrollPrev,
|
|
5266
5325
|
disabled: !canScrollPrev,
|
|
5267
5326
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -5271,7 +5330,7 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
|
|
|
5271
5330
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
5272
5331
|
type: "button",
|
|
5273
5332
|
"aria-label": "Next slide",
|
|
5274
|
-
className: cn("pointer-events-auto cursor-pointer mr-2 inline-flex size-9 items-center justify-center
|
|
5333
|
+
className: cn("pointer-events-auto cursor-pointer mr-2 inline-flex size-9 items-center justify-center bg-primary-dark-50/50 text-white shadow", roundedFull === true ? "rounded-full" : "rounded-sm", !canScrollNext && "opacity-50"),
|
|
5275
5334
|
onClick: scrollNext,
|
|
5276
5335
|
disabled: !canScrollNext,
|
|
5277
5336
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -6978,7 +7037,7 @@ const Chatbot = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_runtim
|
|
|
6978
7037
|
|
|
6979
7038
|
//#endregion
|
|
6980
7039
|
//#region src/components/priceBox/index.tsx
|
|
6981
|
-
const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false, hidePrice = false, onClick, "data-testid": dataTestId }) => {
|
|
7040
|
+
const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false, hidePrice = false, warnText, buttonText = "Bekijk vakantie", showButtonIcon, onClick, "data-testid": dataTestId }) => {
|
|
6982
7041
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6983
7042
|
"data-testid": dataTestId,
|
|
6984
7043
|
"data-component": "price-box",
|
|
@@ -6992,6 +7051,10 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
|
|
|
6992
7051
|
text: hotel.PriceInfo
|
|
6993
7052
|
})
|
|
6994
7053
|
}),
|
|
7054
|
+
warnText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
7055
|
+
className: "text-[9px] mb-2 order-4 md:order-2 priceBox-warnText",
|
|
7056
|
+
children: warnText
|
|
7057
|
+
}),
|
|
6995
7058
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
6996
7059
|
className: "text-sm flex flex-col gap-3 order-2",
|
|
6997
7060
|
children: [
|
|
@@ -7005,7 +7068,11 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
|
|
|
7005
7068
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: hotel.DepartureDate.split(",")[0] }),
|
|
7006
7069
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
7007
7070
|
className: "text-gray-400 ml-2",
|
|
7008
|
-
children: [
|
|
7071
|
+
children: [
|
|
7072
|
+
"(",
|
|
7073
|
+
hotel.Duration,
|
|
7074
|
+
" dagen)"
|
|
7075
|
+
]
|
|
7009
7076
|
})
|
|
7010
7077
|
]
|
|
7011
7078
|
}),
|
|
@@ -7035,10 +7102,11 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
|
|
|
7035
7102
|
className: "w-4/12 md:w-full order-3",
|
|
7036
7103
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
7037
7104
|
variant: brand === "prijsvrij" ? "primaryGlow" : "secondary",
|
|
7038
|
-
className: "whitespace-nowrap w-full
|
|
7105
|
+
className: "whitespace-nowrap w-full",
|
|
7039
7106
|
iconRight: true,
|
|
7040
|
-
|
|
7041
|
-
|
|
7107
|
+
onClick,
|
|
7108
|
+
icon: showButtonIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, { className: "w-4 h-4" }) : undefined,
|
|
7109
|
+
children: buttonText
|
|
7042
7110
|
})
|
|
7043
7111
|
})
|
|
7044
7112
|
]
|
|
@@ -8866,7 +8934,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
|
|
|
8866
8934
|
let cloud3Height = 45;
|
|
8867
8935
|
let cloud3Position = "bottom-32";
|
|
8868
8936
|
if (size === "small") {
|
|
8869
|
-
dollarSize = "size-[30px]";
|
|
8937
|
+
dollarSize = "size-[30px] p-1";
|
|
8870
8938
|
planeSize = "w-16 h-16";
|
|
8871
8939
|
cloud1Width = 60;
|
|
8872
8940
|
cloud1Height = 27;
|
|
@@ -8878,7 +8946,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
|
|
|
8878
8946
|
cloud3Height = 16;
|
|
8879
8947
|
cloud3Position = "bottom-4";
|
|
8880
8948
|
} else if (size === "medium") {
|
|
8881
|
-
dollarSize = "size-[45px]";
|
|
8949
|
+
dollarSize = "size-[45px] p-2";
|
|
8882
8950
|
planeSize = "w-24 h-24";
|
|
8883
8951
|
cloud1Width = 140;
|
|
8884
8952
|
cloud1Height = 63;
|
|
@@ -8890,7 +8958,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
|
|
|
8890
8958
|
cloud3Height = 32;
|
|
8891
8959
|
cloud3Position = "bottom-10";
|
|
8892
8960
|
} else if (size === "large") {
|
|
8893
|
-
dollarSize = "size-[75px]";
|
|
8961
|
+
dollarSize = "size-[75px] p-2";
|
|
8894
8962
|
}
|
|
8895
8963
|
const brand = useBrand();
|
|
8896
8964
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -8921,7 +8989,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
|
|
|
8921
8989
|
className: "relative overflow-hidden w-full h-full",
|
|
8922
8990
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
8923
8991
|
className: `${brand === "prijsvrij" ? "bg-primary" : "bg-secondary"} rounded-full ${dollarSize} flex items-center justify-center`,
|
|
8924
|
-
children: brand === "prijsvrij" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Dollar, { className: "animate-spin-slow w-full h-full
|
|
8992
|
+
children: brand === "prijsvrij" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Dollar, { className: "animate-spin-slow w-full h-full" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DReizenSign, { className: " w-full h-full animate-spin-slow" })
|
|
8925
8993
|
})
|
|
8926
8994
|
})
|
|
8927
8995
|
});
|
|
@@ -8988,74 +9056,81 @@ const ReviewSmall = ({ className, rating, showArrow = true, "data-testid": dataT
|
|
|
8988
9056
|
|
|
8989
9057
|
//#endregion
|
|
8990
9058
|
//#region src/components/hero/index.tsx
|
|
8991
|
-
const Hero = ({ className, sliderImages, topRightImage, bottomLeftImage, bottomRightImage, bottomRightOverlay, hotel, priceBoxPosition = "end",...props }) =>
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
children:
|
|
8998
|
-
className:
|
|
8999
|
-
children: [
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9003
|
-
className: "
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
className: "
|
|
9024
|
-
})
|
|
9025
|
-
}),
|
|
9026
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9027
|
-
className: "hidden md:grid col-span-1 row-span-1 grid-cols-2 gap-1",
|
|
9028
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9029
|
-
className: "overflow-hidden",
|
|
9059
|
+
const Hero = ({ className, sliderImages, topRightImage, bottomLeftImage, bottomRightImage, bottomRightOverlay, warnText, hotel, buttonText = "Bekijk vakantie", priceBoxPosition = "end",...props }) => {
|
|
9060
|
+
const brand = useBrand("prijsvrij");
|
|
9061
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9062
|
+
"data-component": "hero",
|
|
9063
|
+
className: (0, clsx.default)(className, "bg-white p-1 rounded-sm hero-shadow"),
|
|
9064
|
+
...props,
|
|
9065
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9066
|
+
className: "flex flex-col md:flex-row",
|
|
9067
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9068
|
+
className: (0, clsx.default)("grid gap-1 md:aspect-[16/6] md:grid-cols-3 md:grid-rows-[2fr_1fr]", priceBoxPosition === "start" ? "order-2 md:order-2" : "order-1 md:order-1"),
|
|
9069
|
+
children: [
|
|
9070
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9071
|
+
className: "md:col-span-2 md:row-span-2 overflow-hidden rounded-l-sm relative",
|
|
9072
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReviewSmall, {
|
|
9073
|
+
className: "absolute right-4 top-4 z-50",
|
|
9074
|
+
rating: 9.3
|
|
9075
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Slider, {
|
|
9076
|
+
className: "rounded-l-sm",
|
|
9077
|
+
slides: sliderImages.map((src, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
9078
|
+
src,
|
|
9079
|
+
alt: `Hero slide ${index + 1}`,
|
|
9080
|
+
className: "h-full w-full object-cover rounded-l-sm"
|
|
9081
|
+
}, index)),
|
|
9082
|
+
showArrows: false,
|
|
9083
|
+
dotsPlacement: "inside",
|
|
9084
|
+
showDots: false,
|
|
9085
|
+
options: { loop: true },
|
|
9086
|
+
plugins: [(0, embla_carousel_auto_height.default)()],
|
|
9087
|
+
lazyLoad: true
|
|
9088
|
+
})]
|
|
9089
|
+
}),
|
|
9090
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9091
|
+
className: "hidden md:flex col-span-1 row-span-1 overflow-hidden",
|
|
9030
9092
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
9031
|
-
src:
|
|
9032
|
-
alt: "Hero image
|
|
9033
|
-
className: "h-full w-full object-cover"
|
|
9093
|
+
src: topRightImage,
|
|
9094
|
+
alt: "Hero image 1",
|
|
9095
|
+
className: "h-full w-full object-cover rounded-tr-sm"
|
|
9034
9096
|
})
|
|
9035
|
-
}),
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
|
|
9097
|
+
}),
|
|
9098
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9099
|
+
className: "hidden md:grid col-span-1 row-span-1 grid-cols-2 gap-1",
|
|
9100
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9101
|
+
className: "overflow-hidden",
|
|
9102
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
9103
|
+
src: bottomLeftImage,
|
|
9104
|
+
alt: "Hero image 2",
|
|
9105
|
+
className: "h-full w-full object-cover"
|
|
9106
|
+
})
|
|
9107
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
9108
|
+
className: "relative overflow-hidden ",
|
|
9109
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
|
|
9110
|
+
src: bottomRightImage,
|
|
9111
|
+
alt: "Hero image 3",
|
|
9112
|
+
className: "h-full w-full object-cover"
|
|
9113
|
+
}), bottomRightOverlay && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9114
|
+
className: "absolute inset-0",
|
|
9115
|
+
children: bottomRightOverlay
|
|
9116
|
+
})]
|
|
9044
9117
|
})]
|
|
9045
|
-
})
|
|
9118
|
+
})
|
|
9119
|
+
]
|
|
9120
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
9121
|
+
className: (0, clsx.default)(priceBoxPosition === "start" ? "order-1 md:order-1" : "order-2 md:order-2"),
|
|
9122
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PriceBox, {
|
|
9123
|
+
noHover: true,
|
|
9124
|
+
noBorder: true,
|
|
9125
|
+
hotel,
|
|
9126
|
+
brand,
|
|
9127
|
+
warnText: warnText || "",
|
|
9128
|
+
buttonText
|
|
9046
9129
|
})
|
|
9047
|
-
]
|
|
9048
|
-
})
|
|
9049
|
-
|
|
9050
|
-
|
|
9051
|
-
noHover: true,
|
|
9052
|
-
noBorder: true,
|
|
9053
|
-
hotel,
|
|
9054
|
-
brand: "prijsvrij"
|
|
9055
|
-
})
|
|
9056
|
-
})]
|
|
9057
|
-
})
|
|
9058
|
-
});
|
|
9130
|
+
})]
|
|
9131
|
+
})
|
|
9132
|
+
});
|
|
9133
|
+
};
|
|
9059
9134
|
|
|
9060
9135
|
//#endregion
|
|
9061
9136
|
//#region src/components/review/index.tsx
|
|
@@ -10584,6 +10659,7 @@ exports.IconHot = IconHot;
|
|
|
10584
10659
|
exports.IconHotel = IconHotel;
|
|
10585
10660
|
exports.IconHouse = IconHouse;
|
|
10586
10661
|
exports.IconIce = IconIce;
|
|
10662
|
+
exports.IconImage = IconImage;
|
|
10587
10663
|
exports.IconInfo = IconInfo;
|
|
10588
10664
|
exports.IconInstagram = IconInstagram;
|
|
10589
10665
|
exports.IconLuggage = IconLuggage;
|