@faststore/core 2.2.70 → 2.2.73

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 (140) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +62 -52
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/eslint/.cache_1gneedd +1 -1
  6. package/.next/cache/next-server.js.nft.json +1 -1
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/index.pack +0 -0
  9. package/.next/cache/webpack/server-production/0.pack +0 -0
  10. package/.next/cache/webpack/server-production/index.pack +0 -0
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.json +1 -1
  13. package/.next/react-loadable-manifest.json +4 -4
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/117.js +427 -0
  16. package/.next/server/chunks/184.js +61 -0
  17. package/.next/server/chunks/350.js +2846 -35
  18. package/.next/server/chunks/585.js +22 -0
  19. package/.next/server/chunks/632.js +514 -0
  20. package/.next/server/chunks/661.js +1451 -0
  21. package/.next/server/chunks/693.js +58 -0
  22. package/.next/server/chunks/719.js +84 -0
  23. package/.next/server/chunks/74.js +569 -6467
  24. package/.next/server/chunks/779.js +58 -0
  25. package/.next/server/chunks/854.js +72 -0
  26. package/.next/server/chunks/863.js +22 -0
  27. package/.next/server/chunks/{520.js → 898.js} +250 -30
  28. package/.next/server/chunks/903.js +1926 -0
  29. package/.next/server/middleware-build-manifest.js +1 -1
  30. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  31. package/.next/server/pages/404.js +0 -21
  32. package/.next/server/pages/404.js.nft.json +1 -1
  33. package/.next/server/pages/500.js +0 -21
  34. package/.next/server/pages/500.js.nft.json +1 -1
  35. package/.next/server/pages/[...slug].js +9 -9
  36. package/.next/server/pages/[...slug].js.nft.json +1 -1
  37. package/.next/server/pages/[slug]/p.js +1373 -33
  38. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  39. package/.next/server/pages/_app.js.nft.json +1 -1
  40. package/.next/server/pages/_error.js.nft.json +1 -1
  41. package/.next/server/pages/account.js +0 -21
  42. package/.next/server/pages/account.js.nft.json +1 -1
  43. package/.next/server/pages/checkout.js +0 -21
  44. package/.next/server/pages/checkout.js.nft.json +1 -1
  45. package/.next/server/pages/en-US/404.html +2 -2
  46. package/.next/server/pages/en-US/500.html +2 -2
  47. package/.next/server/pages/en-US/account.html +2 -2
  48. package/.next/server/pages/en-US/checkout.html +2 -2
  49. package/.next/server/pages/en-US/login.html +2 -2
  50. package/.next/server/pages/en-US/s.html +2 -2
  51. package/.next/server/pages/en-US.html +3 -3
  52. package/.next/server/pages/en-US.json +1 -1
  53. package/.next/server/pages/index.js +5 -5
  54. package/.next/server/pages/index.js.nft.json +1 -1
  55. package/.next/server/pages/login.js +0 -21
  56. package/.next/server/pages/login.js.nft.json +1 -1
  57. package/.next/server/pages/s.js +4 -58
  58. package/.next/server/pages/s.js.nft.json +1 -1
  59. package/.next/server/pages-manifest.json +1 -1
  60. package/.next/static/LB4EfHJ3ylU80A7g7tIMw/_buildManifest.js +1 -0
  61. package/.next/static/chunks/223-cb77217cce52d45c.js +1 -0
  62. package/.next/static/chunks/251.11f5198fc8bef3a4.js +1 -0
  63. package/.next/static/chunks/397-0d3aada1012cd78b.js +1 -0
  64. package/.next/static/chunks/585.6561778b7763b79e.js +1 -0
  65. package/.next/static/chunks/675-479a97aecebead97.js +1 -0
  66. package/.next/static/chunks/800.5d92de2974baf641.js +1 -0
  67. package/.next/static/chunks/881-57643fb90f59e576.js +1 -0
  68. package/.next/static/chunks/988.afda042dd9ba11d1.js +1 -0
  69. package/.next/static/chunks/pages/404-e106cb9a78182f5f.js +1 -0
  70. package/.next/static/chunks/pages/500-d28aa4a8ce88bddd.js +1 -0
  71. package/.next/static/chunks/pages/[...slug]-cf872b9e9befd47c.js +1 -0
  72. package/.next/static/chunks/pages/[slug]/p-4a75b11857b82b5c.js +1 -0
  73. package/.next/static/chunks/pages/{account-3741291b1e89c2e7.js → account-bf9c88a9cac80d8a.js} +1 -1
  74. package/.next/static/chunks/pages/{checkout-95066de007bdbbdb.js → checkout-6ca76c1e88a28ac4.js} +1 -1
  75. package/.next/static/chunks/pages/index-629ba146ae5f0ecf.js +1 -0
  76. package/.next/static/chunks/pages/login-d2af0de13ea75848.js +1 -0
  77. package/.next/static/chunks/pages/s-d729254b91430d1c.js +1 -0
  78. package/.next/static/chunks/webpack-54ce04ec11860b0b.js +1 -0
  79. package/.next/static/css/021de9c7b050d301.css +1 -0
  80. package/.next/static/css/510895065f32ed2f.css +1 -0
  81. package/.next/static/css/7e897ebb936fac09.css +1 -0
  82. package/.next/static/css/938781cdc945862e.css +1 -0
  83. package/.next/static/css/9558da13053ac066.css +1 -0
  84. package/.next/static/css/def381bf7c69fa2e.css +1 -0
  85. package/.next/trace +82 -82
  86. package/.turbo/turbo-build.log +18 -18
  87. package/.turbo/turbo-test.log +9 -9
  88. package/index.ts +13 -0
  89. package/package.json +3 -3
  90. package/src/components/sections/Alert/Alert.tsx +11 -3
  91. package/src/components/sections/Alert/OverriddenDefaultAlert.ts +7 -4
  92. package/src/components/sections/BannerText/BannerText.tsx +10 -2
  93. package/src/components/sections/BannerText/OverriddenDefaultBannerText.ts +7 -4
  94. package/src/components/sections/Breadcrumb/Breadcrumb.tsx +9 -3
  95. package/src/components/sections/Breadcrumb/OverriddenDefaultBreadcrumb.ts +7 -4
  96. package/src/components/sections/CrossSellingShelf/CrossSellingShelf.tsx +8 -2
  97. package/src/components/sections/CrossSellingShelf/OverriddenDefaultCrossSellingShelf.ts +2 -1
  98. package/src/components/sections/EmptyState/Overrides.tsx +2 -2
  99. package/src/components/sections/Hero/Hero.tsx +11 -3
  100. package/src/components/sections/Hero/OverriddenDefaultHero.ts +7 -4
  101. package/src/components/sections/Navbar/Navbar.tsx +10 -2
  102. package/src/components/sections/Navbar/OverriddenDefaultNavbar.ts +6 -4
  103. package/src/components/sections/Newsletter/Newsletter.tsx +10 -2
  104. package/src/components/sections/Newsletter/OverriddenDefaultNewsletter.ts +6 -4
  105. package/src/components/sections/ProductDetails/OverriddenDefaultProductDetails.ts +7 -4
  106. package/src/components/sections/ProductDetails/ProductDetails.tsx +16 -8
  107. package/src/components/sections/ProductGallery/OverriddenDefaultProductGallery.ts +6 -4
  108. package/src/components/sections/ProductGallery/ProductGallery.tsx +13 -5
  109. package/src/components/sections/ProductShelf/OverriddenDefaultProductShelf.ts +7 -4
  110. package/src/components/sections/ProductShelf/ProductShelf.tsx +12 -2
  111. package/src/components/sections/RegionBar/OverriddenDefaultRegionBar.ts +6 -4
  112. package/src/components/sections/RegionBar/RegionBar.tsx +11 -5
  113. package/src/sdk/overrides/getOverriddenSection.tsx +45 -44
  114. package/src/sdk/overrides/overrides.ts +2 -2
  115. package/src/typings/overrides.ts +265 -187
  116. package/src/typings/overridesDefinition.ts +20 -6
  117. package/.next/server/chunks/445.js +0 -167
  118. package/.next/server/chunks/829.js +0 -2938
  119. package/.next/server/chunks/934.js +0 -125
  120. package/.next/static/9t0jxL0Q7hZ_ItlxJLOtn/_buildManifest.js +0 -1
  121. package/.next/static/chunks/251.65e0bb7a2f58b3db.js +0 -1
  122. package/.next/static/chunks/464-bc1301cb64b71518.js +0 -1
  123. package/.next/static/chunks/557-4f8a963d7e07e582.js +0 -1
  124. package/.next/static/chunks/585.ee7478bead8853ae.js +0 -1
  125. package/.next/static/chunks/800.8f4f91b39aa47346.js +0 -1
  126. package/.next/static/chunks/988.a57dac6501fb5184.js +0 -1
  127. package/.next/static/chunks/pages/404-8aa1a5d5e6a66a9a.js +0 -1
  128. package/.next/static/chunks/pages/500-36ea8ba52ee65fe2.js +0 -1
  129. package/.next/static/chunks/pages/[...slug]-29c2c581a7246de4.js +0 -1
  130. package/.next/static/chunks/pages/[slug]/p-d4a3fd33abda8f62.js +0 -1
  131. package/.next/static/chunks/pages/index-bbd90798e45dc0ff.js +0 -1
  132. package/.next/static/chunks/pages/login-f0d8dfab2f856c25.js +0 -1
  133. package/.next/static/chunks/pages/s-e9b663c3e4f84b0a.js +0 -1
  134. package/.next/static/chunks/webpack-776cfd646b505dc5.js +0 -1
  135. package/.next/static/css/0c844be3b8585e70.css +0 -1
  136. package/.next/static/css/557d58510041152c.css +0 -1
  137. package/.next/static/css/a6bcc59f42b42f36.css +0 -1
  138. package/.next/static/css/ecdecb8d639a8311.css +0 -1
  139. package/src/sdk/overrides/sections.tsx +0 -58
  140. /package/.next/static/{9t0jxL0Q7hZ_ItlxJLOtn → LB4EfHJ3ylU80A7g7tIMw}/_ssgManifest.js +0 -0
