@faststore/core 2.1.18 → 2.1.19

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 (79) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +40 -36
  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/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/routes-manifest.json +1 -1
  14. package/.next/server/chunks/{205.js → 144.js} +619 -2
  15. package/.next/server/chunks/721.js +679 -0
  16. package/.next/server/chunks/74.js +54 -20
  17. package/.next/server/middleware-build-manifest.js +1 -1
  18. package/.next/server/pages/[...slug].js +298 -71
  19. package/.next/server/pages/[...slug].js.nft.json +1 -1
  20. package/.next/server/pages/[slug]/p.js +2 -2
  21. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  22. package/.next/server/pages/api/preview.js +35 -6
  23. package/.next/server/pages/en-US/404.html +2 -2
  24. package/.next/server/pages/en-US/500.html +2 -2
  25. package/.next/server/pages/en-US/account.html +2 -2
  26. package/.next/server/pages/en-US/checkout.html +2 -2
  27. package/.next/server/pages/en-US/login.html +2 -2
  28. package/.next/server/pages/en-US/s.html +2 -2
  29. package/.next/server/pages/en-US.html +2 -2
  30. package/.next/server/pages/en-US.json +1 -1
  31. package/.next/server/pages/index.js +4 -474
  32. package/.next/server/pages/index.js.nft.json +1 -1
  33. package/.next/server/pages/s.js +1 -1
  34. package/.next/server/pages-manifest.json +2 -2
  35. package/.next/static/HWyxnnh37qprVz28Rroho/_buildManifest.js +1 -0
  36. package/.next/static/chunks/706-5aea41dd07970d2d.js +1 -0
  37. package/.next/static/chunks/791-63b1ccf9964b6517.js +1 -0
  38. package/.next/static/chunks/pages/{404-6da332b2c4ef0f41.js → 404-d5f20744ecd83121.js} +1 -1
  39. package/.next/static/chunks/pages/{500-88dd73506f17946c.js → 500-3911549ab88d0378.js} +1 -1
  40. package/.next/static/chunks/pages/[...slug]-3a37fd4d13cb2ba8.js +1 -0
  41. package/.next/static/chunks/pages/[slug]/{p-93d3f1c0f2d3aed2.js → p-bf47c90571846f86.js} +1 -1
  42. package/.next/static/chunks/pages/account-d248acc931146694.js +1 -0
  43. package/.next/static/chunks/pages/checkout-97f6d6f36f041a6f.js +1 -0
  44. package/.next/static/chunks/pages/index-e9727cb06d9ae961.js +1 -0
  45. package/.next/static/chunks/pages/{login-a688a70872ea61f5.js → login-4cc4b8e52608f076.js} +1 -1
  46. package/.next/static/chunks/pages/s-aabfa5c08338974a.js +1 -0
  47. package/.next/static/chunks/{webpack-8bf035049b590d82.js → webpack-cbb5ca873d13aa82.js} +1 -1
  48. package/.next/static/css/08e3fc80f9bad95d.css +1 -0
  49. package/.next/static/css/ccbb6df6cae68586.css +1 -0
  50. package/.next/trace +80 -78
  51. package/.turbo/turbo-build.log +8 -9
  52. package/cms/faststore/content-types.json +2 -2
  53. package/package.json +2 -2
  54. package/src/components/cms/GlobalSections.tsx +2 -3
  55. package/src/components/templates/LandingPage/LandingPage.tsx +102 -0
  56. package/src/components/templates/LandingPage/index.ts +2 -0
  57. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +138 -0
  58. package/src/components/templates/ProductListingPage/index.ts +2 -0
  59. package/src/pages/[...slug].tsx +45 -130
  60. package/src/pages/api/preview.ts +18 -2
  61. package/src/pages/index.tsx +1 -3
  62. package/src/sdk/error/MissingContentError/MissingContentError.ts +15 -0
  63. package/src/sdk/error/MissingContentError/index.ts +1 -0
  64. package/src/sdk/error/MultipleContentError/MultipleContentError.ts +15 -0
  65. package/src/sdk/error/MultipleContentError/index.ts +1 -0
  66. package/src/server/cms.ts +7 -21
  67. package/.next/server/chunks/513.js +0 -257
  68. package/.next/server/chunks/90.js +0 -623
  69. package/.next/static/chunks/113-207e8eceab001eea.js +0 -1
  70. package/.next/static/chunks/791-b6747a7c7ca0967e.js +0 -1
  71. package/.next/static/chunks/pages/[...slug]-ab804df4ac6c945e.js +0 -1
  72. package/.next/static/chunks/pages/account-06126db1f6dc537e.js +0 -1
  73. package/.next/static/chunks/pages/checkout-5138b7956d64dde8.js +0 -1
  74. package/.next/static/chunks/pages/index-7ba4f6708af42d8e.js +0 -1
  75. package/.next/static/chunks/pages/s-99aad326e6aafeb7.js +0 -1
  76. package/.next/static/css/13ddbbc10e89ff0e.css +0 -1
  77. package/.next/static/css/6f33907361436e6c.css +0 -1
  78. package/.next/static/hlJfefjb0gNJqepjDW_Eh/_buildManifest.js +0 -1
  79. /package/.next/static/{hlJfefjb0gNJqepjDW_Eh → HWyxnnh37qprVz28Rroho}/_ssgManifest.js +0 -0
