@dropins/storefront-pdp 3.0.0-beta1 → 3.0.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.
package/api.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{c as i,f as d,j as c,d as g,g as n,e as u,h as f,i as h,r as p,s as l,a as m,b as P}from"./chunks/fetchProductData.js";import{g as F,i as G,a as Q,s as H}from"./chunks/isProductConfigurationValid.js";import{g as x}from"./chunks/getFetchedProductData.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"./fragments.js";import"@dropins/tools/fetch-graphql.js";export{i as config,d as fetchGraphQl,c as fetchProductData,g as getConfig,n as getFetchGraphQlHeader,x as getFetchedProductData,F as getProductConfigurationValues,u as getProductData,f as getRefinedProduct,h as initialize,G as isProductConfigurationValid,p as removeFetchGraphQlHeader,l as setEndpoint,m as setFetchGraphQlHeader,P as setFetchGraphQlHeaders,Q as setProductConfigurationValid,H as setProductConfigurationValues};
4
4
  //# sourceMappingURL=api.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as x,jsx as h}from"@dropins/tools/preact-jsx-runtime.js";import{useState as y,useCallback as M,useMemo as B,useEffect as q}from"@dropins/tools/preact-hooks.js";import{Field as V,TextArea as j,Picker as $,Input as z}from"@dropins/tools/components.js";import{classes as H}from"@dropins/tools/lib.js";/* empty css */import{useText as u}from"@dropins/tools/i18n.js";const J=c=>{switch(c){case"number":return"number";case"email":return"email";default:return"text"}},K=c=>c.name==="giftcard/giftcard_message"?"textarea":c.name==="giftcard/giftcard_amount"?"picker":"input",Q=(c,a,i,t)=>[{text:i,value:"0",disabled:!1},...c.map(g=>({text:g.toString(),value:g.toString(),disabled:!1})),...a?[{text:t,value:"other",disabled:!1}]:[]],C=(c,a,i)=>{const{validationRule:t}=c;if(c.name==="giftcard/giftcard_amount"){if(t.required&&(a==="0"||!a||a.trim()==="")||a==="0")return i.RequiredFieldError;if(a==="other")return""}else if(t.required&&(!a||a.trim()===""))return i.RequiredFieldError;if(!a||a.trim()==="")return"";switch(t.type){case"email":{if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a))return i.EmailError;break}case"number":{const l=Number(a);if(isNaN(l))return i.NumberError;if(t.min!==void 0&&l<t.min)return i.MinError.replace("{min}",t.min.toString());if(t.max!==void 0&&l>t.max)return i.MaxError.replace("{max}",t.max.toString());if(t.values&&!t.values.some(_=>typeof _=="number"?_===l:_===a))return i.InvalidValueError.replace("{values}",t.values.join(", "));break}case"string":{const l=a.length;if(t.minLength!==void 0&&l<t.minLength)return i.MinLengthError.replace("{min_length}",t.minLength.toString());if(t.maxLength!==void 0&&l>t.maxLength)return i.MaxLengthError.replace("{max_length}",t.maxLength.toString());break}}return""},tr=({options:c,currency:a,optionValues:i,onOptionChange:t,onValidationChange:l})=>{const g=u("PDP.Product.GiftCardOptions.ChooseAmount.label").label,_=u("PDP.Product.GiftCardOptions.OtherAmount.label").label,w=u("PDP.Product.GiftCardOptions.RequiredFieldError.label").label,N=u("PDP.Product.GiftCardOptions.NumberError.label").label,O=u("PDP.Product.GiftCardOptions.MinError.label").label,G=u("PDP.Product.GiftCardOptions.MaxError.label").label,L=u("PDP.Product.GiftCardOptions.MinLengthError.label").label,S=u("PDP.Product.GiftCardOptions.MaxLengthError.label").label,D=u("PDP.Product.GiftCardOptions.EmailError.label").label,R=u("PDP.Product.GiftCardOptions.InvalidValueError.label").label,[F,k]=y({}),[b,T]=y(!1),n=M(r=>c.find(e=>e.name===r),[c]),p=B(()=>({RequiredFieldError:w,NumberError:N,MinError:O,MaxError:G,MinLengthError:L,MaxLengthError:S,EmailError:D,InvalidValueError:R}),[w,N,O,G,L,S,D,R]);q(()=>{const r=c.every(e=>{if(e.name==="giftcard/custom_giftcard_amount"&&!b)return!0;const d=i.find(f=>f.id===e.uid),o=(d==null?void 0:d.value)||"";return C(e,o,p)===""});l(r)},[c,i,l,p,b]),q(()=>{const r=n("giftcard/giftcard_amount"),e=n("giftcard/custom_giftcard_amount"),d=i.find(E=>E.id===(r==null?void 0:r.uid)),o=(d==null?void 0:d.value)||"",f=b,P=r?o==="other":!!e;T(P),f&&!P&&e&&t(e.uid,"")},[i,n,b,t]);const v=(r,e)=>{const d=C(r,e,p);k(o=>({...o,[r.uid]:d})),t(r.uid,e)},A=(r,e)=>{const d=C(r,e,p);k(o=>({...o,[r.uid]:d}))},I=(r,e)=>{const d=e.target.value;v(r,d)},m=r=>{const e=i.find(s=>s.id===r.uid),d=e==null?void 0:e.value,o=F[r.uid],f=K(r),P=!!n("giftcard/custom_giftcard_amount");let E=r.label;return r.name==="giftcard/custom_giftcard_amount"&&a&&(E=`${r.label} ${a}`),h(V,{label:E,className:H(["pdp-gift-card-options__option-field",f==="textarea"&&"pdp-gift-card-options__option-field--full-width"]),error:o,children:f==="textarea"?h(j,{value:d,label:r.label,onChange:s=>v(r,s.target.value),onBlur:s=>A(r,s.target.value),"aria-invalid":!!o}):f==="picker"?h($,{"aria-label":r.label,label:r.label,handleSelect:s=>I(r,s),options:Q(r.validationRule.values||[],P,g,_),value:d,"aria-invalid":!!o}):h(z,{type:J(r.validationRule.type),value:d,onChange:s=>v(r,s.target.value),onBlur:s=>A(r,s.target.value),"aria-invalid":!!o})},r.uid)};return x("div",{className:"pdp-gift-card-options__grid",children:[x("div",{className:"pdp-gift-card-options__row",children:[n("giftcard/giftcard_amount")&&m(n("giftcard/giftcard_amount")),n("giftcard/custom_giftcard_amount")&&b&&m(n("giftcard/custom_giftcard_amount"))]}),x("div",{className:"pdp-gift-card-options__row",children:[n("giftcard/giftcard_sender_name")&&m(n("giftcard/giftcard_sender_name")),n("giftcard/giftcard_sender_email")&&m(n("giftcard/giftcard_sender_email"))]}),x("div",{className:"pdp-gift-card-options__row",children:[n("giftcard/giftcard_recipient_name")&&m(n("giftcard/giftcard_recipient_name")),n("giftcard/giftcard_recipient_email")&&m(n("giftcard/giftcard_recipient_email"))]}),h("div",{className:"pdp-gift-card-options__row",children:n("giftcard/giftcard_message")&&m(n("giftcard/giftcard_message"))})]})};export{tr as G};
4
4
  //# sourceMappingURL=GiftCardOptions2.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as r,Fragment as h,jsxs as l}from"@dropins/tools/preact-jsx-runtime.js";/* empty css */import{Price as s}from"@dropins/tools/components.js";const o=({amount:e,currency:p,locale:d,variant:g,sale:t,minimumAmount:i,maximumAmount:n,className:a,...c})=>r(h,{children:e||i===n?r("div",{className:"pdp-price-range",...c,children:r(s,{amount:e||i,currency:p,locale:d,variant:g,sale:t,className:a})}):l("div",{className:"pdp-price-range",...c,children:[r(s,{amount:i,currency:p,locale:d,className:a}),r("span",{className:"pdp-price-range__label",children:"-"}),r(s,{amount:n,currency:p,locale:d,className:a})]})});export{o as P};
4
4
  //# sourceMappingURL=PriceRange.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as f,jsxs as R}from"@dropins/tools/preact-jsx-runtime.js";import{useState as z,useEffect as P,useMemo as A,useCallback as _}from"@dropins/tools/preact-compat.js";import{classes as C}from"@dropins/tools/lib.js";import{Picker as y,ColorSwatch as B,ImageSwatch as D,TextSwatch as F}from"@dropins/tools/components.js";/* empty css */import{useText as q}from"@dropins/tools/i18n.js";const G=["text","image","color","dropdown"],H=d=>d.map(h=>({...h,text:h.label,disabled:!h.inStock}));function K(d,h){return d.reduce((m,w)=>{const n=h==null?void 0:h.find(i=>i.items.find(S=>S.id===w));if(!n)return m;const b=n.items.find(i=>i.id===w);return{...m,[n.id]:{label:b.label,value:b.id}}},{})}const T=({options:d,hideSelectedValue:h,disablePreselections:m,selectedUIDs:w,onValues:n,onErrors:b,defaultOptions:i,selectionsToUpdate:S,className:L,children:Q,imageSwatchNode:O,...M})=>{const j=q("PDP.Swatches.Required.label").label,g=q("PDP.Swatches.ChooseOption.label").label,[v,x]=z(()=>d==null?void 0:d.reduce((r,e)=>{const{items:a}=e,c=a==null?void 0:a.find(s=>i==null?void 0:i.includes(s.id)),u=a==null?void 0:a.find(s=>s.selected);return c?{...r,[e.id]:{label:c.label,value:c.id}}:u?{...r,[e.id]:{label:u.label,value:u.id}}:r},{}));P(()=>{if(w){const l=K(w,d);if(JSON.stringify(l)===JSON.stringify(v))return;x(r=>{let e={...r,...l};return n==null||n(e),e})}},[w]),P(()=>{S==null||S.forEach(l=>{x(r=>{var c;const e=(c=l==null?void 0:l.items)==null?void 0:c.find(u=>u.selected);return e?{...r,[l.id]:{label:e==null?void 0:e.label,value:e==null?void 0:e.id}}:r})})},[S,x]),A(()=>{const l=d==null?void 0:d.reduce((r,e)=>{var c;let a=!1;return(c=e==null?void 0:e.items)==null||c.forEach(u=>{var t;((t=v[e.id])==null?void 0:t.value)===u.id&&(a=!0)}),e.required&&!a&&(r[e.id]=j),r},{});return b==null||b(l),l},[v]);const $=_((l,r,e)=>{x(a=>{let c={...a,...l&&{[l]:{label:r,value:e}}};return r===g&&delete c[l],n==null||n(c,e),c})},[n]),N=_((l,r)=>{var a;const e=((a=r.selectedOptions[0])==null?void 0:a.label)??"";$(l,e,r.value)},[$]),J=_(({items:l,id:r,required:e,type:a,selected:c,label:u})=>{const s=`pdp-swatch-${r}=${Math.random().toString(36)}`;return(l==null?void 0:l.length)>0&&f("div",{className:C(["pdp-swatches__options"]),children:(a==null?void 0:a.toLowerCase())==="dropdown"?f(y,{id:s,name:r,"aria-label":u,placeholder:m?g:void 0,handleSelect:t=>N(r,t.target),options:H(l),value:c}):l==null?void 0:l.map(t=>{const k={key:t.id,id:`${s}-${t.id}`,name:r,value:t.value,label:t.label,groupAriaLabel:u,selected:c===t.id,outOfStock:!t.inStock,required:e===null?!0:e,onValue:()=>{$(r,t.label,t.id)}};switch(a){case"text":return f(F,{...k,label:t.label});case"image":return f(D,{...k,src:t.value,alt:t.label,imageNode:O});case"color":return f(B,{...k,size:"large",color:t.value});default:return console.warn(`Invalid swatch type ${a}`),null}})})},[g,$,N]);return f("div",{...M,className:C(["pdp-swatches",L]),children:d==null?void 0:d.map(({type:l,label:r,id:e,multiple:a,required:c,items:u})=>{var s;return G.includes(l)||console.warn(`Invalid swatch type ${l}`),a&&console.warn("Multiple selection swatches are not currently supported."),R("div",{id:`swatch-item-${e}`,"data-slot-key":`product-swatch--${e}`,className:"pdp-swatches__field",children:[f("div",{className:"pdp-swatches__field__label",children:v[e]?h?`${r}`:`${r}: ${v[e].label}`:r}),f(J,{id:e,type:l,required:c,items:u,label:r,selected:(s=v[e])==null?void 0:s.value})]},`swatch-item-${e}`)})})};export{T as S};
