efficient-storefront-blocks 0.51.0 → 0.52.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/CHANGELOG.md +12 -0
- package/dist/chunks/{EditorPreviewCheckout-KD4AHU4O.js → EditorPreviewCheckout-2QMRD4FL.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-GOBBFDFG.js → SiteEditorProvider-HHJCOOIM.js} +1 -1
- package/dist/chunks/chunk-HQ2Q5HZE.js +1 -0
- package/dist/chunks/{chunk-RO3NYDCR.js → chunk-RDG2EJPO.js} +1 -1
- package/dist/chunks/{chunk-TCEBHDNY.js → chunk-VHVJ74KF.js} +1 -1
- package/dist/chunks/chunk-WVQKGOJK.js +255 -0
- package/dist/chunks/{fitment-data-AHZRSHYQ.js → fitment-data-WKS4XEHO.js} +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +39 -39
- package/dist/words.d.ts +6 -2
- package/dist/words.js +4 -4
- package/package.json +1 -1
- package/dist/chunks/chunk-4UVE5U6U.js +0 -255
- package/dist/chunks/chunk-H2GMJL72.js +0 -1
- /package/dist/chunks/{SectionEditorShell-MD342M37.js → SectionEditorShell-Z6EQFY7M.js} +0 -0
- /package/dist/chunks/{chunk-QISNU4TH.js → chunk-VHOOQYWZ.js} +0 -0
- /package/dist/chunks/{chunk-4UVE5U6U.js.LEGAL.txt → chunk-WVQKGOJK.js.LEGAL.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as V,f as z,h as T,m as $,n as j,p as O}from"./chunk-QISNU4TH.js";var B="".replace(/\/+$/,"");var U="x-forwarded-for";function Z(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var Fe="x-forwarded-host";function Q(e,t,r){let n={};return e&&(n[Fe]=e),t&&r==="uncached"&&(n[U]=t),n}function X(e){if(e?.cache==="no-store"||e?.cache==="no-cache")return"uncached";if(e?.cache==="force-cache")return"data-cached";let t=e?.next?.revalidate;return typeof t=="number"&&t>0?"data-cached":"uncached"}var Y="x-storefront-site",ee="x-storefront-host",te="x-storefront-preview";var re={contentHash:"81f2e3c31abcbfd9",schema:1,mediaFields:{ImageBlock:["src"],LogoBlock:["src"],Flex:["bgImage","bgImagePhone"],FeaturedCover:["image"],LongRead:["image"],Banner:["imageSrc"],Timeline:["imageSrc"],Logos:["items[].src"],ContactLocations:["locations[].photo"],HeroSingle:["imageFocal","mediaImage","mediaImage2","mediaVideo","poster"],HeroSlide:["mediaImage","mediaVideo","poster"],PostCard:["image"],Gallery:["othersCards[].image","othersCards[].photos[].src","vehicleCards[].image","vehicleCards[].photos[].src","wheelCards[].image","wheelCards[].photos[].src"],GalleryItem:["image","photos[].src"],Manifesto:["imageSrc"],SectionHeader:["logoSrc"],IntroBleed:["imageSrc","imageSrcMobile"],Split:["imageSrc","textBgSrc"],ProcessSteps:["steps[].image"],DetailRows:["rows[].image"],PaymentBadges:["badges[].src"]},mediaKeyNames:["bgImage","bgImagePhone","image","imageFocal","imageSrc","imageSrcMobile","logoSrc","mediaImage","mediaImage2","mediaVideo","photo","poster","src","textBgSrc"],snapshotObjects:{ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},hydratedLists:{Events:["posts"],SubscribeBlogs:["posts"]},technicalStateKeys:["focal","focalPhone","imageFocal","imageFocal2","imageFocal2Phone","imageFocalPhone"]};var qe="shop_access_token",ne="shop_refresh_token",L=null;function N(){O.removeItem(qe),O.removeItem(ne)}var w={getAccess(){return L},takeLegacyRefresh(){let e=O.getItem(ne);return N(),e},setTokens(e){L=e,N()},clear(){L=null,N()}};import{efficientClientOpen as Qe}from"efficient-easel/screen/lib/session";function $e(e){return!!e.src}function A(e){let t=e.finishes.filter($e);if(t.length===e.finishes.length)return e;let r=e.defaultFinish&&t.some(n=>n.name===e.defaultFinish)?e.defaultFinish:null;return{...e,finishes:t,defaultFinish:r}}function Be(e){return e.listable!==!1}function M(e){return e.map(A).filter(Be)}var ae=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],ce=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),v={black:[0,0,0],white:[255,255,255],gray:[128,128,128],grey:[128,128,128],darkgray:[169,169,169],darkgrey:[169,169,169],dimgray:[105,105,105],dimgrey:[105,105,105],lightgray:[211,211,211],lightgrey:[211,211,211],gainsboro:[220,220,220],silver:[192,192,192],whitesmoke:[245,245,245]},le=12,ue=/\burl\(/i,me=new RegExp(`(?<![-\\w])(${ae.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),de=new RegExp(`((?:^|[;{\\s"'])(?:${ae.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Ue=/<svg\b([^>]*)>/i,Le=/\bfill\s*[=:]/i;function Ne(e){let t=e.replace(me,(r,n,a,l,p)=>{let i=se(p);return i===null?r:`${n}${a}${l}${i}${l}`}).replace(de,(r,n,a)=>{let l=se(a);return l===null?r:`${n}${l}`});return t=t.replace(Ue,(r,n)=>Le.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function se(e){let t=/!important/i.test(e),r=e.replace(/!important/gi,"").trim().toLowerCase();if(!r||ue.test(r)||ce.has(r))return null;let n=r in v?[...v[r],1]:pe(r);if(!n)return null;let[a,l,p,i]=n;if(Math.max(a,l,p)-Math.min(a,l,p)>le)return null;let s=Me(255-a,255-l,255-p,i);return t?`${s} !important`:s}function Me(e,t,r,n){if(n<1)return`rgba(${e}, ${t}, ${r}, ${n})`;let a=l=>l.toString(16).padStart(2,"0");return`#${a(e)}${a(t)}${a(r)}`}function pe(e){return e.startsWith("#")?He(e):e.startsWith("rgb")?De(e):e.startsWith("hsl")?We(e):null}function He(e){let t=e.slice(1),r=1;if(t.length===3||t.length===4)t.length===4&&(r=parseInt(t[3]+t[3],16)/255),t=t.slice(0,3).split("").map(n=>n+n).join("");else if(t.length===6||t.length===8)t.length===8&&(r=parseInt(t.slice(6,8),16)/255),t=t.slice(0,6);else return null;return/^[0-9a-f]{6}$/.test(t)?[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16),r]:null}function De(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean).slice(0,3);if(a.length<3)return null;let l=a.map(i=>i.endsWith("%")?Math.round(parseFloat(i)/100*255):Math.round(parseFloat(i)));if(l.some(i=>Number.isNaN(i)))return null;let p=n?I(n):Je(r);return[l[0],l[1],l[2],p]}function Je(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?I(t[3]):1}function I(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function We(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean);if(a.length<3)return null;let l=parseFloat(a[0]),p=parseFloat(a[1])/100,i=parseFloat(a[2])/100;if([l,p,i].some(P=>Number.isNaN(P)))return null;let s=n?I(n):a.length>=4?I(a[3]):1,[o,u,g]=Ge(l,p,i);return[o,u,g,s]}function Ge(e,t,r){let n=(1-Math.abs(2*r-1))*t,a=(e%360+360)%360/60,l=n*(1-Math.abs(a%2-1)),p=0,i=0,s=0;a<1?[p,i,s]=[n,l,0]:a<2?[p,i,s]=[l,n,0]:a<3?[p,i,s]=[0,n,l]:a<4?[p,i,s]=[0,l,n]:a<5?[p,i,s]=[l,0,n]:[p,i,s]=[n,0,l];let o=r-n/2;return[Math.round((p+o)*255),Math.round((i+o)*255),Math.round((s+o)*255)]}var ie=512*1024;function H(e){return/\.svg(\?|$)/i.test(e)}function Ke(e){return`data:image/svg+xml,${encodeURIComponent(Ne(e))}`}function Ve(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||ue.test(t)||ce.has(t))return null;let r=t in v?[...v[t],1]:pe(t);if(!r)return null;let[n,a,l]=r;return Math.max(n,a,l)-Math.min(n,a,l)>le?null:(.2126*n+.7152*a+.0722*l)/255}function ze(e){let t=[],r=n=>{let a=Ve(n);a!==null&&t.push(a)};for(let n of e.matchAll(me))r(n[4]);for(let n of e.matchAll(de))r(n[2]);return t.length?t.reduce((n,a)=>n+a,0)/t.length<.5:null}var oe=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function je(e){let t=e;for(let r=oe.exec(t);r&&r[0].length>0;r=oe.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function Ze(e,t){if(!H(e))return null;try{let r=await fetch(e,{signal:t,redirect:"manual"});if(!r.ok)return null;let n=Number(r.headers.get("content-length"));if(Number.isFinite(n)&&n>ie)return null;let a=await r.text();return a.length>ie?null:je(a)?a:null}catch{return null}}async function ge(e,t){let r=await Ze(e,t);return r===null?null:{reversed:Ke(r),inkIsDark:ze(r)}}function he(){return V().siteId()}var Xe="",f=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},W="Unable to reach the server. This could be a problem with your internet connection, or the server may be undergoing maintenance or an upgrade. Please try again shortly.",Ye=new Set([502,503,504]),D=0,et="This editor runs on its host's own backend, which does not serve this request.",tt=5e3,rt=15e3,nt=()=>typeof window>"u"?tt:rt;function Re(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&!(e.audience!=null&&e.audience!=="shop")&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(nt())}var ye=e=>e instanceof Error&&e.name==="TimeoutError",fe=(e,t)=>Ye.has(e)?W:t,st=["admin","venue"],_e="admin";function Yt(e){_e=st.includes(e)?e:"admin"}function it(){return _e}var ot=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/,Ce=null;function er(e){Ce=e&&ot.test(e)?e:null}function at(){return Ce}function ct(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=$();return!t||/[?&]site=/.test(e)?e:q(e,`site=${encodeURIComponent(t)}`)}async function c(e,t={}){let{token:r,baseUrl:n,headers:a,audience:l,...p}=t;if(typeof window<"u"&&!Qe())throw new f(D,et,null);if(typeof window>"u"&&n===void 0)throw new Error(`apiFetch(${JSON.stringify(e)}) ran on the server without an explicit baseUrl. The API_URL default it would inherit is browser-only (the prod image bakes NEXT_PUBLIC_API_URL="" for same-origin use, which a Node fetch cannot resolve). Pass a base explicitly: \`await backendOpts()\` (or baseUrl: PRODUCT_FETCH_BASE) for product reads, or the server-only PRODUCT_BACKEND_URL env for other backend surfaces.`);let i=typeof FormData<"u"&&p.body instanceof FormData,s;try{s=await fetch(`${n??Xe}${ct(e)}`,{...p,headers:{...i?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...l===null?{}:{"X-Portal-Audience":l??"shop"},...a},signal:p.signal??Re({...p,audience:l})})}catch(g){throw g instanceof TypeError||ye(g)?new f(D,W,null):g}let o;try{o=await s.text()}catch(g){throw ye(g)?new f(D,W,null):g}let u=null;if(o)try{u=JSON.parse(o)}catch{throw new f(s.status,s.ok?"Expected JSON but received a non-JSON response":fe(s.status,s.statusText),o)}if(!s.ok){let g=(u&&typeof u=="object"&&"detail"in u&&typeof u.detail=="string"?u.detail:null)??fe(s.status,s.statusText);throw new f(s.status,g,u)}return u}var R=null;async function xe(){return R||(R=lt().finally(()=>{R=null}),R)}async function lt(){let e=w.takeLegacyRefresh(),t=await ut.refresh(e??void 0);return w.setTokens(t.access),t.access}async function ke(){return w.getAccess()??xe()}async function h(e,t={}){let r;try{r=await ke()}catch{throw w.clear(),new f(401,"Not signed in",null)}try{return await c(e,{...t,token:r})}catch(n){if(!(n instanceof f)||n.status!==401)throw n;try{let a=await xe();return await c(e,{...t,token:a})}catch{throw w.clear(),n}}}async function Se(e,t={}){if(w.getAccess())try{return{data:await h(e,t),asShopper:!0}}catch(r){if(!(r instanceof f)||r.status!==401)throw r}return{data:await c(e,t),asShopper:!1}}async function Pe(){let e=await h("/api/auth/me/");if(e.portal!=="shop")throw w.clear(),new f(403,"This session is not valid for this shop.",null);return e}var ut={login:(e,t)=>c("/api/auth/login/",{method:"POST",body:JSON.stringify({email:e,password:t,portal:"shop"}),credentials:"include"}),refresh:e=>c("/api/auth/refresh/",{method:"POST",body:JSON.stringify(e?{refresh:e,portal:"shop"}:{portal:"shop"}),credentials:"include"}),logout:async()=>{w.clear();try{await c("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await ke();return await Pe(),e},me:Pe,updateMe:e=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>h("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>h("/api/shop-portal/profile/"),updateMyProfile:e=>h("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>h("/api/shop-portal/delivery-locations/"),createAddress:e=>h("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"DELETE"}),passwordResetRequest:e=>c("/api/auth/password-reset/",{method:"POST",body:JSON.stringify({email:e})}),passwordResetConfirm:(e,t,r)=>c("/api/auth/password-reset/confirm/",{method:"POST",body:JSON.stringify({uid:e,token:t,new_password:r})}),brands:()=>h("/api/products/brands/"),myOrders:()=>h("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>h(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>h(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>h(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>h("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>h(`/api/shop-portal/returns/${e}/cancel/`,{method:"POST"}),uploadReturnPhoto:(e,t)=>{let r=new FormData;return r.append("claim_item",e),r.append("file",t),r.append("media_type",t.type.startsWith("video/")?"video":"image"),h("/api/shop-portal/return-media/",{method:"POST",body:r})}};function S(e){if(typeof e=="string")return e.startsWith("/media/")?z(e):e;if(Array.isArray(e))return e.map(S);if(e&&typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))t[r]=r==="captions"&&n&&typeof n=="object"&&!Array.isArray(n)?Object.fromEntries(Object.entries(n).map(([a,l])=>[S(a),l])):S(n);return t}return e}var Te=typeof window>"u"&&B!=="",mt=Te?B:"",dt=j,b=()=>({baseUrl:dt(),audience:null});function m(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var pt=100,we=50;function Oe(e,t,r){let n=new URLSearchParams;for(let[a,l]of Object.entries(t))l!=null&&l!==""&&n.set(a,String(l));return n.set("pageSize",String(pt)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function gt(e,t){return Oe("/wheels",{process:e},t)}function ht(e,t,r){return Oe("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function yt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function be(e,t,r=()=>!1){let n=[],a=null;try{for(let l=0;l<we;l++){let p=await c(await t(a),await d());if(n.push(...p.results),a=yt(p.next),!a)break}a&&console.warn(`[${e}] stopped at ${we} pages (${n.length} rows); catalog may be truncated`)}catch(l){if(r(l))throw l;console.warn(`[${e}] product API unavailable, returning []`,l)}return n}var ft=e=>e instanceof f&&e.status===400;function St(e){return e.flatMap(t=>t.kind==="alloy-wheel"?M([t]):[t])}async function ve(){return(await Pt()).host}async function Pt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js"),t=await e(),r=l=>l?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,n=r(t.get(ee)??t.get("x-forwarded-host")??t.get("host")),a=r(t.get("host"));return{host:n,matchesRequestHost:n!==null&&n===a}}catch{return{host:null,matchesRequestHost:!1}}}async function wt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return Z((await e()).get(U))}catch{return null}}async function bt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(Y)||null}catch{return null}}async function At(){let e=await bt();if(e)return`site=${encodeURIComponent(e)}`;let t=await ve();return t?`host=${encodeURIComponent(t)}`:""}async function y(e){if(typeof window<"u"){let t=$();return t?q(e,`site=${encodeURIComponent(t)}`):e}return q(e,await At())}function q(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}var Rt="preview";async function _t(){if(typeof window<"u")return null;try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(te)}catch{return null}}async function Ct(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get("user-agent")}catch{return null}}async function J(e,t){let r=await _t();if(r===null)return[await y(e),await d(t)];let n=q(await y(e),`${Rt}=${encodeURIComponent(r)}`),{next:a,cache:l,...p}=t??{},i=await d({...p,cache:"no-store"}),s=await Ct();return s&&(i.headers={...i.headers,"user-agent":s}),[n,i]}async function xt(e){if(!Te)return;let[t,r]=await Promise.all([ve(),wt()]),n=Q(t,r,e);return Object.keys(n).length>0?n:void 0}async function d(e){let t=await xt(X(e)),r={baseUrl:mt,...e};return t&&(r.headers={...t,...e?.headers}),r}var _=typeof window>"u";function C(e,t){let r=new URLSearchParams;for(let[a,l]of Object.entries(t))l!==void 0&&l!==""&&r.set(a,String(l));let n=r.toString();return`/api/v1/fitment${e}${n?`?${n}`:""}`}var ir={listMakes:async e=>{if(_){let{fitmentData:r}=await import("./fitment-data-AHZRSHYQ.js");return r.makes(e)}return(await c(C("/makes",{region:e}),b())).results},listModels:async(e,t)=>{if(_){let{fitmentData:n}=await import("./fitment-data-AHZRSHYQ.js");return n.models(e,t)}return(await c(C("/models",{make:e,region:t}),b())).results},listYears:async(e,t,r)=>{if(_){let{fitmentData:a}=await import("./fitment-data-AHZRSHYQ.js");return a.years(e,t,r)}return(await c(C("/years",{make:e,model:t,region:r}),b())).results},listModifications:async(e,t,r,n)=>{if(_){let{fitmentData:l}=await import("./fitment-data-AHZRSHYQ.js");return l.modifications(e,t,r,n)}return(await c(C("/modifications",{make:e,model:t,year:r,region:n}),b())).results},getStockFitment:async(e,t,r,n,a)=>{if(_){let{fitmentData:l}=await import("./fitment-data-AHZRSHYQ.js");return l.stockFitment(e,t,r,n,a)}return c(C("/stock-fitment",{make:e,model:t,year:r,modification:n,region:a}),b())}},or={listWheels:async e=>{let t=await be("products.listWheels",async r=>await y(gt(e,r)));return M(S(t))},listCatalog:async(e,t)=>{if(e.length===0)throw new Error("products.listCatalog() needs at least one kind. An empty list would omit `kind`, which the contract reads as `alloy-wheel` \u2014 so the call would silently return the wheel catalog instead of nothing.");let r=await be("products.listCatalog",async n=>await y(ht(e,t,n)),ft);return St(S(r))},getWheel:async e=>A(S(await c(await y(m(`/wheels/${e}`)),await d()))),getTyre:async e=>S(await c(await y(m(`/tyres/${e}`)),await d())),listBundles:async()=>{try{return await c(await y(m("/bundles")),await d())}catch{return[]}},getBundle:async e=>c(await y(m(`/bundles/${e}`)),await d()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:r=null}=e;if(typeof window>"u"){let{listGalleryBuilds:n}=await import("./gallery-builds-data-TD3QJK7L.js");return S(n(t,r))}try{let n=new URLSearchParams;t&&n.set("process",t),r&&n.set("wheelSlug",r);let a=n.toString(),l=await c(`/api/v1/gallery-builds${a?`?${a}`:""}`,b());return S(l.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>c(await y(m("/site")),await d()),getSiteBySlug:async e=>c(`${m("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0),listBrands:async()=>{try{return(await c(await y(m("/brands")),await d())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await c(`${m("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0)).results??[],listPages:async()=>S(await c(await y(m("/pages")),await d())),listProductTemplates:async()=>{try{return await c(await y(m("/product-templates")),await d())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listDynamicPages:async e=>{let t=e?`?recordType=${encodeURIComponent(e)}`:"";try{return await c(await y(`${m("/dynamic-pages")}${t}`),await d())}catch(r){if(r instanceof f&&r.status===404)return[];throw r}},getRecord:async(e,t)=>{try{return await c(await y(m(`/records/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)),await d())}catch(r){if(r instanceof f&&r.status===404)return null;throw r}},listRecordKeys:async e=>{try{let t=await c(await y(m(`/records/${encodeURIComponent(e)}`)),await d({cache:"no-store"}));return Array.isArray(t?.keys)?t.keys.filter(r=>typeof r=="string"&&r!==""):[]}catch(t){if(t instanceof f&&t.status===404)return[];throw t}},listProductTypeChoices:async()=>{try{return await c(await y(m("/product-type-choices")),await d())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await c(await y(m("/field-usage")),await d())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>{let r=t.record?`?record=${encodeURIComponent(t.record)}`:"",[n,a]=await J(m(`/pages/${e}`)+r,t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0);return S(await c(n,a))},listBlogPosts:async()=>{try{return(await c(m("/blog-posts"),await d())).map(t=>({...t,coverImage:T(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await c(m(`/blog-posts/${e}`),await d());return{...t,coverImage:T(t.coverImage)??""}},createOrder:async e=>c(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>h(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>c(m("/orders/lookup"),await d({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>c(m("/payments/intent"),await d({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>c(m("/payments/paypal/order"),await d({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>c(m("/payments/paypal/capture"),await d({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>c(m("/payments/afterpay/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>c(m("/payments/afterpay/capture"),await d({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>c(m("/payments/square/charge"),await d({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>c(m("/payments/gocardless/billing-request"),await d({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>c(m("/payments/gocardless/complete"),await d({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>c(m("/payments/zip/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>c(m("/payments/zip/capture"),await d({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>c(m("/payments/klarna/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>c(m("/payments/klarna/capture"),await d({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>c(m("/stock-alerts"),await d({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>c(m("/pre-order-intents"),await d({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>c(m("/newsletter-subscriptions"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>c(m("/newsletter-unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>c(m("/carts"),await d({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>c(m("/carts/restore"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>c(m("/carts/unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),listReviews:async(e={})=>{let t=new URLSearchParams;e.limit&&t.set("limit",String(e.limit)),e.designCode&&t.set("designCode",e.designCode);let r=m("/reviews"),n=t.toString();try{return await c(await y(n?`${r}?${n}`:r),await d())}catch(a){return console.warn("[products.listReviews] product API unavailable, returning []",a),[]}},submitReview:async e=>c(m("/reviews"),await d({method:"POST",body:JSON.stringify(e)})),getForm:async e=>c(m(`/forms/${encodeURIComponent(e)}`),await d()),submitForm:async(e,t)=>c(m(`/forms/${encodeURIComponent(e)}/submissions`),await d({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await c(m("/shipping-methods"),await d())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await c(m(`/countries/${encodeURIComponent(e)}/subdivisions`),await d())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=m("/cart/quote"),r=await d({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await Se(t,r)).data:c(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await Se(m("/coupons/validate"),await d({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=Re({method:"GET"}),t=await c(...await J(m("/header-settings"),{signal:e})),r=T(t.logoUrl),n=null,a=null;if(r&&H(r)){let l=await ge(r,e);l&&(n=l.reversed,a=l.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:a}},getThemeSettings:async()=>c(...await J(m("/theme-settings"))),getChatSettings:async()=>c(await y(m("/chat-settings")),await d())},ar={listServices:async()=>{try{return await c(m("/bookings/services"),await d())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>c(m(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await d()),create:async e=>c(m("/bookings"),await d({method:"POST",body:JSON.stringify(e)})),get:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}`),await d()),cancel:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await d({method:"POST"})),createPaymentIntent:async e=>c(m("/bookings/payments/intent"),await d({method:"POST",body:JSON.stringify({manageToken:e})}))},G=class extends Error{constructor(r,n){super(`Slug "${r}" exists on ${n} websites; a site is required to pick one.`);this.slug=r;this.count=n;this.name="AmbiguousPageSlugError"}},F=(e,t,r)=>{let n=new URLSearchParams({...t?{site:t}:{},...r?{draft:"1"}:{}}).toString();return`/api/storefront/${e}/${n?`?${n}`:""}`},x=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,kt=e=>`${x(e)}currencies/`,Tt="/api/storefront/media/ingest/",K=class extends Error{constructor(){super("This editor is not connected to a website, so an upload has nowhere to go. Open the page from the website the file should belong to, then try again."),this.name="MediaUploadDestinationError"}};function Ot(){let e=he();if(!e)throw new K;return`${Tt}?${new URLSearchParams({site:e})}`}var E={"X-Puck-Media-Manifest":re.contentHash},cr=Ie({});function Ie(e){return(t,r={})=>{let n=at(),a=e.headers||n?{...n?{"Accept-Language":n}:{},...e.headers,...r.headers}:void 0;return c(t,{...r,...e.baseUrl!==void 0?{baseUrl:e.baseUrl}:{},...a?{headers:a}:{},audience:e.audience??it()})}}function vt(e={}){let t=Ie(e),r=e.siteDrafts===!0,n=i=>F("header-settings",i,r),a=i=>F("theme-settings",i,r),l=i=>F("chat-settings",i,r),p=i=>F("social-settings",i,r);return{findPageBySlug:async(i,s,o)=>{let u=new URLSearchParams({slug:i});o&&u.set("site",o);let g=await t(`/api/storefront/pages/?${u.toString()}`,{token:s}),P=Array.isArray(g)?g:g.results??[];if(!o&&P.length>1)throw new G(i,P.length);return P[0]??null},getPageById:(i,s)=>t(`/api/storefront/pages/${i}/`,{token:s}),saveLayout:(i,s,o,u,g)=>t(`/api/storefront/pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s,expected_updated_at:u,...g?{client_id:g}:{}}),token:o}),createPagePreviewLink:(i,s)=>t(`/api/storefront/pages/${i}/preview-link/`,{method:"POST",token:s}),claimPageEditLock:(i,s,o,u=!1)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:o,takeover:u}),token:s}),releasePageEditLock:(i,s)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"DELETE",token:s}),createTemplate:(i,s,o)=>t("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:i,layout:s}),headers:E,token:o}),getTemplate:(i,s)=>t(`/api/storefront/page-templates/${i}/`,{token:s}),saveTemplateLayout:(i,s,o)=>t(`/api/storefront/page-templates/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:E,token:o}),listTemplatePages:async(i,s)=>{let o=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}`,{token:s});return Array.isArray(o)?o:o.results??[]},findTemplatePageBySlug:async(i,s,o)=>{let u=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}&slug=${encodeURIComponent(s)}`,{token:o});return(Array.isArray(u)?u:u.results??[])[0]??null},createTemplatePage:(i,s,o)=>t("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:i,...s}),headers:E,token:o}),saveTemplatePageLayout:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:E,token:o}),deleteTemplatePage:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"DELETE",token:s,...o?.keepalive?{keepalive:!0}:{}}),listPages:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/pages/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},createPage:(i,s,o,u)=>t("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:i,slug:s,layout:o}),token:u}),deletePage:(i,s)=>t(`/api/storefront/pages/${i}/`,{method:"DELETE",token:s}),getHeaderSettings:(i,s)=>t(n(s),{token:i}),listMenus:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/menus/?${o}`,{token:i});return Array.isArray(u)?u:u.results??[]},listBlogPosts:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/blog-posts/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},listFieldUsage:async(i,s)=>{let o=await t(`/api/storefront/field-usage/?site=${encodeURIComponent(s)}`,{token:i});return Array.isArray(o?.entries)?o.entries:[]},listCategories:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/categories/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.sort_order-k.sort_order||P.name.localeCompare(k.name))},listForms:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/forms/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.title.localeCompare(k.title))},listWheelSummaries:async(i,s={})=>{let o=new URLSearchParams;s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/wheel-curations/summaries/${u?`?${u}`:""}`,{token:i});return S(g)},listProducts:async(i,s={})=>{let o=new URLSearchParams;s.kinds?.length&&o.set("kind",s.kinds.join(",")),s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/products/${u?`?${u}`:""}`,{token:i});return S(g)},getWheelDetail:async(i,s,o={})=>{let u=new URLSearchParams({slug:s});return o.siteId&&u.set("site",o.siteId),A(S(await t(`/api/storefront/wheel-curations/detail/?${u.toString()}`,{token:i})))},updateHeaderSettings:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSite:(i,s)=>t(x(i),{token:s}),listSites:async i=>{let s=await t("/api/storefront/sites/?no_page=true",{token:i});return Array.isArray(s)?s:s.results??[]},listSiteCurrencies:async(i,s)=>{let o=await t(kt(i),{token:s});return Array.isArray(o)?o:[]},publishSite:(i,s)=>t(`${x(i)}publish/`,{method:"POST",token:s}),getSiteLiveState:(i,s)=>t(`${x(i)}live-state/`,{token:s}),updateSite:(i,s,o)=>t(x(i),{method:"PATCH",body:JSON.stringify(s),token:o}),getThemeSettings:(i,s)=>t(a(s),{token:i}),updateThemeSettings:(i,s,o)=>t(a(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getChatSettings:(i,s)=>t(l(s),{token:i}),updateChatSettings:(i,s,o)=>t(l(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSocialSettings:(i,s)=>t(p(s),{token:i}),updateSocialSettings:(i,s,o)=>t(p(o),{method:"PATCH",body:JSON.stringify(i),token:s}),uploadHeaderLogo:(i,s,o)=>{let u=new FormData;return u.append("logo",i),t(n(o),{method:"PATCH",body:u,token:s})},clearHeaderLogo:(i,s)=>t(n(s),{method:"PATCH",body:JSON.stringify({logo:null}),token:i}),setHeaderLogoFromAsset:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify({logo_asset_id:i}),token:s}),uploadMedia:async(i,s)=>{let o=new FormData;return o.append("file",i),t(Ot(),{method:"POST",body:o,token:s})},listMedia:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("kind",s);let u=await t(`/api/storefront/media-assets/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]}}}var lr=vt({siteDrafts:!0});export{re as a,B as b,Q as c,X as d,w as e,$e as f,H as g,he as h,Xe as i,f as j,W as k,D as l,Yt as m,er as n,c as o,ut as p,ve as q,Pt as r,wt as s,bt as t,_t as u,ir as v,or as w,ar as x,G as y,cr as z,lr as A};
|
|
1
|
+
import{b as V,f as z,h as T,m as $,n as j,p as O}from"./chunk-VHOOQYWZ.js";var B="".replace(/\/+$/,"");var U="x-forwarded-for";function Z(e){let t=(e??"").split(",").map(r=>r.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var Fe="x-forwarded-host";function Q(e,t,r){let n={};return e&&(n[Fe]=e),t&&r==="uncached"&&(n[U]=t),n}function X(e){if(e?.cache==="no-store"||e?.cache==="no-cache")return"uncached";if(e?.cache==="force-cache")return"data-cached";let t=e?.next?.revalidate;return typeof t=="number"&&t>0?"data-cached":"uncached"}var Y="x-storefront-site",ee="x-storefront-host",te="x-storefront-preview";var re={contentHash:"81f2e3c31abcbfd9",schema:1,mediaFields:{ImageBlock:["src"],LogoBlock:["src"],Flex:["bgImage","bgImagePhone"],FeaturedCover:["image"],LongRead:["image"],Banner:["imageSrc"],Timeline:["imageSrc"],Logos:["items[].src"],ContactLocations:["locations[].photo"],HeroSingle:["imageFocal","mediaImage","mediaImage2","mediaVideo","poster"],HeroSlide:["mediaImage","mediaVideo","poster"],PostCard:["image"],Gallery:["othersCards[].image","othersCards[].photos[].src","vehicleCards[].image","vehicleCards[].photos[].src","wheelCards[].image","wheelCards[].photos[].src"],GalleryItem:["image","photos[].src"],Manifesto:["imageSrc"],SectionHeader:["logoSrc"],IntroBleed:["imageSrc","imageSrcMobile"],Split:["imageSrc","textBgSrc"],ProcessSteps:["steps[].image"],DetailRows:["rows[].image"],PaymentBadges:["badges[].src"]},mediaKeyNames:["bgImage","bgImagePhone","image","imageFocal","imageSrc","imageSrcMobile","logoSrc","mediaImage","mediaImage2","mediaVideo","photo","poster","src","textBgSrc"],snapshotObjects:{ProductGrid:{source:{keep:["slug"]}},GalleryItem:{product:{keep:["code","finish"]}},FeaturedCover:{source:{keep:["slug"]}},LongRead:{source:{keep:["slug"]}}},hydratedLists:{Events:["posts"],SubscribeBlogs:["posts"]},technicalStateKeys:["focal","focalPhone","imageFocal","imageFocal2","imageFocal2Phone","imageFocalPhone"]};var qe="shop_access_token",ne="shop_refresh_token",L=null;function N(){O.removeItem(qe),O.removeItem(ne)}var w={getAccess(){return L},takeLegacyRefresh(){let e=O.getItem(ne);return N(),e},setTokens(e){L=e,N()},clear(){L=null,N()}};import{efficientClientOpen as Qe}from"efficient-easel/screen/lib/session";function $e(e){return!!e.src}function A(e){let t=e.finishes.filter($e);if(t.length===e.finishes.length)return e;let r=e.defaultFinish&&t.some(n=>n.name===e.defaultFinish)?e.defaultFinish:null;return{...e,finishes:t,defaultFinish:r}}function Be(e){return e.listable!==!1}function M(e){return e.map(A).filter(Be)}var ae=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],ce=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),v={black:[0,0,0],white:[255,255,255],gray:[128,128,128],grey:[128,128,128],darkgray:[169,169,169],darkgrey:[169,169,169],dimgray:[105,105,105],dimgrey:[105,105,105],lightgray:[211,211,211],lightgrey:[211,211,211],gainsboro:[220,220,220],silver:[192,192,192],whitesmoke:[245,245,245]},le=12,ue=/\burl\(/i,me=new RegExp(`(?<![-\\w])(${ae.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),de=new RegExp(`((?:^|[;{\\s"'])(?:${ae.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Ue=/<svg\b([^>]*)>/i,Le=/\bfill\s*[=:]/i;function Ne(e){let t=e.replace(me,(r,n,a,l,p)=>{let i=se(p);return i===null?r:`${n}${a}${l}${i}${l}`}).replace(de,(r,n,a)=>{let l=se(a);return l===null?r:`${n}${l}`});return t=t.replace(Ue,(r,n)=>Le.test(n)?r:`<svg fill="#ffffff"${n}>`),t}function se(e){let t=/!important/i.test(e),r=e.replace(/!important/gi,"").trim().toLowerCase();if(!r||ue.test(r)||ce.has(r))return null;let n=r in v?[...v[r],1]:pe(r);if(!n)return null;let[a,l,p,i]=n;if(Math.max(a,l,p)-Math.min(a,l,p)>le)return null;let s=Me(255-a,255-l,255-p,i);return t?`${s} !important`:s}function Me(e,t,r,n){if(n<1)return`rgba(${e}, ${t}, ${r}, ${n})`;let a=l=>l.toString(16).padStart(2,"0");return`#${a(e)}${a(t)}${a(r)}`}function pe(e){return e.startsWith("#")?He(e):e.startsWith("rgb")?De(e):e.startsWith("hsl")?We(e):null}function He(e){let t=e.slice(1),r=1;if(t.length===3||t.length===4)t.length===4&&(r=parseInt(t[3]+t[3],16)/255),t=t.slice(0,3).split("").map(n=>n+n).join("");else if(t.length===6||t.length===8)t.length===8&&(r=parseInt(t.slice(6,8),16)/255),t=t.slice(0,6);else return null;return/^[0-9a-f]{6}$/.test(t)?[parseInt(t.slice(0,2),16),parseInt(t.slice(2,4),16),parseInt(t.slice(4,6),16),r]:null}function De(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean).slice(0,3);if(a.length<3)return null;let l=a.map(i=>i.endsWith("%")?Math.round(parseFloat(i)/100*255):Math.round(parseFloat(i)));if(l.some(i=>Number.isNaN(i)))return null;let p=n?I(n):Je(r);return[l[0],l[1],l[2],p]}function Je(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?I(t[3]):1}function I(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function We(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[r,n]=t.split("/"),a=r.split(/[\s,]+/).filter(Boolean);if(a.length<3)return null;let l=parseFloat(a[0]),p=parseFloat(a[1])/100,i=parseFloat(a[2])/100;if([l,p,i].some(P=>Number.isNaN(P)))return null;let s=n?I(n):a.length>=4?I(a[3]):1,[o,u,g]=Ge(l,p,i);return[o,u,g,s]}function Ge(e,t,r){let n=(1-Math.abs(2*r-1))*t,a=(e%360+360)%360/60,l=n*(1-Math.abs(a%2-1)),p=0,i=0,s=0;a<1?[p,i,s]=[n,l,0]:a<2?[p,i,s]=[l,n,0]:a<3?[p,i,s]=[0,n,l]:a<4?[p,i,s]=[0,l,n]:a<5?[p,i,s]=[l,0,n]:[p,i,s]=[n,0,l];let o=r-n/2;return[Math.round((p+o)*255),Math.round((i+o)*255),Math.round((s+o)*255)]}var ie=512*1024;function H(e){return/\.svg(\?|$)/i.test(e)}function Ke(e){return`data:image/svg+xml,${encodeURIComponent(Ne(e))}`}function Ve(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||ue.test(t)||ce.has(t))return null;let r=t in v?[...v[t],1]:pe(t);if(!r)return null;let[n,a,l]=r;return Math.max(n,a,l)-Math.min(n,a,l)>le?null:(.2126*n+.7152*a+.0722*l)/255}function ze(e){let t=[],r=n=>{let a=Ve(n);a!==null&&t.push(a)};for(let n of e.matchAll(me))r(n[4]);for(let n of e.matchAll(de))r(n[2]);return t.length?t.reduce((n,a)=>n+a,0)/t.length<.5:null}var oe=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function je(e){let t=e;for(let r=oe.exec(t);r&&r[0].length>0;r=oe.exec(t))t=t.slice(r[0].length);return/^<svg[\s>/]/i.test(t)}async function Ze(e,t){if(!H(e))return null;try{let r=await fetch(e,{signal:t,redirect:"manual"});if(!r.ok)return null;let n=Number(r.headers.get("content-length"));if(Number.isFinite(n)&&n>ie)return null;let a=await r.text();return a.length>ie?null:je(a)?a:null}catch{return null}}async function ge(e,t){let r=await Ze(e,t);return r===null?null:{reversed:Ke(r),inkIsDark:ze(r)}}function he(){return V().siteId()}var Xe="",f=class extends Error{constructor(t,r,n){super(r),this.status=t,this.data=n}},W="Unable to reach the server. This could be a problem with your internet connection, or the server may be undergoing maintenance or an upgrade. Please try again shortly.",Ye=new Set([502,503,504]),D=0,et="This editor runs on its host's own backend, which does not serve this request.",tt=5e3,rt=15e3,nt=()=>typeof window>"u"?tt:rt;function Re(e){let t=(e.method??"GET").toUpperCase();if(!(e.body!=null||t!=="GET"&&t!=="HEAD")&&!(e.audience!=null&&e.audience!=="shop")&&typeof AbortSignal?.timeout=="function")return AbortSignal.timeout(nt())}var ye=e=>e instanceof Error&&e.name==="TimeoutError",fe=(e,t)=>Ye.has(e)?W:t,st=["admin","venue"],_e="admin";function Yt(e){_e=st.includes(e)?e:"admin"}function it(){return _e}var ot=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/,Ce=null;function er(e){Ce=e&&ot.test(e)?e:null}function at(){return Ce}function ct(e){if(typeof window>"u"||!e.startsWith("/api/v1/"))return e;let t=$();return!t||/[?&]site=/.test(e)?e:q(e,`site=${encodeURIComponent(t)}`)}async function c(e,t={}){let{token:r,baseUrl:n,headers:a,audience:l,...p}=t;if(typeof window<"u"&&!Qe())throw new f(D,et,null);if(typeof window>"u"&&n===void 0)throw new Error(`apiFetch(${JSON.stringify(e)}) ran on the server without an explicit baseUrl. The API_URL default it would inherit is browser-only (the prod image bakes NEXT_PUBLIC_API_URL="" for same-origin use, which a Node fetch cannot resolve). Pass a base explicitly: \`await backendOpts()\` (or baseUrl: PRODUCT_FETCH_BASE) for product reads, or the server-only PRODUCT_BACKEND_URL env for other backend surfaces.`);let i=typeof FormData<"u"&&p.body instanceof FormData,s;try{s=await fetch(`${n??Xe}${ct(e)}`,{...p,headers:{...i?{}:{"Content-Type":"application/json"},...r?{Authorization:`Bearer ${r}`}:{},...l===null?{}:{"X-Portal-Audience":l??"shop"},...a},signal:p.signal??Re({...p,audience:l})})}catch(g){throw g instanceof TypeError||ye(g)?new f(D,W,null):g}let o;try{o=await s.text()}catch(g){throw ye(g)?new f(D,W,null):g}let u=null;if(o)try{u=JSON.parse(o)}catch{throw new f(s.status,s.ok?"Expected JSON but received a non-JSON response":fe(s.status,s.statusText),o)}if(!s.ok){let g=(u&&typeof u=="object"&&"detail"in u&&typeof u.detail=="string"?u.detail:null)??fe(s.status,s.statusText);throw new f(s.status,g,u)}return u}var R=null;async function xe(){return R||(R=lt().finally(()=>{R=null}),R)}async function lt(){let e=w.takeLegacyRefresh(),t=await ut.refresh(e??void 0);return w.setTokens(t.access),t.access}async function ke(){return w.getAccess()??xe()}async function h(e,t={}){let r;try{r=await ke()}catch{throw w.clear(),new f(401,"Not signed in",null)}try{return await c(e,{...t,token:r})}catch(n){if(!(n instanceof f)||n.status!==401)throw n;try{let a=await xe();return await c(e,{...t,token:a})}catch{throw w.clear(),n}}}async function Se(e,t={}){if(w.getAccess())try{return{data:await h(e,t),asShopper:!0}}catch(r){if(!(r instanceof f)||r.status!==401)throw r}return{data:await c(e,t),asShopper:!1}}async function Pe(){let e=await h("/api/auth/me/");if(e.portal!=="shop")throw w.clear(),new f(403,"This session is not valid for this shop.",null);return e}var ut={login:(e,t)=>c("/api/auth/login/",{method:"POST",body:JSON.stringify({email:e,password:t,portal:"shop"}),credentials:"include"}),refresh:e=>c("/api/auth/refresh/",{method:"POST",body:JSON.stringify(e?{refresh:e,portal:"shop"}:{portal:"shop"}),credentials:"include"}),logout:async()=>{w.clear();try{await c("/api/auth/logout/",{method:"POST",body:JSON.stringify({portal:"shop"}),credentials:"include"})}catch{}},restoreSession:async()=>{let e=await ke();return await Pe(),e},me:Pe,updateMe:e=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify(e)}),changePassword:(e,t)=>h("/api/auth/me/",{method:"PATCH",body:JSON.stringify({password:t,old_password:e})}),changeEmail:(e,t)=>h("/api/shop-portal/change-email/",{method:"POST",body:JSON.stringify({new_email:e,current_password:t})}),myProfile:()=>h("/api/shop-portal/profile/"),updateMyProfile:e=>h("/api/shop-portal/profile/",{method:"PATCH",body:JSON.stringify(e)}),myAddresses:()=>h("/api/shop-portal/delivery-locations/"),createAddress:e=>h("/api/shop-portal/delivery-locations/",{method:"POST",body:JSON.stringify(e)}),updateAddress:(e,t)=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"PATCH",body:JSON.stringify(t)}),deleteAddress:e=>h(`/api/shop-portal/delivery-locations/${e}/`,{method:"DELETE"}),passwordResetRequest:e=>c("/api/auth/password-reset/",{method:"POST",body:JSON.stringify({email:e})}),passwordResetConfirm:(e,t,r)=>c("/api/auth/password-reset/confirm/",{method:"POST",body:JSON.stringify({uid:e,token:t,new_password:r})}),brands:()=>h("/api/products/brands/"),myOrders:()=>h("/api/shop-portal/orders/").then(e=>e.results),myOrder:e=>h(`/api/shop-portal/orders/${e}/`),cancelOrder:e=>h(`/api/shop-portal/orders/${e}/cancel/`,{method:"POST"}),myReturns:e=>h(`/api/shop-portal/returns/${e?`?order=${encodeURIComponent(e)}`:""}`).then(t=>t.results),createReturn:e=>h("/api/shop-portal/returns/",{method:"POST",body:JSON.stringify(e)}),withdrawReturn:e=>h(`/api/shop-portal/returns/${e}/cancel/`,{method:"POST"}),uploadReturnPhoto:(e,t)=>{let r=new FormData;return r.append("claim_item",e),r.append("file",t),r.append("media_type",t.type.startsWith("video/")?"video":"image"),h("/api/shop-portal/return-media/",{method:"POST",body:r})}};function S(e){if(typeof e=="string")return e.startsWith("/media/")?z(e):e;if(Array.isArray(e))return e.map(S);if(e&&typeof e=="object"){let t={};for(let[r,n]of Object.entries(e))t[r]=r==="captions"&&n&&typeof n=="object"&&!Array.isArray(n)?Object.fromEntries(Object.entries(n).map(([a,l])=>[S(a),l])):S(n);return t}return e}var Te=typeof window>"u"&&B!=="",mt=Te?B:"",dt=j,b=()=>({baseUrl:dt(),audience:null});function m(e,t){let r=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${r}`}var pt=100,we=50;function Oe(e,t,r){let n=new URLSearchParams;for(let[a,l]of Object.entries(t))l!=null&&l!==""&&n.set(a,String(l));return n.set("pageSize",String(pt)),r&&n.set("cursor",r),`/api/v1${e}?${n.toString()}`}function gt(e,t){return Oe("/wheels",{process:e},t)}function ht(e,t,r){return Oe("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},r)}function yt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function be(e,t,r=()=>!1){let n=[],a=null;try{for(let l=0;l<we;l++){let p=await c(await t(a),await d());if(n.push(...p.results),a=yt(p.next),!a)break}a&&console.warn(`[${e}] stopped at ${we} pages (${n.length} rows); catalog may be truncated`)}catch(l){if(r(l))throw l;console.warn(`[${e}] product API unavailable, returning []`,l)}return n}var ft=e=>e instanceof f&&e.status===400;function St(e){return e.flatMap(t=>t.kind==="alloy-wheel"?M([t]):[t])}async function ve(){return(await Pt()).host}async function Pt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js"),t=await e(),r=l=>l?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,n=r(t.get(ee)??t.get("x-forwarded-host")??t.get("host")),a=r(t.get("host"));return{host:n,matchesRequestHost:n!==null&&n===a}}catch{return{host:null,matchesRequestHost:!1}}}async function wt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return Z((await e()).get(U))}catch{return null}}async function bt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(Y)||null}catch{return null}}async function At(){let e=await bt();if(e)return`site=${encodeURIComponent(e)}`;let t=await ve();return t?`host=${encodeURIComponent(t)}`:""}async function y(e){if(typeof window<"u"){let t=$();return t?q(e,`site=${encodeURIComponent(t)}`):e}return q(e,await At())}function q(e,t){return t?`${e}${e.includes("?")?"&":"?"}${t}`:e}var Rt="preview";async function _t(){if(typeof window<"u")return null;try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get(te)}catch{return null}}async function Ct(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get("user-agent")}catch{return null}}async function J(e,t){let r=await _t();if(r===null)return[await y(e),await d(t)];let n=q(await y(e),`${Rt}=${encodeURIComponent(r)}`),{next:a,cache:l,...p}=t??{},i=await d({...p,cache:"no-store"}),s=await Ct();return s&&(i.headers={...i.headers,"user-agent":s}),[n,i]}async function xt(e){if(!Te)return;let[t,r]=await Promise.all([ve(),wt()]),n=Q(t,r,e);return Object.keys(n).length>0?n:void 0}async function d(e){let t=await xt(X(e)),r={baseUrl:mt,...e};return t&&(r.headers={...t,...e?.headers}),r}var _=typeof window>"u";function C(e,t){let r=new URLSearchParams;for(let[a,l]of Object.entries(t))l!==void 0&&l!==""&&r.set(a,String(l));let n=r.toString();return`/api/v1/fitment${e}${n?`?${n}`:""}`}var ir={listMakes:async e=>{if(_){let{fitmentData:r}=await import("./fitment-data-WKS4XEHO.js");return r.makes(e)}return(await c(C("/makes",{region:e}),b())).results},listModels:async(e,t)=>{if(_){let{fitmentData:n}=await import("./fitment-data-WKS4XEHO.js");return n.models(e,t)}return(await c(C("/models",{make:e,region:t}),b())).results},listYears:async(e,t,r)=>{if(_){let{fitmentData:a}=await import("./fitment-data-WKS4XEHO.js");return a.years(e,t,r)}return(await c(C("/years",{make:e,model:t,region:r}),b())).results},listModifications:async(e,t,r,n)=>{if(_){let{fitmentData:l}=await import("./fitment-data-WKS4XEHO.js");return l.modifications(e,t,r,n)}return(await c(C("/modifications",{make:e,model:t,year:r,region:n}),b())).results},getStockFitment:async(e,t,r,n,a)=>{if(_){let{fitmentData:l}=await import("./fitment-data-WKS4XEHO.js");return l.stockFitment(e,t,r,n,a)}return c(C("/stock-fitment",{make:e,model:t,year:r,modification:n,region:a}),b())}},or={listWheels:async e=>{let t=await be("products.listWheels",async r=>await y(gt(e,r)));return M(S(t))},listCatalog:async(e,t)=>{if(e.length===0)throw new Error("products.listCatalog() needs at least one kind. An empty list would omit `kind`, which the contract reads as `alloy-wheel` \u2014 so the call would silently return the wheel catalog instead of nothing.");let r=await be("products.listCatalog",async n=>await y(ht(e,t,n)),ft);return St(S(r))},getWheel:async e=>A(S(await c(await y(m(`/wheels/${e}`)),await d()))),getTyre:async e=>S(await c(await y(m(`/tyres/${e}`)),await d())),listBundles:async()=>{try{return await c(await y(m("/bundles")),await d())}catch{return[]}},getBundle:async e=>c(await y(m(`/bundles/${e}`)),await d()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:r=null}=e;if(typeof window>"u"){let{listGalleryBuilds:n}=await import("./gallery-builds-data-TD3QJK7L.js");return S(n(t,r))}try{let n=new URLSearchParams;t&&n.set("process",t),r&&n.set("wheelSlug",r);let a=n.toString(),l=await c(`/api/v1/gallery-builds${a?`?${a}`:""}`,b());return S(l.results)}catch(n){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",n),[]}},getSite:async()=>c(await y(m("/site")),await d()),getSiteBySlug:async e=>c(`${m("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0),listBrands:async()=>{try{return(await c(await y(m("/brands")),await d())).results??[]}catch(e){return console.warn("[products.listBrands] product API unavailable, returning []",e),[]}},listBrandsForSite:async e=>(await c(`${m("/brands")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await d():void 0)).results??[],listPages:async()=>S(await c(await y(m("/pages")),await d())),listProductTemplates:async()=>{try{return await c(await y(m("/product-templates")),await d())}catch(e){return console.warn("[products.listProductTemplates] unavailable, returning []",e),[]}},listDynamicPages:async e=>{let t=e?`?recordType=${encodeURIComponent(e)}`:"";try{return await c(await y(`${m("/dynamic-pages")}${t}`),await d())}catch(r){if(r instanceof f&&r.status===404)return[];throw r}},getRecord:async(e,t)=>{try{return await c(await y(m(`/records/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)),await d())}catch(r){if(r instanceof f&&r.status===404)return null;throw r}},listRecordKeys:async e=>{try{let t=await c(await y(m(`/records/${encodeURIComponent(e)}`)),await d({cache:"no-store"}));return Array.isArray(t?.keys)?t.keys.filter(r=>typeof r=="string"&&r!==""):[]}catch(t){if(t instanceof f&&t.status===404)return[];throw t}},listProductTypeChoices:async()=>{try{return await c(await y(m("/product-type-choices")),await d())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await c(await y(m("/field-usage")),await d())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>{let r=t.record?`?record=${encodeURIComponent(t.record)}`:"",[n,a]=await J(m(`/pages/${e}`)+r,t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0);return S(await c(n,a))},listBlogPosts:async()=>{try{return(await c(m("/blog-posts"),await d())).map(t=>({...t,coverImage:T(t.coverImage)??""}))}catch(e){return console.warn("[products.listBlogPosts] blog API unavailable, returning []",e),[]}},getBlogPost:async e=>{let t=await c(m(`/blog-posts/${e}`),await d());return{...t,coverImage:T(t.coverImage)??""}},createOrder:async e=>c(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>h(m("/orders"),await d({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>c(m("/orders/lookup"),await d({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>c(m("/payments/intent"),await d({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>c(m("/payments/paypal/order"),await d({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>c(m("/payments/paypal/capture"),await d({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>c(m("/payments/afterpay/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>c(m("/payments/afterpay/capture"),await d({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>c(m("/payments/square/charge"),await d({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>c(m("/payments/gocardless/billing-request"),await d({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>c(m("/payments/gocardless/complete"),await d({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>c(m("/payments/zip/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>c(m("/payments/zip/capture"),await d({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>c(m("/payments/klarna/checkout"),await d({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>c(m("/payments/klarna/capture"),await d({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>c(m("/stock-alerts"),await d({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>c(m("/pre-order-intents"),await d({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>c(m("/newsletter-subscriptions"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>c(m("/newsletter-unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>c(m("/carts"),await d({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>c(m("/carts/restore"),await d({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>c(m("/carts/unsubscribe"),await d({method:"POST",body:JSON.stringify(e)})),listReviews:async(e={})=>{let t=new URLSearchParams;e.limit&&t.set("limit",String(e.limit)),e.designCode&&t.set("designCode",e.designCode);let r=m("/reviews"),n=t.toString();try{return await c(await y(n?`${r}?${n}`:r),await d())}catch(a){return console.warn("[products.listReviews] product API unavailable, returning []",a),[]}},submitReview:async e=>c(m("/reviews"),await d({method:"POST",body:JSON.stringify(e)})),getForm:async e=>c(m(`/forms/${encodeURIComponent(e)}`),await d()),submitForm:async(e,t)=>c(m(`/forms/${encodeURIComponent(e)}/submissions`),await d({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await c(m("/shipping-methods"),await d())}catch(e){return console.warn("[products.listShippingMethods] product API unavailable, returning []",e),[]}},listCountrySubdivisions:async e=>{try{return await c(m(`/countries/${encodeURIComponent(e)}/subdivisions`),await d())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=m("/cart/quote"),r=await d({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await Se(t,r)).data:c(t,r)},validateCoupon:async e=>{let{data:t,asShopper:r}=await Se(m("/coupons/validate"),await d({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:r}},getHeaderSettings:async()=>{let e=Re({method:"GET"}),t=await c(...await J(m("/header-settings"),{signal:e})),r=T(t.logoUrl),n=null,a=null;if(r&&H(r)){let l=await ge(r,e);l&&(n=l.reversed,a=l.inkIsDark)}return{...t,logoUrl:r,logoReversed:n,logoInkIsDark:a}},getThemeSettings:async()=>c(...await J(m("/theme-settings"))),getChatSettings:async()=>c(await y(m("/chat-settings")),await d())},ar={listServices:async()=>{try{return await c(m("/bookings/services"),await d())}catch(e){return console.warn("[bookings.listServices] API unavailable, returning []",e),{results:[],currency:"USD"}}},getAvailability:async(e,t)=>c(m(`/bookings/availability?service=${encodeURIComponent(e)}&date=${t}`),await d()),create:async e=>c(m("/bookings"),await d({method:"POST",body:JSON.stringify(e)})),get:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}`),await d()),cancel:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await d({method:"POST"})),createPaymentIntent:async e=>c(m("/bookings/payments/intent"),await d({method:"POST",body:JSON.stringify({manageToken:e})}))},G=class extends Error{constructor(r,n){super(`Slug "${r}" exists on ${n} websites; a site is required to pick one.`);this.slug=r;this.count=n;this.name="AmbiguousPageSlugError"}},F=(e,t,r)=>{let n=new URLSearchParams({...t?{site:t}:{},...r?{draft:"1"}:{}}).toString();return`/api/storefront/${e}/${n?`?${n}`:""}`},x=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,kt=e=>`${x(e)}currencies/`,Tt="/api/storefront/media/ingest/",K=class extends Error{constructor(){super("This editor is not connected to a website, so an upload has nowhere to go. Open the page from the website the file should belong to, then try again."),this.name="MediaUploadDestinationError"}};function Ot(){let e=he();if(!e)throw new K;return`${Tt}?${new URLSearchParams({site:e})}`}var E={"X-Puck-Media-Manifest":re.contentHash},cr=Ie({});function Ie(e){return(t,r={})=>{let n=at(),a=e.headers||n?{...n?{"Accept-Language":n}:{},...e.headers,...r.headers}:void 0;return c(t,{...r,...e.baseUrl!==void 0?{baseUrl:e.baseUrl}:{},...a?{headers:a}:{},audience:e.audience??it()})}}function vt(e={}){let t=Ie(e),r=e.siteDrafts===!0,n=i=>F("header-settings",i,r),a=i=>F("theme-settings",i,r),l=i=>F("chat-settings",i,r),p=i=>F("social-settings",i,r);return{findPageBySlug:async(i,s,o)=>{let u=new URLSearchParams({slug:i});o&&u.set("site",o);let g=await t(`/api/storefront/pages/?${u.toString()}`,{token:s}),P=Array.isArray(g)?g:g.results??[];if(!o&&P.length>1)throw new G(i,P.length);return P[0]??null},getPageById:(i,s)=>t(`/api/storefront/pages/${i}/`,{token:s}),saveLayout:(i,s,o,u,g)=>t(`/api/storefront/pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s,expected_updated_at:u,...g?{client_id:g}:{}}),token:o}),createPagePreviewLink:(i,s)=>t(`/api/storefront/pages/${i}/preview-link/`,{method:"POST",token:s}),claimPageEditLock:(i,s,o,u=!1)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:o,takeover:u}),token:s}),releasePageEditLock:(i,s)=>t(`/api/storefront/pages/${i}/edit-lock/`,{method:"DELETE",token:s}),createTemplate:(i,s,o)=>t("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:i,layout:s}),headers:E,token:o}),getTemplate:(i,s)=>t(`/api/storefront/page-templates/${i}/`,{token:s}),saveTemplateLayout:(i,s,o)=>t(`/api/storefront/page-templates/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:E,token:o}),listTemplatePages:async(i,s)=>{let o=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}`,{token:s});return Array.isArray(o)?o:o.results??[]},findTemplatePageBySlug:async(i,s,o)=>{let u=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(i)}&slug=${encodeURIComponent(s)}`,{token:o});return(Array.isArray(u)?u:u.results??[])[0]??null},createTemplatePage:(i,s,o)=>t("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:i,...s}),headers:E,token:o}),saveTemplatePageLayout:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"PATCH",body:JSON.stringify({layout:s}),headers:E,token:o}),deleteTemplatePage:(i,s,o)=>t(`/api/storefront/template-pages/${i}/`,{method:"DELETE",token:s,...o?.keepalive?{keepalive:!0}:{}}),listPages:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/pages/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},createPage:(i,s,o,u)=>t("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:i,slug:s,layout:o}),token:u}),deletePage:(i,s)=>t(`/api/storefront/pages/${i}/`,{method:"DELETE",token:s}),getHeaderSettings:(i,s)=>t(n(s),{token:i}),listMenus:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("site",s);let u=await t(`/api/storefront/menus/?${o}`,{token:i});return Array.isArray(u)?u:u.results??[]},listBlogPosts:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/blog-posts/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]},listFieldUsage:async(i,s)=>{let o=await t(`/api/storefront/field-usage/?site=${encodeURIComponent(s)}`,{token:i});return Array.isArray(o?.entries)?o.entries:[]},listCategories:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.visibleOnly&&o.set("is_visible","true"),s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/categories/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.sort_order-k.sort_order||P.name.localeCompare(k.name))},listForms:async(i,s={})=>{let o=new URLSearchParams({no_page:"true"});s.siteId&&o.set("site",s.siteId);let u=await t(`/api/storefront/forms/?${o.toString()}`,{token:i});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.title.localeCompare(k.title))},listWheelSummaries:async(i,s={})=>{let o=new URLSearchParams;s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/wheel-curations/summaries/${u?`?${u}`:""}`,{token:i});return S(g)},listProducts:async(i,s={})=>{let o=new URLSearchParams;s.kinds?.length&&o.set("kind",s.kinds.join(",")),s.siteId&&o.set("site",s.siteId);let u=o.toString(),g=await t(`/api/storefront/products/${u?`?${u}`:""}`,{token:i});return S(g)},getWheelDetail:async(i,s,o={})=>{let u=new URLSearchParams({slug:s});return o.siteId&&u.set("site",o.siteId),A(S(await t(`/api/storefront/wheel-curations/detail/?${u.toString()}`,{token:i})))},updateHeaderSettings:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSite:(i,s)=>t(x(i),{token:s}),listSites:async i=>{let s=await t("/api/storefront/sites/?no_page=true",{token:i});return Array.isArray(s)?s:s.results??[]},listSiteCurrencies:async(i,s)=>{let o=await t(kt(i),{token:s});return Array.isArray(o)?o:[]},publishSite:(i,s)=>t(`${x(i)}publish/`,{method:"POST",token:s}),getSiteLiveState:(i,s)=>t(`${x(i)}live-state/`,{token:s}),updateSite:(i,s,o)=>t(x(i),{method:"PATCH",body:JSON.stringify(s),token:o}),getThemeSettings:(i,s)=>t(a(s),{token:i}),updateThemeSettings:(i,s,o)=>t(a(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getChatSettings:(i,s)=>t(l(s),{token:i}),updateChatSettings:(i,s,o)=>t(l(o),{method:"PATCH",body:JSON.stringify(i),token:s}),getSocialSettings:(i,s)=>t(p(s),{token:i}),updateSocialSettings:(i,s,o)=>t(p(o),{method:"PATCH",body:JSON.stringify(i),token:s}),uploadHeaderLogo:(i,s,o)=>{let u=new FormData;return u.append("logo",i),t(n(o),{method:"PATCH",body:u,token:s})},clearHeaderLogo:(i,s)=>t(n(s),{method:"PATCH",body:JSON.stringify({logo:null}),token:i}),setHeaderLogoFromAsset:(i,s,o)=>t(n(o),{method:"PATCH",body:JSON.stringify({logo_asset_id:i}),token:s}),uploadMedia:async(i,s)=>{let o=new FormData;return o.append("file",i),t(Ot(),{method:"POST",body:o,token:s})},listMedia:async(i,s)=>{let o=new URLSearchParams({no_page:"true"});s&&o.set("kind",s);let u=await t(`/api/storefront/media-assets/?${o.toString()}`,{token:i});return Array.isArray(u)?u:u.results??[]}}}var lr=vt({siteDrafts:!0});export{re as a,B as b,Q as c,X as d,w as e,$e as f,H as g,he as h,Xe as i,f as j,W as k,D as l,Yt as m,er as n,c as o,ut as p,ve as q,Pt as r,wt as s,bt as t,_t as u,ir as v,or as w,ar as x,G as y,cr as z,lr as A};
|