efficient-storefront-blocks 0.77.0 → 0.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/chunks/EditorPreviewCheckout-6S2Q3GXI.js +4 -0
  3. package/dist/chunks/{SiteEditorProvider-R3HXJAPW.js → SiteEditorProvider-B6JGOUMX.js} +1 -1
  4. package/dist/chunks/chunk-IL5OJ6VZ.js +1 -0
  5. package/dist/chunks/chunk-NE47RYTU.js +320 -0
  6. package/dist/chunks/{chunk-GDR5GGVW.js → chunk-WYNB6IMA.js} +1 -1
  7. package/dist/chunks/chunk-ZA227AIS.js +1 -0
  8. package/dist/chunks/{fitment-data-JNQKYQIB.js → fitment-data-KCPZ77HO.js} +1 -1
  9. package/dist/contract.js +1 -1
  10. package/dist/editor/lib/document/blocks/service/ContactCards/fields.js +1 -1
  11. package/dist/editor/lib/document/blocks/service/FooterEmailSignup/fields.js +1 -1
  12. package/dist/editor/lib/document/blocks/service/FooterMessaging/fields.js +1 -1
  13. package/dist/editor/lib/document/blocks/service/MessagingCards/fields.js +1 -1
  14. package/dist/editor/lib/document/blocks/service/OpeningHours/fields.js +1 -1
  15. package/dist/editor/lib/document/blocks/service/RateTable/fields.js +1 -1
  16. package/dist/editor/lib/document/box-header.d.ts +1 -1
  17. package/dist/editor/lib/document/config.js +1 -1
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +28 -34
  20. package/dist/links.js +1 -1
  21. package/dist/render/app/globals.css +70 -1
  22. package/dist/render/built-with.json +1 -1
  23. package/dist/render/components/checkout/checkout-state.js +3 -3
  24. package/dist/render/components/product-hero/trust-bullets.js +1 -1
  25. package/dist/render/lib/api/index.d.ts +4 -0
  26. package/dist/render/lib/api/index.js +1 -1
  27. package/dist/render/lib/api/types.d.ts +48 -0
  28. package/dist/render/lib/checkout/pay-first.d.ts +5 -1
  29. package/dist/render/lib/checkout/pay-first.js +1 -1
  30. package/dist/render/lib/document/lazy-draws.js +1 -1
  31. package/dist/render/lib/wheels/plp-grid.d.ts +2 -1
  32. package/dist/render/lib/wheels/plp-grid.js +1 -1
  33. package/dist/words.d.ts +11 -0
  34. package/dist/words.js +4 -4
  35. package/package.json +3 -3
  36. package/dist/chunks/EditorPreviewCheckout-GNQP4MQ4.js +0 -4
  37. package/dist/chunks/chunk-BOJGJXIU.js +0 -311
  38. package/dist/chunks/chunk-CAULWKXR.js +0 -1
  39. package/dist/chunks/chunk-ZIZWJZ5T.js +0 -1
  40. /package/dist/chunks/{chunk-BOJGJXIU.js.LEGAL.txt → chunk-NE47RYTU.js.LEGAL.txt} +0 -0
  41. /package/dist/chunks/{chunk-OWYNZAAY.js → chunk-PBU5KHED.js} +0 -0
@@ -1 +0,0 @@
1
- import{a as V,c as T,g as z,i as $,j,l as C}from"./chunk-OWYNZAAY.js";var U="".replace(/\/+$/,"");var B="x-forwarded-for";function Z(e){let t=(e??"").split(",").map(n=>n.trim()).filter(Boolean);return t.length>0?t[t.length-1]:null}var Fe="x-forwarded-host";function Q(e,t,n){let r={};return e&&(r[Fe]=e),t&&n==="uncached"&&(r[B]=t),r}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 Ie="shop_access_token",ne="shop_refresh_token",N=null;function L(){C.removeItem(Ie),C.removeItem(ne)}var w={getAccess(){return N},takeLegacyRefresh(){let e=C.getItem(ne);return L(),e},setTokens(e){N=e,L()},clear(){N=null,L()}};import{efficientClientOpen as Qe}from"efficient-easel/screen/lib/session";function qe(e){return!!e.src}function A(e){let t=e.finishes.filter(qe);if(t.length===e.finishes.length)return e;let n=e.defaultFinish&&t.some(r=>r.name===e.defaultFinish)?e.defaultFinish:null;return{...e,finishes:t,defaultFinish:n}}function $e(e){return e.listable!==!1}function M(e){return e.map(A).filter($e)}var oe=["fill","stroke","stop-color","color","flood-color","lighting-color","solid-color"],ae=new Set(["none","transparent","currentcolor","inherit","initial","unset","context-fill","context-stroke"]),O={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]},ce=12,le=/\burl\(/i,ue=new RegExp(`(?<![-\\w])(${oe.join("|")})(\\s*=\\s*)(["'])([^"']*)\\3`,"gi"),me=new RegExp(`((?:^|[;{\\s"'])(?:${oe.join("|")})\\s*:\\s*)([^;}"'<>]+)`,"gi"),Ue=/<svg\b([^>]*)>/i,Be=/\bfill\s*[=:]/i;function Ne(e){let t=e.replace(ue,(n,r,a,l,d)=>{let s=re(d);return s===null?n:`${r}${a}${l}${s}${l}`}).replace(me,(n,r,a)=>{let l=re(a);return l===null?n:`${r}${l}`});return t=t.replace(Ue,(n,r)=>Be.test(r)?n:`<svg fill="#ffffff"${r}>`),t}function re(e){let t=/!important/i.test(e),n=e.replace(/!important/gi,"").trim().toLowerCase();if(!n||le.test(n)||ae.has(n))return null;let r=n in O?[...O[n],1]:pe(n);if(!r)return null;let[a,l,d,s]=r;if(Math.max(a,l,d)-Math.min(a,l,d)>ce)return null;let i=Le(255-a,255-l,255-d,s);return t?`${i} !important`:i}function Le(e,t,n,r){if(r<1)return`rgba(${e}, ${t}, ${n}, ${r})`;let a=l=>l.toString(16).padStart(2,"0");return`#${a(e)}${a(t)}${a(n)}`}function pe(e){return e.startsWith("#")?Me(e):e.startsWith("rgb")?De(e):e.startsWith("hsl")?Je(e):null}function Me(e){let t=e.slice(1),n=1;if(t.length===3||t.length===4)t.length===4&&(n=parseInt(t[3]+t[3],16)/255),t=t.slice(0,3).split("").map(r=>r+r).join("");else if(t.length===6||t.length===8)t.length===8&&(n=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),n]:null}function De(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[n,r]=t.split("/"),a=n.split(/[\s,]+/).filter(Boolean).slice(0,3);if(a.length<3)return null;let l=a.map(s=>s.endsWith("%")?Math.round(parseFloat(s)/100*255):Math.round(parseFloat(s)));if(l.some(s=>Number.isNaN(s)))return null;let d=r?v(r):He(n);return[l[0],l[1],l[2],d]}function He(e){let t=e.split(/[\s,]+/).filter(Boolean);return t.length>=4?v(t[3]):1}function v(e){let t=e.trim().endsWith("%")?parseFloat(e)/100:parseFloat(e);return Number.isNaN(t)?1:t}function Je(e){let t=e.slice(e.indexOf("(")+1,e.lastIndexOf(")")),[n,r]=t.split("/"),a=n.split(/[\s,]+/).filter(Boolean);if(a.length<3)return null;let l=parseFloat(a[0]),d=parseFloat(a[1])/100,s=parseFloat(a[2])/100;if([l,d,s].some(P=>Number.isNaN(P)))return null;let i=r?v(r):a.length>=4?v(a[3]):1,[o,u,g]=We(l,d,s);return[o,u,g,i]}function We(e,t,n){let r=(1-Math.abs(2*n-1))*t,a=(e%360+360)%360/60,l=r*(1-Math.abs(a%2-1)),d=0,s=0,i=0;a<1?[d,s,i]=[r,l,0]:a<2?[d,s,i]=[l,r,0]:a<3?[d,s,i]=[0,r,l]:a<4?[d,s,i]=[0,l,r]:a<5?[d,s,i]=[l,0,r]:[d,s,i]=[r,0,l];let o=n-r/2;return[Math.round((d+o)*255),Math.round((s+o)*255),Math.round((i+o)*255)]}var se=512*1024;function D(e){return/\.svg(\?|$)/i.test(e)}function Ge(e){return`data:image/svg+xml,${encodeURIComponent(Ne(e))}`}function Ke(e){let t=e.replace(/!important/gi,"").trim().toLowerCase();if(!t||le.test(t)||ae.has(t))return null;let n=t in O?[...O[t],1]:pe(t);if(!n)return null;let[r,a,l]=n;return Math.max(r,a,l)-Math.min(r,a,l)>ce?null:(.2126*r+.7152*a+.0722*l)/255}function Ve(e){let t=[],n=r=>{let a=Ke(r);a!==null&&t.push(a)};for(let r of e.matchAll(ue))n(r[4]);for(let r of e.matchAll(me))n(r[2]);return t.length?t.reduce((r,a)=>r+a,0)/t.length<.5:null}var ie=/^(?:\uFEFF|\s+|<\?xml[^>]*\?>|<!--[\s\S]*?-->|<!DOCTYPE\s+svg[^>[]*>)/i;function ze(e){let t=e;for(let n=ie.exec(t);n&&n[0].length>0;n=ie.exec(t))t=t.slice(n[0].length);return/^<svg[\s>/]/i.test(t)}async function je(e,t){if(!D(e))return null;try{let n=await fetch(e,{signal:t,redirect:"manual"});if(!n.ok)return null;let r=Number(n.headers.get("content-length"));if(Number.isFinite(r)&&r>se)return null;let a=await n.text();return a.length>se?null:ze(a)?a:null}catch{return null}}async function de(e,t){let n=await je(e,t);return n===null?null:{reversed:Ge(n),inkIsDark:Ve(n)}}import{currentEaselSession as Ze,setSessionBridgedSite as Ht,setSessionDocumentSite as Jt}from"efficient-easel/screen/lib/session";function ge(){return Ze().siteId()}var Xe="",f=class extends Error{constructor(t,n,r){super(n),this.status=t,this.data=r}},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]),H=0,et="This editor runs on its host's own backend, which does not serve this request.",tt=5e3,nt=15e3,rt=()=>typeof window>"u"?tt:nt;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(rt())}var he=e=>e instanceof Error&&e.name==="TimeoutError",ye=(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})*$/,xe=null;function en(e){xe=e&&ot.test(e)?e:null}function at(){return xe}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:n,baseUrl:r,headers:a,audience:l,...d}=t;if(typeof window<"u"&&!Qe())throw new f(H,et,null);if(typeof window>"u"&&r===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 s=typeof FormData<"u"&&d.body instanceof FormData,i;try{i=await fetch(`${r??Xe}${ct(e)}`,{...d,headers:{...s?{}:{"Content-Type":"application/json"},...n?{Authorization:`Bearer ${n}`}:{},...l===null?{}:{"X-Portal-Audience":l??"shop"},...a},signal:d.signal??Re({...d,audience:l})})}catch(g){throw g instanceof TypeError||he(g)?new f(H,W,null):g}let o;try{o=await i.text()}catch(g){throw he(g)?new f(H,W,null):g}let u=null;if(o)try{u=JSON.parse(o)}catch{throw new f(i.status,i.ok?"Expected JSON but received a non-JSON response":ye(i.status,i.statusText),o)}if(!i.ok){let g=(u&&typeof u=="object"&&"detail"in u&&typeof u.detail=="string"?u.detail:null)??ye(i.status,i.statusText);throw new f(i.status,g,u)}return u}var R=null;async function ke(){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 Te(){return w.getAccess()??ke()}async function h(e,t={}){let n;try{n=await Te()}catch{throw w.clear(),new f(401,"Not signed in",null)}try{return await c(e,{...t,token:n})}catch(r){if(!(r instanceof f)||r.status!==401)throw r;try{let a=await ke();return await c(e,{...t,token:a})}catch{throw w.clear(),r}}}async function fe(e,t={}){if(w.getAccess())try{return{data:await h(e,t),asShopper:!0}}catch(n){if(!(n instanceof f)||n.status!==401)throw n}return{data:await c(e,t),asShopper:!1}}async function Se(){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 Te();return await Se(),e},me:Se,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,n)=>c("/api/auth/password-reset/confirm/",{method:"POST",body:JSON.stringify({uid:e,token:t,new_password:n})}),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 n=new FormData;return n.append("claim_item",e),n.append("file",t),n.append("media_type",t.type.startsWith("video/")?"video":"image"),h("/api/shop-portal/return-media/",{method:"POST",body:n})}};function S(e){if(typeof e=="string")return e.startsWith("/media/")?V(e):e;if(Array.isArray(e))return e.map(S);if(e&&typeof e=="object"){let t={};for(let[n,r]of Object.entries(e))t[n]=n==="captions"&&r&&typeof r=="object"&&!Array.isArray(r)?Object.fromEntries(Object.entries(r).map(([a,l])=>[S(a),l])):S(r);return t}return e}var Ce=typeof window>"u"&&U!=="",mt=Ce?U:"",pt=j,b=()=>({baseUrl:pt(),audience:null});function m(e,t){let n=t?`?process=${encodeURIComponent(t)}`:"";return`/api/v1${e}${n}`}var dt=100,Pe=50;function Oe(e,t,n){let r=new URLSearchParams;for(let[a,l]of Object.entries(t))l!=null&&l!==""&&r.set(a,String(l));return r.set("pageSize",String(dt)),n&&r.set("cursor",n),`/api/v1${e}?${r.toString()}`}function gt(e,t){return Oe("/wheels",{process:e},t)}function ht(e,t,n){return Oe("/products",{kind:e.join(","),make:t?.make,model:t?.model,year:t?.year,modification:t?.modification},n)}function yt(e){if(!e)return null;try{return new URL(e,"http://cursor.invalid").searchParams.get("cursor")}catch{return null}}async function we(e,t,n=()=>!1){let r=[],a=null;try{for(let l=0;l<Pe;l++){let d=await c(await t(a),await p());if(r.push(...d.results),a=yt(d.next),!a)break}a&&console.warn(`[${e}] stopped at ${Pe} pages (${r.length} rows); catalog may be truncated`)}catch(l){if(n(l))throw l;console.warn(`[${e}] product API unavailable, returning []`,l)}return r}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(),n=l=>l?.split(",")[0]?.split(":")[0]?.trim().toLowerCase()||null,r=n(t.get(ee)??t.get("x-forwarded-host")??t.get("host")),a=n(t.get("host"));return{host:r,matchesRequestHost:r!==null&&r===a}}catch{return{host:null,matchesRequestHost:!1}}}async function wt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return Z((await e()).get(B))}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 xt(){try{let{headers:e}=await import("./headers-UYHEZDAT.js");return(await e()).get("user-agent")}catch{return null}}async function J(e,t){let n=await _t();if(n===null)return[await y(e),await p(t)];let r=q(await y(e),`${Rt}=${encodeURIComponent(n)}`),{next:a,cache:l,...d}=t??{},s=await p({...d,cache:"no-store"}),i=await xt();return i&&(s.headers={...s.headers,"user-agent":i}),[r,s]}async function kt(e){if(!Ce)return;let[t,n]=await Promise.all([ve(),wt()]),r=Q(t,n,e);return Object.keys(r).length>0?r:void 0}async function p(e){let t=await kt(X(e)),n={baseUrl:mt,...e};return t&&(n.headers={...t,...e?.headers}),n}var _=typeof window>"u";function x(e,t){let n=new URLSearchParams;for(let[a,l]of Object.entries(t))l!==void 0&&l!==""&&n.set(a,String(l));let r=n.toString();return`/api/v1/fitment${e}${r?`?${r}`:""}`}var on={listMakes:async e=>{if(_){let{fitmentData:n}=await import("./fitment-data-JNQKYQIB.js");return n.makes(e)}return(await c(x("/makes",{region:e}),b())).results},listModels:async(e,t)=>{if(_){let{fitmentData:r}=await import("./fitment-data-JNQKYQIB.js");return r.models(e,t)}return(await c(x("/models",{make:e,region:t}),b())).results},listYears:async(e,t,n)=>{if(_){let{fitmentData:a}=await import("./fitment-data-JNQKYQIB.js");return a.years(e,t,n)}return(await c(x("/years",{make:e,model:t,region:n}),b())).results},listModifications:async(e,t,n,r)=>{if(_){let{fitmentData:l}=await import("./fitment-data-JNQKYQIB.js");return l.modifications(e,t,n,r)}return(await c(x("/modifications",{make:e,model:t,year:n,region:r}),b())).results},getStockFitment:async(e,t,n,r,a)=>{if(_){let{fitmentData:l}=await import("./fitment-data-JNQKYQIB.js");return l.stockFitment(e,t,n,r,a)}return c(x("/stock-fitment",{make:e,model:t,year:n,modification:r,region:a}),b())}},an={listWheels:async(e,t={})=>{let n=await we("products.listWheels",async r=>await y(gt(e,r)),t.throwOnFailure?()=>!0:void 0);return M(S(n))},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 n=await we("products.listCatalog",async r=>await y(ht(e,t,r)),ft);return St(S(n))},getWheel:async e=>A(S(await c(await y(m(`/wheels/${e}`)),await p()))),getTyre:async e=>S(await c(await y(m(`/tyres/${e}`)),await p())),listBundles:async(e={})=>{try{return await c(await y(m("/bundles")),await p())}catch(t){if(e.throwOnFailure)throw t;return[]}},getBundle:async e=>c(await y(m(`/bundles/${e}`)),await p()),listGalleryBuilds:async(e={})=>{let{process:t=null,wheelSlug:n=null}=e;if(typeof window>"u"){let{listGalleryBuilds:r}=await import("./gallery-builds-data-TD3QJK7L.js");return S(r(t,n))}try{let r=new URLSearchParams;t&&r.set("process",t),n&&r.set("wheelSlug",n);let a=r.toString(),l=await c(`/api/v1/gallery-builds${a?`?${a}`:""}`,b());return S(l.results)}catch(r){return console.warn("[products.listGalleryBuilds] product API unavailable, returning []",r),[]}},getSite:async()=>c(await y(m("/site")),await p()),getSiteBySlug:async e=>c(`${m("/site")}?${new URLSearchParams({site:e})}`,typeof window>"u"?await p():void 0),listPages:async()=>S(await c(await y(m("/pages")),await p())),listPopups:async()=>c(await y(m("/popups")),await p()),listProductTemplates:async()=>{try{return await c(await y(m("/product-templates")),await p())}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 p())}catch(n){if(n instanceof f&&n.status===404)return[];throw n}},getRecord:async(e,t)=>{try{return await c(await y(m(`/records/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)),await p())}catch(n){if(n instanceof f&&n.status===404)return null;throw n}},listRecordKeys:async e=>{try{let t=await c(await y(m(`/records/${encodeURIComponent(e)}`)),await p({cache:"no-store"}));return Array.isArray(t?.keys)?t.keys.filter(n=>typeof n=="string"&&n!==""):[]}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 p())}catch(e){return console.warn("[products.listProductTypeChoices] unavailable, returning []",e),[]}},listFieldUsage:async()=>{try{return await c(await y(m("/field-usage")),await p())}catch(e){return console.warn("[products.listFieldUsage] unavailable, returning []",e),[]}},getPage:async(e,t={})=>{let n=t.record?`?record=${encodeURIComponent(t.record)}`:"",[r,a]=await J(m(`/pages/${e}`)+n,t.revalidate!==void 0?{next:{revalidate:t.revalidate}}:void 0);return S(await c(r,a))},listBlogPosts:async(e={},{throwOnFailure:t=!1}={})=>{let n=e.category?`?category=${encodeURIComponent(e.category)}`:"";try{return(await c(m("/blog-posts")+n,await p())).map(a=>({...a,coverImage:T(a.coverImage)??""}))}catch(r){if(t)throw r;return console.warn("[products.listBlogPosts] blog API unavailable, returning []",r),[]}},getBlogPost:async e=>{let t=await c(m(`/blog-posts/${e}`),await p());return{...t,coverImage:T(t.coverImage)??""}},createOrder:async e=>c(m("/orders"),await p({method:"POST",body:JSON.stringify(e)})),createOrderAuthed:async e=>h(m("/orders"),await p({method:"POST",body:JSON.stringify(e)})),lookupOrder:async e=>c(m("/orders/lookup"),await p({method:"POST",body:JSON.stringify(e)})),createPaymentIntent:async e=>c(m("/payments/intent"),await p({method:"POST",body:JSON.stringify(e)})),createPaypalOrder:async e=>c(m("/payments/paypal/order"),await p({method:"POST",body:JSON.stringify(e)})),capturePaypalOrder:async e=>c(m("/payments/paypal/capture"),await p({method:"POST",body:JSON.stringify(e)})),createAfterpayCheckout:async e=>c(m("/payments/afterpay/checkout"),await p({method:"POST",body:JSON.stringify(e)})),captureAfterpayPayment:async e=>c(m("/payments/afterpay/capture"),await p({method:"POST",body:JSON.stringify(e)})),chargeSquare:async e=>c(m("/payments/square/charge"),await p({method:"POST",body:JSON.stringify(e)})),createGocardlessBillingRequest:async e=>c(m("/payments/gocardless/billing-request"),await p({method:"POST",body:JSON.stringify(e)})),completeGocardlessPayment:async e=>c(m("/payments/gocardless/complete"),await p({method:"POST",body:JSON.stringify(e)})),createZipCheckout:async e=>c(m("/payments/zip/checkout"),await p({method:"POST",body:JSON.stringify(e)})),captureZipPayment:async e=>c(m("/payments/zip/capture"),await p({method:"POST",body:JSON.stringify(e)})),createKlarnaCheckout:async e=>c(m("/payments/klarna/checkout"),await p({method:"POST",body:JSON.stringify(e)})),captureKlarnaPayment:async e=>c(m("/payments/klarna/capture"),await p({method:"POST",body:JSON.stringify(e)})),createStockAlert:async e=>c(m("/stock-alerts"),await p({method:"POST",body:JSON.stringify(e)})),createPreOrderIntent:async e=>c(m("/pre-order-intents"),await p({method:"POST",body:JSON.stringify(e)})),createNewsletterSubscription:async e=>c(m("/newsletter-subscriptions"),await p({method:"POST",body:JSON.stringify(e)})),unsubscribeNewsletter:async e=>c(m("/newsletter-unsubscribe"),await p({method:"POST",body:JSON.stringify(e)})),captureCart:async e=>c(m("/carts"),await p({method:"POST",body:JSON.stringify(e)})),restoreCart:async e=>c(m("/carts/restore"),await p({method:"POST",body:JSON.stringify(e)})),unsubscribeCartReminders:async e=>c(m("/carts/unsubscribe"),await p({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 n=m("/reviews"),r=t.toString();try{return await c(await y(r?`${n}?${r}`:n),await p())}catch(a){return console.warn("[products.listReviews] product API unavailable, returning []",a),[]}},submitReview:async e=>c(m("/reviews"),await p({method:"POST",body:JSON.stringify(e)})),getForm:async e=>c(m(`/forms/${encodeURIComponent(e)}`),await p()),submitForm:async(e,t)=>c(m(`/forms/${encodeURIComponent(e)}/submissions`),await p({method:"POST",body:JSON.stringify(t)})),listShippingMethods:async()=>{try{return await c(m("/shipping-methods"),await p())}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 p())}catch(t){return console.warn("[products.listCountrySubdivisions] unavailable, returning []",t),[]}},quoteCart:async e=>{let t=m("/cart/quote"),n=await p({method:"POST",body:JSON.stringify(e)});return e.couponCode?(await fe(t,n)).data:c(t,n)},validateCoupon:async e=>{let{data:t,asShopper:n}=await fe(m("/coupons/validate"),await p({method:"POST",body:JSON.stringify(e)}));return{...t,askedAsShopper:n}},getHeaderSettings:async()=>{let e=Re({method:"GET"}),t=await c(...await J(m("/header-settings"),{signal:e})),n=T(t.logoUrl),r=null,a=null;if(n&&D(n)){let l=await de(n,e);l&&(r=l.reversed,a=l.inkIsDark)}return{...t,logoUrl:n,logoReversed:r,logoInkIsDark:a}},getThemeSettings:async()=>c(...await J(m("/theme-settings"))),getChatSettings:async()=>c(await y(m("/chat-settings")),await p())},cn={listServices:async()=>{try{return await c(m("/bookings/services"),await p())}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 p()),create:async e=>c(m("/bookings"),await p({method:"POST",body:JSON.stringify(e)})),get:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}`),await p()),cancel:async e=>c(m(`/bookings/manage/${encodeURIComponent(e)}/cancel`),await p({method:"POST"})),createPaymentIntent:async e=>c(m("/bookings/payments/intent"),await p({method:"POST",body:JSON.stringify({manageToken:e})}))},G=class extends Error{constructor(n,r){super(`Slug "${n}" exists on ${r} websites; a site is required to pick one.`);this.slug=n;this.count=r;this.name="AmbiguousPageSlugError"}},E=(e,t,n)=>{let r=new URLSearchParams({...t?{site:t}:{},...n?{draft:"1"}:{}}).toString();return`/api/storefront/${e}/${r?`?${r}`:""}`},I=e=>`/api/storefront/sites/${encodeURIComponent(e)}/`,Tt=e=>`${I(e)}currencies/`,Ct="/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=ge();if(!e)throw new K;return`${Ct}?${new URLSearchParams({site:e})}`}var vt="X-Puck-Media-Manifest",be=z.contentHash,F={"X-Media-Manifest":be,[vt]:be},ln=Ee({});function Ee(e){return(t,n={})=>{let r=at(),a=e.headers||r?{...r?{"Accept-Language":r}:{},...e.headers,...n.headers}:void 0;return c(t,{...n,...e.baseUrl!==void 0?{baseUrl:e.baseUrl}:{},...a?{headers:a}:{},audience:e.audience??it()})}}function Et(e={}){let t=Ee(e),n=e.siteDrafts===!0,r=s=>E("header-settings",s,n),a=s=>E("theme-settings",s,n),l=s=>E("chat-settings",s,n),d=s=>E("social-settings",s,n);return{findPageBySlug:async(s,i,o)=>{let u=new URLSearchParams({slug:s});o&&u.set("site",o);let g=await t(`/api/storefront/pages/?${u.toString()}`,{token:i}),P=Array.isArray(g)?g:g.results??[];if(!o&&P.length>1)throw new G(s,P.length);return P[0]??null},getPageById:(s,i)=>t(`/api/storefront/pages/${s}/`,{token:i}),saveLayout:(s,i,o,u,g)=>t(`/api/storefront/pages/${s}/`,{method:"PATCH",body:JSON.stringify({layout:i,expected_updated_at:u,...g?{client_id:g}:{}}),token:o}),duplicatePage:(s,i,o)=>t(`/api/storefront/pages/${s}/duplicate/`,{method:"POST",body:JSON.stringify({title:i.title,slug:i.slug}),token:o}),geocode:(s,i,o)=>t(`/api/storefront/geocode/?${new URLSearchParams(o?{q:s,country:o}:{q:s})}`,{token:i}),listBlockSources:s=>t("/api/storefront/block-sources/",{token:s}),listRecordTypes:s=>t("/api/storefront/record-types/",{token:s}),createPagePreviewLink:(s,i)=>t(`/api/storefront/pages/${s}/preview-link/`,{method:"POST",token:i}),claimPageEditLock:(s,i,o,u=!1)=>t(`/api/storefront/pages/${s}/edit-lock/`,{method:"POST",body:JSON.stringify({client_id:o,takeover:u}),token:i}),releasePageEditLock:(s,i)=>t(`/api/storefront/pages/${s}/edit-lock/`,{method:"DELETE",token:i}),createTemplate:(s,i,o)=>t("/api/storefront/page-templates/",{method:"POST",body:JSON.stringify({name:s,layout:i}),headers:F,token:o}),getTemplate:(s,i)=>t(`/api/storefront/page-templates/${s}/`,{token:i}),saveTemplateLayout:(s,i,o)=>t(`/api/storefront/page-templates/${s}/`,{method:"PATCH",body:JSON.stringify({layout:i}),headers:F,token:o}),listTemplatePages:async(s,i)=>{let o=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(s)}`,{token:i});return Array.isArray(o)?o:o.results??[]},findTemplatePageBySlug:async(s,i,o)=>{let u=await t(`/api/storefront/template-pages/?template=${encodeURIComponent(s)}&slug=${encodeURIComponent(i)}`,{token:o});return(Array.isArray(u)?u:u.results??[])[0]??null},createTemplatePage:(s,i,o)=>t("/api/storefront/template-pages/",{method:"POST",body:JSON.stringify({template:s,...i}),headers:F,token:o}),saveTemplatePageLayout:(s,i,o)=>t(`/api/storefront/template-pages/${s}/`,{method:"PATCH",body:JSON.stringify({layout:i}),headers:F,token:o}),deleteTemplatePage:(s,i,o)=>t(`/api/storefront/template-pages/${s}/`,{method:"DELETE",token:i,...o?.keepalive?{keepalive:!0}:{}}),listPages:async(s,i)=>{let o=new URLSearchParams({no_page:"true"});i&&o.set("site",i);let u=await t(`/api/storefront/pages/?${o.toString()}`,{token:s});return Array.isArray(u)?u:u.results??[]},createPage:(s,i,o,u)=>t("/api/storefront/pages/",{method:"POST",body:JSON.stringify({title:s,slug:i,layout:o}),token:u}),deletePage:(s,i)=>t(`/api/storefront/pages/${s}/`,{method:"DELETE",token:i}),getHeaderSettings:(s,i)=>t(r(i),{token:s}),listMenus:async(s,i)=>{let o=new URLSearchParams({no_page:"true"});i&&o.set("site",i);let u=await t(`/api/storefront/menus/?${o}`,{token:s});return Array.isArray(u)?u:u.results??[]},listBlogPosts:async(s,i={})=>{let o=new URLSearchParams({no_page:"true"});i.visibleOnly&&o.set("is_visible","true"),i.siteId&&o.set("site",i.siteId);let u=await t(`/api/storefront/blog-posts/?${o.toString()}`,{token:s});return Array.isArray(u)?u:u.results??[]},listFieldUsage:async(s,i)=>{let o=await t(`/api/storefront/field-usage/?site=${encodeURIComponent(i)}`,{token:s});return Array.isArray(o?.entries)?o.entries:[]},listCategories:async(s,i={})=>{let o=new URLSearchParams({no_page:"true"});i.visibleOnly&&o.set("is_visible","true"),i.siteId&&o.set("site",i.siteId);let u=await t(`/api/storefront/categories/?${o.toString()}`,{token:s});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.sort_order-k.sort_order||P.name.localeCompare(k.name))},listForms:async(s,i={})=>{let o=new URLSearchParams({no_page:"true"});i.siteId&&o.set("site",i.siteId);let u=await t(`/api/storefront/forms/?${o.toString()}`,{token:s});return[...Array.isArray(u)?u:u.results??[]].sort((P,k)=>P.title.localeCompare(k.title))},listWheelSummaries:async(s,i={})=>{let o=new URLSearchParams;i.siteId&&o.set("site",i.siteId);let u=o.toString(),g=await t(`/api/storefront/wheel-curations/summaries/${u?`?${u}`:""}`,{token:s});return S(g)},listProducts:async(s,i={})=>{let o=new URLSearchParams;i.kinds?.length&&o.set("kind",i.kinds.join(",")),i.siteId&&o.set("site",i.siteId);let u=o.toString(),g=await t(`/api/storefront/products/${u?`?${u}`:""}`,{token:s});return S(g)},getWheelDetail:async(s,i,o={})=>{let u=new URLSearchParams({slug:i});return o.siteId&&u.set("site",o.siteId),A(S(await t(`/api/storefront/wheel-curations/detail/?${u.toString()}`,{token:s})))},updateHeaderSettings:(s,i,o)=>t(r(o),{method:"PATCH",body:JSON.stringify(s),token:i}),getSite:(s,i)=>t(I(s),{token:i}),listSites:async s=>{let i=await t("/api/storefront/sites/?no_page=true",{token:s});return Array.isArray(i)?i:i.results??[]},listSiteCurrencies:async(s,i)=>{let o=await t(Tt(s),{token:i});return Array.isArray(o)?o:[]},publishSite:(s,i)=>t(`${I(s)}publish/`,{method:"POST",token:i}),getSiteLiveState:(s,i)=>t(`${I(s)}live-state/`,{token:i}),getThemeSettings:(s,i)=>t(a(i),{token:s}),updateThemeSettings:(s,i,o)=>t(a(o),{method:"PATCH",body:JSON.stringify(s),token:i}),getChatSettings:(s,i)=>t(l(i),{token:s}),updateChatSettings:(s,i,o)=>t(l(o),{method:"PATCH",body:JSON.stringify(s),token:i}),getSocialSettings:(s,i)=>t(d(i),{token:s}),updateSocialSettings:(s,i,o)=>t(d(o),{method:"PATCH",body:JSON.stringify(s),token:i}),uploadHeaderLogo:(s,i,o)=>{let u=new FormData;return u.append("logo",s),t(r(o),{method:"PATCH",body:u,token:i})},clearHeaderLogo:(s,i)=>t(r(i),{method:"PATCH",body:JSON.stringify({logo:null}),token:s}),setHeaderLogoFromAsset:(s,i,o)=>t(r(o),{method:"PATCH",body:JSON.stringify({logo_asset_id:s}),token:i}),uploadMedia:async(s,i)=>{let o=new FormData;return o.append("file",s),t(Ot(),{method:"POST",body:o,token:i})},listMedia:async(s,i)=>{let o=new URLSearchParams({no_page:"true"});i&&o.set("kind",i);let u=await t(`/api/storefront/media-assets/?${o.toString()}`,{token:s});return Array.isArray(u)?u:u.results??[]}}}var un=Et({siteDrafts:!0});export{U as a,Q as b,X as c,w as d,qe as e,D as f,ge as g,Xe as h,f as i,W as j,H as k,Yt as l,en as m,c as n,ut as o,ve as p,Pt as q,wt as r,bt as s,_t as t,on as u,an as v,cn as w,G as x,ln as y,un as z};
@@ -1 +0,0 @@
1
- import{jsx as Me}from"react/jsx-runtime";import{createContext as _n,useCallback as i,useContext as yn,useMemo as bn,useState as En}from"react";import{createContext as ye,useContext as D}from"react";import{createContext as At}from"react";var _e=At(null);var Lt=ye(null),P=ye({logo:null,placeholder:!1,wordmark:null});function Gn(){let e=D(_e),t=D(Lt),n=D(P),a=!e&&n.placeholder,o=e?e.logoUrl:n.logo?.logoUrl??t?.logoUrl??null;return{src:a?null:o,reversedSrc:e?e.logoReversed:n.logo?.logoReversed??t?.logoReversed??null,inkIsDark:e?e.logoInkIsDark:n.logo?.logoInkIsDark??t?.logoInkIsDark??null,wordmark:e?null:n.wordmark,siteName:e?.siteName??t?.siteName}}import{contrastRatio as Wn,hexToRgb as k,parseHexColor as I,readableInk as kt,relativeLuminance as It}from"efficient-shell/format";var $n="storefront-theme",zn="sf:theme-mode",Vn="sf:theme-switch",Yn="hide",W="light",$=!1,Ot=7,xt=18;function Rt(e){return e>=Ot&&e<xt}function Xn(e){let{mode:t,override:n,switchShown:a,hour:o}=e;return a&&(n==="light"||n==="dark")?n:t==="auto"?Rt(o)?"light":"dark":t==="light"?"light":"dark"}var m={background:"#0a0a0a",surface:"#131313",line:"#2a2a2a",muted:"#9a9388"},Ht=[{text:"#2e2e2e",accent:"#2e2e2e",background:"#ffffff",surface:"#f7f7f7",line:"#e0e0e0",muted:"#5c5c5c"},{text:"#f7f7f7",accent:"#f7f7f7",background:"#0a0a0a",surface:"#1b1b1b",line:"#363636",muted:"#a3a3a3"},{text:"#ffffff",accent:"#ffffff",background:"#2e2e2e",surface:"#3d3d3d",line:"#545454",muted:"#b0b0b0"},{text:"#0a0a0a",accent:"#0a0a0a",background:"#f7f7f7",surface:"#ffffff",line:"#d9d9d9",muted:"#5c5c5c"}],O={selected:0,themes:Ht};function Te(e){return!e||!Array.isArray(e.themes)||e.themes.length===0?{...O}:{selected:Math.min(Math.max(0,e.selected??0),e.themes.length-1),themes:e.themes}}function F(e,t,n){let a=k(e),o=k(t);if(a===null||o===null)return e;let s=(l,c)=>Math.max(0,Math.min(255,Math.round(l+(c-l)*n))).toString(16).padStart(2,"0");return`#${s(a.r,o.r)}${s(a.g,o.g)}${s(a.b,o.b)}`}var Mt={light:"#ffffff",dark:"#0a0a0a"},jn=["light","dark"];function Kn(e,t){let n=Mt[t],a=t==="light"?"#ffffff":"#000000";return{text:n,accent:n,background:e,surface:F(e,a,.1),line:F(e,a,.22),muted:F(n,e,.35),brandInk:t}}function y(e){let t=Te(e);return t.themes[t.selected]}function z(e){return{text:e.text,accent:e.accent,background:e.background||m.background,surface:e.surface||m.surface,line:e.line||m.line,muted:e.muted||m.muted}}var Dt=.4,Pt=4.5,Ft=3,qn={good:"Good","large-only":"Large text only",hard:"Hard to read"};function Zn(e){return e>=Pt?"good":e>=Ft?"large-only":"hard"}var Nt=["#000000","#ffffff"];function x(e){return kt(e,Nt)}var vt=[.25,.4,.55];function Jn(e){let t=k(e);return t===null?[]:vt.map(n=>"#"+[t.r,t.g,t.b].map(a=>Math.round(a*(1-n)).toString(16).padStart(2,"0")).join(""))}function Qn(e){let t=y(e),n={"--theme-fg":t.text},a=It(t.text);return(a===null||a>=Dt)&&(n["--overlay-fg"]=t.text),n}var Gt=82;function V(e){return`color-mix(in srgb, ${e} ${Gt}%, #000)`}function ea(e){let t=y(e);return{"--theme-accent":t.accent,"--theme-accent-2":V(t.accent),"--theme-accent-ink":x(t.accent)}}function Y(e){let t=e?.button;return t&&I(t)===t.toLowerCase()?t.toLowerCase():null}function ta(e){let t=y(e),n=Y(t),a=we(t);if(n===null&&a===null)return{};let o={};return n!==null&&(o["--theme-btn"]=n,o["--theme-btn-2"]=V(n)),o["--theme-btn-ink"]=a??x(n),o}function we(e){let t=e?.buttonInk;return t&&I(t)===t.toLowerCase()?t.toLowerCase():null}function Bt(e,t){return we(e)??x(Y(e)??t)}function na(e){let t=y(e);return{fill:Y(t)??t.accent.toLowerCase(),ink:Bt(t,t.accent)}}function aa(e){let t={};return Te(e).themes.forEach((n,a)=>{let o=z(n);t[`--theme-preset-${a}-accent`]=o.accent,t[`--theme-preset-${a}-accent-2`]=V(o.accent),t[`--theme-preset-${a}-accent-ink`]=x(o.accent),t[`--theme-preset-${a}-bg`]=o.background,t[`--theme-preset-${a}-fg`]=o.text,t[`--theme-preset-${a}-surface`]=o.surface,t[`--theme-preset-${a}-surface-2`]=`color-mix(in srgb, ${o.surface} 60%, ${o.line})`,t[`--theme-preset-${a}-line`]=o.line,t[`--theme-preset-${a}-muted`]=o.muted}),t}var N=e=>{let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4},v=e=>255*(e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055);function be([e,t,n]){let[a,o,s]=[N(e),N(t),N(n)],l=Math.cbrt(.4122214708*a+.5363325363*o+.0514459929*s),c=Math.cbrt(.2119034982*a+.6806995451*o+.1073969566*s),u=Math.cbrt(.0883024619*a+.2817188376*o+.6299787005*s);return[.2104542553*l+.793617785*c-.0040720468*u,1.9779984951*l-2.428592205*c+.4505937099*u,.0259040371*l+.7827717662*c-.808675766*u]}function Ut([e,t,n]){let a=(e+.3963377774*t+.2158037573*n)**3,o=(e-.1055613458*t-.0638541728*n)**3,s=(e-.0894841775*t-1.291485548*n)**3;return[v(4.0767416621*a-3.3077115913*o+.2309699292*s),v(-1.2684380046*a+2.6097574011*o-.3413193965*s),v(-.0041960863*a-.7034186147*o+1.707614701*s)]}var G=e=>{let t=k(e);return t===null?[0,0,0]:[t.r,t.g,t.b]},Ee=(e,t,n)=>[e[0]*n+t[0]*(1-n),e[1]*n+t[1]*(1-n),e[2]*n+t[2]*(1-n)],Wt=e=>`#${e.map(t=>Math.max(0,Math.min(255,Math.round(t))).toString(16).padStart(2,"0")).join("")}`;function $t(e){let t=z(e),n=Ee(G(t.surface),G(t.line),.6);return Wt(Ut(Ee(be(n),be(G(t.text)),.92)))}function oa(e,t){let n=e[t];if(!n)return-1;let a=$t(n);return e.findIndex((o,s)=>s!==t&&I(o.background??"")===a)}var ra=["--theme-bg","--theme-surface","--theme-surface-2","--theme-line","--theme-muted"];function sa(e){let t=z(y(e)),n=`color-mix(in srgb, ${t.surface} 60%, ${t.line})`,a={"--theme-bg":t.background,"--theme-surface":t.surface,"--theme-line":t.line,"--theme-muted":t.muted};return(t.surface!==m.surface||t.line!==m.line)&&(a["--theme-surface-2"]=n),a}var zt=["heading","body","label"];function ia(e){if(!e)return null;for(let t of zt)if(e.includes(`--size-${t}`))return t;return/--size-heading(Large|Medium|Small)/.test(e)?"heading":null}var Ce=["headingLarge","headingMedium","headingSmall","accent","body","label"];var X={headingLarge:null,headingMedium:null,headingSmall:null,accent:null,body:null,label:null},Vt=8,Yt=200;function Xt(e){if(typeof e!="number"||!Number.isFinite(e))return null;let t=Math.round(e);return t>=Vt&&t<=Yt?t:null}function jt(e){let t={};for(let n of Ce)t[n]=Xt(e?.[n]);return t}function la(e){let t=jt(e),n={};for(let a of Ce){let o=t[a];o!==null&&(n[`--size-${a}`]=`${o}px`)}return n}var Kt=["square","small","large"],qt="small";function ca(e){return Kt.includes(e??"")?e:qt}var j=0,Zt=40,ua={square:0,small:null,large:16},Ae={"--sf-card-radius":1,"--sf-button-radius":.5,"--site-radius":.5,"--site-radius-xs":.25,"--site-radius-sm":.5,"--site-radius-md":.75,"--site-radius-lg":1,"--site-radius-xl":1.25,"--site-radius-2xl":1.5,"--site-radius-3xl":2,"--site-radius-4xl":2.5};function K(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?Math.min(Zt,Math.max(j,Math.round(t))):null}function Jt(e){let t=K(e);return t===null?{}:Object.fromEntries(Object.entries(Ae).map(([n,a])=>{let o=t*a/16;return[n,o===0?"0":`${o}rem`]}))}function da(e){return(K(e)??j)*Ae["--sf-button-radius"]}function ha(e){return Jt(K(e)??j)}var Qt=["none","soft","lifted"],en="soft",Le="none",tn=["tight","normal","roomy"],nn="normal",R="normal",an=["none","lift","highlight"],on="lift",rn="highlight",ke="#141416";function Ie(e){return Qt.includes(e??"")?e:en}function sn(e){return tn.includes(e??"")?e:nn}function Oe(e){return an.includes(e??"")?e:on}function ln(e){return e&&I(e)===e.toLowerCase()?e.toLowerCase():ke}function ga(e){let t=Ie(e);return t===Le?void 0:t}function fa(e){let t=sn(e);return t===R?void 0:t}function ma(e){let t=Oe(e);return t===rn?void 0:t}function Sa(e,t,n){let a=ln(t);return a===ke?{}:Ie(e)!==Le||Oe(n)==="lift"?{"--sf-shadow-color":a}:{}}var cn=["normal","tight","compressed"],b="normal";function xe(e){return cn.includes(e??"")?e:b}function pa(e){let t=xe(e);return t===b?void 0:t}function _a(e){switch(xe(e)){case"tight":return{lineHeight:.95,letterSpacing:-.01};case"compressed":return{lineHeight:.86,letterSpacing:-.01};default:return{}}}var q={case:"authored",weight:null,weightStrong:null,italicStrong:null,maxPx:null,weight2:null,weight3:null,case2:"authored",case3:"authored"},B=100,U=900,un=24,dn=200;function L(e,t,n){return typeof e!="number"||!Number.isFinite(e)?null:Math.round(Math.min(Math.max(e,t),n))}function Re(e){let t=L(e?.weight,B,U),n=e?.case==="sentence"?"sentence":"authored",a=s=>s==null?t:L(s,B,U),o=s=>s==="sentence"?"sentence":s==="authored"?"authored":n;return{case:n,weight:t,weightStrong:L(e?.weightStrong,B,U),italicStrong:typeof e?.italicStrong=="boolean"?e.italicStrong:null,maxPx:L(e?.maxPx,un,dn),weight2:a(e?.weight2),weight3:a(e?.weight3),case2:o(e?.case2),case3:o(e?.case3)}}function ya(e){let t=Re(e),n={};return t.case==="sentence"&&(n["--sf-heading-case"]="none"),t.weight!==null&&(n["--sf-heading-weight"]=String(t.weight)),t.weightStrong!==null&&(n["--sf-heading-weight-strong"]=String(t.weightStrong)),t.maxPx!==null&&(n["--sf-heading-max"]=`${t.maxPx}px`),t.weight2!==null&&t.weight2!==t.weight&&(n["--sf-heading-2-weight"]=String(t.weight2)),t.weight3!==null&&t.weight3!==t.weight&&(n["--sf-heading-3-weight"]=String(t.weight3)),t.case2!==t.case&&(n["--sf-heading-2-case"]=t.case2==="sentence"?"none":"uppercase"),t.case3!==t.case&&(n["--sf-heading-3-case"]=t.case3==="sentence"?"none":"uppercase"),n}function ba(e){return Re({case:e?.heading_case??void 0,weight:e?.heading_weight,weightStrong:e?.heading_weight_strong,italicStrong:e?.accent_italic,maxPx:e?.heading_max_px,weight2:e?.heading_2_weight??void 0,weight3:e?.heading_3_weight??void 0,case2:e?.heading_2_case??void 0,case3:e?.heading_3_case??void 0})}var He=[{key:"space-grotesk",label:"Space Grotesk",cssVar:"--font-display",category:"sans",italic:!1,italicLoaded:!1},{key:"inter",label:"Inter",cssVar:"--font-body",category:"sans",italic:!0,italicLoaded:!0},{key:"poppins",label:"Poppins",cssVar:"--font-poppins",category:"sans",italic:!0,italicLoaded:!0},{key:"dm-sans",label:"DM Sans",cssVar:"--font-dm-sans",category:"sans",italic:!0,italicLoaded:!0},{key:"sora",label:"Sora",cssVar:"--font-sora",category:"sans",italic:!1,italicLoaded:!1},{key:"oswald",label:"Oswald",cssVar:"--font-oswald",category:"sans",italic:!1,italicLoaded:!1},{key:"archivo",label:"Archivo",cssVar:"--font-archivo",category:"sans",italic:!0,italicLoaded:!0},{key:"outfit",label:"Outfit",cssVar:"--font-outfit",category:"sans",italic:!1,italicLoaded:!1},{key:"manrope",label:"Manrope",cssVar:"--font-manrope",category:"sans",italic:!1,italicLoaded:!1},{key:"big-shoulders",label:"Big Shoulders",cssVar:"--font-big-shoulders",category:"sans",italic:!1,italicLoaded:!1},{key:"michroma",label:"Michroma",cssVar:"--font-michroma",category:"sans",italic:!1,italicLoaded:!1},{key:"assistant",label:"Assistant",cssVar:"--font-assistant",category:"sans",italic:!1,italicLoaded:!1},{key:"fraunces",label:"Fraunces",cssVar:"--font-serif",category:"serif",italic:!0,italicLoaded:!0},{key:"playfair-display",label:"Playfair Display",cssVar:"--font-playfair",category:"serif",italic:!0,italicLoaded:!0},{key:"cormorant",label:"Cormorant",cssVar:"--font-cormorant",category:"serif",italic:!0,italicLoaded:!0},{key:"jetbrains-mono",label:"JetBrains Mono",cssVar:"--font-mono-loaded",category:"mono",italic:!0,italicLoaded:!0}],p=new Map(He.map(e=>[e.key,e]));function Ta(e){return p.get(e)}var Z=["heading","heading2","heading3","body","accent","label"];function wa(e){return typeof e=="string"&&Z.includes(e)?e:null}var Ca={heading:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",body:"Body",accent:"Accent",label:"Labels"},hn=[["font-heading2","heading2"],["font-heading3","heading3"],["font-display","heading"],["font-serif","accent"],["font-mono","label"],["font-body","body"]],gn=/var\(--size-(headingLarge|headingMedium|headingSmall|accent|body|label)\s*,/,Aa={heading:"headingLarge",heading2:"headingMedium",heading3:"headingSmall",accent:"accent",body:"body",label:"label"},fn={headingLarge:"heading",headingMedium:"heading2",headingSmall:"heading3",accent:"accent",body:"body",label:"label"};function La(e){let t=e?gn.exec(e):null;return t?fn[t[1]]??null:mn(e)}function mn(e){if(!e)return null;let t=e.split(/\s+/).filter(n=>!n.slice(0,n.lastIndexOf(":")+1).includes("&")).map(n=>n.slice(n.lastIndexOf(":")+1));for(let[n,a]of hn)if(t.includes(n))return a;return null}var h={heading:"space-grotesk",heading2:"space-grotesk",heading3:"space-grotesk",body:"inter",accent:"fraunces",label:"jetbrains-mono"};function Sn(e){let t=n=>{let a=e?.[n];if(a&&p.has(a))return a;if(n==="heading2"||n==="heading3"){let o=e?.heading;return o&&p.has(o)?o:h.heading}return h[n]};return Object.fromEntries(Z.map(n=>[n,t(n)]))}function pn(e,t){return p.get(e[t])??p.get(h[t])}function S(e,t){return`var(${pn(e,t).cssVar})`}var ka=[...new Set(Z.map(e=>p.get(h[e]).cssVar))],Ia=[...new Set(He.map(e=>e.cssVar))];function Oa(e){let t=Sn(e);return{"--font-role-heading":S(t,"heading"),"--font-role-heading2":S(t,"heading2"),"--font-role-heading3":S(t,"heading3"),"--font-role-body":S(t,"body"),"--font-role-accent":S(t,"accent"),"--font-role-label":S(t,"label"),fontFamily:"var(--font-role-body)"}}var De=_n({settings:null,setSettings:()=>{},primeSettings:()=>{},websiteName:null,templateChrome:!1,templateName:null,chromePlaceholder:!1,themeMode:W,setThemeMode:()=>{},themeSwitchShown:$,setThemeSwitchShown:()=>{},theme:O,themeRow:"none",setTheme:()=>{},fonts:h,setFonts:()=>{},sizes:X,setSizes:()=>{},cornerRadiusPx:null,setCornerRadiusPx:()=>{},cardShadow:null,setCardShadow:()=>{},shadowColor:null,setShadowColor:()=>{},cardGap:R,setCardGap:()=>{},hoverEffect:null,setHoverEffect:()=>{},headingCompression:b,setHeadingCompression:()=>{},siteWidth:null,setSiteWidth:()=>{},siteGutter:null,blockGap:null,setSiteGutter:()=>{},setBlockGap:()=>{},headingTypography:q,setHeadingTypography:()=>{},textStyles:null,setTextStyles:()=>{},wordStyles:null,heroBackgroundFollowsWidth:null,setHeroBackgroundFollowsWidth:()=>{},sectionBackgroundWidth:null,setSectionBackgroundWidth:()=>{},sectionContentWidth:null,setSectionContentWidth:()=>{},photographyGrayscale:null,setPhotographyGrayscale:()=>{},shareButtonOnPosts:null,setShareButtonOnPosts:()=>{},themeFromDocument:!1});function Fa({children:e,websiteName:t=null,templateChrome:n=!1,templateName:a=null,chromePlaceholder:o=!1,themeMode:s=W,onThemeModeChange:l,themeSwitchShown:c=$,onThemeSwitchShownChange:u,theme:E=O,themeRow:T="none",onThemeChange:g,fonts:w=h,onFontsChange:f,sizes:d=X,onSizesChange:C,cornerRadiusPx:H=null,onCornerRadiusPxChange:A,cardShadow:M=null,onCardShadowChange:J,shadowColor:Ge=null,onShadowColorChange:Q,cardGap:Be=R,onCardGapChange:ee,hoverEffect:Ue=null,onHoverEffectChange:te,headingCompression:We=b,onHeadingCompressionChange:ne,siteWidth:$e=null,onSiteWidthChange:ae,siteGutter:ze=null,blockGap:Ve=null,onSiteGutterChange:oe,onBlockGapChange:re,headingTypography:Ye=q,onHeadingTypographyChange:se,textStyles:Xe=null,onTextStylesChange:ie,wordStyles:je=null,heroBackgroundFollowsWidth:Ke=null,onHeroBackgroundFollowsWidthChange:le,sectionBackgroundWidth:qe=null,onSectionBackgroundWidthChange:ce,sectionContentWidth:Ze=null,onSectionContentWidthChange:ue,photographyGrayscale:Je=null,onPhotographyGrayscaleChange:de,shareButtonOnPosts:Qe=null,onShareButtonOnPostsChange:he,themeFromDocument:et=!1}){let[_,ge]=En(null),tt=i(r=>ge(Ct=>Ct??r),[]),nt=i(r=>l?.(r),[l]),at=i(r=>u?.(r),[u]),ot=i(r=>g?.(r),[g]),rt=i(r=>f?.(r),[f]),st=i(r=>C?.(r),[C]),it=i(r=>ae?.(r),[ae]),lt=i(r=>oe?.(r),[oe]),ct=i(r=>re?.(r),[re]),ut=i(r=>le?.(r),[le]),dt=i(r=>ce?.(r),[ce]),ht=i(r=>ue?.(r),[ue]),gt=i(r=>de?.(r),[de]),ft=i(r=>he?.(r),[he]),mt=i(r=>A?.(r),[A]),St=i(r=>J?.(r),[J]),pt=i(r=>Q?.(r),[Q]),_t=i(r=>ee?.(r),[ee]),yt=i(r=>te?.(r),[te]),bt=i(r=>ne?.(r),[ne]),Et=i(r=>se?.(r),[se]),Tt=i(r=>ie?.(r),[ie]),fe=_?.logoUrl,me=_?.logoReversed,Se=_?.logoInkIsDark,pe=_!==null,wt=bn(()=>({logo:pe?{logoUrl:fe,logoReversed:me,logoInkIsDark:Se}:null,placeholder:n||o,wordmark:n?a:t}),[pe,fe,me,Se,n,o,a,t]);return Me(P.Provider,{value:wt,children:Me(De.Provider,{value:{settings:_,setSettings:ge,primeSettings:tt,websiteName:t,templateChrome:n,templateName:a,chromePlaceholder:o,themeMode:s,setThemeMode:nt,themeSwitchShown:c,setThemeSwitchShown:at,theme:E,themeRow:T,setTheme:ot,fonts:w,setFonts:rt,sizes:d,setSizes:st,cornerRadiusPx:H,setCornerRadiusPx:mt,cardShadow:M,setCardShadow:St,shadowColor:Ge,setShadowColor:pt,cardGap:Be,setCardGap:_t,hoverEffect:Ue,setHoverEffect:yt,headingCompression:We,setHeadingCompression:bt,siteWidth:$e,setSiteWidth:it,siteGutter:ze,blockGap:Ve,setSiteGutter:lt,setBlockGap:ct,headingTypography:Ye,setHeadingTypography:Et,textStyles:Xe,setTextStyles:Tt,wordStyles:je,heroBackgroundFollowsWidth:Ke,setHeroBackgroundFollowsWidth:ut,sectionBackgroundWidth:qe,setSectionBackgroundWidth:dt,sectionContentWidth:Ze,setSectionContentWidth:ht,photographyGrayscale:Je,setPhotographyGrayscale:gt,shareButtonOnPosts:Qe,setShareButtonOnPosts:ft,themeFromDocument:et},children:e})})}var Tn=()=>yn(De);function Na(e,t,n){return e?t===n?"read":"loading":"none"}function va(e,t){return{value:e,readFor:t}}function Ga(e,t,n){return{value:t,readFor:e.readFor===n?n:null}}function Ba(){let{sectionContentWidth:e,themeFromDocument:t}=Tn();return t?null:e}import{forwardRef as wn}from"react";import{jsx as Ln}from"react/jsx-runtime";function Cn(e){if(typeof e=="string")return e;let t=e.query?`?${new URLSearchParams(e.query).toString()}`:"",n=e.hash?e.hash.startsWith("#")?e.hash:`#${e.hash}`:"";return`${e.pathname??""}${t}${n}`}var An=wn(function({href:t,prefetch:n,replace:a,scroll:o,shallow:s,legacyBehavior:l,passHref:c,locale:u,onClick:E,children:T,...g},w){let f=d=>{E?.(d),!(d.defaultPrevented||g.target==="_blank")&&d.preventDefault()};return Ln("a",{ref:w,href:Cn(t),onClick:f,...g,children:T})}),$a=An;var kn="Website";function Ya(e){return e?.trim()||kn}var Pe=["instagram","facebook","tiktok","youtube","x","linkedin","pinterest","whatsapp","telegram","line","wechat"],In={instagram:"Instagram",facebook:"Facebook",tiktok:"TikTok",youtube:"YouTube",x:"X",linkedin:"LinkedIn",pinterest:"Pinterest",whatsapp:"WhatsApp",telegram:"Telegram",line:"LINE",wechat:"WeChat"},On={};function ja(e){if(!e||typeof e!="object")return On;let t={};for(let n of Pe){let a=e[n];if(typeof a!="string")continue;let o=a.trim();!o||!/^https?:\/\//i.test(o)||(t[n]=o)}return t}function Ka(e){return Pe.flatMap(t=>{let n=e[t];return n?[{platform:t,href:n,label:In[t]}]:[]})}var qa=e=>`${e}_url`;import{forwardRef as xn}from"react";import{imageCopyUrl as Fe,imageSrcSet as Ne}from"efficient-shell/image-copies";import{jsx as Mn}from"react/jsx-runtime";var Rn={position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,color:"transparent"};function ve(e,t,n){if(n){let a=Ne(e);return a?{src:Fe(e,1280),srcSet:a,sizes:n}:{src:e,sizes:n}}if(t&&t>0){let a=Ne(e,{maxWidth:t*3});return a?{src:Fe(e,t*2),srcSet:a,sizes:`${t}px`}:{src:e}}return{src:e}}var Hn=xn(function({src:t,width:n,height:a,fill:o,priority:s,loading:l,style:c,quality:u,placeholder:E,blurDataURL:T,unoptimized:g,loader:w,overrideSrc:f,sizes:d,...C},H){let A=f??(typeof t=="string"?t:t.src),M=ve(A,o?void 0:Number(n)||void 0,d??(o?"100vw":void 0));return Mn("img",{ref:H,...M,width:o?void 0:n,height:o?void 0:a,loading:s?"eager":l??"lazy",fetchPriority:s?"high":void 0,decoding:"async",style:o?{...Rn,...c}:{color:"transparent",...c},...C})}),eo=Hn;function to(e){let t=e.overrideSrc??(typeof e.src=="string"?e.src:e.src.src),n=e.fill?void 0:Number(e.width)||void 0;return{props:ve(t,n,e.sizes??(e.fill?"100vw":void 0))}}var oo={small:54,medium:66,large:84},Dn=44,ro=16,so=140,io=Dn*4;export{Wn as a,$n as b,zn as c,Vn as d,Yn as e,W as f,$ as g,Xn as h,m as i,Ht as j,Te as k,jn as l,Kn as m,y as n,z as o,qn as p,Zn as q,x as r,Jn as s,Qn as t,ea as u,Y as v,ta as w,we as x,Bt as y,na as z,aa as A,oa as B,ra as C,sa as D,ia as E,X as F,jt as G,la as H,ca as I,j as J,Zt as K,ua as L,K as M,Jt as N,da as O,ha as P,Qt as Q,en as R,Le as S,R as T,an as U,on as V,rn as W,ke as X,Ie as Y,sn as Z,Oe as _,ln as $,ga as aa,fa as ba,ma as ca,Sa as da,b as ea,xe as fa,pa as ga,_a as ha,q as ia,Re as ja,ya as ka,ba as la,He as ma,Ta as na,Z as oa,wa as pa,Ca as qa,Aa as ra,La as sa,mn as ta,h as ua,Sn as va,Oa as wa,eo as xa,to as ya,$a as za,_e as Aa,Gn as Ba,Fa as Ca,Tn as Da,Na as Ea,va as Fa,Ga,Ba as Ha,kn as Ia,Ya as Ja,Pe as Ka,In as La,On as Ma,ja as Na,Ka as Oa,qa as Pa,oo as Qa,Dn as Ra,ro as Sa,so as Ta,io as Ua};