@faststore/core 2.2.52 → 2.2.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +54 -60
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/prerender-manifest.json +1 -1
  11. package/.next/react-loadable-manifest.json +3 -3
  12. package/.next/routes-manifest.json +1 -1
  13. package/.next/server/chunks/350.js +1 -1
  14. package/.next/server/chunks/390.js +453 -393
  15. package/.next/server/chunks/520.js +491 -0
  16. package/.next/server/chunks/732.js +1 -1
  17. package/.next/server/chunks/74.js +2081 -494
  18. package/.next/server/chunks/796.js +495 -0
  19. package/.next/server/middleware-build-manifest.js +1 -1
  20. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  21. package/.next/server/pages/404.js +14 -0
  22. package/.next/server/pages/404.js.nft.json +1 -1
  23. package/.next/server/pages/500.js +14 -0
  24. package/.next/server/pages/500.js.nft.json +1 -1
  25. package/.next/server/pages/[...slug].js +13 -13
  26. package/.next/server/pages/[...slug].js.nft.json +1 -1
  27. package/.next/server/pages/[slug]/p.js +9 -9
  28. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  29. package/.next/server/pages/_app.js.nft.json +1 -1
  30. package/.next/server/pages/account.js +14 -0
  31. package/.next/server/pages/account.js.nft.json +1 -1
  32. package/.next/server/pages/api/graphql.js +1 -1
  33. package/.next/server/pages/checkout.js +14 -0
  34. package/.next/server/pages/checkout.js.nft.json +1 -1
  35. package/.next/server/pages/en-US/404.html +2 -2
  36. package/.next/server/pages/en-US/500.html +2 -2
  37. package/.next/server/pages/en-US/account.html +2 -2
  38. package/.next/server/pages/en-US/checkout.html +2 -2
  39. package/.next/server/pages/en-US/login.html +2 -2
  40. package/.next/server/pages/en-US/s.html +2 -2
  41. package/.next/server/pages/en-US.html +2 -2
  42. package/.next/server/pages/index.js +8 -8
  43. package/.next/server/pages/index.js.nft.json +1 -1
  44. package/.next/server/pages/login.js +14 -0
  45. package/.next/server/pages/login.js.nft.json +1 -1
  46. package/.next/server/pages/s.js +8 -1
  47. package/.next/server/pages/s.js.nft.json +1 -1
  48. package/.next/static/H_kSoqYPjjK2sM3cxP_pS/_buildManifest.js +1 -0
  49. package/.next/static/chunks/158-02891d5ee60b505c.js +1 -0
  50. package/.next/static/chunks/251.98f500dd8ba008ae.js +1 -0
  51. package/.next/static/chunks/497-176c5263d6378afc.js +1 -0
  52. package/.next/static/chunks/585.92188327fc30a684.js +1 -0
  53. package/.next/static/chunks/800.ea75aa39e939d9af.js +1 -0
  54. package/.next/static/chunks/897-b07932d813bb7dac.js +1 -0
  55. package/.next/static/chunks/pages/{404-7710903c2a59fa6e.js → 404-0bacd82dcf801c94.js} +1 -1
  56. package/.next/static/chunks/pages/{500-88a231e61179db83.js → 500-4dceb834e001d990.js} +1 -1
  57. package/.next/static/chunks/pages/[...slug]-0765ca2a2572ab9e.js +1 -0
  58. package/.next/static/chunks/pages/[slug]/p-a402fb32d2a6ec95.js +1 -0
  59. package/.next/static/chunks/pages/{account-f163e14670372c05.js → account-57c0c1f70eed76a6.js} +1 -1
  60. package/.next/static/chunks/pages/{checkout-cf498a32e110bde8.js → checkout-e5db8918e7c9c75e.js} +1 -1
  61. package/.next/static/chunks/pages/index-d0c9985f7dde64ce.js +1 -0
  62. package/.next/static/chunks/pages/{login-707636c85f23cac6.js → login-39000c786b4f6222.js} +1 -1
  63. package/.next/static/chunks/pages/s-e195109f5acced7c.js +1 -0
  64. package/.next/static/chunks/webpack-422f774fb36da0fb.js +1 -0
  65. package/.next/static/css/{4e42cc999ad62b57.css → 0dc997f9da3027b7.css} +1 -1
  66. package/.next/static/css/58e1e061ceea2cd8.css +1 -0
  67. package/.next/static/css/{d7bbfbd552f407e9.css → cbccabebb36f7f92.css} +1 -1
  68. package/.next/static/css/{d456bfc64bc489a2.css → cf062feb79245123.css} +1 -1
  69. package/.next/trace +81 -80
  70. package/.turbo/turbo-build.log +19 -19
  71. package/.turbo/turbo-test.log +11 -11
  72. package/package.json +2 -2
  73. package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +2 -1
  74. package/src/components/sections/BannerText/BannerText.tsx +16 -16
  75. package/src/components/sections/BannerText/DefaultComponents.ts +9 -0
  76. package/src/components/sections/BannerText/OverriddenDefaultBannerText.ts +12 -0
  77. package/src/components/sections/ProductShelf/DefaultComponents.ts +9 -0
  78. package/src/components/sections/ProductShelf/OverriddenDefaultProductShelf.ts +12 -0
  79. package/src/components/templates/LandingPage/LandingPage.tsx +2 -2
  80. package/src/components/templates/ProductListingPage/ProductListing.tsx +1 -1
  81. package/src/components/ui/ProductShelf/ProductShelf.tsx +11 -12
  82. package/src/pages/[slug]/p.tsx +1 -1
  83. package/src/pages/index.tsx +2 -2
  84. package/src/sdk/overrides/sections.tsx +8 -0
  85. package/src/typings/overrides.ts +4 -1
  86. package/.next/server/chunks/117.js +0 -430
  87. package/.next/server/chunks/184.js +0 -61
  88. package/.next/server/chunks/53.js +0 -61
  89. package/.next/server/chunks/773.js +0 -550
  90. package/.next/server/chunks/854.js +0 -72
  91. package/.next/server/chunks/979.js +0 -1305
  92. package/.next/static/Vfb6D5MSONBW7u11rKVhf/_buildManifest.js +0 -1
  93. package/.next/static/chunks/158-85b4b978d0a1cf1b.js +0 -1
  94. package/.next/static/chunks/223-cb77217cce52d45c.js +0 -1
  95. package/.next/static/chunks/251.1c79f06f2a2814b1.js +0 -1
  96. package/.next/static/chunks/497-f3f10b00c609f0c2.js +0 -1
  97. package/.next/static/chunks/585.2d70151d75fdf960.js +0 -1
  98. package/.next/static/chunks/783-fbcb7a3216c40744.js +0 -1
  99. package/.next/static/chunks/800.f63caad837409c7e.js +0 -1
  100. package/.next/static/chunks/pages/[...slug]-e87fa1c381512f10.js +0 -1
  101. package/.next/static/chunks/pages/[slug]/p-c4c65f184eaa6c98.js +0 -1
  102. package/.next/static/chunks/pages/index-098f2e020e698003.js +0 -1
  103. package/.next/static/chunks/pages/s-0bfcfd0d40841dcf.js +0 -1
  104. package/.next/static/chunks/webpack-590d458bd6727c5b.js +0 -1
  105. package/.next/static/css/14238403d5139812.css +0 -1
  106. package/.next/static/css/dfbdb0f27fd64782.css +0 -1
  107. package/src/components/sections/BannerText/Overrides.tsx +0 -18
  108. package/src/components/sections/ProductShelf/Overrides.tsx +0 -20
  109. /package/.next/static/{Vfb6D5MSONBW7u11rKVhf → H_kSoqYPjjK2sM3cxP_pS}/_ssgManifest.js +0 -0
@@ -151,6 +151,29 @@ const Loader = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Loader
151
151
 
152
152
  /***/ }),
153
153
 
154
+ /***/ 9767:
155
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
156
+
157
+ "use strict";
158
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
159
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
160
+ /* harmony export */ });
161
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
162
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
163
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5450);
164
+
165
+
166
+ const Price = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Price({ value, as: Component = 'span', variant = 'selling', testId = 'fs-price', formatter = (price) => price, SRText, ...otherProps }, ref) {
167
+ const formattedPrice = formatter(value, variant);
168
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, { ref: ref, "data-fs-price": true, "data-fs-price-variant": variant, "data-testid": testId, ...otherProps },
169
+ SRText && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { text: SRText }),
170
+ formattedPrice));
171
+ });
172
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Price);
173
+ //# sourceMappingURL=Price.js.map
174
+
175
+ /***/ }),
176
+
154
177
  /***/ 5450:
155
178
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
156
179
 
@@ -170,6 +193,28 @@ function SROnly({ text, as }) {
170
193
 
171
194
  /***/ }),
172
195
 
196
+ /***/ 792:
197
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
198
+
199
+ "use strict";
200
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
201
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
202
+ /* harmony export */ });
203
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
204
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
205
+
206
+ const Skeleton = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Skeleton({ testId = 'fs-skeleton', loading = true, shimmer = true, children, size, border, borderRadius, ...otherProps }, ref) {
207
+ const styles = {
208
+ width: size.width,
209
+ height: size.height,
210
+ };
211
+ return loading ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { ref: ref, "data-fs-skeleton": true, "data-testid": testId, "data-fs-skeleton-border": border ? border : null, style: borderRadius ? { ...styles, borderRadius: borderRadius } : styles, ...otherProps }, shimmer && react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-skeleton-shimmer": true }))) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children));
212
+ });
213
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Skeleton);
214
+ //# sourceMappingURL=Skeleton.js.map
215
+
216
+ /***/ }),
217
+
173
218
  /***/ 3666:
174
219
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
175
220
 
@@ -412,6 +457,54 @@ const Alert = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Alert({
412
457
 
413
458
  /***/ }),
414
459
 
460
+ /***/ 2946:
461
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
462
+
463
+ "use strict";
464
+
465
+ // EXPORTS
466
+ __webpack_require__.d(__webpack_exports__, {
467
+ "Z": () => (/* binding */ DiscountBadge_DiscountBadge)
468
+ });
469
+
470
+ // EXTERNAL MODULE: external "react"
471
+ var external_react_ = __webpack_require__(6689);
472
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
473
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Badge/Badge.js
474
+ var Badge = __webpack_require__(276);
475
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/DiscountBadge/useDiscountPercent.js
476
+
477
+ const useDiscountPercent = (listPrice, spotPrice) => {
478
+ return (0,external_react_.useMemo)(() => {
479
+ const diff = listPrice - spotPrice;
480
+ const discount = (diff * 100) / listPrice;
481
+ return Math.round(discount);
482
+ }, [spotPrice, listPrice]);
483
+ };
484
+ //# sourceMappingURL=useDiscountPercent.js.map
485
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/DiscountBadge/DiscountBadge.js
486
+
487
+
488
+
489
+ const DiscountBadge = ({ listPrice, spotPrice, thresholdLow = 15, thresholdHigh = 40, size, testId = 'fs-discount-badge', }) => {
490
+ const discountPercent = useDiscountPercent(listPrice, spotPrice);
491
+ if (discountPercent === 0) {
492
+ return external_react_default().createElement((external_react_default()).Fragment, null);
493
+ }
494
+ const discountVariant = discountPercent <= thresholdLow
495
+ ? 'low'
496
+ : discountPercent <= thresholdHigh
497
+ ? 'medium'
498
+ : 'high';
499
+ return (external_react_default().createElement(Badge/* default */.Z, { "data-fs-discount-badge": true, "data-fs-discount-badge-variant": discountVariant, size: size, "data-testid": testId },
500
+ discountPercent,
501
+ "% off"));
502
+ };
503
+ /* harmony default export */ const DiscountBadge_DiscountBadge = (DiscountBadge);
504
+ //# sourceMappingURL=DiscountBadge.js.map
505
+
506
+ /***/ }),
507
+
415
508
  /***/ 7041:
416
509
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
417
510
 
@@ -631,6 +724,48 @@ const Modal = ({ children, testId = 'fs-modal', isOpen = true, onDismiss, overla
631
724
 
632
725
  /***/ }),
633
726
 
727
+ /***/ 3024:
728
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
729
+
730
+ "use strict";
731
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
732
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
733
+ /* harmony export */ });
734
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
735
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
736
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2614);
737
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7041);
738
+ /* harmony import */ var _atoms_List__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4564);
739
+
740
+
741
+
742
+ const Rating = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Rating({ children, testId = 'fs-rating', length = 5, value = 0, icon, onChange, ...otherProps }, ref) {
743
+ const [hover, setHover] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);
744
+ const outlineProps = { 'data-fs-rating-icon-outline': true };
745
+ const ratingIcon = react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(icon) ? icon : react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { name: "Star" });
746
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_atoms_List__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { ref: ref, "data-fs-rating": true, "data-fs-rating-actionable": typeof onChange === 'function', "data-testid": testId, ...otherProps }, Array.from({ length }).map((_, index) => {
747
+ const tempIndex = index + 1;
748
+ const fillCheck = () => {
749
+ if (tempIndex <= (hover || value)) {
750
+ return 'full';
751
+ }
752
+ if (tempIndex - value > 0 && tempIndex - value < 1) {
753
+ return 'partial';
754
+ }
755
+ return 'empty';
756
+ };
757
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", { key: `rating-${index}`, "data-fs-rating-item": fillCheck(), "data-testid": `${testId}-item` }, onChange ? (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-fs-rating-button": true, icon: ratingIcon, size: "small", "aria-label": "rate", onClick: () => {
758
+ onChange(tempIndex);
759
+ }, onMouseEnter: () => setHover(tempIndex), onMouseLeave: () => setHover(value) })) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
760
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-rating-icon-wrapper": true }, ratingIcon),
761
+ react__WEBPACK_IMPORTED_MODULE_0___default().isValidElement(icon) ? (react__WEBPACK_IMPORTED_MODULE_0___default().cloneElement(icon, outlineProps)) : (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { name: "Star", "data-fs-rating-icon-outline": true }))))));
762
+ })));
763
+ });
764
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Rating);
765
+ //# sourceMappingURL=Rating.js.map
766
+
767
+ /***/ }),
768
+
634
769
  /***/ 6396:
635
770
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
636
771
 
@@ -688,6 +823,24 @@ function SearchProvider({ onSearchSelection, children, term, terms, products, is
688
823
 
689
824
  /***/ }),
690
825
 
826
+ /***/ 6737:
827
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
828
+
829
+ "use strict";
830
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
831
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
832
+ /* harmony export */ });
833
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
834
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
835
+
836
+ const ProductShelf = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function ProductShelf({ testId = 'fs-product-shelf', children, ...otherProps }, ref) {
837
+ return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { ref: ref, "data-fs-product-shelf": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
838
+ });
839
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
840
+ //# sourceMappingURL=ProductShelf.js.map
841
+
842
+ /***/ }),
843
+
691
844
  /***/ 7683:
692
845
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
693
846
 
@@ -855,14 +1008,14 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
855
1008
  /* harmony import */ var src_server_cms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9497);
856
1009
  /* harmony import */ var src_components_common_Toast__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(3746);
857
1010
  /* harmony import */ var _RenderSections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2224);
858
- /* harmony import */ var src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2773);
1011
+ /* harmony import */ var src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1605);
859
1012
  /* harmony import */ var src_components_sections_Footer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11);
860
1013
  /* harmony import */ var src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6696);
861
1014
  /* harmony import */ var src_components_sections_RegionBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3830);
862
1015
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
863
1016
  /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
864
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
865
- ([src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1017
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__]);
1018
+ ([src_components_sections_Alert_OverriddenDefaultAlert__WEBPACK_IMPORTED_MODULE_2__, src_components_sections_Navbar__WEBPACK_IMPORTED_MODULE_3__, _RenderSections__WEBPACK_IMPORTED_MODULE_7__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
866
1019
  const _excluded = ["children"];
867
1020
 
868
1021
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
@@ -887,7 +1040,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
887
1040
 
888
1041
 
889
1042
  const RegionModal = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(779), __webpack_require__.e(988)]).then(__webpack_require__.bind(__webpack_require__, 5988)));
890
- const CartSidebar = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(53), __webpack_require__.e(693), __webpack_require__.e(585)]).then(__webpack_require__.bind(__webpack_require__, 6585)));
1043
+ const CartSidebar = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(693), __webpack_require__.e(585)]).then(__webpack_require__.bind(__webpack_require__, 6585)));
891
1044
  const GLOBAL_SECTIONS_CONTENT_TYPE = 'globalSections';
892
1045
 
893
1046
  /* A list of components that can be used in the CMS. */
@@ -1609,6 +1762,187 @@ function NavbarSlider({
1609
1762
 
1610
1763
  /***/ }),
