{"version":3,"file":"shared-lib.JWRmQtrS.mjs","names":["e","t","r","n","l","p","e"],"sources":["https:/ga.jspm.io/npm:zustand@3.7.1/esm/index.js","https:/framerusercontent.com/modules/znmeN2mKRItnf7zyDZ26/TXqjakjsaeQzSOClG1Cf/ShopifyStore.js","https:/framerusercontent.com/modules/yE0b0hlG3VS4LJFTDOlw/6kPLCoSOQAoKJ1xcfNZM/Cropped_Text_1.js"],"sourcesContent":["import{useEffect as t,useLayoutEffect as e,useReducer as n,useRef as r,useDebugValue as c}from\"react\";function createStore(t){let e;const n=new Set;const setState=(t,r)=>{const c=\"function\"===typeof t?t(e):t;if(c!==e){const t=e;e=r?c:Object.assign({},e,c);n.forEach((n=>n(e,t)))}};const getState=()=>e;const subscribeWithSelector=(t,r=getState,c=Object.is)=>{console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");let o=r(e);function listenerToAdd(){const n=r(e);if(!c(o,n)){const e=o;t(o=n,e)}}n.add(listenerToAdd);return()=>n.delete(listenerToAdd)};const subscribe=(t,e,r)=>{if(e||r)return subscribeWithSelector(t,e,r);n.add(t);return()=>n.delete(t)};const destroy=()=>n.clear();const r={setState:setState,getState:getState,subscribe:subscribe,destroy:destroy};e=t(setState,getState,r);return r}const o=\"undefined\"===typeof window||!window.navigator||/ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);const s=o?t:e;function create(t){const e=\"function\"===typeof t?createStore(t):t;const useStore=(t=e.getState,o=Object.is)=>{const[,u]=n((t=>t+1),0);const i=e.getState();const a=r(i);const d=r(t);const l=r(o);const f=r(false);const S=r();void 0===S.current&&(S.current=t(i));let b;let g=false;if(a.current!==i||d.current!==t||l.current!==o||f.current){b=t(i);g=!o(S.current,b)}s((()=>{g&&(S.current=b);a.current=i;d.current=t;l.current=o;f.current=false}));const w=r(i);s((()=>{const listener=()=>{try{const t=e.getState();const n=d.current(t);if(!l.current(S.current,n)){a.current=t;S.current=n;u()}}catch(t){f.current=true;u()}};const t=e.subscribe(listener);e.getState()!==w.current&&listener();return t}),[]);const p=g?b:S.current;c(p);return p};Object.assign(useStore,e);useStore[Symbol.iterator]=function(){console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");const t=[useStore,e];return{next(){const e=t.length<=0;return{value:t.shift(),done:e}}}};return useStore}export{create as default};\n\n//# sourceMappingURL=index.js.map","import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import React from\"react\";import create from\"zustand\";import{addPropertyControls,ControlType}from\"framer\";// ============================================================================\n// PKCE Utilities for OAuth2\n// ============================================================================\nfunction generateCodeVerifier(){const array=new Uint8Array(32);crypto.getRandomValues(array);return base64UrlEncode(array);}async function generateCodeChallenge(verifier){const encoder=new TextEncoder;const data=encoder.encode(verifier);const digest=await crypto.subtle.digest(\"SHA-256\",data);return base64UrlEncode(new Uint8Array(digest));}function base64UrlEncode(buffer){let binary=\"\";for(let i=0;i<buffer.byteLength;i++){binary+=String.fromCharCode(buffer[i]);}return btoa(binary).replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=+$/,\"\");}function generateState(){const array=new Uint8Array(16);crypto.getRandomValues(array);return base64UrlEncode(array);}function generateNonce(){const array=new Uint8Array(16);crypto.getRandomValues(array);return base64UrlEncode(array);}function storePKCEParams(params){sessionStorage.setItem(\"shopify_pkce_verifier\",params.codeVerifier);sessionStorage.setItem(\"shopify_pkce_state\",params.state);sessionStorage.setItem(\"shopify_pkce_nonce\",params.nonce);}function getPKCEParams(){return{codeVerifier:sessionStorage.getItem(\"shopify_pkce_verifier\"),state:sessionStorage.getItem(\"shopify_pkce_state\"),nonce:sessionStorage.getItem(\"shopify_pkce_nonce\")};}function clearPKCEParams(){sessionStorage.removeItem(\"shopify_pkce_verifier\");sessionStorage.removeItem(\"shopify_pkce_state\");sessionStorage.removeItem(\"shopify_pkce_nonce\");}// ============================================================================\n// Token Storage Helpers\n// ============================================================================\nfunction storeOAuthTokens(tokens){localStorage.setItem(\"shopify_oauth_access_token\",tokens.accessToken);localStorage.setItem(\"shopify_oauth_refresh_token\",tokens.refreshToken);localStorage.setItem(\"shopify_oauth_token_expiry\",tokens.expiresAt);if(tokens.idToken){localStorage.setItem(\"shopify_oauth_id_token\",tokens.idToken);}localStorage.setItem(\"isAuthenticated\",\"true\");}function getOAuthTokens(){const accessToken=localStorage.getItem(\"shopify_oauth_access_token\");const refreshToken=localStorage.getItem(\"shopify_oauth_refresh_token\");const expiresAt=localStorage.getItem(\"shopify_oauth_token_expiry\");const idToken=localStorage.getItem(\"shopify_oauth_id_token\");if(!accessToken||!refreshToken||!expiresAt)return null;return{accessToken,refreshToken,expiresAt,idToken:idToken||undefined};}function clearOAuthTokens(){localStorage.removeItem(\"shopify_oauth_access_token\");localStorage.removeItem(\"shopify_oauth_refresh_token\");localStorage.removeItem(\"shopify_oauth_token_expiry\");localStorage.removeItem(\"shopify_oauth_id_token\");}function isOAuthAuthenticated(){const tokens=getOAuthTokens();return tokens!==null;}// ============================================================================\n// Zustand Store\n// ============================================================================\nexport const useShopifyStore=create((set,get)=>({// Initial state\n    product:null,cart:(()=>{try{const stored=localStorage.getItem(\"cart\");if(!stored)return[];const parsed=JSON.parse(stored);// Filter out any invalid items on load\n    return Array.isArray(parsed)?parsed.filter(item=>item&&item.product&&item.product.variantId&&item.quantity>0):[];}catch{return[];}})(),cartCount:(()=>{try{const stored=localStorage.getItem(\"cart\");if(!stored)return 0;const parsed=JSON.parse(stored);if(!Array.isArray(parsed))return 0;return parsed.filter(item=>item&&item.quantity>0).reduce((total,item)=>total+item.quantity,0);}catch{return 0;}})(),selectedQuantity:1,storefrontUrl:\"\",accessToken:\"\",// Customer Account API credentials\n    shopId:\"\",clientId:\"\",redirectUri:\"\",customer:null,isAuthenticated:(()=>{// Check OAuth tokens first\n    if(typeof window!==\"undefined\"){const oauthToken=localStorage.getItem(\"shopify_oauth_access_token\");if(oauthToken)return true;}// Fall back to legacy check\n    return Boolean(localStorage.getItem(\"isAuthenticated\")===\"true\");})(),customerAccessToken:localStorage.getItem(\"customerAccessToken\")||null,tokenExpiry:localStorage.getItem(\"tokenExpiry\")||null,isLoading:false,lastEmailUsed:localStorage.getItem(\"lastEmailUsed\")||null,authError:null,// Credential setters\n    setStorefrontUrl:url=>set({storefrontUrl:url}),setAccessToken:token=>set({accessToken:token}),setCustomerAccountCredentials:(shopId,clientId,redirectUri)=>{set({shopId,clientId,redirectUri});// If already authenticated via OAuth, fetch the customer profile now that we have shopId\n    if(isOAuthAuthenticated()){set({isAuthenticated:true});get().fetchOAuthCustomerProfile();}},// ========================================================================\n    // Product & Cart Actions\n    // ========================================================================\n    fetchProduct:async()=>{const{storefrontUrl,accessToken}=get();if(!storefrontUrl||!accessToken){console.error(\"Shopify credentials are not set!\");return;}const query=`\n        {\n            products(first: 1) {\n                edges {\n                    node {\n                        id\n                        title\n                        description\n                        totalInventory\n                        priceRange {\n                            minVariantPrice {\n                                amount\n                                currencyCode\n                            }\n                        }\n                        images(first: 10) {\n                            edges {\n                                node {\n                                    src\n                                }\n                            }\n                        }\n                        variants(first: 5) {\n                            edges {\n                                node {\n                                    id\n                                    title\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        `;try{const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query})});const data=await response.json();const productData=data.data.products.edges[0].node;set({product:{id:productData.id,title:productData.title,description:productData.description,price:productData.priceRange.minVariantPrice.amount,currency:productData.priceRange.minVariantPrice.currencyCode,stock:productData.totalInventory,variantId:productData.variants.edges[0]?.node.id||\"\",images:productData.images.edges.map(img=>img.node.src),variants:productData.variants.edges.map(variant=>({id:variant.node.id,title:variant.node.title}))}});}catch(error){console.error(\"Error fetching product:\",error);}},setSelectedQuantity:quantity=>set({selectedQuantity:quantity}),addToCart:()=>{const{product,cart,selectedQuantity}=get();if(!product)return;const existingItemIndex=cart.findIndex(item=>item.product.variantId===product.variantId);let updatedCart;if(existingItemIndex>=0){updatedCart=cart.map((item,index)=>{if(index===existingItemIndex){return{...item,quantity:item.quantity+selectedQuantity};}return item;});}else{updatedCart=[...cart,{product,quantity:selectedQuantity}];}const updatedCount=updatedCart.reduce((total,item)=>total+item.quantity,0);set({cart:updatedCart,cartCount:updatedCount});localStorage.setItem(\"cart\",JSON.stringify(updatedCart));localStorage.setItem(\"cartCount\",JSON.stringify(updatedCount));},updateQuantity:(productId,quantity)=>{const{cart}=get();// If quantity is 0 or less, filter out the item entirely\n    const updatedCart=cart.map(item=>item.product.id===productId?{...item,quantity}:item).filter(item=>item.quantity>0);const updatedCartCount=updatedCart.reduce((total,item)=>total+item.quantity,0);set({cart:updatedCart,cartCount:updatedCartCount});localStorage.setItem(\"cart\",JSON.stringify(updatedCart));localStorage.setItem(\"cartCount\",JSON.stringify(updatedCartCount));},removeFromCart:productId=>{const{cart}=get();const updatedCart=cart.filter(item=>item.product.id!==productId);const updatedCartCount=updatedCart.reduce((total,item)=>total+item.quantity,0);set({cart:updatedCart,cartCount:updatedCartCount});localStorage.setItem(\"cart\",JSON.stringify(updatedCart));localStorage.setItem(\"cartCount\",JSON.stringify(updatedCartCount));},clearCart:()=>{set({cart:[],cartCount:0});localStorage.setItem(\"cart\",JSON.stringify([]));localStorage.setItem(\"cartCount\",JSON.stringify(0));},createCheckout:async()=>{const{cart,storefrontUrl,accessToken,customer,isAuthenticated}=get();if(!storefrontUrl||!accessToken){console.error(\"Shopify credentials missing:\",{storefrontUrl,accessToken});alert(\"Shopify credentials are missing!\");return;}// Filter cart to only include valid items with quantity > 0\n    const validCartItems=cart.filter(item=>item&&item.product&&item.product.variantId&&item.quantity>0);if(validCartItems.length===0){alert(\"Your cart is empty. Please add items to the cart first.\");return;}// Build line items for Cart API\n    const lines=validCartItems.map(item=>({merchandiseId:item.product.variantId,quantity:item.quantity}));// Build buyer identity if authenticated\n    // Note: OAuth Customer Account API tokens can't be passed to Cart API\n    // We pass email to pre-fill checkout, customer may need to log in again\n    let buyerIdentity=null;if(isAuthenticated&&customer){buyerIdentity={...customer.email&&{email:customer.email}};}const mutation=`\n        mutation cartCreate($input: CartInput!) {\n            cartCreate(input: $input) {\n                cart {\n                    id\n                    checkoutUrl\n                }\n                userErrors {\n                    field\n                    message\n                }\n            }\n        }\n        `;const variables={input:{lines,...buyerIdentity&&{buyerIdentity}}};console.log(\"Creating cart with variables:\",JSON.stringify(variables,null,2));console.log(\"Buyer identity:\",buyerIdentity);console.log(\"Is authenticated:\",isAuthenticated);console.log(\"Customer:\",customer);try{const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query:mutation,variables})});if(!response.ok){console.error(\"Cart response not OK:\",response.status);alert(\"Failed to connect to Shopify. Please try again.\");return;}const result=await response.json();console.log(\"Cart response:\",JSON.stringify(result,null,2));// Check for GraphQL errors\n    if(result.errors&&result.errors.length>0){console.error(\"GraphQL errors:\",result.errors);alert(\"Checkout error: \"+result.errors.map(e=>e.message).join(\", \"));return;}if(!result?.data?.cartCreate){console.error(\"No cartCreate in response:\",result);alert(\"Failed to create checkout. Please try again.\");return;}const cartData=result.data.cartCreate.cart;const userErrors=result.data.cartCreate.userErrors;if(userErrors&&userErrors.length>0){console.error(\"Cart userErrors:\",userErrors);alert(\"Failed to create checkout: \"+userErrors.map(err=>err.message).join(\", \"));return;}if(cartData?.checkoutUrl){// Clear cart after successful checkout creation\n    set({cart:[],cartCount:0});localStorage.setItem(\"cart\",JSON.stringify([]));localStorage.setItem(\"cartCount\",JSON.stringify(0));window.location.href=cartData.checkoutUrl;}else{console.error(\"No checkoutUrl in cart:\",cartData);alert(\"Failed to create checkout. Please try again.\");}}catch(error){console.error(\"Error creating checkout:\",error);alert(\"An unexpected error occurred. Please try again later.\");}},// ========================================================================\n    // Customer Account API OAuth2 Actions\n    // ========================================================================\n    initiateOAuthLogin:async()=>{const{shopId,clientId,redirectUri}=get();if(!shopId||!clientId||!redirectUri){set({authError:\"Customer Account API credentials not configured\"});throw new Error(\"Customer Account API credentials not configured\");}set({isLoading:true,authError:null});try{const codeVerifier=generateCodeVerifier();const codeChallenge=await generateCodeChallenge(codeVerifier);const state=generateState();const nonce=generateNonce();// Store PKCE params for callback\n    storePKCEParams({codeVerifier,state,nonce});// Build authorization URL\n    const authUrl=new URL(`https://shopify.com/authentication/${shopId}/oauth/authorize`);authUrl.searchParams.set(\"client_id\",clientId);authUrl.searchParams.set(\"response_type\",\"code\");authUrl.searchParams.set(\"redirect_uri\",redirectUri);authUrl.searchParams.set(\"scope\",\"openid email customer-account-api:full\");authUrl.searchParams.set(\"state\",state);authUrl.searchParams.set(\"nonce\",nonce);authUrl.searchParams.set(\"code_challenge\",codeChallenge);authUrl.searchParams.set(\"code_challenge_method\",\"S256\");authUrl.searchParams.set(\"prompt\",\"login\");authUrl.searchParams.set(\"max_age\",\"0\");// Redirect to Shopify login\n    window.location.href=authUrl.toString();}catch(error){const message=error instanceof Error?error.message:\"Failed to initiate login\";set({isLoading:false,authError:message});throw error;}},handleOAuthCallback:async(code,state)=>{const{shopId,clientId,redirectUri}=get();if(!shopId||!clientId||!redirectUri){set({authError:\"Customer Account API credentials not configured\"});return false;}set({isLoading:true,authError:null});const stored=getPKCEParams();// Validate state\n    if(stored.state!==state){clearPKCEParams();set({isLoading:false,authError:\"State mismatch - please try again\"});return false;}if(!stored.codeVerifier){set({isLoading:false,authError:\"Session expired - please try again\"});return false;}try{// Exchange code for tokens\n    const tokenUrl=`https://shopify.com/authentication/${shopId}/oauth/token`;const body=new URLSearchParams({grant_type:\"authorization_code\",client_id:clientId,redirect_uri:redirectUri,code:code,code_verifier:stored.codeVerifier});const response=await fetch(tokenUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/x-www-form-urlencoded\"},body:body.toString()});if(!response.ok){clearPKCEParams();const errorData=await response.json().catch(()=>({}));throw new Error(errorData.error_description||\"Token exchange failed\");}const data=await response.json();clearPKCEParams();const tokens={accessToken:data.access_token,refreshToken:data.refresh_token,expiresAt:new Date(Date.now()+data.expires_in*1e3).toISOString(),idToken:data.id_token};storeOAuthTokens(tokens);// Fetch customer profile\n    await get().fetchOAuthCustomerProfile();set({isAuthenticated:true,isLoading:false});return true;}catch(error){clearPKCEParams();const message=error instanceof Error?error.message:\"Authentication failed\";set({isLoading:false,authError:message,isAuthenticated:false});return false;}},fetchOAuthCustomerProfile:async()=>{const{shopId}=get();const tokens=getOAuthTokens();if(!tokens?.accessToken||!shopId)return;const query=`\n            query CustomerProfile {\n                customer {\n                    id\n                    emailAddress { emailAddress }\n                    firstName\n                    lastName\n                    displayName\n                }\n            }\n        `;const apiUrl=`https://shopify.com/${shopId}/account/customer/api/2025-04/graphql`;try{const response=await fetch(apiUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:tokens.accessToken},body:JSON.stringify({query})});if(!response.ok){throw new Error(\"Failed to fetch customer profile\");}const data=await response.json();if(data.data?.customer){const c=data.data.customer;set({customer:{id:c.id,email:c.emailAddress?.emailAddress||\"\",firstName:c.firstName||\"\",lastName:c.lastName||\"\"}});}}catch(error){console.error(\"Error fetching OAuth customer profile:\",error);}},oauthLogout:async()=>{const{shopId}=get();set({isLoading:true});try{const tokens=getOAuthTokens();// Clear local tokens first\n    clearOAuthTokens();localStorage.removeItem(\"isAuthenticated\");set({customer:null,isAuthenticated:false,isLoading:false,authError:null});// Redirect to Shopify logout to clear their session cookies\n    if(tokens?.idToken&&shopId){const logoutUrl=new URL(`https://shopify.com/authentication/${shopId}/logout`);logoutUrl.searchParams.set(\"id_token_hint\",tokens.idToken);// Redirect browser to actually clear Shopify's session\n    window.location.href=logoutUrl.toString();}}catch(error){clearOAuthTokens();localStorage.removeItem(\"isAuthenticated\");set({customer:null,isAuthenticated:false,isLoading:false});}},// ========================================================================\n    // Legacy Storefront API Auth (kept for backwards compatibility)\n    // ========================================================================\n    registerCustomer:async input=>{const{storefrontUrl,accessToken}=get();const mutation=`\n        mutation customerCreate($input: CustomerCreateInput!) {\n            customerCreate(input: $input) {\n                customer {\n                    id\n                    email\n                    firstName\n                    lastName\n                }\n                customerUserErrors {\n                    code\n                    field\n                    message\n                }\n            }\n        }\n        `;try{set({isLoading:true});const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query:mutation,variables:{input}})});const{data,errors}=await response.json();if(errors)throw new Error(errors[0].message);if(data?.customerCreate?.customerUserErrors?.length){throw new Error(data.customerCreate.customerUserErrors[0].message);}await get().initiateLogin(input.email,input.password);return true;}catch(error){console.error(\"Error registering customer:\",error);throw error;}finally{set({isLoading:false});}},initiateLogin:async(email,password)=>{const{storefrontUrl,accessToken}=get();const mutation=`\n        mutation customerAccess($input: CustomerAccessTokenCreateInput!) {\n            customerAccessTokenCreate(input: $input) {\n                customerUserErrors {\n                    code\n                    field\n                    message\n                }\n                customerAccessToken {\n                    accessToken\n                    expiresAt\n                }\n            }\n        }\n        `;try{set({isLoading:true});const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query:mutation,variables:{input:{email,password}}})});const{data,errors}=await response.json();if(errors?.length>0)throw new Error(errors[0].message);if(data?.customerAccessTokenCreate?.customerUserErrors?.length>0){throw new Error(data.customerAccessTokenCreate.customerUserErrors[0].message);}const customerToken=data.customerAccessTokenCreate.customerAccessToken.accessToken;const tokenExpiry=data.customerAccessTokenCreate.customerAccessToken.expiresAt;set({customerAccessToken:customerToken,tokenExpiry,isAuthenticated:true,lastEmailUsed:email});localStorage.setItem(\"customerAccessToken\",customerToken);localStorage.setItem(\"tokenExpiry\",tokenExpiry);localStorage.setItem(\"isAuthenticated\",\"true\");localStorage.setItem(\"lastEmailUsed\",email);await get().fetchCustomerDetails();return true;}catch(error){console.error(\"Error logging in:\",error);throw error;}finally{set({isLoading:false});}},fetchCustomerDetails:async()=>{const{storefrontUrl,accessToken,customerAccessToken}=get();if(!customerAccessToken){console.error(\"Customer is not authenticated\");return;}const query=`\n        query CustomerDetails($customerAccessToken: String!) {\n            customer(customerAccessToken: $customerAccessToken) {\n                id\n                email\n                firstName\n                lastName\n                addresses(first: 5) {\n                    edges {\n                        node {\n                            id\n                            address1\n                            address2\n                            city\n                            province\n                            country\n                            zip\n                        }\n                    }\n                }\n                orders(first: 5) {\n                    edges {\n                        node {\n                            id\n                            name\n                            orderNumber\n                            processedAt\n                            statusUrl\n                            totalPrice {\n                                amount\n                                currencyCode\n                            }\n                            lineItems(first: 5) {\n                                edges {\n                                    node {\n                                        title\n                                        quantity\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n        `;try{const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query,variables:{customerAccessToken}})});const{data,errors}=await response.json();if(errors?.length)throw new Error(errors[0].message);if(!data?.customer)throw new Error(\"Customer data not found\");const customer=data.customer;const addresses=customer.addresses.edges.map(edge=>edge.node);set({customer:{...customer,addresses}});}catch(error){console.error(\"Error fetching customer details:\",error);}},restoreSession:()=>{// Try OAuth tokens first\n    const oauthTokens=getOAuthTokens();if(oauthTokens){console.log(\"[ShopifyStore] OAuth tokens found, setting authenticated\");set({isAuthenticated:true});// Try to fetch profile if shopId is available\n    const{shopId}=get();if(shopId){get().fetchOAuthCustomerProfile();}return;}// Fall back to legacy tokens\n    const customerAccessToken=localStorage.getItem(\"customerAccessToken\");const tokenExpiry=localStorage.getItem(\"tokenExpiry\");if(customerAccessToken&&tokenExpiry){const isExpired=new Date>new Date(tokenExpiry);if(!isExpired){set({customerAccessToken,tokenExpiry,isAuthenticated:true});get().fetchCustomerDetails();}else{get().logout();}}},refreshToken:async()=>{const{customerAccessToken,storefrontUrl,accessToken}=get();if(!customerAccessToken)return;const mutation=`\n        mutation customerAccessTokenRenew($customerAccessToken: String!) {\n            customerAccessTokenRenew(customerAccessToken: $customerAccessToken) {\n                customerAccessToken {\n                    accessToken\n                    expiresAt\n                }\n                userErrors {\n                    field\n                    message\n                }\n            }\n        }\n        `;try{const response=await fetch(storefrontUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",\"X-Shopify-Storefront-Access-Token\":accessToken},body:JSON.stringify({query:mutation,variables:{customerAccessToken}})});const{data,errors}=await response.json();if(errors?.length>0)throw new Error(errors[0].message);const newAccessToken=data?.customerAccessTokenRenew?.customerAccessToken?.accessToken;const newExpiry=data?.customerAccessTokenRenew?.customerAccessToken?.expiresAt;set({customerAccessToken:newAccessToken,tokenExpiry:newExpiry});localStorage.setItem(\"customerAccessToken\",newAccessToken);localStorage.setItem(\"tokenExpiry\",newExpiry);}catch(error){console.error(\"Error refreshing access token:\",error);}},logout:()=>{// Clear OAuth tokens\n    clearOAuthTokens();// Clear legacy tokens\n    localStorage.removeItem(\"customerAccessToken\");localStorage.removeItem(\"tokenExpiry\");localStorage.removeItem(\"isAuthenticated\");localStorage.removeItem(\"lastEmailUsed\");set({customer:null,isAuthenticated:false,customerAccessToken:null,tokenExpiry:null,lastEmailUsed:null});}}));// ============================================================================\n// Provider Component\n// ============================================================================\nexport const ShopifyProvider=({children})=>{React.useEffect(()=>{const store=useShopifyStore.getState();store.restoreSession();},[]);return /*#__PURE__*/_jsx(_Fragment,{children:children});};// ============================================================================\n// Framer Configuration Component\n// ============================================================================\nexport function ShopifyStoreComponent({storefrontUrl=\"\",accessToken=\"\",shopId=\"\",clientId=\"\",redirectUri=\"\"}){const setStorefrontUrl=useShopifyStore(state=>state.setStorefrontUrl);const setAccessToken=useShopifyStore(state=>state.setAccessToken);const setCustomerAccountCredentials=useShopifyStore(state=>state.setCustomerAccountCredentials);const restoreSession=useShopifyStore(state=>state.restoreSession);React.useEffect(()=>{if(storefrontUrl)setStorefrontUrl(storefrontUrl);if(accessToken)setAccessToken(accessToken);if(shopId&&clientId&&redirectUri){setCustomerAccountCredentials(shopId,clientId,redirectUri);}restoreSession();},[storefrontUrl,accessToken,shopId,clientId,redirectUri]);return /*#__PURE__*/_jsx(\"div\",{});}addPropertyControls(ShopifyStoreComponent,{storefrontUrl:{type:ControlType.String,title:\"Storefront URL\",defaultValue:\"\",description:\"Your Shopify Storefront API URL\"},accessToken:{type:ControlType.String,title:\"Storefront Token\",defaultValue:\"\",description:\"Storefront API access token\"},shopId:{type:ControlType.String,title:\"Shop ID\",defaultValue:\"\",description:\"For OAuth login (e.g., 62039818313)\"},clientId:{type:ControlType.String,title:\"Client ID\",defaultValue:\"\",description:\"Customer Account API Client ID\"},redirectUri:{type:ControlType.String,title:\"Redirect URI\",defaultValue:\"\",description:\"OAuth callback URL\"}});export default ShopifyStoreComponent;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ShopifyStoreComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useShopifyStore\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyProvider\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ShopifyStoreComponent\":{\"type\":\"reactComponent\",\"name\":\"ShopifyStoreComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShopifyStore.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,motion}from\"framer\";// Individual letter paths from your SVG\nconst letterPaths=[// M\n\"M102.13,325.25l-8.26-32.84v35.58c0,1.97-.44,3.45-1.32,4.43s-2.04,1.48-3.5,1.48-2.55-.49-3.45-1.46c-.89-.97-1.34-2.46-1.34-4.45v-40.78c0-2.25,.59-3.77,1.76-4.55,1.17-.79,2.75-1.18,4.75-1.18h3.23c1.95,0,3.36,.18,4.24,.53s1.53,.98,1.95,1.9,.9,2.4,1.44,4.46l7.49,28.23,7.49-28.23c.54-2.06,1.02-3.55,1.44-4.46s1.07-1.55,1.95-1.9,2.29-.53,4.24-.53h3.23c1.99,0,3.57,.39,4.75,1.18,1.17,.79,1.76,2.3,1.76,4.55v40.78c0,1.97-.44,3.45-1.32,4.43s-2.06,1.48-3.53,1.48c-1.38,0-2.52-.49-3.41-1.48-.89-.98-1.34-2.46-1.34-4.43v-35.58l-8.26,32.84c-.54,2.13-.98,3.7-1.32,4.69-.34,1-.97,1.9-1.88,2.72s-2.18,1.23-3.8,1.23c-1.22,0-2.25-.26-3.09-.79s-1.5-1.2-1.97-2.02c-.47-.82-.84-1.73-1.11-2.72-.27-1-.54-2.03-.83-3.11Z\",// O\n\"M167.38,280.61c5.34,0,9.93,1.08,13.76,3.25,3.83,2.17,6.73,5.25,8.7,9.25,1.97,4,2.95,8.69,2.95,14.08,0,3.98-.54,7.61-1.62,10.86-1.08,3.26-2.7,6.08-4.85,8.47-2.16,2.39-4.8,4.22-7.95,5.48-3.14,1.27-6.74,1.9-10.79,1.9s-7.64-.65-10.83-1.95c-3.19-1.3-5.85-3.13-7.98-5.5-2.13-2.37-3.74-5.21-4.83-8.54-1.09-3.33-1.63-6.93-1.63-10.79s.57-7.59,1.71-10.9c1.14-3.3,2.78-6.12,4.94-8.44,2.16-2.32,4.78-4.1,7.88-5.33s6.61-1.85,10.55-1.85Zm14.84,26.51c0-3.77-.61-7.04-1.83-9.81-1.22-2.77-2.96-4.86-5.22-6.28-2.26-1.42-4.86-2.13-7.79-2.13-2.09,0-4.01,.39-5.78,1.18-1.77,.79-3.29,1.93-4.57,3.43-1.28,1.5-2.29,3.42-3.02,5.75-.74,2.33-1.11,4.95-1.11,7.86s.37,5.58,1.11,7.95c.74,2.37,1.78,4.33,3.13,5.89,1.35,1.56,2.89,2.72,4.64,3.5,1.75,.77,3.66,1.16,5.75,1.16,2.67,0,5.13-.67,7.37-2,2.24-1.34,4.02-3.4,5.34-6.19,1.32-2.79,1.99-6.22,1.99-10.3Z\",// O\n\"M224.4,280.61c5.34,0,9.93,1.08,13.76,3.25,3.83,2.17,6.73,5.25,8.7,9.25,1.97,4,2.95,8.69,2.95,14.08,0,3.98-.54,7.61-1.62,10.86-1.08,3.26-2.7,6.08-4.85,8.47s-4.8,4.22-7.95,5.48c-3.14,1.27-6.74,1.9-10.79,1.9s-7.64-.65-10.83-1.95c-3.19-1.3-5.85-3.13-7.98-5.5-2.13-2.37-3.74-5.21-4.83-8.54-1.09-3.33-1.63-6.93-1.63-10.79s.57-7.59,1.71-10.9c1.14-3.3,2.78-6.12,4.94-8.44,2.16-2.32,4.78-4.1,7.88-5.33s6.61-1.85,10.55-1.85Zm14.84,26.51c0-3.77-.61-7.04-1.83-9.81-1.22-2.77-2.96-4.86-5.22-6.28-2.26-1.42-4.86-2.13-7.79-2.13-2.09,0-4.01,.39-5.78,1.18-1.77,.79-3.29,1.93-4.57,3.43-1.28,1.5-2.29,3.42-3.02,5.75-.74,2.33-1.11,4.95-1.11,7.86s.37,5.58,1.11,7.95c.74,2.37,1.78,4.33,3.13,5.89,1.35,1.56,2.89,2.72,4.64,3.5,1.75,.77,3.66,1.16,5.75,1.16,2.67,0,5.13-.67,7.37-2,2.24-1.34,4.02-3.4,5.34-6.19,1.32-2.79,1.99-6.22,1.99-10.30Z\",// D\n\"M265.22,281.48h13.61c3.54,0,6.57,.33,9.11,.98,2.53,.66,4.83,1.89,6.89,3.69,5.37,4.59,8.05,11.58,8.05,20.95,0,3.09-.27,5.92-.81,8.47-.54,2.55-1.37,4.86-2.5,6.91-1.12,2.05-2.57,3.88-4.32,5.5-1.38,1.24-2.89,2.24-4.54,2.99-1.64,.75-3.4,1.28-5.29,1.58-1.89,.3-4.01,.46-6.38,.46h-13.61c-1.9,0-3.33-.29-4.29-.86-.96-.57-1.59-1.38-1.88-2.43-.29-1.04-.44-2.4-.44-4.06v-37.79c0-2.25,.5-3.88,1.51-4.89,1.01-1.01,2.64-1.51,4.89-1.51Zm4.04,8.26v34.98h7.91c1.73,0,3.09-.05,4.08-.14,.98-.09,2-.33,3.06-.7,1.05-.37,1.97-.9,2.74-1.58,3.49-2.95,5.24-8.04,5.24-15.26,0-5.09-.77-8.89-2.3-11.43s-3.43-4.14-5.68-4.83c-2.25-.69-4.97-1.04-8.16-1.04h-6.89Z\",// W\n\"M350.33,324.9l-8.33-30.9-8.44,30.9c-.66,2.34-1.18,4.03-1.56,5.04s-1.06,1.93-2.02,2.74-2.24,1.21-3.83,1.21c-1.29,0-2.35-.24-3.18-.72s-1.51-1.16-2.02-2.04-.94-1.92-1.27-3.13c-.33-1.21-.62-2.33-.88-3.36l-8.58-34.7c-.52-2.02-.77-3.55-.77-4.61,0-1.34,.47-2.46,1.41-3.38s2.1-1.37,3.48-1.37c1.9,0,3.18,.61,3.83,1.83,.66,1.22,1.23,2.99,1.72,5.31l6.75,30.09,7.56-28.16c.56-2.16,1.07-3.8,1.51-4.92s1.17-2.1,2.18-2.92c1.01-.82,2.38-1.23,4.11-1.23s3.12,.43,4.1,1.28c.97,.86,1.65,1.79,2.02,2.79,.38,1.01,.88,2.67,1.51,4.99l7.63,28.16,6.75-30.09c.33-1.57,.64-2.8,.93-3.69,.29-.89,.8-1.69,1.51-2.39s1.75-1.05,3.11-1.05,2.51,.45,3.46,1.35c.95,.9,1.42,2.03,1.42,3.39,0,.96-.26,2.5-.77,4.61l-8.58,34.7c-.59,2.34-1.07,4.06-1.46,5.15s-1.04,2.04-1.97,2.87-2.23,1.23-3.92,1.23c-1.59,0-2.87-.4-3.83-1.2s-1.63-1.69-2-2.69c-.38-1-.9-2.70-1.58-5.12Z\",// A\n\"M414.35,327.19l-2.46-6.47h-20.95l-2.46,6.61c-.96,2.58-1.78,4.32-2.46,5.22s-1.79,1.35-3.34,1.35c-1.31,0-2.47-.48-3.48-1.44s-1.51-2.05-1.51-3.27c0-.7,.12-1.43,.35-2.18,.23-.75,.62-1.79,1.16-3.13l13.18-33.47c.38-.96,.83-2.11,1.35-3.46,.53-1.35,1.09-2.47,1.69-3.36,.6-.89,1.38-1.61,2.36-2.16,.97-.55,2.17-.83,3.6-.83s2.67,.28,3.64,.83c.97,.55,1.76,1.26,2.36,2.13,.6,.87,1.1,1.80,1.51,2.79,.41,1,.93,2.33,1.56,3.99l13.46,33.26c1.05,2.53,1.58,4.37,1.58,5.52s-.5,2.29-1.49,3.29-2.2,1.49-3.6,1.49c-.82,0-1.52-.15-2.11-.44-.59-.29-1.08-.69-1.48-1.2-.4-.5-.83-1.28-1.28-2.32-.46-1.04-.85-1.96-1.18-2.76Zm-20.67-14.31h15.4l-7.77-21.27-7.63,21.27Z\",// R\n\"M447.19,310.98h-3.66v16.56c0,2.18-.48,3.79-1.44,4.82s-2.21,1.55-3.76,1.55c-1.66,0-2.95-.54-3.87-1.62s-1.37-2.66-1.37-4.75v-39.66c0-2.25,.5-3.88,1.51-4.89,1.01-1.01,2.64-1.51,4.89-1.51h16.98c2.34,0,4.35,.1,6.01,.3,1.66,.2,3.16,.6,4.5,1.21,1.62,.68,3.05,1.65,4.29,2.92s2.19,2.74,2.83,4.41c.64,1.68,.97,3.45,.97,5.33,0,3.84-1.08,6.91-3.25,9.21-2.17,2.30-5.46,3.93-9.86,4.89,1.85,.98,3.62,2.44,5.31,4.36,1.69,1.92,3.19,3.97,4.52,6.13,1.32,2.17,2.36,4.13,3.09,5.87,.74,1.75,1.11,2.95,1.11,3.6s-.22,1.35-.65,2.02-1.03,1.2-1.78,1.58-1.62,.58-2.6,.58c-1.17,0-2.16-.28-2.95-.83s-1.48-1.25-2.06-2.09-1.35-2.09-2.34-3.73l-4.18-6.96c-1.5-2.55-2.84-4.50-4.03-5.84s-2.38-2.25-3.6-2.74-2.75-.74-4.61-.74Zm5.98-21.66h-9.63v14.17h9.35c2.51,0,4.62-.22,6.33-.65,1.71-.43,3.02-1.17,3.92-2.21,.9-1.04,1.35-2.48,1.35-4.31,0-1.43-.36-2.69-1.09-3.78s-1.73-1.90-3.02-2.44c-1.22-.52-3.62-.77-7.21-.77Z\",// E\n\"M518.91,289.54h-23.52v12.66h21.66c1.59,0,2.78,.36,3.57,1.07,.79,.72,1.18,1.66,1.18,2.83s-.39,2.13-1.16,2.87-1.97,1.11-3.59,1.11h-21.66v14.66h24.33c1.64,0,2.88,.38,3.71,1.14,.83,.76,1.25,1.78,1.25,3.04s-.42,2.21-1.25,2.97c-.83,.76-2.07,1.14-3.71,1.14h-28.37c-2.27,0-3.91-.50-4.90-1.51-1-1.01-1.49-2.64-1.49-4.89v-38.74c0-1.50,.22-2.72,.67-3.67s1.14-1.64,2.09-2.07c.95-.43,2.16-.65,3.64-.65h27.56c1.66,0,2.90,.37,3.71,1.11s1.21,1.71,1.21,2.90-.40,2.20-1.21,2.94-2.04,1.11-3.71,1.11Z\"];// Original SVG viewBox dimensions\nconst originalViewBox={x:83,y:280,width:445,height:55};export function CroppedTextComponent({textColor,scale,cropTop,textAlign}){const svgWidth=originalViewBox.width*scale;const svgHeight=originalViewBox.height*scale;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:`${svgHeight-cropTop}px`,overflow:\"hidden\",position:\"relative\",display:\"flex\",justifyContent:textAlign===\"left\"?\"flex-start\":textAlign===\"right\"?\"flex-end\":\"center\",alignItems:\"flex-start\",userSelect:\"none\",cursor:\"default\"},children:/*#__PURE__*/_jsx(\"svg\",{width:svgWidth,height:svgHeight,viewBox:`${originalViewBox.x} ${originalViewBox.y} ${originalViewBox.width} ${originalViewBox.height}`,style:{marginTop:`-${cropTop}px`,overflow:\"visible\"},children:letterPaths.map((path,index)=>/*#__PURE__*/_jsx(motion.path,{d:path,fill:textColor,style:{cursor:\"default\",transformOrigin:\"center bottom\",transformBox:\"fill-box\"},initial:{scaleY:1},whileHover:{scaleY:.7},whileTap:{scaleY:.7},transition:{type:\"spring\",stiffness:100,damping:40}},index))})});}addPropertyControls(CroppedTextComponent,{textColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#231f20\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.5,max:3,step:.1},cropTop:{type:ControlType.Number,title:\"Crop Top (px)\",defaultValue:0,min:0,max:50},textAlign:{type:ControlType.Enum,title:\"Alignment\",defaultValue:\"center\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"CroppedTextComponent\":{\"type\":\"reactComponent\",\"name\":\"CroppedTextComponent\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Cropped_Text_1.map"],"mappings":"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"}