@prijsvrijtechsupport/ui 0.0.38 → 0.0.40

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/index.cjs CHANGED
@@ -179,10 +179,15 @@ var globals_default = {};
179
179
  */
180
180
  function withPvUi(Component) {
181
181
  const WrappedComponent = (0, react.forwardRef)((props, ref) => {
182
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
182
+ const scopedProps = {
183
183
  ...props,
184
184
  ref,
185
185
  "data-pv-ui": true
186
+ };
187
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
188
+ "data-pv-ui": true,
189
+ style: { display: "contents" },
190
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, { ...scopedProps })
186
191
  });
187
192
  });
188
193
  WrappedComponent.displayName = `withPvUi(${Component.displayName || Component.name || "Component"})`;
@@ -283,12 +288,12 @@ const Button = (0, react.forwardRef)(function Button$1({ type = "button", varian
283
288
  ...props,
284
289
  children: [
285
290
  !iconRight && formattedIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
286
- className: "w-4 h-4",
291
+ className: "w-4 h-4 justify-center flex items-center",
287
292
  children: formattedIcon
288
293
  }),
289
294
  children,
290
295
  iconRight && formattedIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
291
- className: "w-4 h-4",
296
+ className: "w-4 h-4 justify-center flex items-center",
292
297
  children: formattedIcon
293
298
  })
294
299
  ]
@@ -4317,7 +4322,7 @@ const iconMap = {
4317
4322
  FL: IconPlane,
4318
4323
  HO: IconCar
4319
4324
  };
4320
- const TransportToggle = ({ options, selectedValue, onSelect, disabled = false, disabledSingle = undefined, disabledSingleText = "", className, loading, orientation = "horizontal" }) => {
4325
+ const TransportToggle = withPvUi(({ options, selectedValue, onSelect, disabled = false, disabledSingle = undefined, disabledSingleText = "", className, loading, orientation = "horizontal" }) => {
4321
4326
  const normalizeOptionValue = (value) => value?.trim().toUpperCase() ?? "";
4322
4327
  const normalizedOptionIds = options.map((option) => normalizeOptionValue(option.id));
4323
4328
  const normalizedSelectedValue = normalizeOptionValue(selectedValue);
@@ -4333,7 +4338,7 @@ const TransportToggle = ({ options, selectedValue, onSelect, disabled = false, d
4333
4338
  const isDisabledSingle = (optionId) => disabledSingle && normalizeOptionValue(optionId) === normalizeOptionValue(disabledSingle);
4334
4339
  const isActive = (optionId) => resolvedSelectedValue === normalizeOptionValue(optionId);
4335
4340
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4336
- className: "@container w-full",
4341
+ className: "@container w-full box-border",
4337
4342
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4338
4343
  className: cn("flex justify-between text-xs w-full toggle p-1 rounded-sm font-bold min-h-12", orientation === "horizontal" ? "flex-row" : "flex-col", disabled && "opacity-50", className),
4339
4344
  "data-testid": "transport-toggle-wrapper",
@@ -4347,9 +4352,9 @@ const TransportToggle = ({ options, selectedValue, onSelect, disabled = false, d
4347
4352
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4348
4353
  className: "flex flex-col items-center",
4349
4354
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4350
- className: "whitespace-nowrap uppercase flex flex-row items-center",
4355
+ className: "whitespace-nowrap uppercase flex flex-row items-center gap-2",
4351
4356
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
4352
- className: "flex items-center justify-center w-8 h-4 mb-1",
4357
+ className: "flex items-center justify-center w-auto h-4",
4353
4358
  children: (() => {
4354
4359
  const IconComponent = iconMap[option.icon];
4355
4360
  if (!IconComponent) return null;
@@ -4367,7 +4372,7 @@ const TransportToggle = ({ options, selectedValue, onSelect, disabled = false, d
4367
4372
  }, option.id)) })
4368
4373
  })
4369
4374
  });
4370
- };
4375
+ });
4371
4376
  const Toggle = TransportToggle;
4372
4377
 
4373
4378
  //#endregion