1611
1764
 
1765
+ /***/ 8553:
1766
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1767
+
1768
+ "use strict";
1769
+
1770
+ // EXPORTS
1771
+ __webpack_require__.d(__webpack_exports__, {
1772
+ "Z": () => (/* binding */ product_ProductCard_ProductCard)
1773
+ });
1774
+
1775
+ // UNUSED EXPORTS: fragment
1776
+
1777
+ // EXTERNAL MODULE: external "react"
1778
+ var external_react_ = __webpack_require__(6689);
1779
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
1780
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCard.js
1781
+
1782
+ const ProductCard = (0,external_react_.forwardRef)(function ProductCard({ testId = 'fs-product-card', variant = 'default', bordered = false, outOfStock, children, ...otherProps }, ref) {
1783
+ return (external_react_default().createElement("article", { ref: ref, "data-fs-product-card": outOfStock ? 'out-of-stock' : '', "data-fs-product-card-variant": variant, "data-fs-product-card-bordered": bordered, "data-testid": testId, ...otherProps }, children));
1784
+ });
1785
+ /* harmony default export */ const ProductCard_ProductCard = (ProductCard);
1786
+ //# sourceMappingURL=ProductCard.js.map
1787
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCardImage.js
1788
+
1789
+ const ProductCardImage = (0,external_react_.forwardRef)(function ProductCardImage({ testId = 'fs-product-card-image', aspectRatio = 1, children, ...otherProps }, ref) {
1790
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-product-card-image": true, "data-testid": testId, style: {
1791
+ '--fs-product-card-image-aspect-ratio': aspectRatio
1792
+ }, ...otherProps }, children));
1793
+ });
1794
+ /* harmony default export */ const ProductCard_ProductCardImage = (ProductCardImage);
1795
+ //# sourceMappingURL=ProductCardImage.js.map
1796
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Link/Link.js
1797
+ var Link = __webpack_require__(727);
1798
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Price/Price.js
1799
+ var Price = __webpack_require__(9767);
1800
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/Rating/Rating.js
1801
+ var Rating = __webpack_require__(3024);
1802
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
1803
+ var Icon = __webpack_require__(2614);
1804
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/DiscountBadge/DiscountBadge.js + 1 modules
1805
+ var DiscountBadge = __webpack_require__(2946);
1806
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Badge/Badge.js
1807
+ var Badge = __webpack_require__(276);
1808
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
1809
+ var Button = __webpack_require__(3339);
1810
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/ProductCard/ProductCardContent.js
1811
+
1812
+
1813
+ const ProductCardContent = (0,external_react_.forwardRef)(function CardContent({ testId = 'fs-product-card-content', title, linkProps, price, outOfStock, outOfStockLabel = 'Out of stock', ratingValue, showDiscountBadge, buttonLabel = 'Add', onButtonClick, children, ...otherProps }, ref) {
1814
+ const listPrice = price?.listPrice ?? 0;
1815
+ const sellingPrice = price?.value ?? 0;
1816
+ return (external_react_default().createElement("section", { ref: ref, "data-fs-product-card-content": true, "data-fs-product-card-badge": showDiscountBadge, "data-testid": testId, ...otherProps },
1817
+ external_react_default().createElement("div", { "data-fs-product-card-heading": true },
1818
+ external_react_default().createElement("h3", { "data-fs-product-card-title": true },
1819
+ external_react_default().createElement(Link/* default */.Z, { ...linkProps, title: title },
1820
+ external_react_default().createElement("span", null, title))),
1821
+ !outOfStock && (external_react_default().createElement("div", { "data-fs-product-card-prices": true }, sellingPrice !== listPrice
1822
+ ? (external_react_default().createElement((external_react_default()).Fragment, null,
1823
+ external_react_default().createElement(Price/* default */.Z, { value: listPrice, formatter: price?.formatter, testId: "list-price", "data-value": listPrice, variant: "listing", SRText: "Original price:" }),
1824
+ external_react_default().createElement(Price/* default */.Z, { value: sellingPrice, formatter: price?.formatter, testId: "price", "data-value": sellingPrice, variant: "spot", SRText: "Sale Price:" })))
1825
+ : (external_react_default().createElement(Price/* default */.Z, { value: sellingPrice, formatter: price?.formatter, testId: "price", "data-value": sellingPrice, variant: "spot", SRText: "Sale Price:" })))),
1826
+ ratingValue && (external_react_default().createElement(Rating/* default */.Z, { value: ratingValue, icon: external_react_default().createElement(Icon/* default */.Z, { name: "Star" }) }))),
1827
+ showDiscountBadge && !outOfStock && (external_react_default().createElement(DiscountBadge/* default */.Z, { listPrice: price?.listPrice ? price.listPrice : 0, spotPrice: price?.value ? price.value : 0 })),
1828
+ outOfStock && external_react_default().createElement(Badge/* default */.Z, null, outOfStockLabel),
1829
+ onButtonClick && !outOfStock && (external_react_default().createElement("div", { "data-fs-product-card-actions": true },
1830
+ external_react_default().createElement(Button/* default */.Z, { variant: "primary", icon: external_react_default().createElement(Icon/* default */.Z, { name: "ShoppingCart" }), iconPosition: "left", size: "small", onClick: onButtonClick }, buttonLabel)))));
1831
+ });
1832
+ /* harmony default export */ const ProductCard_ProductCardContent = (ProductCardContent);
1833
+ //# sourceMappingURL=ProductCardContent.js.map
1834
+ // EXTERNAL MODULE: ./node_modules/next/link.js
1835
+ var next_link = __webpack_require__(1664);
1836
+ var link_default = /*#__PURE__*/__webpack_require__.n(next_link);
1837
+ // EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx + 1 modules
1838
+ var Image = __webpack_require__(5731);
1839
+ // EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
1840
+ var useFormattedPrice = __webpack_require__(5346);
1841
+ // EXTERNAL MODULE: ./src/sdk/product/useProductLink.ts
1842
+ var useProductLink = __webpack_require__(9854);
1843
+ // EXTERNAL MODULE: external "react/jsx-runtime"
1844
+ var jsx_runtime_ = __webpack_require__(997);
1845
+ ;// CONCATENATED MODULE: ./src/components/product/ProductCard/ProductCard.tsx
1846
+ const _excluded = ["product", "index", "bordered", "variant", "aspectRatio", "imgProps", "ratingValue", "buttonLabel", "onButtonClick", "showDiscountBadge"];
1847
+
1848
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1849
+
1850
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1851
+
1852
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1853
+
1854
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1855
+
1856
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+ function ProductCard_ProductCard_ProductCard(_ref) {
1868
+ let {
1869
+ product,
1870
+ index,
1871
+ bordered = true,
1872
+ variant = 'default',
1873
+ aspectRatio = 1,
1874
+ imgProps,
1875
+ ratingValue,
1876
+ buttonLabel = 'Add',
1877
+ onButtonClick,
1878
+ showDiscountBadge = true
1879
+ } = _ref,
1880
+ otherProps = _objectWithoutProperties(_ref, _excluded);
1881
+
1882
+ const {
1883
+ sku,
1884
+ isVariantOf: {
1885
+ name
1886
+ },
1887
+ image: [img],
1888
+ offers: {
1889
+ lowPrice: spotPrice,
1890
+ offers: [{
1891
+ listPrice,
1892
+ availability
1893
+ }]
1894
+ }
1895
+ } = product;
1896
+
1897
+ const linkProps = _objectSpread(_objectSpread({}, (0,useProductLink/* useProductLink */.w)({
1898
+ product,
1899
+ selectedOffer: 0,
1900
+ index
1901
+ })), {}, {
1902
+ as: (link_default()),
1903
+ passHref: true,
1904
+ legacyBehavior: false,
1905
+ prefetch: false
1906
+ });
1907
+
1908
+ const outOfStock = (0,external_react_.useMemo)(() => availability !== 'https://schema.org/InStock', [availability]);
1909
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)(ProductCard_ProductCard, _objectSpread(_objectSpread({
1910
+ outOfStock: outOfStock,
1911
+ bordered: bordered,
1912
+ variant: variant,
1913
+ "data-fs-product-card-sku": sku
1914
+ }, otherProps), {}, {
1915
+ children: [/*#__PURE__*/jsx_runtime_.jsx(ProductCard_ProductCardImage, {
1916
+ aspectRatio: aspectRatio,
1917
+ children: /*#__PURE__*/jsx_runtime_.jsx(Image/* default */.Z, {
1918
+ src: img.url,
1919
+ alt: img.alternateName,
1920
+ sizes: `${imgProps?.sizes ?? '(max-width: 768px) 40vw, 30vw'}`,
1921
+ width: imgProps?.width ?? 360,
1922
+ height: Math.round((Number(imgProps?.height) || 360) / aspectRatio),
1923
+ loading: imgProps?.loading
1924
+ })
1925
+ }), /*#__PURE__*/jsx_runtime_.jsx(ProductCard_ProductCardContent, {
1926
+ title: name,
1927
+ price: {
1928
+ value: spotPrice,
1929
+ listPrice: listPrice,
1930
+ formatter: useFormattedPrice/* useFormattedPrice */.P
1931
+ },
1932
+ ratingValue: ratingValue,
1933
+ outOfStock: outOfStock,
1934
+ onButtonClick: onButtonClick,
1935
+ linkProps: linkProps,
1936
+ showDiscountBadge: showDiscountBadge
1937
+ })]
1938
+ }));
1939
+ }
1940
+
1941
+ const fragment = "unknown";
1942
+ /* harmony default export */ const product_ProductCard_ProductCard = (/*#__PURE__*/(0,external_react_.memo)(ProductCard_ProductCard_ProductCard));
1943
+
1944
+ /***/ }),
1945
+
1612
1946
  /***/ 9471:
1613
1947
  /***/ ((module, __webpack_exports__, __webpack_require__) => {
1614
1948
 
@@ -1654,7 +1988,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
1654
1988
 
1655
1989
 
1656
1990
 
1657
- const SearchDropdown = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() => Promise.all(/* import() */[__webpack_require__.e(53), __webpack_require__.e(854), __webpack_require__.e(312)]).then(__webpack_require__.bind(__webpack_require__, 4312)));
1991
+ const SearchDropdown = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.lazy)(() => __webpack_require__.e(/* import() */ 312).then(__webpack_require__.bind(__webpack_require__, 4312)));
1658
1992
  const MAX_SUGGESTIONS = 5;
1659
1993
 
1660
1994
  const sendAnalytics = async term => {
@@ -1751,95 +2085,344 @@ __webpack_async_result__();
1751
2085
 
1752
2086
  /***/ }),
1753
2087
 
1754
- /***/ 2773:
2088
+ /***/ 6893:
1755
2089
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1756
2090
 
1757
2091
  "use strict";
1758
2092
 
1759
2093
  // EXPORTS
1760
2094
  __webpack_require__.d(__webpack_exports__, {
1761
- "N": () => (/* binding */ OverriddenDefaultAlert)
2095
+ "Z": () => (/* binding */ sections_Alert_Alert)
1762
2096
  });
1763
2097
 
1764
- ;// CONCATENATED MODULE: ./src/customizations/src/components/overrides/Alert.tsx
1765
- // This is an example of how it can be used on the starter.
1766
- const SECTION = 'Alert';
1767
- const override = {
1768
- section: SECTION
1769
- };
2098
+ // EXTERNAL MODULE: external "react"
2099
+ var external_react_ = __webpack_require__(6689);
2100
+ // EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
2101
+ var mark = __webpack_require__(2541);
2102
+ // EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
2103
+ var Section = __webpack_require__(3271);
2104
+ // EXTERNAL MODULE: ./src/components/common/Alert/section.module.scss
2105
+ var section_module = __webpack_require__(7651);
2106
+ var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
2107
+ // EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
2108
+ var OverrideContext = __webpack_require__(5522);
2109
+ // EXTERNAL MODULE: external "react/jsx-runtime"
2110
+ var jsx_runtime_ = __webpack_require__(997);
2111
+ ;// CONCATENATED MODULE: ./src/components/common/Alert/Alert.tsx
2112
+ const _excluded = ["content", "children"];
1770
2113
 
1771
- // EXTERNAL MODULE: ./src/sdk/overrides/getOverriddenSection.tsx + 9 modules
1772
- var getOverriddenSection = __webpack_require__(6926);
1773
- ;// CONCATENATED MODULE: ./src/components/sections/Alert/OverriddenDefaultAlert.ts
2114
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1774
2115
 
2116
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1775
2117
 
2118
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1776
2119
 
1777
- /**
1778
- * This component exists to support overrides 1.0
1779
- *
1780
- * This allows users to override the default Alert section present in the Headless CMS
1781
- */
1782
- const OverriddenDefaultAlert = (0,getOverriddenSection/* getOverriddenSection */.v)(override);
2120
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
1783
2121
 
1784
- /***/ }),
2122
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
1785
2123
 
1786
- /***/ 11:
1787
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1788
2124
 
1789
- "use strict";
1790
2125
 
1791
- // EXPORTS
1792
- __webpack_require__.d(__webpack_exports__, {
1793
- "Z": () => (/* binding */ sections_Footer_Footer)
1794
- });
1795
2126
 
1796
- // EXTERNAL MODULE: external "react"
1797
- var external_react_ = __webpack_require__(6689);
1798
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
1799
- // EXTERNAL MODULE: ../components/dist/esm/atoms/List/List.js
1800
- var List = __webpack_require__(4564);
1801
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
1802
- var Icon = __webpack_require__(2614);
1803
- // EXTERNAL MODULE: ../components/dist/esm/atoms/SROnly/SROnly.js
1804
- var SROnly = __webpack_require__(5450);
1805
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/PaymentMethods/PaymentMethods.js
1806
2127
 
1807
2128
 
1808
- const PaymentMethods = (0,external_react_.forwardRef)(function PaymentMethods({ testId = 'fs-payment-methods', title, 'aria-label': ariaLabel = 'Payment Methods', flagList, ...otherProps }, ref) {
1809
- return (external_react_default().createElement("div", { ref: ref, "data-fs-payment-methods": true, "data-testid": testId, ...otherProps },
1810
- !!title && external_react_default().createElement("div", { "data-fs-payment-methods-title": true }, title),
1811
- external_react_default().createElement(List/* default */.Z, { "data-fs-payment-methods-flags": true, "aria-label": title ? undefined : ariaLabel }, flagList.map(({ alt: text, icon: { icon } }, index) => (external_react_default().createElement("li", { "data-fs-payment-methods-flag": true, key: `fs-payment-method-${index}-${text}` },
1812
- external_react_default().createElement(Icon/* default */.Z, { width: 32, height: 22.5, name: icon }),
1813
- text && external_react_default().createElement(SROnly/* default */.Z, { text: text })))))));
1814
- });
1815
- /* harmony default export */ const PaymentMethods_PaymentMethods = (PaymentMethods);
1816
- //# sourceMappingURL=PaymentMethods.js.map
1817
- // EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
1818
- var Section = __webpack_require__(3271);
1819
- // EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
1820
- var mark = __webpack_require__(2541);
1821
- // EXTERNAL MODULE: external "react/jsx-runtime"
1822
- var jsx_runtime_ = __webpack_require__(997);
1823
- ;// CONCATENATED MODULE: ./src/components/common/Footer/Footer.tsx
1824
2129
 
1825
2130
 
