@faststore/core 2.1.18 → 2.1.22

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 (90) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +49 -45
  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/404.js.nft.json +1 -1
  19. package/.next/server/pages/500.js.nft.json +1 -1
  20. package/.next/server/pages/[...slug].js +298 -71
  21. package/.next/server/pages/[...slug].js.nft.json +1 -1
  22. package/.next/server/pages/[slug]/p.js +2 -2
  23. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  24. package/.next/server/pages/_app.js.nft.json +1 -1
  25. package/.next/server/pages/_document.js +5 -1
  26. package/.next/server/pages/_error.js.nft.json +1 -1
  27. package/.next/server/pages/account.js.nft.json +1 -1
  28. package/.next/server/pages/api/preview.js +35 -6
  29. package/.next/server/pages/checkout.js.nft.json +1 -1
  30. package/.next/server/pages/en-US/404.html +3 -3
  31. package/.next/server/pages/en-US/500.html +3 -3
  32. package/.next/server/pages/en-US/account.html +3 -3
  33. package/.next/server/pages/en-US/checkout.html +3 -3
  34. package/.next/server/pages/en-US/login.html +3 -3
  35. package/.next/server/pages/en-US/s.html +3 -3
  36. package/.next/server/pages/en-US.html +3 -3
  37. package/.next/server/pages/en-US.json +1 -1
  38. package/.next/server/pages/index.js +4 -474
  39. package/.next/server/pages/index.js.nft.json +1 -1
  40. package/.next/server/pages/login.js.nft.json +1 -1
  41. package/.next/server/pages/s.js +1 -1
  42. package/.next/server/pages/s.js.nft.json +1 -1
  43. package/.next/server/pages-manifest.json +4 -4
  44. package/.next/static/JOMe5dtqNwu-zmVu2HIcF/_buildManifest.js +1 -0
  45. package/.next/static/chunks/548-6b23e7ad82cd22b9.js +1 -0
  46. package/.next/static/chunks/706-8049971f9e5f6ad2.js +1 -0
  47. package/.next/static/chunks/{738-67a288ca3569cdbb.js → 738-a5ff304828f20cbf.js} +1 -1
  48. package/.next/static/chunks/791-c23aa4269c7955c8.js +1 -0
  49. package/.next/static/chunks/pages/{404-6da332b2c4ef0f41.js → 404-d5f20744ecd83121.js} +1 -1
  50. package/.next/static/chunks/pages/{500-88dd73506f17946c.js → 500-3911549ab88d0378.js} +1 -1
  51. package/.next/static/chunks/pages/[...slug]-3a37fd4d13cb2ba8.js +1 -0
  52. package/.next/static/chunks/pages/[slug]/{p-93d3f1c0f2d3aed2.js → p-bf47c90571846f86.js} +1 -1
  53. package/.next/static/chunks/pages/account-d248acc931146694.js +1 -0
  54. package/.next/static/chunks/pages/checkout-97f6d6f36f041a6f.js +1 -0
  55. package/.next/static/chunks/pages/index-e9727cb06d9ae961.js +1 -0
  56. package/.next/static/chunks/pages/{login-a688a70872ea61f5.js → login-4cc4b8e52608f076.js} +1 -1
  57. package/.next/static/chunks/pages/s-aabfa5c08338974a.js +1 -0
  58. package/.next/static/chunks/{webpack-8bf035049b590d82.js → webpack-764ce5753552a617.js} +1 -1
  59. package/.next/static/css/08e3fc80f9bad95d.css +1 -0
  60. package/.next/trace +80 -78
  61. package/.turbo/turbo-build.log +7 -8
  62. package/cms/faststore/content-types.json +2 -2
  63. package/package.json +2 -2
  64. package/src/components/ThirdPartyScripts/vtex.tsx +6 -0
  65. package/src/components/cms/GlobalSections.tsx +2 -3
  66. package/src/components/templates/LandingPage/LandingPage.tsx +102 -0
  67. package/src/components/templates/LandingPage/index.ts +2 -0
  68. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +138 -0
  69. package/src/components/templates/ProductListingPage/index.ts +2 -0
  70. package/src/pages/[...slug].tsx +45 -130
  71. package/src/pages/api/preview.ts +18 -2
  72. package/src/pages/index.tsx +1 -3
  73. package/src/sdk/error/MissingContentError/MissingContentError.ts +15 -0
  74. package/src/sdk/error/MissingContentError/index.ts +1 -0
  75. package/src/sdk/error/MultipleContentError/MultipleContentError.ts +15 -0
  76. package/src/sdk/error/MultipleContentError/index.ts +1 -0
  77. package/src/server/cms.ts +7 -21
  78. package/.next/server/chunks/513.js +0 -257
  79. package/.next/server/chunks/90.js +0 -623
  80. package/.next/static/chunks/113-207e8eceab001eea.js +0 -1
  81. package/.next/static/chunks/548-ab84e9e8b49413ab.js +0 -1
  82. package/.next/static/chunks/791-b6747a7c7ca0967e.js +0 -1
  83. package/.next/static/chunks/pages/[...slug]-ab804df4ac6c945e.js +0 -1
  84. package/.next/static/chunks/pages/account-06126db1f6dc537e.js +0 -1
  85. package/.next/static/chunks/pages/checkout-5138b7956d64dde8.js +0 -1
  86. package/.next/static/chunks/pages/index-7ba4f6708af42d8e.js +0 -1
  87. package/.next/static/chunks/pages/s-99aad326e6aafeb7.js +0 -1
  88. package/.next/static/css/13ddbbc10e89ff0e.css +0 -1
  89. package/.next/static/hlJfefjb0gNJqepjDW_Eh/_buildManifest.js +0 -1
  90. /package/.next/static/{hlJfefjb0gNJqepjDW_Eh → JOMe5dtqNwu-zmVu2HIcF}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- exports.id = 205;
