@faststore/core 2.0.96-alpha.0 → 2.0.97-alpha.0

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 (146) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/build-manifest.json +101 -0
  3. package/.next/cache/.tsbuildinfo +1 -0
  4. package/.next/cache/config.json +7 -0
  5. package/.next/cache/eslint/.cache_1gneedd +1 -0
  6. package/.next/cache/next-server.js.nft.json +1 -0
  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/export-marker.json +1 -0
  12. package/.next/images-manifest.json +1 -0
  13. package/.next/next-server.js.nft.json +1 -0
  14. package/.next/package.json +1 -0
  15. package/.next/prerender-manifest.json +1 -0
  16. package/.next/react-loadable-manifest.json +44 -0
  17. package/.next/required-server-files.json +1 -0
  18. package/.next/routes-manifest.json +1 -0
  19. package/.next/server/chunks/104.js +196 -0
  20. package/.next/server/chunks/143.js +106 -0
  21. package/.next/server/chunks/152.js +216 -0
  22. package/.next/server/chunks/154.js +206 -0
  23. package/.next/server/chunks/183.js +72 -0
  24. package/.next/server/chunks/247.js +61 -0
  25. package/.next/server/chunks/264.js +67 -0
  26. package/.next/server/chunks/280.js +417 -0
  27. package/.next/server/chunks/287.js +79 -0
  28. package/.next/server/chunks/312.js +684 -0
  29. package/.next/server/chunks/317.js +125 -0
  30. package/.next/server/chunks/350.js +120 -0
  31. package/.next/server/chunks/371.js +1484 -0
  32. package/.next/server/chunks/377.js +82 -0
  33. package/.next/server/chunks/394.js +3801 -0
  34. package/.next/server/chunks/439.js +175 -0
  35. package/.next/server/chunks/444.js +464 -0
  36. package/.next/server/chunks/465.js +91 -0
  37. package/.next/server/chunks/576.js +72 -0
  38. package/.next/server/chunks/608.js +515 -0
  39. package/.next/server/chunks/664.js +124 -0
  40. package/.next/server/chunks/676.js +32 -0
  41. package/.next/server/chunks/746.js +237 -0
  42. package/.next/server/chunks/777.js +708 -0
  43. package/.next/server/chunks/854.js +72 -0
  44. package/.next/server/chunks/859.js +959 -0
  45. package/.next/server/chunks/872.js +378 -0
  46. package/.next/server/chunks/881.js +320 -0
  47. package/.next/server/chunks/898.js +240 -0
  48. package/.next/server/chunks/914.js +96 -0
  49. package/.next/server/chunks/953.js +674 -0
  50. package/.next/server/chunks/98.js +266 -0
  51. package/.next/server/chunks/992.js +570 -0
  52. package/.next/server/chunks/font-manifest.json +1 -0
  53. package/.next/server/font-manifest.json +1 -0
  54. package/.next/server/middleware-build-manifest.js +1 -0
  55. package/.next/server/middleware-manifest.json +6 -0
  56. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  57. package/.next/server/pages/404.js.nft.json +1 -0
  58. package/.next/server/pages/500.js.nft.json +1 -0
  59. package/.next/server/pages/[...slug].js +633 -0
  60. package/.next/server/pages/[...slug].js.nft.json +1 -0
  61. package/.next/server/pages/[slug]/p.js +2390 -0
  62. package/.next/server/pages/[slug]/p.js.nft.json +1 -0
  63. package/.next/server/pages/_app.js +2467 -0
  64. package/.next/server/pages/_app.js.nft.json +1 -0
  65. package/.next/server/pages/_document.js +304 -0
  66. package/.next/server/pages/_document.js.nft.json +1 -0
  67. package/.next/server/pages/_error.js +164 -0
  68. package/.next/server/pages/_error.js.nft.json +1 -0
  69. package/.next/server/pages/account.js.nft.json +1 -0
  70. package/.next/server/pages/api/graphql.js +259 -0
  71. package/.next/server/pages/api/graphql.js.nft.json +1 -0
  72. package/.next/server/pages/api/preview.js +118 -0
  73. package/.next/server/pages/api/preview.js.nft.json +1 -0
  74. package/.next/server/pages/checkout.js.nft.json +1 -0
  75. package/.next/server/pages/en-US/404.html +81 -0
  76. package/.next/server/pages/en-US/500.html +81 -0
  77. package/.next/server/pages/en-US/account.html +81 -0
  78. package/.next/server/pages/en-US/checkout.html +81 -0
  79. package/.next/server/pages/en-US/login.html +81 -0
  80. package/.next/server/pages/en-US/s.html +81 -0
  81. package/.next/server/pages/en-US.html +81 -0
  82. package/.next/server/pages/en-US.json +1 -0
  83. package/.next/server/pages/index.js +428 -0
  84. package/.next/server/pages/index.js.nft.json +1 -0
  85. package/.next/server/pages/login.js.nft.json +1 -0
  86. package/.next/server/pages/s.js.nft.json +1 -0
  87. package/.next/server/pages-manifest.json +16 -0
  88. package/.next/server/webpack-api-runtime.js +229 -0
  89. package/.next/server/webpack-runtime.js +229 -0
  90. package/.next/static/chunks/143.dd8a556e6957baa1.js +1 -0
  91. package/.next/static/chunks/152.d44c4f8d83e68e26.js +1 -0
  92. package/.next/static/chunks/251-5059c71d8e624b60.js +1 -0
  93. package/.next/static/chunks/291.1b3f1a62d6e853d1.js +1 -0
  94. package/.next/static/chunks/351-a4e28d64f48c5269.js +1 -0
  95. package/.next/static/chunks/608.59e69b83f35d9c44.js +1 -0
  96. package/.next/static/chunks/626-d631f2cb747ef569.js +1 -0
  97. package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
  98. package/.next/static/chunks/686.41582b9e75eaba89.js +1 -0
  99. package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
  100. package/.next/static/chunks/781-7df372b5b56e3f96.js +1 -0
  101. package/.next/static/chunks/843.f55ad79a8fd4f87c.js +1 -0
  102. package/.next/static/chunks/98.97381d2021f86cd9.js +1 -0
  103. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
  104. package/.next/static/chunks/main-9746772201fe3ac1.js +1 -0
  105. package/.next/static/chunks/pages/404-ba608a2a9f0c420a.js +1 -0
  106. package/.next/static/chunks/pages/500-910883c20541d9ce.js +1 -0
  107. package/.next/static/chunks/pages/[...slug]-4b2bea89ec5c8fbe.js +1 -0
  108. package/.next/static/chunks/pages/[slug]/p-912fe4b532f4fdce.js +1 -0
  109. package/.next/static/chunks/pages/_app-c30dfc55a86c1363.js +1 -0
  110. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
  111. package/.next/static/chunks/pages/account-b8fc5222ffe89b60.js +1 -0
  112. package/.next/static/chunks/pages/checkout-f8cb7cb22225ef9d.js +1 -0
  113. package/.next/static/chunks/pages/index-eabe9d42a172b52b.js +1 -0
  114. package/.next/static/chunks/pages/login-33954810b200eca8.js +1 -0
  115. package/.next/static/chunks/pages/s-b49bdf6af37376b6.js +1 -0
  116. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
  117. package/.next/static/chunks/webpack-f1a1b4bcfa6b66bb.js +1 -0
  118. package/.next/static/css/10db3bc7ecdf0556.css +1 -0
  119. package/.next/static/css/43d61b402f41569b.css +1 -0
  120. package/.next/static/css/4899c3cc356704f9.css +1 -0
  121. package/.next/static/css/5f1958d8dece68c7.css +1 -0
  122. package/.next/static/css/6507cb48401e73a4.css +1 -0
  123. package/.next/static/css/8ea129ea90e49e98.css +1 -0
  124. package/.next/static/css/b2f16bd4b93e0aca.css +1 -0
  125. package/.next/static/css/db63ea05e98cb7e8.css +1 -0
  126. package/.next/static/m9qPYxeN9bMid06fpEhbE/_buildManifest.js +1 -0
  127. package/.next/static/m9qPYxeN9bMid06fpEhbE/_ssgManifest.js +1 -0
  128. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  129. package/.next/trace +64 -0
  130. package/.turbo/turbo-build.log +3 -3
  131. package/CHANGELOG.md +4 -0
  132. package/package.json +2 -2
  133. package/public/~partytown/debug/partytown-atomics.js +556 -0
  134. package/public/~partytown/debug/partytown-media.js +374 -0
  135. package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
  136. package/public/~partytown/debug/partytown-sw.js +59 -0
  137. package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
  138. package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
  139. package/public/~partytown/debug/partytown.js +72 -0
  140. package/public/~partytown/partytown-atomics.js +2 -0
  141. package/public/~partytown/partytown-media.js +2 -0
  142. package/public/~partytown/partytown-sw.js +2 -0
  143. package/public/~partytown/partytown.js +2 -0
  144. package/src/components/ui/Button/ButtonSignIn/ButtonSignIn.tsx +5 -1
  145. package/src/pages/account.tsx +1 -1
  146. package/src/pages/login.tsx +1 -1
