@faststore/core 2.0.135-alpha.0 → 2.0.138-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 (160) hide show
  1. package/.turbo/turbo-build.log +3 -5
  2. package/CHANGELOG.md +10 -0
  3. package/cms/faststore/content-types.json +0 -5
  4. package/package.json +3 -3
  5. package/src/components/ui/ImageGallery/ImageGallery.tsx +1 -1
  6. package/src/pages/index.tsx +7 -6
  7. package/.next/BUILD_ID +0 -1
  8. package/.next/build-manifest.json +0 -132
  9. package/.next/cache/.tsbuildinfo +0 -1
  10. package/.next/cache/config.json +0 -7
  11. package/.next/cache/eslint/.cache_1gneedd +0 -1
  12. package/.next/cache/next-server.js.nft.json +0 -1
  13. package/.next/cache/webpack/client-production/0.pack +0 -0
  14. package/.next/cache/webpack/client-production/index.pack +0 -0
  15. package/.next/cache/webpack/server-production/0.pack +0 -0
  16. package/.next/cache/webpack/server-production/index.pack +0 -0
  17. package/.next/export-marker.json +0 -1
  18. package/.next/images-manifest.json +0 -1
  19. package/.next/next-server.js.nft.json +0 -1
  20. package/.next/package.json +0 -1
  21. package/.next/prerender-manifest.json +0 -1
  22. package/.next/react-loadable-manifest.json +0 -48
  23. package/.next/required-server-files.json +0 -1
  24. package/.next/routes-manifest.json +0 -1
  25. package/.next/server/chunks/104.js +0 -703
  26. package/.next/server/chunks/120.js +0 -437
  27. package/.next/server/chunks/123.js +0 -58
  28. package/.next/server/chunks/143.js +0 -106
  29. package/.next/server/chunks/183.js +0 -80
  30. package/.next/server/chunks/247.js +0 -61
  31. package/.next/server/chunks/256.js +0 -1786
  32. package/.next/server/chunks/280.js +0 -324
  33. package/.next/server/chunks/287.js +0 -58
  34. package/.next/server/chunks/312.js +0 -670
  35. package/.next/server/chunks/336.js +0 -821
  36. package/.next/server/chunks/350.js +0 -142
  37. package/.next/server/chunks/368.js +0 -253
  38. package/.next/server/chunks/401.js +0 -7241
  39. package/.next/server/chunks/431.js +0 -7241
  40. package/.next/server/chunks/502.js +0 -600
  41. package/.next/server/chunks/557.js +0 -132
  42. package/.next/server/chunks/576.js +0 -80
  43. package/.next/server/chunks/597.js +0 -169
  44. package/.next/server/chunks/608.js +0 -644
  45. package/.next/server/chunks/644.js +0 -235
  46. package/.next/server/chunks/664.js +0 -3401
  47. package/.next/server/chunks/676.js +0 -32
  48. package/.next/server/chunks/701.js +0 -87
  49. package/.next/server/chunks/74.js +0 -2520
  50. package/.next/server/chunks/746.js +0 -225
  51. package/.next/server/chunks/82.js +0 -371
  52. package/.next/server/chunks/854.js +0 -72
  53. package/.next/server/chunks/859.js +0 -959
  54. package/.next/server/chunks/886.js +0 -120
  55. package/.next/server/chunks/98.js +0 -124
  56. package/.next/server/chunks/font-manifest.json +0 -1
  57. package/.next/server/font-manifest.json +0 -1
  58. package/.next/server/middleware-build-manifest.js +0 -1
  59. package/.next/server/middleware-manifest.json +0 -6
  60. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  61. package/.next/server/pages/404.js +0 -393
  62. package/.next/server/pages/404.js.nft.json +0 -1
  63. package/.next/server/pages/500.js +0 -395
  64. package/.next/server/pages/500.js.nft.json +0 -1
  65. package/.next/server/pages/[...slug].js +0 -708
  66. package/.next/server/pages/[...slug].js.nft.json +0 -1
  67. package/.next/server/pages/[slug]/p.js +0 -2388
  68. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  69. package/.next/server/pages/_app.js +0 -368
  70. package/.next/server/pages/_app.js.nft.json +0 -1
  71. package/.next/server/pages/_document.js +0 -304
  72. package/.next/server/pages/_document.js.nft.json +0 -1
  73. package/.next/server/pages/_error.js +0 -164
  74. package/.next/server/pages/_error.js.nft.json +0 -1
  75. package/.next/server/pages/account.js +0 -370
  76. package/.next/server/pages/account.js.nft.json +0 -1
  77. package/.next/server/pages/api/graphql.js +0 -315
  78. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  79. package/.next/server/pages/api/preview.js +0 -118
  80. package/.next/server/pages/api/preview.js.nft.json +0 -1
  81. package/.next/server/pages/checkout.js +0 -370
  82. package/.next/server/pages/checkout.js.nft.json +0 -1
  83. package/.next/server/pages/en-US/404.html +0 -81
  84. package/.next/server/pages/en-US/404.json +0 -1
  85. package/.next/server/pages/en-US/500.html +0 -81
  86. package/.next/server/pages/en-US/500.json +0 -1
  87. package/.next/server/pages/en-US/account.html +0 -81
  88. package/.next/server/pages/en-US/account.json +0 -1
  89. package/.next/server/pages/en-US/checkout.html +0 -81
  90. package/.next/server/pages/en-US/checkout.json +0 -1
  91. package/.next/server/pages/en-US/login.html +0 -81
  92. package/.next/server/pages/en-US/login.json +0 -1
  93. package/.next/server/pages/en-US/s.html +0 -81
  94. package/.next/server/pages/en-US/s.json +0 -1
  95. package/.next/server/pages/en-US.html +0 -81
  96. package/.next/server/pages/en-US.json +0 -1
  97. package/.next/server/pages/index.js +0 -967
  98. package/.next/server/pages/index.js.nft.json +0 -1
  99. package/.next/server/pages/login.js +0 -375
  100. package/.next/server/pages/login.js.nft.json +0 -1
  101. package/.next/server/pages/s.js +0 -438
  102. package/.next/server/pages/s.js.nft.json +0 -1
  103. package/.next/server/pages-manifest.json +0 -16
  104. package/.next/server/webpack-api-runtime.js +0 -229
  105. package/.next/server/webpack-runtime.js +0 -229
  106. package/.next/static/RfATetV4YfvX5h6l_dzKd/_buildManifest.js +0 -1
  107. package/.next/static/RfATetV4YfvX5h6l_dzKd/_ssgManifest.js +0 -1
  108. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  109. package/.next/static/chunks/170.c17ce564bb568265.js +0 -1
  110. package/.next/static/chunks/202-80a2f2380b08e20d.js +0 -1
  111. package/.next/static/chunks/226.b57e10ad9932f88c.js +0 -1
  112. package/.next/static/chunks/336.0846f48eccce57e4.js +0 -1
  113. package/.next/static/chunks/366-4a0572a47e2225d9.js +0 -1
  114. package/.next/static/chunks/391-47b923ef44945418.js +0 -1
  115. package/.next/static/chunks/495.8ffebac98e9475dc.js +0 -1
  116. package/.next/static/chunks/502.7fd4f230c33d8eca.js +0 -1
  117. package/.next/static/chunks/545-1d3d08edfd2ee4c6.js +0 -1
  118. package/.next/static/chunks/597.c5cf3fbeae5ceb63.js +0 -1
  119. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  120. package/.next/static/chunks/706-cbadf253bebb094f.js +0 -1
  121. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  122. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  123. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  124. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  125. package/.next/static/chunks/pages/404-eb7e8c41c852c36d.js +0 -1
  126. package/.next/static/chunks/pages/500-7dc597fd3f74e419.js +0 -1
  127. package/.next/static/chunks/pages/[...slug]-a0cf0c079a55bf65.js +0 -1
  128. package/.next/static/chunks/pages/[slug]/p-d740b4fba658ca99.js +0 -1
  129. package/.next/static/chunks/pages/_app-3e4e7e579cb0681a.js +0 -1
  130. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  131. package/.next/static/chunks/pages/account-7f4c51b747b4edd0.js +0 -1
  132. package/.next/static/chunks/pages/checkout-cb8871ab88a1471f.js +0 -1
  133. package/.next/static/chunks/pages/index-efc87faefbfc1c42.js +0 -1
  134. package/.next/static/chunks/pages/login-9490b01a047906c0.js +0 -1
  135. package/.next/static/chunks/pages/s-9fdb82cf9875f2ed.js +0 -1
  136. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  137. package/.next/static/chunks/webpack-ce3960dc6e16b370.js +0 -1
  138. package/.next/static/css/161ccac1909562f3.css +0 -1
  139. package/.next/static/css/48af598df5fe042d.css +0 -1
  140. package/.next/static/css/587c27bbda64e700.css +0 -1
  141. package/.next/static/css/5bd04b22f4d69d95.css +0 -1
  142. package/.next/static/css/73426e282e7b3685.css +0 -1
  143. package/.next/static/css/9c478df3dd8312bc.css +0 -1
  144. package/.next/static/css/9cd06a344b528d1d.css +0 -1
  145. package/.next/static/css/bc39c02d387d74b8.css +0 -1
  146. package/.next/static/css/c4e7bbc97da4a4ee.css +0 -1
  147. package/.next/static/css/e02cdad8fc000339.css +0 -1
  148. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  149. package/.next/trace +0 -68
  150. package/public/~partytown/debug/partytown-atomics.js +0 -556
  151. package/public/~partytown/debug/partytown-media.js +0 -374
  152. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  153. package/public/~partytown/debug/partytown-sw.js +0 -59
  154. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  155. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  156. package/public/~partytown/debug/partytown.js +0 -72
  157. package/public/~partytown/partytown-atomics.js +0 -2
  158. package/public/~partytown/partytown-media.js +0 -2
  159. package/public/~partytown/partytown-sw.js +0 -2
  160. package/public/~partytown/partytown.js +0 -2