@@ -4969,7 +4974,7 @@ const Stepper = ({ className, steps,...props }) => {
4969
4974
 
4970
4975
  //#endregion
4971
4976
  //#region src/components/resultPageFilterBox/index.tsx
4972
- const ResultPageFilterBox = ({ className, filters,...props }) => {
4977
+ const ResultPageFilterBox = ({ className, filters, clickFunction,...props }) => {
4973
4978
  const departureDateData = filters.find((filter) => filter.Name === "Vertrekdatum");
4974
4979
  const durationData = filters.find((filter) => filter.Name === "Reisduur");
4975
4980
  const boardBasisData = filters.find((filter) => filter.Name === "Verzorging");
@@ -4992,19 +4997,22 @@ const ResultPageFilterBox = ({ className, filters,...props }) => {
4992
4997
  "YYYY-MM-DD"
4993
4998
  ]).locale("nl").format("D MMMM [']YY") : "Geen voorkeur",
4994
4999
  icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconCalendar, { className: "size-5" }),
4995
- disabled: Boolean(departureDateData?.Items && departureDateData?.Items.length <= 1)
5000
+ disabled: Boolean(departureDateData?.Items && departureDateData?.Items.length <= 1),
5001
+ isCancellable: true
4996
5002
  },
4997
5003
  {
4998
5004
  name: travelParty?.Name,
4999
5005
  value: travelParty?.Value,
5000
5006
  icon: travelParty?.icon,
5001
- disabled: false
5007
+ disabled: false,
5008
+ isCancellable: true
5002
5009
  },
5003
5010
  {
5004
5011
  name: durationData?.Name,
5005
5012
  value: durationData?.Items?.find((item) => item.Active)?.Name || "Geen voorkeur",
5006
5013
  icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconClock, { className: "size-5" }),
5007
- disabled: Boolean(durationData?.Items && durationData?.Items.length <= 1)
5014
+ disabled: Boolean(durationData?.Items && durationData?.Items.length <= 1),
5015
+ isCancellable: true
5008
5016
  },
5009
5017
  {
5010
5018
  name: boardBasisData?.Name,
@@ -5044,21 +5052,28 @@ const ResultPageFilterBox = ({ className, filters,...props }) => {
5044
5052
  className: (0, clsx.default)("bg-white", className),
5045
5053
  ...props,
5046
5054
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5047
- className: "border border-primary rounded-md overflow-hidden grid grid-cols-1 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0 md:[&>*:nth-child(even)]:border-l md:[&>*:nth-child(even)]:border-l-primary [&>*:not(:last-child)]:border-b [&>*:not(:last-child)]:border-b-primary md:[&>*:not(:nth-last-child(-n+2))]:border-b md:[&>*:not(:nth-last-child(-n+2))]:border-b-primary",
5055
+ className: "border border-[#80c8f8] rounded-md overflow-hidden grid grid-cols-1 md:grid-cols-2 [&>*:last-child]:border-b-0 md:[&>*:nth-last-child(-n+2)]:border-b-0 md:[&>*:nth-child(even)]:border-l md:[&>*:nth-child(even)]:border-l-[#80c8f8] [&>*:not(:last-child)]:border-b [&>*:not(:last-child)]:border-b-[#80c8f8] md:[&>*:not(:nth-last-child(-n+2))]:border-b md:[&>*:not(:nth-last-child(-n+2))]:border-b-[#80c8f8]",
5048
5056
  children: filtersData.map((filter, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
5049
- className: `flex flex-row items-center gap-2 p-1.5 hover:bg-gray-50/80 cursor-pointer ${filter.disabled ? "bg-gray-50 text-black/50" : ""}`,
5050
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5051
- className: "whitespace-nowrap p-1.5",
5052
- children: filter.icon
5053
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
5054
- className: "flex flex-col gap-0 items-start",
5057
+ onClick: () => {},
5058
+ className: `flex flex-row items-center justify-between gap-2 p-1.5 hover:bg-gray-50/70 cursor-pointer ${filter.disabled ? "bg-gray-100 text-black/50" : ""}`,
5059
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
5060
+ className: "flex flex-row",
5055
5061
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5056
- className: "font-bold text-xs",
5057
- children: filter.name
5058
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5059
- className: "text-base",
5060
- children: filter.value
5062
+ className: "whitespace-nowrap p-1.5",
5063
+ children: filter.icon
5064
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
5065
+ className: "flex flex-col gap-0 items-start",
5066
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5067
+ className: "font-bold text-xs text-[#666666]",
5068
+ children: filter.name
5069
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
5070
+ className: "text-sm",
5071
+ children: filter.value
5072
+ })]
5061
5073
  })]
5074
+ }), filter.isCancellable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5075
+ className: "flex items-center mr-2 bg-gray-200 rounded-full p-1",
5076
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconCancel, { className: "size-3 text-white" })
5062
5077
  })]
5063
5078
  }, index))
5064
5079
  })
@@ -9363,23 +9378,23 @@ const MatrixTable = ({ className, startDuration, endDuration, startDate, endDate
9363
9378
  onClick: loadPrevious,
9364
9379
  variant: "icon",
9365
9380
  iconRight: true,
9366
- className: "flex flex-row items-center justify-start text-xs",
9381
+ className: "flex flex-row font-medium items-center justify-start text-xs",
9367
9382
  icon: false,
9368
9383
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowLeft, {
9369
9384
  className: "text-primary",
9370
- width: 16,
9371
- height: 16
9385
+ width: 20,
9386
+ height: 20
9372
9387
  }), " eerder"]
9373
9388
  }) : null, index === dates.length - 1 && loadNext ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Button, {
9374
9389
  onClick: loadNext,
9375
9390
  variant: "icon",
9376
- className: "flex flex-row items-center justify-start text-xs",
9391
+ className: "flex flex-row font-medium items-center justify-start text-xs",
9377
9392
  iconRight: true,
9378
9393
  icon: false,
9379
9394
  children: ["later", /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, {
9380
9395
  className: "text-primary",
9381
- width: 16,
9382
- height: 16
9396
+ width: 20,
9397
+ height: 20
9383
9398
  })]
9384
9399
  }) : null]
9385
9400
  }, date);
@@ -9938,20 +9953,58 @@ const WarningText = ({ className, warningText, onClick, type,...props }) => /* @
9938
9953
  })]
9939
9954
  });
9940
9955
 
9956
+ //#endregion
9957
+ //#region src/components/reviewSmall/index.tsx
9958
+ const ReviewSmall = ({ className, rating, showArrow = true, "data-testid": dataTestId = "review",...props }) => {
9959
+ const formatRating$1 = (rating$1) => {
9960
+ return rating$1.toFixed(1);
9961
+ };
9962
+ const ratingProcessed = formatRating$1(rating);
9963
+ const RatingNumber = ({ className: className$1, showArrow: showArrow$1 }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9964
+ className: "relative",
9965
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
9966
+ className: cn("review-small-color review-small-number-color", className$1),
9967
+ children: ratingProcessed
9968
+ }), showArrow$1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9969
+ className: "absolute left-1/2 -translate-x-1/2 -bottom-[6px]",
9970
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "w-0 h-0 border-l-[8px] border-l-transparent border-r-[8px] border-r-transparent border-t-[8px] review-small-arrow" })
9971
+ })]
9972
+ });
9973
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9974
+ "data-component": "review",
9975
+ "data-testid": dataTestId,
9976
+ className: (0, clsx.default)(className, "flex flex-col w-fit"),
9977
+ ...props,
9978
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9979
+ className: "flex flex-row gap-2 review-small rounded-sm",
9980
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9981
+ className: "flex content-center items-center font-bold",
9982
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RatingNumber, {
9983
+ className: "px-1 rounded-xs",
9984
+ showArrow
9985
+ })
9986
+ })
9987
+ })
9988
+ });
9989
+ };
9990
+
9941
9991
  //#endregion
9942
9992
  //#region src/components/hero/index.tsx
9943
9993
  const Hero = ({ className, sliderImages, topRightImage, bottomLeftImage, bottomRightImage, bottomRightOverlay, hotel, priceBoxPosition = "end",...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9944
9994
  "data-component": "hero",
9945
- className: (0, clsx.default)(className, "bg-white p-1 rounded-lg"),
9995
+ className: (0, clsx.default)(className, "bg-white p-1 rounded-lg hero-shadow"),
9946
9996
  ...props,
9947
9997
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9948
9998
  className: "flex flex-col md:flex-row",
9949
9999
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9950
10000
  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"),
9951
10001
  children: [
9952
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9953
- className: "md:col-span-2 md:row-span-2 overflow-hidden rounded-l-lg",
9954
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Slider, {
10002
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10003
+ className: "md:col-span-2 md:row-span-2 overflow-hidden rounded-l-lg relative",
10004
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReviewSmall, {
10005
+ className: "absolute right-4 top-4 z-50",
10006
+ rating: 9.3
10007
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Slider, {
9955
10008
  className: "h-full max-h-[340px] md:h-full rounded-l-lg",
9956
10009
  slides: sliderImages.map((src, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
9957
10010
  src,
@@ -9962,7 +10015,7 @@ const Hero = ({ className, sliderImages, topRightImage, bottomLeftImage, bottomR
9962
10015
  dotsPlacement: "inside",
9963
10016
  options: { loop: true },
9964
10017
  lazyLoad: true
9965
- })
10018
+ })]
9966
10019
  }),
9967
10020
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9968
10021
  className: "hidden md:flex col-span-1 row-span-1 overflow-hidden",
@@ -10405,41 +10458,6 @@ const FlightSwitch = ({ className, leg, direction, onClassSelect,...props }) =>
10405
10458
  });
10406
10459
  };
10407
10460
 
10408
- //#endregion
10409
- //#region src/components/reviewSmall/index.tsx
10410
- const ReviewSmall = ({ className, rating, showArrow = true, "data-testid": dataTestId = "review",...props }) => {
10411
- const formatRating$1 = (rating$1) => {
10412
- return rating$1.toFixed(1);
10413
- };
10414
- const ratingProcessed = formatRating$1(rating);
10415
- const RatingNumber = ({ className: className$1, showArrow: showArrow$1 }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10416
- className: "relative",
10417
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
10418
- className: cn("review-small-color review-small-number-color", className$1),
10419
- children: ratingProcessed
10420
- }), showArrow$1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10421
- className: "absolute left-1/2 -translate-x-1/2 -bottom-[6px]",
10422
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "w-0 h-0 border-l-[8px] border-l-transparent border-r-[8px] border-r-transparent border-t-[8px] review-small-arrow" })
10423
- })]
10424
- });
10425
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10426
- "data-component": "review",
10427
- "data-testid": dataTestId,
10428
- className: (0, clsx.default)(className, "flex flex-col w-fit"),
10429
- ...props,
10430
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10431
- className: "flex flex-row gap-2 review-small rounded-sm",
10432
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10433
- className: "flex content-center items-center font-bold",
10434
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RatingNumber, {
10435
- className: "px-1 rounded-xs",
10436
- showArrow
10437
- })
10438
- })
10439
- })
10440
- });
10441
- };
10442
-
10443
10461
  //#endregion
10444
10462
  //#region src/components/giftCard/index.tsx
10445
10463
  const setCurrencyValue = (value, showCurrencySymbol = true) => {
@@ -11315,7 +11333,7 @@ const SearchBlockButton = ({ className, label, labelOutside, icon, downIcon, onC
11315
11333
  className: "searchBlockButtonLabel",
11316
11334
  children: label
11317
11335
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
11318
- className: (0, clsx.default)(className, "searchBlockButton flex flex-row items-center justify-between gap-2 px-2 py-2"),
11336
+ className: (0, clsx.default)(className, "searchBlockButton flex flex-row items-center justify-between gap-2 px-2 py-2 cursor-pointer border border-transparent hover:border-gray-300 transition-all"),
11319
11337
  onClick,
11320
11338
  ...props,
11321
11339
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -11348,7 +11366,7 @@ const SearchBlockButton = ({ className, label, labelOutside, icon, downIcon, onC
11348
11366
  })]
11349
11367
  })] });
11350
11368
  };
11351
- const SearchBlock = ({ className, searchBlockTitle, searchBlockForm, onClickFn, "data-testid": dataTestId = "book-module",...props }) => {
11369
+ const SearchBlock = ({ className, searchBlockTitle, searchBlockForm, loading, onClickFn, "data-testid": dataTestId = "book-module",...props }) => {
11352
11370
  const brand = useBrand();
11353
11371
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
11354
11372
  "data-component": "book-module",
@@ -11400,7 +11418,7 @@ const SearchBlock = ({ className, searchBlockTitle, searchBlockForm, onClickFn,
11400
11418
  variant: `${brand === "prijsvrij" ? "primaryGlow" : "primary"}`,
11401
11419
  className: `${brand === "dreizen" ? "mt-6" : "mt-2"}`,
11402
11420
  onClick: onClickFn,
11403
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, {}),
11421
+ icon: loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconSun, { className: "animate-spin" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, {}),
11404
11422
  iconRight: true,
11405
11423
  children: "Zoek vakanties"
11406
11424
  })
@@ -11672,6 +11690,7 @@ exports.TimeInput = TimeInput;
11672
11690
  exports.Toggle = Toggle;
11673
11691
  exports.TopHeaderMenu = TopHeaderMenu;
11674
11692
  exports.TopMenu = TopMenu;
11693
+ exports.TransportToggle = TransportToggle;
11675
11694
  exports.TruncatedText = TruncatedText;
11676
11695
  exports.UnorderedList = UnorderedList;
11677
11696
  exports.UnorderedListItem = UnorderedListItem;