@@ -38,28 +38,28 @@ info - Generating static pages (7/7)
38
38
  info - Finalizing page optimization...
39
39
 
40
40
  Route (pages) Size First Load JS
41
- ┌ ● / 2.36 kB 142 kB
42
- ├ └ css/ecdecb8d639a8311.css 5.48 kB
43
- ├ /_app 0 B 83.7 kB
44
- ├ ● /[...slug] 4.43 kB 144 kB
45
- ├ └ css/0c844be3b8585e70.css 5.9 kB
46
- ├ ● /[slug]/p 1.74 kB 141 kB
47
- ├ └ css/a6bcc59f42b42f36.css 2.39 kB
48
- ├ ○ /404 1.03 kB 141 kB
49
- ├ ● /500 1.05 kB 141 kB
50
- ├ ● /account 674 B 140 kB
51
- ├ λ /api/graphql 0 B 83.7 kB
52
- ├ λ /api/health/live 0 B 83.7 kB
53
- ├ λ /api/health/ready 0 B 83.7 kB
54
- ├ λ /api/preview 0 B 83.7 kB
55
- ├ ● /checkout 660 B 140 kB
56
- ├ ● /login 984 B 141 kB
57
- └ ● /s 2.36 kB 142 kB
41
+ ┌ ● / 3.38 kB 129 kB
42
+ ├ └ css/7e897ebb936fac09.css 6.55 kB
43
+ ├ /_app 0 B 83.8 kB
44
+ ├ ● /[...slug] 4.49 kB 141 kB
45
+ ├ └ css/510895065f32ed2f.css 7 kB
46
+ ├ ● /[slug]/p 10.9 kB 136 kB
47
+ ├ └ css/def381bf7c69fa2e.css 11.3 kB
48
+ ├ ○ /404 1.19 kB 112 kB
49
+ ├ ● /500 1.21 kB 112 kB
50
+ ├ ● /account 675 B 111 kB
51
+ ├ λ /api/graphql 0 B 83.8 kB
52
+ ├ λ /api/health/live 0 B 83.8 kB
53
+ ├ λ /api/health/ready 0 B 83.8 kB
54
+ ├ λ /api/preview 0 B 83.8 kB
55
+ ├ ● /checkout 660 B 111 kB
56
+ ├ ● /login 1.14 kB 112 kB
57
+ └ ● /s 4.63 kB 126 kB
58
58
  + First Load JS shared by all 86.8 kB