@@ -1,437 +0,0 @@
1
- "use strict";
2
- exports.id = 120;
3
- exports.ids = [120];
4
- exports.modules = {
5
-
6
- /***/ 120:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- "Z": () => (/* reexport */ ui_Breadcrumb_Breadcrumb)
13
- });
14
-
15
- // EXTERNAL MODULE: external "react"
16
- var external_react_ = __webpack_require__(6689);
17
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
18
- // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
19
- var Icon = __webpack_require__(5045);
20
- // EXTERNAL MODULE: ../components/dist/atoms/Link/Link.js
21
- var Link = __webpack_require__(7865);
22
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/contexts/DropdownContext.js
23
-
24
- const defaultState = {
25
- isOpen: false,
26
- dropdownButtonRef: null,
27
- selectedDropdownItemIndexRef: null,
28
- dropdownItemsRef: null,
29
- id: 'fs-dropdown',
30
- };
31
- const DropdownContext = (0,external_react_.createContext)(defaultState);
32
- /* harmony default export */ const contexts_DropdownContext = (DropdownContext);
33
- //# sourceMappingURL=DropdownContext.js.map
34
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/Dropdown.js
35
-
36
-
37
- const Dropdown = ({ children, isOpen: isOpenDefault = false, onDismiss, id = 'fs-dropdown', }) => {
38
- const [isOpen, setIsOpen] = (0,external_react_.useState)(isOpenDefault);
39
- const dropdownItemsRef = (0,external_react_.useRef)([]);
40
- const selectedDropdownItemIndexRef = (0,external_react_.useRef)(0);
41
- const dropdownButtonRef = (0,external_react_.useRef)(null);
42
- const close = (0,external_react_.useCallback)(() => {
43
- setIsOpen(false);
44
- onDismiss?.();
45
- }, [onDismiss]);
46
- const open = () => {
47
- setIsOpen(true);
48
- };
49
- const toggle = (0,external_react_.useCallback)(() => {
50
- setIsOpen((old) => {
51
- if (old) {
52
- onDismiss?.();
53
- dropdownButtonRef.current?.focus();
54
- }
55
- return !old;
56
- });
57
- }, [onDismiss]);
58
- (0,external_react_.useEffect)(() => {
59
- setIsOpen(isOpenDefault);
60
- }, [isOpenDefault]);
61
- (0,external_react_.useEffect)(() => {
62
- isOpen && dropdownItemsRef?.current[0]?.focus();
63
- }, [isOpen]);
64
- (0,external_react_.useEffect)(() => {
65
- let firstClick = true;
66
- const event = (e) => {
67
- const someItemWasClicked = dropdownItemsRef?.current.some((item) => e.target === item);
68
- if (firstClick) {
69
- firstClick = false;
70
- return;
71
- }
72
- !someItemWasClicked && close();
73
- };
74
- if (isOpen) {
75
- document.addEventListener('click', event);
76
- }
77
- else {
78
- document.removeEventListener('click', event);
79
- }
80
- return () => {
81
- document.removeEventListener('click', event);
82
- };
83
- }, [close, isOpen]);
84
- const value = (0,external_react_.useMemo)(() => {
85
- return {
86
- isOpen,
87
- close,
88
- open,
89
- toggle,
90
- dropdownButtonRef,
91
- onDismiss,
92
- selectedDropdownItemIndexRef,
93
- dropdownItemsRef,
94
- id,
95
- };
96
- }, [close, id, isOpen, onDismiss, toggle]);
97
- return (external_react_default().createElement(contexts_DropdownContext.Provider, { value: value }, children));
98
- };
99
- /* harmony default export */ const Dropdown_Dropdown = (Dropdown);
100
- //# sourceMappingURL=Dropdown.js.map
101
- // EXTERNAL MODULE: ../components/dist/atoms/Button/Button.js
102
- var Button = __webpack_require__(7578);
103
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/hooks/useDropdown.js
104
-
105
-
106
- /**
107
- * Hook to use the Dropdown context.
108
- * @returns Dropdown context.
109
- */
110
- const useDropdown = () => {
111
- const context = (0,external_react_.useContext)(contexts_DropdownContext);
112
- if (context === undefined) {
113
- throw new Error('Do not use useDropdown hook outside the Dropdown context.');
114
- }
115
- return context;
116
- };
117
- //# sourceMappingURL=useDropdown.js.map
118
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/DropdownButton.js
119
-
120
-
121
-
122
- const DropdownButton = (0,external_react_.forwardRef)(function DropdownButton({ children, testId = 'fs-dropdown-button', ...otherProps }, ref) {
123
- const { toggle, dropdownButtonRef, isOpen, id } = useDropdown();
124
- (0,external_react_.useImperativeHandle)(ref, () => dropdownButtonRef.current, [
125
- dropdownButtonRef,
126
- ]);
127
- return (external_react_default().createElement(Button/* default */.Z, { "data-fs-dropdown-button": true, onClick: toggle, "data-testid": testId, ref: dropdownButtonRef, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-controls": id, variant: 'tertiary', ...otherProps }, children));
128
- });
129
- /* harmony default export */ const Dropdown_DropdownButton = (DropdownButton);
130
- //# sourceMappingURL=DropdownButton.js.map
131
- // EXTERNAL MODULE: external "react-dom"
132
- var external_react_dom_ = __webpack_require__(6405);
133
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/hooks/useDropdownPosition.js
134
-
135
- /**
136
- * Hook used to find the DropdownMenu position in relation to DropdownButton
137
- * @returns Style with positions.
138
- */
139
- const useDropdownPosition = () => {
140
- const { dropdownButtonRef } = useDropdown();
141
- // Necessary to use this component in SSR
142
- const isBrowser = typeof window !== 'undefined';
143
- const buttonRect = dropdownButtonRef?.current?.getBoundingClientRect();
144
- const topLevel = buttonRect?.top ?? 0;
145
- const topOffset = buttonRect?.height ?? 0;
146
- const leftLevel = buttonRect?.left ?? 0;
147
- // The scroll properties fix the position of DropdownMenu when the scroll is activated.
148
- const scrollTop = isBrowser ? document?.documentElement?.scrollTop : 0;
149
- const scrollLeft = isBrowser ? document?.documentElement?.scrollLeft : 0;
150
- const topPosition = topLevel + topOffset + scrollTop;
151
- const leftPosition = leftLevel + scrollLeft;
152
- return {
153
- position: 'absolute',
154
- top: topPosition,
155
- left: leftPosition,
156
- };
157
- };
158
- //# sourceMappingURL=useDropdownPosition.js.map
159
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/DropdownMenu.js
160
-
161
-
162
-
163
-
164
- /*
165
- * This component is based on @reach/dialog.
166
- * https://github.com/reach/reach-ui/blob/main/packages/dialog/src/index.tsx
167
- * https://reach.tech/dialog
168
- */
169
- const DropdownMenu = ({ children, testId = 'fs-dropdown-menu', size = 'regular', style, ...otherProps }) => {
170
- const { isOpen, close, dropdownItemsRef, selectedDropdownItemIndexRef, dropdownButtonRef, id } = useDropdown();
171
- const dropdownPosition = useDropdownPosition();
172
- const childrenLength = external_react_default().Children.toArray(children).length;
173
- const handleDownPress = () => {
174
- if (selectedDropdownItemIndexRef.current < childrenLength - 1) {
175
- selectedDropdownItemIndexRef.current++;
176
- }
177
- else {
178
- selectedDropdownItemIndexRef.current = 0;
179
- }
180
- dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
181
- };
182
- const handleUpPress = () => {
183
- if (selectedDropdownItemIndexRef.current > 0) {
184
- selectedDropdownItemIndexRef.current--;
185
- }
186
- else {
187
- selectedDropdownItemIndexRef.current = childrenLength - 1;
188
- }
189
- dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
190
- };
191
- const handleHomePress = () => {
192
- selectedDropdownItemIndexRef.current = 0;
193
- dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
194
- };
195
- const handleEndPress = () => {
196
- selectedDropdownItemIndexRef.current = childrenLength - 1;
197
- dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
198
- };
199
- const handleEscapePress = () => {
200
- close?.();
201
- dropdownButtonRef?.current?.focus();
202
- };
203
- const handleBackdropKeyDown = (event) => {
204
- if (event.defaultPrevented || event.key === 'Enter') {
205
- return;
206
- }
207
- event.preventDefault();
208
- event.key === 'Escape' && handleEscapePress();
209
- event.key === 'ArrowDown' && handleDownPress();
210
- event.key === 'ArrowUp' && handleUpPress();
211
- event.key === 'Home' && handleHomePress();
212
- event.key === 'End' && handleEndPress();
213
- event.stopPropagation();
214
- };
215
- const clearChildrenReferences = () => {
216
- dropdownItemsRef.current = [];
217
- return null;
218
- };
219
- return isOpen
220
- ? (0,external_react_dom_.createPortal)(external_react_default().createElement("div", { role: "presentation", "data-fs-dropdown-overlay": true, onKeyDown: handleBackdropKeyDown, "data-testid": `${testId}-overlay` },
221
- external_react_default().createElement("div", { role: "menu", "aria-orientation": "vertical", "data-fs-dropdown-menu": true, "data-fs-dropdown-menu-size": size, "data-testid": testId, style: { ...dropdownPosition, ...style }, id: id, ...otherProps }, children)), document.body)
222
- : clearChildrenReferences();
223
- };
224
- /* harmony default export */ const Dropdown_DropdownMenu = (DropdownMenu);
225
- //# sourceMappingURL=DropdownMenu.js.map
226
- ;// CONCATENATED MODULE: ../components/dist/molecules/Dropdown/DropdownItem.js
227
-
228
-
229
- const DropdownItem = (0,external_react_.forwardRef)(function Button({ children, icon, onClick, testId = 'fs-dropdown-item', ...otherProps }, ref) {
230
- const { dropdownItemsRef, selectedDropdownItemIndexRef, close } = useDropdown();
231
- const [dropdownItemIndex, setDropdownItemIndex] = (0,external_react_.useState)(0);
232
- const dropdownItemRef = (0,external_react_.useRef)();
233
- const addToRefs = (el) => {
234
- if (el && !dropdownItemsRef?.current.includes(el)) {
235
- dropdownItemsRef?.current.push(el);
236
- setDropdownItemIndex(dropdownItemsRef?.current.findIndex((element) => element === el) ?? 0);
237
- }
238
- dropdownItemRef.current = el;
239
- };
240
- const onFocusItem = () => {
241
- selectedDropdownItemIndexRef.current = dropdownItemIndex;
242
- dropdownItemsRef?.current[selectedDropdownItemIndexRef.current]?.focus();
243
- };
244
- const handleOnClickItem = (event) => {
245
- onClick?.(event);
246
- close?.();
247
- };
248
- (0,external_react_.useImperativeHandle)(ref, () => dropdownItemRef.current, []);
249
- return (external_react_default().createElement("button", { "data-fs-dropdown-item": true, "data-testid": testId, ref: addToRefs, onFocus: onFocusItem, onMouseEnter: onFocusItem, onClick: handleOnClickItem, role: "menuitem", tabIndex: -1, "data-index": dropdownItemIndex, ...otherProps },
250
- !!icon && icon,
251
- children));
252
- });
253
- /* harmony default export */ const Dropdown_DropdownItem = (DropdownItem);
254
- //# sourceMappingURL=DropdownItem.js.map
255
- // EXTERNAL MODULE: ../components/dist/atoms/List/List.js
256
- var List = __webpack_require__(1329);
257
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/Divider.js
258
-
259
- const Divider = ({ divider, testId }) => {
260
- const props = {
261
- 'data-fs-breadcrumb-divider': true,
262
- 'aria-hidden': true,
263
- 'data-testid': `${testId}-divider`,
264
- };
265
- if (external_react_default().isValidElement(divider)) {
266
- return external_react_default().cloneElement(divider, props);
267
- }
268
- return external_react_default().createElement("span", { ...props }, divider ?? '/');
269
- };
270
- /* harmony default export */ const Breadcrumb_Divider = (Divider);
271
- //# sourceMappingURL=Divider.js.map
272
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/ListItem.js
273
-
274
-
275
- const ListItem = ({ children, isLastItem, divider, testId }) => {
276
- const props = {
277
- 'data-testid': `${testId}-item`,
278
- 'data-fs-breadcrumb-item': isLastItem ? 'current' : true,
279
- 'aria-current': isLastItem ? 'page' : undefined,
280
- };
281
- if (!external_react_default().isValidElement(children)) {
282
- return (external_react_default().createElement("li", { "data-fs-breadcrumb-list-item": true },
283
- external_react_default().createElement("span", { ...props },
284
- children,
285
- isLastItem ? null : external_react_default().createElement(Breadcrumb_Divider, { divider: divider, testId: testId }))));
286
- }
287
- return (external_react_default().createElement("li", { "data-fs-breadcrumb-list-item": true },
288
- external_react_default().cloneElement(children, props),
289
- isLastItem ? null : external_react_default().createElement(Breadcrumb_Divider, { divider: divider, testId: testId })));
290
- };
291
- /* harmony default export */ const Breadcrumb_ListItem = (ListItem);
292
- //# sourceMappingURL=ListItem.js.map
293
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/BreadcrumbPure.js
294
-
295
-
296
-
297
- const BreadcrumbPure = (0,external_react_.forwardRef)(function BreadcrumbPure({ children, divider: rawDivider = '', testId = 'fs-breadcrumb', ...otherProps }, ref) {
298
- return (external_react_default().createElement("nav", { "aria-label": "Breadcrumb", role: "navigation", ref: ref, "data-fs-breadcrumb": true, "data-testid": testId, ...otherProps },
299
- external_react_default().createElement(List/* default */.Z, { as: "ol", "data-fs-breadcrumb-list": true }, external_react_default().Children.toArray(children).map((child, index, childrenArray) => {
300
- const isLastItem = index === childrenArray.length - 1;
301
- return (external_react_default().createElement(Breadcrumb_ListItem, { isLastItem: isLastItem, divider: rawDivider, key: `breadcrumb-${index}`, testId: testId }, child));
302
- }))));
303
- });
304
- /* harmony default export */ const Breadcrumb_BreadcrumbPure = (BreadcrumbPure);
305
- //# sourceMappingURL=BreadcrumbPure.js.map
306
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/HomeLink.js
307
-
308
-
309
- const HomeLink = () => (external_react_default().createElement(Link/* default */.Z, { "data-fs-breadcrumb-link": true, "data-fs-breadcrumb-link-home": true, "aria-label": "Go to homepage", href: "/" },
310
- external_react_default().createElement(Icon/* default */.Z, { name: "House", width: 18, height: 18 })));
311
- /* harmony default export */ const Breadcrumb_HomeLink = (HomeLink);
312
- //# sourceMappingURL=HomeLink.js.map
313
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/BreadcrumbBase.js
314
-
315
-
316
-
317
-
318
-
319
-
320
- const BreadcrumbBase = (0,external_react_.forwardRef)(function BreadcrumbBase({ children, divider: rawDivider = '', testId = 'fs-breadcrumb', breadcrumbList, isDesktop = false, renderLink, homeLink = external_react_default().createElement(Breadcrumb_HomeLink, null), dropdownButtonIcon = external_react_default().createElement(Icon/* default */.Z, { name: "DotsThree" }), collapsedItemsIcon = (external_react_default().createElement(Icon/* default */.Z, { "data-fs-dropdown-item-icon": true, name: "ArrowElbowDownRight" })), ...otherProps }, ref) {
321
- const homeLinkProps = {
322
- 'data-fs-breadcrumb-link': true,
323
- 'data-fs-breadcrumb-link-home': true,
324
- 'aria-label': 'Go to homepage',
325
- href: '/',
326
- };
327
- const homeLinkWithProps = (0,external_react_.cloneElement)(homeLink, homeLinkProps);
328
- const firstItem = isDesktop ? breadcrumbList[0] : null;
329
- const mediumItems = isDesktop
330
- ? breadcrumbList.slice(1, -2)
331
- : breadcrumbList.slice(0, -2);
332
- const lastItems = breadcrumbList.slice(-2);
333
- const collapseBreadcrumb = breadcrumbList.length > 4;
334
- const breadcrumbLink = (0,external_react_.useCallback)((renderLinkProps) => {
335
- const breadcrumbItem = renderLink?.(renderLinkProps);
336
- const itemProps = renderLinkProps.collapsed
337
- ? {
338
- 'data-fs-breadcrumb-dropdown-link': true,
339
- }
340
- : {
341
- 'data-fs-breadcrumb-link': true,
342
- };
343
- return breadcrumbItem ? ((0,external_react_.cloneElement)(breadcrumbItem, {
344
- ...itemProps,
345
- key: renderLinkProps.itemProps.position,
346
- })) : (external_react_default().createElement(Link/* default */.Z, { ...itemProps, href: renderLinkProps.itemProps.item, key: renderLinkProps.itemProps.position }, renderLinkProps.itemProps.name));
347
- }, [renderLink]);
348
- return (external_react_default().createElement(Breadcrumb_BreadcrumbPure, { ref: ref, "data-fs-breadcrumb-is-desktop": isDesktop, ...otherProps },
349
- homeLinkWithProps,
350
- !collapseBreadcrumb &&
351
- breadcrumbList.map((item, index) => {
352
- return breadcrumbList.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
353
- }),
354
- collapseBreadcrumb &&
355
- firstItem &&
356
- breadcrumbLink({ itemProps: firstItem, collapsed: false }),
357
- collapseBreadcrumb && (external_react_default().createElement(Dropdown_Dropdown, null,
358
- external_react_default().createElement(Dropdown_DropdownButton, { "data-fs-breadcrumb-dropdown-button": true, size: "small" }, dropdownButtonIcon),
359
- external_react_default().createElement(Dropdown_DropdownMenu, { "data-fs-breadcrumb-dropdown-menu": true }, mediumItems.map((item) => (external_react_default().createElement(Dropdown_DropdownItem, { "data-fs-breadcrumb-dropdown-item": true, key: String(item.position), icon: collapsedItemsIcon }, breadcrumbLink({ itemProps: item, collapsed: true }))))))),
360
- collapseBreadcrumb &&
361
- lastItems.map((item, index) => {
362
- return lastItems.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
363
- })));
364
- });
365
- /* harmony default export */ const Breadcrumb_BreadcrumbBase = (BreadcrumbBase);
366
- //# sourceMappingURL=BreadcrumbBase.js.map
367
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/Breadcrumb.js
368
-
369
-
370
- const Breadcrumb = ({ breadcrumbList, ...otherProps }) => (external_react_default().createElement((external_react_default()).Fragment, null,
371
- external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, ...otherProps }),
372
- external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, isDesktop: true, ...otherProps })));
373
- /* harmony default export */ const Breadcrumb_Breadcrumb = (Breadcrumb);
374
- //# sourceMappingURL=Breadcrumb.js.map
375
- // EXTERNAL MODULE: ./src/components/ui/Link/index.ts + 1 modules
376
- var ui_Link = __webpack_require__(1093);
377
- // EXTERNAL MODULE: external "react/jsx-runtime"
378
- var jsx_runtime_ = __webpack_require__(997);
379
- ;// CONCATENATED MODULE: ./src/components/ui/Breadcrumb/Breadcrumb.tsx
380
- const _excluded = ["breadcrumbList"];
381
-
382
- 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; }
383
-
384
- 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; }
385
-
386
- 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; }
387
-
388
- 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; }
389
-
390
- 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; }
391
-
392
-
393
-
394
-
395
-
396
-
397
- const Breadcrumb_Breadcrumb_Breadcrumb = _ref => {
398
- let {
399
- breadcrumbList
400
- } = _ref,
401
- otherProps = _objectWithoutProperties(_ref, _excluded);
402
-
403
- return /*#__PURE__*/jsx_runtime_.jsx(Breadcrumb_Breadcrumb, _objectSpread({
404
- breadcrumbList: breadcrumbList,
405
- homeLink: /*#__PURE__*/jsx_runtime_.jsx(ui_Link/* default */.Z, {
406
- "aria-label": "Go to homepage",
407
- href: "/",
408
- prefetch: false,
409
- children: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
410
- name: "House",
411
- width: 18,
412
- height: 18,
413
- weight: "bold"
414
- })
415
- }),
416
- renderLink: ({
417
- itemProps: {
418
- item: link,
419
- name
420
- }
421
- }) => /*#__PURE__*/jsx_runtime_.jsx(ui_Link/* default */.Z, {
422
- "data-fs-breadcrumb-link": true,
423
- href: link,
424
- prefetch: false,
425
- children: name
426
- })
427
- }, otherProps));
428
- };
429
-
430
- /* harmony default export */ const ui_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(Breadcrumb_Breadcrumb_Breadcrumb));
431
- ;// CONCATENATED MODULE: ./src/components/ui/Breadcrumb/index.ts
432
-
433
-
434
- /***/ })
435
-
436
- };
437
- ;
@@ -1,58 +0,0 @@
1
- "use strict";
2
- exports.id = 123;
3
- exports.ids = [123];
4
- exports.modules = {
5
-
6
- /***/ 123:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
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
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2765);
15
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5045);
16
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(875);
17
-
18
-
19
- const QuantitySelector = ({ max, min = 1, initial, disabled = false, onChange, testId = 'fs-quantity-selector', ...otherProps }) => {
20
- const [quantity, setQuantity] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial ?? min);
21
- const isLeftDisabled = quantity === min;
22
- const isRightDisabled = quantity === max;
23
- const changeQuantity = (increaseValue) => {
24
- const quantityValue = validateQuantityBounds(quantity + increaseValue);
25
- onChange?.(quantityValue);
26
- setQuantity(quantityValue);
27
- };
28
- const increase = () => changeQuantity(1);
29
- const decrease = () => changeQuantity(-1);
30
- function validateQuantityBounds(n) {
31
- const maxValue = min ? Math.max(n, min) : n;
32
- return max ? Math.min(maxValue, max) : maxValue;
33
- }
34
- function validateInput(e) {
35
- const val = e.currentTarget.value;
36
- if (!Number.isNaN(Number(val))) {
37
- setQuantity(() => {
38
- const quantityValue = validateQuantityBounds(Number(val));
39
- onChange?.(quantityValue);
40
- return quantityValue;
41
- });
42
- }
43
- }
44
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
45
- initial && setQuantity(initial);
46
- }, [initial]);
47
- return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-quantity-selector": disabled ? 'disabled' : 'true', "data-testid": testId, ...otherProps },
48
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "left", icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Minus", width: 16, height: 16, weight: "bold" }), "aria-label": "Decrement Quantity", "aria-controls": "quantity-selector-input", disabled: isLeftDisabled || disabled, onClick: decrease, testId: `${testId}-left-button`, size: "small" }),
49
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-quantity-selector-input": true, id: "quantity-selector-input", "aria-label": "Quantity", value: quantity, onChange: validateInput, disabled: disabled }),
50
- react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "right", "aria-controls": "quantity-selector-input", "aria-label": "Increment Quantity", disabled: isRightDisabled || disabled, icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Plus", width: 16, height: 16, weight: "bold" }), onClick: increase, testId: `${testId}-right-button`, size: "small" })));
51
- };
52
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuantitySelector);
53
- //# sourceMappingURL=QuantitySelector.js.map
54
-
55
- /***/ })
56
-
57
- };
58
- ;
@@ -1,106 +0,0 @@
1
- "use strict";
2
- exports.id = 143;
3
- exports.ids = [143];
4
- exports.modules = {
5
-
6
- /***/ 9143:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
9
- __webpack_require__.r(__webpack_exports__);
10
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
12
- /* harmony export */ });
13
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7183);
14
- /* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_0__);
15
- 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; }
16
-
17
- 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; }
18
-
19
- 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; }
20
-
21
- /**
22
- * More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
23
- */
24
-
25
- const THIRTY_MINUTES_S = 30 * 60;
26
- const ONE_YEAR_S = 365 * 24 * 3600;
27
-
28
- const randomUUID = () => typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : (Math.random() * 1e6).toFixed(0);
29
-
30
- const createStorage = (key, expiresSecond) => {
31
- const timelapsed = past => (Date.now() - past) / 1e3;
32
-
33
- return () => {
34
- const item = JSON.parse(localStorage.getItem(key) ?? 'null');
35
- const isExpired = !item || timelapsed(item.createdAt) > expiresSecond;
36
- const payload = isExpired ? randomUUID() : item.payload;
37
-
38
- if (isExpired) {
39
- const data = {
40
- payload,
41
- createdAt: Date.now()
42
- };
43
- localStorage.setItem(key, JSON.stringify(data));
44
- }
45
-
46
- return payload;
47
- };
48
- };
49
-
50
- const user = {
51
- anonymous: createStorage('vtex.search.anonymous', ONE_YEAR_S),
52
- session: createStorage('vtex.search.session', THIRTY_MINUTES_S)
53
- };
54
-
55
- const sendEvent = options => fetch(`https://sp.vtex.com/event-api/v1/${(_faststore_config__WEBPACK_IMPORTED_MODULE_0___default().api.storeId)}/event`, {
56
- method: 'POST',
57
- body: JSON.stringify(_objectSpread(_objectSpread({}, options), {}, {
58
- userAgent: navigator.userAgent,
59
- anonymous: user.anonymous(),
60
- session: user.session()
61
- })),
62
- headers: {
63
- 'content-type': 'application/json'
64
- }
65
- });
66
-
67
- const isFullTextSearch = url => typeof url.searchParams.get('q') === 'string' && /^\/s(\/)?$/g.test(url.pathname);
68
-
69
- const handleEvent = event => {
70
- if (event.name !== 'search_select_item') {
71
- return;
72
- }
73
-
74
- const url = new URL(event.params.url);
75
-
76
- if (!isFullTextSearch(url)) {
77
- return;
78
- }
79
-
80
- for (const item of event.params.items ?? []) {
81
- const productId = item.item_id ?? item.item_variant;
82
- const position = item.index;
83
-
84
- if (productId && position) {
85
- sendEvent({
86
- type: 'search.click',
87
- productId,
88
- position,
89
- url: url.href,
90
- text: url.searchParams.get('q') ?? '<empty>'
91
- });
92
- }
93
- }
94
- };
95
-
96
- setInterval(() => sendEvent({
97
- type: 'session.ping'
98
- }), 60 * 1e3
99
- /* One minute */
100
- );
101
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleEvent);
102
-
103
- /***/ })
104
-
105
- };
106
- ;