2
- exports.ids = [205];
1
+ exports.id = 144;
2
+ exports.ids = [144];
3
3
  exports.modules = {
4
4
 
5
5
  /***/ 94285:
@@ -20,6 +20,318 @@ const ProductShelf = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function
20
20
 
21
21
  /***/ }),
22
22
 
23
+ /***/ 80023:
24
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25
+
26
+ "use strict";
27
+
28
+ // EXPORTS
29
+ __webpack_require__.d(__webpack_exports__, {
30
+ "Z": () => (/* reexport */ sections_BannerText_BannerText)
31
+ });
32
+
33
+ // EXTERNAL MODULE: external "react"
34
+ var external_react_ = __webpack_require__(16689);
35
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
36
+ ;// CONCATENATED MODULE: ../components/dist/organisms/Banner/Banner.js
37
+
38
+ const BannerContext = (0,external_react_.createContext)(undefined);
39
+ const Banner = (0,external_react_.forwardRef)(function Banner({ children, testId = 'fs-banner', variant = 'primary', colorVariant = 'main', ...otherProps }, ref) {
40
+ const context = { variant, colorVariant };
41
+ return (external_react_default().createElement(BannerContext.Provider, { value: context },
42
+ external_react_default().createElement("article", { ref: ref, "data-fs-banner": true, "data-fs-banner-variant": variant, "data-fs-banner-color-variant": colorVariant, "data-testid": testId, ...otherProps }, children)));
43
+ });
44
+ function useBanner() {
45
+ const context = (0,external_react_.useContext)(BannerContext);
46
+ if (context === undefined) {
47
+ throw new Error('Do not use Banner components outside the Banner context.');
48
+ }
49
+ return context;
50
+ }
51
+ /* harmony default export */ const Banner_Banner = (Banner);
52
+ //# sourceMappingURL=Banner.js.map
53
+ // EXTERNAL MODULE: ../components/dist/molecules/LinkButton/LinkButton.js
54
+ var LinkButton = __webpack_require__(67703);
55
+ ;// CONCATENATED MODULE: ../components/dist/organisms/Banner/BannerContent.js
56
+
57
+
58
+
59
+ const BannerContent = (0,external_react_.forwardRef)(function BannerContent({ testId = 'fs-banner-content', title, caption, link, linkText, ...otherProps }, ref) {
60
+ const { variant, colorVariant } = useBanner();
61
+ return (external_react_default().createElement("header", { ref: ref, "data-fs-banner-content": true, "data-fs-content": "banner-text", "data-testid": testId, ...otherProps },
62
+ external_react_default().createElement("div", { "data-fs-banner-heading": true, "data-fs-banner-color-variant": colorVariant },
63
+ external_react_default().createElement("h2", null, title),
64
+ variant === 'secondary' && caption && external_react_default().createElement("p", null, caption)),
65
+ external_react_default().createElement(LinkButton/* default */.Z, { "data-fs-banner-link": true, href: link, variant: variant, inverse: colorVariant === 'main', "aria-label": linkText }, linkText)));
66
+ });
67
+ /* harmony default export */ const Banner_BannerContent = (BannerContent);
68
+ //# sourceMappingURL=BannerContent.js.map
69
+ ;// CONCATENATED MODULE: ./src/customizations/components/overrides/BannerText.tsx
70
+ // This is an example of how it can be used on the starter.
71
+ const SECTION = 'BannerText';
72
+ const overrides = {
73
+ name: SECTION,
74
+ components: {
75
+ Banner: {
76
+ props: {}
77
+ },
78
+ BannerContent: {
79
+ props: {}
80
+ }
81
+ }
82
+ };
83
+ /* harmony default export */ const BannerText = (overrides);
84
+ ;// CONCATENATED MODULE: ./src/components/sections/BannerText/Overrides.tsx
85
+ 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; }
86
+
87
+ 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; }
88
+
89
+ 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; }
90
+
91
+
92
+
93
+ const bannerTextComponentsCustomization = {};
94
+ const bannerTextPropsCustomization = {};
95
+ Object.entries(BannerText.components).forEach(([key, value]) => {
96
+ if (value.Component) {
97
+ bannerTextComponentsCustomization[key] = value.Component;
98
+ }
99
+ });
100
+ Object.entries(BannerText.components).forEach(([key, value]) => {
101
+ if (value.props) {
102
+ bannerTextPropsCustomization[key] = value.props;
103
+ }
104
+ });
105
+
106
+ const Components = _objectSpread({
107
+ Banner: Banner_Banner,
108
+ BannerContent: Banner_BannerContent
109
+ }, bannerTextComponentsCustomization);
110
+
111
+
112
+ // EXTERNAL MODULE: ./src/components/sections/Section/index.ts
113
+ var Section = __webpack_require__(57067);
114
+ // EXTERNAL MODULE: ./src/components/sections/BannerText/section.module.scss
115
+ var section_module = __webpack_require__(37283);
116
+ var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
117
+ // EXTERNAL MODULE: external "react/jsx-runtime"
118
+ var jsx_runtime_ = __webpack_require__(20997);
119
+ ;// CONCATENATED MODULE: ./src/components/sections/BannerText/BannerText.tsx
120
+ function BannerText_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; }
121
+
122
+ function BannerText_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? BannerText_ownKeys(Object(source), !0).forEach(function (key) { BannerText_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : BannerText_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
123
+
124
+ function BannerText_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; }
125
+
126
+
127
+
128
+
129
+
130
+ const {
131
+ Banner: BannerText_Banner,
132
+ BannerContent: BannerText_BannerContent
133
+ } = Components; // TODO: Change actionPath and actionLabel with Link
134
+
135
+ function BannerText_BannerText({
136
+ title,
137
+ caption,
138
+ link: {
139
+ url: linkUrl = bannerTextPropsCustomization.BannerContent.link,
140
+ text: linkText = bannerTextPropsCustomization.BannerContent.linkText
141
+ },
142
+ variant = bannerTextPropsCustomization.Banner.variant ?? 'primary',
143
+ colorVariant = bannerTextPropsCustomization.Banner.colorVariant ?? 'main'
144
+ }) {
145
+ return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
146
+ className: `${(section_module_default()).section} section-banner layout__section`,
147
+ children: /*#__PURE__*/jsx_runtime_.jsx(BannerText_Banner, BannerText_objectSpread(BannerText_objectSpread({}, bannerTextPropsCustomization.Banner), {}, {
148
+ variant: variant,
149
+ colorVariant: colorVariant,
150
+ children: /*#__PURE__*/jsx_runtime_.jsx(BannerText_BannerContent, BannerText_objectSpread(BannerText_objectSpread({}, bannerTextPropsCustomization.BannerContent), {}, {
151
+ title: title,
152
+ caption: caption,
153
+ link: linkUrl,
154
+ linkText: linkText
155
+ }))
156
+ }))
157
+ });
158
+ }
159
+
160
+ /* harmony default export */ const sections_BannerText_BannerText = (BannerText_BannerText);
161
+ ;// CONCATENATED MODULE: ./src/components/sections/BannerText/index.ts
162
+
163
+
164
+ /***/ }),
165
+
166
+ /***/ 68170:
167
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
168
+
169
+ "use strict";
170
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
171
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
172
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
173
+ /* harmony export */ });
174
+ /* harmony import */ var src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24798);
175
+ /* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57067);
176
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37781);
177
+ /* harmony import */ var _section_module_scss__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_section_module_scss__WEBPACK_IMPORTED_MODULE_3__);
178
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20997);
179
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__);
180
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
181
+ src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
182
+ const _excluded = ["icon", "title", "description", "privacyPolicy", "emailInputLabel", "displayNameInput", "nameInputLabel", "subscribeButtonLabel", "card", "toastSubscribe", "toastSubscribeError"];
183
+
184
+ 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; }
185
+
186
+ 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; }
187
+
188
+ 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; }
189
+
190
+ 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; }
191
+
192
+ 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; }
193
+
194
+
195
+
196
+
197
+
198
+
199
+ const Newsletter = function Newsletter(_ref) {
200
+ let {
201
+ icon,
202
+ title,
203
+ description,
204
+ privacyPolicy,
205
+ emailInputLabel,
206
+ displayNameInput,
207
+ nameInputLabel,
208
+ subscribeButtonLabel,
209
+ card,
210
+ toastSubscribe,
211
+ toastSubscribeError
212
+ } = _ref,
213
+ otherProps = _objectWithoutProperties(_ref, _excluded);
214
+
215
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(_Section__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, {
216
+ className: `${(_section_module_scss__WEBPACK_IMPORTED_MODULE_3___default().section)} section-newsletter`,
217
+ children: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx(src_components_ui_Newsletter__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z, _objectSpread({
218
+ icon: icon,
219
+ title: title,
220
+ description: description,
221
+ privacyPolicy: privacyPolicy,
222
+ emailInputLabel: emailInputLabel,
223
+ displayNameInput: displayNameInput,
224
+ nameInputLabel: nameInputLabel,
225
+ subscribeButtonLabel: subscribeButtonLabel,
226
+ toastSubscribe: toastSubscribe,
227
+ toastSubscribeError: toastSubscribeError,
228
+ card: card
229
+ }, otherProps))
230
+ });
231
+ };
232
+
233
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Newsletter);
234
+ __webpack_async_result__();
235
+ } catch(e) { __webpack_async_result__(e); } });
236
+
237
+ /***/ }),
238
+
239
+ /***/ 97678:
240
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
241
+
242
+ "use strict";
243
+
244
+ // EXPORTS
245
+ __webpack_require__.d(__webpack_exports__, {
246
+ "z": () => (/* binding */ Components),
247
+ "x": () => (/* binding */ newsletterPropsCustomization)
248
+ });
249
+
250
+ // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
251
+ var Icon = __webpack_require__(25045);
252
+ // EXTERNAL MODULE: ../components/dist/molecules/InputField/InputField.js
253
+ var InputField = __webpack_require__(28287);
254
+ // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js
255
+ var Button = __webpack_require__(57578);
256
+ ;// CONCATENATED MODULE: ./src/customizations/components/overrides/Newsletter.tsx
257
+ // This is an example of how it can be used on the starter.
258
+ const SECTION = 'Newsletter';
259
+ const overrides = {
260
+ name: SECTION,
261
+ components: {
262
+ ToastIconSuccess: {
263
+ props: {}
264
+ },
265
+ ToastIconError: {
266
+ props: {}
267
+ },
268
+ HeaderIcon: {
269
+ props: {}
270
+ },
271
+ InputFieldName: {
272
+ props: {}
273
+ },
274
+ InputFieldEmail: {
275
+ props: {}
276
+ },
277
+ Button: {
278
+ props: {}
279
+ }
280
+ }
281
+ };
282
+ /* harmony default export */ const Newsletter = (overrides);
283
+ ;// CONCATENATED MODULE: ./src/components/sections/Newsletter/Overrides.tsx
284
+ 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; }
285
+
286
+ 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; }
287
+
288
+ 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; }
289
+
290
+
291
+
292
+ const newsletterComponentsCustomization = {};
293
+ const newsletterPropsCustomization = {};
294
+ Object.entries(Newsletter.components).forEach(([key, value]) => {
295
+ if (value.Component) {
296
+ newsletterComponentsCustomization[key] = value.Component;
297
+ }
298
+ });
299
+ Object.entries(Newsletter.components).forEach(([key, value]) => {
300
+ if (value.props) {
301
+ newsletterPropsCustomization[key] = value.props;
302
+ }
303
+ });
304
+
305
+ const Components = _objectSpread({
306
+ ToastIconSuccess: Icon/* default */.Z,
307
+ ToastIconError: Icon/* default */.Z,
308
+ HeaderIcon: Icon/* default */.Z,
309
+ InputFieldName: InputField/* default */.Z,
310
+ InputFieldEmail: InputField/* default */.Z,
311
+ Button: Button/* default */.Z
312
+ }, newsletterComponentsCustomization);
313
+
314
+
315
+
316
+ /***/ }),
317
+
318
+ /***/ 87191:
319
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
320
+
321
+ "use strict";
322
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
323
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
324
+ /* harmony export */ "Z": () => (/* reexport safe */ _Newsletter__WEBPACK_IMPORTED_MODULE_0__.Z)
325
+ /* harmony export */ });
326
+ /* harmony import */ var _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68170);
327
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
328
+ _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
329
+
330
+ __webpack_async_result__();
331
+ } catch(e) { __webpack_async_result__(e); } });
332
+
333
+ /***/ }),
334
+
23
335
  /***/ 86237:
24
336
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25
337
 
@@ -544,6 +856,221 @@ function ProductShelfSkeleton({
544
856
  ;// CONCATENATED MODULE: ./src/components/skeletons/ProductShelfSkeleton/index.ts
545
857
 
546
858
 
859
+ /***/ }),
860
+
861
+ /***/ 870:
862
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
863
+
864
+ "use strict";
865
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
866
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
867
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
868
+ /* harmony export */ });
869
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
870
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
871
+ /* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26911);
872
+ /* harmony import */ var draft_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(draft_js__WEBPACK_IMPORTED_MODULE_1__);
873
+ /* harmony import */ var draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4539);
874
+ /* harmony import */ var draft_js_export_html__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__);
875
+ /* harmony import */ var _faststore_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90395);
876
+ /* harmony import */ var src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35822);
877
+ /* harmony import */ var src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97678);
878
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20997);
879
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
880
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__]);
881
+ src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
882
+ 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; }
883
+
884
+ 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; }
885
+
886
+ 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; }
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+ const {
899
+ ToastIconSuccess,
900
+ ToastIconError,
901
+ HeaderIcon,
902
+ InputFieldEmail,
903
+ InputFieldName,
904
+ Button
905
+ } = src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Components */ .z;
906
+
907
+ const cmsToHtml = content => {
908
+ if (!content) {
909
+ return '';
910
+ }
911
+
912
+ const rawDraftContentState = JSON.parse(content);
913
+ const html = (0,draft_js_export_html__WEBPACK_IMPORTED_MODULE_2__.stateToHTML)((0,draft_js__WEBPACK_IMPORTED_MODULE_1__.convertFromRaw)(rawDraftContentState), {
914
+ entityStyleFn: entity => {
915
+ const entityType = entity.get('type').toLowerCase();
916
+
917
+ if (entityType === 'link') {
918
+ const data = entity.getData();
919
+ return {
920
+ element: 'a',
921
+ attributes: {
922
+ 'data-fs-link': 'true',
923
+ 'data-fs-link-variant': 'inline',
924
+ 'data-fs-link-inverse': 'true',
925
+ 'data-fs-link-size': 'regular',
926
+ 'data-testid': 'fs-link',
927
+ href: data.url
928
+ }
929
+ };
930
+ }
931
+ }
932
+ });
933
+ return html;
934
+ };
935
+
936
+ const Newsletter = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Newsletter({
937
+ icon,
938
+ title,
939
+ description,
940
+ privacyPolicy,
941
+ emailInputLabel,
942
+ displayNameInput,
943
+ nameInputLabel,
944
+ subscribeButtonLabel,
945
+ subscribeButtonLoadingLabel,
946
+ card,
947
+ toastSubscribe,
948
+ toastSubscribeError
949
+ }, ref) {
950
+ const {
951
+ subscribeUser,
952
+ loading,
953
+ data
954
+ } = (0,src_sdk_newsletter_useNewsletter__WEBPACK_IMPORTED_MODULE_3__/* .useNewsletter */ .u)();
955
+ const nameInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
956
+ const emailInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
957
+ const subscriptionButtonLabel = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => loading ? subscribeButtonLoadingLabel : subscribeButtonLabel, [loading, subscribeButtonLabel, subscribeButtonLoadingLabel]);
958
+ const {
959
+ pushToast
960
+ } = (0,_faststore_ui__WEBPACK_IMPORTED_MODULE_6__/* .useUI */ .l)();
961
+
962
+ const handleSubmit = event => {
963
+ event.preventDefault();
964
+ subscribeUser({
965
+ data: {
966
+ name: nameInputRef.current?.value ?? '',
967
+ email: emailInputRef.current?.value ?? ''
968
+ }
969
+ });
970
+
971
+ if (data?.subscribeToNewsletter?.id) {
972
+ pushToast(_objectSpread(_objectSpread({}, toastSubscribe), {}, {
973
+ status: 'INFO',
974
+ icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(ToastIconSuccess, _objectSpread(_objectSpread({
975
+ width: 30,
976
+ height: 30
977
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.ToastIconSuccess */ .x.ToastIconSuccess), {}, {
978
+ name: toastSubscribe.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.ToastIconSuccess.name */ .x.ToastIconSuccess.name
979
+ }))
980
+ }));
981
+ } else {
982
+ pushToast(_objectSpread(_objectSpread({}, toastSubscribeError), {}, {
983
+ status: 'ERROR',
984
+ icon: /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(ToastIconError, _objectSpread(_objectSpread({
985
+ width: 30,
986
+ height: 30
987
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.ToastIconError */ .x.ToastIconError), {}, {
988
+ name: toastSubscribe.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.ToastIconError.name */ .x.ToastIconError.name
989
+ }))
990
+ }));
991
+ }
992
+
993
+ const formElement = event.currentTarget;
994
+ formElement.reset();
995
+ };
996
+
997
+ return /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("div", {
998
+ "data-fs-newsletter": card ? 'card' : '',
999
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("form", {
1000
+ ref: ref,
1001
+ "data-fs-newsletter-form": true,
1002
+ "data-fs-content": "newsletter",
1003
+ onSubmit: handleSubmit,
1004
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("header", {
1005
+ "data-fs-newsletter-header": true,
1006
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("h3", {
1007
+ children: [/*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(HeaderIcon, _objectSpread(_objectSpread({
1008
+ width: 32,
1009
+ height: 32
1010
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.HeaderIcon */ .x.HeaderIcon), {}, {
1011
+ name: icon?.icon ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.HeaderIcon.name */ .x.HeaderIcon.name
1012
+ })), title]
1013
+ }), description && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("span", {
1014
+ children: [" ", description]
1015
+ })]
1016
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("div", {
1017
+ "data-fs-newsletter-controls": true,
1018
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
1019
+ children: [displayNameInput ? /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(InputFieldName, _objectSpread(_objectSpread({
1020
+ id: "newsletter-name",
1021
+ required: true
1022
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.InputFieldName */ .x.InputFieldName), {}, {
1023
+ label: nameInputLabel ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.InputFieldName.label */ .x.InputFieldName.label // Dynamic props shouldn't be overridable
1024
+ // This decision can be reviewed later if needed
1025
+ ,
1026
+ inputRef: nameInputRef
1027
+ })) : null, /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(InputFieldEmail, _objectSpread(_objectSpread({
1028
+ id: "newsletter-email",
1029
+ type: "email",
1030
+ required: true
1031
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.InputFieldEmail */ .x.InputFieldEmail), {}, {
1032
+ label: emailInputLabel ?? src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.InputFieldEmail.label */ .x.InputFieldEmail.label // Dynamic props shouldn't be overridable
1033
+ // This decision can be reviewed later if needed
1034
+ ,
1035
+ inputRef: emailInputRef
1036
+ })), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx("span", {
1037
+ "data-fs-newsletter-addendum": true,
1038
+ dangerouslySetInnerHTML: {
1039
+ __html: cmsToHtml(privacyPolicy)
1040
+ }
1041
+ }), /*#__PURE__*/react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx(Button, _objectSpread(_objectSpread({
1042
+ variant: "secondary",
1043
+ inverse: true,
1044
+ type: "submit"
1045
+ }, src_components_sections_Newsletter_Overrides__WEBPACK_IMPORTED_MODULE_4__/* .Props.Button */ .x.Button), {}, {
1046
+ children: loading ? subscribeButtonLoadingLabel : subscribeButtonLabel
1047
+ }))]
1048
+ })
1049
+ })]
1050
+ })
1051
+ });
1052
+ });
1053
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Newsletter);
1054
+ __webpack_async_result__();
1055
+ } catch(e) { __webpack_async_result__(e); } });
1056
+
1057
+ /***/ }),
1058
+
1059
+ /***/ 24798:
1060
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
1061
+
1062
+ "use strict";
1063
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1064
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1065
+ /* harmony export */ "Z": () => (/* reexport safe */ _Newsletter__WEBPACK_IMPORTED_MODULE_0__.Z)
1066
+ /* harmony export */ });
1067
+ /* harmony import */ var _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(870);
1068
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Newsletter__WEBPACK_IMPORTED_MODULE_0__]);
1069
+ _Newsletter__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1070
+
1071
+ __webpack_async_result__();
1072
+ } catch(e) { __webpack_async_result__(e); } });
1073
+
547
1074
  /***/ }),