@@ -0,0 +1,674 @@
1
+ exports.id = 953;
2
+ exports.ids = [953];
3
+ exports.modules = {
4
+
5
+ /***/ 3417:
6
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
+
8
+ "use strict";
9
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
10
+ /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
11
+ /* harmony export */ });
12
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
14
+
15
+ // Icon from Phosphor Icons
16
+ const XCircle = () => (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", viewBox: "0 0 256 256", strokeWidth: "16", width: 20, height: 20 },
17
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("rect", { width: "256", height: "256", fill: "none" }),
18
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("circle", { cx: "128", cy: "128", r: "96", fill: "none", stroke: "currentColor", strokeMiterlimit: "10" }),
19
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("line", { x1: "160", y1: "96", x2: "96", y2: "160", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" }),
20
+ react__WEBPACK_IMPORTED_MODULE_0___default().createElement("line", { x1: "160", y1: "160", x2: "96", y2: "96", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })));
21
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (XCircle);
22
+ //# sourceMappingURL=XCircle.js.map
23
+
24
+ /***/ }),
25
+
26
+ /***/ 953:
27
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28
+
29
+ "use strict";
30
+ // ESM COMPAT FLAG
31
+ __webpack_require__.r(__webpack_exports__);
32
+
33
+ // EXPORTS
34
+ __webpack_require__.d(__webpack_exports__, {
35
+ "default": () => (/* reexport */ CartSidebar_CartSidebar)
36
+ });
37
+
38
+ // EXTERNAL MODULE: ./node_modules/@faststore/sdk/dist/analytics/sendAnalyticsEvent.js
39
+ var sendAnalyticsEvent = __webpack_require__(8460);
40
+ // EXTERNAL MODULE: ../components/dist/organisms/SlideOver/SlideOver.js
41
+ var SlideOver = __webpack_require__(1021);
42
+ // EXTERNAL MODULE: ../components/dist/organisms/SlideOver/SlideOverHeader.js
43
+ var SlideOverHeader = __webpack_require__(9648);
44
+ // EXTERNAL MODULE: ../components/dist/atoms/Badge/Badge.js
45
+ var Badge = __webpack_require__(44);
46
+ // EXTERNAL MODULE: ../components/dist/molecules/Alert/Alert.js
47
+ var Alert = __webpack_require__(6970);
48
+ // EXTERNAL MODULE: ../components/dist/atoms/List/List.js
49
+ var List = __webpack_require__(1329);
50
+ // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js + 1 modules
51
+ var Button = __webpack_require__(4842);
52
+ // EXTERNAL MODULE: external "react"
53
+ var external_react_ = __webpack_require__(6689);
54
+ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
55
+ // EXTERNAL MODULE: ./src/components/ui/Icon/index.ts + 1 modules
56
+ var Icon = __webpack_require__(2478);
57
+ // EXTERNAL MODULE: ./src/sdk/cart/index.ts
58
+ var sdk_cart = __webpack_require__(7566);
59
+ // EXTERNAL MODULE: ./faststore.config.js
60
+ var faststore_config = __webpack_require__(7183);
61
+ var faststore_config_default = /*#__PURE__*/__webpack_require__.n(faststore_config);
62
+ ;// CONCATENATED MODULE: ./src/sdk/cart/useCheckoutButton.ts
63
+
64
+
65
+ const useCheckoutButton = () => {
66
+ const {
67
+ isValidating,
68
+ id
69
+ } = (0,sdk_cart/* useCart */.jD)();
70
+
71
+ const onClick = e => {
72
+ e.preventDefault();
73
+
74
+ if (!isValidating && id) {
75
+ window.location.href = `${(faststore_config_default()).checkoutUrl}?orderFormId=${id}`;
76
+ }
77
+ };
78
+
79
+ return {
80
+ onClick,
81
+ disabled: isValidating,
82
+ 'data-testid': 'checkout-button'
83
+ };
84
+ };
85
+ // EXTERNAL MODULE: ./src/sdk/session/index.ts
86
+ var session = __webpack_require__(5971);
87
+ // EXTERNAL MODULE: ../components/dist/hooks/UIProvider.js
88
+ var UIProvider = __webpack_require__(395);
89
+ // EXTERNAL MODULE: ../components/dist/hooks/useFadeEffect.js
90
+ var useFadeEffect = __webpack_require__(6074);
91
+ // EXTERNAL MODULE: ../components/dist/assets/XCircle.js
92
+ var XCircle = __webpack_require__(3417);
93
+ // EXTERNAL MODULE: ../components/dist/molecules/IconButton/IconButton.js
94
+ var IconButton = __webpack_require__(2765);
95
+ // EXTERNAL MODULE: ../components/dist/molecules/QuantitySelector/QuantitySelector.js + 2 modules
96
+ var QuantitySelector = __webpack_require__(7377);
97
+ // EXTERNAL MODULE: ../components/dist/atoms/Price/Price.js
98
+ var Price = __webpack_require__(7549);
99
+ ;// CONCATENATED MODULE: ../components/dist/molecules/CartItem/CartItem.js
100
+
101
+
102
+
103
+ const CartItem = (0,external_react_.forwardRef)(function CartItem({ testId = 'fs-cart-item', price, quantity, unavailable, onQuantityChange, children, removeBtnProps, ...otherProps }, ref) {
104
+ return (external_react_default().createElement("article", { ref: ref, "data-fs-cart-item": unavailable ? 'unavailable' : 'true', "data-testid": testId, ...otherProps },
105
+ external_react_default().createElement("div", { "data-fs-cart-item-content": true }, children),
106
+ external_react_default().createElement(IconButton/* default */.Z, { "data-fs-cart-item-remove-button": true, icon: external_react_default().createElement(XCircle/* default */.Z, null), "aria-label": "Remove", ...removeBtnProps }),
107
+ external_react_default().createElement("div", { "data-fs-cart-item-actions": true },
108
+ external_react_default().createElement(QuantitySelector/* default */.Z, { min: 1, initial: quantity, onChange: onQuantityChange }),
109
+ external_react_default().createElement("span", { "data-fs-cart-item-prices": true },
110
+ external_react_default().createElement(Price/* default */.Z, { value: price?.listPrice ? price.listPrice : 0, formatter: price?.formatter, variant: "listing", SRText: "Original price:" }),
111
+ external_react_default().createElement(Price/* default */.Z, { value: price?.value ? price.value : 0, formatter: price?.formatter, variant: "spot", SRText: "Price:" })))));
112
+ });
113
+ /* harmony default export */ const CartItem_CartItem = (CartItem);
114
+ //# sourceMappingURL=CartItem.js.map
115
+ ;// CONCATENATED MODULE: ../components/dist/molecules/CartItem/CartItemImage.js
116
+
117
+ const CartItemImage = (0,external_react_.forwardRef)(function CartItemImage({ testId = 'fs-cart-item-image', children, ...otherProps }, ref) {
118
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-cart-item-image": true, "data-testid": testId, ...otherProps }, children));
119
+ });
120
+ /* harmony default export */ const CartItem_CartItemImage = (CartItemImage);
121
+ //# sourceMappingURL=CartItemImage.js.map
122
+ ;// CONCATENATED MODULE: ../components/dist/molecules/CartItem/CartItemSummary.js
123
+
124
+ const CartItemSummary = (0,external_react_.forwardRef)(function CartItemSummary({ testId = 'fs-cart-item-summary', title, activeVariations = [], children, ...otherProps }, ref) {
125
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-cart-item-summary": true, "data-testid": testId, ...otherProps },
126
+ external_react_default().createElement("div", { "data-fs-cart-item-title": true }, title),
127
+ activeVariations.length > 0 && (external_react_default().createElement("div", { "data-fs-cart-item-skus": true }, activeVariations.map(({ label, option }) => (external_react_default().createElement("p", { key: label },
128
+ label,
129
+ ": ",
130
+ external_react_default().createElement("span", null, option)))))),
131
+ children));
132
+ });
133
+ /* harmony default export */ const CartItem_CartItemSummary = (CartItemSummary);
134
+ //# sourceMappingURL=CartItemSummary.js.map
135
+ // EXTERNAL MODULE: ./src/components/ui/Image/index.ts + 3 modules
136
+ var Image = __webpack_require__(2154);
137
+ // EXTERNAL MODULE: ./src/sdk/product/useFormattedPrice.ts
138
+ var useFormattedPrice = __webpack_require__(5346);
139
+ ;// CONCATENATED MODULE: ./src/sdk/cart/useRemoveButton.ts
140
+
141
+
142
+
143
+
144
+ const useRemoveButton = item => {
145
+ const {
146
+ currency: {
147
+ code
148
+ }
149
+ } = (0,session/* useSession */.kP)();
150
+ const onClick = (0,external_react_.useCallback)(e => {
151
+ e.preventDefault();
152
+
153
+ if (!item) {
154
+ return;
155
+ }
156
+
157
+ (0,sendAnalyticsEvent/* sendAnalyticsEvent */._)({
158
+ name: 'remove_from_cart',
159
+ params: {
160
+ currency: code,
161
+ value: item.price * item.quantity,
162
+ // TODO: In the future, we can explore more robust ways of calculating the value (gift items, discounts, etc.).
163
+ items: [{
164
+ item_id: item.itemOffered.isVariantOf.productGroupID,
165
+ item_name: item.itemOffered.isVariantOf.name,
166
+ item_brand: item.itemOffered.brand.name,
167
+ item_variant: item.itemOffered.sku,
168
+ quantity: item.quantity,
169
+ price: item.price,
170
+ discount: item.listPrice - item.price,
171
+ currency: code,
172
+ item_variant_name: item.itemOffered.name,
173
+ product_reference_id: item.itemOffered.gtin
174
+ }]
175
+ }
176
+ });
177
+ sdk_cart/* cartStore.removeItem */.i8.removeItem(item.id);
178
+ }, [code, item]);
179
+ return {
180
+ onClick,
181
+ 'data-testid': 'remove-from-cart-button',
182
+ 'data-sku': item?.itemOffered.sku
183
+ };
184
+ };
185
+ // EXTERNAL MODULE: external "react/jsx-runtime"
186
+ var jsx_runtime_ = __webpack_require__(997);
187
+ ;// CONCATENATED MODULE: ./src/components/cart/CartItem/CartItem.tsx
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+ function useCartItemEvent() {
200
+ const {
201
+ currency: {
202
+ code
203
+ }
204
+ } = (0,session/* useSession */.kP)();
205
+ const sendCartItemEvent = (0,external_react_.useCallback)((item, quantity) => {
206
+ const quantityDelta = quantity - item.quantity;
207
+ return (0,sendAnalyticsEvent/* sendAnalyticsEvent */._)({
208
+ name: quantityDelta > 0 ? 'add_to_cart' : 'remove_from_cart',
209
+ params: {
210
+ currency: code,
211
+ // TODO: In the future, we can explore more robust ways of
212
+ // calculating the value (gift items, discounts, etc.).
213
+ value: item.price * Math.abs(quantityDelta),
214
+ items: [{
215
+ item_id: item.itemOffered.isVariantOf.productGroupID,
216
+ item_name: item.itemOffered.isVariantOf.name,
217
+ item_brand: item.itemOffered.brand.name,
218
+ item_variant: item.itemOffered.sku,
219
+ quantity: Math.abs(quantityDelta),
220
+ price: item.price,
221
+ discount: item.listPrice - item.price,
222
+ currency: code,
223
+ item_variant_name: item.itemOffered.name,
224
+ product_reference_id: item.itemOffered.gtin
225
+ }]
226
+ }
227
+ });
228
+ }, [code]);
229
+ return (0,external_react_.useMemo)(() => ({
230
+ sendCartItemEvent
231
+ }), [sendCartItemEvent]);
232
+ }
233
+
234
+ function CartItem_CartItem_CartItem({
235
+ item
236
+ }) {
237
+ const btnProps = useRemoveButton(item);
238
+ const {
239
+ sendCartItemEvent
240
+ } = useCartItemEvent();
241
+ const onQuantityChange = (0,external_react_.useCallback)(quantity => {
242
+ sendCartItemEvent(item, quantity);
243
+ sdk_cart/* cartStore.updateItemQuantity */.i8.updateItemQuantity(item.id, quantity);
244
+ }, [item, sendCartItemEvent]);
245
+ const skuActiveVariants = item.itemOffered.isVariantOf.skuVariants.activeVariations;
246
+ const activeVariations = Object.keys(skuActiveVariants).map(key => ({
247
+ label: key,
248
+ option: skuActiveVariants[key]
249
+ }));
250
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)(CartItem_CartItem, {
251
+ price: {
252
+ value: item.price,
253
+ listPrice: item.listPrice,
254
+ formatter: useFormattedPrice/* useFormattedPrice */.P
255
+ },
256
+ quantity: item.quantity,
257
+ onQuantityChange: onQuantityChange,
258
+ removeBtnProps: btnProps,
259
+ "data-sku": item.itemOffered.sku,
260
+ "data-seller": item.seller.identifier,
261
+ children: [/*#__PURE__*/jsx_runtime_.jsx(CartItem_CartItemImage, {
262
+ children: /*#__PURE__*/jsx_runtime_.jsx(Image/* Image */.E, {
263
+ src: item.itemOffered.image[0].url,
264
+ alt: item.itemOffered.image[0].alternateName,
265
+ width: 56,
266
+ height: 56
267
+ })
268
+ }), /*#__PURE__*/jsx_runtime_.jsx(CartItem_CartItemSummary, {
269
+ title: item.itemOffered.isVariantOf.name,
270
+ activeVariations: activeVariations
271
+ })]
272
+ });
273
+ }
274
+
275
+ /* harmony default export */ const cart_CartItem_CartItem = (CartItem_CartItem_CartItem);
276
+ ;// CONCATENATED MODULE: ./src/components/cart/CartItem/index.ts
277
+
278
+ // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
279
+ var Icon_Icon = __webpack_require__(5045);
280
+ ;// CONCATENATED MODULE: ../components/dist/molecules/Gift/Gift.js
281
+
282
+
283
+ const Gift = (0,external_react_.forwardRef)(function Gift({ icon, testId = 'fs-gift', children, ...otherProps }, ref) {
284
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-gift": true, "data-testid": testId, ...otherProps },
285
+ icon && external_react_default().createElement(Icon_Icon/* default */.Z, { component: icon, "data-fs-gift-icon": true }),
286
+ external_react_default().createElement("div", { "data-fs-gift-wrapper": true }, children)));
287
+ });
288
+ /* harmony default export */ const Gift_Gift = (Gift);
289
+ //# sourceMappingURL=Gift.js.map
290
+ ;// CONCATENATED MODULE: ../components/dist/molecules/Gift/GiftImage.js
291
+
292
+ const GiftImage = (0,external_react_.forwardRef)(function GiftImage({ testId = 'fs-gift-image', children, ...otherProps }, ref) {
293
+ return (external_react_default().createElement("div", { ref: ref, "data-fs-gift-image": true, "data-testid": testId, ...otherProps }, children));
294
+ });
295
+ /* harmony default export */ const Gift_GiftImage = (GiftImage);
296
+ //# sourceMappingURL=GiftImage.js.map
297
+ ;// CONCATENATED MODULE: ../components/dist/molecules/Gift/GiftContent.js
298
+
299
+
300
+ const GiftContent = (0,external_react_.forwardRef)(function GiftContent({ price, productName, titleMessage = 'Get a', badgeLabel = 'Free', testId = 'fs-gift-content', ...otherProps }, ref) {
301
+ return (external_react_default().createElement("section", { ref: ref, "data-fs-gift-content": true, "data-testid": testId, ...otherProps },
302
+ external_react_default().createElement("h3", { "data-fs-gift-product-title": true },
303
+ titleMessage,
304
+ " ",
305
+ productName),
306
+ external_react_default().createElement("span", { "data-fs-gift-product-summary": true },
307
+ external_react_default().createElement(Price/* default */.Z, { value: price?.listPrice ? price.listPrice : 0, formatter: price?.formatter, testId: "list-price", "data-value": price?.listPrice, variant: "listing", SRText: "Original price:" }),
308
+ external_react_default().createElement(Badge/* default */.Z, null, badgeLabel))));
309
+ });
310
+ /* harmony default export */ const Gift_GiftContent = (GiftContent);
311
+ //# sourceMappingURL=GiftContent.js.map
312
+ ;// CONCATENATED MODULE: ./src/components/ui/Gift/Gift.tsx
313
+ const _excluded = ["item"];
314
+
315
+ 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; }
316
+
317
+ 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; }
318
+
319
+ 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; }
320
+
321
+ 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; }
322
+
323
+ 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; }
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+ function Gift_Gift_Gift(_ref) {
333
+ let {
334
+ item
335
+ } = _ref,
336
+ otherProps = _objectWithoutProperties(_ref, _excluded);
337
+
338
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)(Gift_Gift, _objectSpread(_objectSpread({
339
+ icon: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
340
+ name: "Tag",
341
+ width: 18,
342
+ height: 18
343
+ })
344
+ }, otherProps), {}, {
345
+ children: [/*#__PURE__*/jsx_runtime_.jsx(Gift_GiftImage, {
346
+ children: /*#__PURE__*/jsx_runtime_.jsx(Image/* Image */.E, {
347
+ src: item.itemOffered.image[0].url,
348
+ alt: item.itemOffered.image[0].alternateName,
349
+ width: 89,
350
+ height: 89
351
+ })
352
+ }), /*#__PURE__*/jsx_runtime_.jsx(Gift_GiftContent, {
353
+ productName: item.itemOffered.isVariantOf.name,
354
+ price: {
355
+ value: item.price,
356
+ listPrice: item.listPrice,
357
+ formatter: useFormattedPrice/* useFormattedPrice */.P
358
+ }
359
+ })]
360
+ }));
361
+ }
362
+
363
+ /* harmony default export */ const ui_Gift_Gift = (Gift_Gift_Gift);
364
+ ;// CONCATENATED MODULE: ./src/components/ui/Gift/index.ts
365
+
366
+ // EXTERNAL MODULE: ./src/components/ui/EmptyState/index.ts + 1 modules
367
+ var EmptyState = __webpack_require__(9509);
368
+ ;// CONCATENATED MODULE: ./src/components/cart/EmptyCart/EmptyCart.tsx
369
+
370
+
371
+
372
+
373
+
374
+
375
+ function EmptyCart({
376
+ onDismiss
377
+ }) {
378
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)(EmptyState/* default */.Z, {
379
+ children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("header", {
380
+ "data-fs-empty-state-title": true,
381
+ children: [/*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
382
+ name: "ShoppingCart",
383
+ width: 56,
384
+ height: 56,
385
+ weight: "thin"
386
+ }), /*#__PURE__*/jsx_runtime_.jsx("p", {
387
+ children: "Your Cart is empty"
388
+ })]
389
+ }), /*#__PURE__*/jsx_runtime_.jsx(Button/* default */.Z, {
390
+ onClick: onDismiss,
391
+ variant: "secondary",
392
+ children: "Start Shopping"
393
+ })]
394
+ });
395
+ }
396
+
397
+ /* harmony default export */ const EmptyCart_EmptyCart = (EmptyCart);
398
+ ;// CONCATENATED MODULE: ./src/components/cart/EmptyCart/index.ts
399
+
400
+ ;// CONCATENATED MODULE: ../ui/dist/components/molecules/OrderSummary/OrderSummary.js
401
+
402
+
403
+ const OrderSummary = (0,external_react_.forwardRef)(function OrderSummary({ testId = 'store-order-summary', subtotalLabel, subtotalValue, discountLabel, discountValue, totalLabel, totalValue, ...otherProps }, ref) {
404
+ return (external_react_default().createElement(List/* default */.Z, { ref: ref, "data-fs-order-summary": true, "data-testid": testId, ...otherProps },
405
+ subtotalValue ? (external_react_default().createElement("li", { "data-fs-order-summary-subtotal": true },
406
+ external_react_default().createElement("span", { "data-fs-order-summary-subtotal-label": true, "data-testid": `${testId}-subtotal-label` }, subtotalLabel),
407
+ external_react_default().createElement("span", { "data-fs-order-summary-subtotal-value": true, "data-testid": `${testId}-subtotal-value` }, subtotalValue))) : null,
408
+ discountValue ? (external_react_default().createElement("li", { "data-fs-order-summary-discount": true },
409
+ external_react_default().createElement("span", { "data-fs-order-summary-discount-label": true, "data-testid": `${testId}-discount-label` }, discountLabel),
410
+ external_react_default().createElement("span", { "data-fs-order-summary-discount-value": true, "data-testid": `${testId}-discount-value` }, discountValue))) : null,
411
+ external_react_default().createElement("li", { "data-fs-order-summary-total": true },
412
+ external_react_default().createElement("span", { "data-fs-order-summary-total-label": true, "data-testid": `${testId}-total-label` }, totalLabel),
413
+ external_react_default().createElement("span", { "data-fs-order-summary-total-value": true, "data-testid": `${testId}-total-value` }, totalValue))));
414
+ });
415
+ /* harmony default export */ const OrderSummary_OrderSummary = (OrderSummary);
416
+ //# sourceMappingURL=OrderSummary.js.map
417
+ // EXTERNAL MODULE: ./src/components/cart/OrderSummary/order-summary.module.scss
418
+ var order_summary_module = __webpack_require__(9320);
419
+ var order_summary_module_default = /*#__PURE__*/__webpack_require__.n(order_summary_module);
420
+ ;// CONCATENATED MODULE: ./src/components/cart/OrderSummary/OrderSummary.tsx
421
+
422
+
423
+
424
+
425
+
426
+
427
+ function OrderSummary_OrderSummary_OrderSummary({
428
+ subTotal,
429
+ total,
430
+ numberOfItems,
431
+ checkoutButton
432
+ }) {
433
+ const discount = subTotal - total;
434
+ const formattedDiscount = (0,useFormattedPrice/* useFormattedPrice */.P)(discount);
435
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
436
+ className: (order_summary_module_default()).fsOrderSummary,
437
+ children: [/*#__PURE__*/jsx_runtime_.jsx(OrderSummary_OrderSummary, {
438
+ subtotalLabel: `Subtotal (${numberOfItems} products)`,
439
+ subtotalValue: (0,useFormattedPrice/* useFormattedPrice */.P)(subTotal),
440
+ discountLabel: "Discount",
441
+ discountValue: discount > 0 ? `-${formattedDiscount}` : undefined,
442
+ totalLabel: "Total",
443
+ totalValue: (0,useFormattedPrice/* useFormattedPrice */.P)(total)
444
+ }), checkoutButton]
445
+ });
446
+ }
447
+
448
+ /* harmony default export */ const cart_OrderSummary_OrderSummary = (OrderSummary_OrderSummary_OrderSummary);
449
+ ;// CONCATENATED MODULE: ./src/components/cart/OrderSummary/index.ts
450
+
451
+ // EXTERNAL MODULE: ./src/components/cart/CartSidebar/cart-sidebar.module.scss
452
+ var cart_sidebar_module = __webpack_require__(285);
453
+ var cart_sidebar_module_default = /*#__PURE__*/__webpack_require__.n(cart_sidebar_module);
454
+ ;// CONCATENATED MODULE: ./src/components/cart/CartSidebar/CartSidebar.tsx
455
+ function CartSidebar_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; }
456
+
457
+ function CartSidebar_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? CartSidebar_ownKeys(Object(source), !0).forEach(function (key) { CartSidebar_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : CartSidebar_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
458
+
459
+ function CartSidebar_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; }
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+
476
+
477
+
478
+
479
+ function CartSidebar() {
480
+ const {
481
+ currency
482
+ } = (0,session/* useSession */.kP)();
483
+ const btnProps = useCheckoutButton();
484
+ const cart = (0,sdk_cart/* useCart */.jD)();
485
+ const {
486
+ cart: displayCart,
487
+ closeCart
488
+ } = (0,UIProvider/* useUI */.l)();
489
+ const {
490
+ fade,
491
+ fadeOut
492
+ } = (0,useFadeEffect/* useFadeEffect */.b)();
493
+ const {
494
+ items,
495
+ gifts,
496
+ totalItems,
497
+ isValidating,
498
+ subTotal,
499
+ total
500
+ } = cart;
501
+ const isEmpty = items.length === 0;
502
+ (0,external_react_.useEffect)(() => {
503
+ (0,sendAnalyticsEvent/* sendAnalyticsEvent */._)({
504
+ name: 'view_cart',
505
+ params: {
506
+ currency: currency.code,
507
+ value: total,
508
+ items: items.concat(gifts).map(item => ({
509
+ item_id: item.itemOffered.isVariantOf.productGroupID,
510
+ item_name: item.itemOffered.isVariantOf.name,
511
+ item_brand: item.itemOffered.brand.name,
512
+ item_variant: item.itemOffered.sku,
513
+ quantity: item.quantity,
514
+ price: item.price,
515
+ discount: item.listPrice - item.price,
516
+ currency: currency.code,
517
+ item_variant_name: item.itemOffered.name,
518
+ product_reference_id: item.itemOffered.gtin
519
+ }))
520
+ }
521
+ }); // eslint-disable-next-line react-hooks/exhaustive-deps
522
+ }, []);
523
+ const closeBtnProps = {
524
+ testId: 'cart-sidebar-button-close'
525
+ };
526
+ return /*#__PURE__*/(0,jsx_runtime_.jsxs)(SlideOver/* default */.Z, {
527
+ fade: fade,
528
+ isOpen: displayCart,
529
+ onDismiss: () => fadeOut(),
530
+ size: "partial",
531
+ direction: "rightSide",
532
+ className: (cart_sidebar_module_default()).fsCartSidebar,
533
+ onTransitionEnd: () => fade === 'out' && closeCart(),
534
+ "data-testid": "cart-sidebar",
535
+ children: [/*#__PURE__*/jsx_runtime_.jsx(SlideOverHeader/* default */.Z, {
536
+ closeBtnProps: closeBtnProps,
537
+ onClose: fadeOut,
538
+ children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", {
539
+ "data-fs-cart-sidebar-title": true,
540
+ children: [/*#__PURE__*/jsx_runtime_.jsx("p", {
541
+ "data-fs-cart-sidebar-title-text": true,
542
+ className: "text__lead",
543
+ children: "Your Cart"
544
+ }), /*#__PURE__*/jsx_runtime_.jsx(Badge/* default */.Z, {
545
+ variant: "info",
546
+ children: totalItems
547
+ })]
548
+ })
549
+ }), /*#__PURE__*/jsx_runtime_.jsx(Alert/* default */.Z, {
550
+ icon: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
551
+ name: "Truck"
552
+ }),
553
+ children: "Free shipping starts at $300"
554
+ }), isEmpty ? /*#__PURE__*/jsx_runtime_.jsx(EmptyCart_EmptyCart, {
555
+ onDismiss: fadeOut
556
+ }) : /*#__PURE__*/(0,jsx_runtime_.jsxs)(jsx_runtime_.Fragment, {
557
+ children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)(List/* default */.Z, {
558
+ "data-fs-cart-sidebar-list": true,
559
+ children: [items.map(item => /*#__PURE__*/jsx_runtime_.jsx("li", {
560
+ children: /*#__PURE__*/jsx_runtime_.jsx(cart_CartItem_CartItem, {
561
+ item: item
562
+ })
563
+ }, item.id)), gifts.length > 0 && /*#__PURE__*/jsx_runtime_.jsx(jsx_runtime_.Fragment, {
564
+ children: gifts.map(item => /*#__PURE__*/jsx_runtime_.jsx("li", {
565
+ children: /*#__PURE__*/jsx_runtime_.jsx(ui_Gift_Gift, {
566
+ item: item
567
+ })
568
+ }, item.id))
569
+ })]
570
+ }), /*#__PURE__*/jsx_runtime_.jsx("footer", {
571
+ "data-fs-cart-sidebar-footer": true,
572
+ children: /*#__PURE__*/jsx_runtime_.jsx(cart_OrderSummary_OrderSummary, {
573
+ subTotal: subTotal,
574
+ total: total,
575
+ numberOfItems: totalItems,
576
+ checkoutButton: /*#__PURE__*/jsx_runtime_.jsx(Button/* default */.Z, CartSidebar_objectSpread(CartSidebar_objectSpread({
577
+ "data-fs-cart-sidebar-checkout-button": true,
578
+ variant: "primary",
579
+ icon: !isValidating && /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
580
+ name: "ArrowRight",
581
+ width: 18,
582
+ height: 18
583
+ }),
584
+ iconPosition: "right"
585
+ }, btnProps), {}, {
586
+ children: isValidating ? 'Loading...' : 'Checkout'
587
+ }))
588
+ })
589
+ })]
590
+ })]
591
+ });
592
+ }
593
+
594
+ /* harmony default export */ const CartSidebar_CartSidebar = (CartSidebar);
595
+ ;// CONCATENATED MODULE: ./src/components/cart/CartSidebar/index.ts
596
+
597
+
598
+ /***/ }),
599
+
600
+ /***/ 9509:
601
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
602
+
603
+ "use strict";
604
+
605
+ // EXPORTS
606
+ __webpack_require__.d(__webpack_exports__, {
607
+ "Z": () => (/* reexport */ EmptyState_EmptyState)
608
+ });
609
+
610
+ // EXTERNAL MODULE: ./src/components/ui/EmptyState/empty-state.module.scss
611
+ var empty_state_module = __webpack_require__(8098);
612
+ var empty_state_module_default = /*#__PURE__*/__webpack_require__.n(empty_state_module);
613
+ // EXTERNAL MODULE: external "react/jsx-runtime"
614
+ var jsx_runtime_ = __webpack_require__(997);
615
+ ;// CONCATENATED MODULE: ./src/components/ui/EmptyState/EmptyState.tsx
616
+
617
+
618
+
619
+ function EmptyState({
620
+ children,
621
+ variant = 'default'
622
+ }) {
623
+ return /*#__PURE__*/jsx_runtime_.jsx("section", {
624
+ className: (empty_state_module_default()).fsEmptyState,
625
+ "data-fs-empty-state": true,
626
+ "data-fs-empty-state-variant": variant,
627
+ children: children
628
+ });
629
+ }
630
+
631
+ /* harmony default export */ const EmptyState_EmptyState = (EmptyState);
632
+ ;// CONCATENATED MODULE: ./src/components/ui/EmptyState/index.ts
633
+
634
+
635
+ /***/ }),
636
+
637
+ /***/ 285:
638
+ /***/ ((module) => {
639
+
640
+ // Exports
641
+ module.exports = {
642
+ "fs-cart-sidebar": "cart-sidebar_fs-cart-sidebar__vg9bV",
643
+ "fsCartSidebar": "cart-sidebar_fs-cart-sidebar__vg9bV"
644
+ };
645
+
646
+
647
+ /***/ }),
648
+
649
+ /***/ 9320:
650
+ /***/ ((module) => {
651
+
652
+ // Exports
653
+ module.exports = {
654
+ "fs-order-summary": "order-summary_fs-order-summary___R2v8",
655
+ "fsOrderSummary": "order-summary_fs-order-summary___R2v8"
656
+ };
657
+
658
+
659
+ /***/ }),
660
+
661
+ /***/ 8098:
662
+ /***/ ((module) => {
663
+
664
+ // Exports
665
+ module.exports = {
666
+ "fs-empty-state": "empty-state_fs-empty-state__F7Xul",
667
+ "fsEmptyState": "empty-state_fs-empty-state__F7Xul"
668
+ };
669
+
670
+
671
+ /***/ })
672
+
673
+ };
674
+ ;