@bonlineza/luxity-lib 2.37.1 → 2.37.3

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.
@@ -310,7 +310,9 @@
310
310
  isSearchFocused = _ref.isSearchFocused,
311
311
  setIsSearchFocused = _ref.setIsSearchFocused,
312
312
  currency = _ref.currency,
313
- currencySymbol = _ref.currencySymbol;
313
+ currencySymbol = _ref.currencySymbol,
314
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
315
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick;
314
316
 
315
317
  var _useState = React.useState(false),
316
318
  _useState2 = _slicedToArray(_useState, 2),
@@ -358,7 +360,18 @@
358
360
  return /*#__PURE__*/React__default.createElement("a", {
359
361
  key: product.link,
360
362
  href: product.link,
361
- className: "product-card"
363
+ className: "product-card",
364
+ onClick: function onClick() {
365
+ if (typeof onProductSearchResultClick === 'function') {
366
+ onProductSearchResultClick({
367
+ product_name: product.name,
368
+ product_brand: product.brand,
369
+ product_link: product.link,
370
+ search_string: searchValue,
371
+ is_popular: shouldShowInitialData
372
+ });
373
+ }
374
+ }
362
375
  }, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
363
376
  className: "product-card__image-container"
364
377
  }, /*#__PURE__*/React__default.createElement("img", {
@@ -411,13 +424,33 @@
411
424
  return /*#__PURE__*/React__default.createElement("a", {
412
425
  key: brand.id,
413
426
  href: getBrandLink(brand),
414
- className: "search-results__item"
427
+ className: "search-results__item",
428
+ onClick: function onClick() {
429
+ if (typeof onBrandSearchResultClick === 'function') {
430
+ onBrandSearchResultClick({
431
+ brand_name: brand.name,
432
+ brand_link: getBrandLink(brand),
433
+ search_string: searchValue,
434
+ is_trending: true
435
+ });
436
+ }
437
+ }
415
438
  }, brand.name);
416
439
  }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
417
440
  return /*#__PURE__*/React__default.createElement("a", {
418
441
  key: brand.link,
419
442
  href: brand.link,
420
- className: "search-results__item"
443
+ className: "search-results__item",
444
+ onClick: function onClick() {
445
+ if (typeof onBrandSearchResultClick === 'function') {
446
+ onBrandSearchResultClick({
447
+ brand_name: brand.name,
448
+ brand_link: brand.link,
449
+ search_string: searchValue,
450
+ is_trending: false
451
+ });
452
+ }
453
+ }
421
454
  }, brand.name);
422
455
  }))), /*#__PURE__*/React__default.createElement("div", {
423
456
  className: "search-results__section"
@@ -665,7 +698,8 @@
665
698
  var useSearch = function useSearch(_ref) {
666
699
  var endpoint = _ref.endpoint,
667
700
  onProductIdsReceived = _ref.onProductIdsReceived,
668
- currency = _ref.currency;
701
+ currency = _ref.currency,
702
+ onSearchPreview = _ref.onSearchPreview;
669
703
  var currentSearchRequestToken = React.useRef(null);
670
704
  var debounce = React.useCallback(function (func, wait) {
671
705
  var timeout;
@@ -726,6 +760,16 @@
726
760
  onProductIdsReceived(searchResults.luxity_product_ids);
727
761
  }
728
762
 
763
+ if (typeof onSearchPreview === 'function') {
764
+ var _searchResults$brands, _searchResults$produc;
765
+
766
+ var hasResults = ((_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || ((_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
767
+ onSearchPreview({
768
+ search_string: searchQuery,
769
+ has_results: hasResults
770
+ });
771
+ }
772
+
729
773
  currentSearchRequestToken.current = null;
730
774
  }
731
775
  }).catch(function (error) {
@@ -738,7 +782,7 @@
738
782
  currentSearchRequestToken.current = null;
739
783
  }
740
784
  });
741
- }, [endpoint, currency, onProductIdsReceived]);
785
+ }, [endpoint, currency, onSearchPreview, onProductIdsReceived]);
742
786
  var debouncedSearch = React.useMemo(function () {
743
787
  return debounce(function (searchQuery, setSearchResults) {
744
788
  return performSearch(searchQuery, setSearchResults);
@@ -874,7 +918,10 @@
874
918
  endpoint = _ref.endpoint,
875
919
  initialSearchData = _ref.initialSearchData,
876
920
  onSearchSubmit = _ref.onSearchSubmit,
877
- onSearchClick = _ref.onSearchClick,
921
+ onSearchBarClick = _ref.onSearchBarClick,
922
+ onSearchPreview = _ref.onSearchPreview,
923
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
924
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
878
925
  onProductIdsReceived = _ref.onProductIdsReceived,
879
926
  currency = _ref.currency,
880
927
  currencySymbol = _ref.currencySymbol,
@@ -894,7 +941,8 @@
894
941
  var _useSearch = useSearch({
895
942
  endpoint: endpoint,
896
943
  onProductIdsReceived: onProductIdsReceived,
897
- currency: currency
944
+ currency: currency,
945
+ onSearchPreview: onSearchPreview
898
946
  }),
899
947
  fetchInitialSearchData = _useSearch.fetchInitialSearchData,
900
948
  createDebouncedSearch = _useSearch.createDebouncedSearch,
@@ -959,15 +1007,15 @@
959
1007
  useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
960
1008
 
961
1009
  var handleSearchClick = function handleSearchClick() {
962
- if (typeof onSearchClick === 'function') {
963
- onSearchClick();
1010
+ if (typeof onSearchBarClick === 'function') {
1011
+ onSearchBarClick();
964
1012
  return;
965
1013
  }
966
1014
 
967
1015
  handleSearchFocus();
968
1016
  };
969
1017
 
970
- var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, onSearchClick);
1018
+ var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults);
971
1019
  var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
972
1020
 
973
1021
  function addCategoryToElements(elements, categoryName) {
@@ -1090,7 +1138,9 @@
1090
1138
  isSearchFocused: isSearchFocused,
1091
1139
  setIsSearchFocused: setIsSearchFocused,
1092
1140
  currency: currency,
1093
- currencySymbol: currencySymbol
1141
+ currencySymbol: currencySymbol,
1142
+ onProductSearchResultClick: onProductSearchResultClick,
1143
+ onBrandSearchResultClick: onBrandSearchResultClick
1094
1144
  }), /*#__PURE__*/React__default.createElement("nav", {
1095
1145
  className: "navbar__nav-links navbar__nav-links--wrap"
1096
1146
  }, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
package/LuxityFooter.js CHANGED
@@ -2083,7 +2083,6 @@
2083
2083
  contactLinks = _ref$contactLinks === void 0 ? [] : _ref$contactLinks,
2084
2084
  visaImgSrc = _ref.visaImgSrc,
2085
2085
  masterCardSrc = _ref.masterCardSrc,
2086
- paypalImgSrc = _ref.paypalImgSrc,
2087
2086
  logoSrc = _ref.logoSrc,
2088
2087
  formIconSrc = _ref.formIconSrc,
2089
2088
  onSubmit = _ref.onSubmit,
@@ -2270,11 +2269,6 @@
2270
2269
  alt: "visa",
2271
2270
  width: 70,
2272
2271
  height: 70
2273
- }), /*#__PURE__*/React__default.createElement("img", {
2274
- src: paypalImgSrc,
2275
- alt: "paypal",
2276
- width: 100,
2277
- height: 100
2278
2272
  })), /*#__PURE__*/React__default.createElement("p", {
2279
2273
  className: "footer__copyright"
2280
2274
  }, "Copyright ", currentYear, " | Luxity (Pty) LTD | All Rights Reserved"))), /*#__PURE__*/React__default.createElement("div", {
@@ -930,7 +930,9 @@
930
930
  isSearchFocused = _ref.isSearchFocused,
931
931
  setIsSearchFocused = _ref.setIsSearchFocused,
932
932
  currency = _ref.currency,
933
- currencySymbol = _ref.currencySymbol;
933
+ currencySymbol = _ref.currencySymbol,
934
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
935
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick;
934
936
 
935
937
  var _useState = React.useState(false),
936
938
  _useState2 = _slicedToArray(_useState, 2),
@@ -978,7 +980,18 @@
978
980
  return /*#__PURE__*/React__default.createElement("a", {
979
981
  key: product.link,
980
982
  href: product.link,
981
- className: "product-card"
983
+ className: "product-card",
984
+ onClick: function onClick() {
985
+ if (typeof onProductSearchResultClick === 'function') {
986
+ onProductSearchResultClick({
987
+ product_name: product.name,
988
+ product_brand: product.brand,
989
+ product_link: product.link,
990
+ search_string: searchValue,
991
+ is_popular: shouldShowInitialData
992
+ });
993
+ }
994
+ }
982
995
  }, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
983
996
  className: "product-card__image-container"
984
997
  }, /*#__PURE__*/React__default.createElement("img", {
@@ -1031,13 +1044,33 @@
1031
1044
  return /*#__PURE__*/React__default.createElement("a", {
1032
1045
  key: brand.id,
1033
1046
  href: getBrandLink(brand),
1034
- className: "search-results__item"
1047
+ className: "search-results__item",
1048
+ onClick: function onClick() {
1049
+ if (typeof onBrandSearchResultClick === 'function') {
1050
+ onBrandSearchResultClick({
1051
+ brand_name: brand.name,
1052
+ brand_link: getBrandLink(brand),
1053
+ search_string: searchValue,
1054
+ is_trending: true
1055
+ });
1056
+ }
1057
+ }
1035
1058
  }, brand.name);
1036
1059
  }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
1037
1060
  return /*#__PURE__*/React__default.createElement("a", {
1038
1061
  key: brand.link,
1039
1062
  href: brand.link,
1040
- className: "search-results__item"
1063
+ className: "search-results__item",
1064
+ onClick: function onClick() {
1065
+ if (typeof onBrandSearchResultClick === 'function') {
1066
+ onBrandSearchResultClick({
1067
+ brand_name: brand.name,
1068
+ brand_link: brand.link,
1069
+ search_string: searchValue,
1070
+ is_trending: false
1071
+ });
1072
+ }
1073
+ }
1041
1074
  }, brand.name);
1042
1075
  }))), /*#__PURE__*/React__default.createElement("div", {
1043
1076
  className: "search-results__section"
@@ -1082,7 +1115,8 @@
1082
1115
  var useSearch = function useSearch(_ref) {
1083
1116
  var endpoint = _ref.endpoint,
1084
1117
  onProductIdsReceived = _ref.onProductIdsReceived,
1085
- currency = _ref.currency;
1118
+ currency = _ref.currency,
1119
+ onSearchPreview = _ref.onSearchPreview;
1086
1120
  var currentSearchRequestToken = React.useRef(null);
1087
1121
  var debounce = React.useCallback(function (func, wait) {
1088
1122
  var timeout;
@@ -1143,6 +1177,16 @@
1143
1177
  onProductIdsReceived(searchResults.luxity_product_ids);
1144
1178
  }
1145
1179
 
1180
+ if (typeof onSearchPreview === 'function') {
1181
+ var _searchResults$brands, _searchResults$produc;
1182
+
1183
+ var hasResults = ((_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || ((_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
1184
+ onSearchPreview({
1185
+ search_string: searchQuery,
1186
+ has_results: hasResults
1187
+ });
1188
+ }
1189
+
1146
1190
  currentSearchRequestToken.current = null;
1147
1191
  }
1148
1192
  }).catch(function (error) {
@@ -1155,7 +1199,7 @@
1155
1199
  currentSearchRequestToken.current = null;
1156
1200
  }
1157
1201
  });
1158
- }, [endpoint, currency, onProductIdsReceived]);
1202
+ }, [endpoint, currency, onSearchPreview, onProductIdsReceived]);
1159
1203
  var debouncedSearch = React.useMemo(function () {
1160
1204
  return debounce(function (searchQuery, setSearchResults) {
1161
1205
  return performSearch(searchQuery, setSearchResults);
@@ -1290,6 +1334,10 @@
1290
1334
  endpoint = _ref.endpoint,
1291
1335
  initialSearchData = _ref.initialSearchData,
1292
1336
  onSearchSubmit = _ref.onSearchSubmit,
1337
+ onSearchBarClick = _ref.onSearchBarClick,
1338
+ onSearchPreview = _ref.onSearchPreview,
1339
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
1340
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
1293
1341
  onProductIdsReceived = _ref.onProductIdsReceived,
1294
1342
  onLogoutClick = _ref.onLogoutClick,
1295
1343
  onInterestClick = _ref.onInterestClick,
@@ -1316,7 +1364,8 @@
1316
1364
  var _useSearch = useSearch({
1317
1365
  endpoint: endpoint,
1318
1366
  onProductIdsReceived: onProductIdsReceived,
1319
- currency: currency
1367
+ currency: currency,
1368
+ onSearchPreview: onSearchPreview
1320
1369
  }),
1321
1370
  fetchInitialSearchData = _useSearch.fetchInitialSearchData,
1322
1371
  createDebouncedSearch = _useSearch.createDebouncedSearch,
@@ -1391,6 +1440,10 @@
1391
1440
  }, [showSearchBar]);
1392
1441
 
1393
1442
  var onSearchClick = function onSearchClick() {
1443
+ if (!showSearchBar && typeof onSearchBarClick === 'function') {
1444
+ onSearchBarClick();
1445
+ }
1446
+
1394
1447
  setShowSearchbar(function (prev) {
1395
1448
  return !prev;
1396
1449
  });
@@ -1594,7 +1647,9 @@
1594
1647
  isSearchFocused: isSearchFocused,
1595
1648
  setIsSearchFocused: setIsSearchFocused,
1596
1649
  currency: currency,
1597
- currencySymbol: currencySymbol
1650
+ currencySymbol: currencySymbol,
1651
+ onProductSearchResultClick: onProductSearchResultClick,
1652
+ onBrandSearchResultClick: onBrandSearchResultClick
1598
1653
  }))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
1599
1654
  accordionIcon: accordionIcon,
1600
1655
  logoSrc: logoSrc,
package/build/bundle.css CHANGED
@@ -1 +1 @@
1
- .footer__newsletter-section{align-items:center;background-color:#000;color:#fff;display:flex;justify-content:space-between;padding:2.265rem 0}@media only screen and (max-width:879px){.footer__newsletter-section{flex-direction:column}}.footer__newsletter-wrapper{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__newsletter-wrapper{flex-direction:column}.footer__link-container{flex-basis:50%}}.footer__newsletter-icon{height:30px;position:absolute;right:0;top:0;width:32px}.footer__newsletter-form{flex-basis:50%;max-width:250px;position:relative}@media only screen and (max-width:879px){.footer__newsletter-form{display:block;margin-top:20px;max-width:100%;width:100%}}.footer__newsletter-title{font-family:Martel Sans,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;margin-bottom:1.125rem;text-transform:uppercase}.footer__newsletter-text{font-size:14px}.footer__form-input{background-color:#000;border:none;border-bottom:1px solid #fff;color:#fff;height:30px;outline:none;width:100%}.footer__form-input::-moz-placeholder{color:#fff;font-weight:400}.footer__form-input::placeholder{color:#fff;font-weight:400}.footer__form-errors{color:#fff;margin-top:5px}.footer__main-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:50px;margin-top:80px}.footer__link-title{font-family:El Messiri;font-size:16px;font-weight:700;margin-bottom:20px;text-transform:uppercase}@media only screen and (max-width:879px){.footer__link-title{margin-bottom:10px}}.footer__link-child{margin-top:25px}.footer__links{display:flex;flex-direction:column}.footer__link{color:#939393;cursor:pointer;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:7px;text-align:left;text-decoration:none}.footer__link:hover{color:#000;text-decoration:underline}@media only screen and (max-width:879px){.footer__link{margin-bottom:10px}}.footer__link-wrapper{align-items:center;display:flex;gap:5px}.footer__link-icon{height:30px;margin-bottom:18px}.footer__text{color:#939393;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:15px;text-align:left;text-decoration:none}.footer__store-hours{margin-top:35px}.footer__copyrights-section{border-top:1px solid;display:flex;justify-content:space-between;padding-bottom:20px;padding-top:20px}.footer__logo{height:30px;width:135px}.footer__payment-icons{align-items:center;display:flex;gap:8px}.footer__wrapper{margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__wrapper{padding:32px 0 0 24px}}.footer__wrapper--desktop{display:block}@media only screen and (max-width:879px){.footer__wrapper--desktop{display:none}}.footer__wrapper--mobile{display:none}@media only screen and (max-width:879px){.footer__wrapper--mobile{display:block;padding-top:30px}}.footer__copyright{font-size:10px;line-height:22px}.footer__copyright--mobile{display:none}@media only screen and (max-width:879px){.footer__copyright--mobile{display:block;padding:30px 10px 30px 0;text-align:center}}.footer__section-row{display:flex;gap:50%}@media only screen and (max-width:879px){.footer__section-row{gap:unset}}.navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}@media only screen and (max-width:879px){.navbar{padding-top:12px}}.navbar__link-item--desktop{align-items:center;display:flex;height:35px;margin:auto 0;padding-top:5px}.navbar__mobile-wrapper{align-items:center;display:flex;flex-direction:column;padding-left:16px;padding-right:16px}.navbar__container{display:flex;margin:0 auto;max-width:1280px;padding-left:12px;padding-right:12px;width:100%}.navbar__body{flex-basis:60%}.navbar__wrapper{align-items:center;display:flex;gap:10px;justify-content:flex-start;width:100%}@media only screen and (max-width:879px){.navbar__wrapper .navbar__menu-icon-wrapper{margin-right:10px}.navbar__wrapper .navbar__logo{margin-left:0;margin-right:auto}.navbar__wrapper .navbar__icons-wrapper{align-items:center;display:flex;gap:20px;margin-left:auto}.navbar__wrapper .navbar__icons{align-items:center;display:flex;gap:20px;margin:0}.navbar__wrapper .navbar__icon{margin:0}}.navbar__product-search-wrapper{align-items:center;display:flex;justify-content:center;padding:0 20%;width:100%}@media only screen and (max-width:879px){.navbar__product-search-wrapper{padding:0}}.navbar__search-container{width:100%}.navbar__input-close-icon{height:auto;margin-bottom:10px;margin-left:10px;width:20px}@media only screen and (max-width:879px){.navbar__input-close-icon{margin-bottom:0;margin-left:0;width:15px}}.navbar__menu-icon{width:20px}.navbar__product-search{align-items:center;display:flex;max-width:545px;width:100%}.navbar__logo-wrapper{margin-right:18px;width:200px}.navbar__logo{width:200px}@media only screen and (max-width:879px){.navbar__logo{margin-left:10px;margin-top:5px;width:150px}}.navbar__form-input{align-items:center;background:transparent;border:none;display:flex;font-size:13px;outline:none;padding:8px;width:100%}.navbar__product-search{border:1px solid #dfdede;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__product-search{border:none;border-bottom:1px solid #dfdede;margin-bottom:0;margin-right:10px;margin-top:10px}}.navbar__section{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between;width:100%}.navbar__link{display:inline-block;font-family:Martel Sans;font-size:14px;font-weight:700;margin-right:10px;overflow:hidden;text-transform:uppercase;transition:.3s ease-in-out}.navbar__link:after{background-color:#000;content:"";display:block;height:2px;transition:width .25s ease-out;width:0}.navbar__link:hover:after{width:100%}.navbar__link:hover .navbar__dropdown{animation:fadeInDropdown .3s ease-in-out;display:block}.navbar__dropdown{background-color:#fff;box-shadow:5px 5px 5px #dfdede;display:none;left:0;position:absolute;width:100%;z-index:999}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar__company-link{font-size:13px;font-weight:400;list-style:none;margin-left:18px;text-decoration:none}.navbar__company-block{align-items:center;background-color:#000;color:#fff;display:flex;font-weight:700;height:33px;justify-content:center;margin-right:0;padding:0 18px;text-transform:uppercase}.navbar__input-search-icon{height:auto;margin-left:1.125rem;margin-right:.375rem;width:15px}.navbar__nav-links{align-items:center;display:flex}.navbar__nav-links--wrap{flex-wrap:wrap}.navbar__icons{align-items:center;display:flex;height:40px;justify-content:flex-end;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__icons{display:block;height:20px;margin-bottom:0}}.navbar__icon{cursor:pointer;height:auto;margin-right:18px;width:20px}.navbar__icon.navbar__cart-icon{margin-right:0}.navbar__icon--app{cursor:pointer;height:auto;margin-left:12px;width:20px}@media only screen and (max-width:879px){.navbar__icon--app{margin-right:0}}.navbar__loyalty-icon{height:18px;position:absolute;right:-14px;top:-6px;width:18px}.navbar__cart-icon{position:relative}.navbar__cart-count{bottom:50%;font-size:13px;height:20px;left:60%;position:absolute;width:20px}.navbar__account-initials,.navbar__cart-count{align-items:center;background-color:#f2eeeb;border-radius:50%;color:#000;display:flex;justify-content:center}.navbar__account-initials{font-size:11px;font-weight:500;height:24px;text-transform:uppercase;width:24px}.interests__add-button{display:flex;flex-direction:row;gap:10px;width:100%}@media only screen and (max-width:879px){.interests__add-button{flex-direction:column}}.interests__section-wrapper{display:flex;flex-direction:column;width:100%}.interests__select-option{display:flex;flex-direction:column;margin-bottom:15px}.interests__title{font-family:El Messiri;font-size:16px;margin-bottom:10px}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;justify-content:space-between;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{font-size:14px;font-weight:700;line-height:20px;text-transform:uppercase}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:center;line-height:20px;text-transform:uppercase}.side-nav__menu-icon{display:flex;height:25px;margin-right:10px;width:25px}.side-nav__menu-divider{margin-bottom:40px}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}@charset "UTF-8";.currency-select-container{align-items:center;display:flex;margin-right:18px;position:relative}.currency-select-container .currency-flag{margin-right:5px}.currency-select-container .currency-flag img{height:15px;-o-object-fit:cover;object-fit:cover;width:20px}.currency-select-container .currency-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:none;color:#000;cursor:pointer;font-family:inherit;font-size:14px;margin:0;outline:none;padding:5px 15px 5px 5px}.currency-select-container .currency-select::-ms-expand{display:none}.currency-select-container .currency-select:focus{box-shadow:none;outline:none}.currency-select-container .currency-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.currency-select-container:after{color:#000;content:"▼";font-size:10px;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media only screen and (max-width:879px){.currency-select-container .currency-select{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;padding-right:0}.currency-select-container:after{display:none}}.currency-select-container.disabled{cursor:not-allowed;opacity:.7}.currency-select-container.disabled .currency-select{pointer-events:none}.stores-dropdown{align-items:flex-start;display:flex;font-family:Martel Sans;gap:20px;margin-left:auto;margin-right:auto;max-width:1280px;overflow-x:auto;padding:20px 15px}.stores-dropdown__image{height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.stores-dropdown__store-details{flex-basis:20%}.stores-dropdown__title{font-family:El Messiri}.stores-dropdown__main-title,.stores-dropdown__title{font-size:16px;font-weight:400;letter-spacing:3px;margin-top:20px}.stores-dropdown__main-title{font-weight:700;margin-bottom:10px}.stores-dropdown__open-days{font-size:12px;font-weight:700;line-height:20px}.stores-dropdown__open-hours{font-size:12px;font-weight:400;line-height:20px}.stores-dropdown__queries-title{font-family:El Messiri;font-size:16px;font-weight:400;letter-spacing:3px}.stores-dropdown__contact-details{font-size:16px;font-weight:700}.stores-dropdown__view-more{cursor:pointer;font-size:14px;font-weight:400;margin-top:10px;text-transform:capitalize}.search-results{background:#fff;border:1px solid #dfdede;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;position:absolute;width:770px;z-index:50}@media only screen and (max-width:1052px){.search-results{border:none;box-shadow:none;flex-direction:column;left:0;right:0;top:100%;width:100%}}.search-results__section:first-child{border-right:1px solid #dfdede;flex:1;min-width:240px}.search-results__section:last-child{display:flex;flex:2;flex-direction:column}.search-results__section-header{align-items:center;display:flex;justify-content:space-between}.search-results__header{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;margin-bottom:0;padding:16px 20px;text-transform:uppercase}.search-results__view-all-link{display:none}@media only screen and (max-width:879px){.search-results__view-all-link{color:#000;display:block;font-family:Martel Sans;font-size:14px;margin-right:20px}}.search-results__list{display:flex;flex-direction:column}.search-results__item{color:grey;font-family:Martel Sans;font-size:14px;padding:8px 20px;text-decoration:none}.search-results__product-list{display:flex;flex-direction:column;overflow-y:auto}.product-card{color:inherit;display:flex;padding:12px 20px;text-decoration:none;transition:background-color .15s ease}.product-card:hover{background-color:#f4f4f4}.product-card__image-container{border-radius:2px;flex-shrink:0;height:90px;margin-right:16px;overflow:hidden;width:90px}.product-card__image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.product-card__details{display:flex;flex:1;flex-direction:column}.product-card__name{color:#000;font-family:Martel Sans;font-size:14px;line-height:1.4;margin-bottom:24px}.product-card__brand-name{font-weight:600}.product-card__info-row{align-items:flex-end;display:flex;justify-content:space-between}@media only screen and (max-width:879px){.product-card__info-row{align-items:flex-start;flex-direction:column}}.product-card__price-group{display:flex;flex-direction:column;gap:4px}.product-card__price{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;line-height:1}.product-card__retail-price{color:#939393;font-family:Martel Sans;font-size:14px;text-decoration:line-through}.product-card__condition{color:#000;font-family:Martel Sans;font-size:13px;margin-right:20px;text-align:right}.product-card__condition-label{color:#939393;margin-right:4px}.search-results__view-all-button{background-color:#f5f0ea!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center}@media only screen and (max-width:879px){.search-results__view-all-button{display:none}}.dropdown{display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:1280px;min-height:500px;overflow-x:auto;padding:20px 0}.dropdown__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center;min-height:300px}.dropdown__column{flex:1;padding-left:12px}.dropdown__column:nth-child(2){flex:2}.dropdown__title{font-family:El Messiri;font-size:16px;font-weight:700;letter-spacing:3px;line-height:1;margin-bottom:20px;text-transform:uppercase}.dropdown__elements{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:800px;overflow-y:auto}.dropdown__brand-elements{-moz-column-count:3;column-count:3;max-height:800px}.dropdown__brand-element{cursor:pointer;margin-bottom:10px}.dropdown__element{flex-basis:33.33%;font-family:Martel Sans;font-size:14px;font-weight:400;margin-bottom:10px;text-transform:capitalize}.cover-spinner{align-items:center;background-color:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;min-height:400px;position:relative;top:50%;width:100%;z-index:9999}.cover-spinner:after{animation:spin 1.5s linear infinite;border:4px dotted #000;border-radius:50%;border-top-color:transparent;content:"";display:block;height:40px;position:absolute;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
1
+ .navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}@media only screen and (max-width:879px){.navbar{padding-top:12px}}.navbar__link-item--desktop{align-items:center;display:flex;height:35px;margin:auto 0;padding-top:5px}.navbar__mobile-wrapper{align-items:center;display:flex;flex-direction:column;padding-left:16px;padding-right:16px}.navbar__container{display:flex;margin:0 auto;max-width:1280px;padding-left:12px;padding-right:12px;width:100%}.navbar__body{flex-basis:60%}.navbar__wrapper{align-items:center;display:flex;gap:10px;justify-content:flex-start;width:100%}@media only screen and (max-width:879px){.navbar__wrapper .navbar__menu-icon-wrapper{margin-right:10px}.navbar__wrapper .navbar__logo{margin-left:0;margin-right:auto}.navbar__wrapper .navbar__icons-wrapper{align-items:center;display:flex;gap:20px;margin-left:auto}.navbar__wrapper .navbar__icons{align-items:center;display:flex;gap:20px;margin:0}.navbar__wrapper .navbar__icon{margin:0}}.navbar__product-search-wrapper{align-items:center;display:flex;justify-content:center;padding:0 20%;width:100%}@media only screen and (max-width:879px){.navbar__product-search-wrapper{padding:0}}.navbar__search-container{width:100%}.navbar__input-close-icon{height:auto;margin-bottom:10px;margin-left:10px;width:20px}@media only screen and (max-width:879px){.navbar__input-close-icon{margin-bottom:0;margin-left:0;width:15px}}.navbar__menu-icon{width:20px}.navbar__product-search{align-items:center;display:flex;max-width:545px;width:100%}.navbar__logo-wrapper{margin-right:18px;width:200px}.navbar__logo{width:200px}@media only screen and (max-width:879px){.navbar__logo{margin-left:10px;margin-top:5px;width:150px}}.navbar__form-input{align-items:center;background:transparent;border:none;display:flex;font-size:13px;outline:none;padding:8px;width:100%}.navbar__product-search{border:1px solid #dfdede;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__product-search{border:none;border-bottom:1px solid #dfdede;margin-bottom:0;margin-right:10px;margin-top:10px}}.navbar__section{align-items:flex-start;display:flex;flex-direction:row;justify-content:space-between;width:100%}.navbar__link{display:inline-block;font-family:Martel Sans;font-size:14px;font-weight:700;margin-right:10px;overflow:hidden;text-transform:uppercase;transition:.3s ease-in-out}.navbar__link:after{background-color:#000;content:"";display:block;height:2px;transition:width .25s ease-out;width:0}.navbar__link:hover:after{width:100%}.navbar__link:hover .navbar__dropdown{animation:fadeInDropdown .3s ease-in-out;display:block}.navbar__dropdown{background-color:#fff;box-shadow:5px 5px 5px #dfdede;display:none;left:0;position:absolute;width:100%;z-index:999}@keyframes fadeInDropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar__company-link{font-size:13px;font-weight:400;list-style:none;margin-left:18px;text-decoration:none}.navbar__company-block{align-items:center;background-color:#000;color:#fff;display:flex;font-weight:700;height:33px;justify-content:center;margin-right:0;padding:0 18px;text-transform:uppercase}.navbar__input-search-icon{height:auto;margin-left:1.125rem;margin-right:.375rem;width:15px}.navbar__nav-links{align-items:center;display:flex}.navbar__nav-links--wrap{flex-wrap:wrap}.navbar__icons{align-items:center;display:flex;height:40px;justify-content:flex-end;margin-bottom:10px}@media only screen and (max-width:879px){.navbar__icons{display:block;height:20px;margin-bottom:0}}.navbar__icon{cursor:pointer;height:auto;margin-right:18px;width:20px}.navbar__icon.navbar__cart-icon{margin-right:0}.navbar__icon--app{cursor:pointer;height:auto;margin-left:12px;width:20px}@media only screen and (max-width:879px){.navbar__icon--app{margin-right:0}}.navbar__loyalty-icon{height:18px;position:absolute;right:-14px;top:-6px;width:18px}.navbar__cart-icon{position:relative}.navbar__cart-count{bottom:50%;font-size:13px;height:20px;left:60%;position:absolute;width:20px}.navbar__account-initials,.navbar__cart-count{align-items:center;background-color:#f2eeeb;border-radius:50%;color:#000;display:flex;justify-content:center}.navbar__account-initials{font-size:11px;font-weight:500;height:24px;text-transform:uppercase;width:24px}.footer__newsletter-section{align-items:center;background-color:#000;color:#fff;display:flex;justify-content:space-between;padding:2.265rem 0}@media only screen and (max-width:879px){.footer__newsletter-section{flex-direction:column}}.footer__newsletter-wrapper{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__newsletter-wrapper{flex-direction:column}.footer__link-container{flex-basis:50%}}.footer__newsletter-icon{height:30px;position:absolute;right:0;top:0;width:32px}.footer__newsletter-form{flex-basis:50%;max-width:250px;position:relative}@media only screen and (max-width:879px){.footer__newsletter-form{display:block;margin-top:20px;max-width:100%;width:100%}}.footer__newsletter-title{font-family:Martel Sans,sans-serif;font-size:14px;font-weight:700;letter-spacing:3px;margin-bottom:1.125rem;text-transform:uppercase}.footer__newsletter-text{font-size:14px}.footer__form-input{background-color:#000;border:none;border-bottom:1px solid #fff;color:#fff;height:30px;outline:none;width:100%}.footer__form-input::-moz-placeholder{color:#fff;font-weight:400}.footer__form-input::placeholder{color:#fff;font-weight:400}.footer__form-errors{color:#fff;margin-top:5px}.footer__main-section{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:50px;margin-top:80px}.footer__link-title{font-family:El Messiri;font-size:16px;font-weight:700;margin-bottom:20px;text-transform:uppercase}@media only screen and (max-width:879px){.footer__link-title{margin-bottom:10px}}.footer__link-child{margin-top:25px}.footer__links{display:flex;flex-direction:column}.footer__link{color:#939393;cursor:pointer;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:7px;text-align:left;text-decoration:none}.footer__link:hover{color:#000;text-decoration:underline}@media only screen and (max-width:879px){.footer__link{margin-bottom:10px}}.footer__link-wrapper{align-items:center;display:flex;gap:5px}.footer__link-icon{height:30px;margin-bottom:18px}.footer__text{color:#939393;font-family:Martel Sans;font-size:14px;line-height:20px;margin-bottom:15px;text-align:left;text-decoration:none}.footer__store-hours{margin-top:35px}.footer__copyrights-section{border-top:1px solid;display:flex;justify-content:space-between;padding-bottom:20px;padding-top:20px}.footer__logo{height:30px;width:135px}.footer__payment-icons{align-items:center;display:flex;gap:8px}.footer__wrapper{margin:0 auto;max-width:1280px;padding-left:32px;padding-right:32px;width:100%}@media only screen and (max-width:879px){.footer__wrapper{padding:32px 0 0 24px}}.footer__wrapper--desktop{display:block}@media only screen and (max-width:879px){.footer__wrapper--desktop{display:none}}.footer__wrapper--mobile{display:none}@media only screen and (max-width:879px){.footer__wrapper--mobile{display:block;padding-top:30px}}.footer__copyright{font-size:10px;line-height:22px}.footer__copyright--mobile{display:none}@media only screen and (max-width:879px){.footer__copyright--mobile{display:block;padding:30px 10px 30px 0;text-align:center}}.footer__section-row{display:flex;gap:50%}@media only screen and (max-width:879px){.footer__section-row{gap:unset}}@charset "UTF-8";.currency-select-container{align-items:center;display:flex;margin-right:18px;position:relative}.currency-select-container .currency-flag{margin-right:5px}.currency-select-container .currency-flag img{height:15px;-o-object-fit:cover;object-fit:cover;width:20px}.currency-select-container .currency-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:transparent;border:none;color:#000;cursor:pointer;font-family:inherit;font-size:14px;margin:0;outline:none;padding:5px 15px 5px 5px}.currency-select-container .currency-select::-ms-expand{display:none}.currency-select-container .currency-select:focus{box-shadow:none;outline:none}.currency-select-container .currency-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.currency-select-container:after{color:#000;content:"▼";font-size:10px;pointer-events:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media only screen and (max-width:879px){.currency-select-container .currency-select{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;padding-right:0}.currency-select-container:after{display:none}}.currency-select-container.disabled{cursor:not-allowed;opacity:.7}.currency-select-container.disabled .currency-select{pointer-events:none}.interests__add-button{display:flex;flex-direction:row;gap:10px;width:100%}@media only screen and (max-width:879px){.interests__add-button{flex-direction:column}}.interests__section-wrapper{display:flex;flex-direction:column;width:100%}.interests__select-option{display:flex;flex-direction:column;margin-bottom:15px}.interests__title{font-family:El Messiri;font-size:16px;margin-bottom:10px}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;justify-content:space-between;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{font-size:14px;font-weight:700;line-height:20px;text-transform:uppercase}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.side-nav{font-family:Martel Sans}.side-nav__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center}.side-nav__overlay{background-color:rgba(78,73,73,.51);height:100%;opacity:0;position:fixed;top:0;transition:opacity .5s ease-out 0s,visibility .5s ease-out 0s;width:100%;z-index:99999}.side-nav__overlay--visible{opacity:1;visibility:visible}.side-nav__overlay--hidden{opacity:1;visibility:hidden}.side-nav__content{background-color:#fff;bottom:0;overflow-y:scroll;padding:1.5rem;position:fixed;top:0;transition:left .5s ease-in-out;width:80%;z-index:99999}.side-nav__content--hidden{display:none}.side-nav__content--open{left:0}.side-nav__content--closed{left:-100%}.side-nav__menu-title-wrapper{align-items:center;background-color:transparent;border:none;display:flex;outline:none;width:100%}.side-nav__icon-container{float:right;margin-bottom:10px}.side-nav__menu-title{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:center;line-height:20px;text-transform:uppercase}.side-nav__menu-icon{display:flex;height:25px;margin-right:10px;width:25px}.side-nav__menu-divider{margin-bottom:40px}.side-nav__accordion-icon{height:auto;width:15px}.side-nav__menu-item{margin-bottom:25px}.side-nav__close-icon{height:20px;margin-left:auto;width:20px}.side-nav__back-button-wrapper{align-items:center;display:flex;margin-bottom:25px}.side-nav__back-icon{height:20px;width:20px}.side-nav__back-button,.side-nav__sub-menu-title{font-weight:700;text-transform:uppercase}.side-nav__sub-menu-title{font-size:14px;margin-bottom:10px}.side-nav__elements{display:flex;flex-direction:column}.side-nav__element{color:#555;cursor:pointer;line-height:20px;margin-bottom:10px}.side-nav__element,.side-nav__sub-link{font-size:14px;font-weight:400;text-transform:capitalize}.side-nav__block-button{background-color:#000;color:#fff;font-weight:700;padding:10px 0;width:100%}.search-results{background:#fff;border:1px solid #dfdede;border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;position:absolute;width:770px;z-index:50}@media only screen and (max-width:1052px){.search-results{border:none;box-shadow:none;flex-direction:column;left:0;right:0;top:100%;width:100%}}.search-results__section:first-child{border-right:1px solid #dfdede;flex:1;min-width:240px}.search-results__section:last-child{display:flex;flex:2;flex-direction:column}.search-results__section-header{align-items:center;display:flex;justify-content:space-between}.search-results__header{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;margin-bottom:0;padding:16px 20px;text-transform:uppercase}.search-results__view-all-link{display:none}@media only screen and (max-width:879px){.search-results__view-all-link{color:#000;display:block;font-family:Martel Sans;font-size:14px;margin-right:20px}}.search-results__list{display:flex;flex-direction:column}.search-results__item{color:grey;font-family:Martel Sans;font-size:14px;padding:8px 20px;text-decoration:none}.search-results__product-list{display:flex;flex-direction:column;overflow-y:auto}.product-card{color:inherit;display:flex;padding:12px 20px;text-decoration:none;transition:background-color .15s ease}.product-card:hover{background-color:#f4f4f4}.product-card__image-container{border-radius:2px;flex-shrink:0;height:90px;margin-right:16px;overflow:hidden;width:90px}.product-card__image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.product-card__details{display:flex;flex:1;flex-direction:column}.product-card__name{color:#000;font-family:Martel Sans;font-size:14px;line-height:1.4;margin-bottom:24px}.product-card__brand-name{font-weight:600}.product-card__info-row{align-items:flex-end;display:flex;justify-content:space-between}@media only screen and (max-width:879px){.product-card__info-row{align-items:flex-start;flex-direction:column}}.product-card__price-group{display:flex;flex-direction:column;gap:4px}.product-card__price{color:#000;font-family:Martel Sans;font-size:14px;font-weight:600;line-height:1}.product-card__retail-price{color:#939393;font-family:Martel Sans;font-size:14px;text-decoration:line-through}.product-card__condition{color:#000;font-family:Martel Sans;font-size:13px;margin-right:20px;text-align:right}.product-card__condition-label{color:#939393;margin-right:4px}.search-results__view-all-button{background-color:#f5f0ea!important;border:none;color:#000;cursor:pointer;font-family:Martel Sans;font-size:13px;font-weight:400;padding:16px;text-align:center}@media only screen and (max-width:879px){.search-results__view-all-button{display:none}}.stores-dropdown{align-items:flex-start;display:flex;font-family:Martel Sans;gap:20px;margin-left:auto;margin-right:auto;max-width:1280px;overflow-x:auto;padding:20px 15px}.stores-dropdown__image{height:200px;-o-object-fit:cover;object-fit:cover;width:100%}.stores-dropdown__store-details{flex-basis:20%}.stores-dropdown__title{font-family:El Messiri}.stores-dropdown__main-title,.stores-dropdown__title{font-size:16px;font-weight:400;letter-spacing:3px;margin-top:20px}.stores-dropdown__main-title{font-weight:700;margin-bottom:10px}.stores-dropdown__open-days{font-size:12px;font-weight:700;line-height:20px}.stores-dropdown__open-hours{font-size:12px;font-weight:400;line-height:20px}.stores-dropdown__queries-title{font-family:El Messiri;font-size:16px;font-weight:400;letter-spacing:3px}.stores-dropdown__contact-details{font-size:16px;font-weight:700}.stores-dropdown__view-more{cursor:pointer;font-size:14px;font-weight:400;margin-top:10px;text-transform:capitalize}.dropdown{display:flex;justify-content:space-between;margin-left:auto;margin-right:auto;max-width:1280px;min-height:500px;overflow-x:auto;padding:20px 0}.dropdown__errors{align-items:center;color:red;display:flex;font-size:16px;justify-content:center;min-height:300px}.dropdown__column{flex:1;padding-left:12px}.dropdown__column:nth-child(2){flex:2}.dropdown__title{font-family:El Messiri;font-size:16px;font-weight:700;letter-spacing:3px;line-height:1;margin-bottom:20px;text-transform:uppercase}.dropdown__elements{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:800px;overflow-y:auto}.dropdown__brand-elements{-moz-column-count:3;column-count:3;max-height:800px}.dropdown__brand-element{cursor:pointer;margin-bottom:10px}.dropdown__element{flex-basis:33.33%;font-family:Martel Sans;font-size:14px;font-weight:400;margin-bottom:10px;text-transform:capitalize}.cover-spinner{align-items:center;background-color:hsla(0,0%,100%,.7);display:flex;height:100%;justify-content:center;min-height:400px;position:relative;top:50%;width:100%;z-index:9999}.cover-spinner:after{animation:spin 1.5s linear infinite;border:4px dotted #000;border-radius:50%;border-top-color:transparent;content:"";display:block;height:40px;position:absolute;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
package/build/bundle.js CHANGED
@@ -15422,7 +15422,6 @@
15422
15422
  contactLinks = _ref$contactLinks === void 0 ? [] : _ref$contactLinks,
15423
15423
  visaImgSrc = _ref.visaImgSrc,
15424
15424
  masterCardSrc = _ref.masterCardSrc,
15425
- paypalImgSrc = _ref.paypalImgSrc,
15426
15425
  logoSrc = _ref.logoSrc,
15427
15426
  formIconSrc = _ref.formIconSrc,
15428
15427
  onSubmit = _ref.onSubmit,
@@ -15609,11 +15608,6 @@
15609
15608
  alt: "visa",
15610
15609
  width: 70,
15611
15610
  height: 70
15612
- }), /*#__PURE__*/React__default.createElement("img", {
15613
- src: paypalImgSrc,
15614
- alt: "paypal",
15615
- width: 100,
15616
- height: 100
15617
15611
  })), /*#__PURE__*/React__default.createElement("p", {
15618
15612
  className: "footer__copyright"
15619
15613
  }, "Copyright ", currentYear, " | Luxity (Pty) LTD | All Rights Reserved"))), /*#__PURE__*/React__default.createElement("div", {
@@ -15821,7 +15815,9 @@
15821
15815
  isSearchFocused = _ref.isSearchFocused,
15822
15816
  setIsSearchFocused = _ref.setIsSearchFocused,
15823
15817
  currency = _ref.currency,
15824
- currencySymbol = _ref.currencySymbol;
15818
+ currencySymbol = _ref.currencySymbol,
15819
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
15820
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick;
15825
15821
 
15826
15822
  var _useState = React.useState(false),
15827
15823
  _useState2 = _slicedToArray(_useState, 2),
@@ -15869,7 +15865,18 @@
15869
15865
  return /*#__PURE__*/React__default.createElement("a", {
15870
15866
  key: product.link,
15871
15867
  href: product.link,
15872
- className: "product-card"
15868
+ className: "product-card",
15869
+ onClick: function onClick() {
15870
+ if (typeof onProductSearchResultClick === 'function') {
15871
+ onProductSearchResultClick({
15872
+ product_name: product.name,
15873
+ product_brand: product.brand,
15874
+ product_link: product.link,
15875
+ search_string: searchValue,
15876
+ is_popular: shouldShowInitialData
15877
+ });
15878
+ }
15879
+ }
15873
15880
  }, product.featured_image && /*#__PURE__*/React__default.createElement("div", {
15874
15881
  className: "product-card__image-container"
15875
15882
  }, /*#__PURE__*/React__default.createElement("img", {
@@ -15922,13 +15929,33 @@
15922
15929
  return /*#__PURE__*/React__default.createElement("a", {
15923
15930
  key: brand.id,
15924
15931
  href: getBrandLink(brand),
15925
- className: "search-results__item"
15932
+ className: "search-results__item",
15933
+ onClick: function onClick() {
15934
+ if (typeof onBrandSearchResultClick === 'function') {
15935
+ onBrandSearchResultClick({
15936
+ brand_name: brand.name,
15937
+ brand_link: getBrandLink(brand),
15938
+ search_string: searchValue,
15939
+ is_trending: true
15940
+ });
15941
+ }
15942
+ }
15926
15943
  }, brand.name);
15927
15944
  }) : (_limitBrands2 = limitBrands(searchResults === null || searchResults === void 0 ? void 0 : searchResults.brands)) === null || _limitBrands2 === void 0 ? void 0 : _limitBrands2.map(function (brand) {
15928
15945
  return /*#__PURE__*/React__default.createElement("a", {
15929
15946
  key: brand.link,
15930
15947
  href: brand.link,
15931
- className: "search-results__item"
15948
+ className: "search-results__item",
15949
+ onClick: function onClick() {
15950
+ if (typeof onBrandSearchResultClick === 'function') {
15951
+ onBrandSearchResultClick({
15952
+ brand_name: brand.name,
15953
+ brand_link: brand.link,
15954
+ search_string: searchValue,
15955
+ is_trending: false
15956
+ });
15957
+ }
15958
+ }
15932
15959
  }, brand.name);
15933
15960
  }))), /*#__PURE__*/React__default.createElement("div", {
15934
15961
  className: "search-results__section"
@@ -15973,7 +16000,8 @@
15973
16000
  var useSearch = function useSearch(_ref) {
15974
16001
  var endpoint = _ref.endpoint,
15975
16002
  onProductIdsReceived = _ref.onProductIdsReceived,
15976
- currency = _ref.currency;
16003
+ currency = _ref.currency,
16004
+ onSearchPreview = _ref.onSearchPreview;
15977
16005
  var currentSearchRequestToken = React.useRef(null);
15978
16006
  var debounce = React.useCallback(function (func, wait) {
15979
16007
  var timeout;
@@ -16034,6 +16062,16 @@
16034
16062
  onProductIdsReceived(searchResults.luxity_product_ids);
16035
16063
  }
16036
16064
 
16065
+ if (typeof onSearchPreview === 'function') {
16066
+ var _searchResults$brands, _searchResults$produc;
16067
+
16068
+ var hasResults = ((_searchResults$brands = searchResults.brands) === null || _searchResults$brands === void 0 ? void 0 : _searchResults$brands.length) > 0 || ((_searchResults$produc = searchResults.products) === null || _searchResults$produc === void 0 ? void 0 : _searchResults$produc.length) > 0;
16069
+ onSearchPreview({
16070
+ search_string: searchQuery,
16071
+ has_results: hasResults
16072
+ });
16073
+ }
16074
+
16037
16075
  currentSearchRequestToken.current = null;
16038
16076
  }
16039
16077
  }).catch(function (error) {
@@ -16046,7 +16084,7 @@
16046
16084
  currentSearchRequestToken.current = null;
16047
16085
  }
16048
16086
  });
16049
- }, [endpoint, currency, onProductIdsReceived]);
16087
+ }, [endpoint, currency, onSearchPreview, onProductIdsReceived]);
16050
16088
  var debouncedSearch = React.useMemo(function () {
16051
16089
  return debounce(function (searchQuery, setSearchResults) {
16052
16090
  return performSearch(searchQuery, setSearchResults);
@@ -16182,7 +16220,10 @@
16182
16220
  endpoint = _ref.endpoint,
16183
16221
  initialSearchData = _ref.initialSearchData,
16184
16222
  onSearchSubmit = _ref.onSearchSubmit,
16185
- onSearchClick = _ref.onSearchClick,
16223
+ onSearchBarClick = _ref.onSearchBarClick,
16224
+ onSearchPreview = _ref.onSearchPreview,
16225
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
16226
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
16186
16227
  onProductIdsReceived = _ref.onProductIdsReceived,
16187
16228
  currency = _ref.currency,
16188
16229
  currencySymbol = _ref.currencySymbol,
@@ -16202,7 +16243,8 @@
16202
16243
  var _useSearch = useSearch({
16203
16244
  endpoint: endpoint,
16204
16245
  onProductIdsReceived: onProductIdsReceived,
16205
- currency: currency
16246
+ currency: currency,
16247
+ onSearchPreview: onSearchPreview
16206
16248
  }),
16207
16249
  fetchInitialSearchData = _useSearch.fetchInitialSearchData,
16208
16250
  createDebouncedSearch = _useSearch.createDebouncedSearch,
@@ -16267,15 +16309,15 @@
16267
16309
  useSearchClickOutside(searchResultsRef, searchResults, setCachedResults, setIsSearchFocused, setSearchResults);
16268
16310
 
16269
16311
  var handleSearchClick = function handleSearchClick() {
16270
- if (typeof onSearchClick === 'function') {
16271
- onSearchClick();
16312
+ if (typeof onSearchBarClick === 'function') {
16313
+ onSearchBarClick();
16272
16314
  return;
16273
16315
  }
16274
16316
 
16275
16317
  handleSearchFocus();
16276
16318
  };
16277
16319
 
16278
- var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults, onSearchClick);
16320
+ var handleSearchFocus = useSearchInputFocus(searchValue, setIsSearchFocused, cachedResults, setSearchResults);
16279
16321
  var handleKeyDown = useSearchInputKeyDown(searchValue, immediateSearch, setIsSearchFocused);
16280
16322
 
16281
16323
  function addCategoryToElements(elements, categoryName) {
@@ -16398,7 +16440,9 @@
16398
16440
  isSearchFocused: isSearchFocused,
16399
16441
  setIsSearchFocused: setIsSearchFocused,
16400
16442
  currency: currency,
16401
- currencySymbol: currencySymbol
16443
+ currencySymbol: currencySymbol,
16444
+ onProductSearchResultClick: onProductSearchResultClick,
16445
+ onBrandSearchResultClick: onBrandSearchResultClick
16402
16446
  }), /*#__PURE__*/React__default.createElement("nav", {
16403
16447
  className: "navbar__nav-links navbar__nav-links--wrap"
16404
16448
  }, renderDropdownLinks(), !!stores.length && /*#__PURE__*/React__default.createElement("li", {
@@ -17091,6 +17135,10 @@
17091
17135
  endpoint = _ref.endpoint,
17092
17136
  initialSearchData = _ref.initialSearchData,
17093
17137
  onSearchSubmit = _ref.onSearchSubmit,
17138
+ onSearchBarClick = _ref.onSearchBarClick,
17139
+ onSearchPreview = _ref.onSearchPreview,
17140
+ onProductSearchResultClick = _ref.onProductSearchResultClick,
17141
+ onBrandSearchResultClick = _ref.onBrandSearchResultClick,
17094
17142
  onProductIdsReceived = _ref.onProductIdsReceived,
17095
17143
  onLogoutClick = _ref.onLogoutClick,
17096
17144
  onInterestClick = _ref.onInterestClick,
@@ -17117,7 +17165,8 @@
17117
17165
  var _useSearch = useSearch({
17118
17166
  endpoint: endpoint,
17119
17167
  onProductIdsReceived: onProductIdsReceived,
17120
- currency: currency
17168
+ currency: currency,
17169
+ onSearchPreview: onSearchPreview
17121
17170
  }),
17122
17171
  fetchInitialSearchData = _useSearch.fetchInitialSearchData,
17123
17172
  createDebouncedSearch = _useSearch.createDebouncedSearch,
@@ -17192,6 +17241,10 @@
17192
17241
  }, [showSearchBar]);
17193
17242
 
17194
17243
  var onSearchClick = function onSearchClick() {
17244
+ if (!showSearchBar && typeof onSearchBarClick === 'function') {
17245
+ onSearchBarClick();
17246
+ }
17247
+
17195
17248
  setShowSearchbar(function (prev) {
17196
17249
  return !prev;
17197
17250
  });
@@ -17395,7 +17448,9 @@
17395
17448
  isSearchFocused: isSearchFocused,
17396
17449
  setIsSearchFocused: setIsSearchFocused,
17397
17450
  currency: currency,
17398
- currencySymbol: currencySymbol
17451
+ currencySymbol: currencySymbol,
17452
+ onProductSearchResultClick: onProductSearchResultClick,
17453
+ onBrandSearchResultClick: onBrandSearchResultClick
17399
17454
  }))), shop && /*#__PURE__*/React__default.createElement(LuxitySideNav, {
17400
17455
  accordionIcon: accordionIcon,
17401
17456
  logoSrc: logoSrc,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonlineza/luxity-lib",
3
- "version": "2.37.1",
3
+ "version": "2.37.3",
4
4
  "scripts": {
5
5
  "start": "start-storybook -p 9001 -c .storybook -s ./public",
6
6
  "clean": "rimraf ./build/*.*",
package/build/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- bundle.css
2
- bundle.js
3
- constants.js
package/build/.npmignore DELETED
File without changes