548
1075
 
549
1076
  /***/ 77691:
@@ -685,6 +1212,74 @@ __webpack_async_result__();
685
1212
 
686
1213
  /***/ }),
687
1214
 
1215
+ /***/ 88597:
1216
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
1217
+
1218
+ "use strict";
1219
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1220
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1221
+ /* harmony export */ "t": () => (/* binding */ useLazyQuery)
1222
+ /* harmony export */ });
1223
+ /* harmony import */ var swr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15941);
1224
+ /* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(180);
1225
+ /* harmony import */ var _useQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77732);
1226
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__]);
1227
+ ([swr__WEBPACK_IMPORTED_MODULE_0__, _useQuery__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__);
1228
+
1229
+
1230
+
1231
+ const useLazyQuery = (operationName, variables, options) => {
1232
+ const response = (0,swr__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_useQuery__WEBPACK_IMPORTED_MODULE_1__/* .getKey */ .km)(operationName, variables), () => null, _useQuery__WEBPACK_IMPORTED_MODULE_1__/* .DEFAULT_OPTIONS */ .WN);
1233
+
1234
+ const execute = async queryVariables => {
1235
+ const data = await (0,_request__WEBPACK_IMPORTED_MODULE_2__/* .request */ .W)(operationName, queryVariables, options);
1236
+ response.mutate(data, false);
1237
+ };
1238
+
1239
+ return [execute, response];
1240
+ };
1241
+ __webpack_async_result__();
1242
+ } catch(e) { __webpack_async_result__(e); } });
1243
+
1244
+ /***/ }),
1245
+
1246
+ /***/ 35822:
1247
+ /***/ ((module, __webpack_exports__, __webpack_require__) => {
1248
+
1249
+ "use strict";
1250
+ __webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
1251
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1252
+ /* harmony export */ "u": () => (/* binding */ useNewsletter)
1253
+ /* harmony export */ });
1254
+ /* unused harmony export mutation */
1255
+ /* harmony import */ var _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88597);
1256
+ var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__]);
1257
+ _graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
1258
+
1259
+ const mutation = "SubscribeToNewsletter";
1260
+ const useNewsletter = () => {
1261
+ const [subscribeUser, {
1262
+ data,
1263
+ error,
1264
+ isValidating: loading
1265
+ }] = (0,_graphql_useLazyQuery__WEBPACK_IMPORTED_MODULE_0__/* .useLazyQuery */ .t)(mutation, {
1266
+ data: {
1267
+ name: '',
1268
+ email: ''
1269
+ }
1270
+ });
1271
+ return {
1272
+ subscribeUser,
1273
+ data,
1274
+ error,
1275
+ loading
1276
+ };
1277
+ };
1278
+ __webpack_async_result__();
1279
+ } catch(e) { __webpack_async_result__(e); } });
1280
+
1281
+ /***/ }),
1282
+
688
1283
  /***/ 43952:
689
1284
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
690
1285
 
@@ -703,6 +1298,28 @@ function textToKebabCase(text) {
703
1298
  return kebabCase ?? '';
704
1299
  }
705
1300
 
1301
+ /***/ }),
1302
+
1303
+ /***/ 37283:
1304
+ /***/ ((module) => {
1305
+
1306
+ // Exports
1307
+ module.exports = {
1308
+ "section": "section_section__ivuGF"
1309
+ };
1310
+
1311
+
1312
+ /***/ }),
1313
+
1314
+ /***/ 37781:
1315
+ /***/ ((module) => {
1316
+
1317
+ // Exports
1318
+ module.exports = {
1319
+ "section": "section_section__kRRBW"
1320
+ };
1321
+
1322
+
706
1323
  /***/ }),
707
1324
 
708
1325
  /***/ 56627: