@faststore/core 3.5.1 → 3.7.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 (178) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +27 -26
  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/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/server-production/0.pack +0 -0
  9. package/.next/cache/webpack/server-production/index.pack +0 -0
  10. package/.next/next-minimal-server.js.nft.json +1 -1
  11. package/.next/next-server.js.nft.json +1 -1
  12. package/.next/prerender-manifest.js +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/react-loadable-manifest.json +36 -36
  15. package/.next/routes-manifest.json +1 -1
  16. package/.next/server/chunks/1153.js +1 -1
  17. package/.next/server/chunks/1163.js +2 -2
  18. package/.next/server/chunks/1377.js +1 -1
  19. package/.next/server/chunks/2082.js +3 -3
  20. package/.next/server/chunks/2245.js +1 -1
  21. package/.next/server/chunks/2295.js +1 -1
  22. package/.next/server/chunks/2552.js +1 -1
  23. package/.next/server/chunks/2710.js +1 -1
  24. package/.next/server/chunks/2880.js +1 -1
  25. package/.next/server/chunks/2918.js +2 -2
  26. package/.next/server/chunks/3157.js +1 -1
  27. package/.next/server/chunks/319.js +1 -1
  28. package/.next/server/chunks/3202.js +1 -1
  29. package/.next/server/chunks/371.js +1 -1
  30. package/.next/server/chunks/3716.js +2 -2
  31. package/.next/server/chunks/3779.js +1 -1
  32. package/.next/server/chunks/3922.js +1 -1
  33. package/.next/server/chunks/4012.js +1 -1
  34. package/.next/server/chunks/4222.js +1 -1
  35. package/.next/server/chunks/4358.js +1 -1
  36. package/.next/server/chunks/4451.js +1 -1
  37. package/.next/server/chunks/5110.js +1 -1
  38. package/.next/server/chunks/5156.js +1 -1
  39. package/.next/server/chunks/5284.js +1 -1
  40. package/.next/server/chunks/5342.js +1 -1
  41. package/.next/server/chunks/5380.js +1 -1
  42. package/.next/server/chunks/5430.js +1 -1
  43. package/.next/server/chunks/5476.js +1 -1
  44. package/.next/server/chunks/5484.js +1 -1
  45. package/.next/server/chunks/5671.js +1 -1
  46. package/.next/server/chunks/5754.js +2 -2
  47. package/.next/server/chunks/6198.js +1 -0
  48. package/.next/server/chunks/6335.js +1 -1
  49. package/.next/server/chunks/64.js +1 -1
  50. package/.next/server/chunks/6414.js +1 -1
  51. package/.next/server/chunks/6859.js +3 -3
  52. package/.next/server/chunks/7169.js +1 -1
  53. package/.next/server/chunks/7228.js +1 -1
  54. package/.next/server/chunks/7468.js +1 -1
  55. package/.next/server/chunks/7675.js +1 -1
  56. package/.next/server/chunks/7986.js +1 -1
  57. package/.next/server/chunks/8096.js +1 -1
  58. package/.next/server/chunks/8640.js +1 -1
  59. package/.next/server/chunks/8724.js +1 -1
  60. package/.next/server/chunks/8737.js +1 -1
  61. package/.next/server/chunks/8857.js +1 -1
  62. package/.next/server/chunks/9088.js +1 -1
  63. package/.next/server/chunks/9160.js +1 -1
  64. package/.next/server/chunks/9369.js +1 -1
  65. package/.next/server/chunks/9410.js +1 -1
  66. package/.next/server/chunks/945.js +1 -1
  67. package/.next/server/chunks/9570.js +1 -1
  68. package/.next/server/chunks/9572.js +49 -3
  69. package/.next/server/chunks/983.js +1 -1
  70. package/.next/server/chunks/9844.js +1 -1
  71. package/.next/server/chunks/ButtonSignIn.js +1 -1
  72. package/.next/server/chunks/Dropdown.js +1 -1
  73. package/.next/server/chunks/DropdownButton.js +1 -1
  74. package/.next/server/chunks/DropdownItem.js +1 -1
  75. package/.next/server/chunks/DropdownMenu.js +1 -1
  76. package/.next/server/chunks/FilterSkeleton.js +1 -1
  77. package/.next/server/chunks/ScrollToTopButton.js +1 -1
  78. package/.next/server/chunks/UIBannerText.js +1 -1
  79. package/.next/server/middleware-build-manifest.js +1 -1
  80. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  81. package/.next/server/pages/404.js +1 -1
  82. package/.next/server/pages/404.js.nft.json +1 -1
  83. package/.next/server/pages/500.js +1 -1
  84. package/.next/server/pages/500.js.nft.json +1 -1
  85. package/.next/server/pages/[...slug].js +1 -1
  86. package/.next/server/pages/[...slug].js.nft.json +1 -1
  87. package/.next/server/pages/[slug]/p.js +1 -1
  88. package/.next/server/pages/[slug]/p.js.nft.json +1 -1
  89. package/.next/server/pages/_app.js +1 -1
  90. package/.next/server/pages/_app.js.nft.json +1 -1
  91. package/.next/server/pages/_document.js +1 -1
  92. package/.next/server/pages/_document.js.nft.json +1 -1
  93. package/.next/server/pages/_error.js +1 -1
  94. package/.next/server/pages/_error.js.nft.json +1 -1
  95. package/.next/server/pages/account.js +1 -1
  96. package/.next/server/pages/account.js.nft.json +1 -1
  97. package/.next/server/pages/api/graphql.js +1 -1
  98. package/.next/server/pages/api/graphql.js.nft.json +1 -1
  99. package/.next/server/pages/api/health/live.js +1 -1
  100. package/.next/server/pages/api/health/live.js.nft.json +1 -1
  101. package/.next/server/pages/api/health/ready.js +1 -1
  102. package/.next/server/pages/api/health/ready.js.nft.json +1 -1
  103. package/.next/server/pages/api/preview.js +1 -1
  104. package/.next/server/pages/api/preview.js.nft.json +1 -1
  105. package/.next/server/pages/checkout.js +1 -1
  106. package/.next/server/pages/checkout.js.nft.json +1 -1
  107. package/.next/server/pages/en-US/404.html +1 -1
  108. package/.next/server/pages/en-US/404.json +1 -1
  109. package/.next/server/pages/en-US/500.html +1 -1
  110. package/.next/server/pages/en-US/500.json +1 -1
  111. package/.next/server/pages/en-US/account.html +1 -1
  112. package/.next/server/pages/en-US/account.json +1 -1
  113. package/.next/server/pages/en-US/checkout.html +1 -1
  114. package/.next/server/pages/en-US/checkout.json +1 -1
  115. package/.next/server/pages/en-US/login.html +1 -1
  116. package/.next/server/pages/en-US/login.json +1 -1
  117. package/.next/server/pages/en-US/s.html +1 -1
  118. package/.next/server/pages/en-US/s.json +1 -1
  119. package/.next/server/pages/en-US.html +1 -1
  120. package/.next/server/pages/en-US.json +1 -1
  121. package/.next/server/pages/index.js +1 -1
  122. package/.next/server/pages/index.js.nft.json +1 -1
  123. package/.next/server/pages/login.js +1 -1
  124. package/.next/server/pages/login.js.nft.json +1 -1
  125. package/.next/server/pages/s.js +1 -1
  126. package/.next/server/pages/s.js.nft.json +1 -1
  127. package/.next/server/pages-manifest.json +1 -1
  128. package/.next/static/chunks/1550-a6207993ae890714.js +1 -0
  129. package/.next/static/chunks/2552.9070ea604ee3c214.js +1 -0
  130. package/.next/static/chunks/2599-67df8c38c483737b.js +1 -0
  131. package/.next/static/chunks/3285.419d379c827c993d.js +1 -0
  132. package/.next/static/chunks/6379-e49fe5643b85d5b5.js +1 -0
  133. package/.next/static/chunks/7498-791ad2ef2c9fc716.js +1 -0
  134. package/.next/static/chunks/BannerNewsletter.29403e046f34b6c1.js +1 -0
  135. package/.next/static/chunks/BannerText.24939a8013e30e18.js +1 -0
  136. package/.next/static/chunks/CartSidebar.71febd97344a7b4c.js +1 -0
  137. package/.next/static/chunks/ProductShelf.d40d1e693c5a302b.js +1 -0
  138. package/.next/static/chunks/RegionModal.cec6e7d1faeeae2d.js +1 -0
  139. package/.next/static/chunks/Toast.0e3d2c547b67cf60.js +1 -0
  140. package/.next/static/chunks/pages/[slug]/p-c005eeb4788692e7.js +1 -0
  141. package/.next/static/chunks/webpack-0d0b6c5bc10dfaad.js +1 -0
  142. package/.next/static/css/d92839440872e246.css +1 -0
  143. package/.next/static/wTXZLYjYfhhubsnCUqtpc/_buildManifest.js +1 -0
  144. package/.next/trace +98 -98
  145. package/.turbo/turbo-build.log +4 -4
  146. package/.turbo/turbo-lint.log +1 -1
  147. package/.turbo/turbo-test.log +5 -5
  148. package/@generated/gql.ts +18 -2
  149. package/@generated/graphql.ts +157 -0
  150. package/@generated/persisted-documents.json +1 -0
  151. package/@generated/schema.graphql +2 -0
  152. package/CHANGELOG.md +10 -0
  153. package/cms/faststore/sections.json +193 -406
  154. package/package.json +5 -5
  155. package/src/components/sections/ProductDetails/DefaultComponents.ts +9 -1
  156. package/src/components/sections/ProductDetails/ProductDetails.tsx +46 -3
  157. package/src/components/sections/ProductDetails/section.module.scss +39 -3
  158. package/src/components/ui/SKUMatrix/SKUMatrixSidebar.tsx +132 -0
  159. package/src/sdk/cart/useBuyButton.ts +41 -20
  160. package/src/sdk/product/useAllVariantProducts.ts +114 -0
  161. package/src/typings/overrides.ts +21 -5
  162. package/.next/server/chunks/463.js +0 -1
  163. package/.next/static/6ZNleGM8J-r36JTXegNEr/_buildManifest.js +0 -1
  164. package/.next/static/chunks/1550-b2d0f274d1db008a.js +0 -1
  165. package/.next/static/chunks/2552.35321485d927aa08.js +0 -1
  166. package/.next/static/chunks/299.c58d37a55fab85ad.js +0 -1
  167. package/.next/static/chunks/6379-fc541ff2f12fab06.js +0 -1
  168. package/.next/static/chunks/9638-24a86482d4a4b434.js +0 -1
  169. package/.next/static/chunks/BannerNewsletter.96d85bb5fbde1d76.js +0 -1
  170. package/.next/static/chunks/BannerText.f58f1afdd622dd6c.js +0 -1
  171. package/.next/static/chunks/CartSidebar.33f111ff908118cf.js +0 -1
  172. package/.next/static/chunks/ProductShelf.58b9c11d0b9d412c.js +0 -1
  173. package/.next/static/chunks/RegionModal.8d2c6065d8aaf911.js +0 -1
  174. package/.next/static/chunks/Toast.9ad46e15a6444bd6.js +0 -1
  175. package/.next/static/chunks/pages/[slug]/p-b5e429fbf8e96d36.js +0 -1
  176. package/.next/static/chunks/webpack-712cba50a8ffee1b.js +0 -1
  177. package/.next/static/css/9718991cd57978e9.css +0 -1
  178. /package/.next/static/{6ZNleGM8J-r36JTXegNEr → wTXZLYjYfhhubsnCUqtpc}/_ssgManifest.js +0 -0
@@ -50,10 +50,10 @@ Route (pages) Size First Load JS
50
50
  ├ └ css/b1806cbafd0c1f81.css 3.06 kB
51
51
  ├ /_app 0 B 91.9 kB
52
52
  ├ ● /[...slug] 2 kB 130 kB
53
- ├ ● /[slug]/p 28.9 kB 147 kB
53
+ ├ ● /[slug]/p 34 kB 153 kB
54
54
  ├ ├ css/bf1560439df2c1a1.css 5.66 kB
55
55
  ├ ├ css/e3ff5d95518a5c79.css 6.01 kB
56
- ├ └ css/9718991cd57978e9.css 14.8 kB
56
+ ├ └ css/d92839440872e246.css 15.6 kB
57
57
  ├ ○ /404 1.46 kB 120 kB
58
58
  ├ ● /500 1.46 kB 120 kB
59
59
  ├ ● /account 712 B 119 kB
@@ -68,11 +68,11 @@ Route (pages) Size First Load JS
68
68
  ├ chunks/framework-12a146e94cfcf7c4.js 45.4 kB
69
69
  ├ chunks/main-209ac4974b020af1.js 33.1 kB
70
70
  ├ chunks/pages/_app-9d791333b87e7c18.js 9.9 kB
71
- ├ chunks/webpack-712cba50a8ffee1b.js 3.57 kB
71
+ ├ chunks/webpack-0d0b6c5bc10dfaad.js 3.57 kB
72
72
  └ css/ee0556daedda6306.css 3.07 kB
73
73
 
74
74
  λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
75
75
  ○ (Static) automatically rendered as static HTML (uses no initial props)
76
76
  ● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
77
77
 
78
- Done in 69.31s.
78
+ Done in 71.95s.
@@ -1,4 +1,4 @@
1
1
  yarn run v1.22.22
2
2
  $ next lint
3
3
  ✔ No ESLint warnings or errors
4
- Done in 6.08s.
4
+ Done in 6.06s.
@@ -1,12 +1,12 @@
1
1
  yarn run v1.22.22
2
2
  $ jest
3
- PASS test/server/cms/index.test.ts (35.936 s)
4
- PASS test/utils/multipleTemplates.test.ts (36.438 s)
5
- PASS test/server/index.test.ts (39.256 s)
3
+ PASS test/server/cms/index.test.ts (37.742 s)
4
+ PASS test/utils/multipleTemplates.test.ts (37.935 s)
5
+ PASS test/server/index.test.ts (41.573 s)
6
6
 
7
7
  Test Suites: 3 passed, 3 total
8
8
  Tests: 19 passed, 19 total
9
9
  Snapshots: 0 total
10
- Time: 40.373 s
10
+ Time: 42.763 s
11
11
  Ran all test suites.
12
- Done in 42.31s.
12
+ Done in 44.18s.
package/@generated/gql.ts CHANGED
@@ -16,8 +16,10 @@ const documents = {
16
16
  types.ProductSummary_ProductFragmentDoc,
17
17
  '\n fragment Filter_facets on StoreFacet {\n ... on StoreFacetRange {\n key\n label\n\n min {\n selected\n absolute\n }\n\n max {\n selected\n absolute\n }\n\n __typename\n }\n ... on StoreFacetBoolean {\n key\n label\n values {\n label\n value\n selected\n quantity\n }\n\n __typename\n }\n }\n':
18
18
  types.Filter_FacetsFragmentDoc,
19
- '\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n # Contains necessary info to add this item to cart\n ...CartProductItem\n }\n':
19
+ '\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n\t\t\tskuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n # Contains necessary info to add this item to cart\n ...CartProductItem\n }\n':
20
20
  types.ProductDetailsFragment_ProductFragmentDoc,
21
+ '\n fragment ProductSKUMatrixSidebarFragment_product on StoreProduct {\n id: productID\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n allVariantProducts {\n\t\t\t\t\tsku\n name\n image {\n url\n alternateName\n }\n offers {\n highPrice\n lowPrice\n lowPriceWithTaxes\n offerCount\n priceCurrency\n offers {\n listPrice\n listPriceWithTaxes\n sellingPrice\n priceCurrency\n price\n priceWithTaxes\n priceValidUntil\n itemCondition\n availability\n quantity\n }\n }\n additionalProperty {\n propertyID\n value\n name\n valueReference\n }\n }\n }\n }\n }\n':
22
+ types.ProductSkuMatrixSidebarFragment_ProductFragmentDoc,
21
23
  '\n fragment ClientManyProducts on Query {\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n sponsoredCount: $sponsoredCount\n\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n }\n }\n':
22
24
  types.ClientManyProductsFragmentDoc,
23
25
  '\n fragment ClientProduct on Query {\n product(locator: $locator) {\n id: productID\n }\n }\n':
@@ -42,6 +44,8 @@ const documents = {
42
44
  types.ValidateCartMutationDocument,
43
45
  '\n mutation SubscribeToNewsletter($data: IPersonNewsletter!) {\n subscribeToNewsletter(data: $data) {\n id\n }\n }\n':
44
46
  types.SubscribeToNewsletterDocument,
47
+ '\n query ClientAllVariantProductsQuery($locator: [IStoreSelectedFacet!]!) {\n product(locator: $locator) {\n ...ProductSKUMatrixSidebarFragment_product\n }\n }\n':
48
+ types.ClientAllVariantProductsQueryDocument,
45
49
  '\n query ClientManyProductsQuery(\n $first: Int!\n $after: String\n $sort: StoreSort!\n $term: String!\n $selectedFacets: [IStoreSelectedFacet!]!\n $sponsoredCount: Int\n ) {\n ...ClientManyProducts\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n sponsoredCount: $sponsoredCount\n ) {\n products {\n pageInfo {\n totalCount\n }\n edges {\n node {\n ...ProductSummary_product\n }\n }\n }\n }\n }\n':
46
50
  types.ClientManyProductsQueryDocument,
47
51
  '\n query ClientProductGalleryQuery(\n $first: Int!\n $after: String!\n $sort: StoreSort!\n $term: String!\n $selectedFacets: [IStoreSelectedFacet!]!\n ) {\n ...ClientProductGallery\n redirect(term: $term, selectedFacets: $selectedFacets) {\n url\n }\n search(\n first: $first\n after: $after\n sort: $sort\n term: $term\n selectedFacets: $selectedFacets\n ) {\n products {\n pageInfo {\n totalCount\n }\n }\n facets {\n ...Filter_facets\n }\n metadata {\n ...SearchEvent_metadata\n }\n }\n }\n\n fragment SearchEvent_metadata on SearchMetadata {\n isTermMisspelled\n logicalOperator\n fuzzy\n }\n':
@@ -74,8 +78,14 @@ export function gql(
74
78
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
75
79
  */
76
80
  export function gql(
77
- source: '\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n # Contains necessary info to add this item to cart\n ...CartProductItem\n }\n'
81
+ source: '\n fragment ProductDetailsFragment_product on StoreProduct {\n id: productID\n sku\n name\n gtin\n description\n unitMultiplier\n isVariantOf {\n name\n productGroupID\n\t\t\tskuVariants {\n activeVariations\n slugsMap\n availableVariations\n }\n }\n\n image {\n url\n alternateName\n }\n\n brand {\n name\n }\n\n offers {\n lowPrice\n lowPriceWithTaxes\n offers {\n availability\n price\n priceWithTaxes\n listPrice\n listPriceWithTaxes\n seller {\n identifier\n }\n }\n }\n\n additionalProperty {\n propertyID\n name\n value\n valueReference\n }\n\n # Contains necessary info to add this item to cart\n ...CartProductItem\n }\n'
78
82
  ): typeof import('./graphql').ProductDetailsFragment_ProductFragmentDoc
83
+ /**
84
+ * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
85
+ */
86
+ export function gql(
87
+ source: '\n fragment ProductSKUMatrixSidebarFragment_product on StoreProduct {\n id: productID\n isVariantOf {\n name\n productGroupID\n skuVariants {\n activeVariations\n slugsMap\n availableVariations\n allVariantProducts {\n\t\t\t\t\tsku\n name\n image {\n url\n alternateName\n }\n offers {\n highPrice\n lowPrice\n lowPriceWithTaxes\n offerCount\n priceCurrency\n offers {\n listPrice\n listPriceWithTaxes\n sellingPrice\n priceCurrency\n price\n priceWithTaxes\n priceValidUntil\n itemCondition\n availability\n quantity\n }\n }\n additionalProperty {\n propertyID\n value\n name\n valueReference\n }\n }\n }\n }\n }\n'
88
+ ): typeof import('./graphql').ProductSkuMatrixSidebarFragment_ProductFragmentDoc
79
89
  /**
80
90
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
81
91
  */
@@ -148,6 +158,12 @@ export function gql(
148
158
  export function gql(
149
159
  source: '\n mutation SubscribeToNewsletter($data: IPersonNewsletter!) {\n subscribeToNewsletter(data: $data) {\n id\n }\n }\n'
150
160
  ): typeof import('./graphql').SubscribeToNewsletterDocument
161
+ /**
162
+ * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
163
+ */
164
+ export function gql(
165
+ source: '\n query ClientAllVariantProductsQuery($locator: [IStoreSelectedFacet!]!) {\n product(locator: $locator) {\n ...ProductSKUMatrixSidebarFragment_product\n }\n }\n'
166
+ ): typeof import('./graphql').ClientAllVariantProductsQueryDocument
151
167
  /**
152
168
  * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
153
169
  */
@@ -599,6 +599,8 @@ export type ShippingSla = {
599
599
  export type SkuVariants = {
600
600
  /** SKU property values for the current SKU. */
601
601
  activeVariations: Maybe<Scalars['ActiveVariations']['output']>
602
+ /** All possible variant combinations of the current product. It also includes the data for each variant. */
603
+ allVariantProducts: Maybe<Array<StoreProduct>>
602
604
  /** All available options for each SKU variant property, indexed by their name. */
603
605
  allVariantsByName: Maybe<Scalars['VariantsByName']['output']>
604
606
  /**
@@ -1221,6 +1223,49 @@ export type ProductDetailsFragment_ProductFragment = {
1221
1223
  }>
1222
1224
  }
1223
1225
 
1226
+ export type ProductSkuMatrixSidebarFragment_ProductFragment = {
1227
+ id: string
1228
+ isVariantOf: {
1229
+ name: string
1230
+ productGroupID: string
1231
+ skuVariants: {
1232
+ activeVariations: any | null
1233
+ slugsMap: any | null
1234
+ availableVariations: any | null
1235
+ allVariantProducts: Array<{
1236
+ sku: string
1237
+ name: string
1238
+ image: Array<{ url: string; alternateName: string }>
1239
+ offers: {
1240
+ highPrice: number
1241
+ lowPrice: number
1242
+ lowPriceWithTaxes: number
1243
+ offerCount: number
1244
+ priceCurrency: string
1245
+ offers: Array<{
1246
+ listPrice: number
1247
+ listPriceWithTaxes: number
1248
+ sellingPrice: number
1249
+ priceCurrency: string
1250
+ price: number
1251
+ priceWithTaxes: number
1252
+ priceValidUntil: string
1253
+ itemCondition: string
1254
+ availability: string
1255
+ quantity: number
1256
+ }>
1257
+ }
1258
+ additionalProperty: Array<{
1259
+ propertyID: string
1260
+ value: any
1261
+ name: string
1262
+ valueReference: any
1263
+ }>
1264
+ }> | null
1265
+ } | null
1266
+ }
1267
+ }
1268
+
1224
1269
  export type ClientManyProductsFragment = {
1225
1270
  search: { products: { pageInfo: { totalCount: number } } }
1226
1271
  }
@@ -1428,6 +1473,55 @@ export type SubscribeToNewsletterMutation = {
1428
1473
  subscribeToNewsletter: { id: string } | null
1429
1474
  }
1430
1475
 
1476
+ export type ClientAllVariantProductsQueryQueryVariables = Exact<{
1477
+ locator: Array<IStoreSelectedFacet> | IStoreSelectedFacet
1478
+ }>
1479
+
1480
+ export type ClientAllVariantProductsQueryQuery = {
1481
+ product: {
1482
+ id: string
1483
+ isVariantOf: {
1484
+ name: string
1485
+ productGroupID: string
1486
+ skuVariants: {
1487
+ activeVariations: any | null
1488
+ slugsMap: any | null
1489
+ availableVariations: any | null
1490
+ allVariantProducts: Array<{
1491
+ sku: string
1492
+ name: string
1493
+ image: Array<{ url: string; alternateName: string }>
1494
+ offers: {
1495
+ highPrice: number
1496
+ lowPrice: number
1497
+ lowPriceWithTaxes: number
1498
+ offerCount: number
1499
+ priceCurrency: string
1500
+ offers: Array<{
1501
+ listPrice: number
1502
+ listPriceWithTaxes: number
1503
+ sellingPrice: number
1504
+ priceCurrency: string
1505
+ price: number
1506
+ priceWithTaxes: number
1507
+ priceValidUntil: string
1508
+ itemCondition: string
1509
+ availability: string
1510
+ quantity: number
1511
+ }>
1512
+ }
1513
+ additionalProperty: Array<{
1514
+ propertyID: string
1515
+ value: any
1516
+ name: string
1517
+ valueReference: any
1518
+ }>
1519
+ }> | null
1520
+ } | null
1521
+ }
1522
+ }
1523
+ }
1524
+
1431
1525
  export type ClientManyProductsQueryQueryVariables = Exact<{
1432
1526
  first: Scalars['Int']['input']
1433
1527
  after: InputMaybe<Scalars['String']['input']>
@@ -1891,6 +1985,60 @@ export const ProductDetailsFragment_ProductFragmentDoc =
1891
1985
  ProductDetailsFragment_ProductFragment,
1892
1986
  unknown
1893
1987
  >
1988
+ export const ProductSkuMatrixSidebarFragment_ProductFragmentDoc =
1989
+ new TypedDocumentString(
1990
+ `
1991
+ fragment ProductSKUMatrixSidebarFragment_product on StoreProduct {
1992
+ id: productID
1993
+ isVariantOf {
1994
+ name
1995
+ productGroupID
1996
+ skuVariants {
1997
+ activeVariations
1998
+ slugsMap
1999
+ availableVariations
2000
+ allVariantProducts {
2001
+ sku
2002
+ name
2003
+ image {
2004
+ url
2005
+ alternateName
2006
+ }
2007
+ offers {
2008
+ highPrice
2009
+ lowPrice
2010
+ lowPriceWithTaxes
2011
+ offerCount
2012
+ priceCurrency
2013
+ offers {
2014
+ listPrice
2015
+ listPriceWithTaxes
2016
+ sellingPrice
2017
+ priceCurrency
2018
+ price
2019
+ priceWithTaxes
2020
+ priceValidUntil
2021
+ itemCondition
2022
+ availability
2023
+ quantity
2024
+ }
2025
+ }
2026
+ additionalProperty {
2027
+ propertyID
2028
+ value
2029
+ name
2030
+ valueReference
2031
+ }
2032
+ }
2033
+ }
2034
+ }
2035
+ }
2036
+ `,
2037
+ { fragmentName: 'ProductSKUMatrixSidebarFragment_product' }
2038
+ ) as unknown as TypedDocumentString<
2039
+ ProductSkuMatrixSidebarFragment_ProductFragment,
2040
+ unknown
2041
+ >
1894
2042
  export const ClientManyProductsFragmentDoc = new TypedDocumentString(
1895
2043
  `
1896
2044
  fragment ClientManyProducts on Query {
@@ -2102,6 +2250,15 @@ export const SubscribeToNewsletterDocument = {
2102
2250
  SubscribeToNewsletterMutation,
2103
2251
  SubscribeToNewsletterMutationVariables
2104
2252
  >
2253
+ export const ClientAllVariantProductsQueryDocument = {
2254
+ __meta__: {
2255
+ operationName: 'ClientAllVariantProductsQuery',
2256
+ operationHash: '4039e05f01a2fe449e20e8b82170d0ba94b1fbe9',
2257
+ },
2258
+ } as unknown as TypedDocumentString<
2259
+ ClientAllVariantProductsQueryQuery,
2260
+ ClientAllVariantProductsQueryQueryVariables
2261
+ >
2105
2262
  export const ClientManyProductsQueryDocument = {
2106
2263
  __meta__: {
2107
2264
  operationName: 'ClientManyProductsQuery',
@@ -3,6 +3,7 @@
3
3
  "46103bee661405bde706d72126fdbf9b0a0c9e6e": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } fragment ServerProduct on Query { product(locator: $locator) { id: productID } } query ServerProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { brand { name } breadcrumbList { itemListElement { item name position } } description gtin image { alternateName url } isVariantOf { productGroupID } name offers { highPrice lowPrice lowPriceWithTaxes offers { availability itemCondition price priceCurrency priceValidUntil seller { identifier } } priceCurrency } id: productID releaseDate seo { canonical description title } sku ...ProductDetailsFragment_product } ...ServerProduct }",
4
4
  "c2b3f8bff73ebf6ac79d758c66cabbc21ba9fcc0": "fragment CartItem on StoreOffer { itemOffered { ...CartProductItem } listPrice listPriceWithTaxes price priceWithTaxes quantity seller { identifier } } fragment CartMessage on StoreCartMessage { status text } fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } mutation ValidateCartMutation($cart: IStoreCart!, $session: IStoreSession!) { validateCart(cart: $cart, session: $session) { messages { ...CartMessage } order { acceptedOffer { ...CartItem } orderNumber shouldSplitItem } } }",
5
5
  "feb7005103a859e2bc8cf2360d568806fd88deba": "mutation SubscribeToNewsletter($data: IPersonNewsletter!) { subscribeToNewsletter(data: $data) { id } }",
6
+ "4039e05f01a2fe449e20e8b82170d0ba94b1fbe9": "fragment ProductSKUMatrixSidebarFragment_product on StoreProduct { isVariantOf { name productGroupID skuVariants { activeVariations allVariantProducts { additionalProperty { name propertyID value valueReference } image { alternateName url } name offers { highPrice lowPrice lowPriceWithTaxes offerCount offers { availability itemCondition listPrice listPriceWithTaxes price priceCurrency priceValidUntil priceWithTaxes quantity sellingPrice } priceCurrency } sku } availableVariations slugsMap } } id: productID } query ClientAllVariantProductsQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { ...ProductSKUMatrixSidebarFragment_product } }",
6
7
  "14148671fbf53498fad5c600ee87765920145019": "fragment ClientManyProducts on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets sponsoredCount: $sponsoredCount ) { products { pageInfo { totalCount } } } } fragment ProductSummary_product on StoreProduct { additionalProperty { name propertyID value valueReference } advertisement { adId adResponseId } brand { brandName: name } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price quantity seller { identifier } } } id: productID sku slug } query ClientManyProductsQuery($after: String, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $sponsoredCount: Int, $term: String!) { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets sponsoredCount: $sponsoredCount ) { products { edges { node { ...ProductSummary_product } } pageInfo { totalCount } } } ...ClientManyProducts }",
7
8
  "bfc40da32b60f9404a4adb96b0856e3fbb04b076": "fragment ClientProductGallery on Query { search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { products { pageInfo { totalCount } } } } fragment Filter_facets on StoreFacet { ... on StoreFacetBoolean { __typename key label values { label quantity selected value } } ... on StoreFacetRange { __typename key label max { absolute selected } min { absolute selected } } } fragment SearchEvent_metadata on SearchMetadata { fuzzy isTermMisspelled logicalOperator } query ClientProductGalleryQuery($after: String!, $first: Int!, $selectedFacets: [IStoreSelectedFacet!]!, $sort: StoreSort!, $term: String!) { redirect(term: $term, selectedFacets: $selectedFacets) { url } search( first: $first after: $after sort: $sort term: $term selectedFacets: $selectedFacets ) { facets { ...Filter_facets } metadata { ...SearchEvent_metadata } products { pageInfo { totalCount } } } ...ClientProductGallery }",
8
9
  "7d121ef8d4dc99174e64e4429a9b977b8bbebed8": "fragment CartProductItem on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name sku unitMultiplier } fragment ClientProduct on Query { product(locator: $locator) { id: productID } } fragment ProductDetailsFragment_product on StoreProduct { additionalProperty { name propertyID value valueReference } brand { name } description gtin image { alternateName url } isVariantOf { name productGroupID skuVariants { activeVariations availableVariations slugsMap } } name offers { lowPrice lowPriceWithTaxes offers { availability listPrice listPriceWithTaxes price priceWithTaxes seller { identifier } } } id: productID sku unitMultiplier ...CartProductItem } query ClientProductQuery($locator: [IStoreSelectedFacet!]!) { product(locator: $locator) { ...ProductDetailsFragment_product } ...ClientProduct }",
@@ -1019,6 +1019,8 @@ type SkuVariants {
1019
1019
  considered the dominant one.
1020
1020
  """
1021
1021
  availableVariations(dominantVariantName: String): FormattedVariants
1022
+ """All possible variant combinations of the current product. It also includes the data for each variant."""
1023
+ allVariantProducts: [StoreProduct!]
1022
1024
  }
1023
1025
 
1024
1026
  """
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.7.0](https://github.com/vtex/faststore/compare/v3.6.0...v3.7.0) (2025-01-15)
7
+
8
+ ### Features
9
+
10
+ - adds SKUMatrix component ([#2588](https://github.com/vtex/faststore/issues/2588)) ([0d7db56](https://github.com/vtex/faststore/commit/0d7db567be1e7b9b9375580b0a8cf665ee69d1c0))
11
+
12
+ # [3.6.0](https://github.com/vtex/faststore/compare/v3.5.1...v3.6.0) (2025-01-13)
13
+
14
+ **Note:** Version bump only for package @faststore/core
15
+
6
16
  ## [3.5.1](https://github.com/vtex/faststore/compare/v3.5.0...v3.5.1) (2025-01-09)
7
17
 
8
18
  ### Bug Fixes