@faststore/core 2.1.33 → 2.1.35

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 (195) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/build-manifest.json +129 -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/123.js +58 -0
  20. package/.next/server/chunks/143.js +106 -0
  21. package/.next/server/chunks/183.js +90 -0
  22. package/.next/server/chunks/184.js +61 -0
  23. package/.next/server/chunks/186.js +113 -0
  24. package/.next/server/chunks/247.js +61 -0
  25. package/.next/server/chunks/253.js +509 -0
  26. package/.next/server/chunks/269.js +517 -0
  27. package/.next/server/chunks/287.js +58 -0
  28. package/.next/server/chunks/289.js +239 -0
  29. package/.next/server/chunks/312.js +697 -0
  30. package/.next/server/chunks/350.js +143 -0
  31. package/.next/server/chunks/487.js +9142 -0
  32. package/.next/server/chunks/502.js +626 -0
  33. package/.next/server/chunks/576.js +90 -0
  34. package/.next/server/chunks/597.js +211 -0
  35. package/.next/server/chunks/650.js +9142 -0
  36. package/.next/server/chunks/676.js +32 -0
  37. package/.next/server/chunks/721.js +650 -0
  38. package/.next/server/chunks/74.js +4039 -0
  39. package/.next/server/chunks/81.js +1254 -0
  40. package/.next/server/chunks/825.js +4039 -0
  41. package/.next/server/chunks/854.js +72 -0
  42. package/.next/server/chunks/859.js +959 -0
  43. package/.next/server/chunks/886.js +120 -0
  44. package/.next/server/chunks/907.js +1910 -0
  45. package/.next/server/chunks/98.js +124 -0
  46. package/.next/server/chunks/font-manifest.json +1 -0
  47. package/.next/server/font-manifest.json +1 -0
  48. package/.next/server/middleware-build-manifest.js +1 -0
  49. package/.next/server/middleware-manifest.json +6 -0
  50. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  51. package/.next/server/pages/404.js +386 -0
  52. package/.next/server/pages/404.js.nft.json +1 -0
  53. package/.next/server/pages/500.js +388 -0
  54. package/.next/server/pages/500.js.nft.json +1 -0
  55. package/.next/server/pages/[...slug].js +1005 -0
  56. package/.next/server/pages/[...slug].js.nft.json +1 -0
  57. package/.next/server/pages/[slug]/p.js +2337 -0
  58. package/.next/server/pages/[slug]/p.js.nft.json +1 -0
  59. package/.next/server/pages/_app.js +281 -0
  60. package/.next/server/pages/_app.js.nft.json +1 -0
  61. package/.next/server/pages/_document.js +352 -0
  62. package/.next/server/pages/_document.js.nft.json +1 -0
  63. package/.next/server/pages/_error.js +164 -0
  64. package/.next/server/pages/_error.js.nft.json +1 -0
  65. package/.next/server/pages/account.js +363 -0
  66. package/.next/server/pages/account.js.nft.json +1 -0
  67. package/.next/server/pages/api/graphql.js +365 -0
  68. package/.next/server/pages/api/graphql.js.nft.json +1 -0
  69. package/.next/server/pages/api/preview.js +148 -0
  70. package/.next/server/pages/api/preview.js.nft.json +1 -0
  71. package/.next/server/pages/checkout.js +363 -0
  72. package/.next/server/pages/checkout.js.nft.json +1 -0
  73. package/.next/server/pages/en-US/404.html +81 -0
  74. package/.next/server/pages/en-US/404.json +1 -0
  75. package/.next/server/pages/en-US/500.html +81 -0
  76. package/.next/server/pages/en-US/500.json +1 -0
  77. package/.next/server/pages/en-US/account.html +81 -0
  78. package/.next/server/pages/en-US/account.json +1 -0
  79. package/.next/server/pages/en-US/checkout.html +81 -0
  80. package/.next/server/pages/en-US/checkout.json +1 -0
  81. package/.next/server/pages/en-US/login.html +81 -0
  82. package/.next/server/pages/en-US/login.json +1 -0
  83. package/.next/server/pages/en-US/s.html +81 -0
  84. package/.next/server/pages/en-US/s.json +1 -0
  85. package/.next/server/pages/en-US.html +81 -0
  86. package/.next/server/pages/en-US.json +1 -0
  87. package/.next/server/pages/index.js +439 -0
  88. package/.next/server/pages/index.js.nft.json +1 -0
  89. package/.next/server/pages/login.js +368 -0
  90. package/.next/server/pages/login.js.nft.json +1 -0
  91. package/.next/server/pages/s.js +466 -0
  92. package/.next/server/pages/s.js.nft.json +1 -0
  93. package/.next/server/pages-manifest.json +16 -0
  94. package/.next/server/webpack-api-runtime.js +229 -0
  95. package/.next/server/webpack-runtime.js +229 -0
  96. package/.next/static/chunks/143.dd8a556e6957baa1.js +1 -0
  97. package/.next/static/chunks/209-d1d2eeaeefbc68f7.js +1 -0
  98. package/.next/static/chunks/495.0ecd099878b2a36d.js +1 -0
  99. package/.next/static/chunks/502.b14533723651e5a1.js +1 -0
  100. package/.next/static/chunks/548-6b23e7ad82cd22b9.js +1 -0
  101. package/.next/static/chunks/597.f8d0595b113c70af.js +1 -0
  102. package/.next/static/chunks/64.2f385ef39cd5877d.js +1 -0
  103. package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
  104. package/.next/static/chunks/706-1020d118bb59b204.js +1 -0
  105. package/.next/static/chunks/738-a5ff304828f20cbf.js +1 -0
  106. package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
  107. package/.next/static/chunks/791-681afeb766a9098f.js +1 -0
  108. package/.next/static/chunks/98.97381d2021f86cd9.js +1 -0
  109. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
  110. package/.next/static/chunks/main-fd466221927468fd.js +1 -0
  111. package/.next/static/chunks/pages/404-14d27e3706f3d2c3.js +1 -0
  112. package/.next/static/chunks/pages/500-250ccf5c9626e451.js +1 -0
  113. package/.next/static/chunks/pages/[...slug]-bcfaf0c5d60b57a0.js +1 -0
  114. package/.next/static/chunks/pages/[slug]/p-c1f2b05344981f12.js +1 -0
  115. package/.next/static/chunks/pages/_app-babcc4d7b80d8f4a.js +1 -0
  116. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
  117. package/.next/static/chunks/pages/account-d248acc931146694.js +1 -0
  118. package/.next/static/chunks/pages/checkout-97f6d6f36f041a6f.js +1 -0
  119. package/.next/static/chunks/pages/index-bdbfb082027ed2b7.js +1 -0
  120. package/.next/static/chunks/pages/login-b1bdf30c951bb60d.js +1 -0
  121. package/.next/static/chunks/pages/s-aabfa5c08338974a.js +1 -0
  122. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
  123. package/.next/static/chunks/webpack-73cade94715ad9e1.js +1 -0
  124. package/.next/static/css/208b7dd52a0981bd.css +1 -0
  125. package/.next/static/css/41ef280537acec50.css +1 -0
  126. package/.next/static/css/4ad5a6bd11a9f8d8.css +1 -0
  127. package/.next/static/css/5330ae3076254840.css +1 -0
  128. package/.next/static/css/5972921daee792bb.css +1 -0
  129. package/.next/static/css/6e1a7434f061d0ef.css +1 -0
  130. package/.next/static/css/82a475e147f4b2ee.css +1 -0
  131. package/.next/static/css/af5ef0767b748cb3.css +1 -0
  132. package/.next/static/css/cb7d1fcea42fab9c.css +1 -0
  133. package/.next/static/css/d67fbe2a613293c1.css +1 -0
  134. package/.next/static/uXS-aZT8ClbPcIudKFF0d/_buildManifest.js +1 -0
  135. package/.next/static/uXS-aZT8ClbPcIudKFF0d/_ssgManifest.js +1 -0
  136. package/.next/trace +80 -0
  137. package/.turbo/turbo-build.log +7 -7
  138. package/package.json +2 -2
  139. package/public/~partytown/debug/partytown-atomics.js +556 -0
  140. package/public/~partytown/debug/partytown-media.js +374 -0
  141. package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
  142. package/public/~partytown/debug/partytown-sw.js +59 -0
  143. package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
  144. package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
  145. package/public/~partytown/debug/partytown.js +72 -0
  146. package/public/~partytown/partytown-atomics.js +2 -0
  147. package/public/~partytown/partytown-media.js +2 -0
  148. package/public/~partytown/partytown-sw.js +2 -0
  149. package/public/~partytown/partytown.js +2 -0
  150. package/src/components/common/Alert/Alert.tsx +5 -8
  151. package/src/components/navigation/Navbar/Navbar.tsx +22 -22
  152. package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +8 -7
  153. package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +15 -14
  154. package/src/components/product/ProductGrid/ProductGrid.tsx +5 -10
  155. package/src/components/region/RegionBar/RegionBar.tsx +27 -13
  156. package/src/components/search/Filter/Filter.tsx +6 -11
  157. package/src/components/sections/Alert/Alert.tsx +17 -13
  158. package/src/components/sections/Alert/Overrides.tsx +13 -25
  159. package/src/components/sections/BannerText/BannerText.tsx +24 -20
  160. package/src/components/sections/BannerText/Overrides.tsx +11 -23
  161. package/src/components/sections/Breadcrumb/Overrides.tsx +13 -25
  162. package/src/components/sections/EmptyState/EmptyState.tsx +6 -8
  163. package/src/components/sections/EmptyState/Overrides.tsx +12 -24
  164. package/src/components/sections/Hero/Hero.tsx +15 -12
  165. package/src/components/sections/Hero/Overrides.tsx +12 -24
  166. package/src/components/sections/Navbar/Overrides.tsx +43 -31
  167. package/src/components/sections/Newsletter/Overrides.tsx +28 -26
  168. package/src/components/sections/ProductDetails/Overrides.tsx +51 -38
  169. package/src/components/sections/ProductDetails/ProductDetails.tsx +22 -30
  170. package/src/components/sections/ProductGallery/Overrides.tsx +44 -35
  171. package/src/components/sections/ProductShelf/Overrides.tsx +14 -28
  172. package/src/components/sections/RegionBar/Overrides.tsx +12 -24
  173. package/src/components/ui/Breadcrumb/Breadcrumb.tsx +9 -7
  174. package/src/components/ui/ImageGallery/ImageGallery.tsx +13 -19
  175. package/src/components/ui/Newsletter/Newsletter.tsx +23 -24
  176. package/src/components/ui/ProductDetails/ProductDetailsSettings.tsx +21 -17
  177. package/src/components/ui/ProductGallery/ProductGallery.tsx +31 -38
  178. package/src/components/ui/ProductShelf/ProductShelf.tsx +11 -16
  179. package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +2 -3
  180. package/src/components/ui/SkuSelector/Selectors.tsx +8 -7
  181. package/src/customizations/components/overrides/Alert.tsx +3 -7
  182. package/src/customizations/components/overrides/BannerText.tsx +3 -7
  183. package/src/customizations/components/overrides/Breadcrumb.tsx +3 -7
  184. package/src/customizations/components/overrides/EmptyState.tsx +3 -6
  185. package/src/customizations/components/overrides/Hero.tsx +3 -8
  186. package/src/customizations/components/overrides/Navbar.tsx +3 -16
  187. package/src/customizations/components/overrides/Newsletter.tsx +3 -11
  188. package/src/customizations/components/overrides/ProductDetails.tsx +3 -18
  189. package/src/customizations/components/overrides/ProductGallery.tsx +3 -16
  190. package/src/customizations/components/overrides/ProductShelf.tsx +3 -8
  191. package/src/customizations/components/overrides/RegionBar.tsx +3 -8
  192. package/src/typings/overrideDefinitionUtils.ts +40 -0
  193. package/src/typings/overrides.ts +267 -0
  194. package/src/utils/overrides.ts +53 -0
  195. package/src/typings/overrides.d.ts +0 -97
@@ -0,0 +1,267 @@
1
+ import type { PropsWithChildren } from 'react'
2
+ import type {
3
+ AlertProps,
4
+ BannerTextContentProps,
5
+ BannerTextProps,
6
+ BreadcrumbProps,
7
+ ButtonProps,
8
+ DiscountBadgeProps,
9
+ EmptyStateProps,
10
+ HeroHeaderProps,
11
+ HeroImageProps,
12
+ HeroProps,
13
+ IconButtonProps,
14
+ IconProps,
15
+ ImageGalleryProps,
16
+ ImageZoomProps,
17
+ InputFieldProps,
18
+ LinkButtonProps,
19
+ NavbarButtonsProps,
20
+ NavbarHeaderProps,
21
+ NavbarLinksListProps,
22
+ NavbarLinksProps,
23
+ NavbarProps,
24
+ NavbarRowProps,
25
+ NavbarSliderContentProps,
26
+ NavbarSliderFooterProps,
27
+ NavbarSliderHeaderProps,
28
+ NavbarSliderProps,
29
+ PriceProps,
30
+ ProductShelfProps,
31
+ ProductTitleProps,
32
+ QuantitySelectorProps,
33
+ RegionBarProps,
34
+ ShippingSimulationProps,
35
+ SkeletonProps,
36
+ SkuSelectorProps,
37
+ } from '@faststore/ui'
38
+
39
+ import type {
40
+ ComponentOverrideDefinition,
41
+ SectionOverrideDefinition,
42
+ } from './overrideDefinitionUtils'
43
+
44
+ export type SectionOverride =
45
+ | AlertOverrideDefinition
46
+ | BannerTextOverrideDefinition
47
+ | BreadcrumbOverrideDefinition
48
+ | EmptyStateOverrideDefinition
49
+ | HeroOverrideDefinition
50
+ | NavbarOverrideDefinition
51
+ | NewsletterOverrideDefinition
52
+ | ProductDetailsOverrideDefinition
53
+ | ProductGalleryOverrideDefinition
54
+ | ProductShelfOverrideDefinition
55
+ | RegionBarOverrideDefinition
56
+
57
+ /**
58
+ * Originally, these types were defined in their respective Overrides file
59
+ * For some reason, typescript wouldn't interpret SectionOverride correctly when
60
+ * defining it by importing each of the SectionOverrideDefinitions and would set it as 'any'
61
+ *
62
+ * For some reason, defining them in the same file as SectionOverride seems to fix the issue.
63
+ * Consider that before moving them elsewhere and test it on the starter as well.
64
+ */
65
+ export type AlertOverrideDefinition = SectionOverrideDefinition<
66
+ 'Alert',
67
+ {
68
+ Alert: ComponentOverrideDefinition<AlertProps, Omit<AlertProps, 'onClose'>>
69
+ Icon: ComponentOverrideDefinition<IconProps, IconProps>
70
+ }
71
+ >
72
+
73
+ export type BannerTextOverrideDefinition = SectionOverrideDefinition<
74
+ 'BannerText',
75
+ {
76
+ BannerText: ComponentOverrideDefinition<BannerTextProps, BannerTextProps>
77
+ BannerTextContent: ComponentOverrideDefinition<
78
+ BannerTextContentProps,
79
+ BannerTextContentProps
80
+ >
81
+ }
82
+ >
83
+
84
+ export type BreadcrumbOverrideDefinition = SectionOverrideDefinition<
85
+ 'Breadcrumb',
86
+ {
87
+ Breadcrumb: ComponentOverrideDefinition<BreadcrumbProps, BreadcrumbProps>
88
+ Icon: ComponentOverrideDefinition<IconProps, IconProps>
89
+ }
90
+ >
91
+
92
+ export type EmptyStateOverrideDefinition = SectionOverrideDefinition<
93
+ 'EmptyState',
94
+ {
95
+ EmptyState: ComponentOverrideDefinition<
96
+ PropsWithChildren<EmptyStateProps>,
97
+ EmptyStateProps
98
+ >
99
+ }
100
+ >
101
+
102
+ export type HeroOverrideDefinition = SectionOverrideDefinition<
103
+ 'Hero',
104
+ {
105
+ Hero: ComponentOverrideDefinition<HeroProps, HeroProps>
106
+ HeroImage: ComponentOverrideDefinition<HeroImageProps, HeroImageProps>
107
+ HeroHeader: ComponentOverrideDefinition<HeroHeaderProps, HeroHeaderProps>
108
+ }
109
+ >
110
+
111
+ export type NavbarOverrideDefinition = SectionOverrideDefinition<
112
+ 'Navbar',
113
+ {
114
+ Navbar: ComponentOverrideDefinition<NavbarProps, NavbarProps>
115
+ NavbarLinks: ComponentOverrideDefinition<NavbarLinksProps, NavbarLinksProps>
116
+ NavbarLinksList: ComponentOverrideDefinition<
117
+ NavbarLinksListProps,
118
+ NavbarLinksListProps
119
+ >
120
+ NavbarSlider: ComponentOverrideDefinition<
121
+ NavbarSliderProps,
122
+ NavbarSliderProps
123
+ >
124
+ NavbarSliderHeader: ComponentOverrideDefinition<
125
+ NavbarSliderHeaderProps,
126
+ NavbarSliderHeaderProps
127
+ >
128
+ NavbarSliderContent: ComponentOverrideDefinition<
129
+ NavbarSliderContentProps,
130
+ NavbarSliderContentProps
131
+ >
132
+ NavbarSliderFooter: ComponentOverrideDefinition<
133
+ NavbarSliderFooterProps,
134
+ NavbarSliderFooterProps
135
+ >
136
+ NavbarHeader: ComponentOverrideDefinition<
137
+ NavbarHeaderProps,
138
+ NavbarHeaderProps
139
+ >
140
+ NavbarRow: ComponentOverrideDefinition<NavbarRowProps, NavbarRowProps>
141
+ NavbarButtons: ComponentOverrideDefinition<
142
+ NavbarButtonsProps,
143
+ NavbarButtonsProps
144
+ >
145
+ IconButton: ComponentOverrideDefinition<
146
+ IconButtonProps,
147
+ Omit<IconButtonProps, 'onClick'>
148
+ >
149
+ }
150
+ >
151
+
152
+ export type NewsletterOverrideDefinition = SectionOverrideDefinition<
153
+ 'Newsletter',
154
+ {
155
+ ToastIconSuccess: ComponentOverrideDefinition<IconProps, IconProps>
156
+ ToastIconError: ComponentOverrideDefinition<IconProps, IconProps>
157
+ HeaderIcon: ComponentOverrideDefinition<IconProps, IconProps>
158
+ InputFieldName: ComponentOverrideDefinition<
159
+ InputFieldProps,
160
+ Omit<InputFieldProps, 'inputRef'>
161
+ >
162
+ InputFieldEmail: ComponentOverrideDefinition<
163
+ InputFieldProps,
164
+ Omit<InputFieldProps, 'inputRef'>
165
+ >
166
+ Button: ComponentOverrideDefinition<ButtonProps, ButtonProps>
167
+ }
168
+ >
169
+
170
+ export type ProductDetailsOverrideDefinition = SectionOverrideDefinition<
171
+ 'ProductDetails',
172
+ {
173
+ ProductTitle: ComponentOverrideDefinition<
174
+ ProductTitleProps,
175
+ ProductTitleProps
176
+ >
177
+ DiscountBadge: ComponentOverrideDefinition<
178
+ DiscountBadgeProps,
179
+ Omit<DiscountBadgeProps, 'listPrice' | 'spotPrice'>
180
+ >
181
+ BuyButton: ComponentOverrideDefinition<ButtonProps, ButtonProps>
182
+ Icon: ComponentOverrideDefinition<IconProps, IconProps>
183
+ Price: ComponentOverrideDefinition<
184
+ PriceProps,
185
+ Omit<PriceProps, 'value' | 'data-value'>
186
+ >
187
+ QuantitySelector: ComponentOverrideDefinition<
188
+ QuantitySelectorProps,
189
+ Omit<QuantitySelectorProps, 'onChange'>
190
+ >
191
+ SkuSelector: ComponentOverrideDefinition<SkuSelectorProps, SkuSelectorProps>
192
+ ShippingSimulation: ComponentOverrideDefinition<
193
+ ShippingSimulationProps,
194
+ ShippingSimulationProps
195
+ >
196
+ ImageGallery: ComponentOverrideDefinition<
197
+ ImageGalleryProps,
198
+ ImageGalleryProps
199
+ >
200
+ ImageZoom: ComponentOverrideDefinition<ImageZoomProps, ImageZoomProps>
201
+ __experimentalImageGalleryImage: ComponentOverrideDefinition<any, any>
202
+ __experimentalImageGallery: ComponentOverrideDefinition<any, any>
203
+ __experimentalShippingSimulation: ComponentOverrideDefinition<any, any>
204
+ }
205
+ >
206
+
207
+ export type ProductGalleryOverrideDefinition = SectionOverrideDefinition<
208
+ 'ProductGallery',
209
+ {
210
+ MobileFilterButton: ComponentOverrideDefinition<
211
+ ButtonProps,
212
+ Omit<ButtonProps, 'onClick'>
213
+ >
214
+ FilterIcon: ComponentOverrideDefinition<IconProps, IconProps>
215
+ PrevIcon: ComponentOverrideDefinition<IconProps, IconProps>
216
+ ResultsCountSkeleton: ComponentOverrideDefinition<
217
+ SkeletonProps,
218
+ Omit<SkeletonProps, 'loading'>
219
+ >
220
+ SortSkeleton: ComponentOverrideDefinition<
221
+ SkeletonProps,
222
+ Omit<SkeletonProps, 'loading'>
223
+ >
224
+ FilterButtonSkeleton: ComponentOverrideDefinition<
225
+ SkeletonProps,
226
+ Omit<SkeletonProps, 'loading'>
227
+ >
228
+ LinkButtonPrev: ComponentOverrideDefinition<
229
+ LinkButtonProps,
230
+ Omit<LinkButtonProps, 'onClick' | 'href'>
231
+ >
232
+ LinkButtonNext: ComponentOverrideDefinition<
233
+ LinkButtonProps,
234
+ Omit<LinkButtonProps, 'onClick' | 'href'>
235
+ >
236
+ __experimentalFilterDesktop: ComponentOverrideDefinition<any, any>
237
+ __experimentalFilterSlider: ComponentOverrideDefinition<any, any>
238
+ __experimentalProductCard: ComponentOverrideDefinition<any, any>
239
+ }
240
+ >
241
+
242
+ export type ProductShelfOverrideDefinition = SectionOverrideDefinition<
243
+ 'ProductShelf',
244
+ {
245
+ ProductShelf: ComponentOverrideDefinition<
246
+ ProductShelfProps,
247
+ ProductShelfProps
248
+ >
249
+ __experimentalCarousel: ComponentOverrideDefinition<any, any>
250
+ __experimentalProductCard: ComponentOverrideDefinition<
251
+ any,
252
+ Omit<any, 'key' | 'product' | 'index'>
253
+ >
254
+ }
255
+ >
256
+
257
+ export type RegionBarOverrideDefinition = SectionOverrideDefinition<
258
+ 'RegionBar',
259
+ {
260
+ RegionBar: ComponentOverrideDefinition<
261
+ RegionBarProps,
262
+ Omit<RegionBarProps, 'onButtonClick' | 'postalCode'>
263
+ >
264
+ LocationIcon: ComponentOverrideDefinition<IconProps, IconProps>
265
+ ButtonIcon: ComponentOverrideDefinition<IconProps, IconProps>
266
+ }
267
+ >
@@ -0,0 +1,53 @@
1
+ import type {
2
+ DefaultSectionComponentsDefinitions,
3
+ ComponentOverrideDefinition,
4
+ Merge,
5
+ } from 'src/typings/overrideDefinitionUtils'
6
+
7
+ import type { SectionOverride } from 'src/typings/overrides'
8
+
9
+ export type GetSectionOverridesReturn<SO extends SectionOverride> = {
10
+ [Key in keyof SO['components']]: Merge<SO['components'][Key]>
11
+ }
12
+
13
+ export function getSectionOverrides<SO extends SectionOverride>(
14
+ defaultComponents: DefaultSectionComponentsDefinitions<SO>,
15
+ override: SO
16
+ ): GetSectionOverridesReturn<SO> {
17
+ const overriddenComponents = {} as GetSectionOverridesReturn<SO>
18
+
19
+ Object.entries(defaultComponents).forEach(([key, value]) => {
20
+ const componentOverride:
21
+ | ComponentOverrideDefinition<unknown, unknown>
22
+ | undefined = override.components?.[key]
23
+
24
+ if (!componentOverride) {
25
+ overriddenComponents[key] = {
26
+ Component: value,
27
+ props: {},
28
+ }
29
+
30
+ return
31
+ }
32
+
33
+ if (componentOverride.Component && componentOverride.props) {
34
+ console.warn(
35
+ `Mixed use of Component and props overrides detected. Defaulting to Component override: component ${key} in the ${override.section} section.`
36
+ )
37
+ }
38
+
39
+ if (componentOverride.Component) {
40
+ overriddenComponents[key] = {
41
+ Component: componentOverride.Component,
42
+ props: {},
43
+ }
44
+ } else {
45
+ overriddenComponents[key] = {
46
+ Component: value,
47
+ props: componentOverride.props ?? {},
48
+ }
49
+ }
50
+ })
51
+
52
+ return overriddenComponents
53
+ }
@@ -1,97 +0,0 @@
1
- export const SECTIONS = {
2
- Hero: {
3
- components: ['Hero', 'HeroImage', 'HeroHeader'],
4
- },
5
- BannerText: {
6
- components: ['BannerText', 'BannerTextContent'],
7
- },
8
- ProductDetails: {
9
- components: [
10
- 'ProductTitle',
11
- 'DiscountBadge',
12
- 'BuyButton',
13
- 'Icon',
14
- 'Price',
15
- 'QuantitySelector',
16
- 'SkuSelector',
17
- 'ShippingSimulation',
18
- 'ImageGallery',
19
- 'ImageZoom',
20
- '__experimentalImageGalleryImage',
21
- '__experimentalImageGallery',
22
- '__experimentalShippingSimulation',
23
- ],
24
- },
25
- ProductShelf: {
26
- components: [
27
- 'ProductShelf',
28
- '__experimentalCarousel',
29
- '__experimentalProductCard',
30
- ],
31
- },
32
- Navbar: {
33
- components: [
34
- 'Navbar',
35
- 'NavbarLinks',
36
- 'NavbarLinksList',
37
- 'NavbarSlider',
38
- 'NavbarSliderHeader',
39
- 'NavbarSliderContent',
40
- 'NavbarSliderFooter',
41
- 'NavbarHeader',
42
- 'NavbarRow',
43
- 'NavbarButtons',
44
- 'IconButton',
45
- ],
46
- },
47
- Breadcrumb: {
48
- components: ['Breadcrumb', 'Icon'],
49
- },
50
- ProductGallery: {
51
- components: [
52
- 'Button',
53
- 'FilterIcon',
54
- 'PrevIcon',
55
- 'ResultsCountSkeleton',
56
- 'SortSkeleton',
57
- 'FilterButtonSkeleton',
58
- 'LinkButtonPrev',
59
- 'LinkButtonNext',
60
- '__experimentalFilterDesktop',
61
- '__experimentalFilterSlider',
62
- '__experimentalProductCard',
63
- ],
64
- },
65
- Alert: {
66
- components: ['Alert', 'Icon'],
67
- },
68
- EmptyState: {
69
- components: ['EmptyState'],
70
- },
71
- RegionBar: {
72
- components: ['RegionBar', 'LocationIcon', 'ButtonIcon'],
73
- },
74
- Newsletter: {
75
- components: [
76
- 'ToastIconSuccess',
77
- 'ToastIconError',
78
- 'HeaderIcon',
79
- 'InputFieldName',
80
- 'InputFieldEmail',
81
- 'Button',
82
- ],
83
- },
84
- } as const
85
-
86
- // export type ComponentOrProps =
87
- // | { Component: React.ElementType }
88
- // | { props: Record<string, unknown> };
89
-
90
- export type SectionOverride = {
91
- [K in keyof typeof SECTIONS]: {
92
- name: K
93
- components: {
94
- [ComponentKey in (typeof SECTIONS)[K]['components'][number]]?: any
95
- }
96
- }
97
- }