@@ -0,0 +1,679 @@
1
+ exports.id = 721;
2
+ exports.ids = [721];
3
+ exports.modules = {
4
+
5
+ /***/ 47537:
6
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
+
8
+ "use strict";
9
+
10
+ // EXPORTS
11
+ __webpack_require__.d(__webpack_exports__, {
12
+ "Z": () => (/* reexport */ sections_Hero_Hero)
13
+ });
14
+
15
+ // EXTERNAL MODULE: external "react"
16
+ var external_react_ = __webpack_require__(16689);
17
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
18
+ ;// CONCATENATED MODULE: ../components/dist/organisms/Hero/Hero.js
19
+
20
+ const HeroContext = (0,external_react_.createContext)(undefined);
21
+ const Hero = (0,external_react_.forwardRef)(function Hero({ children, testId = 'fs-hero', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
22
+ const context = { variant, colorVariant };
23
+ return (external_react_default().createElement(HeroContext.Provider, { value: context },
24
+ 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)));
25
+ });
26
+ function useHero() {
27
+ const context = (0,external_react_.useContext)(HeroContext);
28
+ if (context === undefined) {
29
+ throw new Error('Do not use Hero components outside the Hero context.');
30
+ }
31
+ return context;
32
+ }
33
+ /* harmony default export */ const Hero_Hero = (Hero);
34
+ //# sourceMappingURL=Hero.js.map
35
+ ;// CONCATENATED MODULE: ../components/dist/organisms/Hero/HeroImage.js
36
+
37
+ const HeroImage = (0,external_react_.forwardRef)(function HeroImage({ children, testId = 'fs-hero-image', ...otherProps }, ref) {
38
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-hero-image": true, "data-testid": testId, ...otherProps }, children));
39
+ });
40
+ /* harmony default export */ const Hero_HeroImage = (HeroImage);
41
+ //# sourceMappingURL=HeroImage.js.map
42
+ // EXTERNAL MODULE: ../components/dist/molecules/LinkButton/LinkButton.js
43
+ var LinkButton = __webpack_require__(67703);
44
+ // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
45
+ var Icon = __webpack_require__(25045);
46
+ ;// CONCATENATED MODULE: ../components/dist/organisms/Hero/HeroHeader.js
47
+
48
+
49
+
50
+ const HeroHeader = (0,external_react_.forwardRef)(function HeroHeader({ icon, link, title, linkText, subtitle, children, testId = 'fs-hero-heading', ...otherProps }, ref) {
51
+ const { variant, colorVariant } = useHero();
52
+ return (external_react_default().createElement("header", { ref: ref, "data-fs-hero-heading": true, "data-testid": testId, ...otherProps },
53
+ external_react_default().createElement("div", { "data-fs-hero-wrapper": true, "data-fs-content": "hero" },
54
+ external_react_default().createElement("div", { "data-fs-hero-info": true },
55
+ external_react_default().createElement("h1", { "data-fs-hero-title": true }, title),
56
+ external_react_default().createElement("p", { "data-fs-hero-subtitle": true }, subtitle),
57
+ !!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" }, linkText))),
58
+ !!icon && variant === 'secondary' && (external_react_default().createElement("span", { "data-fs-hero-icon": true }, icon)))));
59
+ });
60
+ /* harmony default export */ const Hero_HeroHeader = (HeroHeader);
61
+ //# sourceMappingURL=HeroHeader.js.map
62
+ ;// CONCATENATED MODULE: ./src/customizations/components/overrides/Hero.tsx
63
+ // This is an example of how it can be used on the starter.
64
+ const SECTION = 'Hero';
65
+ const overrides = {
66
+ name: SECTION,
67
+ components: {
68
+ Hero: {
69
+ props: {}
70
+ },
71
+ HeroImage: {
72
+ props: {}
73
+ },
74
+ HeroHeader: {
75
+ props: {}
76
+ }
77
+ }
78
+ };
79
+ /* harmony default export */ const overrides_Hero = (overrides);
80
+ ;// CONCATENATED MODULE: ./src/components/sections/Hero/Overrides.tsx
81
+ 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; }
82
+
83
+ 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; }
84
+
85
+ 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; }
86
+
87
+
88
+
89
+ const heroComponentsCustomization = {};
90
+ const heroPropsCustomization = {};
91
+ Object.entries(overrides_Hero.components).forEach(([key, value]) => {
92
+ if (value.Component) {
93
+ heroComponentsCustomization[key] = value.Component;
94
+ }
95
+ });
96
+ Object.entries(overrides_Hero.components).forEach(([key, value]) => {
97
+ if (value.props) {
98
+ heroPropsCustomization[key] = value.props;
99
+ }
100
+ });
101
+
102
+ const Components = _objectSpread({
103
+ Hero: Hero_Hero,
104
+ HeroImage: Hero_HeroImage,
105
+ HeroHeader: Hero_HeroHeader
106
+ }, heroComponentsCustomization);
107
+
108
+
109
+ // EXTERNAL MODULE: ./src/components/ui/Image/index.ts + 2 modules
110
+ var Image = __webpack_require__(79266);
111
+ // EXTERNAL MODULE: ./src/components/sections/Section/index.ts
112
+ var Section = __webpack_require__(57067);
113
+ // EXTERNAL MODULE: ./src/components/sections/Hero/section.module.scss
114
+ var section_module = __webpack_require__(6717);
115
+ var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
116
+ // EXTERNAL MODULE: external "react/jsx-runtime"
117
+ var jsx_runtime_ = __webpack_require__(20997);
118
+ ;// CONCATENATED MODULE: ./src/components/sections/Hero/Hero.tsx
119
+ 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; }
120
+
121
+ 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; }
122
+
123
+ 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; }
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+ const {
132
+ Hero: HeroWrapper,
133
+ HeroImage: Hero_Hero_HeroImage,
134
+ HeroHeader: Hero_Hero_HeroHeader
135
+ } = Components;
136
+
137
+ const Hero_Hero_Hero = ({
138
+ link,
139
+ title,
140
+ subtitle,
141
+ image,
142
+ variant = heroPropsCustomization.Hero.variant ?? 'primary',
143
+ colorVariant = heroPropsCustomization.Hero.colorVariant ?? 'main',
144
+ icon
145
+ }) => {
146
+ return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
147
+ className: `${(section_module_default()).section} section-hero`,
148
+ children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(HeroWrapper, Hero_objectSpread(Hero_objectSpread({}, heroPropsCustomization.Hero), {}, {
149
+ variant: variant,
150
+ colorVariant: colorVariant,
151
+ children: [/*#__PURE__*/jsx_runtime_.jsx(Hero_Hero_HeroImage, Hero_objectSpread(Hero_objectSpread({}, heroPropsCustomization.HeroImage), {}, {
152
+ children: /*#__PURE__*/jsx_runtime_.jsx(Image/* Image */.E, {
153
+ loading: "eager",
154
+ src: image.src,
155
+ alt: image.alt,
156
+ width: 360,
157
+ height: 240,
158
+ sizes: "(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw"
159
+ })
160
+ })), /*#__PURE__*/jsx_runtime_.jsx(Hero_Hero_HeroHeader, Hero_objectSpread({
161
+ title: title,
162
+ subtitle: subtitle,
163
+ link: link?.url,
164
+ linkText: link?.text,
165
+ icon: icon
166
+ }, heroPropsCustomization.HeroHeader))]
167
+ }))
168
+ });
169
+ };
170
+
171
+ /* harmony default export */ const sections_Hero_Hero = (Hero_Hero_Hero);
172
+ ;// CONCATENATED MODULE: ./src/components/sections/Hero/index.ts
173
+
174
+
175
+ /***/ }),
176
+
177
+ /***/ 78591:
178
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
179
+
180
+ "use strict";
181
+
182
+ // EXPORTS
183
+ __webpack_require__.d(__webpack_exports__, {
184
+ "Z": () => (/* reexport */ sections_Incentives_Incentives)
185
+ });
186
+
187
+ // EXTERNAL MODULE: ./src/components/ui/Incentives/Incentives.tsx + 1 modules
188
+ var Incentives = __webpack_require__(73477);
189
+ // EXTERNAL MODULE: ./src/components/sections/Section/index.ts
190
+ var Section = __webpack_require__(57067);
191
+ // EXTERNAL MODULE: ./src/components/sections/Incentives/section.module.scss
192
+ var section_module = __webpack_require__(57952);
193
+ var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
194
+ // EXTERNAL MODULE: external "react/jsx-runtime"
195
+ var jsx_runtime_ = __webpack_require__(20997);
196
+ ;// CONCATENATED MODULE: ./src/components/sections/Incentives/Incentives.tsx
197
+
198
+
199
+
200
+
201
+
202
+ function Incentives_Incentives({
203
+ incentives
204
+ }) {
205
+ return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
206
+ className: `${(section_module_default()).section} section-incentives layout__section`,
207
+ children: /*#__PURE__*/jsx_runtime_.jsx(Incentives/* default */.Z, {
208
+ incentives: incentives,
209
+ colored: true
210
+ })
211
+ });
212
+ }
213
+
214
+ /* harmony default export */ const sections_Incentives_Incentives = (Incentives_Incentives);
215
+ ;// CONCATENATED MODULE: ./src/components/sections/Incentives/index.ts
216
+
217
+
218
+ /***/ }),
219
+
220
+ /***/ 58569:
221
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
222
+
223
+ "use strict";
224
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
225
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
226
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
227
+ /* harmony export */ });
228
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19785);
229
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
230
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57067);
231
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56627);
232
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_4__);
233
+ /* harmony import */ var src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34805);
234
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20997);
235
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__);
236
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_2__]);
237
+ src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
238
+ 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; }
239
+
240
+ 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; }
241
+
242
+ 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; }
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ function ProductShelfSection(_ref) {
251
+ let otherProps = Object.assign({}, _ref);
252
+ const {
253
+ ref,
254
+ inView
255
+ } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_0__.useInView)();
256
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx(_Section__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
257
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_4___default().section)} section-product-shelf layout__section`,
258
+ ref: ref,
259
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx(src_components_ui_ProductShelf__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, _objectSpread({
260
+ inView: inView
261
+ }, otherProps))
262
+ });
263
+ }
264
+
265
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductShelfSection);
266
+ __webpack_async_result__();
267
+ } catch(e) { __webpack_async_result__(e); } });
268
+
269
+ /***/ }),
270
+
271
+ /***/ 77104:
272
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
273
+
274
+ "use strict";
275
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
276
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
277
+ /* harmony export */ "Z": () => (/* reexport safe */ _ProductShelf__WEBPACK_IMPORTED_MODULE_0__.Z)
278
+ /* harmony export */ });
279
+ /* harmony import */ var _ProductShelf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58569);
280
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ProductShelf__WEBPACK_IMPORTED_MODULE_0__]);
281
+ _ProductShelf__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
282
+
283
+ __webpack_async_result__();
284
+ } catch(e) { __webpack_async_result__(e); } });
285
+
286
+ /***/ }),
287
+
288
+ /***/ 12834:
289
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
290
+
291
+ "use strict";
292
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
293
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
294
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
295
+ /* harmony export */ });
296
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
297
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
298
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19785);
299
+ /* harmony import */ var react_intersection_observer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__);
300
+ /* harmony import */ var src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56475);
301
+ /* harmony import */ var src_components_skeletons_ProductTilesSkeleton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40638);
302
+ /* harmony import */ var src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65534);
303
+ /* harmony import */ var src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55184);
304
+ /* harmony import */ var src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24867);
305
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(57067);
306
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(82366);
307
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_9__);
308
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(20997);
309
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__);
310
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_6__]);
311
+ src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_6__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
312
+ const _excluded = ["title"];
313
+
314
+ 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; }
315
+
316
+ 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; }
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+ const NUMBER_ITEMS_TO_EXPAND_FIRST = 3;
330
+ const NUMBER_ITEMS_TO_EXPAND_FIRST_TWO = 2;
331
+
332
+ const getRatio = (products, idx) => {
333
+ const expandsFirstTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST && idx === 0;
334
+ const expandsFirstTwoTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO && (idx === 0 || idx === 1);
335
+
336
+ if (expandsFirstTile || expandsFirstTwoTile) {
337
+ return 5 / 3;
338
+ }
339
+
340
+ return 3 / 4;
341
+ };
342
+
343
+ const getSizes = (products, idx) => {
344
+ const expandsFirstTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST && idx === 0;
345
+ const expandsFirstTwoTile = products === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO && (idx === 0 || idx === 1);
346
+
347
+ if (expandsFirstTile || expandsFirstTwoTile) {
348
+ return {
349
+ width: 594,
350
+ height: 364
351
+ };
352
+ }
353
+
354
+ return {
355
+ width: 284,
356
+ height: 364
357
+ };
358
+ };
359
+
360
+ const ProductTiles = _ref => {
361
+ let {
362
+ title
363
+ } = _ref,
364
+ variables = _objectWithoutProperties(_ref, _excluded);
365
+
366
+ const viewedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
367
+ const {
368
+ ref,
369
+ inView
370
+ } = (0,react_intersection_observer__WEBPACK_IMPORTED_MODULE_1__.useInView)();
371
+ const products = (0,src_sdk_product_useProductsQuery__WEBPACK_IMPORTED_MODULE_6__/* .useProductsQuery */ .kN)(variables);
372
+ const productEdges = products?.edges ?? [];
373
+ const {
374
+ sendViewItemListEvent
375
+ } = (0,src_sdk_analytics_hooks_useViewItemListEvent__WEBPACK_IMPORTED_MODULE_5__/* .useViewItemListEvent */ .m)({
376
+ products: productEdges,
377
+ title,
378
+ page: 0,
379
+ pageSize: 0
380
+ });
381
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
382
+ if (inView && !viewedOnce.current && productEdges.length) {
383
+ sendViewItemListEvent();
384
+ viewedOnce.current = true;
385
+ }
386
+ }, [inView, productEdges.length, sendViewItemListEvent]);
387
+
388
+ if (products?.edges.length === 0) {
389
+ return null;
390
+ }
391
+
392
+ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_Section__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
393
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_9___default().section)} section-product-tiles layout__section`,
394
+ ref: ref,
395
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx("h2", {
396
+ className: "text__title-section layout__content",
397
+ children: title
398
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx(src_components_skeletons_ProductTilesSkeleton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, {
399
+ loading: !products,
400
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx(src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
401
+ children: productEdges.map((product, idx) => /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx(src_components_ui_Tiles__WEBPACK_IMPORTED_MODULE_4__/* .Tile */ .n, {
402
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx(src_components_product_ProductCard__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, {
403
+ "data-testid": "tile-card",
404
+ product: product.node,
405
+ index: idx + 1,
406
+ variant: "wide",
407
+ aspectRatio: getRatio(productEdges.length, idx),
408
+ imgProps: getSizes(productEdges.length, idx)
409
+ })
410
+ }, product.node.id))
411
+ })
412
+ })]
413
+ });
414
+ };
415
+
416
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProductTiles);
417
+ __webpack_async_result__();
418
+ } catch(e) { __webpack_async_result__(e); } });
419
+
420
+ /***/ }),
421
+
422
+ /***/ 68872:
423
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
424
+
425
+ "use strict";
426
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
427
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
428
+ /* harmony export */ "Z": () => (/* reexport safe */ _ProductTiles__WEBPACK_IMPORTED_MODULE_0__.Z)
429
+ /* harmony export */ });
430
+ /* harmony import */ var _ProductTiles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12834);
431
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ProductTiles__WEBPACK_IMPORTED_MODULE_0__]);
432
+ _ProductTiles__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
433
+
434
+ __webpack_async_result__();
435
+ } catch(e) { __webpack_async_result__(e); } });
436
+
437
+ /***/ }),
438
+
439
+ /***/ 40638:
440
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
441
+
442
+ "use strict";
443
+
444
+ // EXPORTS
445
+ __webpack_require__.d(__webpack_exports__, {
446
+ "s": () => (/* reexport */ ProductTileSkeleton_ProductTileSkeleton),
447
+ "Z": () => (/* reexport */ ProductTilesSkeleton_ProductTilesSkeleton)
448
+ });
449
+
450
+ // EXTERNAL MODULE: ./src/components/ui/Tiles/index.ts + 3 modules
451
+ var Tiles = __webpack_require__(65534);
452
+ // EXTERNAL MODULE: external "react/jsx-runtime"
453
+ var jsx_runtime_ = __webpack_require__(20997);
454
+ ;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/ProductTilesSkeleton.tsx
455
+
456
+ // TODO: // Replace it when items number become dynamically defined
457
+
458
+
459
+
460
+ const DEFAULT_ITEMS_NUMBER = 3;
461
+ const DEFAULT_ITEMS_NUMBER_TWO = 2;
462
+
463
+ const getRatio = (products, idx) => {
464
+ const expandsFirstTile = products === DEFAULT_ITEMS_NUMBER && idx === 0;
465
+ const expandsFirstTwoTile = products === DEFAULT_ITEMS_NUMBER_TWO && (idx === 0 || idx === 1);
466
+
467
+ if (expandsFirstTile || expandsFirstTwoTile) {
468
+ return 5 / 3;
469
+ }
470
+
471
+ return 3 / 4;
472
+ };
473
+
474
+ function ProductTilesSkeleton({
475
+ children,
476
+ loading = true
477
+ }) {
478
+ return loading ? /*#__PURE__*/jsx_runtime_.jsx(Tiles/* default */.Z, {
479
+ children: Array.from({
480
+ length: DEFAULT_ITEMS_NUMBER
481
+ }, (_, index) => /*#__PURE__*/jsx_runtime_.jsx(Tiles/* Tile */.n, {
482
+ children: /*#__PURE__*/jsx_runtime_.jsx(ProductTileSkeleton_ProductTileSkeleton, {
483
+ index: index + 1,
484
+ aspectRatio: getRatio(DEFAULT_ITEMS_NUMBER, index)
485
+ })
486
+ }, String(index)))
487
+ }) : /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
488
+ children: children
489
+ });
490
+ }
491
+
492
+ /* harmony default export */ const ProductTilesSkeleton_ProductTilesSkeleton = (ProductTilesSkeleton);
493
+ // EXTERNAL MODULE: ../components/dist/atoms/Skeleton/Skeleton.js
494
+ var Skeleton = __webpack_require__(2928);
495
+ ;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/ProductTileSkeleton.tsx
496
+
497
+
498
+
499
+
500
+ function ProductTileSkeleton({
501
+ index,
502
+ aspectRatio = 1
503
+ }) {
504
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
505
+ "data-fs-product-tile-skeleton": true,
506
+ "data-fs-product-tile-skeleton-index": index,
507
+ children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
508
+ "data-fs-product-tile-skeleton-image": true,
509
+ "data-fs-product-tile-skeleton-index": index,
510
+ style: {
511
+ '--fs-product-tile-skeleton-image-aspect-ratio': aspectRatio
512
+ },
513
+ children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
514
+ size: {
515
+ width: 'auto',
516
+ height: '100%'
517
+ },
518
+ loading: true
519
+ })
520
+ }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
521
+ "data-fs-product-tile-skeleton-content": true,
522
+ "data-fs-product-tile-skeleton-index": index,
523
+ children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
524
+ "data-fs-product-tile-skeleton-heading": true,
525
+ children: [/*#__PURE__*/jsx_runtime_.jsx("div", {
526
+ "data-fs-product-tile-skeleton-text": true,
527
+ "data-fs-product-tile-skeleton-index": index,
528
+ children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
529
+ size: {
530
+ width: '70%',
531
+ height: '1.5rem'
532
+ }
533
+ })
534
+ }), /*#__PURE__*/jsx_runtime_.jsx("div", {
535
+ "data-fs-product-tile-skeleton-price": true,
536
+ children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
537
+ size: {
538
+ width: '60%',
539
+ height: '1.5rem'
540
+ }
541
+ })
542
+ })]
543
+ }), /*#__PURE__*/jsx_runtime_.jsx("div", {
544
+ "data-fs-product-tile-skeleton-badge": true,
545
+ "data-fs-product-tile-skeleton-index": index,
546
+ children: /*#__PURE__*/jsx_runtime_.jsx(Skeleton/* default */.Z, {
547
+ size: {
548
+ width: '6rem',
549
+ height: '2rem'
550
+ },
551
+ border: "pill"
552
+ })
553
+ })]
554
+ })]
555
+ });
556
+ }
557
+
558
+ /* harmony default export */ const ProductTileSkeleton_ProductTileSkeleton = (ProductTileSkeleton);
559
+ ;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/index.ts
560
+
561
+ ;// CONCATENATED MODULE: ./src/components/skeletons/ProductTilesSkeleton/index.ts
562
+
563
+
564
+
565
+ /***/ }),
566
+
567
+ /***/ 65534:
568
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
569
+
570
+ "use strict";
571
+
572
+ // EXPORTS
573
+ __webpack_require__.d(__webpack_exports__, {
574
+ "n": () => (/* reexport */ Tiles_Tile),
575
+ "Z": () => (/* reexport */ ui_Tiles_Tiles)
576
+ });
577
+
578
+ // EXTERNAL MODULE: external "react"
579
+ var external_react_ = __webpack_require__(16689);
580
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
581
+ ;// CONCATENATED MODULE: ../ui/dist/components/organisms/Tiles/Tiles.js
582
+
583
+
584
+ const MIN_CHILDREN = 2;
585
+ const MAX_CHILDREN = 4;
586
+ const NUMBER_ITEMS_TO_EXPAND_FIRST_TWO = 2;
587
+ const NUMBER_ITEMS_TO_EXPAND_FIRST = 3;
588
+ const Tiles = (0,external_react_.forwardRef)(function Tiles({ testId = 'store-tiles', children, ...otherProps }, ref) {
589
+ const childrenCount = external_react_.Children.count(children);
590
+ if (false) {}
591
+ if (false) {}
592
+ const expandedClass = childrenCount === NUMBER_ITEMS_TO_EXPAND_FIRST
593
+ ? 'expanded-first'
594
+ : childrenCount === NUMBER_ITEMS_TO_EXPAND_FIRST_TWO
595
+ ? 'expanded-first-two'
596
+ : '';
597
+ return (external_react_default().createElement("ul", { ref: ref, role: "list", "data-fs-tiles": true, "data-fs-tiles-variant": expandedClass, "data-fs-content": "tiles", "data-testid": testId, ...otherProps }, children));
598
+ });
599
+ /* harmony default export */ const Tiles_Tiles = (Tiles);
600
+ //# sourceMappingURL=Tiles.js.map
601
+ // EXTERNAL MODULE: external "react/jsx-runtime"
602
+ var jsx_runtime_ = __webpack_require__(20997);
603
+ ;// CONCATENATED MODULE: ./src/components/ui/Tiles/Tiles.tsx
604
+ const _excluded = ["children"];
605
+
606
+ 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; }
607
+
608
+ 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; }
609
+
610
+ 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; }
611
+
612
+ 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; }
613
+
614
+ 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; }
615
+
616
+
617
+
618
+
619
+ const Tiles_Tiles_Tiles = _ref => {
620
+ let {
621
+ children
622
+ } = _ref,
623
+ otherProps = _objectWithoutProperties(_ref, _excluded);
624
+
625
+ return /*#__PURE__*/jsx_runtime_.jsx(Tiles_Tiles, _objectSpread(_objectSpread({}, otherProps), {}, {
626
+ children: children
627
+ }));
628
+ };
629
+
630
+ /* harmony default export */ const ui_Tiles_Tiles = (Tiles_Tiles_Tiles);
631
+ ;// CONCATENATED MODULE: ../ui/dist/components/organisms/Tiles/Tile.js
632
+
633
+ const Tile = (0,external_react_.forwardRef)(function Tile({ testId = 'store-tile', children, ...otherProps }, ref) {
634
+ return (external_react_default().createElement("li", { ref: ref, role: "listitem", "data-fs-tile": true, "data-testid": testId, ...otherProps }, children));
635
+ });
636
+ /* harmony default export */ const Tiles_Tile = (Tile);
637
+ //# sourceMappingURL=Tile.js.map
638
+ ;// CONCATENATED MODULE: ./src/components/ui/Tiles/index.ts
639
+
640
+
641
+
642
+ /***/ }),
643
+
644
+ /***/ 6717:
645
+ /***/ ((module) => {
646
+
647
+ // Exports
648
+ module.exports = {
649
+ "section": "section_section__WY2pp"
650
+ };
651
+
652
+
653
+ /***/ }),
654
+
655
+ /***/ 57952:
656
+ /***/ ((module) => {
657
+
658
+ // Exports
659
+ module.exports = {
660
+ "section": "section_section__rUfAR"
661
+ };
662
+
663
+
664
+ /***/ }),
665
+
666
+ /***/ 82366:
667
+ /***/ ((module) => {
668
+
669
+ // Exports
670
+ module.exports = {
671
+ "section": "section_section__hGuvG",
672
+ "loading": "section_loading__GpWrl"
673
+ };
674
+
675
+
676
+ /***/ })
677
+
678
+ };
679
+ ;