{"version":3,"file":"kjjwULkIF.bohcPjwU.mjs","names":["useState","useCallback","useMemo","isCurrencySymbolSameAsCode","getLocaleFromCountry","useState","useCallback","useMemo","useRef","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","sharedStyle.className","className","Image1","RichText","sharedStyle.css","sharedStyle.fonts"],"sources":["https:/framerusercontent.com/modules/N07JJZfuMtyHijtiRRgH/E4KLlxWtRCBXncxm1cnX/FC_ProductPrice.js","https:/framerusercontent.com/modules/ZipJAXrtSkBsdbTSry5q/KCNDDioMjkqBn9yvxlVd/FC_ProductPriceCompare.js","https:/framerusercontent.com/modules/aBfnIqKbRFJJ7lZ2KYN4/G6TI01GelJ5fc9Bnj8M9/kjjwULkIF.js"],"sourcesContent":["/*\n * Framer Commerce\n * Confidential and Proprietary - All Rights Reserved\n * Unauthorized use, reproduction, distribution, or disclosure of this\n * source code or any related information is strictly prohibited.\n *\n * This software is the exclusive property of Framer Commerce (\"Company\").\n * It is considered highly confidential and proprietary information.\n *\n * Any use, copying, modification, distribution, or sharing of this software,\n * in whole or in part, without the express written permission of the Company\n * is strictly prohibited and may result in legal action.\n *\n * DISCLAIMER: This software does not provide any express or\n * implied warranties, including, but not limited to, the implied warranties\n * of merchantability and fitness for a particular purpose. In no event shall\n * Framer Commerce be liable for any direct, indirect, incidental, special,\n * exemplary, or consequential damages (including, but not limited to, procurement\n * of substitute goods or services; loss of use, data, or profits; or business\n * interruption) however caused and on any theory of liability, whether in\n * contract, strict liability, or tort (including negligence or otherwise)\n * arising in any way out of the use of this software, even if advised of\n * the possibility of such damage.\n *\n * Any unauthorized possession, use, copying, distribution, or dissemination\n * of this software will be considered a breach of confidentiality and may\n * result in legal action.\n *\n * For inquiries, contact:\n * Framer Commerce\n * Email: hello@framercommerce.com\n *\n * © 2025 Butter Supply Inc. All Rights Reserved.\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{get}from\"lodash-es\";import{useIsBrowser}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";import{knownCurrenciesWithCodeAsSymbol}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/k9s4cejdkBGDjmzudhzM/18cq93eooqM4YmdbL7E2/currencyMaps.js\";import{getLocaleFromCountry}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/vC6fzbfO83MgBPIhn5zl/DUlbmWuOELzEUenVmv3G/locales.js\";// Helper function to check if a currency's symbol is the same as its code\nconst isCurrencySymbolSameAsCode=currencyCode=>{// For some currencies like CHF, the browser might use the code as the symbol\nif(!currencyCode)return false;if(knownCurrenciesWithCodeAsSymbol.includes(currencyCode)){return true;}try{const formatted=new Intl.NumberFormat(undefined,{style:\"currency\",currency:currencyCode,currencyDisplay:\"narrowSymbol\"}).format(0);// Remove digits, decimal points, and common formatting characters\nconst cleanFormatted=formatted.replace(/[0-9.,\\s]/g,\"\");// Check if what remains is the currency code\nreturn cleanFormatted===currencyCode;}catch(e){return false;}};/**\n * @framerDisableUnlink\n */export default function FC_ProductPrice(props){const{shopifyProductID,canvasPrice,format:{showCurrency,showSymbol,showDecimals,currencyCode}={},fromText=\"from\"}=props;const isBrowser=useIsBrowser();const[product,setProduct]=useState();const[activeVariant,setActiveVariant]=useState();const[subscriptionPrice,setSubscriptionPrice]=useState(()=>{if(typeof window!==\"undefined\"){const persisted=window.__fc_activeSubscription?.[shopifyProductID];if(persisted?.price)return persisted.price;}return null;});const[selectedCurrency,setSelectedCurrency]=useState(\"\");const[selectedCountryCode,setSelectedCountryCode]=useState(\"\");const[selectedCountry,setSelectedCountry]=useState(\"\");const[isLoadingPrice,setIsLoadingPrice]=useState(false);const[partialSelections,setPartialSelections]=useState({});const[variantSelectorAction,setVariantSelectorAction]=useState(\"\");const[waitingForVariantSelection,setWaitingForVariantSelection]=useState(false);// PERFORMANCE OPTIMIZATION: Progressive loading state\n// - Show prices immediately for fast perceived performance\n// - Compute ranges in background using requestIdleCallback\n// - Cache computed ranges to avoid recalculation\nconst[isRangeComputed,setIsRangeComputed]=useState(false);const[computedPriceRange,setComputedPriceRange]=useState({min:null,max:null});// Compute product price range from variants when product.priceRange is missing/partial\nconst getProductPriceRange=useCallback((p,useCompareAt=false)=>{if(!p)return{min:null,max:null};// Prefer product-level range when available\nconst rangePath=useCompareAt?\"compareAtPriceRange\":\"priceRange\";const minFromProduct=get(p,`${rangePath}.minVariantPrice.amount`);const maxFromProduct=get(p,`${rangePath}.maxVariantPrice.amount`);let minVal=minFromProduct?parseFloat(minFromProduct):null;let maxVal=maxFromProduct?parseFloat(maxFromProduct):null;if(minVal===null||isNaN(minVal)||maxVal===null||isNaN(maxVal)){// OPTIMIZED: Use reduce for better performance on large variant lists\nconst edges=p?.variants?.edges||[];if(edges.length>0){const{min,max}=edges.reduce((acc,{node:v})=>{if(!v)return acc;const fieldPath=useCompareAt?\"compareAtPrice.amount\":\"price.amount\";const amtStr=get(v,fieldPath);const amt=amtStr?parseFloat(amtStr):NaN;if(!isNaN(amt)&&amt>0){if(acc.min===null||amt<acc.min)acc.min=amt;if(acc.max===null||amt>acc.max)acc.max=amt;}return acc;},{min:null,max:null});minVal=min;maxVal=max;}}return{min:typeof minVal===\"number\"&&!isNaN(minVal)?minVal:null,max:typeof maxVal===\"number\"&&!isNaN(maxVal)?maxVal:null};},[selectedCurrency]);// Progressive range computation - compute in background after initial render\nuseEffect(()=>{if(!product||isRangeComputed)return;// Use requestIdleCallback for non-blocking computation\nconst computeRange=()=>{const range=getProductPriceRange(product,false);setComputedPriceRange(range);setIsRangeComputed(true);};// Delay computation to prioritize initial render\nif(\"requestIdleCallback\"in window){requestIdleCallback(computeRange,{timeout:200});}else{// Fallback for browsers without requestIdleCallback\nsetTimeout(computeRange,100);}},[product,isRangeComputed,getProductPriceRange]);// Reset range computation when product changes\nuseEffect(()=>{if(product){setIsRangeComputed(false);setComputedPriceRange({min:null,max:null});}},[product]);// Initialize currency and country code on page load\nuseEffect(()=>{if(!isBrowser)return;const storedCurrency=localStorage.getItem(\"selectedCurrency\");const storedCountryCode=localStorage.getItem(\"selectedCountryCode\");const storedCountry=localStorage.getItem(\"selectedCountry\");setSelectedCurrency(storedCurrency||\"USD\");setSelectedCountryCode(storedCountryCode||\"US\");setSelectedCountry(storedCountry||\"United States\");},[isBrowser]);// Handle variant changes\nconst handleVariantChange=useCallback(async e=>{// Check for purchase action flag - if this is a purchase action, don't update variant state\nif(e.detail?.isPurchaseAction){//console.log(\"Purchase action detected, returning\", e.detail?.isPurchaseAction)\nreturn;}if(!e.detail||e.detail.productId!==`gid://shopify/Product/${shopifyProductID}`){return;}// console.log(\"variantSelectorAction\", e.detail.onClickAction)\nsetVariantSelectorAction(e.detail.onClickAction);// Clear waiting state when variant changes are received\nsetWaitingForVariantSelection(false);//console.log(\"Price component: Variant change event received, clearing wait state\")\n//console.log(\"handleVariantChange\", e.detail)\nsetIsLoadingPrice(true);try{// Get products from shopXtools storage\nconst products=window.shopXtools?.products||[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);// Find the matching variant in the current product data\nconst matchingVariant=_matchingProduct.node?.variants?.edges?.find(({node})=>node.selectedOptions.every(option=>e.detail.selectedOptions.find(detailOption=>detailOption.name===option.name&&detailOption.value===option.value)));if(matchingVariant){if(e.detail.onClickAction===\"purchase\"){setActiveVariant(null);setPartialSelections({[e.detail.selectedOptions[0].name]:e.detail.selectedOptions[0].value});}else if(e.detail?.isCompleteVariant===false){// Partial selection: keep partial range behavior\nsetActiveVariant(null);if(Array.isArray(e.detail.selectedOptions)){const partial={};e.detail.selectedOptions.forEach(opt=>{if(opt?.name)partial[opt.name]=opt.value;});setPartialSelections(partial);}}else{setActiveVariant(matchingVariant.node);setPartialSelections({});}}}}catch(error){// Fallback\nif(e.detail?.isCompleteVariant){setActiveVariant(e.detail);if(e.detail.onClickAction!==\"purchase\"){setPartialSelections({});}}else{setActiveVariant(null);if(Array.isArray(e.detail?.selectedOptions)){const partial={};e.detail.selectedOptions.forEach(opt=>{if(opt?.name)partial[opt.name]=opt.value;});setPartialSelections(partial);}}}finally{setIsLoadingPrice(false);}},[shopifyProductID]);// Handle currency changes\nconst handleCurrencyChange=useCallback(event=>{setIsLoadingPrice(true);const{currency,countryCode,country}=event.detail;setSelectedCurrency(currency);setSelectedCountryCode(countryCode);setSelectedCountry(country);try{// Get products from shopXtools storage\nconst products=window.shopXtools?.products||[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);// Preserve active variant selection if possible\nif(activeVariant){const matchingVariant=_matchingProduct.node.variants?.edges.find(({node})=>node.selectedOptions.every(option=>activeVariant.selectedOptions.find(activeOption=>activeOption.name===option.name&&activeOption.value===option.value)));if(matchingVariant){setActiveVariant(matchingVariant.node);}}}}catch(error){// Error handling\n}finally{setIsLoadingPrice(false);}},[shopifyProductID,activeVariant]);// Listen for currency changes\nuseEffect(()=>{if(!isBrowser)return;window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[isBrowser,handleCurrencyChange]);// Initial product load\nuseEffect(()=>{if(!isBrowser)return;// Single handler for all product-ready events (both priority and regular)\nconst handleProductsReady=e=>{if(product&&product.id===`gid://shopify/Product/${shopifyProductID}`){return;}if(!Array.isArray(e.detail?.products))return;// console.log('Products ready event received in Price component', e);\nconst matchingProduct=e.detail.products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(matchingProduct){setProduct(matchingProduct.node);// console.log('Product loaded:', matchingProduct.node.title);\nif(matchingProduct.node?.variants?.edges?.length===1){setActiveVariant(matchingProduct.node.variants.edges[0].node);}}};// Add event listeners - single handleProductsReady handles both events\ndocument.addEventListener(\"data__products-ready\",handleProductsReady);document.addEventListener(\"product__active-variant__changed\",handleVariantChange);// Cleanup\nreturn()=>{document.removeEventListener(\"data__products-ready\",handleProductsReady);document.removeEventListener(\"product__active-variant__changed\",handleVariantChange);};},[isBrowser,shopifyProductID,selectedCurrency,selectedCountryCode,product]);const loadProduct=async()=>{try{// console.log('Loading product...');\n// Get products from shopXtools storage\nconst products=Array.isArray(window?.shopXtools?.products)?window.shopXtools.products:[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(_matchingProduct.node);// console.log(\n//   'Product found after immediate initialization:',\n//   _matchingProduct.node?.title\n// );\nif(_matchingProduct.node?.variants?.edges?.length===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}}else{// Product not found - request priority fetch\nif(window?.shopXtools?.getProducts){// console.log('Product not found - request priority fetch...');\nwindow.shopXtools.getProducts(shopifyProductID);}}}catch(error){console.error(\"Error loading product:\",error);}};useEffect(()=>{if(!isBrowser)return;loadProduct();},[isBrowser]);// Wait for variant selection events with timeout\nuseEffect(()=>{if(!isBrowser||!product)return;// Only wait for variant selection if it's a multi-variant product\nconst isMultiVariant=product.variants?.edges?.length>1;if(!isMultiVariant)return;// Set waiting state and start timeout\nsetWaitingForVariantSelection(true);// console.log(\"Price component: Waiting for variant selection events...\")\nconst timeout=setTimeout(()=>{// If no variant selection events received within timeout, assume no variant selector\nsetWaitingForVariantSelection(false);//console.log(\"Price component: No variant selection events received, showing product price\")\n},1e3)// 1 second timeout\n;return()=>{clearTimeout(timeout);};},[isBrowser,product]);// Add subscription price listener\nuseEffect(()=>{if(!isBrowser)return;// Check for persisted subscription state that may have been set\n// before this component mounted (solves timing/race on page refresh)\nconst persisted=window.__fc_activeSubscription?.[shopifyProductID];if(persisted?.price&&!subscriptionPrice){setSubscriptionPrice(persisted.price);}const handleSubscriptionPriceUpdate=e=>{// Ignore events for other products\nif(e.detail?.productId&&e.detail.productId!==shopifyProductID)return;if(e.detail?.price){setSubscriptionPrice(e.detail.price);}else{setSubscriptionPrice(null);}};const handleVariantOptionSelected=e=>{//console.log(\"variant_option_selected\", e.detail)\nif(e.detail?.isPurchaseAction){// console.log(\n//     \"Purchase action is true, returning\",\n//     e.detail?.isPurchaseAction\n// )\nreturn;}// Check if this event is for our product\nconst eventProductId=e.detail?.productId;const expectedProductId=`gid://shopify/Product/${shopifyProductID}`;if(eventProductId&&eventProductId!==expectedProductId){//console.log(\"Event not for this product\", eventProductId, expectedProductId)\nreturn;}// Clear waiting state when variant selection events are received\nsetWaitingForVariantSelection(false);//console.log(\"Price component: Variant selection event received, clearing wait state\")\nsetIsLoadingPrice(true);if(e.detail?.optionName&&e.detail?.value){setPartialSelections({[e.detail.optionName]:e.detail.value});//console.log(\"setting partialSelections from individual option\", e.detail.optionName, e.detail.value)\n}setIsLoadingPrice(false);};document.addEventListener(\"subscription__price-update\",handleSubscriptionPriceUpdate);document.addEventListener(\"variant_option_selected\",handleVariantOptionSelected);document.addEventListener(\"__variant_option_selected\",handleVariantOptionSelected);return()=>{document.removeEventListener(\"subscription__price-update\",handleSubscriptionPriceUpdate);document.removeEventListener(\"variant_option_selected\",handleVariantOptionSelected);document.removeEventListener(\"__variant_option_selected\",handleVariantOptionSelected);};},[isBrowser,shopifyProductID]);// Get currency formatting options at component level\nconst _currencyCode=useMemo(()=>{const variantCurrency=get(activeVariant,\"price.currencyCode\");const productCurrency=get(product,\"priceRange.minVariantPrice.currencyCode\");return variantCurrency||productCurrency||\"USD\";},[activeVariant,product]);const showMockValues=useMemo(()=>RenderTarget.current()===RenderTarget.canvas||isBrowser&&window.location.origin.endsWith(\"framercanvas.com\"),[isBrowser]);// Common function to format price based on options\nconst formatPriceWithOptions=(numericPrice,currCode)=>{const symbolSameAsCode=isCurrencySymbolSameAsCode(currCode);// Get locale from selected country code\nconst locale=getLocaleFromCountry(selectedCountryCode);// Log browser user agent for debugging iOS-specific issues\n// if (isBrowser) {\n//     console.log(\"[FC_ProductPrice] Format debug:\", {\n//         userAgent: navigator.userAgent,\n//         isCurrencySymbolSameAsCode: symbolSameAsCode,\n//         currencyCode: currCode,\n//         selectedCountryCode,\n//         locale,\n//         showSymbol,\n//         showCurrency,\n//         showDecimals,\n//     })\n// }\n// Determine if we should show decimals based on the setting\nconst shouldShowDecimals=()=>{if(showDecimals===\"Always show\")return true;if(showDecimals===\"Never show\")return false;if(showDecimals===\"Hide when .00\"){// Check if the decimal part is zero\nreturn numericPrice%1!==0;}return true// Default fallback\n;};const decimalDigits=shouldShowDecimals()?2:0;// If showing neither symbol nor code, just format the number\nif(!showSymbol&&!showCurrency){const formattedNumber=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);return formattedNumber;}// Special case for USD to prevent \"US$\" display in Safari iOS\nif(currCode===\"USD\"&&showSymbol){// Check if running on iOS device\nconst isIOS=isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream;// Format USD manually to avoid the iOS \"US$\" prefix\nif(isIOS){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);let result;if(!showCurrency){result=`$${number}`// Just \"$50\" format\n;}else{result=`$${number} USD`// \"$50 USD\" format\n;}return result;}else{// For non-iOS devices, continue with normal formatting but use\n// a more controlled approach to ensure consistency\nlet result;if(!showCurrency){result=new Intl.NumberFormat(locale,{style:\"currency\",currency:\"USD\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);}else{const withSymbol=new Intl.NumberFormat(locale,{style:\"currency\",currency:\"USD\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);result=`${withSymbol} USD`;}return result;}}// For currencies where symbol is same as code (like CHF)\nif(symbolSameAsCode){// If showing currency code, always use code-first format and ignore symbol\nif(showCurrency&&!showSymbol){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);const output=`${currCode} ${number}`;return output;}if(showSymbol&&!showCurrency){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);const output=`${currCode} ${number}`;return output;}if(showCurrency&&showSymbol){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);const result=`${currCode} ${number}`;return result;}}// For currencies with distinct symbols (like USD with $)\n// If showing only the code (no symbol)\nif(!showSymbol&&showCurrency){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);// For normal currencies, show code after the number\nconst result=`${number} ${currCode}`;return result;}// If showing only the symbol (no code)\nif(showSymbol&&!showCurrency){const result=new Intl.NumberFormat(locale,{style:\"currency\",currency:currCode,minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);return result;}// If showing both symbol and code\nconst withSymbol=new Intl.NumberFormat(locale,{style:\"currency\",currency:currCode,minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);const result=`${withSymbol} ${currCode}`;return result;};const text=useMemo(()=>{if(!isBrowser)return\"\";// For canvas view, handle the display options directly\nif(typeof RenderTarget!==\"undefined\"&&(RenderTarget.current()===RenderTarget.canvas||showMockValues)){// Parse canvasPrice as range format (e.g., \"200.00-250.00\")\nlet minPrice;let maxPrice;if(canvasPrice){const priceRange=canvasPrice.split(\"-\");if(priceRange.length===2){minPrice=priceRange[0].trim();maxPrice=priceRange[1].trim();}else{// If no range format, use the single price for both min and max\nminPrice=canvasPrice;maxPrice=canvasPrice;}}const numericPrice=parseFloat(minPrice);const numericMaxPrice=parseFloat(maxPrice);const currentCurrencyCode=currencyCode||\"USD\";const formattedPrice=formatPriceWithOptions(numericPrice,currentCurrencyCode);// Handle displayPrice logic for canvas preview\nif(props.displayPrice===\"minimum price\"){// If min and max are the same, just show one price (no \"from\" prefix)\nif(Math.abs(numericPrice-numericMaxPrice)<.01){return formattedPrice;}return`${fromText} ${formattedPrice}`;}if(props.displayPrice===\"range\"){const formattedMaxPrice=formatPriceWithOptions(numericMaxPrice,currentCurrencyCode);// If min and max are the same, just show one price\nif(Math.abs(numericPrice-numericMaxPrice)<.01){return formattedPrice;}return`${formattedPrice} - ${formattedMaxPrice}`;}return formattedPrice;}// For live view, use the selected currency or preview currency\nconst amount=subscriptionPrice||activeVariant&&get(activeVariant,\"price.amount\");if(!amount&&!activeVariant&&!product?.priceRange){return\"\";}const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";// Use cached range if available, otherwise compute on-demand\nconst range=computedPriceRange.min!==null?computedPriceRange:getProductPriceRange(product,false);const{min:computedMin,max:computedMax}=range;// FAST PATH: If we have an amount (subscription or active variant), format it immediately\nif(amount){const numericPrice=parseFloat(amount);if(isNaN(numericPrice))return\"\";const formattedPrice=formatPriceWithOptions(numericPrice,currentCurrencyCode);return formattedPrice;}// FAST PATH: Single variant products - show price immediately\nif(product?.variants?.edges?.length===1&&!activeVariant){const variant=product.variants.edges[0].node;if(variant?.price?.amount){const numericPrice=parseFloat(variant.price.amount);if(!isNaN(numericPrice)){return formatPriceWithOptions(numericPrice,currentCurrencyCode);}}}// Handle partial selections (when user selects only some variant options)\nconst hasPartialSelections=Object.keys(partialSelections).length>0;const hasCompleteVariant=activeVariant&&activeVariant.selectedOptions?.length>0;//console.log(\"hasPartialSelections\", hasPartialSelections)\n//console.log(\"hasCompleteVariant\", hasCompleteVariant)\n//console.log(\"product\", product)\n//console.log(\"partialSelections\", partialSelections)\nif(hasPartialSelections&&!hasCompleteVariant&&product?.variants?.edges?.length&&variantSelectorAction!==\"purchase\"){// Filter variants that match the partial selections\nconst matchingVariants=product.variants.edges.filter(({node:variant})=>{return variant.selectedOptions.every(option=>{// If this option is in our partial selections, it must match\nif(partialSelections[option.name]){return partialSelections[option.name]===option.value;}// If not in partial selections, any value is fine\nreturn true;});});// console.log(\"matchingVariants\", matchingVariants)\nif(matchingVariants.length>0){//console.log(\"matchingVariants\", matchingVariants)\n// Calculate min and max prices for matching variants\nconst prices=matchingVariants.map(({node:variant})=>parseFloat(variant.price?.amount||\"0\")).filter(price=>price>0);if(prices.length>0){const minPrice=Math.min(...prices);const maxPrice=Math.max(...prices);const formattedMinPrice=formatPriceWithOptions(minPrice,currentCurrencyCode);if(props.displayPrice===\"range\"){// If min and max are the same, just show one price\nif(Math.abs(minPrice-maxPrice)<.01){return formattedMinPrice;}const formattedMaxPrice=formatPriceWithOptions(maxPrice,currentCurrencyCode);return`${formattedMinPrice} - ${formattedMaxPrice}`;}if(props.displayPrice===\"minimum price\"){// If min and max are the same, just show one price (no \"from\" prefix)\nif(Math.abs(minPrice-maxPrice)<.01){return formattedMinPrice;}return`${fromText} ${formattedMinPrice}`;}}}}// Handle price range display logic for complete product (no active variant)\nif(!activeVariant&&product?.priceRange||variantSelectorAction===\"purchase\"&&product?.priceRange){// If we're waiting for variant selection, don't show product price\nif(waitingForVariantSelection){return\"\";}// PROGRESSIVE ENHANCEMENT: Show min price immediately, enhance with range when computed\nif(computedMin){const formattedMinPrice=formatPriceWithOptions(computedMin,currentCurrencyCode);// If we have both min and max, show range\nif(computedMax&&Math.abs(computedMin-computedMax)>.01){if(props.displayPrice===\"range\"){const formattedMaxPrice=formatPriceWithOptions(computedMax,currentCurrencyCode);return`${formattedMinPrice} - ${formattedMaxPrice}`;}if(props.displayPrice===\"minimum price\"){// If min and max are the same, just show one price (no \"from\" prefix)\nif(Math.abs(computedMin-computedMax)<.01){return formattedMinPrice;}return`${fromText} ${formattedMinPrice}`;}}// Single price or fallback\nif(props.displayPrice===\"range\"){return formattedMinPrice;}// If min and max are the same, just show one price (no \"from\" prefix)\nif(computedMax&&Math.abs(computedMin-computedMax)<.01){return formattedMinPrice;}return`${fromText} ${formattedMinPrice}`;}// FALLBACK: Use product-level range if available\nconst productMinPrice=get(product,\"priceRange.minVariantPrice.amount\");const productMaxPrice=get(product,\"priceRange.maxVariantPrice.amount\");if(productMinPrice){const numericMinPrice=parseFloat(productMinPrice);if(!isNaN(numericMinPrice)&&numericMinPrice>0){const formattedMinPrice=formatPriceWithOptions(numericMinPrice,currentCurrencyCode);if(props.displayPrice===\"range\"){if(productMaxPrice){const numericMaxPrice=parseFloat(productMaxPrice);if(!isNaN(numericMaxPrice)&&numericMaxPrice>0&&Math.abs(numericMinPrice-numericMaxPrice)>.01){const formattedMaxPrice=formatPriceWithOptions(numericMaxPrice,currentCurrencyCode);return`${formattedMinPrice} - ${formattedMaxPrice}`;}}return formattedMinPrice;}// If min and max are the same, just show one price (no \"from\" prefix)\nif(productMaxPrice){const numericMaxPrice=parseFloat(productMaxPrice);if(!isNaN(numericMaxPrice)&&Math.abs(numericMinPrice-numericMaxPrice)<.01){return formattedMinPrice;}}return`${fromText} ${formattedMinPrice}`;}}}// Absolute last fallback: try active variant again or show nothing\nreturn\"\";},[isBrowser,showMockValues,activeVariant,product,canvasPrice,showCurrency,showSymbol,currencyCode,showDecimals,selectedCurrency,selectedCountryCode,subscriptionPrice,props.displayPrice,partialSelections,variantSelectorAction,fromText,waitingForVariantSelection,getProductPriceRange]);const compareAtPrice=useMemo(()=>{// For partial selections (variant groups), check if any matching variants have compareAtPrice\nif(Object.keys(partialSelections).length>0&&product?.variants?.edges?.length){const matchingVariants=product.variants.edges.filter(({node:variant})=>{return variant.selectedOptions.every(option=>{if(partialSelections[option.name]){return partialSelections[option.name]===option.value;}return true;});});// Check if ALL matching variants have a valid compareAtPrice\nconst allMatchingVariantsHaveComparePrice=matchingVariants.every(({node:variant})=>{const compareAmount=get(variant,\"compareAtPrice.amount\");return compareAmount&&parseFloat(compareAmount)>0;});// If not all matching variants have compareAtPrice, return empty string\nif(!allMatchingVariantsHaveComparePrice){return\"\";}// If all matching variants have compareAtPrice, use the minimum for consistency\nconst comparePrices=matchingVariants.map(({node:variant})=>parseFloat(get(variant,\"compareAtPrice.amount\")||\"0\")).filter(price=>price>0);if(comparePrices.length>0){const minComparePrice=Math.min(...comparePrices);const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";return formatPriceWithOptions(minComparePrice,currentCurrencyCode);}}// For active variant, use its compareAtPrice\nif(activeVariant){const amount=get(activeVariant,\"compareAtPrice.amount\");if(!amount)return\"\";const numericPrice=parseFloat(amount);if(isNaN(numericPrice)||numericPrice<=0)return\"\";const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";return formatPriceWithOptions(numericPrice,currentCurrencyCode);}// For product level (no variant selected), check if ALL variants have compareAtPrice\nif(product?.variants?.edges?.length){const allVariantsHaveComparePrice=product.variants.edges.every(({node:variant})=>{const compareAmount=get(variant,\"compareAtPrice.amount\");return compareAmount&&parseFloat(compareAmount)>0;});// If not all variants have compareAtPrice, don't show sale styling\nif(!allVariantsHaveComparePrice){return\"\";}// If all variants have compareAtPrice, use the product-level compareAtPriceRange\nconst amount=get(product,\"compareAtPriceRange.minVariantPrice.amount\");if(!amount)return\"\";const numericPrice=parseFloat(amount);if(isNaN(numericPrice)||numericPrice<=0)return\"\";const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";return formatPriceWithOptions(numericPrice,currentCurrencyCode);}return\"\";},[activeVariant,product,partialSelections,currencyCode,showCurrency,showSymbol,showDecimals,selectedCurrency,selectedCountryCode,showMockValues,props.format]);const numericValue=useMemo(()=>parseFloat(compareAtPrice.replace(/[^\\d.-]/g,\"\")),[compareAtPrice]);const hasValidCompareAtPrice=!isNaN(numericValue)&&numericValue>0;const shouldDisplay=useMemo(()=>{if(showMockValues)return true;if(!text)return false;const value=parseFloat(text.replace(/[^\\d.-]/g,\"\"));return!isNaN(value)&&value>0;},[text,showMockValues]);const computedStyles=useMemo(()=>{const baseStyles={margin:0,padding:0,lineHeight:1,whiteSpace:\"nowrap\",display:\"inline-block\",width:\"auto\"};const priceStyles=hasValidCompareAtPrice?props.saleFont:props.regularFont;const priceColor=hasValidCompareAtPrice?props.saleColor:props.regularColor;return{...baseStyles,...priceStyles,color:priceColor};},[hasValidCompareAtPrice,props.saleFont,props.regularFont,props.saleColor,props.regularColor]);// console.log(\"Text\", text)\n// // Price calculation logging\n// useEffect(() => {\n//     console.log(\"[FC_ProductPrice] Price State Update:\", {\n//         activeVariant,\n//         product,\n//         selectedCurrency,\n//         subscriptionPrice,\n//     })\n// }, [activeVariant, product, selectedCurrency, subscriptionPrice])\n// useEffect(() => {\n//     console.log(\"Active variant updated:\", activeVariant);\n// }, [activeVariant]);\n// Return placeholder during SSR\nif(!isBrowser||isLoadingPrice){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}// Progressive enhancement: Show loading state only when we have no data at all\nconst shouldShowLoading=!product&&!activeVariant&&!subscriptionPrice&&!showMockValues;if(shouldShowLoading){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}// Show progressive loading indicator when computing ranges\nconst isComputingRange=product&&!isRangeComputed&&product.variants?.edges?.length>1;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-block\",maxWidth:\"100%\",width:\"auto\",whiteSpace:\"nowrap\",overflow:\"visible\",transform:\"none\",transition:\"none\",animation:\"none\",willChange:\"auto\"},children:/*#__PURE__*/_jsxs(\"p\",{style:{...computedStyles,transform:\"none\",transition:\"none\",animation:\"none\",willChange:\"auto\"},children:[text,isComputingRange&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.6,fontSize:\"0.8em\",marginLeft:\"4px\"},children:\"...\"})]})});}FC_ProductPrice.defaultProps={shopifyProductID:\"\",canvasPrice:\"50.00\",fromText:\"from\",format:{showCurrency:true,showSymbol:true,currencyCode:\"USD\",showDecimals:\"Always show\"}};addPropertyControls(FC_ProductPrice,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS (required).\"},canvasPrice:{type:ControlType.String,title:\"Price\",defaultValue:\"50.00\",description:\"Connect to CMS (for canvas preview only).\"},displayPrice:{type:ControlType.Enum,title:\"Varying Prices\",options:[\"minimum price\",\"range\"],optionTitles:[\"Minimum Price\",\"Range\"],defaultValue:\"minimum price\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"When a product has multiple prices and a variant has not been selected.\"},fromText:{type:ControlType.String,title:\"Prefix\",placeholder:\"from\",defaultValue:\"from\",hidden:props=>props.displayPrice!==\"minimum price\"},format:{type:ControlType.Object,title:\"Format\",controls:{showSymbol:{type:ControlType.Boolean,title:\"Symbol\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"$, \\xa3, €, etc.\"},showCurrency:{type:ControlType.Boolean,title:\"Code\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"USD, EUR, CHF, etc.\"},showDecimals:{type:ControlType.Enum,title:\"Decimals\",defaultValue:\"Always show\",options:[\"Always show\",\"Never show\",\"Hide when .00\"],optionTitles:[\"Always show\",\"Never show\",\"Hide when .00\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},currencyCode:{type:ControlType.Enum,title:\"Preview\",defaultValue:\"USD\",options:[\"USD\",\"EUR\",\"GBP\",\"CHF\",\"JPY\",\"CAD\",\"AUD\",\"CNY\",\"HKD\",\"NZD\",\"SEK\",\"KRW\",\"SGD\",\"NOK\",\"MXN\",\"INR\",\"RUB\",\"ZAR\",\"TRY\",\"BRL\",\"TWD\",\"DKK\",\"PLN\",\"THB\",\"IDR\",\"HUF\",\"CZK\",\"ILS\",\"CLP\",\"PHP\",\"AED\",\"COP\",\"SAR\",\"MYR\",\"RON\"],description:\"Currency is for canvas preview only.\"}}},/** Font and Color Controls */regularFont:{type:ControlType.Font,title:\"Regular\",controls:\"extended\"},regularColor:{type:ControlType.Color,title:\"↳ Color\",defaultValue:\"#000\"},saleFont:{type:ControlType.Font,title:\"Sale\",controls:\"extended\"},saleColor:{type:ControlType.Color,title:\"↳ Color\",defaultValue:\"#FF0000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductPrice\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductPrice.map","/*\n * Framer Commerce\n * Confidential and Proprietary - All Rights Reserved\n * Unauthorized use, reproduction, distribution, or disclosure of this\n * source code or any related information is strictly prohibited.\n *\n * This software is the exclusive property of Framer Commerce (\"Company\").\n * It is considered highly confidential and proprietary information.\n *\n * Any use, copying, modification, distribution, or sharing of this software,\n * in whole or in part, without the express written permission of the Company\n * is strictly prohibited and may result in legal action.\n *\n * DISCLAIMER: This software does not provide any express or\n * implied warranties, including, but not limited to, the implied warranties\n * of merchantability and fitness for a particular purpose. In no event shall\n * Framer Commerce be liable for any direct, indirect, incidental, special,\n * exemplary, or consequential damages (including, but not limited to, procurement\n * of substitute goods or services; loss of use, data, or profits; or business\n * interruption) however caused and on any theory of liability, whether in\n * contract, strict liability, or tort (including negligence or otherwise)\n * arising in any way out of the use of this software, even if advised of\n * the possibility of such damage.\n *\n * Any unauthorized possession, use, copying, distribution, or dissemination\n * of this software will be considered a breach of confidentiality and may\n * result in legal action.\n *\n * For inquiries, contact:\n * Framer Commerce\n * Email: hello@framercommerce.com\n *\n * © 2025 Butter Supply Inc. All Rights Reserved.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{get}from\"lodash-es\";import{useIsBrowser}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/ncBs5KPMI9I5GEta13fn/zGXDjuZapa1SGy6D8P5e/IsBrowser.js\";import{knownCurrenciesWithCodeAsSymbol}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/k9s4cejdkBGDjmzudhzM/18cq93eooqM4YmdbL7E2/currencyMaps.js\";// Helper function to map country code to appropriate locale\nconst getLocaleFromCountry=countryCode=>{// Default fallback locale\nif(!countryCode)return undefined;// Common country code to locale mappings\nconst countryToLocale={// North America\nUS:\"en-US\",CA:\"en-CA\",QC:\"fr-CA\",// Europe\nGB:\"en-GB\",FR:\"fr-FR\",DE:\"de-DE\",IT:\"it-IT\",ES:\"es-ES\",PT:\"pt-PT\",NL:\"nl-NL\",BE:\"fr-BE\",LU:\"fr-LU\",CH:\"de-CH\",AT:\"de-AT\",SE:\"sv-SE\",NO:\"nb-NO\",DK:\"da-DK\",FI:\"fi-FI\",PL:\"pl-PL\",CZ:\"cs-CZ\",HU:\"hu-HU\",RU:\"ru-RU\",// Asia Pacific\nCN:\"zh-CN\",JP:\"ja-JP\",KR:\"ko-KR\",IN:\"en-IN\",AU:\"en-AU\",NZ:\"en-NZ\",// Latin America\nMX:\"es-MX\",BR:\"pt-BR\",AR:\"es-AR\",CL:\"es-CL\",CO:\"es-CO\",PE:\"es-PE\",// Middle East & Africa\nAE:\"ar-AE\",SA:\"ar-SA\",ZA:\"en-ZA\",IL:\"he-IL\"};return countryToLocale[countryCode]||undefined;};// Helper function to check if a currency's symbol is the same as its code\nconst isCurrencySymbolSameAsCode=currencyCode=>{// For some currencies like CHF, the browser might use the code as the symbol\nif(!currencyCode)return false;if(knownCurrenciesWithCodeAsSymbol.includes(currencyCode)){return true;}try{const formatted=new Intl.NumberFormat(undefined,{style:\"currency\",currency:currencyCode,currencyDisplay:\"narrowSymbol\"}).format(0);// Remove digits, decimal points, and common formatting characters\nconst cleanFormatted=formatted.replace(/[0-9.,\\s]/g,\"\");// Check if what remains is the currency code\nreturn cleanFormatted===currencyCode;}catch(e){return false;}};/**\n * @framerDisableUnlink\n */export default function FC_ProductPriceCompare(props){const{shopifyProductID,canvasPrice,format:{showCurrency,showSymbol,showDecimals,currencyCode}={},strikethrough,strikethroughColor,strikethroughSize,font,color,compareAtPrefix=\"\"}=props;const[product,setProduct]=useState();const[activeVariant,setActiveVariant]=useState();const[selectedCurrency,setSelectedCurrency]=useState(\"\");const[selectedCountryCode,setSelectedCountryCode]=useState(\"\");const[selectedCountry,setSelectedCountry]=useState(\"\");const[partialSelections,setPartialSelections]=useState({});const[variantSelectorAction,setVariantSelectorAction]=useState(\"\");const isBrowser=useIsBrowser();const normalizeProduct=useCallback(p=>{if(!p)return p;const edges=p?.variants?.edges;if(!Array.isArray(edges)){return{...p,variants:{...p.variants||{},edges:Array.isArray(edges)?edges:[]}};}return p;},[]);// Initialize currency from localStorage on page load\nuseEffect(()=>{if(!isBrowser)return;const storedCurrency=localStorage.getItem(\"selectedCurrency\");const storedCountryCode=localStorage.getItem(\"selectedCountryCode\");const storedCountry=localStorage.getItem(\"selectedCountry\");setSelectedCurrency(storedCurrency||\"USD\");setSelectedCountryCode(storedCountryCode||\"US\");setSelectedCountry(storedCountry||\"United States\");},[isBrowser]);const _currencyCode=useMemo(()=>{const variantCurrency=get(activeVariant,\"price.currencyCode\");const productCurrency=get(product,\"priceRange.minVariantPrice.currencyCode\");return variantCurrency||productCurrency||\"USD\";},[activeVariant,product]);const showMockValues=useMemo(()=>typeof RenderTarget!==\"undefined\"&&(RenderTarget.current()===RenderTarget.canvas||isBrowser&&window.location.origin.endsWith(\"framercanvas.com\")),[isBrowser]);// Cached compareAt range per product/currency\nconst compareRangeCache=useRef(new Map);const getProductCompareRange=useCallback(p=>{if(!p)return{min:null,max:null};const currency=_currencyCode||selectedCurrency||\"USD\";const cacheKey=`${p.id||\"no-id\"}-${currency}-compare`;if(compareRangeCache.current.has(cacheKey)){return compareRangeCache.current.get(cacheKey);}const minFromProduct=get(p,\"compareAtPriceRange.minVariantPrice.amount\");const maxFromProduct=get(p,\"compareAtPriceRange.maxVariantPrice.amount\");let minVal=minFromProduct?parseFloat(minFromProduct):null;let maxVal=maxFromProduct?parseFloat(maxFromProduct):null;if(minVal===null||isNaN(minVal)||maxVal===null||isNaN(maxVal)){const edges=p?.variants?.edges||[];for(let i=0;i<(Array.isArray(edges)?edges.length:0);i++){const v=edges[i]?.node;if(!v)continue;const amtStr=get(v,\"compareAtPrice.amount\");const amt=amtStr?parseFloat(amtStr):NaN;if(!isNaN(amt)&&amt>0){if(minVal===null||amt<minVal)minVal=amt;if(maxVal===null||amt>maxVal)maxVal=amt;}}}const value={min:typeof minVal===\"number\"&&!isNaN(minVal)?minVal:null,max:typeof maxVal===\"number\"&&!isNaN(maxVal)?maxVal:null};compareRangeCache.current.set(cacheKey,value);return value;},[_currencyCode,selectedCurrency]);const productCompareRange=useMemo(()=>getProductCompareRange(product),[product,getProductCompareRange]);// Common function to format price based on options\nconst formatPriceWithOptions=(numericPrice,currCode)=>{const symbolSameAsCode=isCurrencySymbolSameAsCode(currCode);// Get locale from selected country code\nconst locale=getLocaleFromCountry(selectedCountryCode);// Determine if we should show decimals based on the setting\nconst shouldShowDecimals=()=>{if(showDecimals===\"Always show\")return true;if(showDecimals===\"Never show\")return false;if(showDecimals===\"Hide when .00\"){// Check if the decimal part is zero\nreturn numericPrice%1!==0;}return true// Default fallback for boolean value\n;};const decimalDigits=shouldShowDecimals()?2:0;// If showing neither symbol nor code, just format the number\nif(!showSymbol&&!showCurrency){return new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);}// Special case for USD to prevent \"US$\" display in Safari iOS\nif(currCode===\"USD\"&&showSymbol){// Check if running on iOS device\nconst isIOS=isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!(\"MSStream\"in window);// Format USD manually to avoid the iOS \"US$\" prefix\nif(isIOS){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);if(!showCurrency){return`$${number}`// Just \"$50\" format\n;}else{return`$${number} USD`// \"$50 USD\" format\n;}}else{// For non-iOS devices, continue with normal formatting but use\n// a more controlled approach to ensure consistency\nif(!showCurrency){return new Intl.NumberFormat(locale,{style:\"currency\",currency:\"USD\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);}else{const withSymbol=new Intl.NumberFormat(locale,{style:\"currency\",currency:\"USD\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);return`${withSymbol} USD`;}}}// For currencies where symbol is same as code (like CHF)\nif(symbolSameAsCode){// If showing currency code, always use code-first format and ignore symbol\nif(showCurrency&&!showSymbol){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);const output=`${currCode} ${number}`;return output;}if(showSymbol&&!showCurrency){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);const output=`${currCode} ${number}`;return output;}if(showCurrency&&showSymbol){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);return`${currCode} ${number}`;}}// For currencies with distinct symbols (like USD with $)\n// If showing only the code (no symbol)\nif(!showSymbol&&showCurrency){const number=new Intl.NumberFormat(locale,{style:\"decimal\",minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits}).format(numericPrice);// For normal currencies, show code after the number\nreturn`${number} ${currCode}`;}// If showing only the symbol (no code)\nif(showSymbol&&!showCurrency){return new Intl.NumberFormat(locale,{style:\"currency\",currency:currCode,minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);}// If showing both symbol and code\nconst withSymbol=new Intl.NumberFormat(locale,{style:\"currency\",currency:currCode,minimumFractionDigits:decimalDigits,maximumFractionDigits:decimalDigits,currencyDisplay:\"narrowSymbol\"}).format(numericPrice);return`${withSymbol} ${currCode}`;};const text=useMemo(()=>{if(!isBrowser)return\"\";// console.log('[ComparePrice] Debug:', {\n//     activeVariant,\n//     compareAtPrice: activeVariant ? get(activeVariant, 'compareAtPrice.amount') : null,\n//     product,\n//     productComparePrice: get(product, 'compareAtPriceRange.minVariantPrice.amount'),\n//     partialSelections,\n//     variantSelectorAction,\n//     // showMockValues,\n//     // selectedCurrency\n// })\n// For canvas view, handle the display options directly\nif(typeof RenderTarget!==\"undefined\"&&(RenderTarget.current()===RenderTarget.canvas||showMockValues)){// Parse canvasPrice as range format (e.g., \"200.00-250.00\")\nlet minPrice;let maxPrice;if(canvasPrice){const priceRange=canvasPrice.split(\"-\");if(Array.isArray(priceRange)&&priceRange.length===2){minPrice=priceRange[0].trim();maxPrice=priceRange[1].trim();}else{// If no range format, use the single price for both min and max\nminPrice=canvasPrice;maxPrice=canvasPrice;}}const numericMinPrice=parseFloat(minPrice);const numericMaxPrice=parseFloat(maxPrice);const currentCurrencyCode=currencyCode||\"USD\";// Apply same logic as product (no active variant) case\n// If min and max are the same, show one price\nif(numericMinPrice===numericMaxPrice&&numericMinPrice>0&&numericMaxPrice>0){const formattedPrice=formatPriceWithOptions(numericMinPrice,currentCurrencyCode);return compareAtPrefix?`${compareAtPrefix} ${formattedPrice}`:formattedPrice;}else{return\"\";}}// For live view, get the compare at price\nconst amount=activeVariant&&get(activeVariant,\"compareAtPrice.amount\");const{min:compMin,max:compMax}=productCompareRange;if(!amount&&!activeVariant&&!product?.compareAtPriceRange&&!(compMin&&compMax))return\"\";const currentCurrencyCode=selectedCurrency||currencyCode||\"USD\";// If we have an amount, format it\nif(amount){const numericPrice=parseFloat(amount);if(isNaN(numericPrice))return\"\";const formattedPrice=formatPriceWithOptions(numericPrice,currentCurrencyCode);return compareAtPrefix?`${compareAtPrefix} ${formattedPrice}`:formattedPrice;}// Handle partial selections (when user selects only some variant options)\nconst hasPartialSelections=Object.keys(partialSelections||{}).length>0;const hasCompleteVariant=activeVariant&&Array.isArray(activeVariant.selectedOptions)&&activeVariant.selectedOptions.length>0;// console.log(\"hasPartialSelections\", hasPartialSelections)\n// console.log(\"hasCompleteVariant\", hasCompleteVariant)\n// console.log(\"product\", product)\n// console.log(\"partialSelections\", partialSelections)\nif(hasCompleteVariant&&variantSelectorAction===\"purchase\"&&product?.variants?.edges?.length){return\"\";}const hasVariantEdges=Array.isArray(product?.variants?.edges)&&(product?.variants?.edges?.length||0)>0;if(hasPartialSelections&&!hasCompleteVariant&&hasVariantEdges){// Filter variants that match the partial selections\nconst matchingVariants=(product?.variants?.edges||[]).filter(({node:variant})=>{return variant.selectedOptions.every(option=>{// If this option is in our partial selections, it must match\nif(partialSelections[option.name]){return partialSelections[option.name]===option.value;}// If not in partial selections, any value is fine\nreturn true;});});if(Array.isArray(matchingVariants)&&matchingVariants.length>0){//console.log(\"matchingVariants\", matchingVariants)\n// Get all compare at prices for matching variants\nconst compareAtPrices=matchingVariants.map(({node:variant})=>get(variant,\"compareAtPrice.amount\")).filter(amount=>amount&&amount!==\"0\"&&amount!==\"0.00\");// If no compare at prices found, return empty\nif(!Array.isArray(compareAtPrices)||compareAtPrices.length===0){//console.log(\"[ComparePrice] (partial selections) no compare at prices found, return empty\")\nreturn\"\";}// Check if all matching variants have compare at prices\nconst allVariantsHaveComparePrice=matchingVariants.every(({node:variant})=>{const comparePrice=get(variant,\"compareAtPrice.amount\");return comparePrice&&comparePrice!==\"0\"&&comparePrice!==\"0.00\";});// If not all variants have compare prices, hide the compare price text\nif(!allVariantsHaveComparePrice){//console.log(\"[ComparePrice] not all matching variants have compare prices, hide compare price text\")\nreturn\"\";}// Convert to numeric values\nconst numericComparePrices=compareAtPrices.map(price=>parseFloat(price)).filter(price=>!isNaN(price)&&price>0);if(!Array.isArray(numericComparePrices)||numericComparePrices.length===0){//console.log(\"[ComparePrice] no numeric compare prices found, return empty\")\nreturn\"\";}// Check if all compare prices are the same\nconst minComparePrice=Math.min(...numericComparePrices);const maxComparePrice=Math.max(...numericComparePrices);const allSamePrice=Math.abs(minComparePrice-maxComparePrice)<.01;if(allSamePrice){// All matching variants have the same compare price, display one price\n//console.log(\"[ComparePrice] all matching variants have the same compare price, display one price\", minComparePrice, currentCurrencyCode)\nconst formattedPrice=formatPriceWithOptions(minComparePrice,currentCurrencyCode);return compareAtPrefix?`${compareAtPrefix} ${formattedPrice}`:formattedPrice;}else{// Prices differ, hide compare price text\n//console.log(\"[ComparePrice] matching variant prices differ, hide compare price text\")\nreturn\"\";}}}// Handle product (no active variant) - check all variants\nif(!activeVariant&&!hasPartialSelections&&hasVariantEdges){// First, check if ALL variants have compare prices\nconst allVariantsHaveComparePrice=(product?.variants?.edges||[]).every(({node:variant})=>{const comparePrice=get(variant,\"compareAtPrice.amount\");return comparePrice&&comparePrice!==\"0\"&&comparePrice!==\"0.00\";});// If not all variants have compare prices, hide the compare price text\nif(!allVariantsHaveComparePrice){//console.log(\"[ComparePrice] not all variants have compare prices, hide compare price text\")\nreturn\"\";}// Use product-level compare range with fallback to computed\nconst numericMinPrice=compMin;const numericMaxPrice=compMax;if(numericMinPrice&&numericMaxPrice){if(Math.abs(numericMinPrice-numericMaxPrice)<.01){const formattedPrice=formatPriceWithOptions(numericMinPrice,currentCurrencyCode);return compareAtPrefix?`${compareAtPrefix} ${formattedPrice}`:formattedPrice;}else{return\"\";}}return\"\";}return\"\";},[isBrowser,showMockValues,activeVariant,product,canvasPrice,showCurrency,showSymbol,currencyCode,showDecimals,selectedCurrency,selectedCountryCode,partialSelections,variantSelectorAction,compareAtPrefix,props.format]);const showComparePrice=useMemo(()=>{if(showMockValues){return canvasPrice&&canvasPrice.trim()!==\"\";}return text&&text.trim()!==\"\";},[showMockValues,canvasPrice,text]);// Listen for currency changes\nuseEffect(()=>{if(!isBrowser)return;const handleCurrencyChange=event=>{// console.log('[ComparePrice] Currency changed:', {\n//     newCurrency: event.detail.currency,\n//     newCountryCode: event.detail.countryCode\n// })\nconst{currency,countryCode,country}=event.detail;setSelectedCurrency(currency);setSelectedCountryCode(countryCode);setSelectedCountry(country);try{// Get products from shopXtools storage\nconst products=window.shopXtools?.products||[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(normalizeProduct(_matchingProduct.node));// Preserve active variant selection if possible\nif(activeVariant){const edges=_matchingProduct?.node?.variants?.edges||[];const matchingVariant=edges.find(({node})=>{const nodeOpts=Array.isArray(node?.selectedOptions)?node.selectedOptions:[];const activeOpts=Array.isArray(activeVariant?.selectedOptions)?activeVariant.selectedOptions:[];return nodeOpts.every(option=>activeOpts.some(activeOption=>activeOption?.name===option?.name&&activeOption?.value===option?.value));});if(matchingVariant){setActiveVariant(matchingVariant.node);}}}}catch(error){// Error handling\n}};window.addEventListener(\"currency_changed\",handleCurrencyChange);return()=>{window.removeEventListener(\"currency_changed\",handleCurrencyChange);};},[isBrowser,shopifyProductID,activeVariant,selectedCurrency,selectedCountryCode]);useEffect(()=>{if(!isBrowser)return;const handleVariantChange=e=>{// console.log(\"[ComparePrice] Variant changed:\", {\n//     detail: e.detail,\n//     expectedProductId: `gid://shopify/Product/${shopifyProductID}`,\n// })\n// Check for purchase action flag - if this is a purchase action, don't update variant state\nif(e.detail?.isPurchaseAction||e.detail?.onClickAction===\"purchase\"){// console.log(\n//     \"Purchase action detected, returning\",\n//     e.detail?.isPurchaseAction\n// )\nreturn;}try{const expectedProductId=`gid://shopify/Product/${shopifyProductID}`;if(e.detail){if(!e.detail.productId||e.detail.productId!==expectedProductId){return;}}if(e.detail.productId!==expectedProductId){setVariantSelectorAction(e.detail.onClickAction);//console.log(\"variantSelectorAction\", e.detail.onClickAction)\n}// If selection is partial, do not set activeVariant; preserve partial range behavior\nif(e.detail?.isCompleteVariant===false){setActiveVariant(null);if(Array.isArray(e.detail.selectedOptions)){const partial={};e.detail.selectedOptions.forEach(opt=>{if(opt?.name)partial[opt.name]=opt.value;});setPartialSelections(partial);}return;}// Get products from shopXtools storage\nconst products=window.shopXtools?.products||[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(normalizeProduct(_matchingProduct.node));// Find the matching variant in the current product data\nconst edges=_matchingProduct?.node?.variants?.edges||[];const matchingVariant=edges.find(({node})=>{const nodeOpts=Array.isArray(node?.selectedOptions)?node.selectedOptions:[];const activeOpts=Array.isArray(e.detail?.selectedOptions)?e.detail.selectedOptions:[]//Array.isArray(activeVariant?.selectedOptions) ? activeVariant.selectedOptions : []\n;return nodeOpts.every(option=>activeOpts.some(activeOption=>activeOption?.name===option?.name&&activeOption?.value===option?.value));});if(matchingVariant){if(e.detail.onClickAction===\"purchase\"){setActiveVariant(null);//console.log(\"setting partialSelections for purchase action\", e.detail.selectedOptions[0])\nsetPartialSelections({[e.detail.selectedOptions[0].name]:e.detail.selectedOptions[0].value});}else{setActiveVariant(matchingVariant.node);setPartialSelections({});}}else{// If no exact variant match but event was marked complete, fall back to event detail\n// Otherwise partial branches above already handled\nif(e.detail?.isCompleteVariant){setActiveVariant(e.detail);if(e.detail.onClickAction!==\"purchase\"){setPartialSelections({});}}}}}catch(error){// Error handling without console.error\nif(e.detail?.isCompleteVariant){setActiveVariant(e.detail);if(e.detail.onClickAction!==\"purchase\"){setPartialSelections({});}}else{setActiveVariant(null);if(Array.isArray(e.detail?.selectedOptions)){const partial={};e.detail.selectedOptions.forEach(opt=>{if(opt?.name)partial[opt.name]=opt.value;});setPartialSelections(partial);}}}};const handleProductsReady=e=>{if(Array.isArray(e.detail.products)){const _matchingProduct=e.detail.products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);setProduct(_matchingProduct?normalizeProduct(_matchingProduct.node):null);// If there's only one variant, set it as active\nif(Array.isArray(_matchingProduct?.node?.variants?.edges)&&(_matchingProduct?.node?.variants?.edges?.length||0)===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}}};// Add event listener for variant option selections\nconst handleVariantOptionSelected=e=>{//console.log(\"variant_option_selected\", e.detail)\nif(e.detail?.isPurchaseAction){// console.log(\n//     \"Purchase action is true, returning\",\n//     e.detail?.isPurchaseAction\n// )\nreturn;}// Check if this event is for our product\nconst eventProductId=e.detail?.productId;const expectedProductId=`gid://shopify/Product/${shopifyProductID}`;if(eventProductId&&eventProductId!==expectedProductId){//console.log(\"Event not for this product\", eventProductId, expectedProductId)\nreturn;}if(e.detail?.optionName&&e.detail?.value){setPartialSelections({[e.detail.optionName]:e.detail.value});//console.log(\"setting partialSelections from individual option\", e.detail.optionName, e.detail.value)\n}};// Initial product load function\nconst loadProduct=async()=>{try{// Get products from shopXtools storage\nconst products=window.shopXtools?.products||[];const _matchingProduct=products.find(({node:_product})=>_product.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct){setProduct(normalizeProduct(_matchingProduct.node));if(Array.isArray(_matchingProduct.node?.variants?.edges)&&(_matchingProduct?.node?.variants?.edges?.length||0)===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}// setActiveVariant(\n//     _matchingProduct.node?.variants?.edges[0].node\n// )\n}}catch(error){// Error handling without console.error\n}};// Call loadProduct on mount\nloadProduct();// Initial check for existing products\nif(window[\"shopXtools\"]?.products){const products=window[\"shopXtools\"].products;if(Array.isArray(products)&&products.length>0){const _matchingProduct=products.find(({node:_product})=>_product?.id===`gid://shopify/Product/${shopifyProductID}`);if(_matchingProduct?.node){setProduct(normalizeProduct(_matchingProduct.node));if(Array.isArray(_matchingProduct.node?.variants?.edges)&&(_matchingProduct?.node?.variants?.edges?.length||0)===1){setActiveVariant(_matchingProduct.node.variants.edges[0].node);}// setActiveVariant(\n//     _matchingProduct.node?.variants?.edges[0].node\n// )\n}else{setProduct(null);}}}// Add event listeners\ndocument.addEventListener(\"data__products-ready\",handleProductsReady);document.addEventListener(\"product__active-variant__changed\",handleVariantChange);document.addEventListener(\"variant_option_selected\",handleVariantOptionSelected);document.addEventListener(\"__variant_option_selected\",handleVariantOptionSelected);// Cleanup\nreturn()=>{document.removeEventListener(\"data__products-ready\",handleProductsReady);document.removeEventListener(\"product__active-variant__changed\",handleVariantChange);document.removeEventListener(\"variant_option_selected\",handleVariantOptionSelected);document.removeEventListener(\"__variant_option_selected\",handleVariantOptionSelected);};},[isBrowser,shopifyProductID,selectedCurrency]);// Return empty div during SSR\nif(!isBrowser){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}});}// console.log('[ComparePrice] Final render state:', {\n//     showComparePrice,\n//     text,\n//     showMockValues\n// })\n// Always show in canvas view, otherwise only show if there's a compare price\nif(!showComparePrice){return null;}return /*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-block\",maxWidth:\"100%\",width:\"auto\",whiteSpace:\"nowrap\",overflow:\"visible\",transform:\"none\",transition:\"none\",animation:\"none\",willChange:\"auto\"},children:/*#__PURE__*/_jsx(\"p\",{style:{...font,color:color,margin:0,padding:0,lineHeight:1,textDecoration:strikethrough?\"line-through\":\"none\",textDecorationColor:strikethroughColor,textDecorationThickness:strikethrough?`${strikethroughSize}px`:undefined,whiteSpace:\"nowrap\",display:\"inline-block\",width:\"auto\",transform:\"none\",transition:\"none\",animation:\"none\",willChange:\"auto\"},children:text})});}FC_ProductPriceCompare.defaultProps={shopifyProductID:\"\",strikethrough:true,strikethroughColor:\"#000000\",strikethroughSize:1,canvasPrice:\"75.00\",compareAtPrefix:\"\",format:{showCurrency:true,showSymbol:true,currencyCode:\"USD\",showDecimals:\"Always show\"}};addPropertyControls(FC_ProductPriceCompare,{shopifyProductID:{type:ControlType.String,title:\"Product ID\",description:\"Connect to CMS (required).\"},canvasPrice:{type:ControlType.String,title:\"Compare Price\",description:\"Connect to CMS (for canvas preview only).\",defaultValue:\"75.00\"},compareAtPrefix:{type:ControlType.String,title:\"Prefix\",placeholder:\"was\",defaultValue:\"\"},format:{type:ControlType.Object,title:\"Format\",controls:{showSymbol:{type:ControlType.Boolean,title:\"Symbol\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"$, \\xa3, €, etc.\"},showCurrency:{type:ControlType.Boolean,title:\"Code\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"USD, EUR, CHF, etc.\"},showDecimals:{type:ControlType.Enum,title:\"Decimals\",defaultValue:\"Always show\",options:[\"Always show\",\"Never show\",\"Hide when .00\"],optionTitles:[\"Always show\",\"Never show\",\"Hide when .00\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},currencyCode:{type:ControlType.Enum,title:\"Preview\",defaultValue:\"USD\",options:[\"USD\",\"EUR\",\"GBP\",\"CHF\",\"JPY\",\"CAD\",\"AUD\",\"CNY\",\"HKD\",\"NZD\",\"SEK\",\"KRW\",\"SGD\",\"NOK\",\"MXN\",\"INR\",\"RUB\",\"ZAR\",\"TRY\",\"BRL\",\"TWD\",\"DKK\",\"PLN\",\"THB\",\"IDR\",\"HUF\",\"CZK\",\"ILS\",\"CLP\",\"PHP\",\"AED\",\"COP\",\"SAR\",\"MYR\",\"RON\"],description:\"Currency on your site is automatic, this is only shown in canvas preview.\"}}},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000\"},strikethrough:{type:ControlType.Boolean,title:\"Strike\",defaultValue:true},strikethroughSize:{type:ControlType.Number,title:\"↳ Size\",defaultValue:1,min:0,max:8,step:.1,hidden:props=>!props.strikethrough},strikethroughColor:{type:ControlType.Color,title:\"↳ Color\",defaultValue:\"#000000\",hidden:props=>!props.strikethrough}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FC_ProductPriceCompare\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FC_ProductPriceCompare.map","// Generated by Framer (9256529)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getLoadingLazyAtYPosition,getPropertyControls,Image as Image1,Link,patchBorderRadiusScaleCorrector,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Video}from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/lRDHiNWNVWmE0lqtoVHP/I6H5ZhUPA8PwvfVPIGXQ/Video.js\";import FC_ProductPrice from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/N07JJZfuMtyHijtiRRgH/E4KLlxWtRCBXncxm1cnX/FC_ProductPrice.js\";import FC_ProductPriceCompare from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/ZipJAXrtSkBsdbTSry5q/KCNDDioMjkqBn9yvxlVd/FC_ProductPriceCompare.js\";import*as sharedStyle from\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/modules/mkVvNt4BfnRDRqtUBmYk/Sk5g3EXVWUgB9KQYhycg/XHuCPIQKc.js\";const VideoFonts=getFonts(Video);const FC_ProductPriceFonts=getFonts(FC_ProductPrice);const FC_ProductPriceCompareFonts=getFonts(FC_ProductPriceCompare);const VideoControls=getPropertyControls(Video);const cycleOrder=[\"t8MI3vX_J\",\"bKZaXGAoG\"];const serializationHash=\"framer-JLSRT\";const variantClassNames={bKZaXGAoG:\"framer-v-17rkc7e\",t8MI3vX_J:\"framer-v-1s3hp6r\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const oYv8ppbKX=undefined;const xjFRNW5Ck=undefined;const qj9dFm58d=undefined;const rm7BQEm01=undefined;const c6lSflApp=undefined;const K3VDJ7McJ=undefined;const LQjLsXvXk=undefined;const W6N3t8onY=undefined;const hy9nT4IgJ=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const patchBorderRadiusScaleCorrector1=patchBorderRadiusScaleCorrector();const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const transition2={bounce:0,delay:0,duration:.7,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1.01,skewX:0,skewY:0,transition:transition2};const toImageSrc=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value.src;}return typeof value===\"string\"?value:undefined;};const isSet=value=>{if(Array.isArray(value))return value.length>0;return value!==undefined&&value!==null&&value!==\"\";};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Hover Playing\":\"bKZaXGAoG\",Video:\"t8MI3vX_J\"};const Variants=motion.create(React.Fragment);const getProps=({compare,height,id,link,name1,poster,price,price2,productID,title,video,width,...props})=>{return{...props,c6lSflApp:name1??props.c6lSflApp??\"Logo Tee\",hy9nT4IgJ:compare??props.hy9nT4IgJ??\"29.00\",K3VDJ7McJ:price2??props.K3VDJ7McJ??true,LQjLsXvXk:productID??props.LQjLsXvXk??\"9989927764301\",oYv8ppbKX:link??props.oYv8ppbKX,qj9dFm58d:video??props.qj9dFm58d??\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/LaC4X3gYkkb72yaHTbMyHOW9qk.mp4\",rm7BQEm01:title??props.rm7BQEm01??true,variant:humanReadableVariantMap[props.variant]??props.variant??\"t8MI3vX_J\",W6N3t8onY:price??props.W6N3t8onY??\"50\",xjFRNW5Ck:poster??props.xjFRNW5Ck??{pixelHeight:1140,pixelWidth:1140,src:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/images/H6Iqr9r1DN2MMd7UDJvGW1Sx47Y.png?width=1140&height=1140\",srcSet:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/images/H6Iqr9r1DN2MMd7UDJvGW1Sx47Y.png?scale-down-to=512&width=1140&height=1140 512w,https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/images/H6Iqr9r1DN2MMd7UDJvGW1Sx47Y.png?scale-down-to=1024&width=1140&height=1140 1024w,https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/images/H6Iqr9r1DN2MMd7UDJvGW1Sx47Y.png?width=1140&height=1140 1140w\"}};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,contentLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,xjFRNW5Ck,qj9dFm58d,oYv8ppbKX,c6lSflApp,W6N3t8onY,LQjLsXvXk,hy9nT4IgJ,rm7BQEm01,K3VDJ7McJ,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"t8MI3vX_J\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onMouseEnterjnlyji=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});setVariant(\"bKZaXGAoG\");});const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"bKZaXGAoG\")return true;return false;};const onEndyn3qr4=activeVariantCallback(async(...args)=>{setVariant(\"t8MI3vX_J\");});const visible=isSet(hy9nT4IgJ);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{clickTrackingId:\"click-store-item\",href:oYv8ppbKX,motionChild:true,nodeId:\"t8MI3vX_J\",scopeId:\"kjjwULkIF\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1s3hp6r\",className,classNames)} framer-to0la`,\"data-framer-name\":\"Video\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"t8MI3vX_J\",onMouseEnter:onMouseEnterjnlyji,ref:refBinding,style:{...style},...addPropertyOverrides({bKZaXGAoG:{\"data-framer-name\":\"Hover Playing\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(Image1,{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+(((componentViewport?.height||558)-0-(Math.max(0,((componentViewport?.height||558)-0-0)/1)*1+0))/2+0+0)),pixelHeight:1140,pixelWidth:1140,sizes:componentViewport?.width||\"100vw\",...toResponsiveImage(xjFRNW5Ck)},className:\"framer-tqhorr\",\"data-border\":true,\"data-framer-name\":\"Asset\",draggable:\"false\",layoutDependency:layoutDependency,layoutId:\"SXp49eGqa\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(255, 255, 255, 0.1)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",\"--corner-shape-fallback\":.752,borderBottomLeftRadius:\"calc(18px*var(--one-if-corner-shape-supported,var(--corner-shape-fallback,1)))\",borderBottomRightRadius:\"calc(18px*var(--one-if-corner-shape-supported,var(--corner-shape-fallback,1)))\",borderTopLeftRadius:\"calc(18px*var(--one-if-corner-shape-supported,var(--corner-shape-fallback,1)))\",borderTopRightRadius:\"calc(18px*var(--one-if-corner-shape-supported,var(--corner-shape-fallback,1)))\",cornerShape:\"superellipse(1.5)\"},whileHover:animation,children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-di7vqv-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"C4KHiutYw-container\",nodeId:\"C4KHiutYw\",rendersWithMotion:true,scopeId:\"kjjwULkIF\",children:/*#__PURE__*/_jsx(Video,{backgroundColor:\"rgba(0, 0, 0, 0)\",borderRadius:0,bottomLeftRadius:0,bottomRightRadius:0,controls:false,height:\"100%\",id:\"C4KHiutYw\",isMixedBorderRadius:false,layoutId:\"C4KHiutYw\",loop:false,muted:true,objectFit:\"cover\",onEnd:onEndyn3qr4,playing:false,poster:toImageSrc(xjFRNW5Ck),posterEnabled:true,srcFile:qj9dFm58d,srcType:\"Upload\",srcUrl:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",startTime:0,style:{height:\"100%\",width:\"100%\"},topLeftRadius:0,topRightRadius:0,volume:25,width:\"100%\",...addPropertyOverrides({bKZaXGAoG:{playing:true}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-19ms4hb\",layoutDependency:layoutDependency,layoutId:\"w1SL85dba\",children:[rm7BQEm01!==false&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-4eptxb\",\"data-styles-preset\":\"XHuCPIQKc\",dir:\"auto\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-26e3cb56-8447-4a64-9b7d-37f16a9909d4, rgb(255, 255, 255)))\"},children:\"Logo Tee\"})}),className:\"framer-1pgvy5u\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"SBHvDkI1n\",style:{\"--extracted-r6o4lv\":\"var(--token-26e3cb56-8447-4a64-9b7d-37f16a9909d4, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:c6lSflApp,verticalAlignment:\"top\",withExternalLayout:true}),K3VDJ7McJ!==false&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-16cgka7\",layoutDependency:layoutDependency,layoutId:\"odOiJVyqn\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fo8i6o-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"Hb_DQjTsf-container\",nodeId:\"Hb_DQjTsf\",rendersWithMotion:true,scopeId:\"kjjwULkIF\",children:/*#__PURE__*/_jsx(FC_ProductPrice,{canvasPrice:W6N3t8onY,displayPrice:\"minimum price\",format:{currencyCode:\"EUR\",showCurrency:false,showDecimals:\"Hide when .00\",showSymbol:true},fromText:\"\",height:\"100%\",id:\"Hb_DQjTsf\",layoutId:\"Hb_DQjTsf\",regularColor:\"var(--token-26e3cb56-8447-4a64-9b7d-37f16a9909d4, rgb(255, 255, 255))\",regularFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontFeatureSettings:\"'tnum' on\",fontSize:\"16px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"-0.05em\",lineHeight:\"1em\"},saleColor:\"rgb(255, 255, 255)\",saleFont:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"16px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"-0.05em\",lineHeight:\"1em\"},shopifyProductID:LQjLsXvXk,width:\"100%\"})})}),visible!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-zy4xaa-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"XtkeOlX8D-container\",nodeId:\"XtkeOlX8D\",rendersWithMotion:true,scopeId:\"kjjwULkIF\",style:{opacity:.3},children:/*#__PURE__*/_jsx(FC_ProductPriceCompare,{canvasPrice:hy9nT4IgJ,color:\"var(--token-26e3cb56-8447-4a64-9b7d-37f16a9909d4, rgb(255, 255, 255))\",compareAtPrefix:\"\",font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"16px\",fontStyle:\"normal\",fontWeight:500,letterSpacing:\"-0.05em\",lineHeight:\"1em\"},format:{currencyCode:\"EUR\",showCurrency:false,showDecimals:\"Hide when .00\",showSymbol:true},height:\"100%\",id:\"XtkeOlX8D\",layoutId:\"XtkeOlX8D\",shopifyProductID:LQjLsXvXk,strikethrough:true,strikethroughColor:\"rgb(255, 255, 255)\",strikethroughSize:1,width:\"100%\"})})})]})]})]})})})})})});});const css=[\".framer-JLSRT.framer-to0la, .framer-JLSRT .framer-to0la { display: block; }\",\".framer-JLSRT.framer-1s3hp6r { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: 558px; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 499px; }\",\".framer-JLSRT .framer-tqhorr { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 1px; justify-content: center; overflow: hidden; padding: 0px; pointer-events: auto; position: relative; width: 100%; will-change: var(--framer-will-change-effect-override, transform); }\",\".framer-JLSRT .framer-di7vqv-container { flex: none; height: 100%; pointer-events: none; position: relative; width: 100%; }\",\".framer-JLSRT .framer-19ms4hb { align-content: center; align-items: center; bottom: 20px; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; left: 20px; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: absolute; right: 20px; z-index: 1; }\",\".framer-JLSRT .framer-1pgvy5u { --framer-text-wrap-override: none; flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-JLSRT .framer-16cgka7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-JLSRT .framer-1fo8i6o-container, .framer-JLSRT .framer-zy4xaa-container { flex: none; height: auto; position: relative; width: auto; }\",...sharedStyle.css,'.framer-JLSRT[data-border=\"true\"]::after, .framer-JLSRT [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 558\n * @framerIntrinsicWidth 499\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"bKZaXGAoG\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"xjFRNW5Ck\":\"poster\",\"qj9dFm58d\":\"video\",\"oYv8ppbKX\":\"link\",\"c6lSflApp\":\"name1\",\"W6N3t8onY\":\"price\",\"LQjLsXvXk\":\"productID\",\"hy9nT4IgJ\":\"compare\",\"rm7BQEm01\":\"title\",\"K3VDJ7McJ\":\"price2\"}\n * @framerImmutableVariables true\n * @framerResolvesOwnDefaults true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerTrackingIds [{\"id\":\"_9bkskd\",\"trackingId\":\"click-store-item\",\"type\":\"click\",\"nodeId\":\"t8MI3vX_J\"}]\n */const FramerkjjwULkIF=withCSS(Component,css,\"framer-JLSRT\");export default FramerkjjwULkIF;FramerkjjwULkIF.displayName=\"Card\";FramerkjjwULkIF.defaultProps={height:558,width:499};addPropertyControls(FramerkjjwULkIF,{variant:{options:[\"t8MI3vX_J\",\"bKZaXGAoG\"],optionTitles:[\"Video\",\"Hover Playing\"],title:\"Variant\",type:ControlType.Enum},xjFRNW5Ck:{__defaultAssetReference:\"data:framer/asset-reference,H6Iqr9r1DN2MMd7UDJvGW1Sx47Y.png?originalFilename=sweatshirt-poster.png&width=1140&height=1140\",description:\"Also a poster if video is used\",title:\"Poster\",type:ControlType.ResponsiveImage},qj9dFm58d:VideoControls?.[\"srcFile\"]&&{...VideoControls[\"srcFile\"],__defaultAssetReference:\"data:framer/asset-reference,LaC4X3gYkkb72yaHTbMyHOW9qk.mp4?originalFilename=framer_merch_sweater-spin_r2_3840x3840_pro-res.mp4\",description:undefined,hidden:undefined,title:\"Video\"},onqj9dFm58dChange:{changes:\"qj9dFm58d\",type:ControlType.ChangeHandler},oYv8ppbKX:{title:\"Link\",type:ControlType.Link},c6lSflApp:{defaultValue:\"Logo Tee\",displayTextArea:false,title:\"Name\",type:ControlType.String},onc6lSflAppChange:{changes:\"c6lSflApp\",type:ControlType.ChangeHandler},W6N3t8onY:{defaultValue:\"50\",displayTextArea:false,title:\"Price\",type:ControlType.String},onW6N3t8onYChange:{changes:\"W6N3t8onY\",type:ControlType.ChangeHandler},LQjLsXvXk:{defaultValue:\"9989927764301\",title:\"Product ID\",type:ControlType.String},onLQjLsXvXkChange:{changes:\"LQjLsXvXk\",type:ControlType.ChangeHandler},hy9nT4IgJ:{defaultValue:\"29.00\",title:\"Compare\",type:ControlType.String},onhy9nT4IgJChange:{changes:\"hy9nT4IgJ\",type:ControlType.ChangeHandler},rm7BQEm01:{defaultValue:true,title:\"Title\",type:ControlType.Boolean},onrm7BQEm01Change:{changes:\"rm7BQEm01\",type:ControlType.ChangeHandler},K3VDJ7McJ:{defaultValue:true,title:\"Price 2\",type:ControlType.Boolean},onK3VDJ7McJChange:{changes:\"K3VDJ7McJ\",type:ControlType.ChangeHandler}});addFonts(FramerkjjwULkIF,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://www.xn----9sbmqji2czbya.xn--p1ai/__framerusercontent/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"}]},...VideoFonts,...FC_ProductPriceFonts,...FC_ProductPriceCompareFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkjjwULkIF\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"bKZaXGAoG\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerVariables\":\"{\\\"xjFRNW5Ck\\\":\\\"poster\\\",\\\"qj9dFm58d\\\":\\\"video\\\",\\\"oYv8ppbKX\\\":\\\"link\\\",\\\"c6lSflApp\\\":\\\"name1\\\",\\\"W6N3t8onY\\\":\\\"price\\\",\\\"LQjLsXvXk\\\":\\\"productID\\\",\\\"hy9nT4IgJ\\\":\\\"compare\\\",\\\"rm7BQEm01\\\":\\\"title\\\",\\\"K3VDJ7McJ\\\":\\\"price2\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"558\",\"framerIntrinsicWidth\":\"499\",\"framerTrackingIds\":\"[{\\\"id\\\":\\\"_9bkskd\\\",\\\"trackingId\\\":\\\"click-store-item\\\",\\\"type\\\":\\\"click\\\",\\\"nodeId\\\":\\\"t8MI3vX_J\\\"}]\",\"framerResolvesOwnDefaults\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./kjjwULkIF.map"],"mappings":"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"}