@faststore/core 3.0.39 → 3.0.41

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 (59) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  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/routes-manifest.json +1 -1
  15. package/.next/server/chunks/242.js +1 -1
  16. package/.next/server/chunks/640.js +1 -1
  17. package/.next/server/chunks/646.js +2 -2
  18. package/.next/server/middleware-build-manifest.js +1 -1
  19. package/.next/server/pages/404.js +1 -1
  20. package/.next/server/pages/500.js +1 -1
  21. package/.next/server/pages/[...slug].js +1 -1
  22. package/.next/server/pages/[slug]/p.js +1 -1
  23. package/.next/server/pages/account.js +1 -1
  24. package/.next/server/pages/api/graphql.js +1 -1
  25. package/.next/server/pages/checkout.js +1 -1
  26. package/.next/server/pages/en-US/404.html +2 -2
  27. package/.next/server/pages/en-US/404.json +1 -1
  28. package/.next/server/pages/en-US/500.html +2 -2
  29. package/.next/server/pages/en-US/500.json +1 -1
  30. package/.next/server/pages/en-US/account.html +2 -2
  31. package/.next/server/pages/en-US/account.json +1 -1
  32. package/.next/server/pages/en-US/checkout.html +2 -2
  33. package/.next/server/pages/en-US/checkout.json +1 -1
  34. package/.next/server/pages/en-US/login.html +2 -2
  35. package/.next/server/pages/en-US/login.json +1 -1
  36. package/.next/server/pages/en-US/s.html +2 -2
  37. package/.next/server/pages/en-US/s.json +1 -1
  38. package/.next/server/pages/en-US.html +2 -2
  39. package/.next/server/pages/en-US.json +1 -1
  40. package/.next/server/pages/index.js +1 -1
  41. package/.next/server/pages/login.js +1 -1
  42. package/.next/server/pages/s.js +1 -1
  43. package/.next/server/pages-manifest.json +1 -1
  44. package/.next/static/{ynVKyS-l-nXEqvPtRj6Vi → 86Cw_TMSOYDAh6g_cx3u9}/_buildManifest.js +1 -1
  45. package/.next/static/chunks/pages/[slug]/p-175b0b1e91331f8d.js +1 -0
  46. package/.next/trace +91 -91
  47. package/.turbo/turbo-build.log +2 -2
  48. package/.turbo/turbo-test.log +10 -10
  49. package/package.json +9 -9
  50. package/pull_request_template.md +0 -1
  51. package/src/components/sections/CrossSellingShelf/OverriddenDefaultCrossSellingShelf.ts +8 -0
  52. package/src/customizations/src/components/overrides/CrossSellingShelf.tsx +11 -0
  53. package/.next/static/chunks/pages/[slug]/p-be3f544bf3a14d18.js +0 -1
  54. package/src/components/product/ProductCard/ProductCard.stories.mdx +0 -413
  55. package/src/components/ui/Breadcrumb/Breadcrumb.stories.mdx +0 -197
  56. package/src/components/ui/Link/Link.stories.mdx +0 -272
  57. package/src/components/ui/ProductDescription/ProductDescription.stories.mdx +0 -66
  58. package/src/components/ui/SkuSelector/Selectors.stories.mdx +0 -86
  59. /package/.next/static/{ynVKyS-l-nXEqvPtRj6Vi → 86Cw_TMSOYDAh6g_cx3u9}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  $ yarn partytown & yarn generate && next build
2
2
  $ partytown copylib ./public/~partytown
3
- $ faststore generate-graphql -c
4
3
  Partytown lib copied to: /home/runner/work/faststore/faststore/packages/core/public/~partytown
4
+ $ faststore generate-graphql -c
5
5
  success - GraphQL schema, types, and optimizations successfully generated 🎉
6
6
  ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
7
7
  Attention: Next.js now collects completely anonymous telemetry regarding usage.
@@ -38,7 +38,7 @@ Route (pages) Size First Load JS
38
38
  ├ /_app 0 B 93.5 kB
39
39
  ├ ● /[...slug] 4.47 kB 156 kB
40
40
  ├ └ css/4c4d90eb8cb1d2b7.css 7 kB
41
- ├ ● /[slug]/p 11.1 kB 151 kB
41
+ ├ ● /[slug]/p 11.2 kB 151 kB
42
42
  ├ └ css/96e3fddf695d6aa9.css 11.3 kB
43
43
  ├ ○ /404 1.47 kB 127 kB
44
44
  ├ ● /500 1.47 kB 127 kB
@@ -1,23 +1,23 @@
1
1
  $ jest
2
- PASS test/server/index.test.ts (26.714 s)
2
+ PASS test/server/index.test.ts (32.278 s)
3
3
  FastStore GraphQL Layer
4
4
  @faststore/api
5
- ✓ should return a valid GraphQL schema (15 ms)
6
- ✓ should return a valid GraphQL schema contain all expected types (22 ms)
5
+ ✓ should return a valid GraphQL schema (9 ms)
6
+ ✓ should return a valid GraphQL schema contain all expected types (8 ms)
7
7
  ✓ should return a valid GraphQL schema contain all expected queries (2 ms)
8
- ✓ should return a valid GraphQL schema contain all expected mutations
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 (25 ms)
10
+ ✓ getTypeDefsFromFolder function should return an Array (12 ms)
11
11
  Third Party API Extension
12
- ✓ getTypeDefsFromFolder function should return an Array (9 ms)
12
+ ✓ getTypeDefsFromFolder function should return an Array (8 ms)
13
13
  Final Schema after merging
14
- ✓ should return a valid merged GraphQL schema (90 ms)
14
+ ✓ should return a valid merged GraphQL schema (52 ms)
15
15
  Envelop
16
- ✓ should exist with its plugins (42 ms)
17
- ✓ should handle options and execute (598 ms)
16
+ ✓ should exist with its plugins (37 ms)
17
+ ✓ should handle options and execute (218 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: 26.82 s
22
+ Time: 32.402 s
23
23
  Ran all test suites.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/core",
3
- "version": "3.0.39",
3
+ "version": "3.0.41",
4
4
  "license": "MIT",
5
5
  "repository": "vtex/faststore",
6
6
  "browserslist": "supports es6-module and not dead",
@@ -39,11 +39,11 @@
39
39
  "@envelop/graphql-jit": "^1.1.1",
40
40
  "@envelop/parser-cache": "^2.2.0",
41
41
  "@envelop/validation-cache": "^2.2.0",
42
- "@faststore/api": "^3.0.39",
43
- "@faststore/components": "^3.0.39",
44
- "@faststore/graphql-utils": "^3.0.39",
45
- "@faststore/sdk": "^3.0.39",
46
- "@faststore/ui": "^3.0.39",
42
+ "@faststore/api": "^3.0.40",
43
+ "@faststore/components": "^3.0.40",
44
+ "@faststore/graphql-utils": "^3.0.40",
45
+ "@faststore/sdk": "^3.0.40",
46
+ "@faststore/ui": "^3.0.40",
47
47
  "@graphql-codegen/cli": "^3.3.1",
48
48
  "@graphql-codegen/client-preset": "^4.1.0",
49
49
  "@graphql-codegen/typescript": "^3.0.4",
@@ -82,8 +82,8 @@
82
82
  "devDependencies": {
83
83
  "@cypress/code-coverage": "^3.12.1",
84
84
  "@envelop/testing": "^6.0.0",
85
- "@faststore/cli": "^3.0.39",
86
- "@faststore/eslint-config": "^3.0.39",
85
+ "@faststore/cli": "^3.0.40",
86
+ "@faststore/eslint-config": "^3.0.40",
87
87
  "@faststore/lighthouse": "^1.12.32",
88
88
  "@lhci/cli": "^0.9.0",
89
89
  "@testing-library/cypress": "^10.0.1",
@@ -124,5 +124,5 @@
124
124
  "node": "18.19.0",
125
125
  "yarn": "1.19.1"
126
126
  },
127
- "gitHead": "164257d98e270785aaefc2c174a02f39c1c545d4"
127
+ "gitHead": "67e2eda9a86109af5bb821e0813f8f1def2f9a7e"
128
128
  }
@@ -33,5 +33,4 @@
33
33
 
34
34
  **Documentation**
35
35
  - [ ] PR description
36
- - [ ] Added to/Updated the Storybook - *if applicable*
37
36
  - [ ] For documentation changes, ping `@carolinamenezes` or `@PedroAntunesCosta` to review and update