4
4
  //# sourceMappingURL=Swatches.js.map
package/chunks/Zoom.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as U,jsx as M,Fragment as be}from"@dropins/tools/preact-jsx-runtime.js";import*as le from"@dropins/tools/preact-compat.js";import{useState as $,Children as I,useRef as A,useMemo as ve,useEffect as R,useCallback as re,useLayoutEffect as We}from"@dropins/tools/preact-compat.js";import{debounce as ye,classes as P}from"@dropins/tools/lib.js";import{Button as pe,Icon as ke}from"@dropins/tools/components.js";/* empty css */import{useText as q}from"@dropins/tools/i18n.js";import{cloneElement as De}from"@dropins/tools/preact.js";const Ae=i=>le.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...i},le.createElement("path",{d:"M7.74512 9.87701L12.0001 14.132L16.2551 9.87701",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),Ce=i=>le.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...i},le.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),le.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),Re=24,we=16,Se="32";var Me=(i=>(i[i.small=16]="small",i[i.medium=24]="medium",i[i.large=64]="large",i))(Me||{});const Fe=({show:i=1,scrollbar:p=!1,peak:y=!1,arrows:l=!1,controls:o="dots",arrowsOnMainImage:S=!1,loop:c=!1,gap:w=null,direction:L="horizontal",width:W="100%",height:ne="100%",defaultIndex:X=0,className:ie,children:k,thumbnails:J=null,isZoomed:Y,...O})=>{const Z=q("PDP.Carousel.label").label,ce=q("PDP.Carousel.Slide.label").label,x=q("PDP.Carousel.Previous.label").label,oe=q("PDP.Carousel.Next.label").label,j=q("PDP.Carousel.Controls.label").label,H=q("PDP.Carousel.Controls.Button.label").label,[d,ue]=$(()=>Le(i)),v=Math.ceil(I.count(k)/d),C=y?Re:0,Q=w?Me[w]:0,K=I.count(k)%d,[f,fe]=$(c?D()?X-1:X+1:X),G=A([]),[E,he]=$(0),[ee,de]=$(0),se=ve(()=>I.toArray(J),[J]),t=ve(()=>{const e=I.toArray(k).reduce((r,s,n)=>n%d===0?[...r,[s]]:[...r.slice(0,-1),[...r[r.length-1],s]],[]);return!c||e.length===1?e:c&&I.count(k)%d===0?[e[v-1]].concat(e).concat([e[0],e[1]]):[I.toArray(k).slice(-d)].concat(e).concat([e[0],e[1]])},[k,d,v,c]),g=A(null),h=A(null),a=o==="thumbnailsRow"||o==="thumbnailsColumn";R(()=>{const e=g.current;if(!e)return;const r=ye(()=>{he(e.offsetWidth??0),de(e.offsetHeight??0);const n=window.innerWidth,u=Le(i,n);u!==d&&ue(u)},50),s=new ResizeObserver(r);return s.observe(e),()=>{s.unobserve(e)}},[d,i]);const b=re(e=>{const r=c?e-1:e,s=G==null?void 0:G.current[0],n=(s==null?void 0:s.offsetWidth)+we,u=(s==null?void 0:s.offsetHeight)+we,_=h.current,te=o==="thumbnailsRow",ae=o==="thumbnailsColumn",F=te?_==null?void 0:_.offsetWidth:_==null?void 0:_.offsetHeight,N=te?n:u;if((te||ae)&&F){const Ee=Math.floor((te?_.clientWidth:_.clientHeight)/N),Ne=Math.floor(Ee/2),me=(r-Ne)*N;_.style.scrollBehavior="smooth",te?_.scrollLeft=D()?-(_.scrollWidth-_.clientWidth-me):me:_.scrollTop=me}},[o,c]);R(()=>{b(f)},[f,b]);const m=re((e,r,s)=>{a&&b(e);const n=g.current,u=C?n.offsetWidth-C:n.offsetWidth-C+Q;if(!Array.from(n.querySelectorAll("[data-index]")).filter(F=>{const N=Number(F.getAttribute("data-index"));return!isNaN(N)&&N>-1})[e])return;if(s){const F=e===0?v:0,N=u*(v+(K||d)/d);if(D()){if(n.scrollLeft<=0&&n.scrollLeft>-(u-5)){m(1,!0);return}if(n.scrollLeft<u-N&&n.scrollLeft>=-N){m(v,!0);return}n.style.scrollBehavior="auto",n.scrollLeft=F===0?0:-N,m(F===0?1:v,!0)}else{if(n.scrollLeft>=0&&n.scrollLeft<u-5){m(1,!0);return}if(n.scrollLeft>N-u&&n.scrollLeft<=N){m(v,!0);return}n.style.scrollBehavior="auto",n.scrollLeft=F===0?0:N,m(F===0?1:v,!0);return}}const ae=(n.offsetWidth-Q)/d*t[e].length-C;n.style.scrollBehavior=r?"smooth":"auto",n.scrollLeft=D()?-(t[e].length===d?u*e:u*(e-1)-ae):t[e].length===d?u*e:u*(e-1)+ae},[Q,v,C,d,K,t,b,o]),B=re(()=>{if(c){const r=f-1;m(r,!0,D()?f===v-1:f===1);return}const e=f<=0?0:f-1;m(e,!0)},[f,m,c]),z=re(()=>{const e=t.length-1;if(c){const s=f+1;m(s,!0,D()?f===0:f===v);return}const r=f>=e?e:f+1;m(r,!0)},[t.length,c,f,m,v]);R(()=>{const e=r=>{r.key==="ArrowLeft"&&(D()?z():B()),r.key==="ArrowRight"&&(D()?B():z())};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[z,B]),We(()=>{m(c?X+1:X,!1)},[X,m,c,E]);const V=ye(()=>{const e=g.current,r=C?e.offsetWidth-C:e.offsetWidth-C+Q,s=Math.abs(e.scrollLeft)/r,n=Math.abs(Math.round(s)-s<1?Math.round(s):Math.ceil(s));if(a&&b(n),c){const u=r*(v+(K||d)/d),_=D()?-e.scrollLeft:e.scrollLeft;if(Math.ceil(Math.abs(_))>=Math.ceil(u)-5){e.style.scrollBehavior="auto",e.scrollLeft=D()?-e.offsetWidth+(Math.ceil(_)-Math.ceil(u)-C):e.offsetWidth+(Math.ceil(_)-Math.ceil(u)-C);return}if(Math.abs(_)===0){e.style.scrollBehavior="auto",e.scrollLeft=D()?-(u-e.offsetWidth+C):u-e.offsetWidth+C;return}}f!==n&&fe(n)},100);R(()=>{const e=g.current;return e==null||e.addEventListener("scroll",V),()=>{e==null||e.removeEventListener("scroll",V)}},[V]);const T=(e,r,s)=>M(pe,{className:P([["pdp-carousel__button",!e],[`pdp-carousel__button--${r}`,!e],[`pdp-carousel__button--${o}`,e]]),style:{"--height":`${ee}px`},variant:"tertiary","aria-label":r==="next"?oe:x,onClick:s,disabled:c?!1:r==="next"?f>=t.length-1:f<1,children:M(ke,{className:P([["pdp-carousel__button__icon",!e],[`pdp-carousel__button__icon--${r}`,!e],[`pdp-carousel__button__icon--${o}--${r}`,e]]),size:Se,source:Ae})}),ge=l&&t.length!=1&&T(a,"prev",B),_e=l&&t.length!=1&&T(a,"next",z),Pe=l&&t.length!=1&&T(!1,"prev",B),xe=l&&t.length!=1&&T(!1,"next",z);return U("div",{role:"region","aria-roledescription":Z,className:P(["pdp-carousel",["pdp-carousel--main-image-controls",S],["pdp-carousel--arrows",l&&!a],[`pdp-carousel--${o}`,a],ie]),style:{"--flex-carousel":o==="thumbnailsColumn"?"row-reverse":"column","--gap":a?"0":"var(--spacing-small)","--width":W},...O,children:[M("div",{ref:g,className:P(["pdp-carousel__wrapper",`pdp-carousel__wrapper--${L}`,["pdp-carousel__wrapper--scrollbar",p],["pdp-carousel__wrapper--peak",y]]),style:{"--total-width":o==="thumbnailsColumn"?"81.6%":"100%","--height":o==="thumbnailsColumn"?"auto":ne,"--gap":w?`var(--spacing-${w})`:"0px","--per-page":d},tabIndex:0,children:t.map((e,r)=>{const s=e.length<d;return M("div",{role:"group","aria-roledescription":ce,"data-index":r,className:P(["pdp-carousel__slide",`pdp-carousel__slide--${L}`,["pdp-carousel__slide--active",f===r],["pdp-carousel__slide--orphan",s],["pdp-carousel__slide--hidden",E===0]]),style:{"--length":e.length},children:e},r)})}),!a&&U(be,{children:[ge,_e]}),a&&S&&U(be,{children:[Pe,xe]}),o&&t.length!=1&&U("div",{className:P([[`pdp-carousel__controls__container--${o}`,a],["pdp-carousel__controls__container--no-arrows",!l||S]]),style:{"--width":o==="thumbnailsRow"?`${E}px`:W,"--height":`${ee}px`,"--nr-thumbnails":se.length},children:[(a||Y)&&!S&&ge,M("div",{ref:h,className:P([[`pdp-carousel__controls__wrapper--${o}`,a],["pdp-carousel__controls__wrapper",a]]),children:M("div",{role:"group","aria-label":j,className:P(["pdp-carousel__controls",[`pdp-carousel__controls--${o}`,a]]),children:(c?t.slice(0,v):t).map((e,r)=>{const s=c?v:t.length,n=c?f-1===r:f===r;return a?U("label",{className:P(["pdp-carousel__thumbnail__container"]),ref:u=>{u&&(G.current[r]=u)},children:[M("input",{type:"radio",name:"carousel-thumbnails","aria-label":H.replace("{key}",String(r+1)).replace("{total}",String(s)),checked:n&&E!==0,onChange:()=>{m(c?r+1:r,!0)},...O,className:P(["pdp-carousel__thumbnail",["pdp-carousel__thumbnail--selected",n&&E!==0]])}),M("span",{className:P(["pdp-carousel__thumbnail__span"]),children:se[r]})]},r):M("button",{"aria-label":H.replace("{key}",String(r+1)).replace("{total}",String(s)),onClick:()=>{m(c?r+1:r,!0)},className:P(["pdp-carousel__controls__button",["pdp-carousel__controls__button--active",n]])},r)})})}),(a||Y)&&!S&&_e]})]})};function Le(i,p=0){if(typeof i=="number")return i;const{small:y,medium:l,large:o}=i,c=[{breakpoint:1024,value:o},{breakpoint:786,value:l},{breakpoint:0,value:y}].find(({breakpoint:w})=>p>w);return c?c.value:y}function D(){return document.documentElement.dir==="rtl"}const qe=({centered:i,onClose:p,className:y,children:l,...o})=>{const S=q("PDP.Overlay.Close.label").label,c=A(null),w=re(()=>{p==null||p()},[p]);return R(()=>{const L=W=>{W.key==="Escape"&&w()};return document.addEventListener("keydown",L),()=>{document.removeEventListener("keydown",L)}},[w]),R(()=>{const L=c.current;L==null||L.focus();const W=document.scrollingElement,ne=W.style.overflow;return W.style.overflow="hidden",()=>{W.style.overflow=ne}},[]),U("div",{...o,className:P(["pdp-overlay",["pdp-overlay--centered",i],y]),ref:c,role:"dialog","aria-describedby":"overlay-content",tabindex:0,children:[M("div",{className:"pdp-overlay__content",id:"overlay-content",children:l}),M(pe,{"aria-label":S,variant:"tertiary",className:"pdp-overlay__close-button",onClick:w,icon:M(Ce,{})})]})},Oe=({children:i,scale:p=2,closeButton:y=!0})=>{var se;const[l,o]=$(!1),[S,c]=$("pdp-zoom"),[w,L]=$(!1),[W,ne]=$({x:0,y:0}),[X,ie]=$({x:0,y:0}),[k,J]=$({x:0,y:0}),Y=A(null),O=A(null),Z=A(null),ce=A("none"),x=A(null),oe=A(!1),j=A(null),H=re(t=>{const g=()=>{var T;let h;O.current&&Y.current?h=O.current:Y.current?(h=Y.current.getBoundingClientRect(),O.current=h):h=(T=t.currentTarget)==null?void 0:T.getBoundingClientRect();const a=(100-100/p)/2;let b=null;if("touches"in t)if(t.touches.length>0)b=t.touches[0],j.current={clientX:b.clientX,clientY:b.clientY};else if(t.type==="touchend"&&x.current)b={clientX:x.current.x,clientY:x.current.y};else if(j.current)b=j.current;else return;else if(t instanceof MouseEvent)b=t;else return;const m=(b.clientX-h.left)/h.width*100,B=(b.clientY-h.top)/h.height*100,z=(50-m)*(p-1)/p,V=(50-B)*(p-1)/p;J({x:Math.max(-a,Math.min(z,a))||0,y:Math.max(-a,Math.min(V,a))||0})};Z.current&&cancelAnimationFrame(Z.current),Z.current=requestAnimationFrame(g)},[p]);R(()=>{O.current=null},[l]);const d=t=>{!l||t.type!=="touchstart"||(ne({x:t.touches[0].clientX,y:t.touches[0].clientY}),ie({x:k.x,y:k.y}),L(!0))},ue=t=>{var T;if(!w||t.type!=="touchmove")return;const g=(T=t.currentTarget)==null?void 0:T.getBoundingClientRect(),h=(100-100/p)/2,a=t.touches[0].clientX-W.x,b=t.touches[0].clientY-W.y,m=a*100/(g.width*p),B=b*100/(g.height*p),z=X.x+m,V=X.y+B;J({x:Math.max(-h,Math.min(z,h))||0,y:Math.max(-h,Math.min(V,h))||0}),t.preventDefault()},v=t=>{if(y)x.current={x:t.touches[0].clientX,y:t.touches[0].clientY,time:Date.now()},j.current={clientX:t.touches[0].clientX,clientY:t.touches[0].clientY},oe.current=!1,l&&d(t);else{if(w)return;!l&&H(t),o(!l),t.preventDefault()}},C=t=>{if(t.touches.length!==0){if(j.current={clientX:t.touches[0].clientX,clientY:t.touches[0].clientY},y){if(!x.current)return;if(w){ue(t);return}const g=t.touches[0].clientX,h=t.touches[0].clientY,a=Math.abs(g-x.current.x),b=Math.abs(h-x.current.y);(a>10||b>10)&&(oe.current=!0)}l&&H(t)}},Q=t=>{if(y){if(!x.current)return;const g=Date.now()-x.current.time;!oe.current&&g<300&&!w&&(o(!0),H(t),t.preventDefault()),L(!1),x.current=null}else o(!1)},K=t=>{"touches"in t||w||(l?!y&&o(!1):(o(!0),H(t)),t.preventDefault())},f=t=>{"touches"in t||l&&H(t)},fe=t=>{if(!("touches"in t)){if(y){L(!1);return}o(!1)}},G=t=>{o(!1),t.stopPropagation()},E=l?`scale(${p}) translateX(${k.x}%) translateY(${k.y}%)`:"none",he=q("PDP.Zoom.Close.label").label,ee=I.only(i);R(()=>{const t=()=>{l&&(o(!1),J({x:0,y:0}),L(!1))},g=document.querySelector("#gallery");if(g)return g.addEventListener("click",t),()=>g.removeEventListener("click",t)},[l]);const de=De(ee,{...ee.props,draggable:!1,style:{...(se=ee.props)==null?void 0:se.style,"--transform":E}});return R(()=>{c(l?`pdp-zoom ${y?"pdp-zoom--no-effects":"pdp-zoom--zoomed"}`:"pdp-zoom")},[l,y]),R(()=>{if(ce.current===E)return;ce.current=E,requestAnimationFrame(()=>{if(!Y.current)return;Y.current.querySelectorAll("img").forEach(h=>{l&&E!=="none"?h.style.setProperty("transform",E,"important"):h.style.removeProperty("transform")})})},[E,l]),R(()=>()=>{Z.current&&cancelAnimationFrame(Z.current)},[]),U("figure",{ref:Y,className:S,onClick:K,onMouseMove:f,onMouseLeave:fe,onTouchStart:v,onTouchMove:C,onTouchEnd:Q,children:[de,y&&l&&M(pe,{"aria-label":he,variant:"tertiary",className:"pdp-zoom__close-button",icon:M(Ce,{}),onClick:G})]})};export{Fe as C,qe as O,Oe as Z};
4
4
  //# sourceMappingURL=Zoom.js.map
package/chunks/date.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{toLanguageTag as n}from"@dropins/tools/lib.js";function a(t,d="en_US"){if(!o(t))throw Error("Invalid date string");return t.split(" ")[1]||(t=`${t} 00:00:00`),new Date(t).toLocaleDateString(n(d)).toString()}function o(t){if(![/^\d{4}-\d{2}-\d{2}$/,/^\d{1,2}\/\d{1,2}\/\d{4}$/,/^\d{2}\/\d{2}\/\d{4}$/,/^\d{4}\/\d{2}\/\d{2}$/,/^\d{1,2}\.\d{1,2}\.\d{4}$/,/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/].some(i=>i.test(t)))return!1;const e=new Date(t);return!isNaN(e.getTime())}export{o as i,a as t};
4
4
  //# sourceMappingURL=date.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{merge as fe,Initializer as Pe}from"@dropins/tools/lib.js";import{events as q}from"@dropins/tools/event-bus.js";import{PRODUCT_FRAGMENT as se}from"../fragments.js";import{FetchGraphQL as de}from"@dropins/tools/fetch-graphql.js";import{s as ye,a as he}from"./isProductConfigurationValid.js";function je(e){const r=new URLSearchParams(window.location.search);Object.entries(e).forEach(([n,t])=>{t===null?r.delete(n):r.set(n,String(t))});let i=window.location.pathname;i+=`?${r.toString()}`,i+=window.location.hash,window.history.replaceState({},"",i)}function ae(){const e=new URLSearchParams(window.location.search),r={};return e.forEach((i,n)=>{r[n]=i}),r}function ge(e=1){const i=(ae()||{}).quantity;if(i){const n=parseInt(i,10);if(!isNaN(n)&&Number.isInteger(n)&&n>0)return n}return e}function we(e){var r,i,n,t,s,a,l,o,m,u,c,f;return{productId:Number(e==null?void 0:e.externalId),name:e==null?void 0:e.name,sku:(e==null?void 0:e.variantSku)||(e==null?void 0:e.sku),topLevelSku:e==null?void 0:e.sku,specialToDate:void 0,specialFromDate:void 0,newToDate:void 0,newFromDate:void 0,createdAt:void 0,updatedAt:void 0,manufacturer:void 0,countryOfManufacture:void 0,categories:void 0,productType:e==null?void 0:e.productType,pricing:{regularPrice:((i=(r=e==null?void 0:e.prices)==null?void 0:r.regular)==null?void 0:i.amount)||0,minimalPrice:(t=(n=e==null?void 0:e.prices)==null?void 0:n.final)==null?void 0:t.minimumAmount,maximalPrice:(a=(s=e==null?void 0:e.prices)==null?void 0:s.final)==null?void 0:a.maximumAmount,specialPrice:(o=(l=e==null?void 0:e.prices)==null?void 0:l.final)==null?void 0:o.amount,tierPricing:void 0,currencyCode:((u=(m=e==null?void 0:e.prices)==null?void 0:m.final)==null?void 0:u.currency)||"USD"},canonicalUrl:e==null?void 0:e.url,mainImageUrl:(f=(c=e==null?void 0:e.images)==null?void 0:c[0])==null?void 0:f.url}}const oe={PRODUCT_CONTEXT:"productContext",CHANNEL_CONTEXT:"channelContext"},Ce={PRODUCT_PAGE_VIEW:"product-page-view"};function ue(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function xe(){return{_id:"https://ns.adobe.com/xdm/channels/web",_type:"https://ns.adobe.com/xdm/channel-types/web"}}function le(e,r){const i=ue();i.push({[e]:null}),i.push({[e]:r})}function De(){typeof window>"u"||le(oe.CHANNEL_CONTEXT,xe())}function Te(e,r){ue().push(n=>{const t=n.getState?n.getState():{};n.push({event:e,eventInfo:{...t,...r}})})}function Oe(e){const r=we(e);le(oe.PRODUCT_CONTEXT,r),De(),Te(Ce.PRODUCT_PAGE_VIEW)}var H=(e=>(e.ComplexProduct="complex",e.SimpleProduct="simple",e))(H||{}),me=(e=>(e.ComplexProductView="ComplexProductView",e.SimpleProductView="SimpleProductView",e))(me||{});function K(e,r){var a,l,o,m,u,c,f,g,w,T,y,A;const i=((m=(o=(l=(a=e==null?void 0:e.options)==null?void 0:a[0])==null?void 0:l.values)==null?void 0:o[0])==null?void 0:m.__typename)==="ProductViewOptionValueProduct",n=be(e,i,r==null?void 0:r.preselectFirstOption),t=(e==null?void 0:e.__typename)===me.SimpleProductView?H.SimpleProduct:H.ComplexProduct,s=e?{name:e.name,sku:e.sku,isBundle:i,addToCartAllowed:e.addToCartAllowed,inStock:e.inStock,shortDescription:e.shortDescription,metaDescription:e.metaDescription,metaKeyword:e.metaKeyword,metaTitle:e.metaTitle,description:e.description,images:Ee(e),prices:Ae(e,i,n),attributes:Se(e),options:_e(e,i),optionUIDs:n,url:e.url,urlKey:e.urlKey,externalId:e.externalId,externalParentId:e.externalParentId,variantSku:e.variantSku,productType:t}:null;return fe(s,((g=(f=(c=(u=k.getConfig())==null?void 0:u.models)==null?void 0:c.ProductDetails)==null?void 0:f.transformer)==null?void 0:g.call(f,e))??((A=(y=(T=(w=k.getConfig())==null?void 0:w.models)==null?void 0:T.ProductDetails)==null?void 0:y.transform)==null?void 0:A.call(y,e)))}function Ee(e){var r,i;return(i=(r=e.images)==null?void 0:r.filter(n=>{var t;return!((t=n.roles)!=null&&t.includes("hide_from_pdp"))}))==null?void 0:i.map(n=>(n.url=n.url.replace(/^https?:/,""),n))}function Se(e){var r,i;return(i=(r=e.attributes)==null?void 0:r.filter(({roles:n})=>(n==null?void 0:n.indexOf("visible_in_pdp"))!==-1))==null?void 0:i.map(({label:n,value:t,name:s})=>{if(s!=null&&s.startsWith("ac_"))try{let a;typeof t=="string"?a=JSON.parse(t):typeof t=="object"&&(a=t);const l=j(a);return{id:s,label:n,value:JSON.stringify(l)}}catch{return{id:s,label:n,value:t.toString().split(",").join(", ")}}return{id:s,label:n,value:t.toString().split(",").join(", ")}})}function j(e){if(Array.isArray(e))return e.map(j);if(e!==null&&typeof e=="object"){const r={};for(const[i,n]of Object.entries(e)){let t=i;i==="validation_rule"?t="validationRule":i==="min_length"?t="minLength":i==="max_length"&&(t="maxLength"),r[t]=j(n)}return r}return e}function _e(e,r){const{options:i,optionUIDs:n}=e;return i==null?void 0:i.map(({id:t,title:s,required:a,multi:l,values:o})=>{var c;const m=(c=o==null?void 0:o[0])==null?void 0:c.__typename;let u=o==null?void 0:o[0].type;return u?u=u.replace("COLOR_HEX","color").replace("TEXT","text").replace("IMAGE","image"):u="dropdown",{id:t,type:u,typename:m,label:s,required:a,multiple:l,items:r?pe(o,n):ke(o,n,u)}})}function pe(e,r){return e==null?void 0:e.filter(({enabled:i})=>typeof i>"u"||i).map(({id:i,title:n,inStock:t,isDefault:s,product:a})=>({id:i,inStock:t,label:n,selected:(r==null?void 0:r.indexOf(i))>-1||s,value:i,product:a}))}function ke(e,r,i){return e==null?void 0:e.map(({id:n,title:t,inStock:s,value:a})=>({id:n,inStock:s,label:t,selected:(r==null?void 0:r.indexOf(n))>-1,value:(i==null?void 0:i.toLowerCase())==="dropdown"?n:a==null?void 0:a.replace(/^https?:/,"")}))}function Ae(e,r,i){var A,B,W,z,J;const{price:n,priceRange:t,options:s,optionUIDs:a=i}=e;let{__typename:l}=e;function o(){var C;const h=n==null?void 0:n.regular.amount.value,P=((C=n==null?void 0:n.final)==null?void 0:C.amount.value)??(n==null?void 0:n.regular.amount.value),d=(n==null?void 0:n.regular.amount.currency)==="NONE"?"USD":n==null?void 0:n.regular.amount.currency;return[h,P,P,d]}function m(){var x,D,O,E,b,U,N,I,v,F,V,L;const h=(x=t==null?void 0:t.minimum)==null?void 0:x.final.amount.value,P=(D=t==null?void 0:t.maximum)==null?void 0:D.final.amount.value;let d;((E=(O=t==null?void 0:t.minimum)==null?void 0:O.regular)==null?void 0:E.amount.value)===((U=(b=t==null?void 0:t.maximum)==null?void 0:b.regular)==null?void 0:U.amount.value)&&(d=(I=(N=t==null?void 0:t.minimum)==null?void 0:N.regular)==null?void 0:I.amount.value);const C=((F=(v=t==null?void 0:t.minimum)==null?void 0:v.final)==null?void 0:F.amount.currency)==="NONE"?"USD":(L=(V=t==null?void 0:t.minimum)==null?void 0:V.final)==null?void 0:L.amount.currency;return[d,h,P,C]}function u(){var O,E,b,U,N,I,v,F,V,L,Y,Z,R;let h=0,P=0;s==null||s.forEach(p=>{var ee;const Q=p==null?void 0:p.values;if(Q&&Array.isArray(Q)){const _=Q.map(S=>{var G,M,te,ne;return(ne=(te=(M=(G=S==null?void 0:S.product)==null?void 0:G.price)==null?void 0:M.regular)==null?void 0:te.amount)==null?void 0:ne.value}).filter(S=>S!==void 0),$=_.length>0?Math.max(..._):0;h+=$}(ee=p==null?void 0:p.values)==null||ee.forEach(_=>{var $,S,G,M;a!=null&&a.includes(_.id)&&(P+=(M=(G=(S=($=_==null?void 0:_.product)==null?void 0:$.price)==null?void 0:S.final)==null?void 0:G.amount)==null?void 0:M.value)})});const d=(O=t==null?void 0:t.minimum)==null?void 0:O.final.amount.value,C=(E=t==null?void 0:t.maximum)==null?void 0:E.final.amount.value;let x;((U=(b=t==null?void 0:t.minimum)==null?void 0:b.regular)==null?void 0:U.amount.value)===((I=(N=t==null?void 0:t.maximum)==null?void 0:N.regular)==null?void 0:I.amount.value)&&(x=(F=(v=t==null?void 0:t.minimum)==null?void 0:v.regular)==null?void 0:F.amount.value);const D=((L=(V=t==null?void 0:t.minimum)==null?void 0:V.final)==null?void 0:L.amount.currency)==="NONE"?"USD":(Z=(Y=t==null?void 0:t.minimum)==null?void 0:Y.final)==null?void 0:Z.amount.currency;return r&&(a==null?void 0:a.length)<1?[x,d,C,D]:h===((R=t==null?void 0:t.maximum)==null?void 0:R.regular.amount.value)?[P,P,P,D]:[x,d,C,D]}const[c,f,g,w]=l==="SimpleProductView"?o():r?u():m(),T=l==="SimpleProductView"?(A=n==null?void 0:n.roles)==null?void 0:A.includes("visible"):((W=(B=t==null?void 0:t.maximum)==null?void 0:B.roles)==null?void 0:W.includes("visible"))&&((J=(z=t==null?void 0:t.minimum)==null?void 0:z.roles)==null?void 0:J.includes("visible"));function y(h){return!h||!Array.isArray(h)?[]:h.map(P=>{var d,C,x,D,O,E;return{tier:{amount:(C=(d=P.tier)==null?void 0:d.amount)==null?void 0:C.value,currency:((D=(x=P.tier)==null?void 0:x.amount)==null?void 0:D.currency)||w},quantity:((O=P.quantity[0])==null?void 0:O.gte)||((E=P.quantity[0])==null?void 0:E.lt)||0}}).sort((P,d)=>P.quantity-d.quantity)}return g&&f===g?{regular:{amount:c,currency:w,variant:c&&f!==c?"strikethrough":"default"},final:{amount:g,currency:w,variant:"default"},tiers:y(n==null?void 0:n.tiers),visible:T}:{final:{minimumAmount:f,maximumAmount:g,currency:w},tiers:y(n==null?void 0:n.tiers),visible:T}}function be(e,r,i){var n;return r?((n=e==null?void 0:e.options)==null?void 0:n.map(({values:s})=>{var o;const a=((o=s==null?void 0:s.find(({isDefault:m})=>m))==null?void 0:o.id)??null,l=i?s[0].id:null;return a||l})).filter(s=>s!==null):e==null?void 0:e.optionUIDs}const X=new Pe({init:async e=>{var l,o,m;const r=(o=(l=e==null?void 0:e.models)==null?void 0:l.ProductDetails)==null?void 0:o.initialData,n=((m=(ae()||{}).optionsUIDs)==null?void 0:m.split(","))||(r==null?void 0:r.optionsUIDs),t=ge(1),a={...{defaultLocale:"en-US",globalLocale:"en-US",persistURLParams:!1,acdl:!1,optionsUIDs:n},...e};if(X.config.setConfig({...a}),a!=null&&a.sku){const u=r?K(r):await ie(a.sku,{preselectFirstOption:a.preselectFirstOption});q.emit("pdp/data",u,{scope:a.scope});const c={sku:a.sku,quantity:t,optionsUIDs:u==null?void 0:u.optionUIDs};ye(()=>({...c}),{scope:a.scope}),he(()=>{var f;return u!=null&&u.options?u.options.length===((f=u==null?void 0:u.optionUIDs)==null?void 0:f.length):!0},{scope:a.scope}),a.acdl&&u&&Oe(u)}},listeners:()=>[q.on("locale",async()=>{const{sku:e,scope:r}=X.config.getConfig();if(e){const i=await ie(e);q.emit("pdp/data",i,{scope:r})}})]}),k=X.config,{setEndpoint:Xe,setFetchGraphQlHeader:Ke,removeFetchGraphQlHeader:Be,setFetchGraphQlHeaders:We,getFetchGraphQlHeader:ze,fetchGraphQl:ce,getConfig:Je}=new de().getMethods(),Ue=`
4
4
  query GET_PRODUCT_DATA($skus: [String]) {
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{events as o}from"@dropins/tools/event-bus.js";const n=async({scope:a}={})=>{const e=o.lastPayload("pdp/data",{scope:a});return e?Promise.resolve(e):new Promise(r=>{const t=o.on("pdp/data",s=>{r(s),t==null||t.off()},{eager:!0,scope:a})})};export{n as g};
4
4
  //# sourceMappingURL=getFetchedProductData.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{events as c}from"@dropins/tools/event-bus.js";import"@dropins/tools/lib.js";const v=(a,e)=>{const r=u({scope:e==null?void 0:e.scope}),l=a(r);c.emit("pdp/values",{...l},{scope:e==null?void 0:e.scope})},u=({scope:a}={})=>c.lastPayload("pdp/values",{scope:a})??null,g=(a,e)=>{const r=d({scope:e==null?void 0:e.scope}),l=a(r);c.emit("pdp/valid",l,{scope:e==null?void 0:e.scope})},d=({scope:a}={})=>c.lastPayload("pdp/valid",{scope:a})??null;export{g as a,u as g,d as i,v as s};
4
4
  //# sourceMappingURL=isProductConfigurationValid.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as m,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as s,useMemo as P,useEffect as A}from"@dropins/tools/preact-compat.js";import{classes as L,Slot as _}from"@dropins/tools/lib.js";import{events as u}from"@dropins/tools/event-bus.js";import{i as j,t as C}from"../chunks/date.js";import{g as I}from"../chunks/getFetchedProductData.js";import{useText as M}from"@dropins/tools/i18n.js";import{c as N}from"../chunks/fetchProductData.js";import"../fragments.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/isProductConfigurationValid.js";const T=({initialData:f=null,scope:i,children:y,slots:e,...c})=>{var l;const p=M("PDP.Product.Details.label").label,{globalLocale:b="en-US"}=N.getConfig(),[d,g]=s(b),[r,D]=s(f),h=P(()=>({data:r}),[r]);return A(()=>{const t=u.on("pdp/data",D,{scope:i}),o=u.on("locale",g);return()=>{t==null||t.off(),o==null||o.off()}},[i]),r?m("div",{...c,className:L(["pdp-attributes",c.className]),children:[p,e!=null&&e.Attributes?n(_,{name:"Attributes",slot:e==null?void 0:e.Attributes,context:{...h}}):n("ul",{children:(l=r==null?void 0:r.attributes)==null?void 0:l.map(({id:t,label:o,value:a},S)=>{if(t!=null&&t.startsWith("ac_")||!a)return null;const x=j(a)?C(a,d):a.toString();return m("li",{children:[o,": ",n("span",{dangerouslySetInnerHTML:{__html:x}})]},`attribute-${S}`)})})]}):null};T.getInitialData=I;export{T as ProductAttributes,T as default};
4
4
  //# sourceMappingURL=ProductAttributes.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as i}from"@dropins/tools/preact-jsx-runtime.js";import{useState as a,useEffect as c}from"@dropins/tools/preact-compat.js";import{classes as m}from"@dropins/tools/lib.js";import{events as l}from"@dropins/tools/event-bus.js";import{g as f}from"../chunks/getFetchedProductData.js";const u=({initialData:s=null,scope:r,children:d,...o})=>{const[t,n]=a(s);return c(()=>{const e=l.on("pdp/data",n,{scope:r});return()=>{e==null||e.off()}},[r]),t?i("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""},...o,className:m(["pdp-description",o.className])}):null};u.getInitialData=f;export{u as ProductDescription,u as default};
4
4
  //# sourceMappingURL=ProductDescription.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as e,jsxs as k,Fragment as Ft}from"@dropins/tools/preact-jsx-runtime.js";import{useState as J,Children as Lt,useEffect as et,useCallback as nt,useMemo as Jt}from"@dropins/tools/preact-compat.js";import{VComponent as u,classes as v,Slot as A,toLanguageTag as Et}from"@dropins/tools/lib.js";import{Incrementer as Zt,Image as Mt,Button as qt,Icon as st,Breadcrumbs as At}from"@dropins/tools/components.js";/* empty css */import{Z as Kt,C as rt,O as $t}from"../chunks/Zoom.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{useText as L}from"@dropins/tools/i18n.js";import{P as Gt}from"../chunks/PriceRange.js";import{S as Wt}from"../chunks/Swatches.js";import"@dropins/tools/preact.js";import{G as Xt}from"../chunks/GiftCardOptions2.js";import{c as Tt,k as Yt,j as Pt,p as ft,l as Rt,t as gt}from"../chunks/fetchProductData.js";import{events as pt}from"@dropins/tools/event-bus.js";import{i as Ct,t as te}from"../chunks/date.js";import"../fragments.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/isProductConfigurationValid.js";const ee=({title:h,breadcrumbs:N,galleryContent:O,infoContent:I,productContent:D,sku:w,outOfStock:U,shortDescription:E,description:p,attributes:ct,images:c,options:a,giftCardOptions:s,price:f,specialPrice:H,className:dt,children:yt,quantity:M,actions:g,carouselConfig:n,zoomType:lt="overlay",closeButton:it=!0,...at})=>{var Z,G,_,K,R,C,tt,$,T;const x=L("PDP.Product.RegularPrice.label").label,ht=L("PDP.Product.SpecialPrice.label").label,ot=L("PDP.Product.OutOfStock.label").label,B=L("PDP.Product.Image.label").label,[t,q]=J(null),b=c!=null&&c.length?c.map((F,y)=>{var W;const j=((W=h==null?void 0:h.props)==null?void 0:W.children)&&(B==null?void 0:B.replace("{product}",h.props.children.toString()).replace("{key}",String(y+1)).replace("{total}",String(c.length)));return lt==="zoom"?e(Kt,{closeButton:it,children:e(u,{node:F,loading:y===0?"eager":"lazy",alt:j},y)}):e(u,{node:F,loading:y===0?"eager":"lazy",alt:j,onClick:()=>q(y)},y)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0}),Q=(Z=n==null?void 0:n.thumbnails)!=null&&Z.length?n.thumbnails.map((F,y)=>{var j;return e(u,{node:F,loading:(n==null?void 0:n.thumbnailsLoadingMode)||"lazy",alt:((j=h==null?void 0:h.props)==null?void 0:j.children)&&(B==null?void 0:B.replace("{product}",h.props.children.toString()).replace("{key}",String(y+1)).replace("{total}",String(c.length)))},y)}):e("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product__images__placeholder","aria-hidden":!0});return k("div",{...at,className:v(["pdp-product",dt]),children:[N&&e(u,{node:N,className:"pdp-product__breadcrumbs"}),k("div",{className:"pdp-product__column-container pdp-product__gallery-column",children:[e("div",{className:"pdp-product__column-body",children:(G=n==null?void 0:n.controls)!=null&&G.desktop?e(rt,{className:"pdp-product__overlay__carousel",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?n.controls.desktop:"dots",arrowsOnMainImage:n==null?void 0:n.arrowsOnMainImage,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,peak:((_=n==null?void 0:n.thumbnails)==null?void 0:_.length)>1&&((K=n==null?void 0:n.peak)==null?void 0:K.desktop)||!1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"100%",defaultIndex:t||0,thumbnails:Q,children:b}):e(ne,{className:"pdp-product__images",gap:"small",children:b})}),O&&e(u,{node:O,className:"pdp-product__gallery-content"})]}),k("div",{className:"pdp-product__column-container pdp-product__content-column",children:[k("div",{className:"pdp-product__column-body",children:[k("div",{className:"pdp-product__header",children:[h&&e(u,{node:h,className:"pdp-product__title"}),w&&e(u,{node:w,className:"pdp-product__sku"})]}),k("div",{className:"pdp-product__prices",children:[H&&e(u,{node:H,className:v(["pdp-product__price-special","pdp-product__price"]),"aria-label":ht,role:"text"}),f&&e(u,{node:f,className:v(["pdp-product__price-regular","pdp-product__price--grey"]),"aria-label":x,role:"text"})]}),(R=n==null?void 0:n.controls)!=null&&R.mobile&&((C=n==null?void 0:n.controls)==null?void 0:C.mobile)==="thumbnailsRow"?e(rt,{className:"pdp-product__images pdp-product__images--carousel pdp-product__images--carousel--thumbnails",width:"100%",height:"auto",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"thumbnailsRow":null,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,peak:((tt=n==null?void 0:n.thumbnails)==null?void 0:tt.length)>1&&(($=n==null?void 0:n.peak)==null?void 0:$.mobile)||!1,gap:(n==null?void 0:n.gap)||null,thumbnails:Q,children:b}):e(rt,{className:"pdp-product__images pdp-product__images--carousel",peak:((T=n==null?void 0:n.peak)==null?void 0:T.mobile)&&(c==null?void 0:c.length)>1,gap:(n==null?void 0:n.gap)||null,width:"100%",height:"auto",arrows:(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"dots":null,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,children:b}),k("div",{className:v(["pdp-product__actions",["pdp-product__actions--out-of-stock",U]]),children:[U&&e("div",{className:"pdp-product__out-of-stock__text",children:ot}),a&&e(u,{node:a,className:v(["pdp-product__options"])}),s&&e(u,{node:s,className:v(["pdp-product__gift-card-options"])}),M&&e("div",{className:"pdp-product__quantity",children:e(u,{node:M})}),g&&e(u,{node:g,className:v(["pdp-product__buttons"])})]}),E&&e(u,{node:E,className:v(["pdp-product__short_description"])}),p&&e(u,{node:p,className:v(["pdp-product__description"])}),ct?e("div",{className:"pdp-product__attributes",children:ct}):null]}),I&&e(u,{node:I,className:"pdp-product__info-content"})]}),D&&e(u,{node:D,className:"pdp-product__content"}),t===null?null:e($t,{className:"pdp-product__overlay",onClose:()=>q(null),centered:!0,children:e(rt,{className:"pdp-product__overlay__carousel",arrows:(c==null?void 0:c.length)>1,width:"100%",height:"100%",defaultIndex:t||0,loop:(n==null?void 0:n.loopable)&&(c==null?void 0:c.length)>1,controls:(c==null?void 0:c.length)>1?"dots":null,isZoomed:!0,children:b})})]})},ne=({children:h,gap:N=null,className:O,style:I,...D})=>{const w=Lt.count(h);return e("div",{...D,className:v(["pdp-gallery-grid",O]),style:{"--gap":N?`var(--spacing-${N})`:"0px",...I},children:Lt.map(h,(U,E)=>e("div",{className:"pdp-gallery-grid__item",children:e(u,{node:U,loading:E===0?"eager":"lazy"},U.props.src)},w+E))})},re=({sku:h,hideSku:N,hideQuantity:O,hideShortDescription:I,hideDescription:D,hideAttributes:w,hideURLParams:U,hideSelectedOptionValue:E,slots:p,children:ct,initialData:c,carousel:a,optionsConfig:s,useACDL:f,onAddToCart:H,zoomType:dt,closeButton:yt=!0,disableDropdownPreselection:M,...g})=>{var W,Ot,St,vt,Nt,It,Dt,wt,Vt,kt,Ut;const n=L("PDP.Product.AddToCart.label").label,lt=L("PDP.Product.Incrementer.label").label,it=L("PDP.Product.Details.label").label,at=L("PDP.Swatches.ChooseOption.label").label,[x,ht]=J(Tt.getConfig().defaultLocale||"en-US"),[ot,B]=J(),[t=null,q]=J(c),[b,Q]=J(()=>{const r=Yt(1),d={sku:h,quantity:r};return t!=null&&t.optionUIDs&&(d.optionsUIDs=t.optionUIDs),d}),[Z,G]=J(()=>{var r,d;return!(t!=null&&t.options&&((r=t==null?void 0:t.options)==null?void 0:r.length)>0&&((d=t==null?void 0:t.optionUIDs)==null?void 0:d.length)!==(t==null?void 0:t.options.length))}),_={data:t,values:b,valid:Z};function K(r){return r==null?void 0:r.some(d=>(d==null?void 0:d.typename)==="ProductViewOptionValueProduct")}et(()=>{const r=pt.on("pdp/data",l=>{l&&(q(l),Q(i=>({...i,sku:l.sku,optionsUIDs:l.optionUIDs})))}),d=pt.on("pdp/setValues",l=>{Q(i=>({...i,...l}))});return()=>{d==null||d.off(),r==null||r.off()}},[]),et(()=>{const r=pt.on("locale",d=>{d!==x&&(ht(d),Pt(h,{preselectFirstOption:!M,anchors:s==null?void 0:s.anchorOptions}).then(q))});return()=>{r==null||r.off()}},[M,x,s==null?void 0:s.anchorOptions,h]),et(()=>{f&&c&&Object.keys(c).length>0&&ft(c)},[c]);const R=nt(r=>{Q(d=>({...d,...r}))},[]);et(()=>{pt.emit("pdp/values",b)},[JSON.stringify(b)]);const C=nt(async r=>{var i,o;let d=Object.entries(r).filter(([m,P])=>P.label!==at).map(([m,P])=>r[m].value).filter(m=>m!==void 0);!U&&(t!=null&&t.options)&&!K(t.options)&&Rt({optionsUIDs:d.join(",")}),R({optionsUIDs:d}),G((d==null?void 0:d.length)===((i=t==null?void 0:t.options)==null?void 0:i.length));const l=await Pt(h,{anchors:s==null?void 0:s.anchorOptions,isBundle:t==null?void 0:t.isBundle,optionsUIDs:d,preselectFirstOption:!M});q(l),(o=s==null?void 0:s.anchorOptions)!=null&&o.length&&tt(l,d)},[h]),tt=nt((r,d)=>{var o;const l=(r==null?void 0:r.optionUIDs)??[];d.every(m=>l.includes(m))||(B(r==null?void 0:r.options),R({optionsUIDs:l}),G((l==null?void 0:l.length)===((o=r==null?void 0:r.options)==null?void 0:o.length)))},[h]),$=nt(r=>{Object.keys(r).length!==0&&G(!1)},[]),T=Jt(()=>{var r;return(r=t==null?void 0:t.attributes)==null?void 0:r.map(({label:d,value:l,id:i},o)=>{if(i==="ac_giftcard")return"";const m=Ct(l)?te(l,x):l.toString();return k("li",{children:[d,": ",e("span",{dangerouslySetInnerHTML:{__html:m}})]},o)})},[t==null?void 0:t.attributes,x]),F=!O&&(t!=null&&t.inStock)?e(A,{name:"Quantity",slot:p==null?void 0:p.Quantity,context:{..._},children:e(Zt,{name:"quantity",defaultValue:b.quantity.toString(),value:b.quantity.toString(),min:1,"aria-label":lt,className:"pdp-product__quantity",onValue:r=>{const d=Number(r);R({quantity:d}),!U&&(t!=null&&t.options)&&(K(t.options)||Rt({quantity:d}))}},"quantity")}):void 0,y=()=>{if(t!=null&&t.options)return e(A,{name:"Options",slot:p==null?void 0:p.Options,context:{..._},children:e(Wt,{selectedUIDs:b.optionsUIDs,options:t.options,defaultOptions:b.optionsUIDs,selectionsToUpdate:ot,hideSelectedValue:E,disablePreselections:M,onValues:C,onErrors:$})})},j=()=>{if(t!=null&&t.attributes){const r=t.attributes.filter(d=>d.id==="ac_giftcard");if(r.length>0){const l=r.map((i,o)=>{var m;try{const P=JSON.parse(i.value),mt=b.enteredOptions||[],jt=((m=P.options)==null?void 0:m.map(S=>{const z=mt.find(X=>X.uid===S.uid);return{id:S.uid,value:(z==null?void 0:z.value)||""}}))||[];return e(Xt,{options:P.options||[],optionValues:jt,onOptionChange:(S,z)=>{var xt;const X=b.enteredOptions||[],zt=X.findIndex(V=>V.uid===S);let ut;if(zt!==-1?ut=X.map(V=>V.uid===S?{...V,value:z}:V):ut=[...X,{uid:S,value:z}],R({enteredOptions:ut}),t){const V={...t},Ht=((xt=V.attributes)==null?void 0:xt.map(Y=>{var Bt;if(Y.id==="ac_giftcard")try{const _t=JSON.parse(Y.value),Qt=((Bt=_t.options)==null?void 0:Bt.map(bt=>bt.uid===S?{...bt,value:z}:bt))||[];return{...Y,value:JSON.stringify({..._t,options:Qt})}}catch{return Y}return Y}))||[];V.attributes=Ht,q(V)}},onValidationChange:S=>{S||$({giftCard:"Invalid gift card data"}),G(S)},className:"pdp-product__gift-card-options"},`giftcard-${o}`)}catch(P){return console.warn("Invalid gift card data format:",P),null}}).filter(i=>i!==null);return l.length>0?e("div",{className:"pdp-product__gift-card-options-container",children:l}):void 0}}};return e("div",{...g,children:e(ee,{title:e(A,{name:"Title",slot:p==null?void 0:p.Title,context:{..._},children:t==null?void 0:t.name}),sku:N?void 0:e(A,{name:"SKU",slot:p==null?void 0:p.SKU,context:{..._},children:t==null?void 0:t.sku}),options:y(),giftCardOptions:j(),breadcrumbs:(p==null?void 0:p.Breadcrumbs)&&e(A,{name:"Breadcrumbs",slot:p==null?void 0:p.Breadcrumbs,context:{..._,setSeparator(r){this._registerMethod((...d)=>{const l=r(...d),i=l&&e(st,{source:l});this._setProps(o=>({...o,separator:i,children:[e(At,{separator:i,categories:o.categories})]}))})},appendLink(r){this._registerMethod((...d)=>{const{text:l,...i}=r(...d),o=e("a",{...i,children:l});this._setProps(m=>{const P=[...m.categories||[],o];return{...m,categories:P,children:[e(At,{separator:m.separator,categories:P})]}})})},appendHTMLElement(r){this._registerMethod((...d)=>{const l=r(...d),i=this._htmlElementToVNode(l);this._setProps(o=>{const m=[...o.categories||[],i];return{...o,categories:m,children:[e(At,{separator:o.separator,categories:m})]}})})}}}),quantity:F,actions:e(A,{name:"Actions",slot:p==null?void 0:p.Actions,context:{..._,appendButton(r){this._registerMethod((...d)=>{const l=r(...d);if(!l)return;const{text:i,icon:o,...m}=l,P=e(qt,{type:"button",...m,icon:o&&e(st,{source:o}),children:i});this._setProps(mt=>({children:[...mt.children||[],P]}))})}},children:!(p!=null&&p.Actions)&&e(qt,{size:"medium",type:"submit",icon:e(st,{source:"Cart"}),disabled:!(t!=null&&t.inStock)||!Z,"aria-label":n,onClick:()=>H==null?void 0:H(b),children:n})}),shortDescription:I?void 0:e(A,{name:"ShortDescription",slot:p==null?void 0:p.ShortDescription,context:{..._},children:e("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""}})}),description:D?void 0:e(A,{name:"Description",slot:p==null?void 0:p.Description,context:{..._},children:e("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.description)??""}})}),images:((W=t==null?void 0:t.images)==null?void 0:W.map(({label:r,url:d})=>{var l,i;return e(Mt,{title:r,alt:r,src:d,width:((l=a==null?void 0:a.imageParams)==null?void 0:l.width)??960,height:((i=a==null?void 0:a.imageParams)==null?void 0:i.height)??1191,params:(a==null?void 0:a.imageParams)??{width:960}},d)}))??[],specialPrice:(Ot=t==null?void 0:t.prices)!=null&&Ot.visible?e(A,{name:"SpecialPrice",slot:p==null?void 0:p.SpecialPrice,context:{..._},children:e(Gt,{...(St=t.prices)==null?void 0:St.final,locale:Et(x)})}):void 0,price:(vt=t==null?void 0:t.prices)!=null&&vt.visible&&((Nt=t==null?void 0:t.prices)!=null&&Nt.regular)&&((Dt=(It=t==null?void 0:t.prices)==null?void 0:It.final)==null?void 0:Dt.amount)!==((Vt=(wt=t==null?void 0:t.prices)==null?void 0:wt.regular)==null?void 0:Vt.amount)?e(A,{name:"RegularPrice",slot:p==null?void 0:p.RegularPrice,context:{..._},children:e(Gt,{...(kt=t.prices)==null?void 0:kt.regular,locale:Et(x)})}):void 0,zoomType:dt,closeButton:yt,carouselConfig:{...a,thumbnails:a&&Object.keys(a).length?((Ut=t==null?void 0:t.images)==null?void 0:Ut.map(({label:r,url:d})=>{var l,i;return e(Mt,{title:r,alt:r,src:d,width:((l=a==null?void 0:a.thumbnailParams)==null?void 0:l.width)??200,height:((i=a==null?void 0:a.thumbnailParams)==null?void 0:i.height)??248,params:(a==null?void 0:a.thumbnailParams)??{width:200}},d)}))??[]:[]},outOfStock:!(t!=null&&t.inStock),attributes:w?void 0:e(A,{name:"Attributes",slot:p==null?void 0:p.Attributes,context:{..._},children:T!=null&&T.length?k(Ft,{children:[it,e("ul",{children:T})]}):null}),galleryContent:(p==null?void 0:p.GalleryContent)&&e(A,{name:"GalleryContent",slot:p.GalleryContent,context:{..._}}),infoContent:(p==null?void 0:p.InfoContent)&&e(A,{name:"InfoContent",slot:p.InfoContent,context:{..._}}),productContent:(p==null?void 0:p.Content)&&e(A,{name:"Content",slot:p.Content,context:{..._}})})})};re.getInitialData=async function({sku:h,disableDropdownPreselection:N=!1,optionsConfig:O}){var D,w;const I=(w=(D=Tt.getConfig().models)==null?void 0:D.ProductDetails)==null?void 0:w.initialData;return I?gt(I):Pt(h,{preselectFirstOption:!N,anchors:O==null?void 0:O.anchorOptions})};export{re as ProductDetails,re as default};
4
4
  //# sourceMappingURL=ProductDetails.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as A,jsxs as K}from"@dropins/tools/preact-jsx-runtime.js";import{useState as R,useEffect as U,useMemo as w}from"@dropins/tools/preact-compat.js";import{Slot as Z}from"@dropins/tools/lib.js";import{Image as j}from"@dropins/tools/components.js";import{events as V}from"@dropins/tools/event-bus.js";import{g as W}from"../chunks/getFetchedProductData.js";import{Z as X,C as v,O as Y}from"../chunks/Zoom.js";/* empty css */import"@dropins/tools/preact-hooks.js";/* empty css */import{useText as $}from"@dropins/tools/i18n.js";import"@dropins/tools/preact.js";const s=({initialData:G=null,scope:I,controls:k="dots",loop:C=!0,peak:H=!1,gap:N=null,arrows:Q=!0,arrowsOnMainImage:F=!1,zoom:h=!1,imageParams:t,thumbnailParams:o,children:L,slots:l,...q})=>{var y,T,_,S,D,E;const r=$("PDP.Product.Image.label").label,[e,z]=R(G),[f,B]=R(null);U(()=>{const n=V.on("pdp/data",z,{scope:I});return()=>{n==null||n.off()}},[I]);const g=w(()=>({data:e}),[e]),x=w(()=>{var n;return((n=e==null?void 0:e.images)==null?void 0:n.map(({label:i,url:c},p)=>{const d=({...u})=>{var O;const M={title:i,src:c,alt:r==null?void 0:r.replace("{product}",i).replace("{key}",String(p+1)).replace("{total}",String((O=e==null?void 0:e.images)==null?void 0:O.length)),width:(t==null?void 0:t.width)??960,height:(t==null?void 0:t.height)??1191,params:t??{width:960},loading:p===0?"eager":"lazy",...u};return A(Z,{name:"CarouselMainImage",slot:l==null?void 0:l.CarouselMainImage,context:{...g,defaultImageProps:M},children:A(j,{...M})})};return h?A(X,{closeButton:typeof h=="object"?h.closeButton:!1,children:A(d,{})},c):A(d,{onClick:()=>B(p)},c)}))??A("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product-gallery__images__placeholder",width:(t==null?void 0:t.width)??960,height:(t==null?void 0:t.height)??1191,"aria-hidden":!0},"pleaceholder")},[r,e==null?void 0:e.images,t,h,g,l==null?void 0:l.CarouselMainImage]),J=w(()=>{var n;return((n=e==null?void 0:e.images)==null?void 0:n.map(({label:i,url:c},p)=>{var u;const d={title:i,src:c,alt:r==null?void 0:r.replace("{product}",i).replace("{key}",String(p+1)).replace("{total}",String((u=e==null?void 0:e.images)==null?void 0:u.length)),width:(o==null?void 0:o.width)??200,height:(o==null?void 0:o.height)??248,params:o??{width:200},loading:"lazy"};return A(Z,{name:"CarouselThumbnail",slotTag:"span",contentTag:"span",slot:l==null?void 0:l.CarouselThumbnail,context:{...g,defaultImageProps:d},children:A(j,{...d})},c)}))??A("img",{src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",className:"pdp-product-gallery__thumbnail__placeholder",width:(o==null?void 0:o.width)??200,height:(o==null?void 0:o.height)??248,"aria-hidden":!0},"pleaceholder")},[r,e==null?void 0:e.images,o,g,l==null?void 0:l.CarouselThumbnail]);return e?K("div",{...q,children:[A(v,{arrows:!!((y=e==null?void 0:e.images)!=null&&y.length)&&Q,arrowsOnMainImage:F,controls:(T=e==null?void 0:e.images)!=null&&T.length?k:void 0,loop:C&&!!((_=e.images)!=null&&_.length),peak:!!((S=e==null?void 0:e.images)!=null&&S.length)&&H,gap:N,defaultIndex:f||0,thumbnails:J,children:x}),f===null?null:A(Y,{onClose:()=>B(null),centered:!0,children:A(v,{arrows:!!((D=e==null?void 0:e.images)!=null&&D.length),width:"100%",height:"100%",defaultIndex:f,loop:C&&!!((E=e.images)!=null&&E.length),controls:"dots",isZoomed:!0,children:x})})]}):null};s.getInitialData=W;export{s as ProductGallery,s as default};
4
4
  //# sourceMappingURL=ProductGallery.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as l}from"@dropins/tools/preact-jsx-runtime.js";import{useState as m,useEffect as N}from"@dropins/tools/preact-compat.js";import{classes as x}from"@dropins/tools/lib.js";import{events as f}from"@dropins/tools/event-bus.js";import{a as y,s as D}from"../chunks/isProductConfigurationValid.js";import{g as P}from"../chunks/getFetchedProductData.js";import{G as v}from"../chunks/GiftCardOptions2.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";const G=({initialData:g=null,scope:p,children:I,...s})=>{var d;const[a,O]=m(g),[c,h]=m({sku:"",quantity:1,enteredOptions:[]});N(()=>{const t=f.on("pdp/data",O,{scope:p}),n=f.on("pdp/values",h,{eager:!0});return()=>{t==null||t.off(),n==null||n.off()}},[p]);const C=(t,n)=>{const r=c.enteredOptions||[],i=r.findIndex(e=>e.uid===t);let o;i!==-1?o=r.map(e=>e.uid===t?{...e,value:n}:e):o=[...r,{uid:t,value:n}],D(e=>({...e,enteredOptions:o}))},V=t=>{y(()=>t)};return a?l("div",{...s,className:x(["pdp-gift-card-options",s.className]),children:(d=a==null?void 0:a.attributes)==null?void 0:d.map(({id:t,value:n},r)=>{var o,e;if(t!=="ac_giftcard")return null;let i={options:[]};try{i=JSON.parse(n)}catch{}return l(v,{options:i.options,className:s.className,optionValues:(c.enteredOptions||[]).map(u=>({id:u.uid,value:u.value})),currency:(e=(o=a.prices)==null?void 0:o.final)==null?void 0:e.currency,onOptionChange:C,onValidationChange:V},`giftcard-${r}`)})}):null};G.getInitialData=P;export{G as ProductGiftCardOptions,G as default};
4
4
  //# sourceMappingURL=ProductGiftCardOptions.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as p,jsx as e,Fragment as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as c,useEffect as u}from"@dropins/tools/preact-compat.js";import{classes as f,VComponent as l}from"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{events as h}from"@dropins/tools/event-bus.js";import{g}from"../chunks/getFetchedProductData.js";const _=({className:a,title:r,sku:o,hideSku:s=!1,children:i,...t})=>p("div",{...t,className:f(["pdp-header",a]),children:[e("div",{className:"pdp-header__title",children:e(l,{node:r})}),!s&&e("div",{className:"pdp-header__sku",children:e(l,{node:o})})]}),k=({initialData:a=null,scope:r,hideSku:o=!1,children:s,...i})=>{const[t,m]=c(a);return u(()=>{const d=h.on("pdp/data",m,{scope:r});return()=>{d==null||d.off()}},[r]),t?e(_,{...i,title:e(n,{children:t.name}),sku:e(n,{children:t.sku}),hideSku:o}):null};k.getInitialData=g;export{k as ProductHeader,k as default};
4
4
  //# sourceMappingURL=ProductHeader.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as d}from"@dropins/tools/preact-jsx-runtime.js";import{useState as h,useEffect as z,useCallback as j}from"@dropins/tools/preact-compat.js";import{Slot as C}from"@dropins/tools/lib.js";import{events as S}from"@dropins/tools/event-bus.js";import"@dropins/tools/components.js";/* empty css */import{S as A}from"../chunks/Swatches.js";import"@dropins/tools/preact.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{c as v,l as G,j as H,p as J}from"../chunks/fetchProductData.js";import{g as O,s as b,a as y}from"../chunks/isProductConfigurationValid.js";import{g as K}from"../chunks/getFetchedProductData.js";import"@dropins/tools/i18n.js";import"../fragments.js";import"@dropins/tools/fetch-graphql.js";const Q=({initialData:s={data:null,optionsUIDs:[]},scope:i,hideSelectedValue:l=!1,slots:n,onValues:u,onErrors:m,children:V,...B})=>{var I;const[t,T]=h(s.data),[p,F]=h(s.optionsUIDs),[M,L]=h();z(()=>{const o=S.on("pdp/data",T,{scope:i}),c=S.on("pdp/values",({optionsUIDs:f})=>{f&&F(f)},{scope:i});return()=>{o==null||o.off(),c==null||c.off()}},[]);const N=j(async o=>{var U,w,D,k;if(!(t!=null&&t.sku))return;const{persistURLParams:c,anchors:f,acdl:q}=v.getConfig()??{};let a=Object.keys(o).map(r=>o[r].value).filter(r=>r!==void 0);c&&!(t!=null&&t.isBundle)&&G({optionsUIDs:a.join(",")}),((w=(U=O({scope:i}))==null?void 0:U.optionsUIDs)==null?void 0:w.join("|"))!==(a==null?void 0:a.join("|"))&&b(r=>({...r,optionsUIDs:a}),{scope:i}),u==null||u(a);const e=await H(t.sku,{optionsUIDs:a??[],isBundle:t==null?void 0:t.isBundle,anchors:f});S.emit("pdp/data",e,{scope:i});let P=(a==null?void 0:a.length)===((D=e==null?void 0:e.options)==null?void 0:D.length);if(f!=null&&f.length){const r=(e==null?void 0:e.optionUIDs)??[];a.every(g=>r.includes(g))||(L(e==null?void 0:e.options),b(g=>({...g,optionsUIDs:r}),{scope:i}),P=(r==null?void 0:r.length)===((k=e==null?void 0:e.options)==null?void 0:k.length))}y(()=>P,{scope:i}),q&&e&&(e==null?void 0:e.variantSku)!==t.sku&&J(e)},[t==null?void 0:t.isBundle,t==null?void 0:t.sku,u,i]),R=j(o=>{Object.keys(o).length!==0&&(y(()=>!1,{scope:i}),m==null||m(o))},[m,i]);return!t||!t.options?null:d(C,{name:"Swatches",slot:n==null?void 0:n.Swatches,context:{data:t,optionsUIDs:p},children:d(A,{...B,options:t.options,selectedUIDs:p,defaultOptions:p,selectionsToUpdate:M,hideSelectedValue:l,disablePreselections:!((I=v.getConfig())!=null&&I.preselectFirstOption),onValues:N,onErrors:R,imageSwatchNode:n!=null&&n.SwatchImage?({imageSwatchContext:o,...c})=>d(C,{name:"SwatchImage",slot:n==null?void 0:n.SwatchImage,slotTag:"span",contentTag:"span",context:{data:t,optionsUIDs:p,defaultImageProps:c,imageSwatchContext:o}}):void 0})})};Q.getInitialData=async function(s){var n;const i=await K({scope:s==null?void 0:s.scope}),l=((n=O({scope:s==null?void 0:s.scope}))==null?void 0:n.optionsUIDs)??[];return{data:i,optionsUIDs:l}};export{Q as ProductOptions,Q as default};
4
4
  //# sourceMappingURL=ProductOptions.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsxs as j,jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{useState as T,useEffect as C}from"@dropins/tools/preact-compat.js";import{classes as g,VComponent as x,toLanguageTag as v}from"@dropins/tools/lib.js";import{Price as A}from"@dropins/tools/components.js";/* empty css */import{P as q}from"../chunks/PriceRange.js";import"@dropins/tools/preact.js";import{useText as b}from"@dropins/tools/i18n.js";import"@dropins/tools/preact-hooks.js";/* empty css */import{events as R}from"@dropins/tools/event-bus.js";import{g as B}from"../chunks/getFetchedProductData.js";import{c as F}from"../chunks/fetchProductData.js";import"../fragments.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/isProductConfigurationValid.js";const I=({className:s,price:i,specialPrice:c,tiers:a,children:p,...e})=>{const n=b("PDP.Product.RegularPrice.label").label,r=b("PDP.Product.SpecialPrice.label").label,o=b("PDP.Product.TierPrice.label").label;return j("div",{...e,className:g(["pdp-price",s]),children:[c&&t(x,{node:c,className:g(["pdp-price__amount-special","pdp-price__amount"]),"aria-label":r,role:"text"}),i&&t(x,{node:i,className:g(["pdp-price__amount-regular","pdp-price__amount--grey"]),"aria-label":n,role:"text"}),a&&t(x,{node:a,className:g(["pdp-price__tiers"]),"aria-label":o,role:"text"})]})},M=({locale:s,tiers:i,regularPrice:c,...a})=>{const p=b("PDP.Product.TierPricing.label").label;return!i||i.length===0?null:t("div",{className:"pdp-price-tiers",...a,children:i.map((e,n)=>{var m,u;const r=((m=e==null?void 0:e.tier)==null?void 0:m.amount)??0,o=(e==null?void 0:e.quantity)??0,d=((u=e==null?void 0:e.tier)==null?void 0:u.currency)??"";let l=0;c&&r&&r<c&&(l=Math.round((c-r)/c*100));const P=p.replace("{quantity}",o.toString()).split("{price}")[0],f=p.replace("{quantity}",o.toString()).split("{price}")[1].replace("{percent}",l>0?l.toString():"0");return t("div",{className:"pdp-price-tiers__tier",children:j("span",{className:"pdp-price-tiers__text",children:[P,t(A,{amount:r,currency:d,locale:s,className:"pdp-price-tiers__price"}),f]})},n)})})},U=({initialData:s=null,scope:i,children:c,...a})=>{var d,l,P,f,m,u,N,y,D,L,S;const{globalLocale:p="en-US"}=F.getConfig(),[e,n]=T(s),[r,o]=T(p);return C(()=>{const _=R.on("pdp/data",n,{scope:i}),h=R.on("locale",o);return()=>{_==null||_.off(),h==null||h.off()}},[i]),!e||!e.prices?null:t(I,{...a,specialPrice:(d=e.prices)!=null&&d.visible?t(q,{...(l=e.prices)==null?void 0:l.final,locale:v(r)}):void 0,price:(P=e.prices)!=null&&P.visible&&((f=e.prices)!=null&&f.regular)&&((m=e.prices)==null?void 0:m.final.amount)!==((u=e.prices)==null?void 0:u.regular.amount)?t(q,{...(N=e.prices)==null?void 0:N.regular,locale:v(r)}):void 0,tiers:(y=e.prices)!=null&&y.visible&&((L=(D=e.prices)==null?void 0:D.tiers)==null?void 0:L.length)>0?t(M,{tiers:e.prices.tiers,locale:v(r),regularPrice:(S=e.prices.regular)==null?void 0:S.amount}):void 0})};U.getInitialData=B;export{U as ProductPrice,U as default};
4
4
  //# sourceMappingURL=ProductPrice.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as P}from"@dropins/tools/preact-jsx-runtime.js";import{useState as i,useEffect as y}from"@dropins/tools/preact-compat.js";import{classes as I}from"@dropins/tools/lib.js";import{Incrementer as b}from"@dropins/tools/components.js";import{events as m}from"@dropins/tools/event-bus.js";import{s as q}from"../chunks/isProductConfigurationValid.js";import{g as D}from"../chunks/getFetchedProductData.js";import{k as h,c as x,l as C}from"../chunks/fetchProductData.js";import{useText as S}from"@dropins/tools/i18n.js";import"../fragments.js";import"@dropins/tools/fetch-graphql.js";const U=({initialData:u=null,scope:a,onValue:e,children:F,...o})=>{const l=S("PDP.Product.Incrementer.label").label,[c,f]=i(u),[s,d]=i(()=>h(1));y(()=>{const r=m.on("pdp/data",f,{scope:a}),t=m.on("pdp/values",({quantity:n})=>{d(n)},{eager:!0,scope:a});return()=>{r==null||r.off(),t==null||t.off()}},[a]);const p=r=>{const t=parseInt(r,10);q(g=>({...g,quantity:t}),{scope:a});const{persistURLParams:n}=x.getConfig()??{};n&&C({quantity:t}),e==null||e(t)};return c?P(b,{name:"quantity",defaultValue:String(s),value:String(s),min:1,"aria-label":l,onValue:p,...o,className:I(["pdp-quantity",o.className])},"quantity"):null};U.getInitialData=D;export{U as ProductQuantity,U as default};
4
4
  //# sourceMappingURL=ProductQuantity.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{jsx as i}from"@dropins/tools/preact-jsx-runtime.js";import{useState as a,useEffect as c}from"@dropins/tools/preact-compat.js";import{classes as m}from"@dropins/tools/lib.js";import{events as l}from"@dropins/tools/event-bus.js";import{g as f}from"../chunks/getFetchedProductData.js";const u=({initialData:s=null,scope:e,children:p,...o})=>{const[t,n]=a(s);return c(()=>{const r=l.on("pdp/data",n,{scope:e});return()=>{r==null||r.off()}},[e]),t?i("div",{dangerouslySetInnerHTML:{__html:(t==null?void 0:t.shortDescription)??""},...o,className:m(["pdp-short-description",o.className])}):null};u.getInitialData=f;export{u as ProductShortDescription,u as default};
4
4
  //# sourceMappingURL=ProductShortDescription.js.map
package/fragments.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  const e=`
4
4
  fragment PRODUCT_OPTION_FRAGMENT on ProductViewOption {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-pdp", "version": "3.0.0-beta1", "@dropins/tools": "~1.5.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-pdp", "version": "3.0.0", "@dropins/tools": "~1.5.0", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  (function(p,a){try{if(typeof document<"u"){const r=document.createElement("style"),e=a.styleId;for(const t in a.attributes)r.setAttribute(t,a.attributes[t]);r.setAttribute("data-dropin",e),r.appendChild(document.createTextNode(p));const o=document.querySelector('style[data-dropin="sdk"]');if(o)o.after(r);else{const t=document.querySelector('link[rel="stylesheet"], style');t?t.before(r):document.head.append(r)}}}catch(r){console.error("dropin-styles (injectCodeFunction)",r)}})(`.pdp-gift-card-options{display:flex;flex-direction:column;gap:var(--spacing-xsmall)}.pdp-gift-card-options__grid{display:flex;flex-direction:column;gap:var(--spacing-small)}.pdp-gift-card-options__row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-small)}.pdp-product__gift-card-options-container{grid-column:1 / -1}.pdp-gift-card-options__option-field{min-width:0;box-sizing:border-box}.pdp-gift-card-options__option-field--full-width{grid-column:1 / -1}.pdp-gift-card-options__label{font-weight:700;margin-bottom:var(--spacing-xsmall)}
4
4
  .pdp-carousel{--icon-size: 32px;--icon-extra-padding: 8px;--thumb-peak: 32px;--thumbnails-col-width: 18.6%;position:relative;display:flex;flex-direction:var(--flex-carousel);align-items:center;gap:var(--gap);width:var(--width)}.pdp-carousel .dropin-button--tertiary--disabled:hover{color:var(--color-neutral-500)}.pdp-carousel--thumbnailsColumn{justify-content:flex-end;align-items:start}.pdp-carousel--thumbnailsRow{align-items:center}.pdp-carousel--arrows{padding-left:calc(var(--icon-size) + var(--icon-extra-padding));padding-right:calc(var(--icon-size) + var(--icon-extra-padding));width:calc(var(--width) - 2 * var(--icon-size) - 2 * var(--icon-extra-padding))}.pdp-carousel__button{position:absolute;top:50%;transform:translateY(-50%);padding:0}.pdp-carousel__button--prev{left:0}[dir=rtl] .pdp-carousel__button--prev{left:auto;right:0}[dir=rtl] .pdp-carousel__button--next{right:auto;left:0}.pdp-carousel__button__icon--next{transform:rotate(-90deg)}.pdp-carousel__button--next{right:0}.pdp-carousel__button__icon--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--prev{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--next{transform:rotate(90deg)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsColumn .pdp-carousel__button--prev{left:var(--thumbnails-col-width)}.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--prev,.pdp-carousel--main-image-controls.pdp-carousel--thumbnailsRow .pdp-carousel__button--next{top:calc(var(--height) / 2)}.pdp-carousel__button--thumbnailsColumn{margin:auto;padding:0}.pdp-carousel__button--thumbnailsRow{padding:0}.pdp-carousel__button__icon--thumbnailsColumn--prev{transform:rotate(180deg)}.pdp-carousel__button__icon--thumbnailsRow--prev{transform:rotate(90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--prev,.pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(-90deg)}[dir=rtl] .pdp-carousel__button__icon--thumbnailsRow--next{transform:rotate(90deg)}.pdp-carousel__wrapper{--peak: 0px;scroll-padding:var(--peak);width:var(--total-width);height:var(--height);display:flex;flex-wrap:nowrap;gap:var(--gap);-webkit-overflow-scrolling:touch}.pdp-carousel__wrapper--horizontal{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}.pdp-carousel__slide{display:grid;grid-gap:var(--gap);grid-auto-columns:1fr;grid-auto-rows:100%;scroll-snap-align:end;scroll-snap-stop:always;flex-shrink:0}.pdp-carousel__slide--horizontal{grid-auto-flow:column;width:calc(100% - var(--peak))}.pdp-carousel__slide--horizontal.pdp-carousel__slide--orphan{width:calc((100% / var(--per-page) * var(--length)) - var(--peak) / var(--per-page) * var(--length) - var(--gap) / var(--per-page) * (var(--per-page) - var(--length)))}.pdp-carousel__slide *{vertical-align:middle;max-width:100%;max-height:100%;width:100%;height:100%}.pdp-carousel__slide img{object-fit:contain;width:100%;height:100%}.pdp-carousel__wrapper--peak{--peak: calc(var(--spacing-medium) + var(--gap))}.pdp-carousel__wrapper--scrollbar{--scroll-foreground: var(--color-neutral-600);--scroll-background: var(--color-neutral-400);scrollbar-color:var(--scroll-foreground) var(--scroll-background);scrollbar-width:thin}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar){scrollbar-width:none}.pdp-carousel__wrapper:not(.pdp-carousel__wrapper--scrollbar)::-webkit-scrollbar{display:none}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar{width:4px;height:4px}.pdp-carousel__slide--hidden{opacity:0;pointer-events:none}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-thumb{background:var(--scroll-foreground)}.pdp-carousel__wrapper--scrollbar::-webkit-scrollbar-track{background:var(--scroll-background)}.pdp-carousel__controls__container--thumbnailsRow{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: calc((var(--width) - 2 * var(--icon-size) - 4 * var(--thumbnails-spacing) - var(--thumb-peak) - 2 * var(--thumbnails-box-width)) / 4);margin-top:var(--thumbnails-rest);width:var(--width);display:flex}.pdp-carousel__controls__container--thumbnailsColumn{--thumbnails-spacing: var(--spacing-small);--thumbnails-box-width: var(--spacing-xxsmall);--thumbnails-rest: calc(var(--thumbnails-spacing) - var(--thumbnails-box-width));--thumbnails-width: 100%;margin-right:var(--thumbnails-rest);width:calc(var(--thumbnails-col-width) - var(--thumbnails-rest))}.pdp-carousel__controls__container--thumbnailsColumn:not(.pdp-carousel__controls__container--no-arrows){height:calc(max(var(--height),4 * var(--thumbnails-spacing)) - 4 * var(--thumbnails-spacing))}.pdp-carousel__controls__container--thumbnailsColumn.pdp-carousel__controls__container--no-arrows{height:var(--height)}.pdp-carousel__controls__wrapper--thumbnailsColumn{max-height:100%;overflow-y:scroll}.pdp-carousel__controls__wrapper--thumbnailsRow{max-width:100%;overflow-x:scroll}.pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:0;margin-right:var(--thumbnails-box-width)}[dir=rtl] .pdp-carousel__controls--thumbnailsRow>label>span:nth-last-child(1){margin-left:var(--thumbnails-box-width);margin-right:0}.pdp-carousel__controls__wrapper::-webkit-scrollbar{display:none}.pdp-carousel__controls__wrapper{-ms-overflow-style:none;scrollbar-width:none}.pdp-carousel__controls{display:flex;flex-direction:row;gap:var(--spacing-xsmall)}.pdp-carousel__controls--thumbnailsColumn{display:grid;grid-template-columns:repeat(1,1fr);grid-auto-rows:1fr;grid-row-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls--thumbnailsRow{grid-column-gap:var(--thumbnails-spacing);padding:var(--thumbnails-box-width)}.pdp-carousel__controls__button{border-radius:50%;width:10px;height:10px;padding:0;border:none;background:var(--color-neutral-400);cursor:pointer}.pdp-carousel__controls__button:hover{background:var(--color-neutral-500)}.pdp-carousel__controls__button:active,.pdp-carousel__controls__button--active{background:var(--color-neutral-600)}.pdp-carousel__slide--last{width:100%}.pdp-carousel__thumbnail__container input[type=radio]{opacity:0;position:absolute;width:0;height:0}.pdp-carousel__thumbnail__container .pdp-carousel__thumbnail__span{--bg-color: var(--color-neutral-300);display:inline-block;box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-400);position:relative;cursor:pointer;background-color:var(--bg-color);background-image:var(--background-image);background-repeat:no-repeat;background-size:cover;height:100%;width:100%;overflow:hidden}.pdp-carousel__thumbnail__content{width:inherit;position:absolute;top:-9999px;bottom:-9999px;left:-9999px;right:-9999px;margin:auto;overflow:hidden}.pdp-carousel__thumbnail__span:hover{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50),0 0 0 var(--shape-border-width-4) var(--color-neutral-500);outline:none}.pdp-carousel__controls__wrapper--thumbnailsRow .pdp-carousel__thumbnail__container{min-width:100px}.pdp-carousel__thumbnail__container input[type=radio]:not(:checked):active~.pdp-carousel-thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-1) var(--color-neutral-500);outline:none}.pdp-carousel__thumbnail__container input[type=radio]:checked~.pdp-carousel__thumbnail__span,.pdp-carousel__thumbnail--selected{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50),0 0 0 var(--shape-border-width-4) var(--color-neutral-800)}.pdp-carousel__thumbnail__container input[type=radio]:checked:active~.pdp-carousel__thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-50),0 0 0 var(--shape-border-width-4) var(--color-neutral-600)}.pdp-carousel__thumbnail__container input[type=radio]:focus-visible+.pdp-carousel__thumbnail__span{box-shadow:0 0 0 var(--shape-border-width-3) var(--color-neutral-900),0 0 0 6px var(--color-neutral-400)}.pdp-carousel__thumbnail__span img{object-fit:cover;width:100%;height:100%}.pdp-product{display:grid;grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);margin:0 var(--grid-1-margins)}.pdp-product__gallery-column{display:none}.pdp-product__content-column{grid-column:1 / span 4;color:var(--color-neutral-800)}.pdp-product__header{display:grid;grid-auto-rows:max-content;margin-bottom:var(--spacing-medium)}.pdp-product__breadcrumbs{grid-column:1 / -1;padding:var(--spacing-medium) 0 var(--spacing-xxbig)}.pdp-product__title{font:var(--type-display-3-font);letter-spacing:var(--type-display-3-letter-spacing);margin:0}.pdp-product__sku{font:var(--type-body-1-default-font);max-width:600px}.pdp-product__prices{display:flex;gap:var(--spacing-xsmall);margin-top:var(--spacing-medium)}.pdp-product__out-of-stock__text{font:var(--type-headline-2-strong-font)}.pdp-product__options{grid-column:1 / span 4}.pdp-product__price,.pdp-product__price-special{font:var(--type-headline-2-strong-font)}.pdp-product__price,.pdp-product__sku,.pdp-product__price-special,.pdp-product__out-of-stock__text{letter-spacing:var(--type-headline-2-strong-letter-spacing)}.pdp-product__price--grey{color:var(--color-neutral-500)}.pdp-product__actions,.pdp-product__actions--out-of-stock{display:grid;grid-auto-flow:row;gap:var(--grid-1-gutters);grid-auto-rows:max-content;margin-bottom:var(--spacing-xxbig);margin-top:var(--spacing-big)}.pdp-product__short_description,.pdp-product__attributes{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-bottom:var(--spacing-small)}.pdp-product__description,.pdp-product__attributes li{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.pdp-product__attributes{margin-top:var(--spacing-xsmall)}.pdp-product__short_description p,.pdp-product__description p,.pdp-product__attributes li p{margin:0}.pdp-product__short_description figure,.pdp-product__description figure{margin:0}.pdp-product__short_description img,.pdp-product__description img{max-width:100%}.pdp-product__images--carousel{max-height:60vh}.pdp-product__images--carousel--thumbnails{max-height:90vh}.pdp-product__images__placeholder{background-color:var(--color-neutral-200)}.pdp-product__buttons{display:grid;grid-auto-rows:max-content;grid-gap:var(--grid-1-gutters)}.pdp-product__buttons a{text-align:center}.pdp-product__buttons a:hover{text-decoration:none}.pdp-product__overlay .pdp-overlay__content{width:100%;height:100%}.pdp-product__overlay__carousel{width:100%;height:100%;box-sizing:border-box}.pdp-product__overlay__carousel img{width:100%;height:100%;object-fit:contain}.pdp-carousel__controls__container--thumbnailsRow img,.pdp-carousel__controls__container--thumbnailsColumn img{object-fit:cover}.pdp-product__quantity,.pdp-product__buttons{grid-column:1 / span 4}@media only screen and (min-width: 1024px){.pdp-product__breadcrumbs{grid-column:2 / -2}.pdp-product{grid-template-columns:repeat(var(--grid-3-columns),1fr);grid-column-gap:var(--grid-3-gutters);margin:0 var(--grid-3-margins);position:relative}.pdp-product__column-container{position:relative;display:flex;flex-direction:column}.pdp-product__column-body{position:sticky;bottom:30%;align-self:flex-end}.pdp-product__gallery-column{display:block;grid-column:2 / span 6}.pdp-product__content-column{grid-column:8 / span 4;padding-top:var(--spacing-medium)}.pdp-product__images--carousel{display:none}.pdp-product__header{margin-bottom:var(--spacing-small)}.pdp-product__actions{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-xxbig)}.pdp-product__quantity{grid-column:1 / span 2;width:fit-content}.pdp-product__actions--out-of-stock{grid-template-columns:repeat(var(--grid-1-columns),1fr);grid-column-gap:var(--grid-1-gutters);grid-row-gap:var(--spacing-xxbig);margin-top:var(--spacing-small)}.pdp-product__buttons{grid-column:1 / span 4}.pdp-product__out-of-stock__text{grid-column:1 / span 2}.pdp-product__gallery-content,.pdp-product__content{grid-column:2 / span 6}}.pdp-gallery-grid{display:grid;grid-gap:var(--gap);grid-template-columns:repeat(1,1fr);grid-auto-rows:max-content}.pdp-gallery-grid__item>*{height:100%;max-width:100%;min-width:100%;vertical-align:middle;width:100%;object-fit:contain}.pdp-gallery-grid__item:only-child{grid-column:1 / span 2}.pdp-gallery-grid__item:first-child:nth-last-child(2){grid-column:1 / span 2;grid-row:1}.pdp-gallery-grid__item:nth-child(2):last-child{grid-column:1 / 3;grid-row:2}@media only screen and (min-width: 1024px){.pdp-gallery-grid{grid-template-columns:repeat(2,1fr)}}.pdp-price-range .dropin-price{letter-spacing:var(--type-headline-2-strong-letter-spacing);font:var(--type-headline-2-strong-font)}.pdp-price-range__label{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);margin-left:5px;margin-right:5px}.pdp-overlay{position:fixed;top:0;left:0;z-index:1000;right:0;bottom:0;background-color:var(--color-neutral-50);display:flex;padding:var(--spacing-medium)}.pdp-overlay--centered{align-items:center;justify-content:center}.pdp-overlay__content{display:flex;height:100%;width:100%}.pdp-overlay__close-button{position:absolute;top:var(--spacing-medium);right:var(--spacing-medium);z-index:1001}.pdp-swatches{display:grid;grid-auto-flow:row;grid-gap:var(--grid-1-gutters);grid-auto-rows:max-content;position:relative;z-index:0}.pdp-swatches__field{display:grid;font:var(--type-body-2-strong-font);grid-auto-rows:max-content;gap:var(--spacing-xsmall)}.pdp-swatches__field__label{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);color:var(--color-neutral-800)}.pdp-swatches__options{display:flex;flex-wrap:wrap;gap:var(--spacing-xsmall)}.pdp-zoom{cursor:zoom-in;overflow:hidden;margin:0;position:relative}.pdp-zoom img{height:100%;max-width:100%;min-width:100%;object-fit:contain;position:relative;transition:transform .2s ease-out;transform:var(--transform);vertical-align:middle;width:100%;will-change:transform;backface-visibility:hidden;transform-style:preserve-3d}.pdp-zoom .pdp-zoom__close-button{background-color:var(--color-neutral-50);border-radius:50%;position:absolute;right:var(--spacing-small);top:var(--spacing-small);width:10px;height:10px}.pdp-zoom.pdp-zoom--zoomed{cursor:zoom-out}.pdp-zoom.pdp-zoom--no-effects{cursor:default}@media only screen and (max-width: 768px){.pdp-zoom img{display:block;width:100%;height:100%;transition:transform .2s ease-out;transform:var(--transform);will-change:transform;backface-visibility:hidden}}.pdp-header{display:grid;grid-auto-rows:max-content}.pdp-header__title{font:var(--type-display-3-font);letter-spacing:var(--type-display-3-letter-spacing);margin:0}.pdp-header__sku{font:var(--type-body-1-default-font);max-width:600px}.pdp-price{display:flex;flex-wrap:wrap;gap:var(--spacing-xsmall);margin-top:var(--spacing-medium)}.pdp-price__amount,.pdp-price__amount-special{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing)}.pdp-price__amount--grey{color:var(--color-neutral-500)}.pdp-price__tiers{flex:0 0 100%}.pdp-price-tiers{display:flex;flex-direction:column;gap:8px;margin-top:8px}.pdp-price-tiers__tier{font:var(--type-body-2-font);color:var(--color-text-primary);line-height:1.4}.pdp-price-tiers__text{display:inline}.pdp-price-tiers__price{font-weight:600;color:var(--color-text-primary)}.pdp-price-tiers__savings{font-weight:600;color:var(--color-success)}`,{styleId:"PDP"});