@bonlineza/luxity-lib 2.32.6 → 2.32.8

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.
@@ -107,6 +107,133 @@
107
107
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
108
108
  }
109
109
 
110
+ var cssUnit = {
111
+ cm: true,
112
+ mm: true,
113
+ in: true,
114
+ px: true,
115
+ pt: true,
116
+ pc: true,
117
+ em: true,
118
+ ex: true,
119
+ ch: true,
120
+ rem: true,
121
+ vw: true,
122
+ vh: true,
123
+ vmin: true,
124
+ vmax: true,
125
+ "%": true,
126
+ };
127
+ /**
128
+ * If size is a number, append px to the value as default unit.
129
+ * If size is a string, validate against list of valid units.
130
+ * If unit is valid, return size as is.
131
+ * If unit is invalid, console warn issue, replace with px as the unit.
132
+ *
133
+ * @param {(number | string)} size
134
+ * @return {LengthObject} LengthObject
135
+ */
136
+ function parseLengthAndUnit(size) {
137
+ if (typeof size === "number") {
138
+ return {
139
+ value: size,
140
+ unit: "px",
141
+ };
142
+ }
143
+ var value;
144
+ var valueString = (size.match(/^[0-9.]*/) || "").toString();
145
+ if (valueString.includes(".")) {
146
+ value = parseFloat(valueString);
147
+ }
148
+ else {
149
+ value = parseInt(valueString, 10);
150
+ }
151
+ var unit = (size.match(/[^0-9]*$/) || "").toString();
152
+ if (cssUnit[unit]) {
153
+ return {
154
+ value: value,
155
+ unit: unit,
156
+ };
157
+ }
158
+ console.warn("React Spinners: ".concat(size, " is not a valid css value. Defaulting to ").concat(value, "px."));
159
+ return {
160
+ value: value,
161
+ unit: "px",
162
+ };
163
+ }
164
+ /**
165
+ * Take value as an input and return valid css value
166
+ *
167
+ * @param {(number | string)} value
168
+ * @return {string} valid css value
169
+ */
170
+ function cssValue(value) {
171
+ var lengthWithunit = parseLengthAndUnit(value);
172
+ return "".concat(lengthWithunit.value).concat(lengthWithunit.unit);
173
+ }
174
+
175
+ var createAnimation = function (loaderName, frames, suffix) {
176
+ var animationName = "react-spinners-".concat(loaderName, "-").concat(suffix);
177
+ if (typeof window == "undefined" || !window.document) {
178
+ return animationName;
179
+ }
180
+ var styleEl = document.createElement("style");
181
+ document.head.appendChild(styleEl);
182
+ var styleSheet = styleEl.sheet;
183
+ var keyFrames = "\n @keyframes ".concat(animationName, " {\n ").concat(frames, "\n }\n ");
184
+ if (styleSheet) {
185
+ styleSheet.insertRule(keyFrames, 0);
186
+ }
187
+ return animationName;
188
+ };
189
+
190
+ var __assign = (undefined && undefined.__assign) || function () {
191
+ __assign = Object.assign || function(t) {
192
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
193
+ s = arguments[i];
194
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
195
+ t[p] = s[p];
196
+ }
197
+ return t;
198
+ };
199
+ return __assign.apply(this, arguments);
200
+ };
201
+ var __rest = (undefined && undefined.__rest) || function (s, e) {
202
+ var t = {};
203
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
204
+ t[p] = s[p];
205
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
206
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
207
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
208
+ t[p[i]] = s[p[i]];
209
+ }
210
+ return t;
211
+ };
212
+ var beat = createAnimation("BeatLoader", "50% {transform: scale(0.75);opacity: 0.2} 100% {transform: scale(1);opacity: 1}", "beat");
213
+ function BeatLoader(_a) {
214
+ var _b = _a.loading, loading = _b === void 0 ? true : _b, _c = _a.color, color = _c === void 0 ? "#000000" : _c, _d = _a.speedMultiplier, speedMultiplier = _d === void 0 ? 1 : _d, _e = _a.cssOverride, cssOverride = _e === void 0 ? {} : _e, _f = _a.size, size = _f === void 0 ? 15 : _f, _g = _a.margin, margin = _g === void 0 ? 2 : _g, additionalprops = __rest(_a, ["loading", "color", "speedMultiplier", "cssOverride", "size", "margin"]);
215
+ var wrapper = __assign({ display: "inherit" }, cssOverride);
216
+ var style = function (i) {
217
+ return {
218
+ display: "inline-block",
219
+ backgroundColor: color,
220
+ width: cssValue(size),
221
+ height: cssValue(size),
222
+ margin: cssValue(margin),
223
+ borderRadius: "100%",
224
+ animation: "".concat(beat, " ").concat(0.7 / speedMultiplier, "s ").concat(i % 2 ? "0s" : "".concat(0.35 / speedMultiplier, "s"), " infinite linear"),
225
+ animationFillMode: "both",
226
+ };
227
+ };
228
+ if (!loading) {
229
+ return null;
230
+ }
231
+ return (React.createElement("span", __assign({ style: wrapper }, additionalprops),
232
+ React.createElement("span", { style: style(1) }),
233
+ React.createElement("span", { style: style(2) }),
234
+ React.createElement("span", { style: style(3) })));
235
+ }
236
+
110
237
  var LuxityAppSideNav = function LuxityAppSideNav(_ref) {
111
238
  var closeIcon = _ref.closeIcon,
112
239
  accountIcon = _ref.accountIcon,
@@ -362,7 +489,7 @@
362
489
  className: "side-nav__elements"
363
490
  }, categoryElements.map(function (category) {
364
491
  return /*#__PURE__*/React__default.createElement("a", {
365
- href: "".concat(productUrl, "/").concat(category.slug),
492
+ href: "".concat(productUrl, "/").concat(['new', 'apparel', 'accessories'].includes(categorySlug) ? category.slug : "".concat(categorySlug, "/").concat(category.slug)),
366
493
  className: "side-nav__element"
367
494
  }, category.name.toLowerCase());
368
495
  })), /*#__PURE__*/React__default.createElement("br", null), /*#__PURE__*/React__default.createElement("div", {
@@ -370,11 +497,11 @@
370
497
  }, /*#__PURE__*/React__default.createElement("div", {
371
498
  className: "side-nav__sub-menu-title"
372
499
  }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement("a", {
373
- href: "".concat(productUrl, "/brands"),
500
+ href: "".concat(productUrl, "/").concat(categorySlug),
374
501
  className: "side-nav__element"
375
502
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
376
503
  return /*#__PURE__*/React__default.createElement("a", {
377
- href: "".concat(productUrl, "/").concat(categorySlug, "/").concat(brand.slug),
504
+ href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
378
505
  className: "side-nav__element"
379
506
  }, brand.name);
380
507
  })))));
@@ -439,7 +566,7 @@
439
566
  latestArrivals: [],
440
567
  bags: [],
441
568
  shoes: [],
442
- clothing: [],
569
+ apparel: [],
443
570
  accessories: [],
444
571
  watches: [],
445
572
  accessoriesCategories: [],
@@ -568,7 +695,7 @@
568
695
  type: "button",
569
696
  className: "side-nav__menu-title-wrapper",
570
697
  onClick: function onClick() {
571
- return onSubMenuClick('clothing');
698
+ return onSubMenuClick('apparel');
572
699
  }
573
700
  }, /*#__PURE__*/React__default.createElement("span", {
574
701
  className: "side-nav__menu-title"
@@ -686,14 +813,14 @@
686
813
  isLoading: loading,
687
814
  hasError: hasError
688
815
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
689
- subMenuOpen: subMenuOpen && displayedSubMenu === 'clothing',
816
+ subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
690
817
  onBackClick: onBackClick,
691
818
  backIcon: backIcon,
692
819
  subMenuCategoryTitle: "Department",
693
820
  productUrl: productUrl,
694
821
  categoryElements: dropdownData.apparelStyles,
695
822
  subMenuBrandsTitle: "Clothing Brands",
696
- brandsList: dropdownData.clothing,
823
+ brandsList: dropdownData.apparel,
697
824
  categorySlug: displayedSubMenu,
698
825
  isLoading: loading,
699
826
  hasError: hasError
@@ -733,22 +860,21 @@
733
860
 
734
861
  var SearchResults = function SearchResults(_ref) {
735
862
  var searchValue = _ref.searchValue,
736
- searchLoading = _ref.searchLoading,
737
863
  searchResults = _ref.searchResults,
738
864
  onViewAll = _ref.onViewAll,
739
865
  searchResultsRef = _ref.searchResultsRef,
740
866
  onSearchSubmit = _ref.onSearchSubmit,
741
867
  setSearchValue = _ref.setSearchValue;
742
868
 
743
- if (searchValue.trim() !== '') {
869
+ if (searchValue.trim().length >= 3) {
870
+ if (searchResults.brands.length === 0 && searchResults.products.length === 0) {
871
+ return null;
872
+ }
873
+
744
874
  return /*#__PURE__*/React__default.createElement("div", {
745
875
  className: "z-50 absolute md:top-14 font-body bg-white w-full lg:w-1/2 flex flex-col md:flex-row md:divide-x divide-black lg:mt-1 shadow-md",
746
876
  ref: searchResultsRef
747
- }, searchLoading ? /*#__PURE__*/React__default.createElement("div", {
748
- className: "w-full py-20 flex items-center justify-center"
749
- }, "Searching ...") : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, searchResults.brands.length === 0 && searchResults.products.length === 0 ? /*#__PURE__*/React__default.createElement("div", {
750
- className: "w-full py-20 flex items-center justify-center"
751
- }, "No products found") : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
877
+ }, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
752
878
  className: "w-full lg:w-1/3"
753
879
  }, /*#__PURE__*/React__default.createElement("p", {
754
880
  className: "font-bold p-2 px-4"
@@ -779,7 +905,7 @@
779
905
  setSearchValue('');
780
906
  },
781
907
  className: "bottom-0 mt-5 py-3 w-full font-body text-center text-white uppercase bg-black hover:bg-gray-950 border border-black transition-all ease-in-out duration-300 cursor-pointer"
782
- }, "View all")))));
908
+ }, "View all"))));
783
909
  }
784
910
 
785
911
  return null;
@@ -789,7 +915,6 @@
789
915
  var logoSrc = _ref.logoSrc,
790
916
  menuIcon = _ref.menuIcon,
791
917
  inputSearchIcon = _ref.inputSearchIcon,
792
- onSearch = _ref.onSearch,
793
918
  onCartClick = _ref.onCartClick,
794
919
  cartIcon = _ref.cartIcon,
795
920
  cartCount = _ref.cartCount,
@@ -841,7 +966,7 @@
841
966
  showSideNav = _useState6[0],
842
967
  setShowSideNav = _useState6[1];
843
968
 
844
- var _useState7 = React.useState(true),
969
+ var _useState7 = React.useState(false),
845
970
  _useState8 = _slicedToArray(_useState7, 2),
846
971
  searchLoading = _useState8[0],
847
972
  setSearchLoading = _useState8[1];
@@ -854,21 +979,41 @@
854
979
  searchResults = _useState10[0],
855
980
  setSearchResults = _useState10[1];
856
981
 
982
+ var debounce = function debounce(func, wait) {
983
+ var timeout;
984
+ return function executedFunction() {
985
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
986
+ args[_key] = arguments[_key];
987
+ }
988
+
989
+ var later = function later() {
990
+ clearTimeout(timeout);
991
+ func.apply(void 0, args);
992
+ };
993
+
994
+ clearTimeout(timeout);
995
+ timeout = setTimeout(later, wait);
996
+ };
997
+ };
998
+
999
+ var debouncedSearch = React.useCallback(debounce(function (nextValue) {
1000
+ setSearchLoading(true);
1001
+ axios.post(endpoint, searchProducts(nextValue, 6)).then(function (response) {
1002
+ setSearchResults(response.data.data.luxity_products_serach_results);
1003
+ var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
1004
+ onProductIdsReceived(ids);
1005
+ setSearchLoading(false);
1006
+ }).catch(function () {
1007
+ setSearchLoading(false);
1008
+ });
1009
+ }, 500), [endpoint]);
1010
+
857
1011
  var handleChange = function handleChange(event) {
858
1012
  var value = event.target.value;
859
1013
  setSearchValue(value);
860
- onSearch(value);
861
-
862
- if (value.trim() !== '') {
863
- setSearchLoading(true);
864
- axios.post(endpoint, searchProducts(value, 6)).then(function (response) {
865
- setSearchResults(response.data.data.luxity_products_serach_results);
866
- var ids = response.data.data.luxity_products_serach_results.luxity_product_ids;
867
- onProductIdsReceived(ids);
868
- setSearchLoading(false);
869
- }).catch(function () {
870
- setSearchLoading(false);
871
- });
1014
+
1015
+ if (value.trim().length >= 3) {
1016
+ debouncedSearch(value);
872
1017
  } else {
873
1018
  setSearchResults({
874
1019
  brands: [],
@@ -1012,6 +1157,12 @@
1012
1157
  value: searchValue,
1013
1158
  onChange: handleChange,
1014
1159
  onKeyDown: handleKeyDown
1160
+ }), searchLoading && /*#__PURE__*/React__default.createElement(BeatLoader, {
1161
+ color: "#000000",
1162
+ loading: searchLoading,
1163
+ size: 5,
1164
+ "aria-label": "Loading Spinner",
1165
+ "data-testid": "loader"
1015
1166
  })), /*#__PURE__*/React__default.createElement("button", {
1016
1167
  type: "button",
1017
1168
  onClick: onSearchClick
package/LuxitySideNav.js CHANGED
@@ -187,7 +187,7 @@
187
187
  className: "side-nav__elements"
188
188
  }, categoryElements.map(function (category) {
189
189
  return /*#__PURE__*/React__default.createElement("a", {
190
- href: "".concat(productUrl, "/").concat(category.slug),
190
+ href: "".concat(productUrl, "/").concat(['new', 'apparel', 'accessories'].includes(categorySlug) ? category.slug : "".concat(categorySlug, "/").concat(category.slug)),
191
191
  className: "side-nav__element"
192
192
  }, category.name.toLowerCase());
193
193
  })), /*#__PURE__*/React__default.createElement("br", null), /*#__PURE__*/React__default.createElement("div", {
@@ -195,11 +195,11 @@
195
195
  }, /*#__PURE__*/React__default.createElement("div", {
196
196
  className: "side-nav__sub-menu-title"
197
197
  }, subMenuBrandsTitle), /*#__PURE__*/React__default.createElement("a", {
198
- href: "".concat(productUrl, "/brands"),
198
+ href: "".concat(productUrl, "/").concat(categorySlug),
199
199
  className: "side-nav__element"
200
200
  }, "All Brands"), !!brandsList.length && brandsList.map(function (brand) {
201
201
  return /*#__PURE__*/React__default.createElement("a", {
202
- href: "".concat(productUrl, "/").concat(categorySlug, "/").concat(brand.slug),
202
+ href: "".concat(productUrl, "/").concat(categorySlug === 'new' ? 'brands' : categorySlug, "/").concat(brand.slug),
203
203
  className: "side-nav__element"
204
204
  }, brand.name);
205
205
  })))));
@@ -255,7 +255,7 @@
255
255
  latestArrivals: [],
256
256
  bags: [],
257
257
  shoes: [],
258
- clothing: [],
258
+ apparel: [],
259
259
  accessories: [],
260
260
  watches: [],
261
261
  accessoriesCategories: [],
@@ -384,7 +384,7 @@
384
384
  type: "button",
385
385
  className: "side-nav__menu-title-wrapper",
386
386
  onClick: function onClick() {
387
- return onSubMenuClick('clothing');
387
+ return onSubMenuClick('apparel');
388
388
  }
389
389
  }, /*#__PURE__*/React__default.createElement("span", {
390
390
  className: "side-nav__menu-title"
@@ -502,14 +502,14 @@
502
502
  isLoading: loading,
503
503
  hasError: hasError
504
504
  }), /*#__PURE__*/React__default.createElement(BrandsDropDown, {
505
- subMenuOpen: subMenuOpen && displayedSubMenu === 'clothing',
505
+ subMenuOpen: subMenuOpen && displayedSubMenu === 'apparel',
506
506
  onBackClick: onBackClick,
507
507
  backIcon: backIcon,
508
508
  subMenuCategoryTitle: "Department",
509
509
  productUrl: productUrl,
510
510
  categoryElements: dropdownData.apparelStyles,
511
511
  subMenuBrandsTitle: "Clothing Brands",
512
- brandsList: dropdownData.clothing,
512
+ brandsList: dropdownData.apparel,
513
513
  categorySlug: displayedSubMenu,
514
514
  isLoading: loading,
515
515
  hasError: hasError
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:15px;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:13px;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}.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}.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-bottom:20px;padding-left:32px;padding-right:32px}.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;justify-content:space-between;width:100%}.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__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:30px}.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:125px}}.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}@media only screen and (max-width:879px){.navbar__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__cart-icon{position:relative}.navbar__cart-count{align-items:center;background-color:#000;border-radius:50%;bottom:50%;color:#fff;display:flex;font-size:13px;height:20px;justify-content:center;left:100%;position:absolute;width:20px}.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%}.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)}}.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}.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%}
1
+ .navbar{box-shadow:2px 2px 10px #dfdede;display:flex;padding-bottom:10px;padding-top:20px;position:relative}.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-bottom:20px;padding-left:32px;padding-right:32px}.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;justify-content:space-between;width:100%}.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__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:30px}.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:125px}}.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}@media only screen and (max-width:879px){.navbar__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__cart-icon{position:relative}.navbar__cart-count{align-items:center;background-color:#000;border-radius:50%;bottom:50%;color:#fff;display:flex;font-size:13px;height:20px;justify-content:center;left:100%;position:absolute;width:20px}.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:15px;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:13px;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}.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}}.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%}.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)}}