@prijsvrijtechsupport/ui 0.0.47 → 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.
Files changed (462) hide show
  1. package/dist/.storybook/preview.d.ts +5 -0
  2. package/dist/components/priceBox/styles.css +3 -0
  3. package/dist/components/priceCheck/styles.css +6 -1
  4. package/dist/components/slider/styles.css +3 -0
  5. package/dist/dist/index.css +24 -1
  6. package/dist/dist/index.css.map +1 -1
  7. package/dist/index.cjs +390 -1369
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.js +393 -1354
  10. package/dist/index.js.map +1 -1
  11. package/dist/src/components/accordion/Accordion.stories.d.ts +23 -0
  12. package/dist/src/components/blogWidget/BlogWidget.stories.d.ts +35 -0
  13. package/dist/src/components/button/Button.stories.d.ts +289 -0
  14. package/dist/src/components/calendar/Calendar.stories.d.ts +19 -0
  15. package/dist/src/components/categoryFilter/CategoryFilter.stories.d.ts +21 -0
  16. package/dist/src/components/chatbot/Chatbot.stories.d.ts +16 -0
  17. package/dist/src/components/checkbox/Checkbox.stories.d.ts +142 -0
  18. package/dist/src/components/collection/Collection.stories.d.ts +23 -0
  19. package/dist/src/components/counterIcon/CounterIcon.stories.d.ts +20 -0
  20. package/dist/src/components/coupon/Coupon.stories.d.ts +23 -0
  21. package/dist/src/components/divider/Divider.stories.d.ts +15 -0
  22. package/dist/src/components/dropdown/Dropdown.stories.d.ts +31 -0
  23. package/dist/src/components/filterButton/FilterButton.stories.d.ts +42 -0
  24. package/dist/src/components/filters/FilterButton.stories.d.ts +36 -0
  25. package/dist/src/components/filters/FilterItem.stories.d.ts +32 -0
  26. package/dist/src/components/flightSwitch/FlightSwitch.stories.d.ts +18 -0
  27. package/dist/src/components/footer/Footer.stories.d.ts +46 -0
  28. package/dist/src/components/giftCard/GiftCard.stories.d.ts +23 -0
  29. package/dist/{components → src/components}/giftCard/index.d.ts +2 -2
  30. package/dist/src/components/hamburgerMenuButton/HamburgerMenuButton.stories.d.ts +12 -0
  31. package/dist/src/components/header/Header.stories.d.ts +15 -0
  32. package/dist/{components → src/components}/header/index.d.ts +1 -1
  33. package/dist/src/components/hero/Hero.stories.d.ts +54 -0
  34. package/dist/{components → src/components}/hero/index.d.ts +3 -1
  35. package/dist/src/components/hotelAccomodationResults/HotelAccomodationResults.stories.d.ts +45 -0
  36. package/dist/src/components/hotelWidget/HotelWidget.stories.d.ts +43 -0
  37. package/dist/src/components/label/Label.stories.d.ts +17 -0
  38. package/dist/src/components/linkBox/LinkBox.stories.d.ts +20 -0
  39. package/dist/src/components/loading/Loading.stories.d.ts +17 -0
  40. package/dist/src/components/logo/Logo.stories.d.ts +14 -0
  41. package/dist/src/components/map/Map.stories.d.ts +15 -0
  42. package/dist/src/components/matrixTable/MatrixTable.stories.d.ts +55 -0
  43. package/dist/src/components/menu/Menu.stories.d.ts +42 -0
  44. package/dist/src/components/middleNavigation/MiddleNavigation.stories.d.ts +20 -0
  45. package/dist/src/components/nominations/Nominations.stories.d.ts +15 -0
  46. package/dist/src/components/numberField/NumberField.stories.d.ts +25 -0
  47. package/dist/src/components/pageNavigation/PageNavigation.stories.d.ts +19 -0
  48. package/dist/src/components/pageRating/PageRating.stories.d.ts +19 -0
  49. package/dist/src/components/phoneNumberInput/PhoneNumberInput.stories.d.ts +19 -0
  50. package/dist/src/components/photoCardsRotated/PhotoCardsRotated.stories.d.ts +21 -0
  51. package/dist/{components → src/components}/priceBox/index.d.ts +4 -1
  52. package/dist/src/components/priceCheck/Pricecheck.stories.d.ts +39 -0
  53. package/dist/src/components/profileMenu/ProfileMenu.stories.d.ts +92 -0
  54. package/dist/src/components/progressBar/ProgressBar.stories.d.ts +18 -0
  55. package/dist/src/components/pvPopup/PvPopup.stories.d.ts +38 -0
  56. package/dist/src/components/quantityButtons/QuantityButtons.stories.d.ts +19 -0
  57. package/dist/src/components/radioButton/RadioButton.stories.d.ts +18 -0
  58. package/dist/src/components/rangeSlider/RangeSlider.stories.d.ts +292 -0
  59. package/dist/src/components/rangeSlider/index.d.ts +16 -0
  60. package/dist/src/components/rating/Rating.stories.d.ts +16 -0
  61. package/dist/src/components/regionSelector/RegionSelector.stories.d.ts +15 -0
  62. package/dist/src/components/resultPageFilterBox/resultPageFilterBox.stories.d.ts +46 -0
  63. package/dist/src/components/review/Review.stories.d.ts +18 -0
  64. package/dist/src/components/reviewSmall/ReviewSmall.stories.d.ts +16 -0
  65. package/dist/src/components/reviews/Reviews.stories.d.ts +27 -0
  66. package/dist/src/components/scrollToTop/ScrollToTop.stories.d.ts +16 -0
  67. package/dist/src/components/searchBlock/SearchBlock.stories.d.ts +18 -0
  68. package/dist/src/components/searchBox/SearchBox.stories.d.ts +81 -0
  69. package/dist/src/components/searchBoxResults/SearchBoxResults.stories.d.ts +35 -0
  70. package/dist/src/components/searchInput/SearchInput.stories.d.ts +112 -0
  71. package/dist/src/components/skeleton/Skeleton.stories.d.ts +15 -0
  72. package/dist/src/components/slider/Slider.stories.d.ts +136 -0
  73. package/dist/{components → src/components}/slider/index.d.ts +5 -2
  74. package/dist/src/components/spotlights/Spotlights.stories.d.ts +19 -0
  75. package/dist/src/components/stepper/Stepper.stories.d.ts +15 -0
  76. package/dist/src/components/stickyFooter/StickyFooter.stories.d.ts +15 -0
  77. package/dist/src/components/stickyMobileButton/StickyMobileButtonWrapper.stories.d.ts +13 -0
  78. package/dist/src/components/table/Table.stories.d.ts +13 -0
  79. package/dist/src/components/table/tableCell/TableCell.stories.d.ts +16 -0
  80. package/dist/src/components/table/tableRow/TableRow.stories.d.ts +13 -0
  81. package/dist/src/components/temp/Temp.stories.d.ts +15 -0
  82. package/dist/src/components/textArea/Textarea.stories.d.ts +19 -0
  83. package/dist/src/components/textInput/TextInput.stories.d.ts +166 -0
  84. package/dist/src/components/timeInput/TimeInput.stories.d.ts +89 -0
  85. package/dist/src/components/toggle/Toggle.stories.d.ts +156 -0
  86. package/dist/src/components/topHeaderMenu/TopHeaderMenu.stories.d.ts +31 -0
  87. package/dist/src/components/topMenu/TopMenu.stories.d.ts +15 -0
  88. package/dist/src/components/truncatedText/TruncatedText.stories.d.ts +28 -0
  89. package/dist/src/components/unorderedList/UnorderedList.stories.d.ts +30 -0
  90. package/dist/src/components/unorderedListItem/UnorderedListItem.stories.d.ts +30 -0
  91. package/dist/src/components/usp/Usp.stories.d.ts +29 -0
  92. package/dist/src/components/viewedAccomodations/ViewedAccomodations.stories.d.ts +45 -0
  93. package/dist/src/components/warningText/WarningText.stories.d.ts +16 -0
  94. package/dist/src/components/weather/Weather.stories.d.ts +43 -0
  95. package/dist/src/icons/IconImage.d.ts +2 -0
  96. package/dist/src/icons/Icons.stories.d.ts +36 -0
  97. package/dist/{icons → src/icons}/index.d.ts +1 -0
  98. package/dist/{index.d.ts → src/index.d.ts} +0 -19
  99. package/dist/styles/utilities.css +2 -0
  100. package/dist/styles/variables.css +11 -1
  101. package/package.json +3 -1
  102. package/dist/components/actionIcon/ActionIcon.test.d.ts +0 -1
  103. package/dist/components/actionIcon/index.d.ts +0 -24
  104. package/dist/components/alert/Alert.test.d.ts +0 -1
  105. package/dist/components/alert/index.d.ts +0 -17
  106. package/dist/components/autoCompleteInput/autoCompleteInput.test.d.ts +0 -1
  107. package/dist/components/autoCompleteInput/index.d.ts +0 -17
  108. package/dist/components/avatar/avatar.test.d.ts +0 -1
  109. package/dist/components/avatar/index.d.ts +0 -22
  110. package/dist/components/avatarIndicator/avatarIndicator.test.d.ts +0 -1
  111. package/dist/components/avatarIndicator/index.d.ts +0 -6
  112. package/dist/components/badge/badge.test.d.ts +0 -1
  113. package/dist/components/badge/index.d.ts +0 -27
  114. package/dist/components/bigBadge/bigBadge.test.d.ts +0 -1
  115. package/dist/components/bigBadge/index.d.ts +0 -9
  116. package/dist/components/breadCrumb/breadCrumb.test.d.ts +0 -1
  117. package/dist/components/breadCrumb/index.d.ts +0 -13
  118. package/dist/components/datePickerInput/DatePickerInput.dropdown.test.d.ts +0 -1
  119. package/dist/components/datePickerInput/DatePickerInput.test.d.ts +0 -1
  120. package/dist/components/datePickerInput/index.d.ts +0 -20
  121. package/dist/components/favouriteButton/FavouriteButton.test.d.ts +0 -1
  122. package/dist/components/favouriteButton/index.d.ts +0 -19
  123. package/dist/components/island/index.d.ts +0 -12
  124. package/dist/components/island/island.test.d.ts +0 -1
  125. package/dist/components/modal/index.d.ts +0 -19
  126. package/dist/components/modal/modal.test.d.ts +0 -1
  127. package/dist/components/passwordInput/index.d.ts +0 -1
  128. package/dist/components/passwordInput/passwordInput.test.d.ts +0 -1
  129. package/dist/components/popover/index.d.ts +0 -6
  130. package/dist/components/popover/popover.test.d.ts +0 -1
  131. package/dist/components/rangeSlider/index.d.ts +0 -16
  132. package/dist/components/select/index.d.ts +0 -1
  133. package/dist/components/select/select.test.d.ts +0 -1
  134. package/dist/components/skillPill/index.d.ts +0 -6
  135. package/dist/components/skillPill/skillPill.test.d.ts +0 -1
  136. package/dist/components/tabs/Tab.d.ts +0 -11
  137. package/dist/components/tabs/Tab.test.d.ts +0 -1
  138. package/dist/components/tabs/TabsBadge.d.ts +0 -7
  139. package/dist/components/tabs/TabsBadge.test.d.ts +0 -1
  140. package/dist/components/tabs/TabsWrapper.d.ts +0 -17
  141. package/dist/components/tabs/TabsWrapper.test.d.ts +0 -1
  142. package/dist/components/tabs/index.d.ts +0 -3
  143. package/dist/components/tabs/tabs.test.d.ts +0 -1
  144. package/dist/components/unstyledButton/index.d.ts +0 -1
  145. package/dist/components/unstyledButton/unstyledButton.test.d.ts +0 -1
  146. /package/dist/{components → src/components}/accordion/AccordionItem.d.ts +0 -0
  147. /package/dist/{components → src/components}/accordion/accordion.test.d.ts +0 -0
  148. /package/dist/{components → src/components}/accordion/index.d.ts +0 -0
  149. /package/dist/{components → src/components}/blogWidget/BlogWidget.test.d.ts +0 -0
  150. /package/dist/{components → src/components}/blogWidget/index.d.ts +0 -0
  151. /package/dist/{components → src/components}/button/Button.test.d.ts +0 -0
  152. /package/dist/{components → src/components}/button/buttonVariants.d.ts +0 -0
  153. /package/dist/{components → src/components}/button/index.d.ts +0 -0
  154. /package/dist/{components → src/components}/calendar/Calendar.test.d.ts +0 -0
  155. /package/dist/{components → src/components}/calendar/index.d.ts +0 -0
  156. /package/dist/{components → src/components}/categoryFilter/CategoryFilter.test.d.ts +0 -0
  157. /package/dist/{components → src/components}/categoryFilter/index.d.ts +0 -0
  158. /package/dist/{components → src/components}/chatbot/index.d.ts +0 -0
  159. /package/dist/{components → src/components}/checkbox/checkbox.test.d.ts +0 -0
  160. /package/dist/{components → src/components}/checkbox/index.d.ts +0 -0
  161. /package/dist/{components → src/components}/collection/Collection.test.d.ts +0 -0
  162. /package/dist/{components → src/components}/collection/index.d.ts +0 -0
  163. /package/dist/{components → src/components}/colorScheme/index.d.ts +0 -0
  164. /package/dist/{components → src/components}/counterIcon/counterIcon.test.d.ts +0 -0
  165. /package/dist/{components → src/components}/counterIcon/index.d.ts +0 -0
  166. /package/dist/{components → src/components}/coupon/coupon.test.d.ts +0 -0
  167. /package/dist/{components → src/components}/coupon/index.d.ts +0 -0
  168. /package/dist/{components → src/components}/divider/divider.test.d.ts +0 -0
  169. /package/dist/{components → src/components}/divider/index.d.ts +0 -0
  170. /package/dist/{components → src/components}/dropdown/dropdown.test.d.ts +0 -0
  171. /package/dist/{components → src/components}/dropdown/index.d.ts +0 -0
  172. /package/dist/{components → src/components}/filterButton/filterButton.test.d.ts +0 -0
  173. /package/dist/{components → src/components}/filterButton/index.d.ts +0 -0
  174. /package/dist/{components → src/components}/filters/FilterButton.d.ts +0 -0
  175. /package/dist/{components → src/components}/filters/FilterButton.test.d.ts +0 -0
  176. /package/dist/{components → src/components}/filters/FilterItem.d.ts +0 -0
  177. /package/dist/{components → src/components}/filters/FilterItem.test.d.ts +0 -0
  178. /package/dist/{components → src/components}/filters/filters.test.d.ts +0 -0
  179. /package/dist/{components → src/components}/filters/index.d.ts +0 -0
  180. /package/dist/{components → src/components}/flightSwitch/flightSwitch.test.d.ts +0 -0
  181. /package/dist/{components → src/components}/flightSwitch/index.d.ts +0 -0
  182. /package/dist/{components → src/components}/footer/Footer.test.d.ts +0 -0
  183. /package/dist/{components → src/components}/footer/FooterBar.d.ts +0 -0
  184. /package/dist/{components → src/components}/footer/FooterBar.test.d.ts +0 -0
  185. /package/dist/{components → src/components}/footer/FooterNavigation.d.ts +0 -0
  186. /package/dist/{components → src/components}/footer/FooterNavigation.test.d.ts +0 -0
  187. /package/dist/{components → src/components}/footer/index.d.ts +0 -0
  188. /package/dist/{components → src/components}/footer/mockData.d.ts +0 -0
  189. /package/dist/{components → src/components}/giftCard/GiftCard.test.d.ts +0 -0
  190. /package/dist/{components → src/components}/hamburgerMenuButton/hamburgerMenuButton.test.d.ts +0 -0
  191. /package/dist/{components → src/components}/hamburgerMenuButton/index.d.ts +0 -0
  192. /package/dist/{components → src/components}/header/divider.test.d.ts +0 -0
  193. /package/dist/{components → src/components}/header/header.test.d.ts +0 -0
  194. /package/dist/{components → src/components}/hero/hero.test.d.ts +0 -0
  195. /package/dist/{components → src/components}/hotelAccomodationResults/HotelAccomodationResults.test.d.ts +0 -0
  196. /package/dist/{components → src/components}/hotelAccomodationResults/index.d.ts +0 -0
  197. /package/dist/{components → src/components}/hotelWidget/HotelWidget.test.d.ts +0 -0
  198. /package/dist/{components → src/components}/hotelWidget/index.d.ts +0 -0
  199. /package/dist/{components → src/components}/label/index.d.ts +0 -0
  200. /package/dist/{components → src/components}/label/label.test.d.ts +0 -0
  201. /package/dist/{components → src/components}/linkBox/index.d.ts +0 -0
  202. /package/dist/{components → src/components}/loading/Loading.test.d.ts +0 -0
  203. /package/dist/{components → src/components}/loading/cloud.d.ts +0 -0
  204. /package/dist/{components → src/components}/loading/d-reizen-sign.d.ts +0 -0
  205. /package/dist/{components → src/components}/loading/dollar.d.ts +0 -0
  206. /package/dist/{components → src/components}/loading/index.d.ts +0 -0
  207. /package/dist/{components → src/components}/loading/plane.d.ts +0 -0
  208. /package/dist/{components → src/components}/logo/Logo.test.d.ts +0 -0
  209. /package/dist/{components → src/components}/logo/index.d.ts +0 -0
  210. /package/dist/{components → src/components}/map/index.d.ts +0 -0
  211. /package/dist/{components → src/components}/matrixTable/MatrixTable.test.d.ts +0 -0
  212. /package/dist/{components → src/components}/matrixTable/index.d.ts +0 -0
  213. /package/dist/{components → src/components}/menu/index.d.ts +0 -0
  214. /package/dist/{components → src/components}/menu/menu.test.d.ts +0 -0
  215. /package/dist/{components → src/components}/menu/mockdata.d.ts +0 -0
  216. /package/dist/{components → src/components}/middleNavigation/divider.test.d.ts +0 -0
  217. /package/dist/{components → src/components}/middleNavigation/index.d.ts +0 -0
  218. /package/dist/{components → src/components}/middleNavigation/middleNavigation.test.d.ts +0 -0
  219. /package/dist/{components → src/components}/nominations/index.d.ts +0 -0
  220. /package/dist/{components → src/components}/nominations/nominations.test.d.ts +0 -0
  221. /package/dist/{components → src/components}/numberField/index.d.ts +0 -0
  222. /package/dist/{components → src/components}/numberField/numberField.test.d.ts +0 -0
  223. /package/dist/{components → src/components}/pageNavigation/index.d.ts +0 -0
  224. /package/dist/{components → src/components}/pageNavigation/pageNavigation.test.d.ts +0 -0
  225. /package/dist/{components → src/components}/pageRating/dynamic-rating.d.ts +0 -0
  226. /package/dist/{components → src/components}/pageRating/example.d.ts +0 -0
  227. /package/dist/{components → src/components}/pageRating/index.d.ts +0 -0
  228. /package/dist/{components → src/components}/pageRating/pageRating.test.d.ts +0 -0
  229. /package/dist/{components → src/components}/phoneNumberInput/PhoneNumberInput.edge.test.d.ts +0 -0
  230. /package/dist/{components → src/components}/phoneNumberInput/PhoneNumberInput.test.d.ts +0 -0
  231. /package/dist/{components → src/components}/phoneNumberInput/index.d.ts +0 -0
  232. /package/dist/{components → src/components}/photoCardsRotated/PhotoCardsRotated.test.d.ts +0 -0
  233. /package/dist/{components → src/components}/photoCardsRotated/index.d.ts +0 -0
  234. /package/dist/{components → src/components}/priceBox/priceBox.test.d.ts +0 -0
  235. /package/dist/{components → src/components}/priceCheck/Pricecheck.test.d.ts +0 -0
  236. /package/dist/{components → src/components}/priceCheck/index.d.ts +0 -0
  237. /package/dist/{components → src/components}/profileMenu/ProfileMenu.test.d.ts +0 -0
  238. /package/dist/{components → src/components}/profileMenu/index.d.ts +0 -0
  239. /package/dist/{components → src/components}/progressBar/index.d.ts +0 -0
  240. /package/dist/{components → src/components}/progressBar/progressBar.test.d.ts +0 -0
  241. /package/dist/{components → src/components}/pvPopup/PvPopup.test.d.ts +0 -0
  242. /package/dist/{components → src/components}/pvPopup/index.d.ts +0 -0
  243. /package/dist/{components → src/components}/quantityButtons/index.d.ts +0 -0
  244. /package/dist/{components → src/components}/quantityButtons/quantityButtons.test.d.ts +0 -0
  245. /package/dist/{components → src/components}/radioButton/index.d.ts +0 -0
  246. /package/dist/{components → src/components}/radioButton/radioButton.test.d.ts +0 -0
  247. /package/dist/{components → src/components}/rangeSlider/rangeSlider.test.d.ts +0 -0
  248. /package/dist/{components → src/components}/rating/index.d.ts +0 -0
  249. /package/dist/{components → src/components}/rating/rating.test.d.ts +0 -0
  250. /package/dist/{components → src/components}/regionSelector/index.d.ts +0 -0
  251. /package/dist/{components → src/components}/regionSelector/regionSelector.test.d.ts +0 -0
  252. /package/dist/{components → src/components}/resultPageFilterBox/index.d.ts +0 -0
  253. /package/dist/{components → src/components}/review/Review.test.d.ts +0 -0
  254. /package/dist/{components → src/components}/review/index.d.ts +0 -0
  255. /package/dist/{components → src/components}/reviewSmall/ReviewSmall.test.d.ts +0 -0
  256. /package/dist/{components → src/components}/reviewSmall/index.d.ts +0 -0
  257. /package/dist/{components → src/components}/reviews/index.d.ts +0 -0
  258. /package/dist/{components → src/components}/reviews/reviews.test.d.ts +0 -0
  259. /package/dist/{components → src/components}/scrollToTop/index.d.ts +0 -0
  260. /package/dist/{components → src/components}/scrollToTop/scrollToTop.test.d.ts +0 -0
  261. /package/dist/{components → src/components}/searchBlock/SearchBlock.test.d.ts +0 -0
  262. /package/dist/{components → src/components}/searchBlock/index.d.ts +0 -0
  263. /package/dist/{components → src/components}/searchBox/index.d.ts +0 -0
  264. /package/dist/{components → src/components}/searchBox/searchBox.test.d.ts +0 -0
  265. /package/dist/{components → src/components}/searchBoxResults/index.d.ts +0 -0
  266. /package/dist/{components → src/components}/searchBoxResults/searchBoxResults.test.d.ts +0 -0
  267. /package/dist/{components → src/components}/searchInput/index.d.ts +0 -0
  268. /package/dist/{components → src/components}/searchInput/searchInput.test.d.ts +0 -0
  269. /package/dist/{components → src/components}/skeleton/index.d.ts +0 -0
  270. /package/dist/{components → src/components}/skeleton/skeleton.test.d.ts +0 -0
  271. /package/dist/{components → src/components}/slider/slider.test.d.ts +0 -0
  272. /package/dist/{components → src/components}/spotlights/Spotlights.test.d.ts +0 -0
  273. /package/dist/{components → src/components}/spotlights/index.d.ts +0 -0
  274. /package/dist/{components → src/components}/stepper/Stepper.test.d.ts +0 -0
  275. /package/dist/{components → src/components}/stepper/index.d.ts +0 -0
  276. /package/dist/{components → src/components}/stickyFooter/index.d.ts +0 -0
  277. /package/dist/{components → src/components}/stickyMobileButton/index.d.ts +0 -0
  278. /package/dist/{components → src/components}/stickyMobileButton/stickyMobileButton.test.d.ts +0 -0
  279. /package/dist/{components → src/components}/table/index.d.ts +0 -0
  280. /package/dist/{components → src/components}/table/table.test.d.ts +0 -0
  281. /package/dist/{components → src/components}/table/tableCell/index.d.ts +0 -0
  282. /package/dist/{components → src/components}/table/tableCell/tableCell.test.d.ts +0 -0
  283. /package/dist/{components → src/components}/table/tableHeader/index.d.ts +0 -0
  284. /package/dist/{components → src/components}/table/tableHeader/tableHeader.test.d.ts +0 -0
  285. /package/dist/{components → src/components}/table/tableHeaderItem/index.d.ts +0 -0
  286. /package/dist/{components → src/components}/table/tableHeaderItem/tableHeaderItem.test.d.ts +0 -0
  287. /package/dist/{components → src/components}/table/tableHeaderRow/index.d.ts +0 -0
  288. /package/dist/{components → src/components}/table/tableHeaderRow/tableHeaderRow.test.d.ts +0 -0
  289. /package/dist/{components → src/components}/table/tableRow/index.d.ts +0 -0
  290. /package/dist/{components → src/components}/table/tableRow/tableRow.test.d.ts +0 -0
  291. /package/dist/{components → src/components}/temp/index.d.ts +0 -0
  292. /package/dist/{components → src/components}/textArea/index.d.ts +0 -0
  293. /package/dist/{components → src/components}/textArea/textArea.test.d.ts +0 -0
  294. /package/dist/{components → src/components}/textInput/index.d.ts +0 -0
  295. /package/dist/{components → src/components}/textInput/textInput.test.d.ts +0 -0
  296. /package/dist/{components → src/components}/timeInput/TimeInput.test.d.ts +0 -0
  297. /package/dist/{components → src/components}/timeInput/index.d.ts +0 -0
  298. /package/dist/{components → src/components}/toggle/index.d.ts +0 -0
  299. /package/dist/{components → src/components}/toggle/toggle.test.d.ts +0 -0
  300. /package/dist/{components → src/components}/topHeaderMenu/index.d.ts +0 -0
  301. /package/dist/{components → src/components}/topHeaderMenu/topHeaderMenu.test.d.ts +0 -0
  302. /package/dist/{components → src/components}/topMenu/index.d.ts +0 -0
  303. /package/dist/{components → src/components}/topMenu/topMenu.test.d.ts +0 -0
  304. /package/dist/{components → src/components}/truncatedText/index.d.ts +0 -0
  305. /package/dist/{components → src/components}/truncatedText/truncatedText.test.d.ts +0 -0
  306. /package/dist/{components → src/components}/unorderedList/index.d.ts +0 -0
  307. /package/dist/{components → src/components}/unorderedList/unorderedList.test.d.ts +0 -0
  308. /package/dist/{components → src/components}/unorderedListItem/index.d.ts +0 -0
  309. /package/dist/{components → src/components}/unorderedListItem/unorderedListItem.test.d.ts +0 -0
  310. /package/dist/{components → src/components}/usp/Usp.test.d.ts +0 -0
  311. /package/dist/{components → src/components}/usp/index.d.ts +0 -0
  312. /package/dist/{components → src/components}/viewedAccomodations/ViewedAccomodations.test.d.ts +0 -0
  313. /package/dist/{components → src/components}/viewedAccomodations/ViewedAccomodationsImage.d.ts +0 -0
  314. /package/dist/{components → src/components}/viewedAccomodations/index.d.ts +0 -0
  315. /package/dist/{components → src/components}/warningText/index.d.ts +0 -0
  316. /package/dist/{components → src/components}/warningText/warningText.test.d.ts +0 -0
  317. /package/dist/{components → src/components}/weather/icons/cloud_01.d.ts +0 -0
  318. /package/dist/{components → src/components}/weather/icons/cloud_02.d.ts +0 -0
  319. /package/dist/{components → src/components}/weather/icons/cloud_03.d.ts +0 -0
  320. /package/dist/{components → src/components}/weather/icons/cloud_lightning.d.ts +0 -0
  321. /package/dist/{components → src/components}/weather/icons/cloud_moon.d.ts +0 -0
  322. /package/dist/{components → src/components}/weather/icons/cloud_off.d.ts +0 -0
  323. /package/dist/{components → src/components}/weather/icons/cloud_raining_01.d.ts +0 -0
  324. /package/dist/{components → src/components}/weather/icons/cloud_raining_02.d.ts +0 -0
  325. /package/dist/{components → src/components}/weather/icons/cloud_raining_03.d.ts +0 -0
  326. /package/dist/{components → src/components}/weather/icons/cloud_raining_04.d.ts +0 -0
  327. /package/dist/{components → src/components}/weather/icons/cloud_raining_05.d.ts +0 -0
  328. /package/dist/{components → src/components}/weather/icons/cloud_raining_06.d.ts +0 -0
  329. /package/dist/{components → src/components}/weather/icons/cloud_snowing_01.d.ts +0 -0
  330. /package/dist/{components → src/components}/weather/icons/cloud_snowing_02.d.ts +0 -0
  331. /package/dist/{components → src/components}/weather/icons/cloud_sun_01.d.ts +0 -0
  332. /package/dist/{components → src/components}/weather/icons/cloud_sun_02.d.ts +0 -0
  333. /package/dist/{components → src/components}/weather/icons/cloud_sun_03.d.ts +0 -0
  334. /package/dist/{components → src/components}/weather/icons/droplets_01.d.ts +0 -0
  335. /package/dist/{components → src/components}/weather/icons/droplets_02.d.ts +0 -0
  336. /package/dist/{components → src/components}/weather/icons/droplets_03.d.ts +0 -0
  337. /package/dist/{components → src/components}/weather/icons/hurricane_01.d.ts +0 -0
  338. /package/dist/{components → src/components}/weather/icons/hurricane_02.d.ts +0 -0
  339. /package/dist/{components → src/components}/weather/icons/hurricane_03.d.ts +0 -0
  340. /package/dist/{components → src/components}/weather/icons/lightning_01.d.ts +0 -0
  341. /package/dist/{components → src/components}/weather/icons/lightning_02.d.ts +0 -0
  342. /package/dist/{components → src/components}/weather/icons/moon_01.d.ts +0 -0
  343. /package/dist/{components → src/components}/weather/icons/moon_02.d.ts +0 -0
  344. /package/dist/{components → src/components}/weather/icons/moon_eclipse.d.ts +0 -0
  345. /package/dist/{components → src/components}/weather/icons/moon_star.d.ts +0 -0
  346. /package/dist/{components → src/components}/weather/icons/snowflake_01.d.ts +0 -0
  347. /package/dist/{components → src/components}/weather/icons/snowflake_02.d.ts +0 -0
  348. /package/dist/{components → src/components}/weather/icons/stars_01.d.ts +0 -0
  349. /package/dist/{components → src/components}/weather/icons/stars_02.d.ts +0 -0
  350. /package/dist/{components → src/components}/weather/icons/stars_03.d.ts +0 -0
  351. /package/dist/{components → src/components}/weather/icons/sun.d.ts +0 -0
  352. /package/dist/{components → src/components}/weather/icons/sun_setting_01.d.ts +0 -0
  353. /package/dist/{components → src/components}/weather/icons/sun_setting_02.d.ts +0 -0
  354. /package/dist/{components → src/components}/weather/icons/sun_setting_03.d.ts +0 -0
  355. /package/dist/{components → src/components}/weather/icons/sunrise.d.ts +0 -0
  356. /package/dist/{components → src/components}/weather/icons/sunset.d.ts +0 -0
  357. /package/dist/{components → src/components}/weather/icons/thermometer_01.d.ts +0 -0
  358. /package/dist/{components → src/components}/weather/icons/thermometer_02.d.ts +0 -0
  359. /package/dist/{components → src/components}/weather/icons/thermometer_03.d.ts +0 -0
  360. /package/dist/{components → src/components}/weather/icons/thermometer_cold.d.ts +0 -0
  361. /package/dist/{components → src/components}/weather/icons/thermometer_warm.d.ts +0 -0
  362. /package/dist/{components → src/components}/weather/icons/umbrella_01.d.ts +0 -0
  363. /package/dist/{components → src/components}/weather/icons/umbrella_02.d.ts +0 -0
  364. /package/dist/{components → src/components}/weather/icons/umbrella_03.d.ts +0 -0
  365. /package/dist/{components → src/components}/weather/icons/waves.d.ts +0 -0
  366. /package/dist/{components → src/components}/weather/icons/wind_01.d.ts +0 -0
  367. /package/dist/{components → src/components}/weather/icons/wind_02.d.ts +0 -0
  368. /package/dist/{components → src/components}/weather/icons/wind_03.d.ts +0 -0
  369. /package/dist/{components → src/components}/weather/index.d.ts +0 -0
  370. /package/dist/{components → src/components}/weather/weather.test.d.ts +0 -0
  371. /package/dist/{components → src/components}/withPvUi.d.ts +0 -0
  372. /package/dist/{icons → src/icons}/IconAlert.d.ts +0 -0
  373. /package/dist/{icons → src/icons}/IconArrival.d.ts +0 -0
  374. /package/dist/{icons → src/icons}/IconArrowDown.d.ts +0 -0
  375. /package/dist/{icons → src/icons}/IconArrowLeft.d.ts +0 -0
  376. /package/dist/{icons → src/icons}/IconArrowRight.d.ts +0 -0
  377. /package/dist/{icons → src/icons}/IconArrowUp.d.ts +0 -0
  378. /package/dist/{icons → src/icons}/IconBeach.d.ts +0 -0
  379. /package/dist/{icons → src/icons}/IconBed.d.ts +0 -0
  380. /package/dist/{icons → src/icons}/IconBlog.d.ts +0 -0
  381. /package/dist/{icons → src/icons}/IconBus.d.ts +0 -0
  382. /package/dist/{icons → src/icons}/IconCalendar.d.ts +0 -0
  383. /package/dist/{icons → src/icons}/IconCancel.d.ts +0 -0
  384. /package/dist/{icons → src/icons}/IconCar.d.ts +0 -0
  385. /package/dist/{icons → src/icons}/IconCarSun.d.ts +0 -0
  386. /package/dist/{icons → src/icons}/IconCheck.d.ts +0 -0
  387. /package/dist/{icons → src/icons}/IconChevronRight.d.ts +0 -0
  388. /package/dist/{icons → src/icons}/IconCity.d.ts +0 -0
  389. /package/dist/{icons → src/icons}/IconClock.d.ts +0 -0
  390. /package/dist/{icons → src/icons}/IconCocktail.d.ts +0 -0
  391. /package/dist/{icons → src/icons}/IconDelete.d.ts +0 -0
  392. /package/dist/{icons → src/icons}/IconDeparture.d.ts +0 -0
  393. /package/dist/{icons → src/icons}/IconDollar.d.ts +0 -0
  394. /package/dist/{icons → src/icons}/IconEdit.d.ts +0 -0
  395. /package/dist/{icons → src/icons}/IconExpand.d.ts +0 -0
  396. /package/dist/{icons → src/icons}/IconFacebook.d.ts +0 -0
  397. /package/dist/{icons → src/icons}/IconFavorite.d.ts +0 -0
  398. /package/dist/{icons → src/icons}/IconFilter.d.ts +0 -0
  399. /package/dist/{icons → src/icons}/IconFood.d.ts +0 -0
  400. /package/dist/{icons → src/icons}/IconHeart.d.ts +0 -0
  401. /package/dist/{icons → src/icons}/IconHeartFilled.d.ts +0 -0
  402. /package/dist/{icons → src/icons}/IconHot.d.ts +0 -0
  403. /package/dist/{icons → src/icons}/IconHotel.d.ts +0 -0
  404. /package/dist/{icons → src/icons}/IconHouse.d.ts +0 -0
  405. /package/dist/{icons → src/icons}/IconIce.d.ts +0 -0
  406. /package/dist/{icons → src/icons}/IconInfo.d.ts +0 -0
  407. /package/dist/{icons → src/icons}/IconInstagram.d.ts +0 -0
  408. /package/dist/{icons → src/icons}/IconLuggage.d.ts +0 -0
  409. /package/dist/{icons → src/icons}/IconMail.d.ts +0 -0
  410. /package/dist/{icons → src/icons}/IconMap.d.ts +0 -0
  411. /package/dist/{icons → src/icons}/IconMinus.d.ts +0 -0
  412. /package/dist/{icons → src/icons}/IconParty.d.ts +0 -0
  413. /package/dist/{icons → src/icons}/IconPhone.d.ts +0 -0
  414. /package/dist/{icons → src/icons}/IconPhoto.d.ts +0 -0
  415. /package/dist/{icons → src/icons}/IconPinterest.d.ts +0 -0
  416. /package/dist/{icons → src/icons}/IconPlane.d.ts +0 -0
  417. /package/dist/{icons → src/icons}/IconPlus.d.ts +0 -0
  418. /package/dist/{icons → src/icons}/IconPresent.d.ts +0 -0
  419. /package/dist/{icons → src/icons}/IconPresent.test.d.ts +0 -0
  420. /package/dist/{icons → src/icons}/IconQuestion.d.ts +0 -0
  421. /package/dist/{icons → src/icons}/IconRating.d.ts +0 -0
  422. /package/dist/{icons → src/icons}/IconSearch.d.ts +0 -0
  423. /package/dist/{icons → src/icons}/IconSeat.d.ts +0 -0
  424. /package/dist/{icons → src/icons}/IconShare.d.ts +0 -0
  425. /package/dist/{icons → src/icons}/IconSplash.d.ts +0 -0
  426. /package/dist/{icons → src/icons}/IconStar.d.ts +0 -0
  427. /package/dist/{icons → src/icons}/IconSuccess.d.ts +0 -0
  428. /package/dist/{icons → src/icons}/IconSun.d.ts +0 -0
  429. /package/dist/{icons → src/icons}/IconSupport.d.ts +0 -0
  430. /package/dist/{icons → src/icons}/IconTemperature.d.ts +0 -0
  431. /package/dist/{icons → src/icons}/IconTiktok.d.ts +0 -0
  432. /package/dist/{icons → src/icons}/IconTransfer.d.ts +0 -0
  433. /package/dist/{icons → src/icons}/IconTree.d.ts +0 -0
  434. /package/dist/{icons → src/icons}/IconTwitter.d.ts +0 -0
  435. /package/dist/{icons → src/icons}/IconUser.d.ts +0 -0
  436. /package/dist/{icons → src/icons}/IconView.d.ts +0 -0
  437. /package/dist/{icons → src/icons}/IconWarning.d.ts +0 -0
  438. /package/dist/{icons → src/icons}/IconWatched.d.ts +0 -0
  439. /package/dist/{icons → src/icons}/IconWhatsapp.d.ts +0 -0
  440. /package/dist/{icons → src/icons}/IconWinterSport.d.ts +0 -0
  441. /package/dist/{icons → src/icons}/IconWinterSun.d.ts +0 -0
  442. /package/dist/{icons → src/icons}/icons.test.d.ts +0 -0
  443. /package/dist/{jsx-runtime-shim.d.ts → src/jsx-runtime-shim.d.ts} +0 -0
  444. /package/dist/{styles → src/styles}/index.d.ts +0 -0
  445. /package/dist/{theme → src/theme}/brand.d.ts +0 -0
  446. /package/dist/{theme → src/theme}/brand.test.d.ts +0 -0
  447. /package/dist/{theme → src/theme}/index.d.ts +0 -0
  448. /package/dist/{theme → src/theme}/variables.d.ts +0 -0
  449. /package/dist/{theme → src/theme}/variables.test.d.ts +0 -0
  450. /package/dist/{utils → src/utils}/ANVR.d.ts +0 -0
  451. /package/dist/{utils → src/utils}/Calamiteitenfonds.d.ts +0 -0
  452. /package/dist/{utils → src/utils}/SGR.d.ts +0 -0
  453. /package/dist/{utils → src/utils}/cn.d.ts +0 -0
  454. /package/dist/{utils → src/utils}/countries.d.ts +0 -0
  455. /package/dist/{utils → src/utils}/d-reizen_logo.d.ts +0 -0
  456. /package/dist/{utils → src/utils}/enums.d.ts +0 -0
  457. /package/dist/{utils → src/utils}/formatIcon.d.ts +0 -0
  458. /package/dist/{utils → src/utils}/formatIcon.test.d.ts +0 -0
  459. /package/dist/{utils → src/utils}/logos.test.d.ts +0 -0
  460. /package/dist/{utils → src/utils}/prijsvrij_logo.d.ts +0 -0
  461. /package/dist/{utils → src/utils}/ssr.d.ts +0 -0
  462. /package/dist/{utils → src/utils}/storybookIcons.d.ts +0 -0
package/dist/index.cjs CHANGED
@@ -31,12 +31,9 @@ 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 react_day_picker = __toESM(require("react-day-picker"));
34
+ const embla_carousel_auto_height = __toESM(require("embla-carousel-auto-height"));
35
35
  const date_fns = __toESM(require("date-fns"));
36
36
  const date_fns_locale = __toESM(require("date-fns/locale"));
37
- const __floating_ui_react = __toESM(require("@floating-ui/react"));
38
- const react_dom = __toESM(require("react-dom"));
39
- const react_select = __toESM(require("react-select"));
40
37
 
41
38
  //#region src/jsx-runtime-shim.ts
42
39
  const jsx = react.createElement;
@@ -53,118 +50,126 @@ var variables_default = {};
53
50
 
54
51
  //#endregion
55
52
  //#region src/components/topMenu/styles.css
56
- var styles_default$28 = {};
53
+ var styles_default$30 = {};
57
54
 
58
55
  //#endregion
59
56
  //#region src/components/button/styles.css
60
- var styles_default$27 = {};
57
+ var styles_default$29 = {};
61
58
 
62
59
  //#endregion
63
60
  //#region src/components/priceCheck/styles.css
64
- var styles_default$26 = {};
61
+ var styles_default$28 = {};
65
62
 
66
63
  //#endregion
67
64
  //#region src/components/toggle/styles.css
68
- var styles_default$25 = {};
65
+ var styles_default$27 = {};
69
66
 
70
67
  //#endregion
71
68
  //#region src/components/topHeaderMenu/styles.css
72
- var styles_default$24 = {};
69
+ var styles_default$26 = {};
73
70
 
74
71
  //#endregion
75
72
  //#region src/components/filterButton/styles.css
76
- var styles_default$23 = {};
73
+ var styles_default$25 = {};
77
74
 
78
75
  //#endregion
79
76
  //#region src/components/searchBox/styles.css
80
- var styles_default$22 = {};
77
+ var styles_default$24 = {};
81
78
 
82
79
  //#endregion
83
80
  //#region src/components/dropdown/styles.css
84
- var styles_default$21 = {};
81
+ var styles_default$23 = {};
85
82
 
86
83
  //#endregion
87
84
  //#region src/components/counterIcon/styles.css
88
- var styles_default$20 = {};
85
+ var styles_default$22 = {};
89
86
 
90
87
  //#endregion
91
88
  //#region src/components/usp/styles.css
92
- var styles_default$19 = {};
89
+ var styles_default$21 = {};
93
90
 
94
91
  //#endregion
95
92
  //#region src/components/middleNavigation/styles.css
96
- var styles_default$18 = {};
93
+ var styles_default$20 = {};
97
94
 
98
95
  //#endregion
99
96
  //#region src/components/menu/styles.css
100
- var styles_default$17 = {};
97
+ var styles_default$19 = {};
101
98
 
102
99
  //#endregion
103
100
  //#region src/components/footer/styles.css
104
- var styles_default$16 = {};
101
+ var styles_default$18 = {};
105
102
 
106
103
  //#endregion
107
104
  //#region src/components/blogWidget/styles.css
108
- var styles_default$15 = {};
105
+ var styles_default$17 = {};
109
106
 
110
107
  //#endregion
111
108
  //#region src/components/searchBlock/styles.css
112
- var styles_default$14 = {};
109
+ var styles_default$16 = {};
113
110
 
114
111
  //#endregion
115
112
  //#region src/components/categoryFilter/styles.css
116
- var styles_default$13 = {};
113
+ var styles_default$15 = {};
117
114
 
118
115
  //#endregion
119
116
  //#region src/components/collection/styles.css
120
- var styles_default$12 = {};
117
+ var styles_default$14 = {};
121
118
 
122
119
  //#endregion
123
120
  //#region src/components/review/styles.css
124
- var styles_default$11 = {};
121
+ var styles_default$13 = {};
125
122
 
126
123
  //#endregion
127
124
  //#region src/components/hotelAccomodationResults/styles.css
128
- var styles_default$10 = {};
125
+ var styles_default$12 = {};
129
126
 
130
127
  //#endregion
131
128
  //#region src/components/coupon/styles.css
132
- var styles_default$9 = {};
129
+ var styles_default$11 = {};
133
130
 
134
131
  //#endregion
135
132
  //#region src/components/giftCard/styles.css
136
- var styles_default$8 = {};
133
+ var styles_default$10 = {};
137
134
 
138
135
  //#endregion
139
136
  //#region src/components/pvPopup/styles.css
140
- var styles_default$7 = {};
137
+ var styles_default$9 = {};
141
138
 
142
139
  //#endregion
143
140
  //#region src/components/photoCardsRotated/styles.css
144
- var styles_default$6 = {};
141
+ var styles_default$8 = {};
145
142
 
146
143
  //#endregion
147
144
  //#region src/components/spotlights/styles.css
148
- var styles_default$5 = {};
145
+ var styles_default$7 = {};
149
146
 
150
147
  //#endregion
151
148
  //#region src/components/viewedAccomodations/styles.css
152
- var styles_default$4 = {};
149
+ var styles_default$6 = {};
153
150
 
154
151
  //#endregion
155
152
  //#region src/components/quantityButtons/styles.css
156
- var styles_default$3 = {};
153
+ var styles_default$5 = {};
157
154
 
158
155
  //#endregion
159
156
  //#region src/components/matrixTable/styles.css
160
- var styles_default$2 = {};
157
+ var styles_default$4 = {};
161
158
 
162
159
  //#endregion
163
160
  //#region src/components/pageNavigation/styles.css
164
- var styles_default$1 = {};
161
+ var styles_default$3 = {};
165
162
 
166
163
  //#endregion
167
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
168
173
  var styles_default = {};
169
174
 
170
175
  //#endregion
@@ -1777,6 +1782,27 @@ const IconCocktail = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_r
1777
1782
  })
1778
1783
  });
1779
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
+
1780
1806
  //#endregion
1781
1807
  //#region src/theme/variables.ts
1782
1808
  const CSS_VARIABLE_KEYS = [
@@ -4221,7 +4247,7 @@ const PriceCheck = ({ className, price, text, disabled = false, "data-testid": t
4221
4247
  children: text
4222
4248
  }),
4223
4249
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
4224
- className: `price-check-price-padding${price && price > 999 ? "-large" : ""} text-start price-check-color-price price-check-fontFamily-price font-bold text-2xl whitespace-nowrap price-check-price-margin-top`,
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`,
4225
4251
  children: [
4226
4252
  price,
4227
4253
  ",",
@@ -5161,11 +5187,12 @@ const QuantityButtons = ({ className, value, setValue, minValue = 0, maxValue =
5161
5187
  //#endregion
5162
5188
  //#region src/components/slider/index.tsx
5163
5189
  const LAZY_LOAD_PLACEHOLDER_SRC = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";
5164
- 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 }) {
5165
5191
  const [emblaRef, emblaApi] = (0, embla_carousel_react.default)(options, plugins);
5166
5192
  const [selectedIndex, setSelectedIndex] = (0, react.useState)(0);
5167
5193
  const [scrollSnaps, setScrollSnaps] = (0, react.useState)([]);
5168
5194
  const [slidesInView, setSlidesInView] = (0, react.useState)([]);
5195
+ const [loadedImages, setLoadedImages] = (0, react.useState)(new Set());
5169
5196
  const canScrollPrev = (0, react.useMemo)(() => emblaApi?.canScrollPrev() ?? false, [emblaApi, selectedIndex]);
5170
5197
  const canScrollNext = (0, react.useMemo)(() => emblaApi?.canScrollNext() ?? false, [emblaApi, selectedIndex]);
5171
5198
  const scrollPrev = (0, react.useCallback)(() => {
@@ -5220,6 +5247,17 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
5220
5247
  lazyLoad,
5221
5248
  updateSlidesInView
5222
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
+ ]);
5223
5261
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
5224
5262
  "data-component": "slider",
5225
5263
  className: cn("relative", className),
@@ -5229,9 +5267,9 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
5229
5267
  ref: emblaRef,
5230
5268
  className: cn("overflow-hidden", viewportClassName),
5231
5269
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5232
- className: cn("flex touch-pan-y", containerClassName),
5270
+ className: cn("flex touch-pan-y items-start", containerClassName),
5233
5271
  children: slides.map((slide, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5234
- 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),
5235
5273
  children: lazyLoad && (0, react.isValidElement)(slide) && slide.type === "img" ? (() => {
5236
5274
  const hasBeenInView = slidesInView.includes(index);
5237
5275
  const originalSrc = slide.props.src;
@@ -5239,16 +5277,20 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
5239
5277
  return (0, react.cloneElement)(slide, {
5240
5278
  src,
5241
5279
  "data-src": originalSrc,
5242
- className: cn(slide.props.className, "h-auto")
5280
+ className: cn(slide.props.className, "h-auto"),
5281
+ onLoad: () => setLoadedImages((prev) => new Set(prev).add(index))
5243
5282
  });
5244
- })() : (0, react.isValidElement)(slide) ? (0, react.cloneElement)(slide, { className: cn(slide.props.className, "h-auto") }) : 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
5245
5287
  }, index))
5246
5288
  }), showDots && dotsPlacement === "inside" && scrollSnaps.length > 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
5247
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",
5248
5290
  children: scrollSnaps.map((_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
5249
5291
  type: "button",
5250
5292
  "aria-label": `Go to slide ${index + 1}`,
5251
- className: cn("pointer-events-auto cursor-pointer h-2 w-2 rounded-full bg-transparent border-2 border-white", index === selectedIndex && "bg-white"),
5293
+ className: cn("pointer-events-auto cursor-pointer h-2 w-2 bg-transparent rounded-full border-2 border-white", index === selectedIndex && "selectedIndexBg"),
5252
5294
  onClick: () => scrollTo(index)
5253
5295
  }, index))
5254
5296
  })]
@@ -5260,12 +5302,25 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
5260
5302
  children: overlay
5261
5303
  })
5262
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
+ }),
5263
5318
  showArrows && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
5264
5319
  className: "pointer-events-none absolute inset-y-0 left-0 right-0 z-20 flex items-center justify-between",
5265
5320
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
5266
5321
  type: "button",
5267
5322
  "aria-label": "Previous slide",
5268
- className: cn("pointer-events-auto cursor-pointer ml-2 inline-flex size-9 items-center justify-center rounded-full bg-black/40 text-white shadow", !canScrollPrev && "opacity-50"),
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"),
5269
5324
  onClick: scrollPrev,
5270
5325
  disabled: !canScrollPrev,
5271
5326
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -5275,7 +5330,7 @@ function Slider({ slides, options, plugins, lazyLoad = false, showArrows = true,
5275
5330
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
5276
5331
  type: "button",
5277
5332
  "aria-label": "Next slide",
5278
- className: cn("pointer-events-auto cursor-pointer mr-2 inline-flex size-9 items-center justify-center rounded-full bg-black/40 text-white shadow", !canScrollNext && "opacity-50"),
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"),
5279
5334
  onClick: scrollNext,
5280
5335
  disabled: !canScrollNext,
5281
5336
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -6982,7 +7037,7 @@ const Chatbot = ({ className,...props }) => /* @__PURE__ */ (0, react_jsx_runtim
6982
7037
 
6983
7038
  //#endregion
6984
7039
  //#region src/components/priceBox/index.tsx
6985
- 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 }) => {
6986
7041
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
6987
7042
  "data-testid": dataTestId,
6988
7043
  "data-component": "price-box",
@@ -6996,6 +7051,10 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
6996
7051
  text: hotel.PriceInfo
6997
7052
  })
6998
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
+ }),
6999
7058
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7000
7059
  className: "text-sm flex flex-col gap-3 order-2",
7001
7060
  children: [
@@ -7009,7 +7068,11 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
7009
7068
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: hotel.DepartureDate.split(",")[0] }),
7010
7069
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
7011
7070
  className: "text-gray-400 ml-2",
7012
- children: [hotel.Duration, " dagen"]
7071
+ children: [
7072
+ "(",
7073
+ hotel.Duration,
7074
+ " dagen)"
7075
+ ]
7013
7076
  })
7014
7077
  ]
7015
7078
  }),
@@ -7039,10 +7102,11 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
7039
7102
  className: "w-4/12 md:w-full order-3",
7040
7103
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7041
7104
  variant: brand === "prijsvrij" ? "primaryGlow" : "secondary",
7042
- className: "whitespace-nowrap w-full md:w-auto",
7105
+ className: "whitespace-nowrap w-full",
7043
7106
  iconRight: true,
7044
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, { className: "w-4 h-4" }),
7045
- children: "Bekijk vakantie"
7107
+ onClick,
7108
+ icon: showButtonIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconArrowRight, { className: "w-4 h-4" }) : undefined,
7109
+ children: buttonText
7046
7110
  })
7047
7111
  })
7048
7112
  ]
@@ -7050,959 +7114,148 @@ const PriceBox = ({ className, hotel, brand, noBorder = false, noHover = false,
7050
7114
  };
7051
7115
 
7052
7116
  //#endregion
7053
- //#region src/utils/enums.ts
7054
- let ACTION_ICON_STYLE_VARIANT = /* @__PURE__ */ function(ACTION_ICON_STYLE_VARIANT$1) {
7055
- ACTION_ICON_STYLE_VARIANT$1["DEFAULT"] = "default";
7056
- ACTION_ICON_STYLE_VARIANT$1["TRANSPARENT"] = "transparent";
7057
- ACTION_ICON_STYLE_VARIANT$1["SMALL"] = "small";
7058
- ACTION_ICON_STYLE_VARIANT$1["ROUND"] = "round";
7059
- return ACTION_ICON_STYLE_VARIANT$1;
7060
- }({});
7061
- let THEME_ICON_STYLE_VARIANT = /* @__PURE__ */ function(THEME_ICON_STYLE_VARIANT$1) {
7062
- THEME_ICON_STYLE_VARIANT$1["PINK_WITH_BACKGROUND"] = "pink-with-background";
7063
- return THEME_ICON_STYLE_VARIANT$1;
7064
- }({});
7065
- let COLOR = /* @__PURE__ */ function(COLOR$1) {
7066
- COLOR$1["PRIMARY"] = "primary";
7067
- COLOR$1["BLACK"] = "black";
7068
- COLOR$1["LIGHT_BLUE"] = "light-blue";
7069
- COLOR$1["LIGHT_BLUE_DISABLED"] = "light-blue-disabled";
7070
- COLOR$1["GREEN"] = "green";
7071
- COLOR$1["GREEN_LIGHT"] = "green-light";
7072
- COLOR$1["PINK"] = "pink";
7073
- COLOR$1["PINK_LIGHT"] = "pink-light";
7074
- COLOR$1["ORANGE"] = "orange";
7075
- COLOR$1["ORANGE_LIGHT"] = "orange-light";
7076
- COLOR$1["ACCENT_BLUE"] = "accent-blue";
7077
- COLOR$1["ACCENT_BLUE_LIGHT"] = "accent-blue-light";
7078
- COLOR$1["YELLOW"] = "yellow";
7079
- COLOR$1["CHECK"] = "check";
7080
- COLOR$1["WARNING"] = "warning";
7081
- COLOR$1["ERROR"] = "error";
7082
- COLOR$1["SUCCESS"] = "success";
7083
- COLOR$1["WARNING_LIGHT"] = "warning-light";
7084
- COLOR$1["ULTRA_LIGHT_BLUE"] = "ultra-light-blue";
7085
- COLOR$1["ULTRA_LIGHT_GRAY"] = "ultra-light-gray";
7086
- COLOR$1["TURQUOISE"] = "turquoise";
7087
- COLOR$1["RED"] = "red";
7088
- COLOR$1["GRAY"] = "gray";
7089
- COLOR$1["WHITE"] = "white";
7090
- COLOR$1["PURPLE"] = "purple";
7091
- COLOR$1["PURPLE_LIGHT"] = "purple-light";
7092
- return COLOR$1;
7093
- }({});
7094
- let REGION = /* @__PURE__ */ function(REGION$1) {
7095
- REGION$1["NETHERLANDS"] = "nl";
7096
- REGION$1["BELGIUM"] = "nl-BE";
7097
- REGION$1["UNITED_KINGDOM"] = "gb";
7098
- return REGION$1;
7099
- }({});
7100
- let TOOLTIP_COLOR = /* @__PURE__ */ function(TOOLTIP_COLOR$1) {
7101
- TOOLTIP_COLOR$1["DEFAULT"] = "default";
7102
- TOOLTIP_COLOR$1["WHITE"] = "white";
7103
- return TOOLTIP_COLOR$1;
7104
- }({});
7105
-
7106
- //#endregion
7107
- //#region src/components/actionIcon/index.tsx
7108
- const ActionIcon = (0, react.forwardRef)(({ title, disabled = false, styleVariant = "default", icon, type = "button", "data-testid": testId, iconSize = 20, strokeWidth = 1, onClick, className,...props }, ref) => {
7109
- const variantClassNames = (0, clsx.default)({
7110
- "active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500": styleVariant === ACTION_ICON_STYLE_VARIANT.DEFAULT,
7111
- "active:translate-y-[1px] border-none content-center flex items-center justify-center rounded-[4px] border text-black child:p-10 w-[36px] h-[36px] disabled:text-gray-500": styleVariant === ACTION_ICON_STYLE_VARIANT.TRANSPARENT,
7112
- "active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] child:p-10 w-[37px] h-[37px] text-black rounded-full bg-primary hover:bg-turquoise-700 disabled:turquoise-50 disabled:text-gray-800": styleVariant === ACTION_ICON_STYLE_VARIANT.ROUND,
7113
- "w-7 h-7 active:translate-y-[1px] content-center flex items-center justify-center rounded-[4px] border border-gray-200 hover:border-black text-black hover:bg-gray-50 disabled:text-gray-500": styleVariant === ACTION_ICON_STYLE_VARIANT.SMALL
7114
- });
7115
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7116
- title,
7117
- type,
7118
- disabled,
7119
- "data-testid": testId,
7120
- "data-component": "ActionIcon",
7121
- className: cn(variantClassNames, { "hover:bg-transparant cursor-not-allowed hover:border-gray-200": disabled }, className),
7117
+ //#region src/components/filters/FilterButton.tsx
7118
+ const FilterButton$1 = ({ onClick, hasFilters, reset, filtersText, resetText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7119
+ className: "flex gap-3",
7120
+ "data-testid": "filterButton",
7121
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7122
7122
  onClick,
7123
- ref,
7124
- "data-tooltip-id": title,
7125
- "data-tooltip-content": title,
7126
- ...props,
7127
- children: icon ? formatIcon(icon, {
7128
- stroke: strokeWidth,
7129
- size: iconSize
7130
- }) : props["children"]
7131
- }) });
7123
+ variant: "secondary",
7124
+ className: "font-normal md:font-normal",
7125
+ icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7126
+ children: filtersText
7127
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7128
+ className: "text-sm font-normal disabled:text-gray-500",
7129
+ onClick: reset,
7130
+ disabled: !hasFilters,
7131
+ children: resetText
7132
+ })]
7132
7133
  });
7133
- ActionIcon.displayName = "ActionIcon";
7134
-
7135
- //#endregion
7136
- //#region src/components/alert/index.tsx
7137
- const Alert = ({ show, message, type, plain = false, className }) => {
7138
- const [showAlert, setShowAlert] = (0, react.useState)();
7139
- const icon = () => {
7140
- if (plain) return null;
7141
- switch (type) {
7142
- case "warning": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7143
- className: "text-warning hidden md:block",
7144
- "data-testid": "alert-circle-icon"
7145
- });
7146
- case "error": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7147
- className: "hidden text-red-500 md:block",
7148
- "data-testid": "alert-circle-icon"
7149
- });
7150
- case "success": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7151
- className: "text-green hidden md:block",
7152
- "data-testid": "check-circle-icon"
7153
- });
7154
- }
7134
+
7135
+ //#endregion
7136
+ //#region src/components/filters/FilterItem.tsx
7137
+ const FilterItem = ({ title, isActive = false, onClick }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
7138
+ className: cn("has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 text-sm leading-6 font-normal transition-all duration-300 ease-in-out hover:bg-gray-50"),
7139
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
7140
+ type: "checkbox",
7141
+ className: "hidden",
7142
+ onChange: onClick,
7143
+ checked: isActive
7144
+ }), title]
7145
+ });
7146
+
7147
+ //#endregion
7148
+ //#region src/components/filters/index.tsx
7149
+ const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, filtersText, resetText }) => {
7150
+ const content = (0, react.useRef)(null);
7151
+ const [showFilters, setShowFilters] = (0, react.useState)(false);
7152
+ const onFilter = (filter) => {
7153
+ if (selectedFilters.includes(filter)) setFilters(selectedFilters.filter((f) => f !== filter));
7154
+ else setFilters([...selectedFilters, filter]);
7155
7155
  };
7156
7156
  (0, react.useEffect)(() => {
7157
- setShowAlert(show);
7158
- }, [show]);
7159
- if (!showAlert) return null;
7160
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7161
- className: cn(`flex w-full justify-between gap-3 rounded border border-solid p-5 md:items-center md:gap-12 ${plain ? "border-none py-4 text-sm font-medium" : ""}`, {
7162
- "border-warning bg-warning-light text-warning": type === COLOR.WARNING,
7163
- "border-red-500 bg-red-50 text-red-500": type === COLOR.ERROR,
7164
- "border-green bg-green-light text-green": type === COLOR.SUCCESS
7165
- }, className),
7166
- "data-component": "Alert",
7167
- "data-testid": "alert",
7168
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7169
- className: "flex md:items-center",
7170
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7171
- className: "flex md:items-center",
7172
- children: icon()
7173
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
7174
- className: `m-0 font-medium text-black ${plain ? "" : "md:ml-5"}`,
7175
- children: message
7157
+ setShowFilters(selectedFilters.length > 0);
7158
+ }, [selectedFilters]);
7159
+ const onReset = () => {
7160
+ setFilters([]);
7161
+ };
7162
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7163
+ className: "grid justify-end gap-3",
7164
+ "data-testid": "filters-component",
7165
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7166
+ className: "flex items-center justify-end gap-3",
7167
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7168
+ className: "text-sm font-medium",
7169
+ "data-testid": "filters-title",
7170
+ children: selectedFiltersText
7171
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterButton$1, {
7172
+ onClick: () => setShowFilters(!showFilters),
7173
+ hasFilters: selectedFilters.length > 0,
7174
+ reset: () => onReset(),
7175
+ filtersText,
7176
+ resetText
7176
7177
  })]
7177
- }) })
7178
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7179
+ ref: content,
7180
+ "data-testid": "filters-items-container",
7181
+ "data-visible": showFilters,
7182
+ className: cn("flex flex-wrap justify-end gap-2 overflow-hidden opacity-0 ease-in-out [transition:max-height_0.4s,opacity_0.3s]", showFilters && "opacity-100"),
7183
+ style: { maxHeight: showFilters ? `${content?.current?.scrollHeight}px` : "0px" },
7184
+ children: filters.map((filter) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterItem, {
7185
+ title: filter,
7186
+ isActive: selectedFilters.includes(filter),
7187
+ onClick: () => onFilter(filter)
7188
+ }, filter))
7189
+ })]
7178
7190
  });
7179
7191
  };
7180
- Alert.displayName = "Alert";
7181
7192
 
7182
7193
  //#endregion
7183
- //#region src/components/textInput/index.tsx
7184
- const TextInput = react.default.forwardRef(({ rightSection, leftSection, className, error, autoFocus, label, maxLength, enablePasswordManagerAutofill = false, onBlur, disabled, loadingState, onKeyDown, min = "0", max, autoComplete, showRightSection = true, step, wrapperClassName, password = false,...props }, ref) => {
7185
- const [showPassword, setShowPassword] = react.default.useState(false);
7194
+ //#region src/components/hamburgerMenuButton/index.tsx
7195
+ const HamburgerMenuButton = (0, react.forwardRef)(({ menuState, setMenuState }, ref) => {
7196
+ const defaultClasses = cn("absolute h-[2px] bg-white duration-150");
7197
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Button, {
7198
+ onClick: setMenuState,
7199
+ variant: "textButton",
7200
+ className: "relative h-4 w-6",
7201
+ name: "hamburgerMenuButton",
7202
+ "data-component": "hamburgerMenuButton",
7203
+ "aria-label": "Mobile Menu button",
7204
+ ref,
7205
+ children: [
7206
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7207
+ "data-testid": "hamburger-line-top",
7208
+ className: cn(defaultClasses, "top-0 left-0 w-6", { "translation top-1/2 translate-y-[-50%] rotate-45 transform duration-150 ease-in": menuState })
7209
+ }),
7210
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7211
+ "data-testid": "hamburger-line-middle",
7212
+ className: cn(defaultClasses, "top-1/2 right-0 w-4 translate-y-[-50%]", { "translation opacity-0 ease-in": menuState })
7213
+ }),
7214
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7215
+ "data-testid": "hamburger-line-bottom",
7216
+ className: cn(defaultClasses, "bottom-0 left-0 w-6", { "translation top-1/2 translate-y-[-50%] -rotate-45 transform duration-150 ease-in": menuState })
7217
+ })
7218
+ ]
7219
+ });
7220
+ });
7221
+ HamburgerMenuButton.displayName = "HamburgerMenuButton";
7222
+
7223
+ //#endregion
7224
+ //#region src/components/numberField/index.tsx
7225
+ const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className = "", label, error, onChange }) => {
7226
+ const handleChange = (e) => {
7227
+ const newValue = parseInt(e.target.value, 10);
7228
+ onChange?.(newValue);
7229
+ };
7230
+ const handleIncrement = () => {
7231
+ onChange?.(value + 1);
7232
+ };
7233
+ const handleDecrement = () => {
7234
+ if (value > 0) onChange?.(value - 1);
7235
+ };
7186
7236
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7187
- "data-component": "TextInput",
7188
- "data-testid": "TextInput",
7189
- className: (0, clsx.default)("relative", wrapperClassName),
7237
+ "data-testid": "number-field-container",
7238
+ className: `inline-flex flex-col ${className}`,
7190
7239
  children: [
7191
- typeof label === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
7192
- htmlFor: props["id"],
7193
- className: "mb-2 flex items-center gap-1 text-xs font-medium text-black",
7240
+ label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
7241
+ htmlFor: id,
7242
+ className: "mb-1 text-sm font-medium text-gray-700",
7194
7243
  children: label
7195
- }) : label,
7244
+ }),
7196
7245
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7197
- className: "relative",
7246
+ className: `has-focus:border-primary group relative flex w-[108px] items-center rounded-md border border-gray-300 ${error ? "border-red-300" : "border-gray-300"}`,
7198
7247
  children: [
7199
- leftSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7200
- className: (0, clsx.default)("absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black"),
7201
- children: leftSection
7248
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7249
+ type: "button",
7250
+ onClick: handleDecrement,
7251
+ disabled: isDisabled,
7252
+ className: "absolute left-0 flex h-full w-8 items-center justify-center rounded-l-md border-r-0 bg-gray-50 text-gray-500 hover:bg-gray-100",
7253
+ children: "-"
7202
7254
  }),
7203
7255
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
7204
- onBlur,
7205
- onKeyDown,
7206
- autoComplete,
7207
- min,
7208
- max,
7209
- autoFocus,
7210
- disabled,
7211
- step,
7212
- maxLength,
7213
- className: (0, clsx.default)(`${loadingState ? "cursor-not-allowed" : ""}`, `${disabled ? "text-gray-500" : "text-gray-900"} selection:bg-turquoise-200 focus:border-turquoise-500 focus:ring-turquoise-500 active:border-turquoise-500 active:ring-turquoise-500 h-10 w-full rounded-[4px] border border-gray-200 bg-gray-50 px-3 text-sm font-normal outline-hidden ${rightSection && "pr-12"} ${leftSection && "pl-12"} ${error && "border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500"}`, className),
7214
- "aria-busy": loadingState || undefined,
7215
- "data-lpignore": enablePasswordManagerAutofill ? undefined : "true",
7216
- "data-1p-ignore": enablePasswordManagerAutofill ? undefined : "true",
7217
- ref,
7218
- ...props,
7219
- type: password ? showPassword ? "text" : "password" : "text"
7220
- }),
7221
- loadingState ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7222
- className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black",
7223
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconAlert, {
7224
- className: "h-4 w-4 animate-spin text-gray-500",
7225
- "aria-label": "Loading"
7226
- })
7227
- }) : rightSection && showRightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7228
- className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black",
7229
- children: rightSection
7230
- }),
7231
- password && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7232
- className: "absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle text-sm font-medium text-black",
7233
- children: showPassword ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7234
- "data-testid": "password-visibility-toggle",
7235
- className: "cursor-pointer text-gray-500",
7236
- onClick: () => setShowPassword(false)
7237
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7238
- "data-testid": "password-visibility-toggle",
7239
- className: "cursor-pointer text-gray-500",
7240
- onClick: () => setShowPassword(true)
7241
- })
7242
- })
7243
- ]
7244
- }),
7245
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7246
- className: "mt-2 text-xs font-normal text-red-500",
7247
- children: error
7248
- })
7249
- ]
7250
- });
7251
- });
7252
-
7253
- //#endregion
7254
- //#region src/components/autoCompleteInput/index.tsx
7255
- const AutoCompleteInput = ({ label, onChange, onFocus, inputValue, showSuggestions, handleOnKeyDown, children, error, rightSection, inputRef }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7256
- className: "relative mb-8",
7257
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
7258
- ref: inputRef,
7259
- label,
7260
- id: "search",
7261
- type: "text",
7262
- name: "searchField",
7263
- onChange,
7264
- onFocus,
7265
- onKeyDown: handleOnKeyDown,
7266
- value: inputValue,
7267
- error,
7268
- rightSection,
7269
- "aria-autocomplete": "list",
7270
- "aria-controls": "suggestions-googlemaps-location-list"
7271
- }), showSuggestions && inputValue && children]
7272
- });
7273
-
7274
- //#endregion
7275
- //#region src/components/avatar/index.tsx
7276
- const radiusFormatter = {
7277
- 0: "rounded-none",
7278
- 2: "rounded-sm",
7279
- 4: "rounded",
7280
- 6: "rounded-lg",
7281
- 8: "rounded-xl",
7282
- 10: "rounded-2xl",
7283
- 12: "rounded-3xl",
7284
- 100: "rounded-full"
7285
- };
7286
- const Avatar = ({ src, alt = "", size = 50, radius = 100, "data-testid": dataTestId = "avatar" }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7287
- "data-component": "Avatar",
7288
- "data-testid": dataTestId,
7289
- children: src && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
7290
- src,
7291
- className: cn("aspect-square appearance-none object-cover", radiusFormatter[radius]),
7292
- alt,
7293
- width: size,
7294
- height: size,
7295
- "data-testid": "avatar-img"
7296
- })
7297
- });
7298
- Avatar.displayName = "Avatar";
7299
-
7300
- //#endregion
7301
- //#region src/components/avatarIndicator/index.tsx
7302
- const AvatarIndicator = ({ indicatorCount, className }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7303
- className: cn("inline-flex h-5 min-w-5 flex-col items-center justify-center gap-2.5 rounded border-2 border-solid border-white bg-blue-950 px-1.5", className),
7304
- "data-component": "AvatarIndicator",
7305
- "data-testid": "AvatarIndicator",
7306
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7307
- className: "font-['Gotham'] text-[10px] leading-[10px] font-bold text-white",
7308
- children: `+${indicatorCount}`
7309
- })
7310
- });
7311
-
7312
- //#endregion
7313
- //#region src/components/badge/index.tsx
7314
- const Badge = ({ styleVariant = COLOR.ACCENT_BLUE, className, favorite, mobile = false, badgeBorder = false, fullWidth = false, leftSection, rightSection, children,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
7315
- "data-testid": "badge",
7316
- "data-component": "Badge",
7317
- className: (0, clsx.default)("inline-flex h-[1.375rem] max-w-full place-content-center items-center p-[10px] align-middle text-xs leading-[20px] font-medium tracking-wide text-wrap whitespace-normal normal-case", mobile ? "rounded-s" : "rounded-[2rem]", fullWidth && "w-full", badgeBorder && {
7318
- "border-accent-blue": styleVariant === COLOR.ACCENT_BLUE,
7319
- "border-green-light": styleVariant === COLOR.GREEN_LIGHT,
7320
- "border-red-500": styleVariant === COLOR.RED,
7321
- "border-purple": styleVariant === COLOR.PURPLE,
7322
- "border-warning": styleVariant === COLOR.WARNING,
7323
- "border-black": styleVariant === COLOR.BLACK,
7324
- "border-gray-800": styleVariant === COLOR.GRAY,
7325
- "border-pink": styleVariant === COLOR.PINK_LIGHT || styleVariant === COLOR.PINK,
7326
- "border-gray-200 bg-white text-black": styleVariant === COLOR.WHITE
7327
- }, {
7328
- "bg-accent-blue-light text-accent-blue": styleVariant === COLOR.ACCENT_BLUE,
7329
- "bg-green-light text-green": styleVariant === COLOR.GREEN_LIGHT,
7330
- "bg-red-50 text-red-500": styleVariant === COLOR.RED,
7331
- "bg-purple-light text-purple": styleVariant === COLOR.PURPLE,
7332
- "bg-warning-light text-warning": styleVariant === COLOR.WARNING,
7333
- "bg-gray-50 text-black": styleVariant === COLOR.BLACK,
7334
- "bg-gray-50 text-gray-800": styleVariant === COLOR.GRAY,
7335
- "bg-pink-light text-pink": styleVariant === COLOR.PINK_LIGHT,
7336
- "bg-pink text-white": styleVariant === COLOR.PINK,
7337
- "bg-white text-black": styleVariant === COLOR.WHITE
7338
- }, className),
7339
- ...props,
7340
- children: [
7341
- leftSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7342
- "data-testid": "left-section",
7343
- children: leftSection
7344
- }),
7345
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7346
- "data-testid": "badge-content",
7347
- className: cn("block h-5 overflow-hidden text-ellipsis whitespace-nowrap", { "flex items-center": favorite }),
7348
- children
7349
- }),
7350
- rightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7351
- "data-testid": "right-section",
7352
- children: rightSection
7353
- })
7354
- ]
7355
- });
7356
- Badge.displayName = "Badge";
7357
-
7358
- //#endregion
7359
- //#region src/components/bigBadge/index.tsx
7360
- const BigBadge = ({ styleVariant = COLOR.GREEN, className, children,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7361
- "data-component": "BigBadge",
7362
- "data-testid": "big-badge",
7363
- className: cn("grid h-9 max-w-full min-w-[140px] place-content-center rounded-full border border-solid px-6 py-1 text-sm font-medium whitespace-nowrap lowercase", {
7364
- "border-green text-green bg-white": styleVariant === COLOR.GREEN,
7365
- "border-accent-blue text-accent-blue bg-white": styleVariant === COLOR.ACCENT_BLUE,
7366
- "border-orange text-orange bg-white": styleVariant === COLOR.ORANGE,
7367
- "group-hover:bg-green-light": styleVariant === COLOR.GREEN,
7368
- "border-red-500 bg-white text-red-500": styleVariant === COLOR.RED,
7369
- "group-hover:bg-red-50": styleVariant === COLOR.RED,
7370
- "border-gray-200 bg-white text-black": styleVariant === COLOR.WHITE,
7371
- "": styleVariant === COLOR.WHITE
7372
- }, className),
7373
- ...props,
7374
- children
7375
- });
7376
-
7377
- //#endregion
7378
- //#region src/components/breadCrumb/index.tsx
7379
- const BreadCrumb = ({ children, LinkText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkText, {
7380
- "data-component": "BreadCrumb",
7381
- classNames: "flex items-center",
7382
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", { role: "img" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7383
- className: "flex items-center gap-5",
7384
- children
7385
- })] })
7386
- });
7387
- BreadCrumb.displayName = "BreadCrumb";
7388
-
7389
- //#endregion
7390
- //#region src/components/popover/index.tsx
7391
- const Popover = (0, react.forwardRef)(({ content, children, hoverEnabled = false, passedOpen = false, placement = "right", style = "card", isMobile = false, className }, ref) => {
7392
- const [isOpen, setIsOpen] = (0, react.useState)(passedOpen);
7393
- const mobileStyles = { width: `${style === "card" && "100%"}` };
7394
- const { refs, floatingStyles, context } = (0, __floating_ui_react.useFloating)({
7395
- open: isOpen,
7396
- onOpenChange: setIsOpen,
7397
- placement: !isMobile ? placement : "bottom-start",
7398
- middleware: [
7399
- !isMobile && (0, __floating_ui_react.flip)(),
7400
- !isMobile && (0, __floating_ui_react.shift)(),
7401
- (0, __floating_ui_react.offset)(() => ({
7402
- mainAxis: 15,
7403
- crossAxis: !isMobile ? 0 : 78
7404
- }))
7405
- ],
7406
- whileElementsMounted: __floating_ui_react.autoUpdate
7407
- });
7408
- const click = (0, __floating_ui_react.useClick)(context, {
7409
- event: "click",
7410
- keyboardHandlers: true
7411
- });
7412
- const focus = (0, __floating_ui_react.useFocus)(context);
7413
- const hover = (0, __floating_ui_react.useHover)(context, { enabled: hoverEnabled });
7414
- const dismiss = (0, __floating_ui_react.useDismiss)(context);
7415
- const role = (0, __floating_ui_react.useRole)(context, { role: "tooltip" });
7416
- const interactions = [
7417
- click,
7418
- focus,
7419
- dismiss,
7420
- role,
7421
- hover
7422
- ];
7423
- const { getReferenceProps, getFloatingProps } = (0, __floating_ui_react.useInteractions)(interactions);
7424
- (0, react.useImperativeHandle)(ref, () => ({
7425
- closePopover: () => setIsOpen(false),
7426
- openPopover: () => setIsOpen(true),
7427
- togglePopover: () => setIsOpen((prev) => !prev)
7428
- }));
7429
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7430
- className: cn("", { "[&>div]:border-navyBlue": isOpen }, className),
7431
- children: [(0, react.isValidElement)(children) && (0, react.cloneElement)(children, getReferenceProps({
7432
- ref: refs.setReference,
7433
- ...getReferenceProps()
7434
- })), isOpen && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7435
- ref: refs.setFloating,
7436
- style: {
7437
- ...floatingStyles,
7438
- ...isMobile && { ...mobileStyles }
7439
- },
7440
- ...getFloatingProps(),
7441
- className: (0, clsx.default)("z-60", {
7442
- "w-fit rounded border border-gray-200! bg-white p-5": style === "minimal",
7443
- "card w-[489px] drop-shadow-xl": style === "card"
7444
- }),
7445
- "data-testid": "popover-container",
7446
- "data-component": "Popover",
7447
- children: [style === "minimal" && content, style === "card" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7448
- className: "bg-linear-gradient-x pt-[3px]",
7449
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7450
- className: "relative overflow-hidden bg-white p-5",
7451
- children: [!hoverEnabled && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionIcon, {
7452
- onClick: () => setIsOpen(false),
7453
- title: "",
7454
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7455
- styleVariant: "small",
7456
- className: "absolute top-5 right-5"
7457
- }), content]
7458
- })
7459
- })]
7460
- })]
7461
- });
7462
- });
7463
-
7464
- //#endregion
7465
- //#region src/components/datePickerInput/index.tsx
7466
- const DatePickerInput = ({ lang, todayText, value, disabledFrom, disabledUntil, className, error, onChange, placeholder, label, disabled, minimalDropdownYears = 4 }) => {
7467
- const [selected, setSelected] = (0, react.useState)(value);
7468
- const today = new Date();
7469
- const [newMonth, setNewMonth] = (0, react.useState)(selected || today);
7470
- const [dropdownOpened, setDropdownOpened] = (0, react.useState)({
7471
- month: false,
7472
- year: false
7473
- });
7474
- const locales = {
7475
- fr: date_fns_locale.fr,
7476
- enGB: date_fns_locale.enGB,
7477
- nl: date_fns_locale.nl,
7478
- nlBE: date_fns_locale.nlBE
7479
- };
7480
- const dropdownRef = (0, react.useRef)(null);
7481
- const popoverRef = (0, react.useRef)(null);
7482
- const renderLocale = () => {
7483
- switch (lang) {
7484
- case "fr-FR": return locales.fr;
7485
- case "nl-BE": return locales.nlBE;
7486
- case "nl-NL": return locales.nl;
7487
- case "en-GB": return locales.enGB;
7488
- default: return locales.enGB;
7489
- }
7490
- };
7491
- /* istanbul ignore next - relies on dropdown DOM not rendered in tests */
7492
- const handleClickOutside = (event) => {
7493
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) setDropdownOpened({
7494
- month: false,
7495
- year: false
7496
- });
7497
- };
7498
- /* istanbul ignore next - environment differences make listener attach hard to test */
7499
- (0, react.useEffect)(() => {
7500
- if (dropdownOpened.month || dropdownOpened.year) document.addEventListener("mousedown", handleClickOutside);
7501
- else document.removeEventListener("mousedown", handleClickOutside);
7502
- return () => {
7503
- document.removeEventListener("mousedown", handleClickOutside);
7504
- };
7505
- }, [dropdownOpened]);
7506
- const handleDayClick = (date) => {
7507
- /* istanbul ignore next - react-day-picker rarely calls onSelect(undefined) in our configuration */
7508
- if (!date) return;
7509
- handleClosePopover();
7510
- setNewMonth(date);
7511
- setSelected(date);
7512
- onChange?.(date);
7513
- };
7514
- const isDateSelected = (day) => {
7515
- /* istanbul ignore next - defensive null guard */
7516
- if (!selected || !day) return false;
7517
- const d1 = new Date(day?.date);
7518
- const d2 = new Date(selected);
7519
- d1.setHours(0, 0, 0, 0);
7520
- d2.setHours(0, 0, 0, 0);
7521
- return d1.getTime() === d2.getTime();
7522
- };
7523
- const handleClosePopover = () => {
7524
- popoverRef.current?.closePopover();
7525
- };
7526
- const isDateToday = (day) => {
7527
- /* istanbul ignore next - defensive null guard */
7528
- if (!day) return false;
7529
- const d1 = new Date(day?.date);
7530
- const d2 = new Date(today);
7531
- d1.setHours(0, 0, 0, 0);
7532
- d2.setHours(0, 0, 0, 0);
7533
- return d1.getTime() === d2.getTime();
7534
- };
7535
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Popover, {
7536
- style: "minimal",
7537
- className: "w-full",
7538
- ref: popoverRef,
7539
- content: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_day_picker.DayPicker, {
7540
- ...className && { className },
7541
- mode: "single",
7542
- selected,
7543
- onSelect: handleDayClick,
7544
- locale: renderLocale(),
7545
- fixedWeeks: true,
7546
- endMonth: (0, date_fns.addMonths)(today, 13),
7547
- captionLayout: "dropdown",
7548
- onMonthChange: (newMonth$1) => setNewMonth(newMonth$1),
7549
- showOutsideDays: true,
7550
- disabled: disabledFrom ? { before: disabledFrom } : disabledUntil ? { after: disabledUntil } : undefined,
7551
- classNames: {
7552
- month_grid: "mt-3 max-w-[400px] border-t border-gray-100",
7553
- month_caption: "text-sm font-bold",
7554
- dropdowns: "flex items-center w-[190px] gap-1 left-0 justify-center h-8",
7555
- caption_label: "text-sm font-medium flex items-center justify-center w-[190px]",
7556
- chevron: "w-4 h-4 z-50",
7557
- nav: "absolute w-[190px] justify-between flex h-8 items-center",
7558
- nav_button: "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 cursor-pointer",
7559
- nav_button_previous: "absolute left-1",
7560
- nav_button_next: "absolute right-1",
7561
- day: "h-8 w-8 p-0 aria-selected:opacity-100 font-normal text-sm",
7562
- weekdays: "pt-12",
7563
- weekday: "text-gray-300 text-sm font-normal pt-4 pb-2",
7564
- day_today: "bg-accent text-accent-foreground",
7565
- day_outside: "day-outside text-gray-800 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
7566
- day_disabled: "text-gray-800",
7567
- day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
7568
- day_hidden: "invisible"
7569
- },
7570
- components: {
7571
- DayButton: (props) => {
7572
- const { day,...buttonProps } = props;
7573
- const { goToMonth } = (0, react_day_picker.useDayPicker)();
7574
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7575
- type: "button",
7576
- ...buttonProps,
7577
- className: (0, clsx.default)("m-1 size-8 text-black transition-all duration-100 ease-in-out", "md:hover:bg-gradient-calendar hover:rounded md:hover:text-white", isDateSelected(day) && "bg-gradient-calendar rounded text-sm font-normal text-white", isDateToday(day) && "border-b-primary border border-transparent", "translate-y-0 active:translate-y-0.5"),
7578
- onClick: () => {
7579
- goToMonth(day.date);
7580
- handleDayClick(day.date);
7581
- }
7582
- });
7583
- },
7584
- Dropdown: (props) => {
7585
- const { goToMonth, months } = (0, react_day_picker.useDayPicker)();
7586
- const { className: dropdownClassName } = props;
7587
- const today$1 = new Date();
7588
- /* istanbul ignore next - react-day-picker may not pass this className in our test env */
7589
- if (dropdownClassName === "rdp-months_dropdown") {
7590
- const selectedYear = newMonth.getFullYear();
7591
- const selectItems = Array.from({ length: 12 }, (_, i) => {
7592
- const monthDate = (0, date_fns.setMonth)(new Date(selectedYear, i), i);
7593
- return {
7594
- value: i.toString(),
7595
- label: (0, date_fns.format)(monthDate, "MMMM", { locale: renderLocale() })
7596
- };
7597
- });
7598
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7599
- className: "relative",
7600
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7601
- className: "cursor-pointer",
7602
- onClick: () => setDropdownOpened({
7603
- ...dropdownOpened,
7604
- month: !dropdownOpened.month,
7605
- year: false
7606
- }),
7607
- children: (0, date_fns.format)(newMonth, "MMMM", { locale: renderLocale() })
7608
- }), dropdownOpened.month && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7609
- ref: dropdownRef,
7610
- className: "shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white",
7611
- children: selectItems.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7612
- onClick: () => {
7613
- const newDate = new Date(selectedYear, parseInt(item.value));
7614
- goToMonth(newDate);
7615
- setDropdownOpened({
7616
- month: false,
7617
- year: false
7618
- });
7619
- },
7620
- className: "z-70 cursor-pointer border-b border-gray-50 bg-white px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50",
7621
- children: item.label
7622
- }, item.value))
7623
- })]
7624
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7625
- variant: "secondary",
7626
- type: "button",
7627
- className: "absolute top-4 right-4 z-10 h-8 px-3 text-xs font-normal",
7628
- onClick: () => {
7629
- goToMonth(today$1);
7630
- handleDayClick(today$1);
7631
- },
7632
- children: todayText
7633
- })] });
7634
- } else if (dropdownClassName === "rdp-years_dropdown") {
7635
- const earliestYear = new Date().getFullYear() - minimalDropdownYears;
7636
- const latestYear = new Date().getFullYear() + 1;
7637
- /* istanbul ignore else - defensive guard will always be truthy */
7638
- if (earliestYear && latestYear) {
7639
- const years = Array.from({ length: latestYear - earliestYear + 1 }, (_, i) => earliestYear + i).reverse();
7640
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7641
- className: "relative",
7642
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7643
- className: "cursor-pointer",
7644
- onClick: () => setDropdownOpened({
7645
- ...dropdownOpened,
7646
- year: !dropdownOpened.year,
7647
- month: false
7648
- }),
7649
- children: (0, date_fns.format)(newMonth, "yyyy", { locale: renderLocale() })
7650
- }), dropdownOpened.year && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7651
- ref: dropdownRef,
7652
- className: "shadow-dropdown absolute z-70 rounded-md border border-gray-50 bg-white max-h-64 overflow-y-auto",
7653
- children: years.map((year) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7654
- onClick: () => {
7655
- const newDate = months?.[0]?.date || new Date();
7656
- newDate.setFullYear(year);
7657
- goToMonth(newDate);
7658
- setDropdownOpened({
7659
- month: false,
7660
- year: false
7661
- });
7662
- },
7663
- className: "z-70 cursor-pointer border-b border-gray-50 px-4 py-1 font-normal text-black transition duration-200 ease-out hover:bg-gray-50",
7664
- children: year
7665
- }, year))
7666
- })]
7667
- });
7668
- }
7669
- }
7670
- /* istanbul ignore next - fallback path only when react-day-picker passes unknown className */
7671
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
7672
- }
7673
- }
7674
- }) }),
7675
- placement: "bottom-start",
7676
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7677
- "data-component": "datePickerInput",
7678
- className: cn("relative", className),
7679
- children: [
7680
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
7681
- className: "mb-2 flex items-center gap-1 text-xs font-medium",
7682
- children: label
7683
- }),
7684
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Button, {
7685
- variant: "outline",
7686
- type: "button",
7687
- disabled,
7688
- className: cn(
7689
- "flex h-10 w-full items-center justify-start bg-gray-50 px-3 text-black",
7690
- /* istanbul ignore next - cosmetic class toggle */
7691
- { "border-red-500 text-red-500": error }
7692
- ),
7693
- onClick: () => setNewMonth(today),
7694
- children: [
7695
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7696
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7697
- className: "text-sm font-normal text-nowrap text-black",
7698
- children: selected ? selected.toLocaleDateString() : placeholder
7699
- }),
7700
- selected !== undefined && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7701
- className: "cursor-pointer text-sm font-normal text-gray-800",
7702
- onClick: () => {
7703
- setSelected(undefined);
7704
- onChange?.(undefined);
7705
- },
7706
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {})
7707
- }) })
7708
- ]
7709
- }),
7710
- error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
7711
- className: "text-xs font-normal text-red-500",
7712
- children: error
7713
- })
7714
- ]
7715
- })
7716
- });
7717
- };
7718
-
7719
- //#endregion
7720
- //#region src/components/favouriteButton/index.tsx
7721
- const FavouriteButton = (0, react.forwardRef)((props, ref) => {
7722
- const { onClick, favourite, iconFilled, iconOutline, favouriteTitle, iconColorSelected = "text-pink", iconColor = "text-gray-800", iconSize, className = "", styleVariant = "transparent", children,...rest } = props;
7723
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionIcon, {
7724
- onClick,
7725
- "data-component": "favouriteButton",
7726
- title: favouriteTitle || "Favorite",
7727
- styleVariant,
7728
- className: `${favourite ? iconColorSelected : iconColor} ${className}`.trim(),
7729
- iconSize,
7730
- ref,
7731
- icon: favourite ? iconFilled ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}) : iconOutline ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7732
- ...rest,
7733
- children
7734
- });
7735
- });
7736
-
7737
- //#endregion
7738
- //#region src/components/unstyledButton/index.tsx
7739
- const UnstyledButton = (0, react.forwardRef)(({ className,...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7740
- type: "button",
7741
- "data-component": "unstyledButton",
7742
- className: cn("appearance-none", className),
7743
- ref,
7744
- ...props
7745
- }));
7746
- UnstyledButton.displayName = "UnstyledButton";
7747
-
7748
- //#endregion
7749
- //#region src/components/filters/FilterButton.tsx
7750
- const FilterButton$1 = ({ onClick, hasFilters, reset, filtersText, resetText }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7751
- className: "flex gap-3",
7752
- "data-testid": "filterButton",
7753
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
7754
- onClick,
7755
- variant: "secondary",
7756
- className: "font-normal md:font-normal",
7757
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7758
- children: filtersText
7759
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnstyledButton, {
7760
- className: "text-sm font-normal disabled:text-gray-500",
7761
- onClick: reset,
7762
- disabled: !hasFilters,
7763
- children: resetText
7764
- })]
7765
- });
7766
-
7767
- //#endregion
7768
- //#region src/components/filters/FilterItem.tsx
7769
- const FilterItem = ({ title, isActive = false, onClick }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
7770
- className: cn("has-checked:border-primary has-checked:bg-turquoise-100 flex cursor-pointer items-center gap-3 rounded-full border border-gray-200 px-7 py-1.5 text-sm leading-6 font-normal transition-all duration-300 ease-in-out hover:bg-gray-50"),
7771
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
7772
- type: "checkbox",
7773
- className: "hidden",
7774
- onChange: onClick,
7775
- checked: isActive
7776
- }), title]
7777
- });
7778
-
7779
- //#endregion
7780
- //#region src/components/filters/index.tsx
7781
- const Filters = ({ filters, setFilters, selectedFilters, selectedFiltersText, filtersText, resetText }) => {
7782
- const content = (0, react.useRef)(null);
7783
- const [showFilters, setShowFilters] = (0, react.useState)(false);
7784
- const onFilter = (filter) => {
7785
- if (selectedFilters.includes(filter)) setFilters(selectedFilters.filter((f) => f !== filter));
7786
- else setFilters([...selectedFilters, filter]);
7787
- };
7788
- (0, react.useEffect)(() => {
7789
- setShowFilters(selectedFilters.length > 0);
7790
- }, [selectedFilters]);
7791
- const onReset = () => {
7792
- setFilters([]);
7793
- };
7794
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7795
- className: "grid justify-end gap-3",
7796
- "data-testid": "filters-component",
7797
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7798
- className: "flex items-center justify-end gap-3",
7799
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7800
- className: "text-sm font-medium",
7801
- "data-testid": "filters-title",
7802
- children: selectedFiltersText
7803
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterButton$1, {
7804
- onClick: () => setShowFilters(!showFilters),
7805
- hasFilters: selectedFilters.length > 0,
7806
- reset: () => onReset(),
7807
- filtersText,
7808
- resetText
7809
- })]
7810
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7811
- ref: content,
7812
- "data-testid": "filters-items-container",
7813
- "data-visible": showFilters,
7814
- className: cn("flex flex-wrap justify-end gap-2 overflow-hidden opacity-0 ease-in-out [transition:max-height_0.4s,opacity_0.3s]", showFilters && "opacity-100"),
7815
- style: { maxHeight: showFilters ? `${content?.current?.scrollHeight}px` : "0px" },
7816
- children: filters.map((filter) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterItem, {
7817
- title: filter,
7818
- isActive: selectedFilters.includes(filter),
7819
- onClick: () => onFilter(filter)
7820
- }, filter))
7821
- })]
7822
- });
7823
- };
7824
-
7825
- //#endregion
7826
- //#region src/components/hamburgerMenuButton/index.tsx
7827
- const HamburgerMenuButton = (0, react.forwardRef)(({ menuState, setMenuState }, ref) => {
7828
- const defaultClasses = cn("absolute h-[2px] bg-white duration-150");
7829
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(UnstyledButton, {
7830
- onClick: setMenuState,
7831
- className: "relative h-4 w-6",
7832
- name: "hamburgerMenuButton",
7833
- "data-component": "hamburgerMenuButton",
7834
- "aria-label": "Mobile Menu button",
7835
- ref,
7836
- children: [
7837
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7838
- "data-testid": "hamburger-line-top",
7839
- className: cn(defaultClasses, "top-0 left-0 w-6", { "translation top-1/2 translate-y-[-50%] rotate-45 transform duration-150 ease-in": menuState })
7840
- }),
7841
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7842
- "data-testid": "hamburger-line-middle",
7843
- className: cn(defaultClasses, "top-1/2 right-0 w-4 translate-y-[-50%]", { "translation opacity-0 ease-in": menuState })
7844
- }),
7845
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
7846
- "data-testid": "hamburger-line-bottom",
7847
- className: cn(defaultClasses, "bottom-0 left-0 w-6", { "translation top-1/2 translate-y-[-50%] -rotate-45 transform duration-150 ease-in": menuState })
7848
- })
7849
- ]
7850
- });
7851
- });
7852
- HamburgerMenuButton.displayName = "HamburgerMenuButton";
7853
-
7854
- //#endregion
7855
- //#region src/components/island/index.tsx
7856
- const Island = ({ children, className, noShadow = false, noPadding = false,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7857
- "data-testid": "island",
7858
- "data-component": "island",
7859
- className: cn("relative bg-white px-5 py-5 md:px-10 md:py-9", {
7860
- "shadow-[0_-0.5rem_2rem_rgba(38,41,92,0.04)]": !noShadow,
7861
- "drop-shadow-none": noShadow,
7862
- "md:px-0 md:py-0": noPadding
7863
- }, className),
7864
- ...props,
7865
- children
7866
- });
7867
- Island.displayName = "Island";
7868
-
7869
- //#endregion
7870
- //#region src/components/modal/index.tsx
7871
- const Modal = ({ title, children, withCloseButton = true, opened, additionalClassNames, closeModalWithConfirmation = false, gradient = true, uncloseAble = false, confirmText = "Are you sure you want to close this modal?", dataTestId, onClose, size }) => {
7872
- const ref = (0, react.useRef)(null);
7873
- const refContainer = (0, react.useRef)(null);
7874
- const [isOpen, setIsOpen] = (0, react.useState)(false);
7875
- (0, react.useEffect)(() => {
7876
- setIsOpen(opened);
7877
- }, [opened]);
7878
- const handleClose = (0, react.useCallback)(() => {
7879
- if (uncloseAble) return;
7880
- if (closeModalWithConfirmation) {
7881
- if (window.confirm(confirmText)) {
7882
- setIsOpen(false);
7883
- onClose();
7884
- }
7885
- } else {
7886
- setIsOpen(false);
7887
- onClose();
7888
- }
7889
- }, [
7890
- closeModalWithConfirmation,
7891
- onClose,
7892
- uncloseAble
7893
- ]);
7894
- const handleClickOutside = (0, react.useCallback)((event) => {
7895
- if (refContainer.current && refContainer.current.contains(event.target)) {
7896
- if (ref.current && !ref.current.contains(event.target)) handleClose();
7897
- }
7898
- }, [handleClose]);
7899
- const handleEscapeKey = (0, react.useCallback)((event) => {
7900
- if (event.code === "Escape") handleClose();
7901
- }, [handleClose]);
7902
- (0, react.useEffect)(() => {
7903
- if (isOpen) {
7904
- document.addEventListener("mousedown", handleClickOutside);
7905
- window.addEventListener("keydown", handleEscapeKey);
7906
- }
7907
- return () => {
7908
- document.removeEventListener("mousedown", handleClickOutside);
7909
- window.removeEventListener("keydown", handleEscapeKey);
7910
- };
7911
- }, [
7912
- handleClickOutside,
7913
- handleClose,
7914
- handleEscapeKey,
7915
- isOpen,
7916
- onClose,
7917
- opened,
7918
- ref
7919
- ]);
7920
- if (!isOpen) return null;
7921
- return (0, react_dom.createPortal)(/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7922
- className: cn("fixed top-0 left-0 z-999 grid h-full w-full items-center overflow-y-scroll overscroll-contain px-4 py-10 md:py-20"),
7923
- "data-testid": dataTestId,
7924
- "data-component": "modal",
7925
- ref: refContainer,
7926
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7927
- className: "bg-navy-blue/40 fixed top-0 left-0 z-[-1] size-full",
7928
- "data-testid": "modalBg"
7929
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7930
- className: "relative flex w-full justify-center",
7931
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
7932
- className: cn("relative h-full w-full max-w-[1000px] bg-white px-5 py-8 shadow-xl md:px-10 md:py-10", additionalClassNames, size),
7933
- ref,
7934
- role: "dialog",
7935
- tabIndex: -1,
7936
- "aria-modal": isOpen,
7937
- "aria-label": title,
7938
- children: [
7939
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7940
- className: "relative z-10 w-full",
7941
- children: withCloseButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionIcon, {
7942
- onClick: handleClose,
7943
- "aria-label": "close modal",
7944
- className: "absolute top-0 right-0",
7945
- "data-testid": "close-modal",
7946
- icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {}),
7947
- title: "close Modal"
7948
- })
7949
- }),
7950
- title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7951
- className: "relative w-full pt-14",
7952
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
7953
- className: "mt-0 mb-8 text-left text-3xl font-bold",
7954
- children: title
7955
- })
7956
- }),
7957
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children }),
7958
- gradient && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
7959
- "data-testid": "modal-gradient",
7960
- className: "absolute bottom-0 left-0 mt-8 mb-0 h-2! w-full border-none",
7961
- style: { backgroundImage: "linear-gradient(90deg, var(--color-light-blue) 0%, var(--color-primary) 50.52%, var(--color-pink) 100%)" }
7962
- })
7963
- ]
7964
- })
7965
- })]
7966
- }), document.body);
7967
- };
7968
- Modal.displayName = "Modal";
7969
-
7970
- //#endregion
7971
- //#region src/components/numberField/index.tsx
7972
- const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className = "", label, error, onChange }) => {
7973
- const handleChange = (e) => {
7974
- const newValue = parseInt(e.target.value, 10);
7975
- onChange?.(newValue);
7976
- };
7977
- const handleIncrement = () => {
7978
- onChange?.(value + 1);
7979
- };
7980
- const handleDecrement = () => {
7981
- if (value > 0) onChange?.(value - 1);
7982
- };
7983
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7984
- "data-testid": "number-field-container",
7985
- className: `inline-flex flex-col ${className}`,
7986
- children: [
7987
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
7988
- htmlFor: id,
7989
- className: "mb-1 text-sm font-medium text-gray-700",
7990
- children: label
7991
- }),
7992
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7993
- className: `has-focus:border-primary group relative flex w-[108px] items-center rounded-md border border-gray-300 ${error ? "border-red-300" : "border-gray-300"}`,
7994
- children: [
7995
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7996
- type: "button",
7997
- onClick: handleDecrement,
7998
- disabled: isDisabled,
7999
- className: "absolute left-0 flex h-full w-8 items-center justify-center rounded-l-md border-r-0 bg-gray-50 text-gray-500 hover:bg-gray-100",
8000
- children: "-"
8001
- }),
8002
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
8003
- type: "number",
8004
- id,
8005
- name,
7256
+ type: "number",
7257
+ id,
7258
+ name,
8006
7259
  min,
8007
7260
  max,
8008
7261
  disabled: isDisabled,
@@ -8027,17 +7280,6 @@ const NumberField = ({ name, value = 0, max, min = 0, isDisabled, id, className
8027
7280
  });
8028
7281
  };
8029
7282
 
8030
- //#endregion
8031
- //#region src/components/passwordInput/index.tsx
8032
- const PasswordInput = react.default.forwardRef((props, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
8033
- password: true,
8034
- enablePasswordManagerAutofill: true,
8035
- type: "password",
8036
- ...props,
8037
- ref
8038
- }));
8039
- PasswordInput.displayName = "PasswordInput";
8040
-
8041
7283
  //#endregion
8042
7284
  //#region src/components/progressBar/index.tsx
8043
7285
  const ProgressBar = ({ value, maxValue = 100, className }) => {
@@ -8211,195 +7453,91 @@ const ScrollToTop = ({ scrollToTopTitle }) => {
8211
7453
  onClick: scrollToTop,
8212
7454
  "data-tooltip-id": scrollToTopTitle,
8213
7455
  "data-tooltip-content": scrollToTopTitle,
8214
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {})
7456
+ children: "scroll to top"
8215
7457
  }) });
8216
7458
  };
8217
7459
 
8218
7460
  //#endregion
8219
- //#region src/components/searchInput/index.tsx
8220
- const SearchInput = ({ placeholder, value, onChange, className, rightSection,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
8221
- placeholder,
8222
- className: className || "w-full lg:w-auto lg:min-w-[23.75rem]",
8223
- rightSection: rightSection || /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {}),
8224
- value,
8225
- onChange,
8226
- ...props
8227
- });
8228
-
8229
- //#endregion
8230
- //#region src/components/select/index.tsx
8231
- const LANGUAGE_FLAGS = [
8232
- {
8233
- value: "nl-NL",
8234
- altValue: "nl_NL",
8235
- label: "nl"
8236
- },
8237
- {
8238
- value: "nl-BE",
8239
- altValue: "nl_BE",
8240
- label: "be"
8241
- },
8242
- {
8243
- value: "en-GB",
8244
- altValue: "en_GB",
8245
- label: "gb"
8246
- },
8247
- {
8248
- value: "fr-FR",
8249
- altValue: "fr_FR",
8250
- label: "fr"
8251
- }
8252
- ];
8253
- const selectStyles = {
8254
- singleValue: (provided) => ({
8255
- ...provided,
8256
- fontSize: "14px"
8257
- }),
8258
- placeholder: (provided) => ({
8259
- ...provided,
8260
- color: "#838383",
8261
- fontSize: "14px",
8262
- textWrap: "nowrap"
8263
- }),
8264
- dropdownIndicator: (provided) => ({
8265
- ...provided,
8266
- color: "black"
8267
- }),
8268
- option: (base, { isFocused, isSelected }) => ({
8269
- ...base,
8270
- color: "black",
8271
- marginLeft: "4px",
8272
- marginRight: "4px",
8273
- backgroundColor: isSelected ? "#f8f8f8" : isFocused ? "#f8f8f8" : "transparent",
8274
- width: "calc(100% - 8px)",
8275
- cursor: "pointer"
8276
- }),
8277
- menuList: (provided) => ({
8278
- ...provided,
8279
- fontSize: "14px"
8280
- })
8281
- };
8282
- const selectTheme = (theme) => ({
8283
- ...theme,
8284
- borderRadius: 4,
8285
- colors: {
8286
- ...theme.colors,
8287
- primary25: "#f8f8f8",
8288
- primary: "#f8f8f8"
8289
- }
8290
- });
8291
- const Select = (0, react.forwardRef)(({ options, placeholder, defaultValue, label, id, icon, error, className, labelClassNames, showLangFlags = false, hideErrorText = false, isClearable = true, fullWidth = true, width, isDisabled,...props }, ref) => {
8292
- const DropdownIndicator = (props$1) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_select.components.DropdownIndicator, {
8293
- ...props$1,
8294
- children: props$1.hasValue && isClearable ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
8295
- "data-testid": "icon-x",
8296
- className: "cursor-pointer",
8297
- color: "black",
8298
- onClick: () => props$1.clearValue()
8299
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", { color: "black" })
8300
- });
8301
- const GroupHeading = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8302
- className: "flex items-stretch px-4 py-2 font-normal text-[#838383] capitalize",
8303
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8304
- className: "flex-nowrap whitespace-nowrap",
8305
- children
8306
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8307
- className: "ml-2 flex w-full flex-1 items-center justify-center",
8308
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-px w-full bg-[#838383]" })
8309
- })]
8310
- });
8311
- const LanguageControl = (props$1) => {
8312
- const getSelectedFlag = () => {
8313
- const selectValue = props$1.selectProps.value;
8314
- const findFlag = (value) => LANGUAGE_FLAGS.find((e) => e.value === value || e.altValue === value)?.label || "";
8315
- if (typeof selectValue === "string") return findFlag(selectValue);
8316
- if (typeof selectValue === "object" && selectValue !== null && "value" in selectValue) return findFlag(selectValue.value);
8317
- return null;
8318
- };
8319
- const selectedFlag = getSelectedFlag();
8320
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_select.components.Control, {
8321
- ...props$1,
8322
- children: [selectedFlag && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8323
- className: "flex h-[39px] items-center border-r border-gray-200 p-3",
8324
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
8325
- src: `/images/countries/${selectedFlag.toUpperCase()}_flag.svg`,
8326
- alt: "",
8327
- width: 24,
8328
- height: 24
8329
- })
8330
- }), props$1.children]
8331
- });
8332
- };
8333
- const NoOptionsMessage = (props$1) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_select.components.NoOptionsMessage, {
8334
- ...props$1,
8335
- children: "noOptionsMessage"
8336
- });
8337
- const SingleValue = (props$1) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_select.components.SingleValue, {
8338
- ...props$1,
8339
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
8340
- className: "flex items-center",
8341
- children: [icon && icon, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8342
- className: "mx-2",
8343
- children: props$1.children
8344
- })]
8345
- })
8346
- });
7461
+ //#region src/components/textInput/index.tsx
7462
+ const TextInput = react.default.forwardRef(({ rightSection, leftSection, className, error, autoFocus, label, maxLength, enablePasswordManagerAutofill = false, onBlur, disabled, loadingState, onKeyDown, min = "0", max, autoComplete, showRightSection = true, step, wrapperClassName, password = false,...props }, ref) => {
7463
+ const [showPassword, setShowPassword] = react.default.useState(false);
8347
7464
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8348
- "data-component": "Select",
8349
- "data-testid": "select-container",
8350
- ref,
8351
- className: (0, clsx.default)("m-0 grid gap-2 p-0", width ? width : fullWidth && "w-full", className),
7465
+ "data-component": "TextInput",
7466
+ "data-testid": "TextInput",
7467
+ className: (0, clsx.default)("relative", wrapperClassName),
8352
7468
  children: [
8353
- label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Label, {
8354
- className: cn("leading-4", labelClassNames),
7469
+ typeof label === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("label", {
7470
+ htmlFor: props["id"],
7471
+ className: "mb-2 flex items-center gap-1 text-xs font-medium text-black",
8355
7472
  children: label
8356
- }),
8357
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_select.default, {
8358
- "data-component": "select",
8359
- "data-testid": "select-input",
8360
- options,
8361
- menuPlacement: "auto",
8362
- isDisabled,
8363
- defaultValue,
8364
- placeholder,
8365
- isClearable: false,
8366
- menuPortalTarget: document?.body,
8367
- styles: {
8368
- ...selectStyles,
8369
- control: (base, state) => ({
8370
- ...base,
8371
- "&:hover": { borderColor: "#A8A8A8" },
8372
- height: "40px",
8373
- width: "100%",
8374
- backgroundColor: "#fbfbfb",
8375
- borderColor: error ? "red" : state.isFocused ? "#10d1bb" : "#cccccc",
8376
- cursor: "pointer"
7473
+ }) : label,
7474
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
7475
+ className: "relative",
7476
+ children: [
7477
+ leftSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7478
+ className: (0, clsx.default)("absolute top-0 left-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black"),
7479
+ children: leftSection
7480
+ }),
7481
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
7482
+ onBlur,
7483
+ onKeyDown,
7484
+ autoComplete,
7485
+ min,
7486
+ max,
7487
+ autoFocus,
7488
+ disabled,
7489
+ step,
7490
+ maxLength,
7491
+ className: (0, clsx.default)(`${loadingState ? "cursor-not-allowed" : ""}`, `${disabled ? "text-gray-500" : "text-gray-900"} selection:bg-turquoise-200 focus:border-turquoise-500 focus:ring-turquoise-500 active:border-turquoise-500 active:ring-turquoise-500 h-10 w-full rounded-[4px] border border-gray-200 bg-gray-50 px-3 text-sm font-normal outline-hidden ${rightSection && "pr-12"} ${leftSection && "pl-12"} ${error && "border-red-500 text-red-500 selection:bg-red-200 focus:border-red-500 focus:ring-red-500 focus:placeholder:text-red-500 active:border-red-500 active:ring-red-500"}`, className),
7492
+ "aria-busy": loadingState || undefined,
7493
+ "data-lpignore": enablePasswordManagerAutofill ? undefined : "true",
7494
+ "data-1p-ignore": enablePasswordManagerAutofill ? undefined : "true",
7495
+ ref,
7496
+ ...props,
7497
+ type: password ? showPassword ? "text" : "password" : "text"
7498
+ }),
7499
+ loadingState ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7500
+ className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black",
7501
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconAlert, {
7502
+ className: "h-4 w-4 animate-spin text-gray-500",
7503
+ "aria-label": "Loading"
7504
+ })
7505
+ }) : rightSection && showRightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7506
+ className: "absolute inset-y-0 right-0 flex h-10 w-12 content-center items-center justify-center align-middle text-sm font-medium text-black",
7507
+ children: rightSection
8377
7508
  }),
8378
- menuPortal: (base) => ({
8379
- ...base,
8380
- zIndex: 99999
7509
+ password && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7510
+ className: "absolute inset-y-0 right-4 flex content-center items-center justify-center align-middle text-sm font-medium text-black",
7511
+ children: showPassword ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7512
+ "data-testid": "password-visibility-toggle",
7513
+ className: "cursor-pointer text-gray-500",
7514
+ onClick: () => setShowPassword(false)
7515
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
7516
+ "data-testid": "password-visibility-toggle",
7517
+ className: "cursor-pointer text-gray-500",
7518
+ onClick: () => setShowPassword(true)
7519
+ })
8381
7520
  })
8382
- },
8383
- theme: selectTheme,
8384
- components: {
8385
- IndicatorSeparator: () => null,
8386
- DropdownIndicator,
8387
- GroupHeading,
8388
- Control: showLangFlags ? LanguageControl : react_select.components.Control,
8389
- SingleValue,
8390
- NoOptionsMessage
8391
- },
8392
- ...props
8393
- }, id),
8394
- !hideErrorText && error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
8395
- className: "text-xs font-normal text-red-500",
8396
- role: "alert",
7521
+ ]
7522
+ }),
7523
+ error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
7524
+ className: "mt-2 text-xs font-normal text-red-500",
8397
7525
  children: error
8398
7526
  })
8399
7527
  ]
8400
7528
  });
8401
7529
  });
8402
- Select.displayName = "Select";
7530
+
7531
+ //#endregion
7532
+ //#region src/components/searchInput/index.tsx
7533
+ const SearchInput = ({ placeholder, value, onChange, className, rightSection,...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TextInput, {
7534
+ placeholder,
7535
+ className: className || "w-full lg:w-auto lg:min-w-[23.75rem]",
7536
+ rightSection: rightSection || /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {}),
7537
+ value,
7538
+ onChange,
7539
+ ...props
7540
+ });
8403
7541
 
8404
7542
  //#endregion
8405
7543
  //#region src/components/skeleton/index.tsx
@@ -8409,21 +7547,6 @@ const Skeleton = ({ className, "data-testid": dataTestId }) => /* @__PURE__ */ (
8409
7547
  className: cn("inline-block rounded-md", "animate-pulse bg-gray-100/50", className)
8410
7548
  });
8411
7549
 
8412
- //#endregion
8413
- //#region src/components/skillPill/index.tsx
8414
- const SkillPill = ({ name, number }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8415
- "data-testid": "skill-pill-container",
8416
- className: "flex items-center rounded-full border border-gray-200 p-[3px]",
8417
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8418
- className: "pr-4 pl-3",
8419
- children: name
8420
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8421
- "data-testid": "skill-pill-number",
8422
- className: "bg-turquoise-200 grid h-[30px] min-w-[30px] place-content-center rounded-full px-2.5",
8423
- children: number
8424
- })]
8425
- });
8426
-
8427
7550
  //#endregion
8428
7551
  //#region src/components/stickyMobileButton/index.tsx
8429
7552
  const StickyMobileButtonWrapper = ({ children }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -8496,99 +7619,6 @@ function TableRow({ children, className, header,...props }) {
8496
7619
  });
8497
7620
  }
8498
7621
 
8499
- //#endregion
8500
- //#region src/components/tabs/Tab.tsx
8501
- const Tab = (0, react.forwardRef)(({ tabId, activeTab, tabContent, clickFnc, rightSection }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
8502
- ref,
8503
- "data-testid": `tab-${tabId}`,
8504
- className: `${activeTab && "text-light-blue bg-[#F0F0F6]"} bg-ultra-light-blue px-5 py-[10px] text-xs font-normal whitespace-nowrap text-black transition-colors duration-100 hover:border-black hover:bg-[#F0F0F6] data-active:border-black data-active:bg-[#F0F0F6] data-active:font-medium data-active:text-black`,
8505
- onClick: () => clickFnc(tabId),
8506
- children: [tabContent, rightSection && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8507
- className: "ml-2 inline-flex",
8508
- children: rightSection
8509
- })]
8510
- }));
8511
-
8512
- //#endregion
8513
- //#region src/components/tabs/TabsBadge.tsx
8514
- const TabsBadge = ({ children }) => {
8515
- const isCircular = typeof children === "number" && children <= 9 || typeof children === "string" && children.length === 1 || false;
8516
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8517
- "data-testid": "tabs-badge",
8518
- className: (0, clsx.default)("bg-pink h-5 rounded-full text-xs leading-5 font-medium text-white", {
8519
- "w-5 text-center": isCircular,
8520
- "px-2": !isCircular
8521
- }),
8522
- children
8523
- });
8524
- };
8525
- TabsBadge.displayName = "TabsBadge";
8526
-
8527
- //#endregion
8528
- //#region src/components/tabs/TabsWrapper.tsx
8529
- const TabsWrapper = ({ setActiveTab, activeTab, tabs }) => {
8530
- const tabRefs = (0, react.useMemo)(() => {
8531
- const refs = {};
8532
- tabs?.forEach((tab) => {
8533
- refs[tab.value] = (0, react.createRef)();
8534
- });
8535
- return refs;
8536
- }, [tabs]);
8537
- const [underlineStyle, setUnderlineStyle] = (0, react.useState)({
8538
- width: 0,
8539
- left: 0
8540
- });
8541
- (0, react.useEffect)(() => {
8542
- if (activeTab && tabRefs[activeTab]?.current) {
8543
- const activeTabElement = tabRefs[activeTab].current;
8544
- setUnderlineStyle({
8545
- width: activeTabElement?.offsetWidth || 0,
8546
- left: activeTabElement?.offsetLeft || 0
8547
- });
8548
- }
8549
- }, [activeTab, tabRefs]);
8550
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8551
- className: "w-full",
8552
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
8553
- className: "relative inline-block w-auto border-b-[3px] border-gray-200",
8554
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8555
- className: "flex",
8556
- children: tabs && tabs?.map((tab) => tab.requiredPermissions ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TabContent, {
8557
- tab,
8558
- ref: tabRefs[tab.value],
8559
- setActiveTab,
8560
- activeTab
8561
- }, tab.value) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TabContent, {
8562
- tab,
8563
- ref: tabRefs[tab.value],
8564
- setActiveTab,
8565
- activeTab
8566
- }, tab.value))
8567
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
8568
- className: "absolute h-[3px] bg-gray-900 transition-all duration-300",
8569
- style: {
8570
- width: underlineStyle.width,
8571
- left: underlineStyle.left,
8572
- bottom: "-3px"
8573
- }
8574
- })]
8575
- })
8576
- });
8577
- };
8578
- const TabContent = (0, react.forwardRef)(({ tab, setActiveTab, activeTab }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tab, {
8579
- ref,
8580
- tabId: tab.value,
8581
- setActiveTab,
8582
- activeTab: activeTab === tab.value,
8583
- tabContent: tab.name,
8584
- rightSection: tab?.rightSection || undefined,
8585
- clickFnc: () => {
8586
- tab.clickFnc(tab.value);
8587
- setActiveTab(tab.value);
8588
- }
8589
- }));
8590
- TabContent.displayName = "TabContent";
8591
-
8592
7622
  //#endregion
8593
7623
  //#region src/components/textArea/index.tsx
8594
7624
  const Textarea = (0, react.forwardRef)(({ className, label, error, rows = 8,...props }, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -8794,14 +7824,15 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
8794
7824
  ref: menuRef,
8795
7825
  "data-context-menu-id": metaTitle,
8796
7826
  "data-context-menu-content": metaTitle,
8797
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(UnstyledButton, {
7827
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Button, {
8798
7828
  ref: buttonRef,
8799
7829
  id: buttonId,
8800
7830
  "aria-label": "Toggle profile menu",
8801
7831
  "aria-expanded": isOpen,
8802
7832
  "aria-haspopup": "menu",
8803
7833
  "aria-controls": isOpen ? menuId : undefined,
8804
- className: cn(buttonVariants["secondary"], defaultStyling, classNames?.button),
7834
+ variant: "secondary",
7835
+ className: cn(defaultStyling, classNames?.button),
8805
7836
  disabled,
8806
7837
  onClick: handleToggle,
8807
7838
  children: [title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -8815,13 +7846,14 @@ const ProfileMenu = ({ title, metaTitle, icon, content, disabled = false, classN
8815
7846
  className: cn("absolute right-0 z-10 mt-2 w-auto min-w-[200px] rounded-md border-[0.0625rem] border-gray-200 bg-white p-1 shadow-md", classNames?.menu),
8816
7847
  children: content.map(
8817
7848
  /* istanbul ignore next - render callback not meaningful for unit coverage */
8818
- (c, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(UnstyledButton, {
7849
+ (c, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
8819
7850
  ref: (el) => {
8820
7851
  menuItemRefs.current[index] = el;
8821
7852
  },
8822
7853
  role: "menuitem",
8823
7854
  tabIndex: -1,
8824
7855
  onClick: () => handleItemClick(c.onClick),
7856
+ variant: "unstyled",
8825
7857
  className: cn("w-full rounded-md px-4 py-2 text-left text-sm font-normal whitespace-nowrap transition-colors", "focus:ring-primary hover:bg-gray-50 focus:bg-gray-50 focus:ring focus:outline-none focus:ring-inset", c.disabled && "cursor-not-allowed opacity-50", focusedIndex === index && "bg-gray-50"),
8826
7858
  "aria-label": c.title,
8827
7859
  disabled: c.disabled,
@@ -9902,7 +8934,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
9902
8934
  let cloud3Height = 45;
9903
8935
  let cloud3Position = "bottom-32";
9904
8936
  if (size === "small") {
9905
- dollarSize = "size-[30px]";
8937
+ dollarSize = "size-[30px] p-1";
9906
8938
  planeSize = "w-16 h-16";
9907
8939
  cloud1Width = 60;
9908
8940
  cloud1Height = 27;
@@ -9914,7 +8946,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
9914
8946
  cloud3Height = 16;
9915
8947
  cloud3Position = "bottom-4";
9916
8948
  } else if (size === "medium") {
9917
- dollarSize = "size-[45px]";
8949
+ dollarSize = "size-[45px] p-2";
9918
8950
  planeSize = "w-24 h-24";
9919
8951
  cloud1Width = 140;
9920
8952
  cloud1Height = 63;
@@ -9926,7 +8958,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
9926
8958
  cloud3Height = 32;
9927
8959
  cloud3Position = "bottom-10";
9928
8960
  } else if (size === "large") {
9929
- dollarSize = "size-[75px]";
8961
+ dollarSize = "size-[75px] p-2";
9930
8962
  }
9931
8963
  const brand = useBrand();
9932
8964
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -9957,7 +8989,7 @@ const Loading = ({ className, plane = true, size = "small",...props }) => {
9957
8989
  className: "relative overflow-hidden w-full h-full",
9958
8990
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
9959
8991
  className: `${brand === "prijsvrij" ? "bg-primary" : "bg-secondary"} rounded-full ${dollarSize} flex items-center justify-center`,
9960
- children: brand === "prijsvrij" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Dollar, { className: "animate-spin-slow w-full h-full p-2" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DReizenSign, { className: " w-full h-full p-2 animate-spin-slow" })
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" })
9961
8993
  })
9962
8994
  })
9963
8995
  });
@@ -10024,74 +9056,81 @@ const ReviewSmall = ({ className, rating, showArrow = true, "data-testid": dataT
10024
9056
 
10025
9057
  //#endregion
10026
9058
  //#region src/components/hero/index.tsx
10027
- const Hero = ({ className, sliderImages, topRightImage, bottomLeftImage, bottomRightImage, bottomRightOverlay, hotel, priceBoxPosition = "end",...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10028
- "data-component": "hero",
10029
- className: (0, clsx.default)(className, "bg-white p-1 rounded-lg hero-shadow"),
10030
- ...props,
10031
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10032
- className: "flex flex-col md:flex-row",
10033
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10034
- 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"),
10035
- children: [
10036
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10037
- className: "md:col-span-2 md:row-span-2 overflow-hidden rounded-l-lg relative",
10038
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ReviewSmall, {
10039
- className: "absolute right-4 top-4 z-50",
10040
- rating: 9.3
10041
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Slider, {
10042
- className: "h-full max-h-[340px] md:h-full rounded-l-lg",
10043
- slides: sliderImages.map((src, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
10044
- src,
10045
- alt: `Hero slide ${index + 1}`,
10046
- className: "h-full w-full object-cover rounded-l-lg"
10047
- }, index)),
10048
- showArrows: false,
10049
- dotsPlacement: "inside",
10050
- options: { loop: true },
10051
- lazyLoad: true
10052
- })]
10053
- }),
10054
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10055
- className: "hidden md:flex col-span-1 row-span-1 overflow-hidden",
10056
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
10057
- src: topRightImage,
10058
- alt: "Hero image 1",
10059
- className: "h-full w-full object-cover"
10060
- })
10061
- }),
10062
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10063
- className: "hidden md:grid col-span-1 row-span-1 grid-cols-2 gap-1",
10064
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10065
- 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",
10066
9092
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
10067
- src: bottomLeftImage,
10068
- alt: "Hero image 2",
10069
- 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"
10070
9096
  })
10071
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10072
- className: "relative overflow-hidden ",
10073
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("img", {
10074
- src: bottomRightImage,
10075
- alt: "Hero image 3",
10076
- className: "h-full w-full object-cover"
10077
- }), bottomRightOverlay && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10078
- className: "absolute inset-0",
10079
- children: bottomRightOverlay
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
+ })]
10080
9117
  })]
10081
- })]
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
10082
9129
  })
10083
- ]
10084
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
10085
- className: (0, clsx.default)(priceBoxPosition === "start" ? "order-1 md:order-1" : "order-2 md:order-2"),
10086
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PriceBox, {
10087
- noHover: true,
10088
- noBorder: true,
10089
- hotel,
10090
- brand: "prijsvrij"
10091
- })
10092
- })]
10093
- })
10094
- });
9130
+ })]
9131
+ })
9132
+ });
9133
+ };
10095
9134
 
10096
9135
  //#endregion
10097
9136
  //#region src/components/review/index.tsx
@@ -10513,10 +9552,10 @@ const GiftCard = ({ className, amount, amountTotal, cardNumber, validUntilDate,.
10513
9552
  children: [
10514
9553
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
10515
9554
  className: "font-bold gift-card-amount",
10516
- children: setCurrencyValue(amount || "0")
9555
+ children: setCurrencyValue(String(amount || "0"))
10517
9556
  }),
10518
9557
  " / ",
10519
- setCurrencyValue(amountTotal || "0", false)
9558
+ setCurrencyValue(String(amountTotal || "0"), false)
10520
9559
  ]
10521
9560
  }),
10522
9561
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
@@ -11562,17 +10601,9 @@ RangeSlider.displayName = "RangeSlider";
11562
10601
 
11563
10602
  //#endregion
11564
10603
  exports.Accordion = Accordion;
11565
- exports.ActionIcon = ActionIcon;
11566
- exports.Alert = Alert;
11567
- exports.AutoCompleteInput = AutoCompleteInput;
11568
- exports.Avatar = Avatar;
11569
- exports.AvatarIndicator = AvatarIndicator;
11570
- exports.Badge = Badge;
11571
- exports.BigBadge = BigBadge;
11572
10604
  exports.BlogWidget = BlogWidget;
11573
10605
  exports.BrandProvider = BrandProvider;
11574
10606
  exports.BrandTopMenu = BrandTopMenu;
11575
- exports.BreadCrumb = BreadCrumb;
11576
10607
  exports.Button = Button;
11577
10608
  exports.CSS_VARIABLE_KEYS = CSS_VARIABLE_KEYS;
11578
10609
  exports.Calendar = Calendar;
@@ -11582,10 +10613,8 @@ exports.Checkbox = Checkbox;
11582
10613
  exports.Collection = Collection;
11583
10614
  exports.CounterIcon = CounterIcon;
11584
10615
  exports.Coupon = Coupon;
11585
- exports.DatePickerInput = DatePickerInput;
11586
10616
  exports.Divider = Divider;
11587
10617
  exports.Dropdown = Dropdown;