@@ -1,6 +1,14 @@
1
+ import { override } from 'src/customizations/src/components/overrides/CrossSellingShelf'
1
2
  import { getOverriddenSection } from 'src/sdk/overrides/getOverriddenSection'
3
+ import type { SectionOverrideDefinitionV1 } from 'src/typings/overridesDefinition'
2
4
  import CrossSellingShelf from '.'
3
5
 
6
+ /**
7
+ * This component exists to support overrides 1.0
8
+ *
9
+ * This allows users to override the default CrossSellingShelf section present in the Headless CMS
10
+ */
4
11
  export const OverriddenDefaultCrossSellingShelf = getOverriddenSection({
12
+ ...(override as SectionOverrideDefinitionV1<'CrossSellingShelf'>),
5
13
  Section: CrossSellingShelf,
6
14
  })
@@ -0,0 +1,11 @@
1
+ // This is an example of how it can be used on the starter.
2
+
3
+ import { SectionOverride } from 'src/typings/overrides'
4
+
5
+ const SECTION = 'CrossSellingShelf' as const
6
+
7
+ const override: SectionOverride = {
8
+ section: SECTION,
9
+ }
10
+
11
+ export { override }
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[103],{6693:function(e,t,r){"use strict";var n=r(2784),a=r(7041),o=r(2614),i=r(2256);t.Z=({max:e,min:t=1,initial:r,disabled:l=!1,onChange:s,testId:c="fs-quantity-selector",...u})=>{let[d,p]=(0,n.useState)(r??t),m=d===t,f=d===e,changeQuantity=e=>{let t=validateQuantityBounds(d+e);s?.(t),p(t)};function validateQuantityBounds(r){let n=t?Math.max(r,t):r;return e?Math.min(n,e):n}return(0,n.useEffect)(()=>{r&&p(r)},[r]),n.createElement("div",{"data-fs-quantity-selector":l?"disabled":"true","data-testid":c,...u},n.createElement(a.Z,{"data-quantity-selector-button":"left",icon:n.createElement(o.Z,{name:"Minus",width:16,height:16,weight:"bold"}),"aria-label":"Decrement Quantity","aria-controls":"quantity-selector-input",disabled:m||l,onClick:()=>changeQuantity(-1),testId:`${c}-left-button`,size:"small"}),n.createElement(i.Z,{"data-quantity-selector-input":!0,id:"quantity-selector-input","aria-label":"Quantity",value:d,onChange:function(e){let t=e.currentTarget.value;Number.isNaN(Number(t))||p(()=>{let e=validateQuantityBounds(Number(t));return s?.(e),e})},disabled:l}),n.createElement(a.Z,{"data-quantity-selector-button":"right","aria-controls":"quantity-selector-input","aria-label":"Increment Quantity",disabled:f||l,icon:n.createElement(o.Z,{name:"Plus",width:16,height:16,weight:"bold"}),onClick:()=>changeQuantity(1),testId:`${c}-right-button`,size:"small"}))}},7936:function(e,t,r){"use strict";r.d(t,{j:function(){return _}});var n=r(9499),a=r(7296),o=r(2784),i=r(9089),l=r(4177),s=r.n(l),c=r(4960),u=r(4329),d=r(2614),p=r(727);let m=(0,o.createContext)({isOpen:!1,dropdownButtonRef:null,selectedDropdownItemIndexRef:null,dropdownItemsRef:null,id:"fs-dropdown"});var Dropdown_Dropdown=({children:e,isOpen:t=!1,onDismiss:r,id:n="fs-dropdown"})=>{let[a,i]=(0,o.useState)(t),l=(0,o.useRef)([]),s=(0,o.useRef)(0),c=(0,o.useRef)(null),u=(0,o.useCallback)(()=>{i(!1),r?.()},[r]),open=()=>{i(!0)},d=(0,o.useCallback)(()=>{i(e=>(e&&(r?.(),c.current?.focus()),!e))},[r]);(0,o.useEffect)(()=>{i(t)},[t]),(0,o.useEffect)(()=>{a&&l?.current[0]?.focus()},[a]),(0,o.useEffect)(()=>{let e=!0,event=t=>{let r=l?.current.some(e=>t.target===e);if(e){e=!1;return}r||u()};return a?document.addEventListener("click",event):document.removeEventListener("click",event),()=>{document.removeEventListener("click",event)}},[u,a]);let p=(0,o.useMemo)(()=>({isOpen:a,close:u,open,toggle:d,dropdownButtonRef:c,onDismiss:r,selectedDropdownItemIndexRef:s,dropdownItemsRef:l,id:n}),[u,n,a,r,d]);return o.createElement(m.Provider,{value:p},e)},f=r(3339);let useDropdown=()=>{let e=(0,o.useContext)(m);if(void 0===e)throw Error("Do not use useDropdown hook outside the Dropdown context.");return e},b=(0,o.forwardRef)(function({testId:e="fs-dropdown-button","aria-label":t,children:r,...n},a){let{toggle:i,dropdownButtonRef:l,isOpen:s,id:c}=useDropdown();return(0,o.useImperativeHandle)(a,()=>l.current,[l]),o.createElement(f.Z,{"data-fs-dropdown-button":!0,onClick:i,"data-testid":e,ref:l,"aria-label":t,"aria-expanded":s,"aria-haspopup":"menu","aria-controls":c,variant:"tertiary",...n},r)});var g=r(8316);let useDropdownPosition=()=>{let{dropdownButtonRef:e}=useDropdown(),t="undefined"!=typeof window,r=e?.current?.getBoundingClientRect(),n=r?.top??0,a=r?.height??0,o=r?.left??0,i=t?document?.documentElement?.scrollTop:0,l=t?document?.documentElement?.scrollLeft:0;return{position:"absolute",top:n+a+i,left:o+l}};var Dropdown_DropdownMenu=({children:e,testId:t="fs-dropdown-menu",size:r="regular",style:n,...a})=>{let{isOpen:i,close:l,dropdownItemsRef:s,selectedDropdownItemIndexRef:c,dropdownButtonRef:u,id:d}=useDropdown(),p=useDropdownPosition(),m=o.Children.toArray(e).length,handleDownPress=()=>{c.current<m-1?c.current++:c.current=0,s?.current[c.current]?.focus()},handleUpPress=()=>{c.current>0?c.current--:c.current=m-1,s?.current[c.current]?.focus()},handleHomePress=()=>{c.current=0,s?.current[c.current]?.focus()},handleEndPress=()=>{c.current=m-1,s?.current[c.current]?.focus()},handleEscapePress=()=>{l?.(),u?.current?.focus()};return i?(0,g.createPortal)(o.createElement("div",{role:"presentation","data-fs-dropdown-overlay":!0,onKeyDown:e=>{e.defaultPrevented||"Enter"===e.key||(e.preventDefault(),"Escape"===e.key&&handleEscapePress(),"ArrowDown"===e.key&&handleDownPress(),"ArrowUp"===e.key&&handleUpPress(),"Home"===e.key&&handleHomePress(),"End"===e.key&&handleEndPress(),e.stopPropagation())},"data-testid":`${t}-overlay`},o.createElement("div",{role:"menu","aria-orientation":"vertical","data-fs-dropdown-menu":!0,"data-fs-dropdown-menu-size":r,"data-testid":t,style:{...p,...n},id:d,...a},e)),document.body):(s.current=[],null)};let v=(0,o.forwardRef)(function({children:e,icon:t,onClick:r,testId:n="fs-dropdown-item",...a},i){let{dropdownItemsRef:l,selectedDropdownItemIndexRef:s,close:c}=useDropdown(),[u,d]=(0,o.useState)(0),p=(0,o.useRef)(),onFocusItem=()=>{s.current=u,l?.current[s.current]?.focus()};return(0,o.useImperativeHandle)(i,()=>p.current,[]),o.createElement("button",{"data-fs-dropdown-item":!0,"data-testid":n,ref:e=>{e&&!l?.current.includes(e)&&(l?.current.push(e),d(l?.current.findIndex(t=>t===e)??0)),p.current=e},onFocus:onFocusItem,onMouseEnter:onFocusItem,onClick:e=>{r?.(e),c?.()},role:"menuitem",tabIndex:-1,"data-index":u,...a},!!t&&t,e)});var y=r(4564),Breadcrumb_Divider=({divider:e,testId:t})=>{let r={"data-fs-breadcrumb-divider":!0,"aria-hidden":!0,"data-testid":`${t}-divider`};return o.isValidElement(e)?o.cloneElement(e,r):o.createElement("span",{...r},e??"/")},Breadcrumb_ListItem=({children:e,isLastItem:t,divider:r,testId:n})=>{let a={"data-testid":`${n}-item`,"data-fs-breadcrumb-item":!t||"current","aria-current":t?"page":void 0};return o.isValidElement(e)?o.createElement("li",{"data-fs-breadcrumb-list-item":!0},o.cloneElement(e,a),t?null:o.createElement(Breadcrumb_Divider,{divider:r,testId:n})):o.createElement("li",{"data-fs-breadcrumb-list-item":!0},o.createElement("span",{...a},e,t?null:o.createElement(Breadcrumb_Divider,{divider:r,testId:n})))};let h=(0,o.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",...n},a){return o.createElement("nav",{"aria-label":"Breadcrumb",role:"navigation",ref:a,"data-fs-breadcrumb":!0,"data-testid":r,...n},o.createElement(y.Z,{as:"ol","data-fs-breadcrumb-list":!0,"data-fs-content":"breadcrumb"},o.Children.toArray(e).map((e,n,a)=>{let i=n===a.length-1;return o.createElement(Breadcrumb_ListItem,{isLastItem:i,divider:t,key:`breadcrumb-${n}`,testId:r},e)})))}),j=(0,o.forwardRef)(function({children:e,divider:t="",testId:r="fs-breadcrumb",breadcrumbList:n,isDesktop:a=!1,renderLink:i,homeLink:l,dropdownButtonIcon:s=o.createElement(d.Z,{name:"DotsThree"}),collapsedItemsIcon:c=o.createElement(d.Z,{"data-fs-dropdown-item-icon":!0,name:"ArrowElbowDownRight"}),...u},m){let f=a?n[0]:null,g=a?n.slice(1,-2):n.slice(0,-2),y=n.slice(-2),j=n.length>4,P=(0,o.useCallback)(e=>{let t=i?.(e),r=e.collapsed?{"data-fs-breadcrumb-dropdown-link":!0}:{"data-fs-breadcrumb-link":!0};return t?(0,o.cloneElement)(t,{...r,key:e.itemProps.position}):o.createElement(p.Z,{...r,href:e.itemProps.item,key:e.itemProps.position},e.itemProps.name)},[i]);return o.createElement(h,{ref:m,"data-fs-breadcrumb-is-desktop":a,...u},l,!j&&n.map((e,t)=>n.length===t+1?o.createElement("span",{key:String(e.position)},e.name):P({itemProps:e,collapsed:!1})),j&&f&&P({itemProps:f,collapsed:!1}),j&&o.createElement(Dropdown_Dropdown,null,o.createElement(b,{"aria-label":"View More","data-fs-breadcrumb-dropdown-button":!0,size:"small"},s),o.createElement(Dropdown_DropdownMenu,{"data-fs-breadcrumb-dropdown-menu":!0},g.map(e=>o.createElement(v,{"data-fs-breadcrumb-dropdown-item":!0,key:String(e.position),icon:c},P({itemProps:e,collapsed:!0}))))),j&&y.map((e,t)=>y.length===t+1?o.createElement("span",{key:String(e.position)},e.name):P({itemProps:e,collapsed:!1})))});var P={Breadcrumb:({breadcrumbList:e,...t})=>o.createElement(o.Fragment,null,o.createElement(j,{breadcrumbList:e,...t}),o.createElement(j,{breadcrumbList:e,isDesktop:!0,...t})),Icon:d.Z},S=r(2322);function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}var O=(0,a.B)("Breadcrumb",function(e){var t,r,a,o,l,d,p,m,f,b=Object.assign({},e),{Breadcrumb:g}=(0,u.r3)(),v=(0,c.qt)(),y=(0,c.OJ)(v)?null==v?void 0:null===(t=v.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:null===(a=r.seo)||void 0===a?void 0:a.title:"All Products",h=(0,c.tS)(v)?null==v?void 0:null===(o=v.data)||void 0===o?void 0:null===(l=o.product)||void 0===l?void 0:null===(d=l.breadcrumbList)||void 0===d?void 0:d.itemListElement:(0,c.OJ)(v)?null==v?void 0:null===(p=v.data)||void 0===p?void 0:null===(m=p.collection)||void 0===m?void 0:null===(f=m.breadcrumbList)||void 0===f?void 0:f.itemListElement:[{item:"/",name:y,position:1}];return(0,S.jsx)(i.Z,{className:"".concat(s().section," section-breadcrumb"),children:(0,S.jsx)(g.Component,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({breadcrumbList:h},b))})},P),w=(0,o.memo)(O);function OverriddenDefaultBreadcrumb_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function OverriddenDefaultBreadcrumb_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultBreadcrumb_ownKeys(Object(r),!0).forEach(function(t){(0,n.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultBreadcrumb_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var _=(0,a.v)(OverriddenDefaultBreadcrumb_objectSpread(OverriddenDefaultBreadcrumb_objectSpread({},{section:"Breadcrumb"}),{},{Section:w}))},6429:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return ex},default:function(){return eC}});var n,a=r(9499),o=r(9996),i=r.n(o),l=r(5351),s=r(1550),c=r(7542),u=r(9410),d=r(9089),p=r(9919),m=r.n(p),f=r(2322),b=r(7936),g=r(7296),v=r(2784),y=r(8618),h=r(7704),j=r(4960),P=r(9322),S=r.n(P),O=r(6737),w=r(6068),_=r(9558),E={ProductShelf:O.Z,__experimentalCarousel:_.Z,__experimentalProductCard:w.Z},D=(0,g.B)("CrossSellingShelf",e=>{var t,r,n,{numberOfItems:a,itemsPerPage:o,title:i,kind:l}=e,{ref:s,inView:c}=(0,h.YD)(),u=(0,j.al)(),p=null==u?void 0:null===(t=u.data)||void 0===t?void 0:null===(r=t.product)||void 0===r?void 0:null===(n=r.isVariantOf)||void 0===n?void 0:n.productGroupID,m=(0,v.useMemo)(()=>[{key:l,value:p}],[l,p]);return(0,f.jsx)(d.Z,{className:"".concat(S().section," section-product-shelf layout__section"),ref:s,children:(0,f.jsx)(y.Z,{inView:c,numberOfItems:a,itemsPerPage:o,title:i,selectedFacets:m})})},E),k=(0,g.v)({Section:D}),x=r(1072),C=r(113),I=r(1868),Z=r(1516),B=r(783),L=r(7734),N=r(7583),ProductDescription_ProductDescription=function(e){var{descriptionData:t,initiallyExpanded:r="first"}=e,n=(0,v.useMemo)(()=>({none:[],first:[0],all:[0,1,2,3]}),[]),{0:a,1:o}=(0,v.useState)(new Set(n[r]));return(0,f.jsx)("section",{"data-fs-product-description":!0,children:(0,f.jsx)(Z.Z,{indices:a,onChange:e=>{o(t=>{var r=new Set(t);return t.has(e)?r.delete(e):r.add(e),r})},"aria-label":"Product Details Content",children:t.map((e,t)=>{var{title:r,content:n}=e;return(0,f.jsxs)(B.Z,{as:"article",index:t,prefixId:"product-description","data-fs-product-details-description":!0,children:[(0,f.jsx)(L.Z,{children:r}),(0,f.jsx)(N.Z,{children:(0,f.jsx)("div",{"data-fs-product-details-description-content":!0,dangerouslySetInnerHTML:{__html:n}})})]},String(t))})})})},G=r(6652),M=r(3218),useBuyButton=e=>{var{openCart:t}=(0,G.l)(),{currency:{code:r}}=(0,I.kP)();return{onClick:(0,v.useCallback)(n=>{n.preventDefault(),e&&((0,x._)({name:"add_to_cart",params:{currency:r,value:e.price*e.quantity,items:[{item_id:e.itemOffered.isVariantOf.productGroupID,item_name:e.itemOffered.isVariantOf.name,item_brand:e.itemOffered.brand.name,item_variant:e.itemOffered.sku,quantity:e.quantity,price:e.price,discount:e.listPrice-e.price,currency:r,item_variant_name:e.itemOffered.name,product_reference_id:e.itemOffered.gtin}]}}),M.i8.addItem(e),t())},[r,e,t]),"data-testid":"buy-button","data-sku":null==e?void 0:e.itemOffered.sku,"data-seller":null==e?void 0:e.seller.identifier}},K=r(4730),R=r(1664),V=r.n(R),T=r(8918),A=r(4329),q=["src","alt"],F=["slugsMap","activeVariations","availableVariations"];function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ImageComponent=e=>{var{src:t,alt:r}=e,n=(0,K.Z)(e,q);return(0,f.jsx)(T.Z,_objectSpread({src:t,alt:r,width:34,height:34},n))},SkuSelector_Selectors=function(e){var{slugsMap:t,activeVariations:r,availableVariations:n}=e,a=(0,K.Z)(e,F),{SkuSelector:o}=(0,A.r3)();return(0,f.jsx)("section",_objectSpread(_objectSpread({},a),{},{children:n&&Object.keys(n).map(e=>{var a,i,l,s,c;return(0,v.createElement)(o.Component,_objectSpread(_objectSpread({ImageComponent:ImageComponent},o.props),{},{key:e,skuPropertyName:e,availableVariations:n,activeVariations:r,slugsMap:t,linkProps:_objectSpread(_objectSpread({},null!==(a=o.props.linkProps)&&void 0!==a?a:{}),{},{as:null!==(i=null===(l=o.props.linkProps)||void 0===l?void 0:l.as)&&void 0!==i?i:V(),legacyBehavior:null!==(s=null===(c=o.props.linkProps)||void 0===c?void 0:c.legacyBehavior)&&void 0!==s&&s})}))})}))};function AddToCartLoadingSkeleton(){return(0,f.jsxs)("svg",{role:"img",width:"100%",height:"48","aria-labelledby":"loading-aria",viewBox:"0 0 112 48",preserveAspectRatio:"none",children:[(0,f.jsx)("title",{id:"loading-aria",children:"Loading..."}),(0,f.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",clipPath:"url(#clip-path)",style:{fill:'url("#fill")'}}),(0,f.jsxs)("defs",{children:[(0,f.jsx)("clipPath",{id:"clip-path",children:(0,f.jsx)("rect",{x:"0",y:"0",rx:"2",ry:"2",width:"112",height:"48"})}),(0,f.jsxs)("linearGradient",{id:"fill",children:[(0,f.jsx)("stop",{offset:"0.599964",stopColor:"#f3f3f3",stopOpacity:"1",children:(0,f.jsx)("animate",{attributeName:"offset",values:"-2; -2; 1",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})}),(0,f.jsx)("stop",{offset:"1.59996",stopColor:"#ecebeb",stopOpacity:"1",children:(0,f.jsx)("animate",{attributeName:"offset",values:"-1; -1; 2",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})}),(0,f.jsx)("stop",{offset:"2.59996",stopColor:"#f3f3f3",stopOpacity:"1",children:(0,f.jsx)("animate",{attributeName:"offset",values:"0; 0; 3",keyTimes:"0; 0.25; 1",dur:"2s",repeatCount:"indefinite"})})]})]})]})}function ProductDetailsSettings_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ProductDetailsSettings_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductDetailsSettings_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductDetailsSettings_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ProductDetails_ProductDetailsSettings=function(e){var{product:t,buyButtonTitle:r,isValidating:n,quantity:a,setQuantity:o,buyButtonIcon:{icon:i,alt:l},notAvailableButtonTitle:s}=e,{BuyButton:c,Icon:u,ProductPrice:d,QuantitySelector:p,__experimentalNotAvailableButton:m}=(0,A.r3)(),{id:b,sku:g,gtin:y,name:h,brand:j,isVariantOf:P,isVariantOf:{skuVariants:S},image:O,additionalProperty:w,offers:{offers:[{availability:_,price:E,listPrice:D,seller:k}]}}=t,x=useBuyButton({id:b,price:E,listPrice:D,seller:k,quantity:a,itemOffered:{sku:g,name:h,gtin:y,image:O,brand:j,isVariantOf:P,additionalProperty:w}}),I=(0,v.useMemo)(()=>"https://schema.org/OutOfStock"===_,[_]);return(0,f.jsxs)(f.Fragment,{children:[!I&&(0,f.jsxs)("section",{"data-fs-product-details-values":!0,children:[(0,f.jsx)(d.Component,ProductDetailsSettings_objectSpread({"data-fs-product-details-prices":!0,value:E,listPrice:D,formatter:C.P},d.props)),(0,f.jsx)(p.Component,ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({min:1,max:10},p.props),{},{onChange:o}))]}),S&&(0,f.jsx)(SkuSelector_Selectors,{slugsMap:S.slugsMap,availableVariations:S.availableVariations,activeVariations:S.activeVariations,"data-fs-product-details-selectors":!0}),n?(0,f.jsx)(AddToCartLoadingSkeleton,{}):(0,f.jsx)(()=>I?(0,f.jsx)(m.Component,{children:s}):(0,f.jsx)(c.Component,ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({},c.props),{},{icon:(0,f.jsx)(u.Component,ProductDetailsSettings_objectSpread(ProductDetailsSettings_objectSpread({},u.props),{},{name:null!=i?i:u.props.name,"aria-label":null!=l?l:u.props["aria-label"]}))},x),{},{children:r||"Add to Cart"})),{})]})},Q=r(1145),$=r.n(Q),z=r(3024);let H=(0,v.forwardRef)(function({title:e,label:t,refTag:r="Ref.: ",refNumber:n,testId:a="fs-product-title",ratingValue:o,...i},l){return v.createElement("header",{ref:l,"data-fs-product-title":!0,"data-testid":a,...i},v.createElement("div",{"data-fs-product-title-header":!0},e,!!t&&t),(n||o)&&v.createElement("div",{"data-fs-product-title-addendum":!0},o&&v.createElement(z.Z,{value:o}),n&&v.createElement(v.Fragment,null,r," ",n)))});var U=r(2946),J=r(3339),W=r(2614),Y=r(9088),X=r(6693),ee=r(1953),et=r(727),er=r(5450);let getImageName=e=>{let t=new URL(e).pathname,r=t.split("/").slice(-1)[0];return r},useDefineVariant=(e,t)=>(0,v.useMemo)(()=>{if(t)return t;let r=e.every(e=>e.hexColor);if(r)return"color";let n=e[0]?.src&&getImageName(e[0].src);if(n&&1===e.length)return"image";let a=e.every(e=>{if(!e.src)return!0;let t=getImageName(e.src);return t===n});return a?"label":"image"},[e,t]),useSkuSlug=(e,t,r,n)=>{let a=(0,v.useCallback)(a=>{if(n)return{getItemHrefProp:n};let o=`/${function(e,t,r){let n=Object.entries(t).flat().join("-");if(n in e)return e[n];let a=Object.keys(e),o=a.find(e=>e.includes(`${r}-${t[r]}`));return e[o??a[0]]}(t,{...e,[r]:a.value},r)}/p`;return o},[e,n,t,r]);return{getItemHref:a}},ImageComponentFallback=({src:e,alt:t,...r})=>v.createElement("img",{src:e,alt:t,...r}),en=(0,v.forwardRef)(function({availableVariations:e,skuPropertyName:t,testId:r,activeVariations:n,linkProps:a,slugsMap:o,getItemHref:i,ImageComponent:l=ImageComponentFallback,variant:s,...c},u){let d=n[t],p=e[t],m=useDefineVariant(p,s),{getItemHref:f}=useSkuSlug(n,o,t,i);return v.createElement("div",{ref:u,"data-fs-sku-selector":!0,"data-testid":r,"data-fs-sku-selector-variant":m,...c},t&&v.createElement(ee.Z,{"data-fs-sku-selector-title":!0},t,": ",v.createElement("strong",null,d)),v.createElement("ul",{"data-fs-sku-selector-list":!0},p.map((e,r)=>v.createElement("li",{key:String(r),title:e.label,"data-fs-sku-selector-option":!0,"data-fs-sku-selector-disabled":e.disabled,"data-fs-sku-selector-checked":e.value===n[t]},v.createElement(et.Z,{"data-fs-sku-selector-option-link":!0,href:f(e),...a},v.createElement(er.Z,{text:e.label})),"label"===m&&v.createElement("span",null,e.value),"image"===m&&l&&v.createElement("span",null,v.createElement(l,{src:e.src??"",alt:e.alt??"","data-fs-sku-selector-option-image":!0})),"color"===m&&v.createElement("span",null,v.createElement("div",{"data-fs-sku-selector-option-color":!0,title:e.value,style:{"--data-fs-sku-selector-option-color-bkg-color":e.hexColor}}))))))});var ea=r(3779);let eo=(0,v.forwardRef)(function({children:e,variant:t="colored",testId:r="fs-table",...n},a){return v.createElement("div",{"data-fs-table":!0},v.createElement("table",{ref:a,"data-fs-table-content":!0,"data-fs-table-variant":t,"data-testid":r,...n},e))}),ei=(0,v.forwardRef)(function({children:e,testId:t="fs-table-body",...r},n){return v.createElement("tbody",{ref:n,"data-testid":t,"data-fs-table-body":!0,...r},e)}),el=(0,v.forwardRef)(function({children:e,testId:t="fs-table-row",...r},n){return v.createElement("tr",{ref:n,"data-fs-table-row":!0,"data-testid":t,...r},e)}),es=(0,v.forwardRef)(function({scope:e,align:t,children:r,variant:n="data",testId:a="fs-table-cell",...o},i){return v.createElement("header"===n?"th":"td",{ref:i,"data-fs-table-cell":n,"data-fs-table-cell-align":t,"data-testid":a,scope:e,...o},r)});var ec=r(9767),eu=r(7041);let moveScroll=(e,t)=>{e&&(e.scrollHeight>e.clientHeight?(e.style.overflow="auto",window.requestAnimationFrame(()=>e.scrollTo({top:t,behavior:"smooth"})),setTimeout(()=>e.style.overflow="hidden",2e3)):e.scrollLeft+=t)},hasScroll=e=>!!e&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);var ImageGallery_ImageGallerySelector=function({images:e,onSelect:t,ImageComponent:r,currentImageIdx:n,testId:a="fs-image-gallery-selector","aria-label":o="Product Images",navigationButtonLeftAriaLabel:i="Backward slide image selector",navigationButtonRightAriaLabel:l="Forward slide image selector"}){let s=(0,v.useRef)(null),c=hasScroll(s.current),[u,d]=(0,v.useState)(!0),[p,m]=(0,v.useState)(!0),f=(0,v.useCallback)((t,r)=>{0===t&&d(r),t===e.length-1&&m(r)},[e.length]);return v.createElement("section",{"data-fs-image-gallery-selector":!0,"data-testid":a,"aria-label":o},c&&!u&&v.createElement("div",{"data-fs-image-gallery-selector-control":!0},v.createElement(eu.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":i,icon:v.createElement(W.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(s.current,-400)})),v.createElement("div",{"data-fs-image-gallery-selector-elements":!0,ref:s},e.map((a,o)=>v.createElement(h.df,{key:o,onChange:e=>f(o,e)},v.createElement(J.Z,{key:o,"aria-label":`${a.alternateName} - Image ${o+1} of ${e.length}`,onClick:()=>t(o),"data-fs-image-gallery-selector-thumbnail":o===n?"selected":"true"},v.createElement(r,{url:a.url??"",loading:0===o?"eager":"lazy",alternateName:a.alternateName??""}))))),c&&!p&&v.createElement("div",{"data-fs-image-gallery-selector-control":!0},v.createElement(eu.Z,{"data-fs-image-gallery-selector-control-button":!0,"aria-label":l,icon:v.createElement(W.Z,{name:"ArrowLeft"}),onClick:()=>moveScroll(s.current,400)})))};let ed=(0,v.forwardRef)(function({images:e,children:t,ImageComponent:r,selectedImageIdx:n,setSelectedImageIdx:a,testId:o="fs-image-gallery",...i},l){let s=e.length>1;return v.createElement("section",{ref:l,"data-fs-image-gallery":s?"with-selector":"without-selector","data-testid":o,...i},t,s&&v.createElement(ImageGallery_ImageGallerySelector,{images:e,onSelect:a,currentImageIdx:n,ImageComponent:r}))});var ep=r(1163),em=["images"];function ImageGallery_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ImageGallery_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ImageGallery_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ImageGallery_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ImageGallery_ImageComponent=e=>{var{url:t,alternateName:r}=e,{__experimentalImageGalleryImage:n}=(0,A.r3)();return(0,f.jsx)(n.Component,{src:t,alt:r,width:68,height:68})},ef=r(29),eb=r(3523),eg=r(2495),ev=eb.Pq,ey=(n=(0,ef.Z)(function*(e){var{items:t,postalCode:r,country:n}=e;return yield(0,eg.W)(ev,{items:t,postalCode:r,country:n})}),function(e){return n.apply(this,arguments)});function useShippingSimulation_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function useShippingSimulation_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?useShippingSimulation_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):useShippingSimulation_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var createEmptySimulation=()=>({input:{postalCode:"",displayClearButton:!1,errorMessage:""},shippingSimulation:void 0}),reducer=(e,t)=>{var{type:r}=t;switch(r){case"clear":return createEmptySimulation();case"update":var{payload:n}=t;return{input:useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({},e.input),n.input),shippingSimulation:useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({},e.shippingSimulation),n.shippingSimulation)};case"onInput":var{payload:a}=t;return useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({},e),{},{input:useShippingSimulation_objectSpread({},a)});case"onError":var{payload:o}=t;return useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({},e),{},{input:useShippingSimulation_objectSpread(useShippingSimulation_objectSpread({},e.input),o)});default:throw Error("Action ".concat(r," not implemented"))}},useShippingSimulation=e=>{var{0:{input:t,shippingSimulation:r},1:n}=(0,v.useReducer)(reducer,null,createEmptySimulation),{country:a,postalCode:o}=(0,I.kP)(),{postalCode:i}=t,l=(0,v.useRef)(i);return(0,v.useEffect)(()=>{o&&!l.current&&function(){_fetchShipping.apply(this,arguments)}();function _fetchShipping(){return(_fetchShipping=(0,ef.Z)(function*(){var t=(yield ey({country:a,postalCode:null!=o?o:"",items:[e]})).shipping;n({type:"update",payload:{input:{postalCode:null!=o?o:"",displayClearButton:!0,errorMessage:""},shippingSimulation:t}})})).apply(this,arguments)}},[a,o,e]),{input:t,shippingSimulation:r,handleOnClear:()=>{n({type:"clear"})},handleSubmit:(0,v.useCallback)((0,ef.Z)(function*(){try{var t=(yield ey({country:a,postalCode:null!=i?i:"",items:[e]})).shipping;n({type:"update",payload:{input:{displayClearButton:!0,errorMessage:""},shippingSimulation:t}})}catch(e){n({type:"onError",payload:{displayClearButton:!0,errorMessage:"You entered an invalid Postal Code"}})}}),[a,e,i]),handleOnInput:(0,v.useCallback)(e=>{var t=e.currentTarget.value;t?n({type:"onInput",payload:{postalCode:t,displayClearButton:!1,errorMessage:""}}):n({type:"clear"})},[])}},eh=["productShippingInfo","formatter","inputLabel","title","idkPostalCodeLinkProps"];function ShippingSimulation_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}var ej={ProductTitle:H,DiscountBadge:U.Z,BuyButton:function({testId:e="fs-buy-button",icon:t,children:r,...n}){return v.createElement(J.Z,{"data-fs-buy-button":!0,icon:t,iconPosition:"left","data-testid":e,...n},r)},Icon:W.Z,ProductPrice:Y.Z,QuantitySelector:X.Z,SkuSelector:en,ShippingSimulation:function({testId:e="fs-shipping-simulation",formatter:t,title:r="Shipping",inputLabel:n="Postal Code",optionsLabel:a="Shipping options",idkPostalCodeLinkProps:o,onInput:i,onSubmit:l,onClear:s,location:c,options:u=[],displayClearButton:d=!1,errorMessage:p,postalCode:m,...f}){let b=!!u&&u.length>0;return v.createElement("section",{"data-fs-shipping-simulation":!0,"data-fs-shipping-simulation-empty":b?"false":"true","data-testid":e,...f},v.createElement("h2",{"data-fs-shipping-simulation-title":!0},r),v.createElement(ea.Z,{actionable:!0,error:p,id:`${e}-input-field`,label:n,value:m,onInput:e=>i?.(e),onSubmit:()=>l?.(),onClear:()=>s?.(),displayClearButton:d}),v.createElement(et.Z,{href:"/","data-fs-shipping-simulation-link":!0,size:"small",...o},o?.children??v.createElement(v.Fragment,null,"I don't know my Postal Code",v.createElement(W.Z,{name:"ArrowSquareOut",width:20,height:20}))),b&&v.createElement(v.Fragment,null,v.createElement("header",{"data-fs-shipping-simulation-header":!0},v.createElement("h3",{"data-fs-shipping-simulation-subtitle":!0},a),v.createElement("p",{"data-fs-shipping-simulation-location":!0},c)),v.createElement(eo,null,v.createElement(ei,null,u.map(e=>v.createElement(el,{key:e.carrier},v.createElement(es,{align:"left"},e.carrier),v.createElement(es,null,e.localizedEstimates),v.createElement(es,{align:"right"},e.price&&v.createElement(ec.Z,{formatter:t,value:e.price,SRText:"price"}))))))))},ImageGallery:ed,ImageGalleryViewer:({children:e})=>v.createElement(v.Fragment,null,e),__experimentalImageGalleryImage:T.Z,__experimentalImageGallery:e=>{var t,{images:r}=e,n=(0,K.Z)(e,em),{ImageGallery:a,ImageGalleryViewer:o,__experimentalImageGalleryImage:i}=(0,A.r3)(),{0:l,1:s}=(0,v.useState)(0),c=null!==(t=r[l])&&void 0!==t?t:r[0],u=(0,ep.useRouter)().asPath;return(0,v.useEffect)(()=>s(0),[u]),(0,f.jsx)(a.Component,ImageGallery_objectSpread(ImageGallery_objectSpread(ImageGallery_objectSpread({},a.props),{},{images:r,ImageComponent:ImageGallery_ImageComponent,selectedImageIdx:l,setSelectedImageIdx:s},n),{},{children:(0,f.jsx)(o.Component,ImageGallery_objectSpread(ImageGallery_objectSpread({},o.props),{},{children:(0,f.jsx)(i.Component,ImageGallery_objectSpread(ImageGallery_objectSpread({sizes:"(max-width: 360px) 50vw, (max-width: 768px) 90vw, 50vw",width:691,height:691*(3/4),loading:"eager"},i.props),{},{src:c.url,alt:c.alternateName}))}))}))},__experimentalShippingSimulation:function(e){var t,r,n,o,i,l,{productShippingInfo:s,formatter:c,inputLabel:u,title:d,idkPostalCodeLinkProps:p}=e,m=(0,K.Z)(e,eh),{ShippingSimulation:b}=(0,A.r3)(),{input:g,shippingSimulation:v,handleSubmit:y,handleOnInput:h,handleOnClear:j}=useShippingSimulation(s),{postalCode:P,displayClearButton:S,errorMessage:O}=g,w=null!==(t=[null==v?void 0:null===(r=v.address)||void 0===r?void 0:r.neighborhood,null==v?void 0:null===(n=v.address)||void 0===n?void 0:n.city].filter(Boolean).join(" / "))&&void 0!==t?t:"",_=null!==(o=null==v?void 0:null===(i=v.logisticsInfo)||void 0===i?void 0:null===(l=i[0])||void 0===l?void 0:l.slas)&&void 0!==o?o:[];return(0,f.jsx)(b.Component,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ShippingSimulation_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ShippingSimulation_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}({formatter:c,onInput:h,onSubmit:y,onClear:j,location:w,options:_,address:null==v?void 0:v.address,displayClearButton:S,errorMessage:O,postalCode:P,inputLabel:u,title:d,idkPostalCodeLinkProps:p},m))},__experimentalNotAvailableButton:function(e){var{children:t}=e;return(0,f.jsx)(J.Z,{variant:"primary",disabled:!0,"data-fs-buy-button":!0,children:t})}};function ProductDetails_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function ProductDetails_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ProductDetails_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ProductDetails_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var eP=(0,g.B)("ProductDetails",function(e){var t,r,{productTitle:{refNumber:n,discountBadge:{showDiscountBadge:a,size:o}},buyButton:{icon:i,title:l},shippingSimulator:{title:s,inputLabel:c,shippingOptionsTableTitle:u,link:{to:p,text:m}},productDescription:{title:b,initiallyExpanded:g,displayDescription:y},notAvailableButton:{title:h}}=e,{DiscountBadge:P,ProductTitle:S,__experimentalImageGallery:O,__experimentalShippingSimulation:w,__experimentalNotAvailableButton:_}=(0,A.r3)(),{currency:E}=(0,I.kP)(),{0:D,1:k}=(0,v.useState)(1),Z=(0,j.al)(),{product:B,isValidating:L}=null==Z?void 0:Z.data;if(!B)throw Error("NotFound");var{id:N,sku:G,gtin:M,name:K,brand:R,isVariantOf:V,description:T,isVariantOf:{name:q,productGroupID:F},image:Q,offers:{offers:[{availability:z,price:H,listPrice:U,seller:J}],lowPrice:W}}=B;(0,v.useEffect)(()=>{(0,x._)({name:"view_item",params:{currency:E.code,value:H,items:[{item_id:V.productGroupID,item_name:V.name,item_brand:R.name,item_variant:G,price:H,discount:U-H,currency:E.code,item_variant_name:K,product_reference_id:M}]}})},[V.productGroupID,V.name,R.name,G,H,U,E.code,K,M]);var Y=(0,v.useMemo)(()=>"https://schema.org/OutOfStock"===z,[z]);return(0,f.jsx)(d.Z,{className:"".concat($().section," section-product-details"),children:(0,f.jsx)("section",{"data-fs-product-details":!0,children:(0,f.jsxs)("section",{"data-fs-product-details-body":!0,"data-fs-content":"product-details",children:[(0,f.jsx)("header",{"data-fs-product-details-title":!0,"data-fs-product-details-section":!0,children:(0,f.jsx)(S.Component,ProductDetails_objectSpread(ProductDetails_objectSpread({title:(0,f.jsx)("h1",{children:q})},S.props),{},{label:a&&(0,f.jsx)(P.Component,ProductDetails_objectSpread(ProductDetails_objectSpread({},P.props),{},{size:null!=o?o:P.props.size,listPrice:U,spotPrice:W})),refNumber:n&&F}))}),(0,f.jsx)(O.Component,ProductDetails_objectSpread(ProductDetails_objectSpread({"data-fs-product-details-gallery":!0},O.props),{},{images:Q})),(0,f.jsxs)("section",{"data-fs-product-details-info":!0,children:[(0,f.jsx)("section",{"data-fs-product-details-settings":!0,"data-fs-product-details-section":!0,children:(0,f.jsx)(ProductDetails_ProductDetailsSettings,{product:B,isValidating:L,buyButtonTitle:l,quantity:D,setQuantity:k,buyButtonIcon:i,notAvailableButtonTitle:null!=h?h:_.props.title})}),!Y&&(0,f.jsx)(w.Component,ProductDetails_objectSpread(ProductDetails_objectSpread({"data-fs-product-details-section":!0,"data-fs-product-details-shipping":!0,formatter:C.P},w.props),{},{idkPostalCodeLinkProps:ProductDetails_objectSpread(ProductDetails_objectSpread({},w.props.idkPostalCodeLinkProps),{},{href:null!=p?p:null===(t=w.props.idkPostalCodeLinkProps)||void 0===t?void 0:t.href,children:null!=m?m:null===(r=w.props.idkPostalCodeLinkProps)||void 0===r?void 0:r.children}),productShippingInfo:{id:N,quantity:D,seller:J.identifier},title:null!=s?s:w.props.title,inputLabel:null!=c?c:w.props.inputLabel,optionsLabel:null!=u?u:w.props.optionsLabel}))]}),y&&(0,f.jsx)(ProductDescription_ProductDescription,{initiallyExpanded:g,descriptionData:[{title:b,content:T}]})]})})})},ej);function OverriddenDefaultProductDetails_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function OverriddenDefaultProductDetails_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?OverriddenDefaultProductDetails_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):OverriddenDefaultProductDetails_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var eS=(0,g.v)(OverriddenDefaultProductDetails_objectSpread(OverriddenDefaultProductDetails_objectSpread({},{section:"ProductDetails"}),{},{Section:eP})),eO=r(4439),ew=r(2718),e_=r(6104),eE=r(7553),eD=eb.wA,useProductQuery=(e,t)=>{var{channel:r,locale:n}=(0,I.kP)(),a=(0,v.useMemo)(()=>{if(!r)throw Error("useProductQuery: 'channel' from session is an empty string.");return{locator:[{key:"id",value:e},{key:"channel",value:r},{key:"locale",value:n}]}},[r,n,e]);return(0,eE.aM)(eD,a,{fallbackData:t,revalidateOnMount:!0})};function p_ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function p_objectSpread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p_ownKeys(Object(r),!0).forEach(function(t){(0,a.Z)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p_ownKeys(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var ek=p_objectSpread({Breadcrumb:b.j,ProductDetails:eS,CrossSellingShelf:k,BannerNewsletter:function(e){var{banner:t,newsletter:r}=e;return(0,f.jsx)(d.Z,{className:"".concat(m().section," section-banner-newsletter"),children:(0,f.jsxs)("div",{"data-fs-banner-text-newsletter":!0,"data-fs-content":"banner-newsletter",children:[(0,f.jsx)(c.i,{title:t.title,caption:t.caption,link:null==t?void 0:t.link,variant:t.variant,colorVariant:t.colorVariant}),(0,f.jsx)(u.O,{card:!0,colorVariant:r.colorVariant,title:r.title,description:r.description,icon:r.icon,privacyPolicy:r.privacyPolicy,emailInputLabel:r.emailInputLabel,displayNameInput:r.displayNameInput,nameInputLabel:r.nameInputLabel,subscribeButtonLabel:r.subscribeButtonLabel,subscribeButtonLoadingLabel:r.subscribeButtonLoadingLabel,toastSubscribe:r.toastSubscribe,toastSubscribeError:r.toastSubscribeError})]})})},BannerText:c.i},eO.Z),overwriteMerge=(e,t)=>t;function Page(e){var t,r,{data:n,sections:a,globalSections:o,offers:c,meta:u}=e,{product:d}=n,{currency:p}=(0,I.kP)(),{data:m,isValidating:b}=useProductQuery(d.id,{product:d}),g={data:p_objectSpread(p_objectSpread({},i()(n,m,{arrayMerge:overwriteMerge})),{},{isValidating:b})};return(0,f.jsxs)(e_.ZP,p_objectSpread(p_objectSpread({},o),{},{children:[(0,f.jsx)(l.PB,{title:u.title,description:u.description,canonical:u.canonical,openGraph:{type:"og:product",url:u.canonical,title:u.title,description:u.description,images:d.image.map(e=>({url:e.url,alt:e.alternateName}))},additionalMetaTags:[{property:"product:price:amount",content:null!==(t=null===(r=d.offers.lowPrice)||void 0===r?void 0:r.toString())&&void 0!==t?t:void 0},{property:"product:price:currency",content:p.code}]}),(0,f.jsx)(l.gR,{itemListElements:d.breadcrumbList.itemListElement}),(0,f.jsx)(l.Qb,{productName:d.name,description:d.description,brand:d.brand.name,sku:d.sku,gtin:d.gtin,releaseDate:d.releaseDate,images:d.image.map(e=>e.url),offers:c}),(0,f.jsx)(j.ZP,{context:g,children:(0,f.jsx)(s.Z,{sections:a,components:ek})})]}))}Page.displayName="Page";var ex=!0,eC=(0,ew.B)(Page)},4960:function(e,t,r){"use strict";r.d(t,{En:function(){return isSearchPage},OJ:function(){return isPLP},al:function(){return usePDP},qt:function(){return usePage},tS:function(){return isPDP}});var n=r(2784),a=r(2322),isPDP=e=>{var t,r,n,a;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.product)||void 0===r?void 0:r.sku)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(a=n.product)||void 0===a?void 0:a.sku)!=null},isPLP=e=>{var t,r,n,a,o,i;return(null==e?void 0:null===(t=e.data)||void 0===t?void 0:null===(r=t.collection)||void 0===r?void 0:r.seo)!=void 0&&(null==e?void 0:null===(n=e.data)||void 0===n?void 0:null===(a=n.collection)||void 0===a?void 0:a.seo)!=null&&(null==e?void 0:null===(o=e.data)||void 0===o?void 0:null===(i=o.collection)||void 0===i?void 0:i.sku)==void 0},isSearchPage=e=>{var t,r;return void 0===e||(null==e?void 0:null===(t=e.data)||void 0===t?void 0:t.title)!=void 0||(null==e?void 0:null===(r=e.data)||void 0===r?void 0:r.searchTerm)!=void 0},o=(0,n.createContext)(null);function usePage(){var{context:e}=(0,n.useContext)(o);if(null==e)throw Error("Missing Overrides context on React tree");return e}var usePDP=()=>usePage();t.ZP=function(e){var{context:t,children:r}=e,i=(0,n.useMemo)(()=>({context:t}),[t]);return(0,a.jsx)(o.Provider,{value:i,children:r})}},6258:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/[slug]/p",function(){return r(6429)}])},9919:function(e){e.exports={section:"section_section__YBgvV"}},4177:function(e){e.exports={section:"section_section__dvBbv"}},1145:function(e){e.exports={section:"section_section__VI73U"}}},function(e){e.O(0,[575,104,161,774,888,179],function(){return e(e.s=6258)}),_N_E=e.O()}]);
@@ -1,413 +0,0 @@
1
- import { Meta, Canvas, Story, ArgsTable } from '@storybook/addon-docs'
2
-
3
- import { Button } from '@faststore/ui'
4
-
5
- import Icon from '../../ui/Icon'
6
- import ProductCard from '.'
7
-
8
- import {
9
- TokenTable,
10
- TokenRow,
11
- TokenDivider,
12
- } from 'src/../.storybook/components'
13
-
14
- <Meta
15
- title="Molecules/ProductCard"
16
- component={ProductCard}
17
- argTypes={{
18
- variant: {
19
- defaultValue: 'default',
20
- table: { defaultValue: 'default' },
21
- },
22
- product: { table: { disable: true } },
23
- index: { table: { disable: true } },
24
- aspectRatio: {
25
- options: [0.75, 1.5, 1],
26
- control: { type: 'radio' },
27
- table: { defaultValue: '1' },
28
- },
29
- BuyButton: {
30
- control: 'boolean',
31
- table: { defaultValue: false },
32
- },
33
- }}
34
- />
35
-
36
- export const product = {
37
- id: '15503951',
38
- slug: 'handmade-steel-towels-practical-15503951',
39
- sku: '15503951',
40
- brand: { brandName: 'Brand', name: 'Brand' },
41
- name: 'red',
42
- gtin: '5595633577807',
43
- isVariantOf: {
44
- productGroupID: '130742',
45
- name: 'Handmade Steel Towels Practical',
46
- },
47
- image: [
48
- {
49
- url: 'http://storeframework.vtexassets.com/arquivos/ids/190191/numquam.jpg?v=637755599170100000',
50
- alternateName: 'est',
51
- },
52
- ],
53
- offers: {
54
- lowPrice: 181.71,
55
- offers: [
56
- {
57
- availability: 'https://schema.org/InStock',
58
- price: 181.71,
59
- listPrice: 208.72,
60
- quantity: 1,
61
- seller: { identifier: '1' },
62
- },
63
- ],
64
- },
65
- }
66
-
67
- export const Template = ({ BuyButton, ...args }) => {
68
- const button = BuyButton ? (
69
- <Button
70
- variant="primary"
71
- data-fs-button-size="small"
72
- icon={<Icon name="ShoppingCart" width={18} height={18} />}
73
- iconPosition="left"
74
- >
75
- Add
76
- </Button>
77
- ) : null
78
- return (
79
- <div style={{ width: 300 }}>
80
- <ProductCard BuyButton={button} {...args} />
81
- </div>
82
- )
83
- }
84
-
85
- export const TemplateWide = ({ BuyButton, ...args }) => {
86
- const button = BuyButton ? (
87
- <Button
88
- variant="primary"
89
- data-fs-button-size="small"
90
- icon={<Icon name="ShoppingCart" width={18} height={18} />}
91
- iconPosition="left"
92
- >
93
- Add
94
- </Button>
95
- ) : null
96
- return (
97
- <div style={{ width: 400 }}>
98
- <ProductCard BuyButton={button} {...args} />
99
- </div>
100
- )
101
- }
102
-
103
- <header>
104
-
105
- # Product Card
106
-
107
- ProductCard displays summarized information about a product. They usually present a call-to-action button, as well as the product's name, price, and image.
108
-
109
- </header>
110
-
111
- ## Overview
112
-
113
- The `ProductCard` component uses [FastStore UI ProductCard](https://www.faststore.dev/reference/ui/molecules/ProductCard).
114
-
115
- <Canvas className="sbdocs-vertically-center">
116
- <Story
117
- name="overview-default"
118
- args={{
119
- product: product,
120
- index: 1,
121
- variant: 'default',
122
- bordered: false,
123
- aspectRatio: 1,
124
- BuyButton: false,
125
- }}
126
- >
127
- {Template.bind({})}
128
- </Story>
129
- <Story
130
- name="overview-bordered"
131
- args={{
132
- product: product,
133
- index: 1,
134
- variant: 'default',
135
- bordered: true,
136
- aspectRatio: 1,
137
- BuyButton: false,
138
- }}
139
- >
140
- {Template.bind({})}
141
- </Story>
142
- <Story
143
- name="overview-wide"
144
- args={{
145
- product: product,
146
- index: 1,
147
- variant: 'wide',
148
- bordered: false,
149
- aspectRatio: 1.5,
150
- BuyButton: false,
151
- }}
152
- >
153
- {TemplateWide.bind({})}
154
- </Story>
155
- </Canvas>
156
-
157
- ---
158
-
159
- ## Usage
160
-
161
- <Canvas>
162
- <Story
163
- name="default"
164
- args={{
165
- product: product,
166
- index: 1,
167
- variant: 'default',
168
- bordered: false,
169
- aspectRatio: 1,
170
- BuyButton: false,
171
- }}
172
- >
173
- {Template.bind({})}
174
- </Story>
175
- </Canvas>
176
-
177
- <ArgsTable story="default" />
178
-
179
- <TokenTable>
180
- <TokenRow
181
- token="--fs-product-card-padding"
182
- value="var(--fs-spacing-1) var(--fs-spacing-1) var(--fs-spacing-2) var(--fs-spacing-1)"
183
- />
184
- <TokenRow token="--fs-product-card-gap" value="var(--fs-grid-gap-2)" />
185
- <TokenRow token="--fs-product-card-min-width" value="10rem" />
186
- <TokenDivider />
187
- <TokenRow token="--fs-product-card-shadow" value="var(--fs-shadow)" />
188
- <TokenRow
189
- token="--fs-product-card-shadow-hover"
190
- value="var(--fs-shadow-hover)"
191
- />
192
- <TokenDivider />
193
- <TokenRow
194
- token="--fs-product-card-bkg-color"
195
- value="var(--fs-color-body-bkg)"
196
- isColor
197
- />
198
- <TokenRow
199
- token="--fs-product-card-bkg-color-hover"
200
- value="var(--fs-product-card-bkg-color)"
201
- globalValue="var(--fs-color-body-bkg)"
202
- isColor
203
- />
204
- <TokenRow
205
- token="--fs-product-card-bkg-color-focus"
206
- value="var(--fs-product-card-bkg-color-hover)"
207
- globalValue="var(--fs-color-body-bkg)"
208
- isColor
209
- />
210
- <TokenDivider />
211
- <TokenRow
212
- token="--fs-product-card-border-radius"
213
- value="var(--fs-border-radius)"
214
- />
215
- <TokenRow
216
- token="--fs-product-card-border-color-hover"
217
- value="var(--fs-border-color-hover)"
218
- isColor
219
- />
220
- <TokenDivider />
221
- <TokenRow
222
- token="--fs-product-card-transition-function"
223
- value="var(--fs-transition-function)"
224
- />
225
- <TokenRow
226
- token="--fs-product-card-transition-property"
227
- value="var(--fs-transition-property)"
228
- />
229
- <TokenRow
230
- token="--fs-product-card-transition-timing"
231
- value="var(--fs-transition-timing)"
232
- />
233
- </TokenTable>
234
-
235
- ---
236
-
237
- ## Nested Elements
238
-
239
- ### Content
240
-
241
- <TokenTable>
242
- <TokenRow
243
- token="--fs-product-card-content-padding"
244
- value="var(--fs-spacing-2) 0 0 0"
245
- />
246
- </TokenTable>
247
-
248
- ### Image
249
-
250
- <TokenTable>
251
- <TokenRow
252
- token="--fs-product-card-img-radius"
253
- value="var(--fs-product-card-border-radius)"
254
- />
255
- <TokenRow token="--fs-product-card-img-scale-hover" value="1" />
256
- </TokenTable>
257
-
258
- ### Title
259
-
260
- <TokenTable>
261
- <TokenRow
262
- token="--fs-product-card-title-color"
263
- value="var(--fs-color-text)"
264
- isColor
265
- />
266
- <TokenRow
267
- token="--fs-product-card-title-size"
268
- value="var(--fs-text-size-base)"
269
- />
270
- <TokenRow
271
- token="--fs-product-card-title-weight"
272
- value="var(--fs-text-weight-regular)"
273
- />
274
- <TokenRow
275
- token="--fs-product-card-title-max-lines"
276
- value="var(--fs-text-max-lines)"
277
- />
278
- </TokenTable>
279
-
280
- ### Price
281
-
282
- <TokenTable>
283
- <TokenRow
284
- token="--fs-product-card-price-color"
285
- value="var(--fs-color-text)"
286
- isColor
287
- />
288
- <TokenRow
289
- token="--fs-product-card-price-size"
290
- value="var(--fs-text-size-base)"
291
- />
292
- <TokenRow
293
- token="--fs-product-card-price-listing-color"
294
- value="var(--fs-color-text-light)"
295
- isColor
296
- />
297
- <TokenRow
298
- token="--fs-product-card-price-listing-size"
299
- value="var(--fs-text-size-legend)"
300
- />
301
- </TokenTable>
302
-
303
- ### Description
304
-
305
- <TokenTable>
306
- <TokenRow
307
- token="--fs-product-card-description-color"
308
- value="var(--fs-color-text)"
309
- isColor
310
- />
311
- <TokenRow
312
- token="--fs-product-card-description-size"
313
- value="var(--fs-text-size-legend)"
314
- />
315
- </TokenTable>
316
-
317
- ### Subtitle
318
-
319
- <TokenTable>
320
- <TokenRow
321
- token="--fs-product-card-subtitle-color"
322
- value="var(--fs-color-text-light)"
323
- isColor
324
- />
325
- <TokenRow
326
- token="--fs-product-card-subtitle-size"
327
- value="var(--fs-text-size-tiny)"
328
- />
329
- </TokenTable>
330
-
331
- ---
332
-
333
- ## Variants
334
-
335
- ### Default
336
-
337
- <Canvas>
338
- <Story
339
- name="product-card-default"
340
- args={{
341
- product: product,
342
- index: 1,
343
- variant: 'default',
344
- bordered: false,
345
- aspectRatio: 1,
346
- BuyButton: false,
347
- }}
348
- >
349
- {Template.bind({})}
350
- </Story>
351
- </Canvas>
352
-
353
- ### Bordered
354
-
355
- <Canvas>
356
- <Story
357
- name="product-card-bordered"
358
- args={{
359
- product: product,
360
- index: 1,
361
- variant: 'default',
362
- bordered: true,
363
- aspectRatio: 1,
364
- BuyButton: false,
365
- }}
366
- >
367
- {Template.bind({})}
368
- </Story>
369
- </Canvas>
370
-
371
- <TokenTable>
372
- <TokenRow
373
- token="--fs-product-card-border-width"
374
- value="var(--fs-border-width)"
375
- />
376
- <TokenRow
377
- token="--fs-product-card-border-color"
378
- value="var(--fs-border-color-light)"
379
- isColor
380
- />
381
- </TokenTable>
382
-
383
- ### Wide
384
-
385
- <Canvas>
386
- <Story
387
- name="product-card-wide"
388
- args={{
389
- product: product,
390
- index: 1,
391
- variant: 'wide',
392
- bordered: false,
393
- aspectRatio: 1.5,
394
- BuyButton: false,
395
- }}
396
- >
397
- {TemplateWide.bind({})}
398
- </Story>
399
- </Canvas>
400
-
401
- <TokenTable>
402
- <TokenRow token="--fs-product-card-wide-padding" value="0" />
403
- <TokenRow
404
- token="--fs-product-card-wide-content-padding"
405
- value="var(--fs-spacing-2)"
406
- />
407
- <TokenRow
408
- token="--fs-product-card-wide-bkg-color"
409
- value="var(--fs-color-neutral-bkg)"
410
- isColor
411
- />
412
- <TokenRow token="--fs-product-card-wide-min-width" value="9rem" />
413
- </TokenTable>