@faststore/core 2.0.165-alpha.0 → 2.0.168-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 (166) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/CHANGELOG.md +12 -0
  3. package/cms/faststore/sections.json +226 -0
  4. package/package.json +3 -3
  5. package/src/Layout.tsx +1 -25
  6. package/src/components/cart/CartSidebar/CartSidebar.tsx +97 -54
  7. package/src/components/cms/GlobalSections.tsx +11 -9
  8. package/src/components/region/RegionBar/RegionBar.tsx +35 -3
  9. package/src/components/region/RegionModal/RegionModal.tsx +81 -19
  10. package/src/components/sections/RegionBar/RegionBar.tsx +41 -0
  11. package/.next/BUILD_ID +0 -1
  12. package/.next/build-manifest.json +0 -132
  13. package/.next/cache/.tsbuildinfo +0 -1
  14. package/.next/cache/config.json +0 -7
  15. package/.next/cache/eslint/.cache_1gneedd +0 -1
  16. package/.next/cache/next-server.js.nft.json +0 -1
  17. package/.next/cache/webpack/client-production/0.pack +0 -0
  18. package/.next/cache/webpack/client-production/index.pack +0 -0
  19. package/.next/cache/webpack/server-production/0.pack +0 -0
  20. package/.next/cache/webpack/server-production/index.pack +0 -0
  21. package/.next/export-marker.json +0 -1
  22. package/.next/images-manifest.json +0 -1
  23. package/.next/next-server.js.nft.json +0 -1
  24. package/.next/package.json +0 -1
  25. package/.next/prerender-manifest.json +0 -1
  26. package/.next/react-loadable-manifest.json +0 -48
  27. package/.next/required-server-files.json +0 -1
  28. package/.next/routes-manifest.json +0 -1
  29. package/.next/server/chunks/123.js +0 -58
  30. package/.next/server/chunks/143.js +0 -106
  31. package/.next/server/chunks/183.js +0 -90
  32. package/.next/server/chunks/205.js +0 -692
  33. package/.next/server/chunks/247.js +0 -61
  34. package/.next/server/chunks/280.js +0 -324
  35. package/.next/server/chunks/287.js +0 -58
  36. package/.next/server/chunks/289.js +0 -229
  37. package/.next/server/chunks/312.js +0 -697
  38. package/.next/server/chunks/336.js +0 -821
  39. package/.next/server/chunks/350.js +0 -143
  40. package/.next/server/chunks/368.js +0 -253
  41. package/.next/server/chunks/487.js +0 -9142
  42. package/.next/server/chunks/502.js +0 -600
  43. package/.next/server/chunks/576.js +0 -90
  44. package/.next/server/chunks/597.js +0 -169
  45. package/.next/server/chunks/608.js +0 -644
  46. package/.next/server/chunks/644.js +0 -235
  47. package/.next/server/chunks/650.js +0 -9142
  48. package/.next/server/chunks/664.js +0 -3401
  49. package/.next/server/chunks/676.js +0 -32
  50. package/.next/server/chunks/701.js +0 -87
  51. package/.next/server/chunks/74.js +0 -2710
  52. package/.next/server/chunks/82.js +0 -371
  53. package/.next/server/chunks/854.js +0 -72
  54. package/.next/server/chunks/859.js +0 -959
  55. package/.next/server/chunks/874.js +0 -487
  56. package/.next/server/chunks/886.js +0 -120
  57. package/.next/server/chunks/907.js +0 -1803
  58. package/.next/server/chunks/970.js +0 -200
  59. package/.next/server/chunks/98.js +0 -124
  60. package/.next/server/chunks/font-manifest.json +0 -1
  61. package/.next/server/font-manifest.json +0 -1
  62. package/.next/server/middleware-build-manifest.js +0 -1
  63. package/.next/server/middleware-manifest.json +0 -6
  64. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  65. package/.next/server/pages/404.js +0 -393
  66. package/.next/server/pages/404.js.nft.json +0 -1
  67. package/.next/server/pages/500.js +0 -395
  68. package/.next/server/pages/500.js.nft.json +0 -1
  69. package/.next/server/pages/[...slug].js +0 -786
  70. package/.next/server/pages/[...slug].js.nft.json +0 -1
  71. package/.next/server/pages/[slug]/p.js +0 -2532
  72. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  73. package/.next/server/pages/_app.js +0 -368
  74. package/.next/server/pages/_app.js.nft.json +0 -1
  75. package/.next/server/pages/_document.js +0 -304
  76. package/.next/server/pages/_document.js.nft.json +0 -1
  77. package/.next/server/pages/_error.js +0 -164
  78. package/.next/server/pages/_error.js.nft.json +0 -1
  79. package/.next/server/pages/account.js +0 -370
  80. package/.next/server/pages/account.js.nft.json +0 -1
  81. package/.next/server/pages/api/graphql.js +0 -365
  82. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  83. package/.next/server/pages/api/preview.js +0 -119
  84. package/.next/server/pages/api/preview.js.nft.json +0 -1
  85. package/.next/server/pages/checkout.js +0 -370
  86. package/.next/server/pages/checkout.js.nft.json +0 -1
  87. package/.next/server/pages/en-US/404.html +0 -81
  88. package/.next/server/pages/en-US/404.json +0 -1
  89. package/.next/server/pages/en-US/500.html +0 -81
  90. package/.next/server/pages/en-US/500.json +0 -1
  91. package/.next/server/pages/en-US/account.html +0 -81
  92. package/.next/server/pages/en-US/account.json +0 -1
  93. package/.next/server/pages/en-US/checkout.html +0 -81
  94. package/.next/server/pages/en-US/checkout.json +0 -1
  95. package/.next/server/pages/en-US/login.html +0 -81
  96. package/.next/server/pages/en-US/login.json +0 -1
  97. package/.next/server/pages/en-US/s.html +0 -81
  98. package/.next/server/pages/en-US/s.json +0 -1
  99. package/.next/server/pages/en-US.html +0 -81
  100. package/.next/server/pages/en-US.json +0 -1
  101. package/.next/server/pages/index.js +0 -966
  102. package/.next/server/pages/index.js.nft.json +0 -1
  103. package/.next/server/pages/login.js +0 -375
  104. package/.next/server/pages/login.js.nft.json +0 -1
  105. package/.next/server/pages/s.js +0 -473
  106. package/.next/server/pages/s.js.nft.json +0 -1
  107. package/.next/server/pages-manifest.json +0 -16
  108. package/.next/server/webpack-api-runtime.js +0 -229
  109. package/.next/server/webpack-runtime.js +0 -229
  110. package/.next/static/chunks/0-82274e07cb857231.js +0 -1
  111. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  112. package/.next/static/chunks/226.b57e10ad9932f88c.js +0 -1
  113. package/.next/static/chunks/240-8e66b2892f9d8c40.js +0 -1
  114. package/.next/static/chunks/336.0846f48eccce57e4.js +0 -1
  115. package/.next/static/chunks/377-891ff95d759cb061.js +0 -1
  116. package/.next/static/chunks/391-47b923ef44945418.js +0 -1
  117. package/.next/static/chunks/495.0ecd099878b2a36d.js +0 -1
  118. package/.next/static/chunks/502.eeca300cb9a355fb.js +0 -1
  119. package/.next/static/chunks/545-1d3d08edfd2ee4c6.js +0 -1
  120. package/.next/static/chunks/597.57a8984b6a1071ae.js +0 -1
  121. package/.next/static/chunks/64.ebbe1d2b40f980c7.js +0 -1
  122. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  123. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  124. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  125. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  126. package/.next/static/chunks/main-fd466221927468fd.js +0 -1
  127. package/.next/static/chunks/pages/404-459452495a0df278.js +0 -1
  128. package/.next/static/chunks/pages/500-008e30c48eceebed.js +0 -1
  129. package/.next/static/chunks/pages/[...slug]-e9d8386ff5e56d85.js +0 -1
  130. package/.next/static/chunks/pages/[slug]/p-8346514a688bf869.js +0 -1
  131. package/.next/static/chunks/pages/_app-78846ca9151cf266.js +0 -1
  132. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  133. package/.next/static/chunks/pages/account-46263f0c100c3eae.js +0 -1
  134. package/.next/static/chunks/pages/checkout-20bb3710b24df3b6.js +0 -1
  135. package/.next/static/chunks/pages/index-2006be8f08ad057f.js +0 -1
  136. package/.next/static/chunks/pages/login-f9d316d261fcc062.js +0 -1
  137. package/.next/static/chunks/pages/s-1cbe740b5b781d28.js +0 -1
  138. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  139. package/.next/static/chunks/webpack-e9bf82a67cc08d0f.js +0 -1
  140. package/.next/static/css/13a4da555ff5e3be.css +0 -1
  141. package/.next/static/css/287f5ba239375052.css +0 -1
  142. package/.next/static/css/28d7d73e13e2bc1d.css +0 -1
  143. package/.next/static/css/2e00f7ba49c754b3.css +0 -1
  144. package/.next/static/css/47d82dcec9a7dbc2.css +0 -1
  145. package/.next/static/css/6e41f1b6078c14c1.css +0 -1
  146. package/.next/static/css/7d822a137c54a781.css +0 -1
  147. package/.next/static/css/c6f97f692b2efad9.css +0 -1
  148. package/.next/static/css/d4a0d9df8c6df555.css +0 -1
  149. package/.next/static/css/e02cdad8fc000339.css +0 -1
  150. package/.next/static/zYvKRrlOU3r6IZCy0a0eY/_buildManifest.js +0 -1
  151. package/.next/static/zYvKRrlOU3r6IZCy0a0eY/_ssgManifest.js +0 -1
  152. package/.next/trace +0 -70
  153. package/public/~partytown/debug/partytown-atomics.js +0 -556
  154. package/public/~partytown/debug/partytown-media.js +0 -374
  155. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  156. package/public/~partytown/debug/partytown-sw.js +0 -59
  157. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  158. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  159. package/public/~partytown/debug/partytown.js +0 -72
  160. package/public/~partytown/partytown-atomics.js +0 -2
  161. package/public/~partytown/partytown-media.js +0 -2
  162. package/public/~partytown/partytown-sw.js +0 -2
  163. package/public/~partytown/partytown.js +0 -2
  164. package/src/components/common/RegionBar/RegionBar.tsx +0 -17
  165. /package/src/components/{common → sections}/RegionBar/index.ts +0 -0
  166. /package/src/components/{common → sections}/RegionBar/section.module.scss +0 -0
@@ -1,487 +0,0 @@
1
- exports.id = 874;
2
- exports.ids = [874];
3
- exports.modules = {
4
-
5
- /***/ 22874:
6
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7
-
8
- "use strict";
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- "Z": () => (/* reexport */ sections_Breadcrumb_Breadcrumb)
13
- });
14
-
15
- // EXTERNAL MODULE: external "react"
16
- var external_react_ = __webpack_require__(16689);
17
- var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
18
- // EXTERNAL MODULE: ../components/dist/atoms/Icon/Icon.js
19
- var Icon = __webpack_require__(25045);
20
- // EXTERNAL MODULE: ../components/dist/atoms/Link/Link.js
21
- var Link = __webpack_require__(87865);
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__(57578);
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__(66405);
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__(41329);
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/BreadcrumbBase.js
307
-
308
-
309
-
310
-
311
-
312
- const BreadcrumbBase = (0,external_react_.forwardRef)(function BreadcrumbBase({ children, divider: rawDivider = '', testId = 'fs-breadcrumb', breadcrumbList, isDesktop = false, renderLink, homeLink, 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) {
313
- const firstItem = isDesktop ? breadcrumbList[0] : null;
314
- const mediumItems = isDesktop
315
- ? breadcrumbList.slice(1, -2)
316
- : breadcrumbList.slice(0, -2);
317
- const lastItems = breadcrumbList.slice(-2);
318
- const collapseBreadcrumb = breadcrumbList.length > 4;
319
- const breadcrumbLink = (0,external_react_.useCallback)((renderLinkProps) => {
320
- const breadcrumbItem = renderLink?.(renderLinkProps);
321
- const itemProps = renderLinkProps.collapsed
322
- ? {
323
- 'data-fs-breadcrumb-dropdown-link': true,
324
- }
325
- : {
326
- 'data-fs-breadcrumb-link': true,
327
- };
328
- return breadcrumbItem ? ((0,external_react_.cloneElement)(breadcrumbItem, {
329
- ...itemProps,
330
- key: renderLinkProps.itemProps.position,
331
- })) : (external_react_default().createElement(Link/* default */.Z, { ...itemProps, href: renderLinkProps.itemProps.item, key: renderLinkProps.itemProps.position }, renderLinkProps.itemProps.name));
332
- }, [renderLink]);
333
- return (external_react_default().createElement(Breadcrumb_BreadcrumbPure, { ref: ref, "data-fs-breadcrumb-is-desktop": isDesktop, ...otherProps },
334
- homeLink,
335
- !collapseBreadcrumb &&
336
- breadcrumbList.map((item, index) => {
337
- return breadcrumbList.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
338
- }),
339
- collapseBreadcrumb &&
340
- firstItem &&
341
- breadcrumbLink({ itemProps: firstItem, collapsed: false }),
342
- collapseBreadcrumb && (external_react_default().createElement(Dropdown_Dropdown, null,
343
- external_react_default().createElement(Dropdown_DropdownButton, { "data-fs-breadcrumb-dropdown-button": true, size: "small" }, dropdownButtonIcon),
344
- 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 }))))))),
345
- collapseBreadcrumb &&
346
- lastItems.map((item, index) => {
347
- return lastItems.length === index + 1 ? (external_react_default().createElement("span", { key: String(item.position) }, item.name)) : (breadcrumbLink({ itemProps: item, collapsed: false }));
348
- })));
349
- });
350
- /* harmony default export */ const Breadcrumb_BreadcrumbBase = (BreadcrumbBase);
351
- //# sourceMappingURL=BreadcrumbBase.js.map
352
- ;// CONCATENATED MODULE: ../components/dist/molecules/Breadcrumb/Breadcrumb.js
353
-
354
-
355
- const Breadcrumb = ({ breadcrumbList, ...otherProps }) => (external_react_default().createElement((external_react_default()).Fragment, null,
356
- external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, ...otherProps }),
357
- external_react_default().createElement(Breadcrumb_BreadcrumbBase, { breadcrumbList: breadcrumbList, isDesktop: true, ...otherProps })));
358
- /* harmony default export */ const Breadcrumb_Breadcrumb = (Breadcrumb);
359
- //# sourceMappingURL=Breadcrumb.js.map
360
- // EXTERNAL MODULE: ./src/components/ui/Link/index.ts + 1 modules
361
- var ui_Link = __webpack_require__(51093);
362
- // EXTERNAL MODULE: external "react/jsx-runtime"
363
- var jsx_runtime_ = __webpack_require__(20997);
364
- ;// CONCATENATED MODULE: ./src/components/ui/Breadcrumb/Breadcrumb.tsx
365
- const _excluded = ["icon", "alt"];
366
-
367
- 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; }
368
-
369
- 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; }
370
-
371
- 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; }
372
-
373
- 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; }
374
-
375
- 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; }
376
-
377
-
378
-
379
-
380
-
381
-
382
- const Breadcrumb_Breadcrumb_Breadcrumb = _ref => {
383
- let {
384
- icon = 'Home',
385
- alt = 'Go to homepage'
386
- } = _ref,
387
- otherProps = _objectWithoutProperties(_ref, _excluded);
388
-
389
- return /*#__PURE__*/jsx_runtime_.jsx(Breadcrumb_Breadcrumb, _objectSpread({
390
- homeLink: /*#__PURE__*/jsx_runtime_.jsx(ui_Link/* default */.Z, {
391
- "data-fs-breadcrumb-link": true,
392
- "data-fs-breadcrumb-link-home": true,
393
- "aria-label": alt,
394
- href: "/",
395
- prefetch: false,
396
- children: /*#__PURE__*/jsx_runtime_.jsx(Icon/* default */.Z, {
397
- name: icon,
398
- width: 18,
399
- height: 18,
400
- weight: "bold"
401
- })
402
- }),
403
- renderLink: ({
404
- itemProps: {
405
- item: link,
406
- name
407
- }
408
- }) => /*#__PURE__*/jsx_runtime_.jsx(ui_Link/* default */.Z, {
409
- "data-fs-breadcrumb-link": true,
410
- href: link,
411
- prefetch: false,
412
- children: name
413
- })
414
- }, otherProps));
415
- };
416
-
417
- /* harmony default export */ const ui_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(Breadcrumb_Breadcrumb_Breadcrumb));
418
- ;// CONCATENATED MODULE: ./src/components/ui/Breadcrumb/index.ts
419
-
420
- // EXTERNAL MODULE: ./src/components/sections/Section/index.ts
421
- var Section = __webpack_require__(57067);
422
- // EXTERNAL MODULE: ./src/components/sections/Breadcrumb/section.module.scss
423
- var section_module = __webpack_require__(25000);
424
- var section_module_default = /*#__PURE__*/__webpack_require__.n(section_module);
425
- ;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/Breadcrumb.tsx
426
- const Breadcrumb_excluded = ["context"];
427
-
428
- function Breadcrumb_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; }
429
-
430
- function Breadcrumb_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Breadcrumb_ownKeys(Object(source), !0).forEach(function (key) { Breadcrumb_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Breadcrumb_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
431
-
432
- function Breadcrumb_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; }
433
-
434
- function Breadcrumb_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = Breadcrumb_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; }
435
-
436
- function Breadcrumb_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; }
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
- const isProduct = x => x?.sku != undefined && x?.sku != null;
445
-
446
- const isCollection = x => x?.seo != undefined && x?.seo != null && x?.sku == undefined;
447
-
448
- function BreadcrumbSection(_ref) {
449
- let {
450
- context
451
- } = _ref,
452
- otherProps = Breadcrumb_objectWithoutProperties(_ref, Breadcrumb_excluded);
453
-
454
- const title = isCollection(context) ? context?.seo?.title : 'All Products';
455
- const fallback = [{
456
- item: '/',
457
- name: title,
458
- position: 1
459
- }];
460
- const breadcrumbList = isProduct(context) ? context?.breadcrumbList?.itemListElement : isCollection(context) ? context?.breadcrumbList?.itemListElement : fallback;
461
- return /*#__PURE__*/jsx_runtime_.jsx(Section/* default */.Z, {
462
- className: `${(section_module_default()).section} section-breadcrumb layout__content`,
463
- children: /*#__PURE__*/jsx_runtime_.jsx(ui_Breadcrumb_Breadcrumb, Breadcrumb_objectSpread({
464
- breadcrumbList: breadcrumbList
465
- }, otherProps))
466
- });
467
- }
468
-
469
- /* harmony default export */ const sections_Breadcrumb_Breadcrumb = (/*#__PURE__*/(0,external_react_.memo)(BreadcrumbSection));
470
- ;// CONCATENATED MODULE: ./src/components/sections/Breadcrumb/index.ts
471
-
472
-
473
- /***/ }),
474
-
475
- /***/ 25000:
476
- /***/ ((module) => {
477
-
478
- // Exports
479
- module.exports = {
480
- "section": "section_section__hRV9B"
481
- };
482
-
483
-
484
- /***/ })
485
-
486
- };
487
- ;
@@ -1,120 +0,0 @@
1
- "use strict";
2
- exports.id = 886;
3
- exports.ids = [886];
4
- exports.modules = {
5
-
6
- /***/ 90395:
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 */ "l": () => (/* binding */ useUI)
12
- /* harmony export */ });
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
14
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
15
-
16
- const reducer = (state, action) => {
17
- const { type } = action;
18
- switch (type) {
19
- case 'open': {
20
- const { payload } = action;
21
- document.body.classList.add('no-scroll');
22
- return {
23
- ...state,
24
- [payload]: true,
25
- };
26
- }
27
- case 'close': {
28
- const { payload } = action;
29
- document.body.classList.remove('no-scroll');
30
- return {
31
- ...state,
32
- [payload]: false,
33
- };
34
- }
35
- case 'pushToast': {
36
- return {
37
- ...state,
38
- toasts: [...state.toasts, action.payload],
39
- };
40
- }
41
- case 'popToast': {
42
- return {
43
- ...state,
44
- toasts: state.toasts.slice(1),
45
- };
46
- }
47
- default:
48
- throw new Error(`Action ${type} not implemented`);
49
- }
50
- };
51
- const initializer = () => ({
52
- cart: false,
53
- modal: false,
54
- navbar: false,
55
- filter: false,
56
- toasts: [],
57
- });
58
- const UIContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(undefined);
59
- function UIProvider({ children }) {
60
- const [ui, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, undefined, initializer);
61
- const callbacks = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
62
- openFilter: () => dispatch({ type: 'open', payload: 'filter' }),
63
- closeFilter: () => dispatch({ type: 'close', payload: 'filter' }),
64
- openNavbar: () => dispatch({ type: 'open', payload: 'navbar' }),
65
- closeNavbar: () => dispatch({ type: 'close', payload: 'navbar' }),
66
- openCart: () => dispatch({ type: 'open', payload: 'cart' }),
67
- closeCart: () => dispatch({ type: 'close', payload: 'cart' }),
68
- openModal: () => dispatch({ type: 'open', payload: 'modal' }),
69
- closeModal: () => dispatch({ type: 'close', payload: 'modal' }),
70
- pushToast: (toast) => dispatch({ type: 'pushToast', payload: toast }),
71
- popToast: () => dispatch({ type: 'popToast' }),
72
- }), []);
73
- const value = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
74
- ...ui,
75
- ...callbacks,
76
- }), [callbacks, ui]);
77
- return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(UIContext.Provider, { value: value }, children);
78
- }
79
- function useUI() {
80
- const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(UIContext);
81
- if (context === undefined) {
82
- throw new Error('Missing UI context on React tree');
83
- }
84
- return context;
85
- }
86
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UIProvider);
87
- //# sourceMappingURL=UIProvider.js.map
88
-
89
- /***/ }),
90
-
91
- /***/ 14950:
92
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
93
-
94
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
95
- /* harmony export */ "Wg": () => (/* binding */ unwrap),
96
- /* harmony export */ "re": () => (/* binding */ wrap),
97
- /* harmony export */ "vi": () => (/* binding */ ANALYTICS_EVENT_TYPE)
98
- /* harmony export */ });
99
- /* unused harmony export STORE_EVENT_PREFIX */
100
- const STORE_EVENT_PREFIX = 'store:';
101
- const ANALYTICS_EVENT_TYPE = 'AnalyticsEvent';
102
- const wrap = (event) => ({
103
- name: ANALYTICS_EVENT_TYPE,
104
- params: {
105
- ...event,
106
- name: `${STORE_EVENT_PREFIX}${event.name}`,
107
- },
108
- });
109
- const unwrap = (event) => {
110
- return {
111
- ...event.params,
112
- name: event.params.name.slice(STORE_EVENT_PREFIX.length, event.params.name.length),
113
- };
114
- };
115
- //# sourceMappingURL=wrap.js.map
116
-
117
- /***/ })
118
-
119
- };
120
- ;