59
59
  ├ chunks/framework-dfd14d7ce6600b03.js 45.3 kB
60
60
  ├ chunks/main-e4e873ee741162eb.js 24.2 kB
61
61
  ├ chunks/pages/_app-30b9666307e4b3b1.js 12.1 kB
62
- ├ chunks/webpack-776cfd646b505dc5.js 2.22 kB
62
+ ├ chunks/webpack-54ce04ec11860b0b.js 2.25 kB
63
63
  └ css/5d1f64b61ea581f4.css 3.05 kB
64
64
 
65
65
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
@@ -1,23 +1,23 @@
1
1
  $ jest
2
- PASS test/server/index.test.ts (21.452 s)
2
+ PASS test/server/index.test.ts (21.393 s)
3
3
  FastStore GraphQL Layer
4
4
  @faststore/api
5
- ✓ should return a valid GraphQL schema (7 ms)
6
- ✓ should return a valid GraphQL schema contain all expected types (4 ms)
5
+ ✓ should return a valid GraphQL schema (21 ms)
6
+ ✓ should return a valid GraphQL schema contain all expected types (20 ms)
7
7
  ✓ should return a valid GraphQL schema contain all expected queries (1 ms)
8
8
  ✓ should return a valid GraphQL schema contain all expected mutations (1 ms)
9
9
  VTEX API Extension
10
- ✓ getTypeDefsFromFolder function should return an Array (6 ms)
10
+ ✓ getTypeDefsFromFolder function should return an Array (28 ms)
11
11
  Third Party API Extension
12
- ✓ getTypeDefsFromFolder function should return an Array (10 ms)
12
+ ✓ getTypeDefsFromFolder function should return an Array (7 ms)
13
13
  Final Schema after merging
14
- ✓ should return a valid merged GraphQL schema (32 ms)
14
+ ✓ should return a valid merged GraphQL schema (45 ms)
15
15
  Envelop
16
- ✓ should exist with its plugins (26 ms)
17
- ✓ should handle options and execute (320 ms)
16
+ ✓ should exist with its plugins (43 ms)
17
+ ✓ should handle options and execute (316 ms)
18
18
 
19
19
  Test Suites: 1 passed, 1 total
20
20
  Tests: 9 passed, 9 total
21
21
  Snapshots: 0 total
22
- Time: 21.62 s
22
+ Time: 21.56 s
23
23
  Ran all test suites.
package/index.ts CHANGED
@@ -18,3 +18,16 @@ export { useProductsQuery } from './src/sdk/product/useProductsQuery'
18
18
 
19
19
  export * from './src/typings/overrides'
20
20
  export { getOverriddenSection } from './src/sdk/overrides/getOverriddenSection'
21
+
22
+ // Overridable Sections
23
+ export { default as AlertSection } from './src/components/sections/Alert'
24
+ export { default as BannerTextSection } from './src/components/sections/BannerText'
25
+ export { default as BreadcrumbSection } from './src/components/sections/Breadcrumb'
26
+ export { default as CrossSellingShelfSection } from './src/components/sections/CrossSellingShelf'
27
+ export { default as HeroSection } from './src/components/sections/Hero'
28
+ export { default as NavbarSection } from './src/components/sections/Navbar'
29
+ export { default as NewsletterSection } from './src/components/sections/Newsletter'
30
+ export { default as ProductDetailsSection } from './src/components/sections/ProductDetails'
31
+ export { default as ProductGallerySection } from './src/components/sections/ProductGallery'
32
+ export { default as ProductShelfSection } from './src/components/sections/ProductShelf'
33
+ export { default as RegionBarSection } from './src/components/sections/RegionBar'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "2.2.70",
3
+ "version": "2.2.73",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -78,7 +78,7 @@
78
78
  "devDependencies": {
79
79
  "@cypress/code-coverage": "^3.12.1",
80
80
  "@envelop/testing": "^6.0.0",
81
- "@faststore/cli": "^2.2.69",
81
+ "@faststore/cli": "^2.2.73",
82
82
  "@faststore/eslint-config": "^2.2.69",
83
83
  "@faststore/lighthouse": "^1.12.32",
84
84
  "@lhci/cli": "^0.9.0",
@@ -123,5 +123,5 @@
123
123
  "node": "18.19.0",
124
124
  "yarn": "1.19.1"
125
125
  },
126
- "gitHead": "f3b56c76db2f97cc9d0e6b81839b4eda151044e8"
126
+ "gitHead": "9fd7e8367621889e18a0745b30e0fa896937fd3a"
127
127
  }
@@ -2,8 +2,10 @@ import type { ReactNode } from 'react'
2
2
 
3
3
  import CommonAlert, {
4
4
  type AlertProps as CommonAlertProps,
5
- } from 'src/components/common/Alert'
6
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
5
+ } from '../../../components/common/Alert'
6
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
7
+ import { AlertDefaultComponents } from './DefaultComponents'
8
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
7
9
 
8
10
  export interface AlertProps extends Omit<CommonAlertProps, 'link' | 'icon'> {
9
11
  icon: string
@@ -35,4 +37,10 @@ function Alert({ icon, content, link: { text, to }, dismissible }: AlertProps) {
35
37
  )
36
38
  }
37
39
 
38
- export default Alert
40
+ const OverridableAlert = getOverridableSection<typeof Alert>(
41
+ 'Alert',
42
+ Alert,
43
+ AlertDefaultComponents
44
+ )
45
+
46
+ export default OverridableAlert
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/Alert'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import Alert from '.'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default Alert section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultAlert = getOverriddenSection(
11
- override as SectionOverrideDefinition<'Alert'>
12
- )
12
+ export const OverriddenDefaultAlert = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'Alert'>),
14
+ Section: Alert,
15
+ })
@@ -3,10 +3,12 @@ import {
3
3
  BannerTextContentProps as UIBannerTextContentProps,
4
4
  } from '@faststore/ui'
5
5
 
6
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
6
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
7
7
  import Section from '../Section'
8
8
 
9
9
  import styles from './section.module.scss'
10
+ import { BannerTextDefaultComponents } from './DefaultComponents'
11
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
10
12
 
11
13
  export interface BannerTextProps {
12
14
  title: UIBannerTextContentProps['title']
@@ -55,4 +57,10 @@ function BannerText({
55
57
  )
56
58
  }
57
59
 
58
- export default BannerText
60
+ const OverridableBannerText = getOverridableSection<typeof BannerText>(
61
+ 'BannerText',
62
+ BannerText,
63
+ BannerTextDefaultComponents
64
+ )
65
+
66
+ export default OverridableBannerText
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/BannerText'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import BannerText from '.'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default BannerText section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultBannerText = getOverriddenSection(
11
- override as SectionOverrideDefinition<'BannerText'>
12
- )
12
+ export const OverriddenDefaultBannerText = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'BannerText'>),
14
+ Section: BannerText,
15
+ })
@@ -9,8 +9,10 @@ import {
9
9
  isPDP,
10
10
  isPLP,
11
11
  usePage,
12
- } from 'src/sdk/overrides/PageProvider'
13
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
12
+ } from '../../../sdk/overrides/PageProvider'
13
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
14
+ import { BreadcrumbDefaultComponents } from './DefaultComponents'
15
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
14
16
 
15
17
  interface BreadcrumbSectionProps {
16
18
  icon: string
@@ -39,4 +41,8 @@ function BreadcrumbSection({ ...otherProps }: BreadcrumbSectionProps) {
39
41
  )
40
42
  }
41
43
 
42
- export default memo(BreadcrumbSection)
44
+ const OverridableBreadcrumbSection = getOverridableSection<
45
+ typeof BreadcrumbSection
46
+ >('Breadcrumb', BreadcrumbSection, BreadcrumbDefaultComponents)
47
+
48
+ export default memo(OverridableBreadcrumbSection)
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/Breadcrumb'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import Breadcrumb from '.'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default Breadcrumb section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultBreadcrumb = getOverriddenSection(
11
- override as SectionOverrideDefinition<'Breadcrumb'>
12
- )
12
+ export const OverriddenDefaultBreadcrumb = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'Breadcrumb'>),
14
+ Section: Breadcrumb,
15
+ })
@@ -1,10 +1,12 @@
1
1
  import { useMemo } from 'react'
2
2
 
3
- import UIProductShelf from 'src/components/ui/ProductShelf'
3
+ import UIProductShelf from '../../../components/ui/ProductShelf'
4
4
  import { useInView } from 'react-intersection-observer'
5
5
  import { usePDP } from 'src/sdk/overrides/PageProvider'
6
6
  import styles from '../ProductShelf/section.module.scss'
7
7
  import Section from '../Section'
8
+ import { CrossSellingShelfDefaultComponents } from './DefaultComponents'
9
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
8
10
 
9
11
  interface Props {
10
12
  numberOfItems: number
@@ -43,4 +45,8 @@ const CrossSellingShelf = ({
43
45
  )
44
46
  }
45
47
 
46
- export default CrossSellingShelf
48
+ const OverridableCrossSellingShelf = getOverridableSection<
49
+ typeof CrossSellingShelf
50
+ >('CrossSellingShelf', CrossSellingShelf, CrossSellingShelfDefaultComponents)
51
+
52
+ export default OverridableCrossSellingShelf
@@ -1,5 +1,6 @@
1
1
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
2
+ import CrossSellingShelf from '.'
2
3
 
3
4
  export const OverriddenDefaultCrossSellingShelf = getOverriddenSection({
4
- section: 'CrossSellingShelf',
5
+ Section: CrossSellingShelf,
5
6
  })
@@ -2,13 +2,13 @@ import { EmptyState as UIEmptyState } from '@faststore/ui'
2
2
 
3
3
  import { getSectionOverrides } from 'src/sdk/overrides/overrides'
4
4
  import { override } from 'src/customizations/src/components/overrides/EmptyState'
5
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
6
6
 
7
7
  const { EmptyState } = getSectionOverrides(
8
8
  {
9
9
  EmptyState: UIEmptyState,
10
10
  },
11
- override as SectionOverrideDefinition<'EmptyState'>
11
+ override as SectionOverrideDefinitionV1<'EmptyState'>
12
12
  )
13
13
 
14
14
  export { EmptyState }
@@ -3,13 +3,15 @@ import {
3
3
  HeroHeaderProps as UIHeroHeaderProps,
4
4
  } from '@faststore/ui'
5
5
  import { ReactNode } from 'react'
6
- import { Image } from 'src/components/ui/Image'
6
+ import { Image } from '../../../components/ui/Image'
7
7
 
8
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
8
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
9
9
 
10
10
  import Section from '../Section'
11
11
 
12
12
  import styles from './section.module.scss'
13
+ import { HeroDefaultComponents } from './DefaultComponents'
14
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
13
15
 
14
16
  export type HeroProps = {
15
17
  title: UIHeroHeaderProps['title']
@@ -74,4 +76,10 @@ const Hero = ({
74
76
  )
75
77
  }
76
78
 
77
- export default Hero
79
+ const OverridableHero = getOverridableSection<typeof Hero>(
80
+ 'Hero',
81
+ Hero,
82
+ HeroDefaultComponents
83
+ )
84
+
85
+ export default OverridableHero
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/Hero'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import Hero from '.'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default Hero section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultHero = getOverriddenSection(
11
- override as SectionOverrideDefinition<'Hero'>
12
- )
12
+ export const OverriddenDefaultHero = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'Hero'>),
14
+ Section: Hero,
15
+ })
@@ -1,8 +1,10 @@
1
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
1
2
  import Section from '../Section'
2
3
 
3
4
  import styles from './section.module.scss'
4
5
 
5
- import Navbar from 'src/components/navigation/Navbar'
6
+ import Navbar from '../../../components/navigation/Navbar'
7
+ import { NavbarDefaultComponents } from './DefaultComponents'
6
8
 
7
9
  type PageLinks = {
8
10
  url: string
@@ -91,4 +93,10 @@ function NavbarSection({
91
93
  )
92
94
  }
93
95
 
94
- export default NavbarSection
96
+ const OverridableNavbar = getOverridableSection<typeof NavbarSection>(
97
+ 'Navbar',
98
+ NavbarSection,
99
+ NavbarDefaultComponents
100
+ )
101
+
102
+ export default OverridableNavbar
@@ -1,12 +1,14 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/Navbar'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
+ import Navbar from './Navbar'
4
5
 
5
6
  /**
6
7
  * This component exists to support overrides 1.0
7
8
  *
8
9
  * This allows users to override the default Navbar section present in the Headless CMS
9
10
  */
10
- export const OverriddenDefaultNavbar = getOverriddenSection(
11
- override as SectionOverrideDefinition<'Navbar'>
12
- )
11
+ export const OverriddenDefaultNavbar = getOverriddenSection({
12
+ ...(override as SectionOverrideDefinitionV1<'Navbar'>),
13
+ Section: Navbar,
14
+ })
@@ -4,10 +4,12 @@ import {
4
4
  NewsletterHeaderProps as UINewsletterHeaderProps,
5
5
  } from '@faststore/ui'
6
6
 
7
- import UINewsletter from 'src/components/ui/Newsletter'
7
+ import UINewsletter from '../../ui/Newsletter'
8
8
 
9
9
  import Section from '../Section'
10
10
  import styles from './section.module.scss'
11
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
12
+ import { NewsletterDefaultComponents } from './DefaultComponents'
11
13
 
12
14
  type SubscribeMessage = {
13
15
  icon: string
@@ -111,4 +113,10 @@ function Newsletter({
111
113
  )
112
114
  }
113
115
 
114
- export default Newsletter
116
+ const OverridableNewsletter = getOverridableSection<typeof Newsletter>(
117
+ 'Newsletter',
118
+ Newsletter,
119
+ NewsletterDefaultComponents
120
+ )
121
+
122
+ export default OverridableNewsletter
@@ -1,12 +1,14 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/Newsletter'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
+ import Newsletter from './Newsletter'
4
5
 
5
6
  /**
6
7
  * This component exists to support overrides 1.0
7
8
  *
8
9
  * This allows users to override the default Newsletter section present in the Headless CMS
9
10
  */
10
- export const OverriddenDefaultNewsletter = getOverriddenSection(
11
- override as SectionOverrideDefinition<'Newsletter'>
12
- )
11
+ export const OverriddenDefaultNewsletter = getOverriddenSection({
12
+ ...(override as SectionOverrideDefinitionV1<'Newsletter'>),
13
+ Section: Newsletter,
14
+ })
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/ProductDetails'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import ProductDetails from './ProductDetails'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default ProductDetails section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultProductDetails = getOverriddenSection(
11
- override as SectionOverrideDefinition<'ProductDetails'>
12
- )
12
+ export const OverriddenDefaultProductDetails = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'ProductDetails'>),
14
+ Section: ProductDetails,
15
+ })
@@ -4,18 +4,20 @@ import { gql } from '@faststore/graphql-utils'
4
4
  import type { CurrencyCode, ViewItemEvent } from '@faststore/sdk'
5
5
  import { sendAnalyticsEvent } from '@faststore/sdk'
6
6
 
7
- import type { AnalyticsItem } from 'src/sdk/analytics/types'
8
- import { useFormattedPrice } from 'src/sdk/product/useFormattedPrice'
9
- import { useSession } from 'src/sdk/session'
7
+ import type { AnalyticsItem } from '../../../sdk/analytics/types'
8
+ import { useFormattedPrice } from '../../../sdk/product/useFormattedPrice'
9
+ import { useSession } from '../../../sdk/session'
10
10
 
11
11
  import Section from '../Section'
12
- import ProductDescription from 'src/components/ui/ProductDescription'
13
- import { ProductDetailsSettings } from 'src/components/ui/ProductDetails'
12
+ import ProductDescription from '../../../components/ui/ProductDescription'
13
+ import { ProductDetailsSettings } from '../../../components/ui/ProductDetails'
14
14
 
15
15
  import styles from './section.module.scss'
16
16
 
17
- import { usePDP } from 'src/sdk/overrides/PageProvider'
18
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
17
+ import { usePDP } from '../../../sdk/overrides/PageProvider'
18
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
19
+ import { ProductDetailsDefaultComponents } from './DefaultComponents'
20
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
19
21
 
20
22
  export interface ProductDetailsProps {
21
23
  productTitle: {
@@ -280,4 +282,10 @@ export const fragment = gql`
280
282
  }
281
283
  `
282
284
 
283
- export default ProductDetails
285
+ const OverridableProductDetails = getOverridableSection<typeof ProductDetails>(
286
+ 'ProductDetails',
287
+ ProductDetails,
288
+ ProductDetailsDefaultComponents
289
+ )
290
+
291
+ export default OverridableProductDetails
@@ -1,12 +1,14 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/ProductGallery'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
+ import ProductGallery from '.'
4
5
 
5
6
  /**
6
7
  * This component exists to support overrides 1.0
7
8
  *
8
9
  * This allows users to override the default ProductGallery section present in the Headless CMS
9
10
  */
10
- export const OverriddenDefaultProductGallery = getOverriddenSection(
11
- override as SectionOverrideDefinition<'ProductGallery'>
12
- )
11
+ export const OverriddenDefaultProductGallery = getOverriddenSection({
12
+ ...(override as SectionOverrideDefinitionV1<'ProductGallery'>),
13
+ Section: ProductGallery,
14
+ })
@@ -1,8 +1,8 @@
1
- import { mark } from 'src/sdk/tests/mark'
1
+ import { mark } from '../../../sdk/tests/mark'
2
2
 
3
3
  import ProductGallery, {
4
4
  ProductGalleryProps,
5
- } from 'src/components/ui/ProductGallery/ProductGallery'
5
+ } from '../../ui/ProductGallery/ProductGallery'
6
6
  import Section from '../Section'
7
7
  import type { EmptyGalleryProps } from './EmptyGallery'
8
8
 
@@ -13,8 +13,10 @@ import {
13
13
  isPLP,
14
14
  isSearchPage,
15
15
  usePage,
16
- } from 'src/sdk/overrides/PageProvider'
17
- import { useOverrideComponents } from 'src/sdk/overrides/OverrideContext'
16
+ } from '../../../sdk/overrides/PageProvider'
17
+ import { useOverrideComponents } from '../../../sdk/overrides/OverrideContext'
18
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
19
+ import { ProductGalleryDefaultComponents } from './DefaultComponents'
18
20
 
19
21
  export interface ProductGallerySectionProps {
20
22
  searchTermLabel?: ProductGalleryProps['searchTermLabel']
@@ -69,4 +71,10 @@ function ProductGallerySection({
69
71
  }
70
72
 
71
73
  ProductGallerySection.displayName = 'ProductGallery'
72
- export default mark(ProductGallerySection)
74
+ const MarkedProductGallery = mark(ProductGallerySection)
75
+
76
+ const OverridableProductGallery = getOverridableSection<
77
+ typeof MarkedProductGallery
78
+ >('ProductGallery', MarkedProductGallery, ProductGalleryDefaultComponents)
79
+
80
+ export default OverridableProductGallery
@@ -1,12 +1,15 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/ProductShelf'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import ProductShelf from '.'
4
+
5
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
6
 
5
7
  /**
6
8
  * This component exists to support overrides 1.0
7
9
  *
8
10
  * This allows users to override the default ProductShelf section present in the Headless CMS
9
11
  */
10
- export const OverriddenDefaultProductShelf = getOverriddenSection(
11
- override as SectionOverrideDefinition<'ProductShelf'>
12
- )
12
+ export const OverriddenDefaultProductShelf = getOverriddenSection({
13
+ ...(override as SectionOverrideDefinitionV1<'ProductShelf'>),
14
+ Section: ProductShelf,
15
+ })
@@ -1,8 +1,12 @@
1
1
  import { useInView } from 'react-intersection-observer'
2
2
  import Section from '../Section'
3
3
 
4
- import ProductShelf, { ProductShelfProps } from 'src/components/ui/ProductShelf'
4
+ import ProductShelf, {
5
+ ProductShelfProps,
6
+ } from '../../../components/ui/ProductShelf'
5
7
  import styles from './section.module.scss'
8
+ import { ProductShelfDefaultComponents } from './DefaultComponents'
9
+ import { getOverridableSection } from '../../../sdk/overrides/getOverriddenSection'
6
10
 
7
11
  function ProductShelfSection({
8
12
  ...otherProps
@@ -19,4 +23,10 @@ function ProductShelfSection({
19
23
  )
20
24
  }
21
25
 
22
- export default ProductShelfSection
26
+ const OverridableProductShelf = getOverridableSection<typeof ProductShelf>(
27
+ 'ProductShelf',
28
+ ProductShelfSection,
29
+ ProductShelfDefaultComponents
30
+ )
31
+
32
+ export default OverridableProductShelf
@@ -1,12 +1,14 @@
1
1
  import { override } from 'src/customizations/src/components/overrides/RegionBar'
2
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
- import type { SectionOverrideDefinition } from 'src/typings/overridesDefinition'
3
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
4
+ import RegionBar from '.'
4
5
 
5
6
  /**
6
7
  * This component exists to support overrides 1.0
7
8
  *
8
9
  * This allows users to override the default RegionBar section present in the Headless CMS
9
10
  */
10
- export const OverriddenDefaultRegionBar = getOverriddenSection(
11
- override as SectionOverrideDefinition<'RegionBar'>
12
- )
11
+ export const OverriddenDefaultRegionBar = getOverriddenSection({
12
+ ...(override as SectionOverrideDefinitionV1<'RegionBar'>),
13
+ Section: RegionBar,
14
+ })