1826
- function FooterInfo({
1827
- children
1828
- }) {
1829
- return /*#__PURE__*/jsx_runtime_.jsx("div", {
1830
- "data-fs-footer-info": true,
1831
- children: children
1832
- });
1833
- }
1834
- function FooterNavigation({
1835
- children
1836
- }) {
1837
- return /*#__PURE__*/jsx_runtime_.jsx("div", {
1838
- "data-fs-footer-navigation": true,
1839
- children: children
2131
+ function Alert(_ref) {
2132
+ let {
2133
+ content,
2134
+ children
2135
+ } = _ref,
2136
+ otherProps = _objectWithoutProperties(_ref, _excluded);
2137
+
2138
+ const {
2139
+ Alert: AlertWrapper
2140
+ } = (0,OverrideContext/* useOverrideComponents */.r3)();
2141
+ const {
2142
+ 0: displayAlert,
2143
+ 1: setDisplayAlert
2144
+ } = (0,external_react_.useState)(true);
2145
+ const onAlertClose = (0,external_react_.useCallback)(() => setDisplayAlert(false), [setDisplayAlert]);
2146
+
2147
+ if (displayAlert === false) {
2148
+ return null;
2149
+ }
2150
+
2151
+ return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
2152
+ className: `${(section_module_default()).section} section-alert`,
2153
+ children: /*#__PURE__*/jsx_runtime_.jsx(AlertWrapper.Component, _objectSpread(_objectSpread({}, otherProps), {}, {
2154
+ // Dynamic props, shouldn't be overridable
2155
+ // This decision can be reviewed later if needed
2156
+ onClose: onAlertClose,
2157
+ children: content ?? children
2158
+ }))
1840
2159
  });
1841
2160
  }
1842
- function Footer({
2161
+
2162
+ Alert.displayName = 'Alert';
2163
+ /* harmony default export */ const Alert_Alert = ((0,mark/* mark */.B)(Alert));
2164
+ ;// CONCATENATED MODULE: ./src/components/sections/Alert/Alert.tsx
2165
+ function Alert_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2166
+
2167
+ function Alert_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Alert_ownKeys(Object(source), !0).forEach(function (key) { Alert_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Alert_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2168
+
2169
+ function Alert_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+ // TODO: Change actionPath and actionLabel with Link
2176
+ function Alert_Alert_Alert({
2177
+ icon,
2178
+ content,
2179
+ link: {
2180
+ text,
2181
+ to
2182
+ },
2183
+ dismissible
2184
+ }) {
2185
+ const {
2186
+ Alert: AlertWrapper,
2187
+ Icon
2188
+ } = (0,OverrideContext/* useOverrideComponents */.r3)();
2189
+ return /*#__PURE__*/jsx_runtime_.jsx(Alert_Alert, Alert_objectSpread(Alert_objectSpread({
2190
+ icon: /*#__PURE__*/jsx_runtime_.jsx(Icon.Component, Alert_objectSpread(Alert_objectSpread({}, Icon.props), {}, {
2191
+ name: icon ?? Icon.props.name
2192
+ }))
2193
+ }, AlertWrapper.props), {}, {
2194
+ link: Alert_objectSpread(Alert_objectSpread({}, AlertWrapper.props.link ?? {}), {}, {
2195
+ children: text ?? AlertWrapper.props.link?.children,
2196
+ href: to ?? AlertWrapper.props.link?.href,
2197
+ target: AlertWrapper.props.link?.target ?? '_self'
2198
+ }),
2199
+ dismissible: dismissible ?? AlertWrapper.props.dismissible,
2200
+ children: content
2201
+ }));
2202
+ }
2203
+
2204
+ /* harmony default export */ const sections_Alert_Alert = (Alert_Alert_Alert);
2205
+
2206
+ /***/ }),
2207
+
2208
+ /***/ 6948:
2209
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2210
+
2211
+ "use strict";
2212
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2213
+ /* harmony export */ "p": () => (/* binding */ AlertDefaultComponents)
2214
+ /* harmony export */ });
2215
+ /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8138);
2216
+ /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2614);
2217
+
2218
+ const AlertDefaultComponents = {
2219
+ Alert: _faststore_ui__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
2220
+ Icon: _faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z
2221
+ };
2222
+
2223
+ /***/ }),
2224
+
2225
+ /***/ 1605:
2226
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
2227
+
2228
+ "use strict";
2229
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2230
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2231
+ /* harmony export */ "N": () => (/* binding */ OverriddenDefaultAlert)
2232
+ /* harmony export */ });
2233
+ /* harmony import */ var src_customizations_src_components_overrides_Alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2463);
2234
+ /* harmony import */ var src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8788);
2235
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__]);
2236
+ src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2237
+
2238
+
2239
+
2240
+ /**
2241
+ * This component exists to support overrides 1.0
2242
+ *
2243
+ * This allows users to override the default Alert section present in the Headless CMS
2244
+ */
2245
+ const OverriddenDefaultAlert = (0,src_sdk_overrides_getOverriddenSection__WEBPACK_IMPORTED_MODULE_0__/* .getOverriddenSection */ .v)(src_customizations_src_components_overrides_Alert__WEBPACK_IMPORTED_MODULE_1__/* .override */ .K);
2246
+ __webpack_async_result__();
2247
+ } catch(e) { __webpack_async_result__(e); } });
2248
+
2249
+ /***/ }),
2250
+
2251
+ /***/ 9315:
2252
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2253
+
2254
+ "use strict";
2255
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2256
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2257
+ /* harmony export */ });
2258
+ /* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
2259
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
2260
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7283);
2261
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
2262
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
2263
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2264
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2265
+
2266
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2267
+
2268
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+
2275
+ // TODO: Change actionPath and actionLabel with Link
2276
+ function BannerText({
2277
+ title,
2278
+ caption,
2279
+ link: {
2280
+ url: linkUrl,
2281
+ text: linkText,
2282
+ linkTargetBlank
2283
+ },
2284
+ variant,
2285
+ colorVariant
2286
+ }) {
2287
+ const {
2288
+ BannerText: BannerTextWrapper,
2289
+ BannerTextContent
2290
+ } = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .useOverrideComponents */ .r3)();
2291
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
2292
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-banner layout__section`,
2293
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
2294
+ className: "layout__content",
2295
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(BannerTextWrapper.Component, _objectSpread(_objectSpread({}, BannerTextWrapper.props), {}, {
2296
+ variant: variant ?? BannerTextWrapper.props.variant ?? 'primary',
2297
+ colorVariant: colorVariant ?? BannerTextWrapper.props.colorVariant ?? 'main',
2298
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(BannerTextContent.Component, _objectSpread(_objectSpread({}, BannerTextContent.props), {}, {
2299
+ title: title,
2300
+ caption: caption,
2301
+ link: linkUrl ?? BannerTextContent.props.link,
2302
+ linkText: linkText ?? BannerTextContent.props.linkText,
2303
+ linkTargetBlank: linkTargetBlank ?? BannerTextContent.props.linkTargetBlank
2304
+ }))
2305
+ }))
2306
+ })
2307
+ });
2308
+ }
2309
+
2310
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BannerText);
2311
+
2312
+ /***/ }),
2313
+
2314
+ /***/ 719:
2315
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2316
+
2317
+ "use strict";
2318
+
2319
+ // EXPORTS
2320
+ __webpack_require__.d(__webpack_exports__, {
2321
+ "b": () => (/* binding */ BannerTextDefaultComponents)
2322
+ });
2323
+
2324
+ // EXTERNAL MODULE: external "react"
2325
+ var external_react_ = __webpack_require__(6689);
2326
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
2327
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerText.js
2328
+
2329
+ const BannerTextContext = (0,external_react_.createContext)(undefined);
2330
+ const BannerText = (0,external_react_.forwardRef)(function BannerText({ children, testId = 'fs-banner-text', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
2331
+ const context = { variant, colorVariant };
2332
+ return (external_react_default().createElement(BannerTextContext.Provider, { value: context },
2333
+ external_react_default().createElement("article", { ref: ref, "data-fs-banner-text": true, "data-fs-banner-text-variant": variant, "data-fs-banner-text-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
2334
+ });
2335
+ function useBannerText() {
2336
+ const context = (0,external_react_.useContext)(BannerTextContext);
2337
+ if (context === undefined) {
2338
+ throw new Error('Do not use BannerText components outside the BannerText context.');
2339
+ }
2340
+ return context;
2341
+ }
2342
+ /* harmony default export */ const BannerText_BannerText = (BannerText);
2343
+ //# sourceMappingURL=BannerText.js.map
2344
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
2345
+ var LinkButton = __webpack_require__(3922);
2346
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/BannerText/BannerTextContent.js
2347
+
2348
+
2349
+
2350
+ const BannerTextContent = (0,external_react_.forwardRef)(function BannerTextContent({ testId = 'fs-banner-text-content', title, caption, link, linkText, linkTargetBlank, ...otherProps }, ref) {
2351
+ const { variant, colorVariant } = useBannerText();
2352
+ return (external_react_default().createElement("header", { ref: ref, "data-fs-banner-text-content": true, "data-fs-content": "banner-text", "data-testid": testId, ...otherProps },
2353
+ external_react_default().createElement("div", { "data-fs-banner-text-heading": true, "data-fs-banner-text-color-variant": colorVariant },
2354
+ external_react_default().createElement("h2", null, title),
2355
+ variant === 'secondary' && caption && external_react_default().createElement("p", null, caption)),
2356
+ external_react_default().createElement(LinkButton/* default */.Z, { "data-fs-banner-text-link": true, href: link, variant: variant, inverse: colorVariant === 'main', "aria-label": linkText, target: linkTargetBlank ? '_blank' : undefined }, linkText)));
2357
+ });
2358
+ /* harmony default export */ const BannerText_BannerTextContent = (BannerTextContent);
2359
+ //# sourceMappingURL=BannerTextContent.js.map
2360
+ ;// CONCATENATED MODULE: ./src/components/sections/BannerText/DefaultComponents.ts
2361
+
2362
+ const BannerTextDefaultComponents = {
2363
+ BannerText: BannerText_BannerText,
2364
+ BannerTextContent: BannerText_BannerTextContent
2365
+ };
2366
+
2367
+ /***/ }),
2368
+
2369
+ /***/ 11:
2370
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2371
+
2372
+ "use strict";
2373
+
2374
+ // EXPORTS
2375
+ __webpack_require__.d(__webpack_exports__, {
2376
+ "Z": () => (/* binding */ sections_Footer_Footer)
2377
+ });
2378
+
2379
+ // EXTERNAL MODULE: external "react"
2380
+ var external_react_ = __webpack_require__(6689);
2381
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
2382
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/List/List.js
2383
+ var List = __webpack_require__(4564);
2384
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
2385
+ var Icon = __webpack_require__(2614);
2386
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/SROnly/SROnly.js
2387
+ var SROnly = __webpack_require__(5450);
2388
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/PaymentMethods/PaymentMethods.js
2389
+
2390
+
2391
+ const PaymentMethods = (0,external_react_.forwardRef)(function PaymentMethods({ testId = 'fs-payment-methods', title, 'aria-label': ariaLabel = 'Payment Methods', flagList, ...otherProps }, ref) {
2392
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-payment-methods": true, "data-testid": testId, ...otherProps },
2393
+ !!title && external_react_default().createElement("div", { "data-fs-payment-methods-title": true }, title),
2394
+ external_react_default().createElement(List/* default */.Z, { "data-fs-payment-methods-flags": true, "aria-label": title ? undefined : ariaLabel }, flagList.map(({ alt: text, icon: { icon } }, index) => (external_react_default().createElement("li", { "data-fs-payment-methods-flag": true, key: `fs-payment-method-${index}-${text}` },
2395
+ external_react_default().createElement(Icon/* default */.Z, { width: 32, height: 22.5, name: icon }),
2396
+ text && external_react_default().createElement(SROnly/* default */.Z, { text: text })))))));
2397
+ });
2398
+ /* harmony default export */ const PaymentMethods_PaymentMethods = (PaymentMethods);
2399
+ //# sourceMappingURL=PaymentMethods.js.map
2400
+ // EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
2401
+ var Section = __webpack_require__(3271);
2402
+ // EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
2403
+ var mark = __webpack_require__(2541);
2404
+ // EXTERNAL MODULE: external "react/jsx-runtime"
2405
+ var jsx_runtime_ = __webpack_require__(997);
2406
+ ;// CONCATENATED MODULE: ./src/components/common/Footer/Footer.tsx
2407
+
2408
+
2409
+ function FooterInfo({
2410
+ children
2411
+ }) {
2412
+ return /*#__PURE__*/jsx_runtime_.jsx("div", {
2413
+ "data-fs-footer-info": true,
2414
+ children: children
2415
+ });
2416
+ }
2417
+ function FooterNavigation({
2418
+ children
2419
+ }) {
2420
+ return /*#__PURE__*/jsx_runtime_.jsx("div", {
2421
+ "data-fs-footer-navigation": true,
2422
+ children: children
2423
+ });
2424
+ }
2425
+ function Footer({
1843
2426
  children
1844
2427
  }) {
1845
2428
  return /*#__PURE__*/jsx_runtime_.jsx("footer", {
@@ -2064,38 +2647,176 @@ const Footer_Footer_Footer = ({
2064
2647
 
2065
2648
  /***/ }),
2066
2649
 
2067
- /***/ 6696:
2068
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
2650
+ /***/ 9569:
2651
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2069
2652
 
2070
2653
  "use strict";
2071
- __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2072
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2073
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2074
- /* harmony export */ });
2075
- /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3271);
2076
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6837);
2077
- /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_2__);
2078
- /* harmony import */ var src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2024);
2079
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
2080
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2081
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__]);
2082
- src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2083
2654
 
2655
+ // EXPORTS
2656
+ __webpack_require__.d(__webpack_exports__, {
2657
+ "O": () => (/* binding */ HeroDefaultComponents)
2658
+ });
2084
2659
 
2660
+ // EXTERNAL MODULE: external "react"
2661
+ var external_react_ = __webpack_require__(6689);
2662
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
2663
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/Hero.js
2085
2664
 
2665
+ const HeroContext = (0,external_react_.createContext)(undefined);
2666
+ const Hero = (0,external_react_.forwardRef)(function Hero({ children, testId = 'fs-hero', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
2667
+ const context = { variant, colorVariant };
2668
+ return (external_react_default().createElement(HeroContext.Provider, { value: context },
2669
+ external_react_default().createElement("article", { ref: ref, "data-fs-hero": true, "data-fs-hero-variant": variant, "data-fs-hero-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
2670
+ });
2671
+ function useHero() {
2672
+ const context = (0,external_react_.useContext)(HeroContext);
2673
+ if (context === undefined) {
2674
+ throw new Error('Do not use Hero components outside the Hero context.');
2675
+ }
2676
+ return context;
2677
+ }
2678
+ /* harmony default export */ const Hero_Hero = (Hero);
2679
+ //# sourceMappingURL=Hero.js.map
2680
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroImage.js
2086
2681
 
2682
+ const HeroImage = (0,external_react_.forwardRef)(function HeroImage({ children, testId = 'fs-hero-image', ...otherProps }, ref) {
2683
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-hero-image": true, "data-testid": testId, ...otherProps }, children));
2684
+ });
2685
+ /* harmony default export */ const Hero_HeroImage = (HeroImage);
2686
+ //# sourceMappingURL=HeroImage.js.map
2687
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
2688
+ var LinkButton = __webpack_require__(3922);
2689
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
2690
+ var Icon = __webpack_require__(2614);
2691
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroHeader.js
2087
2692
 
2088
- function NavbarSection({
2089
- logo,
2090
- searchInput,
2091
- cartIcon,
2092
- signInButton,
2093
- navigation: {
2094
- menu,
2095
- home,
2096
- pageLinks,
2097
- regionalization: {
2098
- label: regionLabel,
2693
+
2694
+
2695
+ const HeroHeader = (0,external_react_.forwardRef)(function HeroHeader({ icon, link, title, linkText, linkTargetBlank, subtitle, children, testId = 'fs-hero-heading', ...otherProps }, ref) {
2696
+ const { variant, colorVariant } = useHero();
2697
+ return (external_react_default().createElement("header", { ref: ref, "data-fs-hero-heading": true, "data-testid": testId, ...otherProps },
2698
+ external_react_default().createElement("div", { "data-fs-hero-wrapper": true, "data-fs-content": "hero" },
2699
+ external_react_default().createElement("div", { "data-fs-hero-info": true },
2700
+ external_react_default().createElement("h1", { "data-fs-hero-title": true }, title),
2701
+ external_react_default().createElement("p", { "data-fs-hero-subtitle": true }, subtitle),
2702
+ !!link && (external_react_default().createElement(LinkButton/* default */.Z, { href: link, inverse: colorVariant === 'main', icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight" }), iconPosition: "right", target: linkTargetBlank ? '_blank' : undefined }, linkText))),
2703
+ !!icon && variant === 'secondary' && (external_react_default().createElement("span", { "data-fs-hero-icon": true }, icon)))));
2704
+ });
2705
+ /* harmony default export */ const Hero_HeroHeader = (HeroHeader);
2706
+ //# sourceMappingURL=HeroHeader.js.map
2707
+ ;// CONCATENATED MODULE: ./src/components/sections/Hero/DefaultComponents.ts
2708
+
2709
+ const HeroDefaultComponents = {
2710
+ Hero: Hero_Hero,
2711
+ HeroImage: Hero_HeroImage,
2712
+ HeroHeader: Hero_HeroHeader
2713
+ };
2714
+
2715
+ /***/ }),
2716
+
2717
+ /***/ 2849:
2718
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2719
+
2720
+ "use strict";
2721
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2722
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2723
+ /* harmony export */ });
2724
+ /* harmony import */ var src_components_ui_Image__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5731);
2725
+ /* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
2726
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
2727
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6717);
2728
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
2729
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
2730
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2731
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2732
+
2733
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2734
+
2735
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+
2744
+ const Hero = ({
2745
+ link,
2746
+ title,
2747
+ subtitle,
2748
+ image,
2749
+ variant,
2750
+ colorVariant,
2751
+ icon
2752
+ }) => {
2753
+ const {
2754
+ Hero: HeroWrapper,
2755
+ HeroImage,
2756
+ HeroHeader
2757
+ } = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .useOverrideComponents */ .r3)();
2758
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
2759
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-hero`,
2760
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(HeroWrapper.Component, _objectSpread(_objectSpread({}, HeroWrapper.props), {}, {
2761
+ variant: variant ?? HeroWrapper.props.variant ?? 'primary',
2762
+ colorVariant: colorVariant ?? HeroWrapper.props.colorVariant ?? 'main',
2763
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(HeroImage.Component, _objectSpread(_objectSpread({}, HeroImage.props), {}, {
2764
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(src_components_ui_Image__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
2765
+ loading: "eager",
2766
+ src: image.src,
2767
+ alt: image.alt,
2768
+ width: 360,
2769
+ height: 240,
2770
+ sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
2771
+ })
2772
+ })), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(HeroHeader.Component, _objectSpread({
2773
+ title: title,
2774
+ subtitle: subtitle,
2775
+ link: link?.url,
2776
+ linkText: link?.text,
2777
+ linkTargetBlank: link?.linkTargetBlank,
2778
+ icon: icon
2779
+ }, HeroHeader.props))]
2780
+ }))
2781
+ });
2782
+ };
2783
+
2784
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Hero);
2785
+
2786
+ /***/ }),
2787
+
2788
+ /***/ 6696:
2789
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
2790
+
2791
+ "use strict";
2792
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
2793
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2794
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
2795
+ /* harmony export */ });
2796
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3271);
2797
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6837);
2798
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_2__);
2799
+ /* harmony import */ var src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2024);
2800
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
2801
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
2802
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__]);
2803
+ src_components_navigation_Navbar__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+ function NavbarSection({
2810
+ logo,
2811
+ searchInput,
2812
+ cartIcon,
2813
+ signInButton,
2814
+ navigation: {
2815
+ menu,
2816
+ home,
2817
+ pageLinks,
2818
+ regionalization: {
2819
+ label: regionLabel,
2099
2820
  icon: {
2100
2821
  icon: regionIcon
2101
2822
  },
@@ -2172,107 +2893,578 @@ var List = __webpack_require__(4564);
2172
2893
  ;// CONCATENATED MODULE: ../components/dist/esm/molecules/NavbarLinks/NavbarLinksList.js
2173
2894
 
2174
2895
 
2175
- const NavbarLinksList = (0,external_react_.forwardRef)(function NavbarLinksList({ children, testId = 'fs-navbar-links-list', ...otherProps }, ref) {
2176
- return (external_react_default().createElement(List/* default */.Z, { "data-fs-navbar-links-list": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2177
- });
2178
- /* harmony default export */ const NavbarLinks_NavbarLinksList = (NavbarLinksList);
2179
- //# sourceMappingURL=NavbarLinksList.js.map
2180
- // EXTERNAL MODULE: ../components/dist/esm/organisms/SlideOver/SlideOver.js
2181
- var SlideOver = __webpack_require__(7215);
2182
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSlider.js
2896
+ const NavbarLinksList = (0,external_react_.forwardRef)(function NavbarLinksList({ children, testId = 'fs-navbar-links-list', ...otherProps }, ref) {
2897
+ return (external_react_default().createElement(List/* default */.Z, { "data-fs-navbar-links-list": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2898
+ });
2899
+ /* harmony default export */ const NavbarLinks_NavbarLinksList = (NavbarLinksList);
2900
+ //# sourceMappingURL=NavbarLinksList.js.map
2901
+ // EXTERNAL MODULE: ../components/dist/esm/organisms/SlideOver/SlideOver.js
2902
+ var SlideOver = __webpack_require__(7215);
2903
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSlider.js
2904
+
2905
+
2906
+ function NavbarSlider({ children, size = 'full', isOpen = true, direction = 'leftSide', testId = 'fs-navbar-slider', ...otherProps }) {
2907
+ return (external_react_default().createElement(SlideOver/* default */.Z, { "data-fs-navbar-slider": true, size: size, isOpen: isOpen, direction: direction, "data-testid": testId, ...otherProps }, children));
2908
+ }
2909
+ /* harmony default export */ const NavbarSlider_NavbarSlider = (NavbarSlider);
2910
+ //# sourceMappingURL=NavbarSlider.js.map
2911
+ // EXTERNAL MODULE: ../components/dist/esm/organisms/SlideOver/SlideOverHeader.js
2912
+ var SlideOverHeader = __webpack_require__(5049);
2913
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderHeader.js
2914
+
2915
+
2916
+ function NavbarSliderHeader({ children, testId = 'fs-navbar-slider-header', ...otherProps }) {
2917
+ return (external_react_default().createElement(SlideOverHeader/* default */.Z, { "data-fs-navbar-slider-header": true, "data-testid": testId, ...otherProps }, children));
2918
+ }
2919
+ /* harmony default export */ const NavbarSlider_NavbarSliderHeader = (NavbarSliderHeader);
2920
+ //# sourceMappingURL=NavbarSliderHeader.js.map
2921
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderContent.js
2922
+
2923
+ const NavbarSliderContent = (0,external_react_.forwardRef)(function NavbarSliderContent({ children, testId = 'fs-navbar-slider-content', ...otherProps }, ref) {
2924
+ return (external_react_default().createElement("div", { "data-fs-navbar-slider-content": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2925
+ });
2926
+ /* harmony default export */ const NavbarSlider_NavbarSliderContent = (NavbarSliderContent);
2927
+ //# sourceMappingURL=NavbarSliderContent.js.map
2928
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderFooter.js
2929
+
2930
+ const NavbarSliderFooter = (0,external_react_.forwardRef)(function NavbarSliderFooter({ children, testId = 'fs-navbar-slider-footer', ...otherProps }, ref) {
2931
+ return (external_react_default().createElement("footer", { "data-fs-navbar-slider-footer": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2932
+ });
2933
+ /* harmony default export */ const NavbarSlider_NavbarSliderFooter = (NavbarSliderFooter);
2934
+ //# sourceMappingURL=NavbarSliderFooter.js.map
2935
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarHeader.js
2936
+
2937
+ const NavbarHeader = (0,external_react_.forwardRef)(function NavbarHeader({ children, testId = 'fs-navbar-header', ...otherProps }, ref) {
2938
+ return (external_react_default().createElement("section", { "data-fs-navbar-header": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2939
+ });
2940
+ /* harmony default export */ const Navbar_NavbarHeader = (NavbarHeader);
2941
+ //# sourceMappingURL=NavbarHeader.js.map
2942
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarRow.js
2943
+
2944
+ const NavbarRow = (0,external_react_.forwardRef)(function NavbarRow({ children, testId = 'fs-navbar-row', ...otherProps }, ref) {
2945
+ return (external_react_default().createElement("div", { "data-fs-navbar-row": true, "data-fs-content": "navbar", ref: ref, "data-testid": testId, ...otherProps }, children));
2946
+ });
2947
+ /* harmony default export */ const Navbar_NavbarRow = (NavbarRow);
2948
+ //# sourceMappingURL=NavbarRow.js.map
2949
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarButtons.js
2950
+
2951
+ const NavbarButtons = (0,external_react_.forwardRef)(function NavbarButtons({ children, searchExpanded, testId = 'fs-navbar-buttons', ...otherProps }, ref) {
2952
+ return (external_react_default().createElement("div", { "data-fs-navbar-buttons": true, ref: ref, "data-testid": testId, "data-fs-navbar-search-expanded": searchExpanded, ...otherProps }, children));
2953
+ });
2954
+ /* harmony default export */ const Navbar_NavbarButtons = (NavbarButtons);
2955
+ //# sourceMappingURL=NavbarButtons.js.map
2956
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/IconButton/IconButton.js
2957
+ var IconButton = __webpack_require__(7041);
2958
+ // EXTERNAL MODULE: ./src/sdk/overrides/overrides.ts
2959
+ var overrides = __webpack_require__(7506);
2960
+ ;// CONCATENATED MODULE: ./src/customizations/src/components/overrides/Navbar.tsx
2961
+ // This is an example of how it can be used on the starter.
2962
+ const SECTION = 'Navbar';
2963
+ const override = {
2964
+ section: SECTION
2965
+ };
2966
+
2967
+ ;// CONCATENATED MODULE: ./src/components/sections/Navbar/Overrides.tsx
2968
+
2969
+
2970
+
2971
+ const {
2972
+ Navbar: Overrides_Navbar,
2973
+ NavbarLinks: Overrides_NavbarLinks,
2974
+ NavbarLinksList: Overrides_NavbarLinksList,
2975
+ NavbarSlider: Overrides_NavbarSlider,
2976
+ NavbarSliderHeader: Overrides_NavbarSliderHeader,
2977
+ NavbarSliderContent: Overrides_NavbarSliderContent,
2978
+ NavbarSliderFooter: Overrides_NavbarSliderFooter,
2979
+ NavbarHeader: Overrides_NavbarHeader,
2980
+ NavbarRow: Overrides_NavbarRow,
2981
+ NavbarButtons: Overrides_NavbarButtons,
2982
+ IconButton: Overrides_IconButton
2983
+ } = (0,overrides/* getSectionOverrides */.f)({
2984
+ Navbar: Navbar_Navbar,
2985
+ NavbarLinks: NavbarLinks_NavbarLinks,
2986
+ NavbarLinksList: NavbarLinks_NavbarLinksList,
2987
+ NavbarSlider: NavbarSlider_NavbarSlider,
2988
+ NavbarSliderHeader: NavbarSlider_NavbarSliderHeader,
2989
+ NavbarSliderContent: NavbarSlider_NavbarSliderContent,
2990
+ NavbarSliderFooter: NavbarSlider_NavbarSliderFooter,
2991
+ NavbarHeader: Navbar_NavbarHeader,
2992
+ NavbarRow: Navbar_NavbarRow,
2993
+ NavbarButtons: Navbar_NavbarButtons,
2994
+ IconButton: IconButton/* default */.Z
2995
+ }, override);
2996
+
2997
+
2998
+ /***/ }),
2999
+
3000
+ /***/ 1991:
3001
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3002
+
3003
+ "use strict";
3004
+
3005
+ // EXPORTS
3006
+ __webpack_require__.d(__webpack_exports__, {
3007
+ "B": () => (/* binding */ ProductShelfDefaultComponents)
3008
+ });
3009
+
3010
+ // EXTERNAL MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelf.js
3011
+ var ProductShelf = __webpack_require__(6737);
3012
+ // EXTERNAL MODULE: ./src/components/product/ProductCard/ProductCard.tsx + 3 modules
3013
+ var ProductCard = __webpack_require__(8553);
3014
+ // EXTERNAL MODULE: external "react"
3015
+ var external_react_ = __webpack_require__(6689);
3016
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
3017
+ // EXTERNAL MODULE: ../components/dist/esm/molecules/IconButton/IconButton.js
3018
+ var IconButton = __webpack_require__(7041);
3019
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
3020
+ var Icon = __webpack_require__(2614);
3021
+ // EXTERNAL MODULE: external "react-swipeable"
3022
+ var external_react_swipeable_ = __webpack_require__(3789);
3023
+ ;// CONCATENATED MODULE: ../components/dist/esm/hooks/useSlider.js
3024
+
3025
+
3026
+ const nextPage = (current, total) => (current + 1) % total;
3027
+ const previousPage = (current, total) => (total - ((total - current + 1) % total)) % total;
3028
+ function reducer(state, action) {
3029
+ switch (action.type) {
3030
+ case 'NEXT_PAGE': {
3031
+ // If `state.infinite` is true, we need to take into account an extra
3032
+ // page in the calculation. This extra page is a clone of the first page.
3033
+ const adjustedTotalPages = state.infinite
3034
+ ? state.totalPages + 1
3035
+ : state.totalPages;
3036
+ const nextPageIndex = nextPage(state.currentPage, adjustedTotalPages);
3037
+ const nextItemIndex = (nextPageIndex % adjustedTotalPages) * state.itemsPerPage;
3038
+ return {
3039
+ ...state,
3040
+ sliding: true,
3041
+ slideDirection: 'next',
3042
+ currentItem: nextItemIndex,
3043
+ currentPage: nextPageIndex,
3044
+ };
3045
+ }
3046
+ case 'PREVIOUS_PAGE': {
3047
+ // If `state.infinite` is true, we need to take into account an extra
3048
+ // page in the calculation. This extra page is a clone of the first page.
3049
+ const adjustedTotalPages = state.infinite
3050
+ ? state.totalPages + 1
3051
+ : state.totalPages;
3052
+ // If `state.infinite` is true and we're currently on page 0, we need to
3053
+ // let the slider go to page -1. This -1 page is a clone of the last page.
3054
+ const shouldGoToClone = state.infinite && state.currentPage === 0;
3055
+ const previousPageIndex = shouldGoToClone
3056
+ ? -1
3057
+ : previousPage(state.currentPage, state.totalPages);
3058
+ return {
3059
+ ...state,
3060
+ sliding: true,
3061
+ slideDirection: 'previous',
3062
+ currentItem: (previousPageIndex % adjustedTotalPages) * state.itemsPerPage,
3063
+ currentPage: previousPageIndex,
3064
+ };
3065
+ }
3066
+ case 'GO_TO_PAGE': {
3067
+ if (action.payload.pageIndex === state.currentPage) {
3068
+ return state;
3069
+ }
3070
+ return {
3071
+ ...state,
3072
+ sliding: action.payload.shouldSlide,
3073
+ slideDirection: action.payload.pageIndex > state.currentPage ? 'next' : 'previous',
3074
+ currentItem: (action.payload.pageIndex % state.totalPages) * state.itemsPerPage,
3075
+ currentPage: action.payload.pageIndex,
3076
+ };
3077
+ }
3078
+ case 'STOP_SLIDE':
3079
+ return { ...state, sliding: false };
3080
+ default:
3081
+ return state;
3082
+ }
3083
+ }
3084
+ const defaultSliderState = (totalItems, itemsPerPage, infinite) => ({
3085
+ currentItem: 0,
3086
+ currentPage: 0,
3087
+ sliding: false,
3088
+ slideDirection: 'next',
3089
+ totalItems,
3090
+ itemsPerPage,
3091
+ totalPages: Math.ceil(totalItems / itemsPerPage),
3092
+ infinite,
3093
+ });
3094
+ const slide = (page, dispatch) => {
3095
+ if (page === 'next') {
3096
+ dispatch({ type: 'NEXT_PAGE' });
3097
+ }
3098
+ if (page === 'previous') {
3099
+ dispatch({ type: 'PREVIOUS_PAGE' });
3100
+ }
3101
+ if (typeof page === 'number') {
3102
+ dispatch({
3103
+ type: 'GO_TO_PAGE',
3104
+ payload: {
3105
+ pageIndex: page,
3106
+ shouldSlide: true,
3107
+ },
3108
+ });
3109
+ }
3110
+ };
3111
+ const useSlider = ({ totalItems, itemsPerPage = 1, infiniteMode = false, shouldSlideOnSwipe = true, ...swipeableConfigOverrides }) => {
3112
+ const [sliderState, sliderDispatch] = (0,external_react_.useReducer)(reducer, undefined, () => defaultSliderState(totalItems, itemsPerPage, infiniteMode));
3113
+ const handlers = (0,external_react_swipeable_.useSwipeable)({
3114
+ onSwipedRight: () => shouldSlideOnSwipe && slide('previous', sliderDispatch),
3115
+ onSwipedLeft: () => shouldSlideOnSwipe && slide('next', sliderDispatch),
3116
+ trackMouse: true,
3117
+ ...swipeableConfigOverrides,
3118
+ });
3119
+ return {
3120
+ handlers,
3121
+ slide,
3122
+ sliderState,
3123
+ sliderDispatch,
3124
+ };
3125
+ };
3126
+ //# sourceMappingURL=useSlider.js.map
3127
+ // EXTERNAL MODULE: ../components/dist/esm/atoms/Button/Button.js
3128
+ var Button = __webpack_require__(3339);
3129
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/CarouselBullets.js
3130
+
3131
+
3132
+ const defaultAriaLabel = (id, idx, isActive) => isActive ? `Current page from ${id}` : `Go to page ${idx + 1} from ${id}`;
3133
+ const CarouselBullets = (0,external_react_.forwardRef)(function Bullets({ id, totalQuantity, activeBullet, onClick, testId = 'fs-carousel-bullets', ariaLabelGenerator = defaultAriaLabel, ariaControlsGenerator, ...otherProps }, ref) {
3134
+ const bulletIndexes = (0,external_react_.useMemo)(() => Array(totalQuantity).fill(0), [totalQuantity]);
3135
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-carousel-bullets": true, "data-testid": testId, role: "tablist", ...otherProps }, bulletIndexes.map((_, idx) => {
3136
+ const isActive = activeBullet === idx;
3137
+ return (external_react_default().createElement(Button/* default */.Z, { key: `${id}-${idx}`, role: "tab", tabIndex: -1, "data-fs-carousel-bullet": true, testId: `${testId}-bullet`, onClick: (e) => onClick(e, idx), "aria-label": ariaLabelGenerator(id, idx, isActive), "aria-controls": ariaControlsGenerator?.(idx), "aria-selected": isActive, variant: "tertiary" }));
3138
+ })));
3139
+ });
3140
+ /* harmony default export */ const Carousel_CarouselBullets = (CarouselBullets);
3141
+ //# sourceMappingURL=CarouselBullets.js.map
3142
+ ;// CONCATENATED MODULE: ../components/dist/esm/hooks/useSlideVisibility.js
3143
+
3144
+ function isSlideVisible({ itemsPerPage, currentSlide, slideIdx, totalItems, }) {
3145
+ const isClonedSlide = currentSlide < 0 || currentSlide >= totalItems;
3146
+ const isVisible = slideIdx >= currentSlide && slideIdx < currentSlide + itemsPerPage;
3147
+ return isClonedSlide || isVisible;
3148
+ }
3149
+ const useSlideVisibility = ({ currentSlide, itemsPerPage, totalItems, }) => {
3150
+ /** Keeps track of slides that have been visualized before.
3151
+ * We want to keep rendering them because the issue is mostly rendering
3152
+ * slides that might never be viewed; On the other hand, hiding slides
3153
+ * that were visible causes visual glitches */
3154
+ const visitedSlides = (0,external_react_.useRef)(new Set());
3155
+ (0,external_react_.useEffect)(() => {
3156
+ for (let i = 0; i < itemsPerPage; i++) {
3157
+ visitedSlides.current.add(currentSlide + i);
3158
+ }
3159
+ }, [currentSlide, itemsPerPage]);
3160
+ const isItemVisible = (index) => isSlideVisible({
3161
+ slideIdx: index,
3162
+ currentSlide,
3163
+ itemsPerPage,
3164
+ totalItems,
3165
+ });
3166
+ const shouldRenderItem = (index) => {
3167
+ return visitedSlides.current.has(index) || isItemVisible(index);
3168
+ };
3169
+ return { shouldRenderItem, isItemVisible };
3170
+ };
3171
+ //# sourceMappingURL=useSlideVisibility.js.map
3172
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/CarouselItem.js
3173
+
3174
+
3175
+ function CarouselItem({ id, index, state, children, totalItems, infiniteMode, isScrollCarousel, marginRightValue, }) {
3176
+ const { isItemVisible, shouldRenderItem } = useSlideVisibility({
3177
+ totalItems,
3178
+ currentSlide: state.currentItem,
3179
+ itemsPerPage: state.itemsPerPage,
3180
+ });
3181
+ const defaultStyle = { width: '100%' };
3182
+ const scrollCarouselStyle = {
3183
+ width: `calc((100% - ${marginRightValue} * ${state.itemsPerPage - 1}) / ${state.itemsPerPage})`,
3184
+ };
3185
+ const style = isScrollCarousel && state.itemsPerPage > 1
3186
+ ? { ...scrollCarouselStyle }
3187
+ : { ...defaultStyle };
3188
+ const shouldDisplayItem = isScrollCarousel || shouldRenderItem(index - Number(infiniteMode));
3189
+ return (external_react_default().createElement("li", { style: style, id: `${id}-carousel-item-${index}`, "data-fs-carousel-item": true, "data-fs-carousel-item-visible": isItemVisible(index - Number(infiniteMode)) || undefined }, shouldDisplayItem ? children : null));
3190
+ }
3191
+ /* harmony default export */ const Carousel_CarouselItem = (CarouselItem);
3192
+ //# sourceMappingURL=CarouselItem.js.map
3193
+ ;// CONCATENATED MODULE: ../components/dist/esm/molecules/Carousel/Carousel.js
3194
+
3195
+
3196
+
3197
+
3198
+
3199
+ const createTransformValues = (infinite, totalItems) => {
3200
+ const transformMap = {};
3201
+ const slideWidth = 100 / totalItems;
3202
+ for (let idx = 0; idx < totalItems; ++idx) {
3203
+ const currIdx = infinite ? idx - 1 : idx;
3204
+ const transformValue = -(slideWidth * idx);
3205
+ transformMap[currIdx] = transformValue;
3206
+ }
3207
+ return transformMap;
3208
+ };
3209
+ function Carousel({ children, className, 'aria-label': ariaLabel, infiniteMode = false, controls = 'complete', testId = 'fs-carousel', transition = {
3210
+ duration: 400,
3211
+ property: 'transform',
3212
+ }, id = 'fs-carousel', variant = 'scroll', itemsPerPage = 1, navigationIcons = undefined, ...swipeableConfigOverrides }) {
3213
+ if (itemsPerPage < 1) {
3214
+ throw new Error('itemsPerPage must be greater than or equal to 1');
3215
+ }
3216
+ const carouselTrackRef = (0,external_react_.useRef)(null);
3217
+ const isSlideCarousel = variant === 'slide';
3218
+ const isScrollCarousel = variant === 'scroll';
3219
+ const childrenArray = external_react_default().Children.toArray(children);
3220
+ const childrenCount = childrenArray.length;
3221
+ const numberOfSlides = infiniteMode ? childrenCount + 2 : childrenCount;
3222
+ const slidingTransition = `${transition.property} ${transition.duration}ms ${transition.timing ?? ''} ${transition.delay ?? ''}`;
3223
+ const { handlers, slide, sliderState, sliderDispatch } = useSlider({
3224
+ itemsPerPage,
3225
+ infiniteMode,
3226
+ totalItems: childrenCount,
3227
+ shouldSlideOnSwipe: isSlideCarousel,
3228
+ ...swipeableConfigOverrides,
3229
+ });
3230
+ const pagesCount = Math.ceil(childrenCount / sliderState.itemsPerPage);
3231
+ const [marginRight, setMarginRight] = (0,external_react_.useState)('16px');
3232
+ const [carouselItemsWidth, setCarouselItemsWidth] = (0,external_react_.useState)(0);
3233
+ (0,external_react_.useEffect)(() => {
3234
+ const item = carouselTrackRef.current?.firstElementChild;
3235
+ if (item) {
3236
+ setMarginRight(getComputedStyle(item).getPropertyValue('margin-right'));
3237
+ setCarouselItemsWidth(Number(item.clientWidth) + parseInt(marginRight, 10) + 1);
3238
+ }
3239
+ }, [carouselItemsWidth]);
3240
+ const showNavigationArrows = pagesCount !== 1 &&
3241
+ (controls === 'complete' || controls === 'navigationArrows');
3242
+ const showPaginationBullets = pagesCount !== 1 &&
3243
+ (controls === 'complete' || controls === 'paginationBullets');
3244
+ const transformValues = (0,external_react_.useMemo)(() => createTransformValues(infiniteMode, numberOfSlides), [numberOfSlides, infiniteMode]);
3245
+ const postRenderedSlides = infiniteMode && children ? childrenArray.slice(0, 1) : [];
3246
+ const preRenderedSlides = infiniteMode && children ? childrenArray.slice(childrenCount - 1) : [];
3247
+ const slides = preRenderedSlides.concat(children ?? [], postRenderedSlides);
3248
+ const slideCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
3249
+ width: `${numberOfSlides * 100}%`,
3250
+ transition: sliderState.sliding ? slidingTransition : undefined,
3251
+ transform: `translate3d(${transformValues[sliderState.currentPage]}%, 0, 0)`,
3252
+ }), [
3253
+ numberOfSlides,
3254
+ transformValues,
3255
+ slidingTransition,
3256
+ sliderState.sliding,
3257
+ sliderState.currentPage,
3258
+ ]);
3259
+ const scrollCarouselTrackStyle = (0,external_react_.useMemo)(() => ({
3260
+ width: '100%',
3261
+ overflowX: 'scroll',
3262
+ whiteSpace: 'nowrap',
3263
+ }), []);
3264
+ const carouselTrackStyle = (isSlideCarousel && slideCarouselTrackStyle) ||
3265
+ (isScrollCarousel && scrollCarouselTrackStyle);
3266
+ const slidePrevious = () => {
3267
+ if (sliderState.sliding ||
3268
+ (!infiniteMode && sliderState.currentPage === 0)) {
3269
+ return;
3270
+ }
3271
+ slide('previous', sliderDispatch);
3272
+ };
3273
+ const slideNext = () => {
3274
+ if (sliderState.sliding ||
3275
+ (!infiniteMode && sliderState.currentPage === childrenCount - 1)) {
3276
+ return;
3277
+ }
3278
+ slide('next', sliderDispatch);
3279
+ };
3280
+ const onScrollTrack = (event) => {
3281
+ if (isSlideCarousel || itemsPerPage > 1) {
3282
+ return;
3283
+ }
3284
+ const itemWidth = Number(event.currentTarget.firstElementChild?.scrollWidth);
3285
+ const scrollOffset = event.currentTarget?.scrollLeft;
3286
+ const formatter = scrollOffset > itemWidth / 2 ? Math.round : Math.floor;
3287
+ const page = formatter(scrollOffset / itemWidth);
3288
+ slide(page, sliderDispatch);
3289
+ };
3290
+ const onTransitionTrackEnd = () => {
3291
+ sliderDispatch({
3292
+ type: 'STOP_SLIDE',
3293
+ });
3294
+ if (infiniteMode && sliderState.currentItem >= childrenCount) {
3295
+ sliderDispatch({
3296
+ type: 'GO_TO_PAGE',
3297
+ payload: {
3298
+ pageIndex: 0,
3299
+ shouldSlide: false,
3300
+ },
3301
+ });
3302
+ }
3303
+ if (infiniteMode && sliderState.currentItem < 0) {
3304
+ sliderDispatch({
3305
+ type: 'GO_TO_PAGE',
3306
+ payload: {
3307
+ pageIndex: sliderState.totalPages - 1,
3308
+ shouldSlide: false,
3309
+ },
3310
+ });
3311
+ }
3312
+ };
3313
+ const onScrollPagination = async (index, slideDirection) => {
3314
+ if (slideDirection === 'previous' && sliderState.currentPage === 0) {
3315
+ return;
3316
+ }
3317
+ if (slideDirection === 'next' &&
3318
+ sliderState.currentPage === sliderState.totalPages - 1) {
3319
+ return;
3320
+ }
3321
+ let scrollOffset = index * carouselItemsWidth * itemsPerPage;
3322
+ carouselTrackRef.current?.scrollTo({
3323
+ left: scrollOffset,
3324
+ behavior: 'smooth',
3325
+ });
3326
+ slide(index, sliderDispatch);
3327
+ };
3328
+ // accessible behavior for tablist
3329
+ const handleBulletsKeyDown = (event) => {
3330
+ switch (event.key) {
3331
+ case 'ArrowLeft': {
3332
+ isSlideCarousel && slidePrevious();
3333
+ isScrollCarousel &&
3334
+ onScrollPagination(sliderState.currentPage - 1, 'previous');
3335
+ break;
3336
+ }
3337
+ case 'ArrowRight': {
3338
+ isSlideCarousel && slideNext();
3339
+ isScrollCarousel &&
3340
+ onScrollPagination(sliderState.currentPage + 1, 'next');
3341
+ break;
3342
+ }
3343
+ case 'Home': {
3344
+ slide(0, sliderDispatch);
3345
+ break;
3346
+ }
3347
+ case 'End': {
3348
+ slide(childrenCount - 1, sliderDispatch);
3349
+ break;
3350
+ }
3351
+ default:
3352
+ }
3353
+ };
3354
+ return (external_react_default().createElement("section", { id: id, "data-fs-carousel": true, "data-fs-carousel-variant": variant, className: className, "data-testid": testId, "aria-label": ariaLabel },
3355
+ external_react_default().createElement("div", { "data-fs-carousel-track-container": true, style: {
3356
+ width: '100%',
3357
+ overflow: 'hidden',
3358
+ display: isScrollCarousel ? 'block' : undefined,
3359
+ }, ...handlers },
3360
+ external_react_default().createElement("ul", { "aria-live": "polite", ref: carouselTrackRef, style: carouselTrackStyle, "data-fs-carousel-track": true, onScroll: onScrollTrack, onTransitionEnd: onTransitionTrackEnd }, slides.map((currentSlide, idx) => (external_react_default().createElement(Carousel_CarouselItem, { id: id, index: idx, key: String(idx), state: sliderState, totalItems: childrenCount, infiniteMode: infiniteMode, isScrollCarousel: isScrollCarousel, marginRightValue: marginRight }, currentSlide))))),
3361
+ showNavigationArrows && (external_react_default().createElement("div", { "data-fs-carousel-controls": true },
3362
+ external_react_default().createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "left", "aria-controls": id, disabled: !infiniteMode && sliderState.currentPage === 0, "aria-label": "previous", icon: navigationIcons?.left ?? (external_react_default().createElement(Icon/* default */.Z, { name: "ArrowLeft", width: 20, height: 20, weight: "bold" })), onClick: () => {
3363
+ isSlideCarousel && slidePrevious();
3364
+ isScrollCarousel &&
3365
+ onScrollPagination(sliderState.currentPage - 1, 'previous');
3366
+ } }),
3367
+ external_react_default().createElement(IconButton/* default */.Z, { "data-fs-carousel-control": "right", "aria-controls": id, disabled: !infiniteMode &&
3368
+ sliderState.currentPage === sliderState.totalPages - 1, "aria-label": "next", icon: navigationIcons?.right ?? (external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight", width: 20, height: 20, weight: "bold" })), onClick: () => {
3369
+ isSlideCarousel && slideNext();
3370
+ isScrollCarousel &&
3371
+ onScrollPagination(sliderState.currentPage + 1, 'next');
3372
+ } }))),
3373
+ showPaginationBullets && (external_react_default().createElement(Carousel_CarouselBullets, { id: id, tabIndex: 0, activeBullet: sliderState.currentPage, totalQuantity: pagesCount, onKeyDown: handleBulletsKeyDown, onClick: async (_, idx) => {
3374
+ isSlideCarousel &&
3375
+ !sliderState.sliding &&
3376
+ slide(idx, sliderDispatch);
3377
+ isScrollCarousel && onScrollPagination(idx);
3378
+ }, onFocus: (event) => event.currentTarget.focus(), ariaControlsGenerator: (idx) => `${id}-carousel-item-${idx}` }))));
3379
+ }
3380
+ /* harmony default export */ const Carousel_Carousel = (Carousel);
3381
+ //# sourceMappingURL=Carousel.js.map
3382
+ // EXTERNAL MODULE: external "react/jsx-runtime"
3383
+ var jsx_runtime_ = __webpack_require__(997);
3384
+ ;// CONCATENATED MODULE: ./src/components/ui/Carousel/Carousel.tsx
3385
+
3386
+
3387
+
3388
+ function Carousel_Carousel_Carousel({
3389
+ id,
3390
+ testId,
3391
+ children,
3392
+ itemsPerPage,
3393
+ variant = 'scroll',
3394
+ infiniteMode = false
3395
+ }) {
3396
+ const isMobile = window.innerWidth <= 768;
3397
+ return /*#__PURE__*/jsx_runtime_.jsx(Carousel_Carousel, {
3398
+ id: id,
3399
+ testId: testId,
3400
+ variant: variant,
3401
+ infiniteMode: infiniteMode,
3402
+ itemsPerPage: isMobile ? 1.6 : itemsPerPage,
3403
+ children: children
3404
+ });
3405
+ }
3406
+
3407
+ /* harmony default export */ const ui_Carousel_Carousel = (Carousel_Carousel_Carousel);
3408
+ ;// CONCATENATED MODULE: ./src/components/sections/ProductShelf/DefaultComponents.ts
3409
+
2183
3410
 
2184
3411
 
2185
- function NavbarSlider({ children, size = 'full', isOpen = true, direction = 'leftSide', testId = 'fs-navbar-slider', ...otherProps }) {
2186
- return (external_react_default().createElement(SlideOver/* default */.Z, { "data-fs-navbar-slider": true, size: size, isOpen: isOpen, direction: direction, "data-testid": testId, ...otherProps }, children));
2187
- }
2188
- /* harmony default export */ const NavbarSlider_NavbarSlider = (NavbarSlider);
2189
- //# sourceMappingURL=NavbarSlider.js.map
2190
- // EXTERNAL MODULE: ../components/dist/esm/organisms/SlideOver/SlideOverHeader.js
2191
- var SlideOverHeader = __webpack_require__(5049);
2192
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderHeader.js
3412
+ const ProductShelfDefaultComponents = {
3413
+ ProductShelf: ProductShelf/* default */.Z,
3414
+ __experimentalCarousel: ui_Carousel_Carousel,
3415
+ __experimentalProductCard: ProductCard/* default */.Z
3416
+ };
2193
3417
 
3418
+ /***/ }),
2194
3419
 
2195
- function NavbarSliderHeader({ children, testId = 'fs-navbar-slider-header', ...otherProps }) {
2196
- return (external_react_default().createElement(SlideOverHeader/* default */.Z, { "data-fs-navbar-slider-header": true, "data-testid": testId, ...otherProps }, children));
2197
- }
2198
- /* harmony default export */ const NavbarSlider_NavbarSliderHeader = (NavbarSliderHeader);
2199
- //# sourceMappingURL=NavbarSliderHeader.js.map
2200
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderContent.js
3420
+ /***/ 8569:
3421
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
2201
3422
 
2202
- const NavbarSliderContent = (0,external_react_.forwardRef)(function NavbarSliderContent({ children, testId = 'fs-navbar-slider-content', ...otherProps }, ref) {
2203
- return (external_react_default().createElement("div", { "data-fs-navbar-slider-content": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2204
- });
2205
- /* harmony default export */ const NavbarSlider_NavbarSliderContent = (NavbarSliderContent);
2206
- //# sourceMappingURL=NavbarSliderContent.js.map
2207
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/NavbarSlider/NavbarSliderFooter.js
3423
+ "use strict";
3424
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
3425
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3426
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3427
+ /* harmony export */ });
3428
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9785);
3429
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
3430
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3271);
3431
+ /* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7691);
3432
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6627);
3433
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
3434
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
3435
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
3436
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__]);
3437
+ src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3438
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2208
3439
 
2209
- const NavbarSliderFooter = (0,external_react_.forwardRef)(function NavbarSliderFooter({ children, testId = 'fs-navbar-slider-footer', ...otherProps }, ref) {
2210
- return (external_react_default().createElement("footer", { "data-fs-navbar-slider-footer": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2211
- });
2212
- /* harmony default export */ const NavbarSlider_NavbarSliderFooter = (NavbarSliderFooter);
2213
- //# sourceMappingURL=NavbarSliderFooter.js.map
2214
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarHeader.js
3440
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2215
3441
 
2216
- const NavbarHeader = (0,external_react_.forwardRef)(function NavbarHeader({ children, testId = 'fs-navbar-header', ...otherProps }, ref) {
2217
- return (external_react_default().createElement("section", { "data-fs-navbar-header": true, ref: ref, "data-testid": testId, ...otherProps }, children));
2218
- });
2219
- /* harmony default export */ const Navbar_NavbarHeader = (NavbarHeader);
2220
- //# sourceMappingURL=NavbarHeader.js.map
2221
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarRow.js
3442
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2222
3443
 
2223
- const NavbarRow = (0,external_react_.forwardRef)(function NavbarRow({ children, testId = 'fs-navbar-row', ...otherProps }, ref) {
2224
- return (external_react_default().createElement("div", { "data-fs-navbar-row": true, "data-fs-content": "navbar", ref: ref, "data-testid": testId, ...otherProps }, children));
2225
- });
2226
- /* harmony default export */ const Navbar_NavbarRow = (NavbarRow);
2227
- //# sourceMappingURL=NavbarRow.js.map
2228
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Navbar/NavbarButtons.js
2229
3444
 
2230
- const NavbarButtons = (0,external_react_.forwardRef)(function NavbarButtons({ children, searchExpanded, testId = 'fs-navbar-buttons', ...otherProps }, ref) {
2231
- return (external_react_default().createElement("div", { "data-fs-navbar-buttons": true, ref: ref, "data-testid": testId, "data-fs-navbar-search-expanded": searchExpanded, ...otherProps }, children));
2232
- });
2233
- /* harmony default export */ const Navbar_NavbarButtons = (NavbarButtons);
2234
- //# sourceMappingURL=NavbarButtons.js.map
2235
- // EXTERNAL MODULE: ../components/dist/esm/molecules/IconButton/IconButton.js
2236
- var IconButton = __webpack_require__(7041);
2237
- // EXTERNAL MODULE: ./src/sdk/overrides/overrides.ts
2238
- var overrides = __webpack_require__(7506);
2239
- ;// CONCATENATED MODULE: ./src/customizations/src/components/overrides/Navbar.tsx
2240
- // This is an example of how it can be used on the starter.
2241
- const SECTION = 'Navbar';
2242
- const override = {
2243
- section: SECTION
2244
- };
2245
3445
 
2246
- ;// CONCATENATED MODULE: ./src/components/sections/Navbar/Overrides.tsx
2247
3446
 
2248
3447
 
2249
3448
 
2250
- const {
2251
- Navbar: Overrides_Navbar,
2252
- NavbarLinks: Overrides_NavbarLinks,
2253
- NavbarLinksList: Overrides_NavbarLinksList,
2254
- NavbarSlider: Overrides_NavbarSlider,
2255
- NavbarSliderHeader: Overrides_NavbarSliderHeader,
2256
- NavbarSliderContent: Overrides_NavbarSliderContent,
2257
- NavbarSliderFooter: Overrides_NavbarSliderFooter,
2258
- NavbarHeader: Overrides_NavbarHeader,
2259
- NavbarRow: Overrides_NavbarRow,
2260
- NavbarButtons: Overrides_NavbarButtons,
2261
- IconButton: Overrides_IconButton
2262
- } = (0,overrides/* getSectionOverrides */.f)({
2263
- Navbar: Navbar_Navbar,
2264
- NavbarLinks: NavbarLinks_NavbarLinks,
2265
- NavbarLinksList: NavbarLinks_NavbarLinksList,
2266
- NavbarSlider: NavbarSlider_NavbarSlider,
2267
- NavbarSliderHeader: NavbarSlider_NavbarSliderHeader,
2268
- NavbarSliderContent: NavbarSlider_NavbarSliderContent,
2269
- NavbarSliderFooter: NavbarSlider_NavbarSliderFooter,
2270
- NavbarHeader: Navbar_NavbarHeader,
2271
- NavbarRow: Navbar_NavbarRow,
2272
- NavbarButtons: Navbar_NavbarButtons,
2273
- IconButton: IconButton/* default */.Z
2274
- }, override);
2275
3449
 
3450
+ function ProductShelfSection(_ref) {
3451
+ let otherProps = Object.assign({}, _ref);
3452
+ const {
3453
+ ref,
3454
+ inView
3455
+ } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__.useInView)();
3456
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(_Section__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
3457
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-product-shelf layout__section`,
3458
+ ref: ref,
3459
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, _objectSpread({
3460
+ inView: inView
3461
+ }, otherProps))
3462
+ });
3463
+ }
3464
+
3465
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelfSection);
3466
+ __webpack_async_result__();
3467
+ } catch(e) { __webpack_async_result__(e); } });
2276
3468
 
2277
3469
  /***/ }),
2278
3470
 
@@ -2478,6 +3670,149 @@ const Section = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(f
2478
3670
 
2479
3671
  /***/ }),
2480
3672
 
3673
+ /***/ 6531:
3674
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3675
+
3676
+ "use strict";
3677
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3678
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
3679
+ /* harmony export */ });
3680
+ /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(792);
3681
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
3682
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
3683
+
3684
+
3685
+
3686
+
3687
+ function ProductCardSkeleton({
3688
+ bordered,
3689
+ sectioned,
3690
+ displayButton,
3691
+ aspectRatio = 1,
3692
+ variant = 'default'
3693
+ }) {
3694
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3695
+ "data-fs-product-card-skeleton": true,
3696
+ "data-fs-product-card-skeleton-variant": variant,
3697
+ "data-fs-product-card-skeleton-bordered": bordered,
3698
+ "data-fs-product-card-skeleton-sectioned": sectioned,
3699
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("div", {
3700
+ "data-fs-product-card-skeleton-image": true,
3701
+ style: {
3702
+ '--fs-product-card-skeleton-image-aspect-ratio': aspectRatio
3703
+ },
3704
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
3705
+ size: {
3706
+ width: '100%',
3707
+ height: '100%'
3708
+ }
3709
+ })
3710
+ }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
3711
+ "data-fs-product-card-skeleton-content": true,
3712
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
3713
+ "data-fs-product-card-skeleton-text": true,
3714
+ size: {
3715
+ width: '90%',
3716
+ height: '1.5rem'
3717
+ }
3718
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
3719
+ "data-fs-product-card-skeleton-text": true,
3720
+ size: {
3721
+ width: '70%',
3722
+ height: '1.5rem'
3723
+ }
3724
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
3725
+ "data-fs-product-card-skeleton-badge": true,
3726
+ size: {
3727
+ width: '6rem',
3728
+ height: '2rem'
3729
+ },
3730
+ border: "pill"
3731
+ }), displayButton && /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_faststore_ui__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
3732
+ "data-fs-product-card-skeleton-button": true,
3733
+ size: {
3734
+ width: '6rem',
3735
+ height: '2rem'
3736
+ },
3737
+ style: {
3738
+ columnGap: '.75rem'
3739
+ }
3740
+ })]
3741
+ })]
3742
+ });
3743
+ }
3744
+
3745
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductCardSkeleton);
3746
+
3747
+ /***/ }),
3748
+
3749
+ /***/ 6523:
3750
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3751
+
3752
+ "use strict";
3753
+
3754
+ // EXPORTS
3755
+ __webpack_require__.d(__webpack_exports__, {
3756
+ "Z": () => (/* binding */ ProductShelfSkeleton_ProductShelfSkeleton)
3757
+ });
3758
+
3759
+ // EXTERNAL MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelf.js
3760
+ var ProductShelf = __webpack_require__(6737);
3761
+ // EXTERNAL MODULE: external "react"
3762
+ var external_react_ = __webpack_require__(6689);
3763
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
3764
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelfItems.js
3765
+
3766
+ const ProductShelfItems = (0,external_react_.forwardRef)(function ProductShelfItems({ testId = 'fs-product-shelf-items', children, ...otherProps }, ref) {
3767
+ return (external_react_default().createElement("ul", { role: "list", ref: ref, "data-fs-product-shelf-items": true, "data-fs-content": "product-shelf", "data-testid": testId, ...otherProps }, children));
3768
+ });
3769
+ /* harmony default export */ const ProductShelf_ProductShelfItems = (ProductShelfItems);
3770
+ //# sourceMappingURL=ProductShelfItems.js.map
3771
+ ;// CONCATENATED MODULE: ../components/dist/esm/organisms/ProductShelf/ProductShelfItem.js
3772
+
3773
+ const ProductShelfItem = (0,external_react_.forwardRef)(function ProductShelfItem({ testId = 'fs-product-shelf-item', children, ...otherProps }, ref) {
3774
+ return (external_react_default().createElement("li", { role: "listitem", ref: ref, "data-fs-product-shelf-item": true, "data-testid": testId, ...otherProps }, children));
3775
+ });
3776
+ /* harmony default export */ const ProductShelf_ProductShelfItem = (ProductShelfItem);
3777
+ //# sourceMappingURL=ProductShelfItem.js.map
3778
+ // EXTERNAL MODULE: ./src/components/skeletons/ProductCardSkeleton/ProductCardSkeleton.tsx
3779
+ var ProductCardSkeleton = __webpack_require__(6531);
3780
+ // EXTERNAL MODULE: external "react/jsx-runtime"
3781
+ var jsx_runtime_ = __webpack_require__(997);
3782
+ ;// CONCATENATED MODULE: ./src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx
3783
+
3784
+
3785
+
3786
+
3787
+
3788
+ function ProductShelfSkeleton({
3789
+ children,
3790
+ aspectRatio,
3791
+ itemsPerPage,
3792
+ loading = true
3793
+ }) {
3794
+ return loading ? /*#__PURE__*/jsx_runtime_.jsx(ProductShelf/* default */.Z, {
3795
+ "data-fs-product-shelf-skeleton": true,
3796
+ children: /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItems, {
3797
+ children: Array.from({
3798
+ length: itemsPerPage
3799
+ }, (_, index) => /*#__PURE__*/jsx_runtime_.jsx(ProductShelf_ProductShelfItem, {
3800
+ children: /*#__PURE__*/jsx_runtime_.jsx(ProductCardSkeleton/* default */.Z, {
3801
+ aspectRatio: aspectRatio,
3802
+ sectioned: true,
3803
+ bordered: true
3804
+ })
3805
+ }, String(index)))
3806
+ })
3807
+ }) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
3808
+ children: children
3809
+ });
3810
+ }
3811
+
3812
+ /* harmony default export */ const ProductShelfSkeleton_ProductShelfSkeleton = (ProductShelfSkeleton);
3813
+
3814
+ /***/ }),
3815
+
2481
3816
  /***/ 2016:
2482
3817
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2483
3818
 
@@ -2781,19 +4116,232 @@ function Logo({
2781
4116
  });
2782
4117
  }
2783
4118
 
2784
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
4119
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Logo);
4120
+
4121
+ /***/ }),
4122
+
4123
+ /***/ 7691:
4124
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
4125
+
4126
+ "use strict";
4127
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
4128
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4129
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
4130
+ /* harmony export */ });
4131
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4132
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4133
+ /* harmony import */ var src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6523);
4134
+ /* harmony import */ var src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5184);
4135
+ /* harmony import */ var src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5522);
4136
+ /* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4867);
4137
+ /* harmony import */ var src_utils_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3952);
4138
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(997);
4139
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__);
4140
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__]);
4141
+ src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
4142
+ const _excluded = ["title", "inView", "productCardConfiguration", "numberOfItems", "itemsPerPage"];
4143
+
4144
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4145
+
4146
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4147
+
4148
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4149
+
4150
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4151
+
4152
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+ function ProductShelf(_ref) {
4166
+ let {
4167
+ title,
4168
+ inView,
4169
+ productCardConfiguration: {
4170
+ bordered,
4171
+ showDiscountBadge
4172
+ } = {},
4173
+ numberOfItems,
4174
+ itemsPerPage = 5
4175
+ } = _ref,
4176
+ otherProps = _objectWithoutProperties(_ref, _excluded);
4177
+
4178
+ const {
4179
+ ProductShelf: ProductShelfWrapper,
4180
+ __experimentalCarousel: Carousel,
4181
+ __experimentalProductCard: ProductCard
4182
+ } = (0,src_sdk_overrides_OverrideContext__WEBPACK_IMPORTED_MODULE_2__/* .useOverrideComponents */ .r3)();
4183
+ const titleId = (0,src_utils_utilities__WEBPACK_IMPORTED_MODULE_3__/* .textToKebabCase */ .B)(title);
4184
+ const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
4185
+ const viewedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
4186
+ const data = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_4__/* .useProductsQuery */ .k)(_objectSpread({
4187
+ first: numberOfItems
4188
+ }, otherProps));
4189
+ const products = data?.search?.products;
4190
+ const productEdges = products?.edges ?? [];
4191
+ const aspectRatio = 1;
4192
+ const {
4193
+ sendViewItemListEvent
4194
+ } = (0,src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__/* .useViewItemListEvent */ .m)({
4195
+ products: productEdges,
4196
+ title,
4197
+ page: 0,
4198
+ pageSize: 0
4199
+ });
4200
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
4201
+ if (inView && !viewedOnce.current && productEdges.length) {
4202
+ sendViewItemListEvent();
4203
+ viewedOnce.current = true;
4204
+ }
4205
+ }, [inView, productEdges.length, sendViewItemListEvent]);
4206
+
4207
+ if (products?.edges.length === 0) {
4208
+ return null;
4209
+ }
4210
+
4211
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.Fragment, {
4212
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx("h2", {
4213
+ className: "text__title-section layout__content",
4214
+ children: title
4215
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(src_components_skeletons_ProductShelfSkeleton__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
4216
+ aspectRatio: aspectRatio,
4217
+ loading: products === undefined,
4218
+ itemsPerPage: itemsPerPage,
4219
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(ProductShelfWrapper.Component, _objectSpread(_objectSpread({}, ProductShelfWrapper.props), {}, {
4220
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx(Carousel.Component, _objectSpread(_objectSpread({
4221
+ id: titleId || id,
4222
+ itemsPerPage: itemsPerPage
4223
+ }, Carousel.props), {}, {
4224
+ children: productEdges.map((product, idx) => /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ProductCard.Component, _objectSpread(_objectSpread({
4225
+ aspectRatio: aspectRatio,
4226
+ imgProps: {
4227
+ width: 216,
4228
+ height: 216,
4229
+ sizes: '(max-width: 768px) 42vw, 30vw'
4230
+ }
4231
+ }, ProductCard.props), {}, {
4232
+ bordered: bordered ?? ProductCard.props.bordered,
4233
+ showDiscountBadge: showDiscountBadge ?? ProductCard.props.showDiscountBadge // Dynamic props shouldn't be overridable
4234
+ // This decision can be reviewed later if needed
4235
+ ,
4236
+ key: `${product.node.id}`,
4237
+ product: product.node,
4238
+ index: idx + 1
4239
+ })))
4240
+ }))
4241
+ }))
4242
+ })]
4243
+ });
4244
+ }
4245
+
4246
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelf);
4247
+ __webpack_async_result__();
4248
+ } catch(e) { __webpack_async_result__(e); } });
4249
+
4250
+ /***/ }),
4251
+
4252
+ /***/ 8459:
4253
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4254
+
4255
+ "use strict";
4256
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4257
+ /* harmony export */ "K": () => (/* binding */ ITEMS_PER_SECTION),
4258
+ /* harmony export */ "g": () => (/* binding */ ITEMS_PER_PAGE)
4259
+ /* harmony export */ });
4260
+ const ITEMS_PER_PAGE = 12;
4261
+ const ITEMS_PER_SECTION = 5;
4262
+
4263
+ /***/ }),
4264
+
4265
+ /***/ 3276:
4266
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4267
+
4268
+ "use strict";
4269
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4270
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
4271
+ /* harmony export */ });
4272
+ // eslint-disable-next-line import/no-anonymous-default-export
4273
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({});
4274
+
4275
+ /***/ }),
4276
+
4277
+ /***/ 2463:
4278
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4279
+
4280
+ "use strict";
4281
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4282
+ /* harmony export */ "K": () => (/* binding */ override)
4283
+ /* harmony export */ });
4284
+ // This is an example of how it can be used on the starter.
4285
+ const SECTION = 'Alert';
4286
+ const override = {
4287
+ section: SECTION
4288
+ };
4289
+
2785
4290
 
2786
4291
  /***/ }),
2787
4292
 
2788
- /***/ 3276:
4293
+ /***/ 5184:
2789
4294
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2790
4295
 
2791
4296
  "use strict";
2792
4297
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2793
- /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
4298
+ /* harmony export */ "m": () => (/* binding */ useViewItemListEvent)
2794
4299
  /* harmony export */ });
2795
- // eslint-disable-next-line import/no-anonymous-default-export
2796
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({});
4300
+ /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1072);
4301
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4302
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4303
+ /* harmony import */ var src_sdk_session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
4304
+
4305
+
4306
+
4307
+ const useViewItemListEvent = ({
4308
+ products,
4309
+ title,
4310
+ page,
4311
+ pageSize
4312
+ }) => {
4313
+ const {
4314
+ currency: {
4315
+ code
4316
+ }
4317
+ } = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
4318
+ const sendViewItemListEvent = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
4319
+ (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
4320
+ name: 'view_item_list',
4321
+ params: {
4322
+ item_list_name: title,
4323
+ item_list_id: title,
4324
+ items: products.map(({
4325
+ node: product
4326
+ }, index) => ({
4327
+ item_id: product.isVariantOf.productGroupID,
4328
+ item_name: product.isVariantOf.name,
4329
+ item_brand: product.brand.name,
4330
+ item_variant: product.sku,
4331
+ price: product.offers.offers[0].price,
4332
+ index: page * pageSize + index + 1,
4333
+ discount: product.offers.offers[0].listPrice - product.offers.offers[0].price,
4334
+ currency: code,
4335
+ item_variant_name: product.name,
4336
+ product_reference_id: product.gtin
4337
+ }))
4338
+ }
4339
+ });
4340
+ }, [code, products, title, page, pageSize]);
4341
+ return {
4342
+ sendViewItemListEvent
4343
+ };
4344
+ };
2797
4345
 
2798
4346
  /***/ }),
2799
4347
 
@@ -3039,321 +4587,83 @@ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __we
3039
4587
  /* harmony export */ "WN": () => (/* binding */ DEFAULT_OPTIONS),
3040
4588
  /* harmony export */ "aM": () => (/* binding */ useQuery),
3041
4589
  /* harmony export */ "km": () => (/* binding */ getKey)
3042
- /* harmony export */ });
3043
- /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5941);
3044
- /* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180);
3045
- var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__]);
3046
- swr__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
3047
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3048
-
3049
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3050
-
3051
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3052
-
3053
-
3054
-
3055
- const getKey = (operationName, variables) => `${operationName}::${JSON.stringify(variables)}`;
3056
- const DEFAULT_OPTIONS = {
3057
- errorRetryCount: 3,
3058
- refreshWhenHidden: false,
3059
- refreshWhenOffline: false,
3060
- revalidateOnFocus: false,
3061
- revalidateOnReconnect: false,
3062
- shouldRetryOnError: true
3063
- };
3064
- const useQuery = (operationName, variables, options) => (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])(() => options?.doNotRun ? null : getKey(operationName, variables), _objectSpread(_objectSpread({
3065
- fetcher: () => {
3066
- return new Promise(resolve => {
3067
- setTimeout(async () => {
3068
- resolve(await (0,_request__WEBPACK_IMPORTED_MODULE_1__/* .request */ .W)(operationName, variables, options));
3069
- });
3070
- });
3071
- }
3072
- }, DEFAULT_OPTIONS), options));
3073
- __webpack_async_result__();
3074
- } catch(e) { __webpack_async_result__(e); } });
3075
-
3076
- /***/ }),
3077
-
3078
- /***/ 5522:
3079
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3080
-
3081
- "use strict";
3082
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3083
- /* harmony export */ "Ju": () => (/* binding */ OverrideProvider),
3084
- /* harmony export */ "WB": () => (/* binding */ useOverrideClassName),
3085
- /* harmony export */ "r3": () => (/* binding */ useOverrideComponents)
3086
- /* harmony export */ });
3087
- /* unused harmony export useOverrideContext */
3088
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
3089
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3090
-
3091
- const OverrideContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
3092
- const OverrideProvider = OverrideContext.Provider;
3093
- const useOverrideContext = () => useContext(OverrideContext);
3094
- const useOverrideComponents = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext).components;
3095
- const useOverrideClassName = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext)?.className;
3096
-
3097
- /***/ }),
3098
-
3099
- /***/ 6926:
3100
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3101
-
3102
- "use strict";
3103
-
3104
- // EXPORTS
3105
- __webpack_require__.d(__webpack_exports__, {
3106
- "v": () => (/* binding */ getOverriddenSection)
3107
- });
3108
-
3109
- // EXTERNAL MODULE: ./src/sdk/overrides/OverrideContext.tsx
3110
- var OverrideContext = __webpack_require__(5522);
3111
- // EXTERNAL MODULE: external "react"
3112
- var external_react_ = __webpack_require__(6689);
3113
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
3114
- // EXTERNAL MODULE: ./src/sdk/tests/mark.tsx
3115
- var mark = __webpack_require__(2541);
3116
- // EXTERNAL MODULE: ./src/components/sections/Section/Section.tsx
3117
- var Section = __webpack_require__(3271);
3118
- // EXTERNAL MODULE: ./src/components/common/Alert/section.module.scss
3119
- var section_module = __webpack_require__(7651);
3120
- var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
3121
- // EXTERNAL MODULE: external "react/jsx-runtime"
3122
- var jsx_runtime_ = __webpack_require__(997);
3123
- ;// CONCATENATED MODULE: ./src/components/common/Alert/Alert.tsx
3124
- const _excluded = ["content", "children"];
3125
-
3126
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3127
-
3128
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3129
-
3130
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3131
-
3132
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
3133
-
3134
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
3135
-
3136
-
3137
-
3138
-
3139
-
3140
-
3141
-
3142
-
3143
- function Alert(_ref) {
3144
- let {
3145
- content,
3146
- children
3147
- } = _ref,
3148
- otherProps = _objectWithoutProperties(_ref, _excluded);
3149
-
3150
- const {
3151
- Alert: AlertWrapper
3152
- } = (0,OverrideContext/* useOverrideComponents */.r3)();
3153
- const {
3154
- 0: displayAlert,
3155
- 1: setDisplayAlert
3156
- } = (0,external_react_.useState)(true);
3157
- const onAlertClose = (0,external_react_.useCallback)(() => setDisplayAlert(false), [setDisplayAlert]);
3158
-
3159
- if (displayAlert === false) {
3160
- return null;
3161
- }
3162
-
3163
- return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
3164
- className: `${(section_module_default()).section} section-alert`,
3165
- children: /*#__PURE__*/jsx_runtime_.jsx(AlertWrapper.Component, _objectSpread(_objectSpread({}, otherProps), {}, {
3166
- // Dynamic props, shouldn't be overridable
3167
- // This decision can be reviewed later if needed
3168
- onClose: onAlertClose,
3169
- children: content ?? children
3170
- }))
3171
- });
3172
- }
3173
-
3174
- Alert.displayName = 'Alert';
3175
- /* harmony default export */ const Alert_Alert = ((0,mark/* mark */.B)(Alert));
3176
- ;// CONCATENATED MODULE: ./src/components/sections/Alert/Alert.tsx
3177
- function Alert_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3178
-
3179
- function Alert_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Alert_ownKeys(Object(source), !0).forEach(function (key) { Alert_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Alert_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3180
-
3181
- function Alert_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3182
-
3183
-
3184
-
3185
-
3186
-
3187
- // TODO: Change actionPath and actionLabel with Link
3188
- function Alert_Alert_Alert({
3189
- icon,
3190
- content,
3191
- link: {
3192
- text,
3193
- to
3194
- },
3195
- dismissible
3196
- }) {
3197
- const {
3198
- Alert: AlertWrapper,
3199
- Icon
3200
- } = (0,OverrideContext/* useOverrideComponents */.r3)();
3201
- return /*#__PURE__*/jsx_runtime_.jsx(Alert_Alert, Alert_objectSpread(Alert_objectSpread({
3202
- icon: /*#__PURE__*/jsx_runtime_.jsx(Icon.Component, Alert_objectSpread(Alert_objectSpread({}, Icon.props), {}, {
3203
- name: icon ?? Icon.props.name
3204
- }))
3205
- }, AlertWrapper.props), {}, {
3206
- link: Alert_objectSpread(Alert_objectSpread({}, AlertWrapper.props.link ?? {}), {}, {
3207
- children: text ?? AlertWrapper.props.link?.children,
3208
- href: to ?? AlertWrapper.props.link?.href,
3209
- target: AlertWrapper.props.link?.target ?? '_self'
3210
- }),
3211
- dismissible: dismissible ?? AlertWrapper.props.dismissible,
3212
- children: content
3213
- }));
3214
- }
3215
-
3216
- /* harmony default export */ const sections_Alert_Alert = (Alert_Alert_Alert);
3217
- // EXTERNAL MODULE: ./src/components/ui/Image/Image.tsx + 1 modules
3218
- var Image = __webpack_require__(5731);
3219
- // EXTERNAL MODULE: ./src/components/sections/Hero/section.module.scss
3220
- var Hero_section_module = __webpack_require__(6717);
3221
- var Hero_section_module_default = /*#__PURE__*/__webpack_require__.n(Hero_section_module);
3222
- ;// CONCATENATED MODULE: ./src/components/sections/Hero/Hero.tsx
3223
- function Hero_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3224
-
3225
- function Hero_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Hero_ownKeys(Object(source), !0).forEach(function (key) { Hero_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Hero_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3226
-
3227
- function Hero_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3228
-
3229
-
3230
-
3231
-
3232
-
3233
-
3234
-
3235
-
3236
- const Hero = ({
3237
- link,
3238
- title,
3239
- subtitle,
3240
- image,
3241
- variant,
3242
- colorVariant,
3243
- icon
3244
- }) => {
3245
- const {
3246
- Hero: HeroWrapper,
3247
- HeroImage,
3248
- HeroHeader
3249
- } = (0,OverrideContext/* useOverrideComponents */.r3)();
3250
- return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
3251
- className: `${(Hero_section_module_default()).section} section-hero`,
3252
- children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(HeroWrapper.Component, Hero_objectSpread(Hero_objectSpread({}, HeroWrapper.props), {}, {
3253
- variant: variant ?? HeroWrapper.props.variant ?? 'primary',
3254
- colorVariant: colorVariant ?? HeroWrapper.props.colorVariant ?? 'main',
3255
- children: [/*#__PURE__*/jsx_runtime_.jsx(HeroImage.Component, Hero_objectSpread(Hero_objectSpread({}, HeroImage.props), {}, {
3256
- children: /*#__PURE__*/jsx_runtime_.jsx(Image/* default */.Z, {
3257
- loading: "eager",
3258
- src: image.src,
3259
- alt: image.alt,
3260
- width: 360,
3261
- height: 240,
3262
- sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
3263
- })
3264
- })), /*#__PURE__*/jsx_runtime_.jsx(HeroHeader.Component, Hero_objectSpread({
3265
- title: title,
3266
- subtitle: subtitle,
3267
- link: link?.url,
3268
- linkText: link?.text,
3269
- linkTargetBlank: link?.linkTargetBlank,
3270
- icon: icon
3271
- }, HeroHeader.props))]
3272
- }))
3273
- });
3274
- };
4590
+ /* harmony export */ });
4591
+ /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5941);
4592
+ /* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180);
4593
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__]);
4594
+ swr__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
4595
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3275
4596
 
3276
- /* harmony default export */ const Hero_Hero = (Hero);
3277
- // EXTERNAL MODULE: ../components/dist/esm/molecules/Alert/Alert.js
3278
- var molecules_Alert_Alert = __webpack_require__(8138);
3279
- // EXTERNAL MODULE: ../components/dist/esm/atoms/Icon/Icon.js
3280
- var Icon = __webpack_require__(2614);
3281
- ;// CONCATENATED MODULE: ./src/components/sections/Alert/DefaultComponents.ts
4597
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3282
4598
 
3283
- const AlertDefaultComponents = {
3284
- Alert: molecules_Alert_Alert/* default */.Z,
3285
- Icon: Icon/* default */.Z
3286
- };
3287
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/Hero.js
4599
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3288
4600
 
3289
- const HeroContext = (0,external_react_.createContext)(undefined);
3290
- const Hero_Hero_Hero = (0,external_react_.forwardRef)(function Hero({ children, testId = 'fs-hero', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
3291
- const context = { variant, colorVariant };
3292
- return (external_react_default().createElement(HeroContext.Provider, { value: context },
3293
- external_react_default().createElement("article", { ref: ref, "data-fs-hero": true, "data-fs-hero-variant": variant, "data-fs-hero-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
3294
- });
3295
- function useHero() {
3296
- const context = (0,external_react_.useContext)(HeroContext);
3297
- if (context === undefined) {
3298
- throw new Error('Do not use Hero components outside the Hero context.');
3299
- }
3300
- return context;
3301
- }
3302
- /* harmony default export */ const organisms_Hero_Hero = (Hero_Hero_Hero);
3303
- //# sourceMappingURL=Hero.js.map
3304
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroImage.js
3305
4601
 
3306
- const HeroImage = (0,external_react_.forwardRef)(function HeroImage({ children, testId = 'fs-hero-image', ...otherProps }, ref) {
3307
- return (external_react_default().createElement("div", { ref: ref, "data-fs-hero-image": true, "data-testid": testId, ...otherProps }, children));
3308
- });
3309
- /* harmony default export */ const Hero_HeroImage = (HeroImage);
3310
- //# sourceMappingURL=HeroImage.js.map
3311
- // EXTERNAL MODULE: ../components/dist/esm/molecules/LinkButton/LinkButton.js
3312
- var LinkButton = __webpack_require__(3922);
3313
- ;// CONCATENATED MODULE: ../components/dist/esm/organisms/Hero/HeroHeader.js
3314
4602
 
4603
+ const getKey = (operationName, variables) => `${operationName}::${JSON.stringify(variables)}`;
4604
+ const DEFAULT_OPTIONS = {
4605
+ errorRetryCount: 3,
4606
+ refreshWhenHidden: false,
4607
+ refreshWhenOffline: false,
4608
+ revalidateOnFocus: false,
4609
+ revalidateOnReconnect: false,
4610
+ shouldRetryOnError: true
4611
+ };
4612
+ const useQuery = (operationName, variables, options) => (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])(() => options?.doNotRun ? null : getKey(operationName, variables), _objectSpread(_objectSpread({
4613
+ fetcher: () => {
4614
+ return new Promise(resolve => {
4615
+ setTimeout(async () => {
4616
+ resolve(await (0,_request__WEBPACK_IMPORTED_MODULE_1__/* .request */ .W)(operationName, variables, options));
4617
+ });
4618
+ });
4619
+ }
4620
+ }, DEFAULT_OPTIONS), options));
4621
+ __webpack_async_result__();
4622
+ } catch(e) { __webpack_async_result__(e); } });
3315
4623
 
4624
+ /***/ }),
3316
4625
 
3317
- const HeroHeader = (0,external_react_.forwardRef)(function HeroHeader({ icon, link, title, linkText, linkTargetBlank, subtitle, children, testId = 'fs-hero-heading', ...otherProps }, ref) {
3318
- const { variant, colorVariant } = useHero();
3319
- return (external_react_default().createElement("header", { ref: ref, "data-fs-hero-heading": true, "data-testid": testId, ...otherProps },
3320
- external_react_default().createElement("div", { "data-fs-hero-wrapper": true, "data-fs-content": "hero" },
3321
- external_react_default().createElement("div", { "data-fs-hero-info": true },
3322
- external_react_default().createElement("h1", { "data-fs-hero-title": true }, title),
3323
- external_react_default().createElement("p", { "data-fs-hero-subtitle": true }, subtitle),
3324
- !!link && (external_react_default().createElement(LinkButton/* default */.Z, { href: link, inverse: colorVariant === 'main', icon: external_react_default().createElement(Icon/* default */.Z, { name: "ArrowRight" }), iconPosition: "right", target: linkTargetBlank ? '_blank' : undefined }, linkText))),
3325
- !!icon && variant === 'secondary' && (external_react_default().createElement("span", { "data-fs-hero-icon": true }, icon)))));
3326
- });
3327
- /* harmony default export */ const Hero_HeroHeader = (HeroHeader);
3328
- //# sourceMappingURL=HeroHeader.js.map
3329
- ;// CONCATENATED MODULE: ./src/components/sections/Hero/DefaultComponents.ts
4626
+ /***/ 5522:
4627
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3330
4628
 
3331
- const HeroDefaultComponents = {
3332
- Hero: organisms_Hero_Hero,
3333
- HeroImage: Hero_HeroImage,
3334
- HeroHeader: Hero_HeroHeader
3335
- };
3336
- ;// CONCATENATED MODULE: ./src/sdk/overrides/sections.tsx
4629
+ "use strict";
4630
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4631
+ /* harmony export */ "Ju": () => (/* binding */ OverrideProvider),
4632
+ /* harmony export */ "WB": () => (/* binding */ useOverrideClassName),
4633
+ /* harmony export */ "r3": () => (/* binding */ useOverrideComponents)
4634
+ /* harmony export */ });
4635
+ /* unused harmony export useOverrideContext */
4636
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4637
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
3337
4638
 
4639
+ const OverrideContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
4640
+ const OverrideProvider = OverrideContext.Provider;
4641
+ const useOverrideContext = () => useContext(OverrideContext);
4642
+ const useOverrideComponents = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext).components;
4643
+ const useOverrideClassName = () => (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(OverrideContext)?.className;
3338
4644
 
4645
+ /***/ }),
3339
4646
 
4647
+ /***/ 8788:
4648
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
3340
4649
 
3341
- const Sections = {
3342
- Alert: sections_Alert_Alert,
3343
- Hero: Hero_Hero
3344
- };
3345
- const DefaultComponents = {
3346
- Alert: AlertDefaultComponents,
3347
- Hero: HeroDefaultComponents
3348
- };
3349
- // EXTERNAL MODULE: ./src/sdk/overrides/overrides.ts
3350
- var overrides = __webpack_require__(7506);
3351
- ;// CONCATENATED MODULE: ./src/sdk/overrides/getOverriddenSection.tsx
3352
- function getOverriddenSection_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4650
+ "use strict";
4651
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
4652
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4653
+ /* harmony export */ "v": () => (/* binding */ getOverriddenSection)
4654
+ /* harmony export */ });
4655
+ /* harmony import */ var _OverrideContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5522);
4656
+ /* harmony import */ var _sections__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4027);
4657
+ /* harmony import */ var _overrides__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7506);
4658
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(997);
4659
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
4660
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_sections__WEBPACK_IMPORTED_MODULE_2__]);
4661
+ _sections__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
4662
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3353
4663
 
3354
- function getOverriddenSection_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? getOverriddenSection_ownKeys(Object(source), !0).forEach(function (key) { getOverriddenSection_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : getOverriddenSection_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4664
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3355
4665
 
3356
- function getOverriddenSection_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4666
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3357
4667
 
3358
4668
 
3359
4669
 
@@ -3376,9 +4686,9 @@ function createOverriddenSection({
3376
4686
  return function OverriddenSection(props) {
3377
4687
  /** This type wizardry is here because the props won't behave correctly if nothing is done */
3378
4688
  const SectionComponent = Section;
3379
- return /*#__PURE__*/jsx_runtime_.jsx(OverrideContext/* OverrideProvider */.Ju, {
4689
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(_OverrideContext__WEBPACK_IMPORTED_MODULE_1__/* .OverrideProvider */ .Ju, {
3380
4690
  value: overrideContextValue,
3381
- children: /*#__PURE__*/jsx_runtime_.jsx(SectionComponent, getOverriddenSection_objectSpread({}, props))
4691
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx(SectionComponent, _objectSpread({}, props))
3382
4692
  });
3383
4693
  };
3384
4694
  }
@@ -3393,19 +4703,21 @@ function createOverriddenSection({
3393
4703
 
3394
4704
 
3395
4705
  function getOverriddenSection(override) {
3396
- const defaultComponents = DefaultComponents[override.section];
4706
+ const defaultComponents = _sections__WEBPACK_IMPORTED_MODULE_2__/* .DefaultComponents */ .O[override.section];
3397
4707
 
3398
4708
  if (!defaultComponents) {
3399
4709
  throw new Error(`Section ${override.section} does not exist. Please provide a valid section name to override.`);
3400
4710
  }
3401
4711
 
3402
- const sectionOverrides = (0,overrides/* getSectionOverrides */.f)(defaultComponents, override);
4712
+ const sectionOverrides = (0,_overrides__WEBPACK_IMPORTED_MODULE_3__/* .getSectionOverrides */ .f)(defaultComponents, override);
3403
4713
  return createOverriddenSection({
3404
- Section: Sections[override.section],
4714
+ Section: _sections__WEBPACK_IMPORTED_MODULE_2__/* .Sections */ .b[override.section],
3405
4715
  sectionOverrides: sectionOverrides,
3406
4716
  className: override.className
3407
4717
  });
3408
4718
  }
4719
+ __webpack_async_result__();
4720
+ } catch(e) { __webpack_async_result__(e); } });
3409
4721
 
3410
4722
  /***/ }),
3411
4723
 
@@ -3450,6 +4762,238 @@ function getSectionOverrides(defaultComponents, override) {
3450
4762
 
3451
4763
  /***/ }),
3452
4764
 
4765
+ /***/ 4027:
4766
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
4767
+
4768
+ "use strict";
4769
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
4770
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4771
+ /* harmony export */ "O": () => (/* binding */ DefaultComponents),
4772
+ /* harmony export */ "b": () => (/* binding */ Sections)
4773
+ /* harmony export */ });
4774
+ /* harmony import */ var _components_sections_Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6893);
4775
+ /* harmony import */ var _components_sections_BannerText__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9315);
4776
+ /* harmony import */ var _components_sections_Hero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2849);
4777
+ /* harmony import */ var _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8569);
4778
+ /* harmony import */ var _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6948);
4779
+ /* harmony import */ var _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(719);
4780
+ /* harmony import */ var _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9569);
4781
+ /* harmony import */ var _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1991);
4782
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_3__]);
4783
+ _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
4784
+
4785
+
4786
+
4787
+
4788
+
4789
+
4790
+
4791
+
4792
+ const Sections = {
4793
+ Alert: _components_sections_Alert__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z,
4794
+ BannerText: _components_sections_BannerText__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z,
4795
+ Hero: _components_sections_Hero__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z,
4796
+ ProductShelf: _components_sections_ProductShelf__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z
4797
+ };
4798
+ const DefaultComponents = {
4799
+ Alert: _components_sections_Alert_DefaultComponents__WEBPACK_IMPORTED_MODULE_4__/* .AlertDefaultComponents */ .p,
4800
+ BannerText: _components_sections_BannerText_DefaultComponents__WEBPACK_IMPORTED_MODULE_5__/* .BannerTextDefaultComponents */ .b,
4801
+ Hero: _components_sections_Hero_DefaultComponents__WEBPACK_IMPORTED_MODULE_6__/* .HeroDefaultComponents */ .O,
4802
+ ProductShelf: _components_sections_ProductShelf_DefaultComponents__WEBPACK_IMPORTED_MODULE_7__/* .ProductShelfDefaultComponents */ .B
4803
+ };
4804
+ __webpack_async_result__();
4805
+ } catch(e) { __webpack_async_result__(e); } });
4806
+
4807
+ /***/ }),
4808
+
4809
+ /***/ 5346:
4810
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4811
+
4812
+ "use strict";
4813
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4814
+ /* harmony export */ "P": () => (/* binding */ useFormattedPrice)
4815
+ /* harmony export */ });
4816
+ /* unused harmony export usePriceFormatter */
4817
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4818
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4819
+ /* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
4820
+
4821
+
4822
+ const usePriceFormatter = ({
4823
+ decimals
4824
+ } = {}) => {
4825
+ const {
4826
+ currency,
4827
+ locale
4828
+ } = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
4829
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(price => Intl.NumberFormat(locale, {
4830
+ style: 'currency',
4831
+ currency: currency.code,
4832
+ minimumFractionDigits: decimals ? 2 : 0
4833
+ }).format(price), [currency.code, locale, decimals]);
4834
+ };
4835
+ const useFormattedPrice = price => {
4836
+ const formatter = usePriceFormatter();
4837
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => formatter(price), [formatter, price]);
4838
+ };
4839
+
4840
+ /***/ }),
4841
+
4842
+ /***/ 2523:
4843
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4844
+
4845
+ "use strict";
4846
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4847
+ /* harmony export */ "y": () => (/* binding */ useLocalizedVariables)
4848
+ /* harmony export */ });
4849
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4850
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4851
+ /* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
4852
+ /* harmony import */ var src_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8459);
4853
+
4854
+
4855
+
4856
+
4857
+ const toArray = x => Array.isArray(x) ? x : x ? [x] : [];
4858
+
4859
+ const useLocalizedVariables = ({
4860
+ first,
4861
+ after,
4862
+ sort,
4863
+ term,
4864
+ selectedFacets
4865
+ }) => {
4866
+ const {
4867
+ channel,
4868
+ locale
4869
+ } = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
4870
+ return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
4871
+ const facets = toArray(selectedFacets);
4872
+ return {
4873
+ first: first ?? src_constants__WEBPACK_IMPORTED_MODULE_2__/* .ITEMS_PER_SECTION */ .K,
4874
+ after: after ?? '0',
4875
+ sort: sort ?? 'score_desc',
4876
+ term: term ?? '',
4877
+ selectedFacets: [...facets, {
4878
+ key: 'channel',
4879
+ value: channel ?? ''
4880
+ }, {
4881
+ key: 'locale',
4882
+ value: locale
4883
+ }]
4884
+ };
4885
+ }, [selectedFacets, first, after, sort, term, channel, locale]);
4886
+ };
4887
+
4888
+ /***/ }),
4889
+
4890
+ /***/ 9854:
4891
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4892
+
4893
+ "use strict";
4894
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4895
+ /* harmony export */ "w": () => (/* binding */ useProductLink)
4896
+ /* harmony export */ });
4897
+ /* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1072);
4898
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
4899
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4900
+ /* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7295);
4901
+
4902
+
4903
+
4904
+ const useProductLink = ({
4905
+ index,
4906
+ product,
4907
+ selectedOffer
4908
+ }) => {
4909
+ const {
4910
+ slug
4911
+ } = product;
4912
+ const {
4913
+ currency: {
4914
+ code
4915
+ }
4916
+ } = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
4917
+ const onClick = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
4918
+ (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
4919
+ name: 'select_item',
4920
+ params: {
4921
+ items: [{
4922
+ item_id: product.isVariantOf.productGroupID,
4923
+ item_name: product.isVariantOf.name,
4924
+ item_brand: product.brand.name,
4925
+ item_variant: product.sku,
4926
+ index,
4927
+ price: product.offers.offers[selectedOffer].price,
4928
+ discount: product.offers.offers[selectedOffer].listPrice - product.offers.offers[selectedOffer].price,
4929
+ currency: code,
4930
+ item_variant_name: product.name,
4931
+ product_reference_id: product.gtin
4932
+ }]
4933
+ }
4934
+ });
4935
+ (0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
4936
+ name: 'search_select_item',
4937
+ params: {
4938
+ url: window.location.href,
4939
+ items: [{
4940
+ item_id: product.isVariantOf.productGroupID,
4941
+ item_variant: product.sku,
4942
+ index
4943
+ }]
4944
+ }
4945
+ });
4946
+ }, [code, product, index, selectedOffer]);
4947
+ return {
4948
+ href: `/${slug}/p`,
4949
+ onClick,
4950
+ 'data-testid': 'product-link'
4951
+ };
4952
+ };
4953
+
4954
+ /***/ }),
4955
+
4956
+ /***/ 4867:
4957
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
4958
+
4959
+ "use strict";
4960
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
4961
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4962
+ /* harmony export */ "k": () => (/* binding */ useProductsQuery)
4963
+ /* harmony export */ });
4964
+ /* unused harmony export query */
4965
+ /* harmony import */ var _graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7732);
4966
+ /* harmony import */ var _useLocalizedVariables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2523);
4967
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__]);
4968
+ _graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
4969
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4970
+
4971
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4972
+
4973
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4974
+
4975
+
4976
+
4977
+ const query = "ClientManyProductsQuery";
4978
+ /**
4979
+ * Use this hook for fetching a list of products, like shelves and tiles
4980
+ */
4981
+
4982
+ const useProductsQuery = (variables, options) => {
4983
+ const localizedVariables = (0,_useLocalizedVariables__WEBPACK_IMPORTED_MODULE_0__/* .useLocalizedVariables */ .y)(variables);
4984
+ const {
4985
+ data
4986
+ } = (0,_graphql_useQuery__WEBPACK_IMPORTED_MODULE_1__/* .useQuery */ .aM)(query, localizedVariables, _objectSpread({
4987
+ fallbackData: null,
4988
+ suspense: true
4989
+ }, options));
4990
+ return data;
4991
+ };
4992
+ __webpack_async_result__();
4993
+ } catch(e) { __webpack_async_result__(e); } });
4994
+
4995
+ /***/ }),
4996
+
3453
4997
  /***/ 5882:
3454
4998
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3455
4999
 
@@ -3805,6 +5349,26 @@ const getPage = async options => {
3805
5349
 
3806
5350
  /***/ }),
3807
5351
 
5352
+ /***/ 3952:
5353
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5354
+
5355
+ "use strict";
5356
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5357
+ /* harmony export */ "B": () => (/* binding */ textToKebabCase)
5358
+ /* harmony export */ });
5359
+ //Input "Example Text!". Output: example-text
5360
+ function textToKebabCase(text) {
5361
+ // Replace spaces and special characters with hyphens
5362
+ let kebabCase = text.replace(/[^\w\s]/gi, '-'); // Remove whitespace
5363
+
5364
+ kebabCase = kebabCase.replace(/\s+/g, '-'); // Convert to lowercase
5365
+
5366
+ kebabCase = kebabCase.toLowerCase();
5367
+ return kebabCase ?? '';
5368
+ }
5369
+
5370
+ /***/ }),
5371
+
3808
5372
  /***/ 7651:
3809
5373
  /***/ ((module) => {
3810
5374
 
@@ -3836,6 +5400,17 @@ module.exports = {
3836
5400
  };
3837
5401
 
3838
5402
 
5403
+ /***/ }),
5404
+
5405
+ /***/ 7283:
5406
+ /***/ ((module) => {
5407
+
5408
+ // Exports
5409
+ module.exports = {
5410
+ "section": "section_section__ivuGF"
5411
+ };
5412
+
5413
+
3839
5414
  /***/ }),
3840
5415
 
3841
5416
  /***/ 5977:
@@ -3869,6 +5444,18 @@ module.exports = {
3869
5444
  };
3870
5445
 
3871
5446
 
5447
+ /***/ }),
5448
+
5449
+ /***/ 6627:
5450
+ /***/ ((module) => {
5451
+
5452
+ // Exports
5453
+ module.exports = {
5454
+ "section": "section_section__C1DoH",
5455
+ "loading": "section_loading__k5bCF"
5456
+ };
5457
+
5458
+
3872
5459
  /***/ }),
3873
5460
 
3874
5461
  /***/ 3472: