@faststore/core 2.2.20 → 2.2.22

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 (182) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +9 -9
  3. package/next.config.js +1 -0
  4. package/package.json +10 -21
  5. package/.next/BUILD_ID +0 -1
  6. package/.next/build-manifest.json +0 -126
  7. package/.next/cache/.tsbuildinfo +0 -1
  8. package/.next/cache/config.json +0 -7
  9. package/.next/cache/eslint/.cache_1gneedd +0 -1
  10. package/.next/cache/next-server.js.nft.json +0 -1
  11. package/.next/cache/webpack/client-production/0.pack +0 -0
  12. package/.next/cache/webpack/client-production/index.pack +0 -0
  13. package/.next/cache/webpack/server-production/0.pack +0 -0
  14. package/.next/cache/webpack/server-production/index.pack +0 -0
  15. package/.next/export-marker.json +0 -1
  16. package/.next/images-manifest.json +0 -1
  17. package/.next/next-server.js.nft.json +0 -1
  18. package/.next/package.json +0 -1
  19. package/.next/prerender-manifest.json +0 -1
  20. package/.next/react-loadable-manifest.json +0 -47
  21. package/.next/required-server-files.json +0 -1
  22. package/.next/routes-manifest.json +0 -1
  23. package/.next/server/chunks/117.js +0 -430
  24. package/.next/server/chunks/177.js +0 -120
  25. package/.next/server/chunks/183.js +0 -121
  26. package/.next/server/chunks/184.js +0 -61
  27. package/.next/server/chunks/289.js +0 -240
  28. package/.next/server/chunks/312.js +0 -678
  29. package/.next/server/chunks/350.js +0 -200
  30. package/.next/server/chunks/386.js +0 -200
  31. package/.next/server/chunks/390.js +0 -550
  32. package/.next/server/chunks/398.js +0 -610
  33. package/.next/server/chunks/52.js +0 -4007
  34. package/.next/server/chunks/53.js +0 -61
  35. package/.next/server/chunks/574.js +0 -145
  36. package/.next/server/chunks/576.js +0 -121
  37. package/.next/server/chunks/585.js +0 -640
  38. package/.next/server/chunks/676.js +0 -32
  39. package/.next/server/chunks/693.js +0 -58
  40. package/.next/server/chunks/732.js +0 -1880
  41. package/.next/server/chunks/74.js +0 -4066
  42. package/.next/server/chunks/779.js +0 -58
  43. package/.next/server/chunks/817.js +0 -4007
  44. package/.next/server/chunks/825.js +0 -4074
  45. package/.next/server/chunks/854.js +0 -72
  46. package/.next/server/chunks/859.js +0 -959
  47. package/.next/server/chunks/863.js +0 -111
  48. package/.next/server/chunks/979.js +0 -1303
  49. package/.next/server/chunks/98.js +0 -163
  50. package/.next/server/chunks/988.js +0 -211
  51. package/.next/server/chunks/font-manifest.json +0 -1
  52. package/.next/server/font-manifest.json +0 -1
  53. package/.next/server/middleware-build-manifest.js +0 -1
  54. package/.next/server/middleware-manifest.json +0 -6
  55. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  56. package/.next/server/pages/404.js +0 -391
  57. package/.next/server/pages/404.js.nft.json +0 -1
  58. package/.next/server/pages/500.js +0 -395
  59. package/.next/server/pages/500.js.nft.json +0 -1
  60. package/.next/server/pages/[...slug].js +0 -1084
  61. package/.next/server/pages/[...slug].js.nft.json +0 -1
  62. package/.next/server/pages/[slug]/p.js +0 -2271
  63. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  64. package/.next/server/pages/_app.js +0 -287
  65. package/.next/server/pages/_app.js.nft.json +0 -1
  66. package/.next/server/pages/_document.js +0 -365
  67. package/.next/server/pages/_document.js.nft.json +0 -1
  68. package/.next/server/pages/_error.js +0 -164
  69. package/.next/server/pages/_error.js.nft.json +0 -1
  70. package/.next/server/pages/account.js +0 -370
  71. package/.next/server/pages/account.js.nft.json +0 -1
  72. package/.next/server/pages/api/graphql.js +0 -464
  73. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  74. package/.next/server/pages/api/health/live.js +0 -31
  75. package/.next/server/pages/api/health/live.js.nft.json +0 -1
  76. package/.next/server/pages/api/health/ready.js +0 -31
  77. package/.next/server/pages/api/health/ready.js.nft.json +0 -1
  78. package/.next/server/pages/api/preview.js +0 -137
  79. package/.next/server/pages/api/preview.js.nft.json +0 -1
  80. package/.next/server/pages/checkout.js +0 -370
  81. package/.next/server/pages/checkout.js.nft.json +0 -1
  82. package/.next/server/pages/en-US/404.html +0 -81
  83. package/.next/server/pages/en-US/404.json +0 -1
  84. package/.next/server/pages/en-US/500.html +0 -81
  85. package/.next/server/pages/en-US/500.json +0 -1
  86. package/.next/server/pages/en-US/account.html +0 -81
  87. package/.next/server/pages/en-US/account.json +0 -1
  88. package/.next/server/pages/en-US/checkout.html +0 -81
  89. package/.next/server/pages/en-US/checkout.json +0 -1
  90. package/.next/server/pages/en-US/login.html +0 -81
  91. package/.next/server/pages/en-US/login.json +0 -1
  92. package/.next/server/pages/en-US/s.html +0 -81
  93. package/.next/server/pages/en-US/s.json +0 -1
  94. package/.next/server/pages/en-US.html +0 -90
  95. package/.next/server/pages/en-US.json +0 -1
  96. package/.next/server/pages/index.js +0 -439
  97. package/.next/server/pages/index.js.nft.json +0 -1
  98. package/.next/server/pages/login.js +0 -382
  99. package/.next/server/pages/login.js.nft.json +0 -1
  100. package/.next/server/pages/s.js +0 -554
  101. package/.next/server/pages/s.js.nft.json +0 -1
  102. package/.next/server/pages-manifest.json +0 -18
  103. package/.next/server/webpack-api-runtime.js +0 -229
  104. package/.next/server/webpack-runtime.js +0 -229
  105. package/.next/static/chunks/251.1c79f06f2a2814b1.js +0 -1
  106. package/.next/static/chunks/386.d01e0db26c523f0f.js +0 -1
  107. package/.next/static/chunks/400-a09ccc622ec96daa.js +0 -1
  108. package/.next/static/chunks/469-7259b855711d4ad3.js +0 -1
  109. package/.next/static/chunks/574.70612be06fd1365f.js +0 -1
  110. package/.next/static/chunks/585.4c5d40fc6a72a611.js +0 -1
  111. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  112. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  113. package/.next/static/chunks/742-e32d18d91fe6f08b.js +0 -1
  114. package/.next/static/chunks/783-a67df4e98c1ac27b.js +0 -1
  115. package/.next/static/chunks/800.ee4f8b9622001e8c.js +0 -1
  116. package/.next/static/chunks/98.40c7e17d9de4eb8f.js +0 -1
  117. package/.next/static/chunks/988.afda042dd9ba11d1.js +0 -1
  118. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  119. package/.next/static/chunks/main-e4e873ee741162eb.js +0 -1
  120. package/.next/static/chunks/pages/404-6763ce07878a1456.js +0 -1
  121. package/.next/static/chunks/pages/500-0f4374f30595d27c.js +0 -1
  122. package/.next/static/chunks/pages/[...slug]-111f89162eff5029.js +0 -1
  123. package/.next/static/chunks/pages/[slug]/p-46e7cb105136dc7a.js +0 -1
  124. package/.next/static/chunks/pages/_app-48d56037a2534a44.js +0 -1
  125. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  126. package/.next/static/chunks/pages/account-9eb6fab139286c66.js +0 -1
  127. package/.next/static/chunks/pages/checkout-7cd7b110c7cf2f10.js +0 -1
  128. package/.next/static/chunks/pages/index-3d5c756be5ce8fc7.js +0 -1
  129. package/.next/static/chunks/pages/login-5fd09e6402f47896.js +0 -1
  130. package/.next/static/chunks/pages/s-8e32a9b170819fa9.js +0 -1
  131. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  132. package/.next/static/chunks/webpack-4ccaf6613cbd7224.js +0 -1
  133. package/.next/static/css/29868543c76bc6fd.css +0 -1
  134. package/.next/static/css/527e334fa69cf40a.css +0 -1
  135. package/.next/static/css/5d1f64b61ea581f4.css +0 -1
  136. package/.next/static/css/6a7fdc5a21fbead5.css +0 -1
  137. package/.next/static/css/723835bce380750d.css +0 -1
  138. package/.next/static/css/a2eefb25a4608343.css +0 -1
  139. package/.next/static/css/cb7d1fcea42fab9c.css +0 -1
  140. package/.next/static/css/d7bbfbd552f407e9.css +0 -1
  141. package/.next/static/css/df588bb98c0b0ca6.css +0 -1
  142. package/.next/static/css/dfbdb0f27fd64782.css +0 -1
  143. package/.next/static/css/e84fc497732ea596.css +0 -1
  144. package/.next/static/sx_PYzBD1dflyv5Bz0Tj-/_buildManifest.js +0 -1
  145. package/.next/static/sx_PYzBD1dflyv5Bz0Tj-/_ssgManifest.js +0 -1
  146. package/.next/trace +0 -78
  147. package/.storybook/components/BestPractices.tsx +0 -18
  148. package/.storybook/components/BestPracticesRule.tsx +0 -43
  149. package/.storybook/components/Callout.tsx +0 -12
  150. package/.storybook/components/SectionItem.tsx +0 -46
  151. package/.storybook/components/SectionList.tsx +0 -27
  152. package/.storybook/components/TokenDivider.tsx +0 -12
  153. package/.storybook/components/TokenRow.tsx +0 -32
  154. package/.storybook/components/TokenTable.tsx +0 -33
  155. package/.storybook/components/index.ts +0 -8
  156. package/.storybook/main.js +0 -59
  157. package/.storybook/manager-head.html +0 -9
  158. package/.storybook/manager.js +0 -6
  159. package/.storybook/mocks/cart-sidebar.js +0 -40
  160. package/.storybook/mocks/filter-slider.js +0 -59
  161. package/.storybook/mocks/index.ts +0 -5
  162. package/.storybook/mocks/product.ts +0 -67
  163. package/.storybook/mocks/productGridItems.ts +0 -334
  164. package/.storybook/mocks/searchHistory.ts +0 -8
  165. package/.storybook/mocks/searchTerms.ts +0 -5
  166. package/.storybook/preview-head.html +0 -1
  167. package/.storybook/preview.js +0 -85
  168. package/.storybook/storybook.css +0 -551
  169. package/.storybook/theme.js +0 -21
  170. package/public/brandless-storybook.png +0 -0
  171. package/public/~partytown/debug/partytown-atomics.js +0 -556
  172. package/public/~partytown/debug/partytown-media.js +0 -374
  173. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  174. package/public/~partytown/debug/partytown-sw.js +0 -59
  175. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  176. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  177. package/public/~partytown/debug/partytown.js +0 -72
  178. package/public/~partytown/partytown-atomics.js +0 -2
  179. package/public/~partytown/partytown-media.js +0 -2
  180. package/public/~partytown/partytown-sw.js +0 -2
  181. package/public/~partytown/partytown.js +0 -2
  182. package/src/styles/global/storybook-components.scss +0 -5
@@ -1,18 +0,0 @@
1
- import React from 'react'
2
- import type { PropsWithChildren } from 'react'
3
-
4
- type BestPracticesProps = {
5
- title?: string
6
- description?: string
7
- }
8
-
9
- const BestPractices = ({ children }: PropsWithChildren<BestPracticesProps>) => {
10
- return (
11
- <>
12
- <h2 className="sbdocs sbdocs-h2">Best Practices</h2>
13
- <section className="sbdocs sbdocs-best-practices">{children}</section>
14
- </>
15
- )
16
- }
17
-
18
- export default BestPractices
@@ -1,43 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
-
3
- type BestPracticesRuleProps = {
4
- recommendedUsage?: ReactNode
5
- discouragedUsage?: ReactNode
6
- recommendedDescription: string | ReactNode
7
- discouragedDescription: string | ReactNode
8
- }
9
-
10
- const BestPracticesRule = ({
11
- recommendedUsage,
12
- discouragedUsage,
13
- recommendedDescription,
14
- discouragedDescription,
15
- }: BestPracticesRuleProps) => {
16
- return (
17
- <section className="sbdocs-best-practices-rule">
18
- <article>
19
- {recommendedUsage && <div>{recommendedUsage}</div>}
20
- <article className="sbdocs-best-practices-text">
21
- <h3 className="sbdocs sbdocs-h3">
22
- <span role="img" aria-label="Check Mark">
23
- &#9989;
24
- </span>{' '}
25
- Do
26
- </h3>
27
- <p>{recommendedDescription}</p>
28
- </article>
29
- </article>
30
- <article>
31
- {discouragedUsage && <div>{discouragedUsage}</div>}
32
- <article className="sbdocs-best-practices-text">
33
- <h3 className="sbdocs sbdocs-h3">
34
- <span aria-label="Cross Mark">&#10060;</span> Don't
35
- </h3>
36
- <p>{discouragedDescription}</p>
37
- </article>
38
- </article>
39
- </section>
40
- )
41
- }
42
-
43
- export default BestPracticesRule
@@ -1,12 +0,0 @@
1
- import React from 'react'
2
-
3
- const Callout = ({ children }) => {
4
- return (
5
- <section className="sbdocs-callout">
6
- <span aria-label="Warning">&#x1F4A1;</span>
7
- <small>{children}</small>
8
- </section>
9
- )
10
- }
11
-
12
- export default Callout
@@ -1,46 +0,0 @@
1
- import React, { CSSProperties, PropsWithChildren, ReactNode } from 'react'
2
-
3
- import { Icon, LinkButton } from '@faststore/ui'
4
-
5
- type SectionItemProps = {
6
- title: string
7
- description: string | ReactNode
8
- actionPath?: string
9
- containerStyle?: CSSProperties
10
- }
11
-
12
- const SectionItem = ({
13
- title,
14
- description,
15
- children,
16
- actionPath,
17
- containerStyle,
18
- ...otherProps
19
- }: PropsWithChildren<SectionItemProps>) => {
20
- return (
21
- <li className="sbdocs-li" {...otherProps}>
22
- <div className="sbdocs-div" style={containerStyle}>
23
- {children}
24
- </div>
25
- <article className="sbdocs-list-text">
26
- <h3 className="sbdocs sbdocs-h3">{title}</h3>
27
- <p className="sbdocs sbdocs-p">{description}</p>
28
- {actionPath && (
29
- <LinkButton
30
- size="small"
31
- variant="tertiary"
32
- href={actionPath}
33
- icon={
34
- <Icon name="ArrowRight" width="18" height="18" weight="bold" />
35
- }
36
- iconPosition="right"
37
- >
38
- See more
39
- </LinkButton>
40
- )}
41
- </article>
42
- </li>
43
- )
44
- }
45
-
46
- export default SectionItem
@@ -1,27 +0,0 @@
1
- import React from 'react'
2
- import type { PropsWithChildren } from 'react'
3
-
4
- type SectionListProps = {
5
- grid?: 'row' | 'grid'
6
- classes?: string
7
- }
8
-
9
- const SectionList = ({
10
- children,
11
- classes,
12
- grid = 'row',
13
- }: PropsWithChildren<SectionListProps>) => {
14
- return (
15
- <section className={`${classes} sbdocs-list`}>
16
- <ul
17
- className={`sbdocs-ul ${
18
- grid === 'grid' ? 'sbdocs-ul-grid' : 'sbdocs-ul-row'
19
- }`}
20
- >
21
- {children}
22
- </ul>
23
- </section>
24
- )
25
- }
26
-
27
- export default SectionList
@@ -1,12 +0,0 @@
1
- import React from 'react'
2
-
3
- const TokenDivider = () => {
4
- return (
5
- <tr className="token-divider">
6
- <td></td>
7
- <td></td>
8
- </tr>
9
- )
10
- }
11
-
12
- export default TokenDivider
@@ -1,32 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
- import { Code } from '@storybook/components'
3
-
4
- type TokenRowProps = {
5
- token: string
6
- value: string
7
- isColor?: boolean
8
- globalValue?: string
9
- }
10
-
11
- const TokenRow = ({
12
- token,
13
- value,
14
- globalValue,
15
- isColor = false,
16
- }: TokenRowProps) => {
17
- return (
18
- <tr>
19
- <td>
20
- <Code>{token}</Code>
21
- </td>
22
- <td>
23
- {isColor && (
24
- <div style={{ backgroundColor: globalValue ? globalValue : value }} />
25
- )}
26
- <Code>{value}</Code>
27
- </td>
28
- </tr>
29
- )
30
- }
31
-
32
- export default TokenRow
@@ -1,33 +0,0 @@
1
- import React, { ReactNode } from 'react'
2
- import { Table } from '@storybook/components'
3
-
4
- type TokenTableProps = {
5
- title?: string
6
- description?: string
7
- children: ReactNode
8
- }
9
-
10
- const TokenTable = ({
11
- title = 'Local token',
12
- description = 'Default value/Global token linked',
13
- children,
14
- }: TokenTableProps) => {
15
- return (
16
- <Table
17
- style={{
18
- width: '100%',
19
- }}
20
- className="sbdocs sbdocs-table"
21
- >
22
- <thead>
23
- <tr>
24
- <th>{title}</th>
25
- <th>{description}</th>
26
- </tr>
27
- </thead>
28
- <tbody>{children}</tbody>
29
- </Table>
30
- )
31
- }
32
-
33
- export default TokenTable
@@ -1,8 +0,0 @@
1
- export { default as TokenTable } from './TokenTable'
2
- export { default as TokenRow } from './TokenRow'
3
- export { default as BestPractices } from './BestPractices'
4
- export { default as BestPracticesRule } from './BestPracticesRule'
5
- export { default as TokenDivider } from './TokenDivider'
6
- export { default as SectionList } from './SectionList'
7
- export { default as SectionItem } from './SectionItem'
8
- export { default as Callout } from './Callout'
@@ -1,59 +0,0 @@
1
- const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin')
2
- const { resolve } = require('path')
3
-
4
- module.exports = {
5
- stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
6
- addons: [
7
- '@storybook/addon-links',
8
- {
9
- name: '@storybook/addon-essentials',
10
- options: {
11
- backgrounds: false,
12
- outline: false,
13
- },
14
- },
15
- '@storybook/addon-a11y',
16
- ],
17
- framework: '@storybook/react',
18
- core: {
19
- builder: 'webpack5',
20
- },
21
- staticDirs: ['../public'],
22
- webpackFinal: async (config) => {
23
- config.module.rules[0].use[0].options.plugins.push(
24
- require.resolve('@faststore/graphql-utils/babel')
25
- )
26
-
27
- config.resolve.plugins = [
28
- ...(config.resolve.plugins || []),
29
- new TsconfigPathsPlugin({
30
- extensions: config.resolve.extensions,
31
- configFile: resolve(__dirname, '../tsconfig.json'),
32
- }),
33
- ]
34
-
35
- // SCSS import and camelCase support for CSS modules
36
- config.module.rules.push({
37
- test: /\.scss$/,
38
- use: [
39
- {
40
- loader: 'style-loader',
41
- },
42
- {
43
- loader: 'css-loader',
44
- options: {
45
- modules: {
46
- exportLocalsConvention: 'camelCase',
47
- },
48
- },
49
- },
50
- {
51
- loader: 'sass-loader',
52
- },
53
- ],
54
- include: resolve(__dirname, '../'),
55
- })
56
-
57
- return config
58
- },
59
- }
@@ -1,9 +0,0 @@
1
- <style>
2
- #storybook-explorer-menu a:hover { background-color: #d8e2ff; }
3
-
4
- #storybook-explorer-menu a[data-selected="true"],
5
- #storybook-explorer-menu a[data-selected="true"]:hover {
6
- color: #fff;
7
- background-color: #001947;
8
- }
9
- </style>
@@ -1,6 +0,0 @@
1
- import { addons } from '@storybook/addons'
2
- import customTheme from './theme'
3
-
4
- addons.setConfig({
5
- theme: customTheme,
6
- })
@@ -1,40 +0,0 @@
1
- export const cartItem = {
2
- id: '39542524',
3
- price: 656.5,
4
- listPrice: 892.43,
5
- seller: {
6
- identifier: '1',
7
- },
8
- quantity: 1,
9
- itemOffered: {
10
- sku: '39542524',
11
- name: 'pink',
12
- gtin: '0001078884042',
13
- image: [
14
- {
15
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165082/sed.jpg?v=637752996157770000',
16
- alternateName: 'accusamus',
17
- },
18
- {
19
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165079/quis.jpg?v=637752996135400000',
20
- alternateName: 'dolorem',
21
- },
22
- {
23
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165080/tempora.jpg?v=637752996141030000',
24
- alternateName: 'enim',
25
- },
26
- {
27
- url: 'https://storeframework.vtexassets.com/arquivos/ids/165081/est.jpg?v=637752996144600000',
28
- alternateName: 'ea',
29
- },
30
- ],
31
- brand: {
32
- name: 'iRobot',
33
- },
34
- isVariantOf: {
35
- productGroupID: '99483893',
36
- name: 'Tasty Concrete Computer',
37
- },
38
- additionalProperty: [],
39
- },
40
- }
@@ -1,59 +0,0 @@
1
- export const facets = [
2
- {
3
- key: 'price',
4
- label: 'Preço',
5
- min: {
6
- selected: 1.67,
7
- absolute: 1.67,
8
- },
9
- max: {
10
- selected: 889.53,
11
- absolute: 889.53,
12
- },
13
- __typename: 'StoreFacetRange',
14
- },
15
- {
16
- key: 'category-2',
17
- label: 'Categoria',
18
- values: [
19
- {
20
- label: 'Chairs',
21
- value: 'chairs',
22
- selected: true,
23
- quantity: 138,
24
- },
25
- {
26
- label: 'Desks',
27
- value: 'desks',
28
- selected: false,
29
- quantity: 125,
30
- },
31
- ],
32
- __typename: 'StoreFacetBoolean',
33
- },
34
- {
35
- key: 'brand',
36
- label: 'Marca',
37
- values: [
38
- {
39
- label: 'Acer',
40
- value: 'acer',
41
- selected: true,
42
- quantity: 138,
43
- },
44
- {
45
- label: 'Adidas',
46
- value: 'adidas',
47
- selected: false,
48
- quantity: 121,
49
- },
50
- {
51
- label: 'Nike',
52
- value: 'nike',
53
- selected: false,
54
- quantity: 150,
55
- },
56
- ],
57
- __typename: 'StoreFacetBoolean',
58
- },
59
- ]
@@ -1,5 +0,0 @@
1
- import './searchHistory'
2
-
3
- export { product } from './product'
4
- export { productGridItems } from './productGridItems'
5
- export { searchTerms } from './searchTerms'
@@ -1,67 +0,0 @@
1
- export const product = {
2
- id: '99988212',
3
- slug: 'apple-magic-mouse-99988212',
4
- sku: '99988212',
5
- brand: {
6
- brandName: 'adidas',
7
- name: 'adidas',
8
- },
9
- name: 'Magic white',
10
- gtin: '1503',
11
- isVariantOf: {
12
- productGroupID: '99995945',
13
- name: 'Apple Magic Mouse',
14
- },
15
- image: [
16
- {
17
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190902/unsplash-magic-mouse.jpg?v=637800136963870000',
18
- alternateName: 'Magicwhite',
19
- },
20
- {
21
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190923/lena-de-fanti-nQ_j5d-klVU-unsplash.jpg?v=637867501523500000',
22
- alternateName: 'magicbox',
23
- },
24
- {
25
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190924/anthony-choren-e7dG26YCrZU-unsplash.jpg?v=637867501835430000',
26
- alternateName: 'magicblackwhite',
27
- },
28
- {
29
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190925/maheshkumar-painam-GZdfLeL-MDk-unsplash.jpg?v=637867502064000000',
30
- alternateName: 'magiccombo',
31
- },
32
- {
33
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190926/math-0U9fBLGP3EY-unsplash.jpg?v=637867502325830000',
34
- alternateName: 'magicback',
35
- },
36
- {
37
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190927/marek-levak-YPeqMN_wfw0-unsplash.jpg?v=637867502641430000',
38
- alternateName: 'magictable',
39
- },
40
- {
41
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190928/mouse8.jpg?v=637867504048970000',
42
- alternateName: 'magichand',
43
- },
44
- {
45
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190929/harpal-singh-KuvEVL7lXYQ-unsplash.jpg?v=637867509459130000',
46
- alternateName: 'magicstyle',
47
- },
48
- {
49
- url: 'https://storeframework.vtexassets.com/arquivos/ids/190930/chris-hardy-182PzOtcmWc-unsplash.jpg?v=637867509778300000',
50
- alternateName: 'magicscale',
51
- },
52
- ],
53
- offers: {
54
- lowPrice: 950,
55
- offers: [
56
- {
57
- availability: 'https://schema.org/InStock',
58
- price: 950,
59
- listPrice: 999,
60
- quantity: 10000,
61
- seller: {
62
- identifier: '1',
63
- },
64
- },
65
- ],
66
- },
67
- }