11588
- exports.FavouriteButton = FavouriteButton;
11589
10618
  exports.FilterButton = FilterButton;
11590
10619
  exports.Filters = Filters;
11591
10620
  exports.FlightSwitch = FlightSwitch;
@@ -11630,6 +10659,7 @@ exports.IconHot = IconHot;
11630
10659
  exports.IconHotel = IconHotel;
11631
10660
  exports.IconHouse = IconHouse;
11632
10661
  exports.IconIce = IconIce;
10662
+ exports.IconImage = IconImage;
11633
10663
  exports.IconInfo = IconInfo;
11634
10664
  exports.IconInstagram = IconInstagram;
11635
10665
  exports.IconLuggage = IconLuggage;
@@ -11665,7 +10695,6 @@ exports.IconWatched = IconWatched;
11665
10695
  exports.IconWhatsapp = IconWhatsapp;
11666
10696
  exports.IconWinterSport = IconWinterSport;
11667
10697
  exports.IconWinterSun = IconWinterSun;
11668
- exports.Island = Island;
11669
10698
  exports.Label = Label;
11670
10699
  exports.LinkBox = LinkBox;
11671
10700
  exports.Loading = Loading;
@@ -11674,15 +10703,12 @@ exports.Map = Map;
11674
10703
  exports.MatrixTable = MatrixTable;
11675
10704
  exports.Menu = Menu;
11676
10705
  exports.MiddleNavigation = MiddleNavigation;
11677
- exports.Modal = Modal;
11678
10706
  exports.Nominations = Nominations;
11679
10707
  exports.NumberField = NumberField;
11680
10708
  exports.PageNavigation = PageNavigation;
11681
10709
  exports.PageRating = PageRating;
11682
- exports.PasswordInput = PasswordInput;
11683
10710
  exports.PhoneNumberInput = PhoneNumberInput;
11684
10711
  exports.PhotoCardsRotated = PhotoCardsRotated;
11685
- exports.Popover = Popover;
11686
10712
  exports.PriceBox = PriceBox;
11687
10713
  exports.PriceCheck = PriceCheck;
11688
10714
  exports.ProfileMenu = ProfileMenu;
@@ -11702,9 +10728,7 @@ exports.SearchBlock = SearchBlock;
11702
10728
  exports.SearchBox = SearchBox;
11703
10729
  exports.SearchBoxResults = SearchBoxResults;
11704
10730
  exports.SearchInput = SearchInput;
11705
- exports.Select = Select;
11706
10731
  exports.Skeleton = Skeleton;
11707
- exports.SkillPill = SkillPill;
11708
10732
  exports.Slider = Slider;
11709
10733
  exports.Spotlights = Spotlights;
11710
10734
  exports.Stepper = Stepper;
@@ -11716,8 +10740,6 @@ exports.TableHeader = TableHeader;
11716
10740
  exports.TableHeaderItem = TableHeaderItem;
11717
10741
  exports.TableHeaderRow = TableHeaderRow;
11718
10742
  exports.TableRow = TableRow;
11719
- exports.TabsBadge = TabsBadge;
11720
- exports.TabsWrapper = TabsWrapper;
11721
10743
  exports.TextInput = TextInput;
11722
10744
  exports.Textarea = Textarea;
11723
10745
  exports.TimeInput = TimeInput;
@@ -11728,7 +10750,6 @@ exports.TransportToggle = TransportToggle;
11728
10750
  exports.TruncatedText = TruncatedText;
11729
10751
  exports.UnorderedList = UnorderedList;
11730
10752
  exports.UnorderedListItem = UnorderedListItem;
11731
- exports.UnstyledButton = UnstyledButton;
11732
10753
  exports.Usp = Usp;
11733
10754
  exports.ViewedAccomodations = ViewedAccomodations;
11734
10755
  exports.WarningText = WarningText;